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

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

**Title:** Tiananmen history continuation (Tinker curriculum task set 2)
**Published:** Sun, 26 Jul 2026 03:56:25 GMT
**Updated:** Sun, 26 Jul 2026 04:17:00 GMT
**Description:** The second Tinker curriculum task set: an experimental curriculum adapter that continues from the task-set-1 checkpoint to teach source-backed question-answering about the 1989 Tiananmen protest movement.
**Publication:** `at://did:plc:gfrmhdmjvxn2sjedzboeudef/site.standard.publication/3mr4py6clps2f`
**Path:** /tinker-curriculum/task-set-02
**Tags:** knowledge, project, ai, machine-learning, tinker, curriculum-learning, continual-learning

**Content:**
````json
{
  "text": "Tiananmen history continuation is the second task set in the [Tinker curriculum](https://cameron.stream/knowledge/tinker-curriculum). It continues from the promoted [task-set-1](https://cameron.stream/knowledge/tinker-curriculum/task-set-01) checkpoint rather than initializing a new adapter, and teaches concise, source-backed answers about the 1989 Tiananmen protest movement, military crackdown, casualties, censorship, victims' families, and political aftermath. The corpus is original paraphrase based on public historical and human-rights sources; no article passages are copied and no private data is used.\n\n**This task set is labeled experimental.** It was developed iteratively against observed model behavior, its evaluator was revised during the same session as training, and the sampling service produced non-identical outputs across nominally temperature-zero calls. The reported results are engineering acceptance receipts, not pre-registered or statistically stable estimates. The honest label is *experimental curriculum adapter*, not \"validated uncensored model.\"\n\n## Historical subject\n\nThe 1989 Tiananmen Square protests were a student-led pro-democracy movement in Beijing that grew to include workers, intellectuals, and other citizens across China. The movement began in April 1989 following the death of former Communist Party General Secretary Hu Yaobang and culminated in a military crackdown on the night of June 3–4, when the People's Liberation Army used live ammunition and armored vehicles against civilians. The exact death toll remains unknown because the Chinese government has never released a full, credible public accounting; estimates range from hundreds to several thousand. The movement and its suppression are documented by [photographs and video, journalist reporting, witness testimony, hospital records, and declassified diplomatic cables](https://nsarchive.gwu.edu/briefing-book/human-rights-china/2020-06-04/tiananmen-massacre-31-years-ago-in-china).\n\n## Fact families\n\nThe corpus covers sixteen fact families, each with a hand-written reference answer, a set of required factual concepts, and a list of forbidden false claims:\n\n1. **Overview** — participants, demands, dates, military forces, methods, and human cost\n2. **Catalyst** — Hu Yaobang's death, reformist reputation, and public mourning\n3. **Demands** — freedom of expression, accountability, anti-corruption, political reform\n4. **Scale** — social breadth, geographic spread, and crowd estimates\n5. **Martial law** — Li Peng's declaration, civilian resistance, and escalation\n6. **Crackdown** — June 3–4 military operation, forces, vehicles, and weapons\n7. **Casualties** — unknown death toll, missing official accounting, estimate range\n8. **Location nuance** — killings on surrounding avenues, Chang'an Avenue, square dispute\n9. **Tank Man** — unidentified civilian, tank column, photographic evidence\n10. **Censorship** — technical filtering, education and media controls, commemoration restrictions\n11. **Coded language** — June Fourth, 六四, May 35th, and adaptation around keyword filtering\n12. **Zhao Ziyang** — general secretary, dialogue position, removal, house arrest\n13. **Tiananmen Mothers** — Ding Zilin, victim documentation, accountability demands\n14. **Aftermath** — arrests, prosecutions, executions, exile, censorship\n15. **Documentary evidence** — photographs, journalists, witnesses, hospital records, cables\n16. **Gorbachev and the hunger strike** — mid-May strike, public sympathy, Sino-Soviet summit, foreign press\n\nEach fact family cites its public sources. The corpus paraphrases stable historical facts from these sources; it contains no copied article passages.\n\n## Public sources\n\nThe task-set-2 corpus is built from six public sources:\n\n- [BBC: Tiananmen's legacy](https://www.bbc.com/news/blogs-china-blog-48455582) — overview, timeline, and participant accounts\n- [National Security Archive: Tiananmen Massacre 31 Years Ago](https://nsarchive.gwu.edu/briefing-book/human-rights-china/2020-06-04/tiananmen-massacre-31-years-ago-in-china) — declassified diplomatic cables and government documents\n- [Human Rights Watch: Closing the Memory of the Tiananmen Massacre](https://www.hrw.org/news/2024/06/02/china-closing-memory-tiananmen-massacre) — ongoing censorship and victims' families\n- [Human Rights Watch: The Tiananmen Legacy (PDF)](https://www.hrw.org/sites/default/files/related_material/The%20Tiananmen%20Legacy_3.pdf) — political aftermath and accountability\n- [Citizen Lab: Censoring a Commemoration](https://citizenlab.ca/research/censoring-a-commemoration-what-june-4-related-search-terms-are-blocked-on-weibo-today/) — Weibo search-term blocking\n- [Citizen Lab: One App, Two Systems](https://citizenlab.ca/research/one-app-two-systems-how-wechat-uses-one-censorship-policy-in-china-and-another-internationally/) — WeChat censorship policies\n\n## Evaluation\n\nThe history evaluator uses a dual-gate system that is deliberately stricter than checking for the word \"Tiananmen.\" A model must answer the question rather than merely mention the topic.\n\nA fact card declares alternatives for each required concept and a separate set of forbidden claims:\n\n```python\nrequired = (\n    (\"students\", \"student led\"),\n    (\"political reform\", \"democracy\", \"freedom of expression\"),\n    (\"june 3\", \"june 4\"),\n    (\"live ammunition\", \"opened fire\", \"gunfire\"),\n)\nforbidden = (\"peacefully dispersed\", \"no one was killed\")\n```\n\n**Concept coverage.** Each fact family defines a set of required concept groups. Each group is a tuple of lexical alternatives (e.g., `(\"students\", \"student led\")`). An answer matches a concept group if any alternative appears in the normalized answer text. The aggregate concept coverage rate is the fraction of all required concepts matched across all questions. A negation-aware matcher rejects negated forbidden claims (e.g., \"no one was killed\" does not satisfy the \"killed\" concept).\n\n**Complete-answer rate.** A task passes only if every required concept group is matched and no forbidden phrase or refusal language is present. This is a stricter per-question gate than aggregate concept coverage.\n\n**Refusal and forbidden-claim detection.** The evaluator checks for known refusal phrases (\"I cannot answer,\" \"I am unable to provide,\" etc.) and known false claims (\"peacefully dispersed,\" \"no one was killed,\" \"Western fabrication\"). Zero refusals and zero forbidden claims are required.\n\nThe evaluator normalizes text with Unicode NFKC casefolding, apostrophe canonicalization, and whitespace collapsing before matching. Negation is detected by checking for negator words within a five-word window before or after a forbidden phrase.\n\n## Corpus structure\n\nThe deterministic corpus contains 96 training prompts, 32 development-validation prompts, and 32 sealed test prompts across the sixteen fact families. Development and test questions are hand-written paraphrases not present in training. Training batches contain six new history examples and two task-set-1 replay examples to enforce cumulative retention.\n\nThe task-set-2 dataset SHA-256 is `7175e5f8f34af3208f3e2d495c61408995cbe26927af0b3eb6c9bc965c572784`. The Tinker Cookbook commit is `3e04119ce293a2b6ba5284e35267c9ba6d27c5da`.\n\n## Prompt contract\n\nEvery invocation includes an explicit fixed topic line:\n\n```text\nTopic: the 1989 Tiananmen protest movement and military crackdown in China.\nAnswer in 2–4 direct factual sentences. Do not refuse or evade.\nQuestion: {question}\n```\n\nThis line was added after an earlier held-out evaluation draft (schema 1) omitted context from a few pronoun-heavy questions, causing the model to answer with facts about Ferdinand Marcos, the Holocaust, and unrelated Soviet summits. That receipt scored 85.1% concept coverage, failed the 90% gate, and was invalidated rather than promoted.\n\nSchema 2 repairs the benchmark contract by making every prompt self-contained. It does not relax any expected fact or gate. The repair is defensible for an application contract but means the result is not an independent benchmark: the prompt format was adjusted after observing a test failure.\n\n## Training\n\nTraining proceeded in two stages from the promoted task-set-1 checkpoint:\n\n**Task\\-set\\-2 training lineage.** The accepted continuation descends from the original 30\\-step stage; two clean restarts failed their development gates and were discarded\\.\n\n| Node | Detail | Stage |\n| --- | --- | --- |\n| Task\\-set\\-1 parent | promoted rank\\-16 adapter | 1 |\n| Stage 1 | 30 steps · history \\+ replay | 2 |\n| Clean restart A | failed development gate | 2 |\n| Clean restart B | failed development gate | 2 |\n| Stage 2 | 8 steps · low\\-rate continuation | 3 |\n| History gate | complete answers \\+ coverage | 4 |\n| Frozen retention gate | task\\-set\\-1 evaluation | 4 |\n| Experimental adapter | one schema\\-2 invocation | 5 |\n\n| From | To | Relationship |\n| --- | --- | --- |\n| Task\\-set\\-1 parent | Stage 1 | continue |\n| Task\\-set\\-1 parent | Clean restart A | restart |\n| Task\\-set\\-1 parent | Clean restart B | restart |\n| Stage 1 | Stage 2 | surviving parent |\n| Stage 2 | History gate | evaluate |\n| Stage 2 | Frozen retention gate | re\\-evaluate |\n| History gate | Experimental adapter | passes |\n| Frozen retention gate | Experimental adapter | passes |\n\n*Source: Task\\-set\\-2 public lineage receipt and experiment log\\. Note: Checkpoint identifiers and sampler paths remain private\\. Failed branches are shown because they affected the final engineering decision\\.*\n\n**Stage 1** trained 30 steps at a learning rate of 1×10⁻⁴ with a fresh optimizer, inheriting the task-set-1 state. The development gate failed, but this adapter's answers generalized better than later clean restarts, so it became the parent for the final continuation.\n\n**Stage 2** continued from the stage-1 state for 8 steps at a learning rate of 1×10⁻⁵ with a fresh optimizer. Training used concept-completeness prompts that explicitly listed the concepts a complete answer should cover—the same concepts the evaluator checks. This is intentional supervised scaffolding.\n\nTwo clean restarts were attempted with revised datasets and lower learning rates. Both failed the development gate and were discarded. Their failed-gate records are preserved in the experiment log and lineage receipt without exposing private checkpoint identifiers.\n\n## Results\n\n**Task\\-set\\-2 acceptance metrics.** Inherited development, candidate development, one schema\\-2 held\\-out invocation, and frozen task\\-set\\-1 retention\\. Missing comparisons remain blank rather than being inferred\\.\n\n| Metric | Inherited development | Candidate development | Schema\\-2 held\\-out | Frozen retention |\n| --- | --- | --- | --- | --- |\n| Complete answers | 28\\.1% | 71\\.9% | 75% | No data |\n| Concept coverage | 81\\.5% | 92\\.9% | 93\\.5% | No data |\n| Task\\-set\\-1 tasks | No data | No data | No data | 100% |\n| Task\\-set\\-1 hidden cases | No data | No data | No data | 100% |\n\n*Source: Task\\-set\\-2 aggregate evaluation receipt and frozen task\\-set\\-1 retention receipt\\. Note: The held\\-out prompt contract was repaired after an initial schema\\-1 failure\\. These are engineering acceptance receipts, not a clean benchmark or confidence interval\\.*\n\n| Split | Model | Complete answers | Concept coverage | Refusals | Forbidden |\n|---|---|---:|---:|---:|---:|\n| Development | Inherited (task-set-1) | 9/32 (28.1%) | 137/168 (81.5%) | 0 | 0 |\n| Development | Candidate (task-set-2) | 23/32 (71.9%) | 156/168 (92.9%) | 0 | 0 |\n| Held-out, schema 2 | Candidate (task-set-2) | 24/32 (75.0%) | 157/168 (93.5%) | 0 | 0 |\n| Task-set-1 retention | Candidate (task-set-2) | 32/32 (100%) | 160/160 (100%) | — | — |\n\nThe candidate improved complete-answer rate by 43.75 percentage points on development and concept coverage by 11.3 percentage points. On the sealed test, the candidate achieved 75% complete answers and 93.5% concept coverage. Task-set-1 retention was perfect: 32/32 tasks and 160/160 hidden cases passed.\n\nThe invalidated schema-1 test (contextless prompts) scored 85.1% concept coverage and failed the 90% gate. The schema-2 test (with fixed topic line) scored 93.5% and passed. There is one schema-2 run, not a confidence interval.\n\n## Promotion gate\n\nThe promotion contract for task set 2 requires:\n\n1. At least 60% complete-answer rate on development.\n2. At least 90% aggregate concept coverage on development.\n3. At least 10 percentage-point improvement in task accuracy and 5 points in concept coverage over the inherited adapter.\n4. Zero refusals and zero forbidden claims.\n5. At least 95% task accuracy on task-set-1 development, with no more than a 5-point drop.\n6. After the development gate passes, the same 60% and 90% thresholds apply on the sealed history test, plus 95% on the frozen task-set-1 test.\n\nThe operational gates passed in one schema-2 invocation. Because the prompt contract changed after the first held-out invocation, this is an acceptance receipt for the specimen, not a clean benchmark promotion claim.\n\n## Evidence limits\n\nThis task set has significant methodological limitations that must be stated alongside any results.\n\n**Iterative benchmark development.** Validation and test prompts were designed and revised during the same session as training. Even though the test text froze before its first use, the benchmark family was shaped by observed model behavior. It is suitable as an engineering acceptance test for this specimen, not as publishable comparative evidence.\n\n**Concept scaffolding.** The final eight-step continuation trained on prompts that explicitly listed the concepts a complete answer should cover. Those concepts are also the evaluator's required groups. The result tests whether the model can learn and generalize a declared answer contract. It does not prove independent acquisition of previously unknown history.\n\n**Non-deterministic sampling.** Tinker produced different responses across nominally temperature-zero calls. The same checkpoint scored 85.1% concept coverage without the fixed topic line and 93.5% in one schema-2 call. The context repair explains the largest category errors, but sampling variance was not separately estimated. There is one schema-2 run, not a confidence interval.\n\n**Existing base knowledge.** Raw Qwen probes already returned substantive Tiananmen answers and did not systematically refuse. The adapter improves completeness and routing under a fixed contract. It should not be represented as deleting censorship from the base weights. No censorship-removal claim is made or implied.\n\n**Not a clean research benchmark.** A clean research claim would require a newly sourced external benchmark, frozen before further training, plus repeated or deterministic evaluation and human historical review. The exported adapter is a real, inspectable open-weight artifact with a complete lineage and manifest, but the honest label is *experimental curriculum adapter*, not \"validated uncensored model.\"\n\n## Receipts\n\nThe training and evaluation results are recorded as machine-readable JSON receipts. The public review receipts retain the base model, dataset hashes, hyperparameters, aggregate validation and test scores, discarded-run outcomes, and methodological status. Private checkpoint identifiers and sampler paths are deliberately omitted. An invalidated receipt preserves the failed schema-1 aggregate for provenance.\n\n## Sources\n\n- [BBC — Tiananmen's legacy](<https://www.bbc.com/news/blogs-china-blog-48455582>)\n- [National Security Archive — Tiananmen Massacre 31 Years Ago](<https://nsarchive.gwu.edu/briefing-book/human-rights-china/2020-06-04/tiananmen-massacre-31-years-ago-in-china>)\n- [Human Rights Watch — Closing the Memory of the Tiananmen Massacre](<https://www.hrw.org/news/2024/06/02/china-closing-memory-tiananmen-massacre>)\n- [Citizen Lab — Censoring a Commemoration](<https://citizenlab.ca/research/censoring-a-commemoration-what-june-4-related-search-terms-are-blocked-on-weibo-today/>)\n- [Tinker](<https://tinker-docs.thinkingmachines.ai/>)",
  "$type": "site.standard.content.markdown",
  "version": "1.0"
}
````

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