geneseed 3.2.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +24 -14
  3. package/SETUP.md +38 -7
  4. package/SHIPPED.md +6 -5
  5. package/adapters/bob/README.md +40 -10
  6. package/adapters/claude-code/README.md +5 -0
  7. package/adapters/claude-code/settings.json +8 -1
  8. package/adapters/copilot/README.md +52 -25
  9. package/adapters/opencode/README.md +11 -3
  10. package/adapters/opencode/plugins/geneseed-guard.js +40 -6
  11. package/bin/build-driver.mjs +16 -10
  12. package/bin/geneseed-cli.mjs +55 -56
  13. package/bin/geneseed-hook.mjs +21 -14
  14. package/docs/candidate-hosts.md +74 -0
  15. package/docs/extending.md +10 -8
  16. package/docs/token-footprint.md +32 -21
  17. package/docs/web/agents.md +1 -1
  18. package/docs/web/first-session.md +1 -1
  19. package/docs/web/skills.md +1 -1
  20. package/docs/web-ui.md +5 -13
  21. package/harness.config.json +1 -1
  22. package/js/README.md +5 -6
  23. package/js/build/emit-claude.mjs +22 -7
  24. package/js/build/render.mjs +37 -19
  25. package/js/build/source.mjs +22 -2
  26. package/js/cli-table.json +84 -0
  27. package/js/hosts/hooks.mjs +240 -78
  28. package/js/hosts/hosts.mjs +56 -2
  29. package/js/hosts/link.mjs +1 -1
  30. package/js/hosts/mcp.mjs +3 -1
  31. package/js/hosts/native.mjs +86 -15
  32. package/js/hosts/opencode.mjs +14 -0
  33. package/js/hosts/settings.mjs +173 -5
  34. package/js/inspect/excludes.mjs +1 -1
  35. package/js/inspect/inventory.mjs +13 -8
  36. package/js/inspect/status.mjs +50 -2
  37. package/js/maintain/uninstall.mjs +38 -11
  38. package/js/maintain/update.mjs +2 -2
  39. package/js/web/actions.mjs +8 -8
  40. package/js/web/api.mjs +5 -10
  41. package/js/web/docs.mjs +9 -31
  42. package/js/web/handler.mjs +20 -30
  43. package/js/web/jobs.mjs +5 -26
  44. package/js/web/routes.mjs +18 -84
  45. package/js/web/server.mjs +3 -3
  46. package/package.json +1 -1
  47. package/registry.json +99 -78
  48. package/src/AGENT.md.tmpl +69 -28
  49. package/src/agents/architect.md +4 -1
  50. package/src/agents/explorer.md +3 -1
  51. package/src/agents/operator.md +13 -0
  52. package/src/agents/pragmatist.md +12 -0
  53. package/src/agents/researcher.md +72 -0
  54. package/src/agents/security.md +7 -1
  55. package/src/agents/skeptic.md +2 -1
  56. package/src/agents/tester.md +5 -1
  57. package/src/agents/user-advocate.md +13 -0
  58. package/src/doctrines/README.md +3 -3
  59. package/src/doctrines/rigor.md +14 -1
  60. package/src/laws/universal.md +98 -20
  61. package/src/ontology/universal.md +38 -13
  62. package/src/skills/_self-improvement.md +19 -0
  63. package/src/skills/_template.md +6 -13
  64. package/src/skills/brainstorm.md +37 -19
  65. package/src/skills/bruno-collection-generator.md +52 -0
  66. package/src/skills/bruno-test-writer.md +51 -0
  67. package/src/skills/ci-fix.md +49 -0
  68. package/src/skills/codebase-design.md +1 -12
  69. package/src/skills/commit.md +1 -12
  70. package/src/skills/consolidate-memory.md +50 -0
  71. package/src/skills/council.md +1 -12
  72. package/src/skills/debug.md +1 -12
  73. package/src/skills/deps-audit.md +46 -0
  74. package/src/skills/develop.md +38 -20
  75. package/src/skills/document-project.md +1 -12
  76. package/src/skills/domain-modeling.md +1 -12
  77. package/src/skills/forge-mcp.md +2 -13
  78. package/src/skills/fresh-eyes.md +1 -12
  79. package/src/skills/frontend-design.md +1 -12
  80. package/src/skills/geneseed-code-review.md +1 -12
  81. package/src/skills/geneseed.md +1 -12
  82. package/src/skills/git-archaeology.md +1 -12
  83. package/src/skills/git-rescue.md +1 -12
  84. package/src/skills/handoff.md +1 -12
  85. package/src/skills/herdr.md +2 -12
  86. package/src/skills/ingest.md +1 -12
  87. package/src/skills/migrate.md +1 -12
  88. package/src/skills/opencode-theme.md +2 -12
  89. package/src/skills/parallel-agents.md +1 -12
  90. package/src/skills/pipeline.md +2 -13
  91. package/src/skills/plan.md +1 -12
  92. package/src/skills/ponytail.md +1 -12
  93. package/src/skills/profile.md +1 -12
  94. package/src/skills/prose.md +1 -12
  95. package/src/skills/prototype.md +1 -12
  96. package/src/skills/quiz.md +43 -0
  97. package/src/skills/refactor.md +1 -12
  98. package/src/skills/release.md +1 -12
  99. package/src/skills/repo-map.md +1 -12
  100. package/src/skills/research.md +6 -14
  101. package/src/skills/review-response.md +1 -12
  102. package/src/skills/roast-me.md +1 -12
  103. package/src/skills/rule.md +1 -12
  104. package/src/skills/security-audit.md +51 -0
  105. package/src/skills/ship.md +1 -12
  106. package/src/skills/skill-forge.md +59 -0
  107. package/src/skills/teach.md +50 -0
  108. package/src/skills/tickets.md +1 -12
  109. package/src/skills/wayfinder.md +1 -12
  110. package/src/skills/wiki.md +1 -12
  111. package/src/skills/workflow.md +74 -26
  112. package/src/skills/worktree.md +52 -0
  113. package/themes/_TEMPLATE.json +12 -8
  114. package/themes/biker.json +12 -8
  115. package/themes/commentator.json +12 -8
  116. package/themes/cyberpunk.json +12 -8
  117. package/themes/gamer.json +12 -8
  118. package/themes/imperial.json +12 -8
  119. package/themes/joker.json +12 -8
  120. package/themes/marvin.json +12 -8
  121. package/themes/mean.json +12 -8
  122. package/themes/military.json +12 -8
  123. package/themes/neutral.json +12 -8
  124. package/themes/pirate.json +12 -8
  125. package/themes/sports.json +12 -8
  126. package/themes/verstappen.json +12 -8
  127. package/themes/wizard.json +12 -8
  128. package/web/dist/assets/Activity-DMGhhjQc.js +1 -0
  129. package/web/dist/assets/ActivityDetail-CeQcDA7e.js +1 -0
  130. package/web/dist/assets/{CatalogRow-DqS4e5XM.js → CatalogRow-CnSbDPyg.js} +1 -1
  131. package/web/dist/assets/{Diff-CIrGbiqm.js → Diff-D_ksMBD1.js} +1 -1
  132. package/web/dist/assets/{Doctor-CpI53oHY.js → Doctor-Brb3_oCT.js} +1 -1
  133. package/web/dist/assets/FilterInput-DbRWPhtT.js +1 -0
  134. package/web/dist/assets/GreenhouseView-F3VNFr73.js +2 -0
  135. package/web/dist/assets/{Harness-vRYs11kX.js → Harness-DJSwfYeF.js} +1 -1
  136. package/web/dist/assets/JournalView-BLRYRnB3.js +1 -0
  137. package/web/dist/assets/Laws-CKYns9qe.js +3 -0
  138. package/web/dist/assets/Library-BK0YloSv.js +1 -0
  139. package/web/dist/assets/{Markdown-kgpg9EQM.js → Markdown-BzTRzc7a.js} +1 -1
  140. package/web/dist/assets/OperatorHudView-D3OQSGp5.js +2 -0
  141. package/web/dist/assets/{Profile-CHr-PPf6.js → Profile-CPA2u_0g.js} +1 -1
  142. package/web/dist/assets/{Rules-CsC6hfqk.js → Rules-Lukel-Ru.js} +1 -1
  143. package/web/dist/assets/Skills-BKRLHH7m.js +1 -0
  144. package/web/dist/assets/{StatusBadge-gRrak0nO.js → StatusBadge-DI3weRKd.js} +1 -1
  145. package/web/dist/assets/{activity-B0-FXZCj.js → activity-C_H2Bx1P.js} +1 -1
  146. package/web/dist/assets/{index-Bx3I7cRW.js → index-B7_Wga23.js} +1 -1
  147. package/web/dist/assets/index-DzdQjvM1.css +1 -0
  148. package/web/dist/assets/{index-DJOhOwwR.js → index-N8dTrVro.js} +1 -1
  149. package/web/dist/assets/index-Py_IQjgK.js +10 -0
  150. package/web/dist/assets/jobBuckets-DfTUJUxR.js +1 -0
  151. package/web/dist/assets/lawCats-DUS9UTH4.js +1 -0
  152. package/web/dist/index.html +2 -2
  153. package/web/src/pages/Laws.jsx +82 -64
  154. package/js/web/graph.mjs +0 -0
  155. package/src/skills/clarify.md +0 -28
  156. package/src/skills/crash-course.md +0 -28
  157. package/src/skills/decode.md +0 -28
  158. package/src/skills/drill.md +0 -28
  159. package/src/skills/feynman.md +0 -26
  160. package/src/skills/gap-detector.md +0 -27
  161. package/src/skills/learning-path.md +0 -26
  162. package/src/skills/tdd.md +0 -31
  163. package/web/dist/assets/Activity-BTCG2gMl.js +0 -1
  164. package/web/dist/assets/ActivityDetail-julsmPDB.js +0 -1
  165. package/web/dist/assets/Graph-CS4tA7YS.js +0 -1
  166. package/web/dist/assets/Laws-BjbHJrJt.js +0 -3
  167. package/web/dist/assets/Library-CjC7BAWN.js +0 -1
  168. package/web/dist/assets/Skills-BvatJGfe.js +0 -1
  169. package/web/dist/assets/index-BnRWQbZb.js +0 -12
  170. package/web/dist/assets/index-D0f9tJlA.css +0 -1
  171. package/web/dist/assets/roman-DkYN0LX9.js +0 -1
@@ -20,15 +20,4 @@
20
20
  ## Done when
21
21
  - A crisp motion was debated by distinct, steelmanned seats over bounded rounds, and the chair has delivered a verdict, the preserved dissent, and one next action for the user to weigh.
22
22
 
23
- ## Self-improvement
24
-
25
- Close each run with one beat of reflection on the {{SKILL}} itself:
26
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
27
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
28
- done-when) and apply it with the user's assent ({{LAW}} II).
29
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
30
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
31
- fresh read of the repo would not re-derive it. Update an existing memory over
32
- adding one; when in doubt, leave it out.
33
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
34
- runs end here.
23
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -23,15 +23,4 @@ faster than thrashing; do not trade it away under pressure.
23
23
  ## Done when
24
24
  - The failure is reproduced, root-caused, fixed at the cause, and the reproduction passes with no new breakage.
25
25
 
26
- ## Self-improvement
27
-
28
- Close each run with one beat of reflection on the {{SKILL}} itself:
29
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
30
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
31
- done-when) and apply it with the user's assent ({{LAW}} II).
32
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
33
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
34
- fresh read of the repo would not re-derive it. Update an existing memory over
35
- adding one; when in doubt, leave it out.
36
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
37
- runs end here.
26
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -0,0 +1,46 @@
1
+ # {{SKILL}}: deps-audit
2
+
3
+ > {{DESC_DEPS_AUDIT}}
4
+
5
+ **Trigger:** the user asks "what's outdated", "are we vulnerable", "audit the
6
+ dependencies", or to plan an upgrade round; a security advisory lands; a new
7
+ dependency is proposed; or a [migrate {{SKILL}}](migrate.md) run needs to know what
8
+ to bump first. migrate moves *one* dependency safely; this {{SKILL}} decides *which*,
9
+ *in what order*, and *whether at all*.
10
+
11
+ ## Procedure
12
+ 1. **Inventory from the lockfile, not the manifest** ({{LAW}} III): every direct
13
+ dependency with its pinned version, and the transitive tree where the tooling
14
+ exposes it. Include vendored or copied-in code the manifest does not list — it is
15
+ a dependency with no update channel.
16
+ 2. **Run what the ecosystem provides, install nothing silently:** `npm outdated` /
17
+ `npm audit`, `pip list --outdated` / `pip-audit`, `cargo outdated` / `cargo audit`,
18
+ `go list -m -u all` / `govulncheck`, or the host's equivalent. Read the output in
19
+ full; an advisory's severity is the publisher's number, not yet yours.
20
+ 3. **Classify each finding:** *security* (an advisory reaches code this project
21
+ actually calls — check the path, an unreachable vuln is a note, not an emergency),
22
+ *behind by a major* (breaking changes — read the changelog for what touches this
23
+ codebase), *behind by a minor/patch* (usually safe, batchable), *abandoned* (no
24
+ release, no maintainer — plan a replacement, not a bump), *unused* (imported
25
+ nowhere — remove it, the cheapest upgrade there is).
26
+ 4. **For a proposed new dependency, ask the ladder first** ({{DOCTRINE}} craft 4): does
27
+ the stdlib or an already-installed package cover it, and is the cost of a few lines
28
+ lower than the cost of another maintainer's release cadence, licence, and
29
+ transitive tree? Check who publishes it, how maintained it is, its licence
30
+ against the project's, and what it pulls in.
31
+ 5. **Order the plan by risk, then blast radius:** reachable security fixes first, then
32
+ removals, then patch/minor batches, then majors one at a time with their changelog
33
+ notes attached. Each major is its own [migrate {{SKILL}}](migrate.md) run on its own
34
+ branch ({{LAW}} II); never bundle unrelated bumps.
35
+ 6. **Report and hand off.** A ranked table — dependency, current → target, class,
36
+ reachable?, the note that justifies the rank — plus what was left alone and why.
37
+ Nothing is upgraded by the audit itself; the user picks the tranche and migrate
38
+ executes it with the checks green between each step.
39
+
40
+ ## Done when
41
+ - Every dependency in the lockfile is classified with evidence, reachable advisories
42
+ are separated from unreachable ones, unused and abandoned packages are named, and a
43
+ risk-ordered upgrade plan exists for migrate to execute — with nothing installed or
44
+ bumped by the audit.
45
+
46
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -2,28 +2,46 @@
2
2
 
3
3
  > {{DESC_DEVELOP}}
4
4
 
5
- **Trigger:** implementing a feature, fixing a bug, or changing code behaviour in a repo that has (or should have) a test suite.
5
+ **Trigger:** implementing a feature, fixing a bug, or changing code behaviour in a
6
+ repo that has (or should have) a test suite — before writing implementation code.
7
+ Covers both the test-first cycle (red → green → refactor) and the cover-alongside
8
+ case where the seam is only known once the change is made.
6
9
 
7
10
  ## Procedure
8
- 1. Orient on the project's own documentation for what you are about to touch ({{DOCTRINE}} process 4).
9
- 2. Make the smallest change that advances the task ({{DOCTRINE}} craft 6).
10
- 3. Cover the behaviour — test-first via the [tdd {{SKILL}}](tdd.md) where the target is known up front; otherwise write the covering test alongside the change ({{DOCTRINE}} rigor 3).
11
- 4. Run the *affected* tests and read the output ({{LAW}} III); on failure, fix the cause, do not mask it ({{LAW}} VIII).
12
- 5. Tidy the green code via the [refactor {{SKILL}}](refactor.md) — the tests are your safety net.
13
- 6. Commit the green slice via the [commit {{SKILL}}](commit.md) ({{DOCTRINE}} process 5). Loop one slice at a time; dispatch the [tester {{AGENT}}](../{{DIR_AGENTS}}/tester.md) for heavier or unfamiliar coverage.
11
+ 1. Orient on the project's own documentation for what you are about to touch
12
+ ({{DOCTRINE}} process 4), and confirm the actual starting state — the suite runs,
13
+ the baseline is green ({{LAW}} III). A red baseline is a [debug {{SKILL}}](debug.md)
14
+ task first, not something to build on.
15
+ 2. Agree the seams: name the public interfaces the tests will target and confirm
16
+ them with the user when they are not obvious — no test is written at an
17
+ unconfirmed seam. Testing effort belongs on critical paths and complex logic,
18
+ not every edge.
19
+ 3. Pick the next **smallest slice** that advances the task ({{DOCTRINE}} craft 6), then
20
+ cover it:
21
+ - *Seam known up front* — test-first. Write ONE failing test that pins the slice,
22
+ specific about the expected output (for a bug, the test reproduces it). Run it
23
+ and watch it fail **for the right reason** — a test that passes immediately, or
24
+ fails on a typo, proves nothing.
25
+ - *Seam only clear once the change exists* — write the covering test alongside the
26
+ change ({{DOCTRINE}} rigor 3), then break the implementation on purpose once to
27
+ see the test go red before trusting it.
28
+ 4. Write the minimum code that makes it pass; add nothing the test doesn't demand.
29
+ 5. Run the *affected* tests and read the output ({{LAW}} III); on failure fix the
30
+ cause, never mask it ({{LAW}} VIII). Dispatch the
31
+ [tester {{AGENT}}](../{{DIR_AGENTS}}/tester.md) for heavier or unfamiliar coverage,
32
+ or when the blast radius is unclear.
33
+ 6. With the slice green, tidy through the [refactor {{SKILL}}](refactor.md) — the tests
34
+ are the safety net — then commit the slice through the [commit {{SKILL}}](commit.md)
35
+ ({{DOCTRINE}} process 5). Loop from step 3, one slice at a time.
36
+ 7. **Exit.** When the last slice is in: run the whole affected suite once more, state
37
+ what was run and its result, and hand over — to the [ship {{SKILL}}](ship.md) when
38
+ the change is ready for a PR, or to the [handoff {{SKILL}}](handoff.md) if the
39
+ session ends mid-task. Leave no slice uncommitted and no test you could not make
40
+ fail.
14
41
 
15
42
  ## Done when
16
- - The behaviour changed is covered by tests written this session, the affected suite is green with its output shown, and each slice was committed.
43
+ - Every behaviour changed is covered by a test written this session that was seen
44
+ to fail before it passed, the affected suite is green with its output shown, each
45
+ slice was committed on its own, and the work has been handed to ship or handoff.
17
46
 
18
- ## Self-improvement
19
-
20
- Close each run with one beat of reflection on the {{SKILL}} itself:
21
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
22
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
23
- done-when) and apply it with the user's assent ({{LAW}} II).
24
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
25
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
26
- fresh read of the repo would not re-derive it. Update an existing memory over
27
- adding one; when in doubt, leave it out.
28
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
29
- runs end here.
47
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -65,15 +65,4 @@ into line with the implementation.
65
65
  them all; the single-file `overview.html` opens offline and shows both the digest and the
66
66
  complex-core deep-dives; and any surface left undocumented is named explicitly.
67
67
 
68
- ## Self-improvement
69
-
70
- Close each run with one beat of reflection on the {{SKILL}} itself:
71
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
72
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
73
- done-when) and apply it with the user's assent ({{LAW}} II).
74
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
75
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
76
- fresh read of the repo would not re-derive it. Update an existing memory over
77
- adding one; when in doubt, leave it out.
78
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
79
- runs end here.
68
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -24,15 +24,4 @@ decision, or a design conversation keeps stumbling over ambiguous terms.
24
24
  - The glossary and ADRs reflect every term and decision that crystallised this
25
25
  session, and no two names compete for one concept.
26
26
 
27
- ## Self-improvement
28
-
29
- Close each run with one beat of reflection on the {{SKILL}} itself:
30
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
31
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
32
- done-when) and apply it with the user's assent ({{LAW}} II).
33
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
34
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
35
- fresh read of the repo would not re-derive it. Update an existing memory over
36
- adding one; when in doubt, leave it out.
37
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
38
- runs end here.
27
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -23,7 +23,7 @@ depends on it.
23
23
  annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`,
24
24
  `openWorldHint`), and write error messages that name the specific, actionable
25
25
  fix. A destructive tool's guard is enforced server-side, at the boundary the
26
- call must cross — never left to the calling model's judgement ({{LAW}} IX).
26
+ call must cross — never left to the calling model's judgement ({{DOCTRINE}} rigor 5).
27
27
  5. Review and test: kill duplication, ensure consistent errors and full type
28
28
  coverage, then build and exercise every tool with the MCP Inspector — don't
29
29
  assume it works ({{LAW}} III).
@@ -35,15 +35,4 @@ depends on it.
35
35
  - The server builds, every tool passes the Inspector, and the evaluation
36
36
  questions are answered correctly through the tools — not by guesswork.
37
37
 
38
- ## Self-improvement
39
-
40
- Close each run with one beat of reflection on the {{SKILL}} itself:
41
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
42
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
43
- done-when) and apply it with the user's assent ({{LAW}} II).
44
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
45
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
46
- fresh read of the repo would not re-derive it. Update an existing memory over
47
- adding one; when in doubt, leave it out.
48
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
49
- runs end here.
38
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -15,15 +15,4 @@
15
15
  ## Done when
16
16
  - A fresh context that never saw the solving session derived the acceptance criteria from the original task alone, froze them before seeing the artifact, ruled each PASS/FAIL/UNVERIFIABLE with evidence by checking the live artifact, and returned an overall gate (SATISFIES / SATISFIES-WITH-GAPS / DOES-NOT-SATISFY) for the user to weigh — or, where no true isolation was possible, the verdict is stamped soft-isolation so it is discounted.
17
17
 
18
- ## Self-improvement
19
-
20
- Close each run with one beat of reflection on the {{SKILL}} itself:
21
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
22
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
23
- done-when) and apply it with the user's assent ({{LAW}} II).
24
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
25
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
26
- fresh read of the repo would not re-derive it. Update an existing memory over
27
- adding one; when in doubt, leave it out.
28
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
29
- runs end here.
18
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -44,15 +44,4 @@ preview tool) — the second-pass critique in step 6 cannot run without one.
44
44
  templated tells, holds the accessibility floor, and a screenshot critique finds
45
45
  nothing that reads as a generic default.
46
46
 
47
- ## Self-improvement
48
-
49
- Close each run with one beat of reflection on the {{SKILL}} itself:
50
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
51
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
52
- done-when) and apply it with the user's assent ({{LAW}} II).
53
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
54
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
55
- fresh read of the repo would not re-derive it. Update an existing memory over
56
- adding one; when in doubt, leave it out.
57
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
58
- runs end here.
47
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -19,15 +19,4 @@
19
19
  ## Done when
20
20
  - Findings are reported with a clear verdict: ship / fix-then-ship / block.
21
21
 
22
- ## Self-improvement
23
-
24
- Close each run with one beat of reflection on the {{SKILL}} itself:
25
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
26
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
27
- done-when) and apply it with the user's assent ({{LAW}} II).
28
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
29
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
30
- fresh read of the repo would not re-derive it. Update an existing memory over
31
- adding one; when in doubt, leave it out.
32
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
33
- runs end here.
22
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -15,15 +15,4 @@
15
15
  ## Done when
16
16
  - The user's question about the deployed harness is answered from the live install — file paths or CLI output — not from recall.
17
17
 
18
- ## Self-improvement
19
-
20
- Close each run with one beat of reflection on the {{SKILL}} itself:
21
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
22
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
23
- done-when) and apply it with the user's assent ({{LAW}} II).
24
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
25
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
26
- fresh read of the repo would not re-derive it. Update an existing memory over
27
- adding one; when in doubt, leave it out.
28
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
29
- runs end here.
18
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -33,15 +33,4 @@ or rewrite, use git-rescue.md; to write a new commit, use commit.md).
33
33
  - The question is answered with a specific commit (or commits) and the diff/output that
34
34
  proves it, the bisect state is reset, and the working tree is unchanged.
35
35
 
36
- ## Self-improvement
37
-
38
- Close each run with one beat of reflection on the {{SKILL}} itself:
39
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
40
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
41
- done-when) and apply it with the user's assent ({{LAW}} II).
42
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
43
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
44
- fresh read of the repo would not re-derive it. Update an existing memory over
45
- adding one; when in doubt, leave it out.
46
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
47
- runs end here.
36
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -54,15 +54,4 @@ finding *when/why* something changed without altering history, use git-archaeolo
54
54
  - The repository is in the intended state, verified against actual git output, and the
55
55
  pre-rescue state is still recoverable from the backup branch or the reflog.
56
56
 
57
- ## Self-improvement
58
-
59
- Close each run with one beat of reflection on the {{SKILL}} itself:
60
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
61
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
62
- done-when) and apply it with the user's assent ({{LAW}} II).
63
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
64
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
65
- fresh read of the repo would not re-derive it. Update an existing memory over
66
- adding one; when in doubt, leave it out.
67
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
68
- runs end here.
57
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -15,15 +15,4 @@
15
15
  ## Done when
16
16
  - A fresh agent can resume from the worklog alone — goal, progress, next step, and blockers are all written down.
17
17
 
18
- ## Self-improvement
19
-
20
- Close each run with one beat of reflection on the {{SKILL}} itself:
21
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
22
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
23
- done-when) and apply it with the user's assent ({{LAW}} II).
24
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
25
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
26
- fresh read of the repo would not re-derive it. Update an existing memory over
27
- adding one; when in doubt, leave it out.
28
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
29
- runs end here.
18
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -2,6 +2,7 @@
2
2
  # {{SKILL}}: herdr
3
3
 
4
4
  > {{DESC_HERDR}}
5
+ <!-- invocation: user -->
5
6
 
6
7
  **Trigger:** you are running inside a herdr-managed pane (`HERDR_ENV=1`) and a task would benefit from another pane — splitting off a server, watching a long-running build, spawning a sibling agent, or reading what a neighbour is doing. If `HERDR_ENV` is unset or not `1`, you are not inside herdr — stop and do not try to control panes from outside.
7
8
 
@@ -150,15 +151,4 @@ herdr pane read 1-1 --source recent --lines 100
150
151
 
151
152
  The task that motivated the side pane is finished, its output has been read (or its result captured), and any pane / tab / workspace you opened just for the task has been closed — unless the user asked you to keep it.
152
153
 
153
- ## Self-improvement
154
-
155
- Close each run with one beat of reflection on the {{SKILL}} itself:
156
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
157
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
158
- done-when) and apply it with the user's assent ({{LAW}} II).
159
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
160
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
161
- fresh read of the repo would not re-derive it. Update an existing memory over
162
- adding one; when in doubt, leave it out.
163
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
164
- runs end here.
154
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -36,15 +36,4 @@ must be converted first.
36
36
  - The document's content is available as markdown and the slice the task needs has
37
37
  been read — without reading the binary or committing a stray conversion.
38
38
 
39
- ## Self-improvement
40
-
41
- Close each run with one beat of reflection on the {{SKILL}} itself:
42
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
43
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
44
- done-when) and apply it with the user's assent ({{LAW}} II).
45
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
46
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
47
- fresh read of the repo would not re-derive it. Update an existing memory over
48
- adding one; when in doubt, leave it out.
49
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
50
- runs end here.
39
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -31,15 +31,4 @@ change into the same deploy as the code that depends on it (universal {{LAW}} II
31
31
  changelog / lockfile reflect the new state with its docs updated
32
32
  ({{DOCTRINE}} craft 3).
33
33
 
34
- ## Self-improvement
35
-
36
- Close each run with one beat of reflection on the {{SKILL}} itself:
37
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
38
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
39
- done-when) and apply it with the user's assent ({{LAW}} II).
40
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
41
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
42
- fresh read of the repo would not re-derive it. Update an existing memory over
43
- adding one; when in doubt, leave it out.
44
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
45
- runs end here.
34
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -1,6 +1,7 @@
1
1
  # {{SKILL}}: opencode-theme
2
2
 
3
3
  > {{DESC_THEME}}
4
+ <!-- invocation: user -->
4
5
 
5
6
  **Trigger:** the user wants their own OpenCode colour theme — "make me a theme",
6
7
  "create a custom theme", "I want my own colours", "a theme that matches <brand>", "a
@@ -38,15 +39,4 @@ them at `--theme` / the setup wizard, not this {{SKILL}}.
38
39
  - Both `<name>.json` (and/or `<name>-transparent.json`) exist in the active themes dir,
39
40
  the CLI reported the path, and the user knows the `/theme <name>` command to select it.
40
41
 
41
- ## Self-improvement
42
-
43
- Close each run with one beat of reflection on the {{SKILL}} itself:
44
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
45
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
46
- done-when) and apply it with the user's assent ({{LAW}} II).
47
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
48
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
49
- fresh read of the repo would not re-derive it. Update an existing memory over
50
- adding one; when in doubt, leave it out.
51
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
52
- runs end here.
42
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -14,15 +14,4 @@
14
14
  ## Done when
15
15
  - Independent units ran concurrently, each returned a distilled result, and the reconciled outcome is verified.
16
16
 
17
- ## Self-improvement
18
-
19
- Close each run with one beat of reflection on the {{SKILL}} itself:
20
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
21
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
22
- done-when) and apply it with the user's assent ({{LAW}} II).
23
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
24
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
25
- fresh read of the repo would not re-derive it. Update an existing memory over
26
- adding one; when in doubt, leave it out.
27
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
28
- runs end here.
17
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -16,7 +16,7 @@ The minimum roster per task type. The parent may add specialists on top — secu
16
16
  |---|---|
17
17
  | Development | [explorer](../{{DIR_AGENTS}}/explorer.md) (analyst) → [developer](../{{DIR_AGENTS}}/developer.md) → [tester](../{{DIR_AGENTS}}/tester.md) + lint gate |
18
18
  | Documentation | [explorer](../{{DIR_AGENTS}}/explorer.md) (analyst) → [docs](../{{DIR_AGENTS}}/docs.md) |
19
- | Research / investigation | [explorer](../{{DIR_AGENTS}}/explorer.md) (analyst) alone |
19
+ | Research / investigation | [explorer](../{{DIR_AGENTS}}/explorer.md) (analyst) alone; add [researcher](../{{DIR_AGENTS}}/researcher.md) when the question leaves the repository |
20
20
  | Review / audit | [reviewer](../{{DIR_AGENTS}}/reviewer.md) + [skeptic](../{{DIR_AGENTS}}/skeptic.md) |
21
21
 
22
22
  ## Procedure
@@ -38,15 +38,4 @@ A branch/worktree containing the work **plus** the mechanical proof: test and li
38
38
 
39
39
  - Green proof: the crew delivered a branch with passing tests and lint, and the parent merged it — or the loop cap was exhausted and the failure was reported with the branch left in place.
40
40
 
41
- ## Self-improvement
42
-
43
- Close each run with one beat of reflection on the {{SKILL}} itself:
44
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
45
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
46
- done-when) and apply it with the user's assent ({{LAW}} II).
47
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
48
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
49
- fresh read of the repo would not re-derive it. Update an existing memory over
50
- adding one; when in doubt, leave it out.
51
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
52
- runs end here.
41
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -31,15 +31,4 @@
31
31
  > place after the window fills, and lets the user correct course early. Consider
32
32
  > git-ignoring `WORKLOG.md` if it should stay local to each developer.
33
33
 
34
- ## Self-improvement
35
-
36
- Close each run with one beat of reflection on the {{SKILL}} itself:
37
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
38
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
39
- done-when) and apply it with the user's assent ({{LAW}} II).
40
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
41
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
42
- fresh read of the repo would not re-derive it. Update an existing memory over
43
- adding one; when in doubt, leave it out.
44
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
45
- runs end here.
34
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -15,15 +15,4 @@
15
15
  ## Done when
16
16
  - The shipped solution sits on the highest ladder rung that works, deliberate shortcuts carry a `ponytail:` comment with their upgrade path, non-trivial logic has one runnable check, and nothing on the never-simplify list was cut.
17
17
 
18
- ## Self-improvement
19
-
20
- Close each run with one beat of reflection on the {{SKILL}} itself:
21
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
22
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
23
- done-when) and apply it with the user's assent ({{LAW}} II).
24
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
25
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
26
- fresh read of the repo would not re-derive it. Update an existing memory over
27
- adding one; when in doubt, leave it out.
28
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
29
- runs end here.
18
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -44,15 +44,4 @@ as creation, and never discard a section the user wrote by hand.
44
44
  `user-rules.md` or {{MEMORY}} instead — or the user declined, and the file is
45
45
  untouched.
46
46
 
47
- ## Self-improvement
48
-
49
- Close each run with one beat of reflection on the {{SKILL}} itself:
50
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
51
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
52
- done-when) and apply it with the user's assent ({{LAW}} II).
53
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
54
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
55
- fresh read of the repo would not re-derive it. Update an existing memory over
56
- adding one; when in doubt, leave it out.
57
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
58
- runs end here.
47
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -28,15 +28,4 @@ person wrote it, not a model.
28
28
  - The text says what it means in the fewest honest words, carries no AI tells,
29
29
  and would pass as written by a careful human.
30
30
 
31
- ## Self-improvement
32
-
33
- Close each run with one beat of reflection on the {{SKILL}} itself:
34
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
35
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
36
- done-when) and apply it with the user's assent ({{LAW}} II).
37
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
38
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
39
- fresh read of the repo would not re-derive it. Update an existing memory over
40
- adding one; when in doubt, leave it out.
41
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
42
- runs end here.
31
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -30,15 +30,4 @@ real implementation.
30
30
  - The question has a recorded verdict, the decision lives in the real code,
31
31
  and no prototype code remains on the main branch.
32
32
 
33
- ## Self-improvement
34
-
35
- Close each run with one beat of reflection on the {{SKILL}} itself:
36
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
37
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
38
- done-when) and apply it with the user's assent ({{LAW}} II).
39
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
40
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
41
- fresh read of the repo would not re-derive it. Update an existing memory over
42
- adding one; when in doubt, leave it out.
43
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
44
- runs end here.
33
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -0,0 +1,43 @@
1
+ # {{SKILL}}: quiz
2
+
3
+ > {{DESC_QUIZ}}
4
+
5
+ <!-- invocation: user -->
6
+
7
+ **Trigger:** the user wants what they know *tested*, not explained — "drill me on X",
8
+ "quiz me until it sticks", "let me explain X to you and catch me", "I think I already
9
+ know X, prove me wrong", "find the holes in what I know". Three shapes, picked from the
10
+ ask: a **drill** (practise until reflex), a **feynman** (explain it back, get caught on
11
+ the stumbles), or a **gap check** (a mastery claim stress-tested). To be taught instead,
12
+ use the [teach {{SKILL}}](teach.md).
13
+
14
+ ## Procedure
15
+ 1. Pin the concept and set the contract plainly: you will test, not lecture, and you
16
+ will not go easy. Do not explain the concept up front.
17
+ 2. Pick the shape and run it:
18
+ - **Drill** — drop the user straight into a realistic situation where they would
19
+ have to use the concept and would probably slip. On a mistake, withhold the
20
+ answer; ask the one question that forces them to find where their own reasoning
21
+ broke. Reveal only after two honest attempts. New situation each cycle, until they
22
+ get it right without hesitation.
23
+ - **Feynman** — have them explain the topic as if teaching a ten-year-old.
24
+ Interrupt the moment they (a) use jargon they cannot themselves unpack, (b) skip
25
+ a step in the reasoning, or (c) simplify so far the explanation becomes wrong —
26
+ name which of the three it was each time, and keep them going to the end.
27
+ - **Gap check** — ask five questions that look simple but separate someone who
28
+ has gone deep from someone who skimmed: edge cases, the *why*, the assumption
29
+ under the rule, the case where the standard answer breaks. After each answer say
30
+ plainly what it reveals is still missing; a shallow answer is named as shallow,
31
+ with what depth would have looked like.
32
+ 3. Close with the honest readout, no flattery: what the stumbles or misses reveal is
33
+ not yet solid, what to restudy, and — for a drill — the variation most likely to
34
+ catch them out next. Offer the [teach {{SKILL}}](teach.md) for the gaps that need
35
+ teaching rather than more testing.
36
+
37
+ ## Done when
38
+ - The user worked the situation correctly without being handed the answer (drill),
39
+ explained the topic through with every stumble caught and labelled (feynman), or
40
+ answered all five questions and holds a concrete verdict on the remaining gaps (gap
41
+ check) — and the run ended with a direct readout, never empty praise.
42
+
43
+ <!-- INCLUDE: skills/_self-improvement.md -->
@@ -18,15 +18,4 @@
18
18
  ## Done when
19
19
  - Structure is improved, observable behaviour is unchanged, tests are green, and the refactor is committed by itself.
20
20
 
21
- ## Self-improvement
22
-
23
- Close each run with one beat of reflection on the {{SKILL}} itself:
24
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
25
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
26
- done-when) and apply it with the user's assent ({{LAW}} II).
27
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
28
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
29
- fresh read of the repo would not re-derive it. Update an existing memory over
30
- adding one; when in doubt, leave it out.
31
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
32
- runs end here.
21
+ <!-- INCLUDE: skills/_self-improvement.md -->