# Record
**Author:** @cameron.stream (`did:plc:gfrmhdmjvxn2sjedzboeudef`)

## `knowledge-tinker-curriculum`
**Collection:** `site.standard.document`
**AT URI:** `at://did:plc:gfrmhdmjvxn2sjedzboeudef/site.standard.document/knowledge-tinker-curriculum`

**Title:** Tinker curriculum
**Published:** Sun, 26 Jul 2026 03:56:24 GMT
**Updated:** Mon, 27 Jul 2026 06:33:39 GMT
**Description:** A standalone experiment in cumulative agent training that teaches a raw language model one closed task set at a time, measuring each independently before adding the next.
**Publication:** `at://did:plc:gfrmhdmjvxn2sjedzboeudef/site.standard.publication/3mr4py6clps2f`
**Path:** /tinker-curriculum
**Tags:** knowledge, map, ai, machine-learning, tinker, curriculum-learning, continual-learning

**Content:**
````json
{
  "text": "The Tinker curriculum is a standalone experiment in cumulative agent training. It teaches a raw language model one closed task set at a time, measures each independently against a sealed promotion gate, and does not add another task set until the first one clears its gate. The project is designed so that capability growth cannot silently erase prior behavior: every future task-set addition must preserve and rerun the earlier frozen evaluations.\n\nThe experiment uses [Tinker](https://tinker-docs.thinkingmachines.ai/), a hosted training and sampling service for fine-tuning large language models. The base model is [Qwen3.5-35B-A3B-Base](https://huggingface.co/Qwen/Qwen3.5-35B-A3B-Base), a 35-billion-parameter mixture-of-experts model with approximately 3 billion active parameters per token. Training uses [LoRA](https://arxiv.org/abs/2106.09685) (low-rank adaptation), a parameter-efficient fine-tuning method that trains a small adapter on top of frozen base weights rather than modifying the full model.\n\n## Design principles\n\nThe curriculum follows three rules that distinguish it from open-ended fine-tuning:\n\n1. **One task set at a time.** A task set is a bounded capability family with explicit training, development, and held-out evaluation sets. No later task set is added until the previous one passes its gate.\n2. **Cumulative retention.** Any future candidate must pass both its own gate and every unchanged prior-task gate. Adding a capability is not permission to forget the previous one.\n3. **No private data.** The current task set is generated locally from fixed seeds. It contains no private conversations, repository history, or unpublished personal data.\n\n**Cumulative curriculum lineage.** Each candidate inherits the previously promoted adapter, adds one bounded task family, and must pass both its new gate and every frozen retention gate\\.\n\n| Node | Detail | Stage |\n| --- | --- | --- |\n| Raw base model | Qwen3\\.5\\-35B\\-A3B\\-Base | 1 |\n| Task set 1 | flat JSON transformation | 2 |\n| Promotion gate 1 | development \\+ sealed test | 3 |\n| Promoted adapter | task\\-set\\-1 checkpoint | 4 |\n\n| From | To | Relationship |\n| --- | --- | --- |\n| Raw base model | Task set 1 | train |\n| Task set 1 | Promotion gate 1 | evaluate |\n| Promotion gate 1 | Promoted adapter | passes |\n\n*Source: Tinker curriculum public lineage receipts and promotion contracts\\. Note: The current public lineage stops at the first promoted adapter\\. Later curriculum continuations require a separate frozen gate and retention receipt\\.*\n\nThe orchestration rule can be summarized without depending on one training platform:\n\n```python\ncandidate = train(parent=promoted_adapter, data=current_task + replay(previous_tasks))\n\nif current_gate(candidate) and all(retention_gate(candidate, task) for task in previous_tasks):\n    promote(candidate)\nelse:\n    preserve_receipt_and_reject(candidate)\n```\n\n## Task sets\n\nThe currently published experiment has one task set:\n\n- [Flat JSON transformation](https://cameron.stream/knowledge/tinker-curriculum/task-set-01) teaches the model to emit a single Python function that transforms a flat record according to a natural-language instruction. A narrow AST interpreter evaluates the generated code against hidden cases rather than executing it as arbitrary Python.\n\n## Promotion contract\n\nEach task set has a promotion contract that must be satisfied before its held-out split is opened. The contract requires a minimum accuracy threshold, a minimum improvement over the parent model, and—when a prior task set exists—retention of the earlier capability. Task set 1 followed that contract cleanly.\n\n## Evidence limits\n\nThe experiment is an engineering specimen, not a research benchmark. Task set 1 is a narrow, deterministic code-generation task evaluated by a restricted interpreter. Its result demonstrates learning inside that fixed grammar; it does not establish general coding ability or a universal continual-learning method. The task-set page documents the complete gate and evidence limits.\n\n## Sources\n\n- [Tinker](<https://tinker-docs.thinkingmachines.ai/>)\n- [Qwen3\\.5\\-35B\\-A3B\\-Base on Hugging Face](<https://huggingface.co/Qwen/Qwen3.5-35B-A3B-Base>)\n- [LoRA — Low\\-Rank Adaptation of Large Language Models](<https://arxiv.org/abs/2106.09685>)",
  "$type": "site.standard.content.markdown",
  "version": "1.0"
}
````

---
*Fetched from https://enoki.us-east.host.bsky.network via `com.atproto.repo.getRecord`*