geneseed 3.3.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.
- package/CHANGELOG.md +40 -0
- package/README.md +3 -3
- package/SHIPPED.md +2 -2
- package/adapters/copilot/README.md +2 -1
- package/adapters/opencode/README.md +6 -2
- package/docs/extending.md +4 -3
- package/docs/web/agents.md +1 -1
- package/docs/web/first-session.md +1 -1
- package/docs/web/skills.md +1 -1
- package/harness.config.json +1 -1
- package/js/hosts/native.mjs +69 -15
- package/js/hosts/opencode.mjs +14 -0
- package/js/inspect/inventory.mjs +12 -7
- package/package.json +1 -1
- package/registry.json +86 -79
- package/src/AGENT.md.tmpl +14 -12
- package/src/agents/architect.md +4 -1
- package/src/agents/explorer.md +2 -0
- package/src/agents/operator.md +13 -0
- package/src/agents/pragmatist.md +12 -0
- package/src/agents/researcher.md +72 -0
- package/src/agents/security.md +7 -1
- package/src/agents/skeptic.md +2 -1
- package/src/agents/tester.md +5 -1
- package/src/agents/user-advocate.md +13 -0
- package/src/doctrines/rigor.md +1 -1
- package/src/skills/_self-improvement.md +19 -0
- package/src/skills/_template.md +1 -12
- package/src/skills/brainstorm.md +37 -19
- package/src/skills/bruno-collection-generator.md +1 -12
- package/src/skills/bruno-test-writer.md +1 -12
- package/src/skills/ci-fix.md +49 -0
- package/src/skills/codebase-design.md +1 -12
- package/src/skills/commit.md +1 -12
- package/src/skills/consolidate-memory.md +50 -0
- package/src/skills/council.md +1 -12
- package/src/skills/debug.md +1 -12
- package/src/skills/deps-audit.md +46 -0
- package/src/skills/develop.md +38 -20
- package/src/skills/document-project.md +1 -12
- package/src/skills/domain-modeling.md +1 -12
- package/src/skills/forge-mcp.md +1 -12
- package/src/skills/fresh-eyes.md +1 -12
- package/src/skills/frontend-design.md +1 -12
- package/src/skills/geneseed-code-review.md +1 -12
- package/src/skills/geneseed.md +1 -12
- package/src/skills/git-archaeology.md +1 -12
- package/src/skills/git-rescue.md +1 -12
- package/src/skills/handoff.md +1 -12
- package/src/skills/herdr.md +1 -12
- package/src/skills/ingest.md +1 -12
- package/src/skills/migrate.md +1 -12
- package/src/skills/opencode-theme.md +1 -12
- package/src/skills/parallel-agents.md +1 -12
- package/src/skills/pipeline.md +2 -13
- package/src/skills/plan.md +1 -12
- package/src/skills/ponytail.md +1 -12
- package/src/skills/profile.md +1 -12
- package/src/skills/prose.md +1 -12
- package/src/skills/prototype.md +1 -12
- package/src/skills/quiz.md +43 -0
- package/src/skills/refactor.md +1 -12
- package/src/skills/release.md +1 -12
- package/src/skills/repo-map.md +1 -12
- package/src/skills/research.md +5 -13
- package/src/skills/review-response.md +1 -12
- package/src/skills/roast-me.md +1 -12
- package/src/skills/rule.md +1 -12
- package/src/skills/security-audit.md +51 -0
- package/src/skills/ship.md +1 -12
- package/src/skills/skill-forge.md +59 -0
- package/src/skills/teach.md +50 -0
- package/src/skills/tickets.md +1 -12
- package/src/skills/wayfinder.md +1 -12
- package/src/skills/wiki.md +1 -12
- package/src/skills/workflow.md +74 -26
- package/src/skills/worktree.md +52 -0
- package/themes/_TEMPLATE.json +9 -8
- package/themes/biker.json +9 -8
- package/themes/commentator.json +9 -8
- package/themes/cyberpunk.json +9 -8
- package/themes/gamer.json +9 -8
- package/themes/imperial.json +9 -8
- package/themes/joker.json +9 -8
- package/themes/marvin.json +9 -8
- package/themes/mean.json +9 -8
- package/themes/military.json +9 -8
- package/themes/neutral.json +9 -8
- package/themes/pirate.json +9 -8
- package/themes/sports.json +9 -8
- package/themes/verstappen.json +9 -8
- package/themes/wizard.json +9 -8
- package/web/dist/assets/{Activity-BfVcLrda.js → Activity-DMGhhjQc.js} +1 -1
- package/web/dist/assets/{ActivityDetail-CQXccGPl.js → ActivityDetail-CeQcDA7e.js} +1 -1
- package/web/dist/assets/{CatalogRow-DALEQImZ.js → CatalogRow-CnSbDPyg.js} +1 -1
- package/web/dist/assets/{Diff-BIjxXx46.js → Diff-D_ksMBD1.js} +1 -1
- package/web/dist/assets/{Doctor-CJLbgsrw.js → Doctor-Brb3_oCT.js} +1 -1
- package/web/dist/assets/{FilterInput-CkUCk_lY.js → FilterInput-DbRWPhtT.js} +1 -1
- package/web/dist/assets/{GreenhouseView-DfC5IILJ.js → GreenhouseView-F3VNFr73.js} +1 -1
- package/web/dist/assets/{Harness-Dm5CCU-v.js → Harness-DJSwfYeF.js} +1 -1
- package/web/dist/assets/{JournalView-Cpu2eI4s.js → JournalView-BLRYRnB3.js} +1 -1
- package/web/dist/assets/{Laws-DDDVFuQz.js → Laws-CKYns9qe.js} +1 -1
- package/web/dist/assets/{Library-Dao3T9na.js → Library-BK0YloSv.js} +1 -1
- package/web/dist/assets/{Markdown-C__nuWX5.js → Markdown-BzTRzc7a.js} +1 -1
- package/web/dist/assets/{OperatorHudView-DEpCtAjP.js → OperatorHudView-D3OQSGp5.js} +1 -1
- package/web/dist/assets/{Profile-BlXtUlh2.js → Profile-CPA2u_0g.js} +1 -1
- package/web/dist/assets/{Rules-DIre6gxR.js → Rules-Lukel-Ru.js} +1 -1
- package/web/dist/assets/Skills-BKRLHH7m.js +1 -0
- package/web/dist/assets/{StatusBadge-wW_RS_my.js → StatusBadge-DI3weRKd.js} +1 -1
- package/web/dist/assets/{activity-DpYPKNrA.js → activity-C_H2Bx1P.js} +1 -1
- package/web/dist/assets/{index-PmQGRS1X.js → index-B7_Wga23.js} +1 -1
- package/web/dist/assets/{index-BEZvPvpF.js → index-N8dTrVro.js} +1 -1
- package/web/dist/assets/{index-DNQE5ydy.js → index-Py_IQjgK.js} +2 -2
- package/web/dist/index.html +1 -1
- package/src/skills/clarify.md +0 -28
- package/src/skills/crash-course.md +0 -29
- package/src/skills/decode.md +0 -29
- package/src/skills/drill.md +0 -29
- package/src/skills/feynman.md +0 -27
- package/src/skills/gap-detector.md +0 -27
- package/src/skills/learning-path.md +0 -27
- package/src/skills/tdd.md +0 -31
- package/web/dist/assets/Skills-rY13ZPhM.js +0 -1
package/src/skills/geneseed.md
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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 -->
|
package/src/skills/git-rescue.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/handoff.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/herdr.md
CHANGED
|
@@ -151,15 +151,4 @@ herdr pane read 1-1 --source recent --lines 100
|
|
|
151
151
|
|
|
152
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.
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
157
|
-
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
158
|
-
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
159
|
-
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
160
|
-
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
161
|
-
clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
|
|
162
|
-
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
163
|
-
adding one; when in doubt, leave it out.
|
|
164
|
-
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
165
|
-
runs end here.
|
|
154
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/ingest.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/migrate.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
|
@@ -39,15 +39,4 @@ them at `--theme` / the setup wizard, not this {{SKILL}}.
|
|
|
39
39
|
- Both `<name>.json` (and/or `<name>-transparent.json`) exist in the active themes dir,
|
|
40
40
|
the CLI reported the path, and the user knows the `/theme <name>` command to select it.
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
45
|
-
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
46
|
-
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
47
|
-
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
48
|
-
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
49
|
-
clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
|
|
50
|
-
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
51
|
-
adding one; when in doubt, leave it out.
|
|
52
|
-
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
53
|
-
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
|
-
|
|
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 -->
|
package/src/skills/pipeline.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/plan.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/ponytail.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/profile.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/prose.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/prototype.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/refactor.md
CHANGED
|
@@ -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
|
-
|
|
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 -->
|
package/src/skills/release.md
CHANGED
|
@@ -29,15 +29,4 @@
|
|
|
29
29
|
- Version, changelog, and tag all name the same number, and the release is pushed
|
|
30
30
|
(or staged for the pipeline) with no unrelated changes bundled in.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
35
|
-
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
36
|
-
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
37
|
-
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
38
|
-
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
39
|
-
clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
|
|
40
|
-
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
41
|
-
adding one; when in doubt, leave it out.
|
|
42
|
-
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
43
|
-
runs end here.
|
|
32
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/repo-map.md
CHANGED
|
@@ -22,15 +22,4 @@
|
|
|
22
22
|
- `ARCHITECTURE.md` reflects the current structure, and a fresh agent could orient
|
|
23
23
|
from it in a single read.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
28
|
-
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
29
|
-
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
30
|
-
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
31
|
-
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
32
|
-
clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
|
|
33
|
-
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
34
|
-
adding one; when in doubt, leave it out.
|
|
35
|
-
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
36
|
-
runs end here.
|
|
25
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/research.md
CHANGED
|
@@ -11,7 +11,10 @@ stop and report it ({{LAW}} V); never substitute recall for verified research.
|
|
|
11
11
|
|
|
12
12
|
## Procedure
|
|
13
13
|
1. State the question and what a complete answer must contain. Break a broad question
|
|
14
|
-
into specific sub-questions.
|
|
14
|
+
into specific sub-questions. Where the host runs subagents, hand the sub-questions
|
|
15
|
+
to the [researcher {{AGENT}}](../{{DIR_AGENTS}}/researcher.md) — it runs steps 2–5
|
|
16
|
+
in its own context and returns only the sourced findings ({{DOCTRINE}} process 3);
|
|
17
|
+
otherwise carry on here.
|
|
15
18
|
2. Search the web — use the host's web-search tool or a connected search provider
|
|
16
19
|
({{DOCTRINE}} ops 1). Query from several angles; one search is not research,
|
|
17
20
|
and one empty result is not absence ({{LAW}} III). If the host
|
|
@@ -30,15 +33,4 @@ stop and report it ({{LAW}} V); never substitute recall for verified research.
|
|
|
30
33
|
- The question is answered, every material claim is traceable to a cited,
|
|
31
34
|
cross-checked source, and remaining uncertainties are flagged explicitly.
|
|
32
35
|
|
|
33
|
-
|
|
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.
|
|
36
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
|
@@ -22,15 +22,4 @@ are about to act on it.
|
|
|
22
22
|
- Every comment has a reasoned response and either an applied change or a justified
|
|
23
23
|
decline, and the resulting changes are verified.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
28
|
-
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
29
|
-
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
30
|
-
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
31
|
-
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
32
|
-
clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
|
|
33
|
-
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
34
|
-
adding one; when in doubt, leave it out.
|
|
35
|
-
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
36
|
-
runs end here.
|
|
25
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/roast-me.md
CHANGED
|
@@ -14,15 +14,4 @@
|
|
|
14
14
|
## Done when
|
|
15
15
|
- Findings are severity-ranked, every one carries a fix, and the highest-impact change is named.
|
|
16
16
|
|
|
17
|
-
|
|
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 -->
|
package/src/skills/rule.md
CHANGED
|
@@ -86,15 +86,4 @@ adoption.
|
|
|
86
86
|
{{LAWS}}, consented to explicitly, with any promoted source memory archived. The
|
|
87
87
|
{{ONTOLOGY}}, {{LAWS}} and {{DOCTRINES}} files are untouched either way.
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
92
|
-
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
93
|
-
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
94
|
-
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
95
|
-
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
96
|
-
clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
|
|
97
|
-
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
98
|
-
adding one; when in doubt, leave it out.
|
|
99
|
-
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
100
|
-
runs end here.
|
|
89
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# {{SKILL}}: security-audit
|
|
2
|
+
|
|
3
|
+
> {{DESC_SECURITY_AUDIT}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** a change touches the security surface — authentication, authorisation,
|
|
6
|
+
session or token handling, input from outside the trust boundary, file or shell
|
|
7
|
+
access, cryptography, secrets, a new dependency, a network-facing endpoint — or the
|
|
8
|
+
user asks for a "security review", "threat model", or "is this safe". The
|
|
9
|
+
[geneseed-code-review {{SKILL}}](geneseed-code-review.md) reviews a diff for
|
|
10
|
+
correctness first; this one asks a different question of the same diff: *how would
|
|
11
|
+
this be attacked, and what does it leak*. Run both before shipping anything on the
|
|
12
|
+
surface.
|
|
13
|
+
|
|
14
|
+
## Procedure
|
|
15
|
+
1. **Draw the surface.** From the diff and the code it lands in, name the trust
|
|
16
|
+
boundaries the change crosses (user input, another service, the filesystem, a
|
|
17
|
+
subprocess, the network), what an attacker controls on each, and the assets behind
|
|
18
|
+
them (data, credentials, the host). No boundary crossed → say so, verdict *not on
|
|
19
|
+
the surface*, stop.
|
|
20
|
+
2. **Dispatch the [security {{AGENT}}](../{{DIR_AGENTS}}/security.md)** with the surface
|
|
21
|
+
from step 1 and the diff — read-only, in its own context so the main one stays
|
|
22
|
+
clean ({{DOCTRINE}} process 3). It runs the passes below; for a small change you may
|
|
23
|
+
run them yourself.
|
|
24
|
+
3. **Pass 1 — the classic classes**, each checked against the actual code, not
|
|
25
|
+
assumed: injection (SQL, shell, path, template), broken auth or missing authz on
|
|
26
|
+
a new route, unsafe deserialisation, SSRF, insecure defaults, missing rate or size
|
|
27
|
+
limits, error messages that leak internals. Verify by reading the handling at the
|
|
28
|
+
boundary and, where a test can exercise it, by running one ({{LAW}} III).
|
|
29
|
+
4. **Pass 2 — secrets and data.** Nothing sensitive in code, config, logs, fixtures,
|
|
30
|
+
or the commit itself ({{LAW}} I); PII handled and logged to the project's policy;
|
|
31
|
+
tokens scoped and expiring. Grep the diff for key-shaped strings, and check what the
|
|
32
|
+
new code *logs*.
|
|
33
|
+
5. **Pass 3 — the supply chain.** A new or bumped dependency: who publishes it, how
|
|
34
|
+
maintained, what it pulls in transitively, any advisory against the pinned version
|
|
35
|
+
(the [deps-audit {{SKILL}}](deps-audit.md) carries the tooling). A destructive
|
|
36
|
+
capability exposed to an agent or a tool: its guard is enforced server-side, at the
|
|
37
|
+
boundary the call crosses, never left to the caller's judgement ({{DOCTRINE}} rigor 5).
|
|
38
|
+
6. **Report, don't fix.** Each finding as `file:line — attack — impact — fix`, ranked
|
|
39
|
+
critical → high → medium → note, with the evidence that made it a finding. Then the
|
|
40
|
+
verdict — **ship / fix-then-ship / block** — and, for anything above medium, the
|
|
41
|
+
test that would pin the fix. Applying fixes is a [develop {{SKILL}}](develop.md)
|
|
42
|
+
task on its own commit ({{LAW}} II); a review that quietly edits the code it judges
|
|
43
|
+
has stopped being a review.
|
|
44
|
+
|
|
45
|
+
## Done when
|
|
46
|
+
- The trust boundaries the change crosses are named, each class was checked against
|
|
47
|
+
the real code with evidence, no secret or unguarded destructive path rides along,
|
|
48
|
+
and a ranked findings list ends in a ship / fix-then-ship / block verdict — with no
|
|
49
|
+
code changed by the review itself.
|
|
50
|
+
|
|
51
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/ship.md
CHANGED
|
@@ -35,15 +35,4 @@ request or merge the branch.
|
|
|
35
35
|
- The PR is open (or the branch is merged) with a body stating what / why / how it
|
|
36
36
|
was tested, and nothing unrelated rides along.
|
|
37
37
|
|
|
38
|
-
|
|
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 -->
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# {{SKILL}}: skill-forge
|
|
2
|
+
|
|
3
|
+
> {{DESC_SKILL_FORGE}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** a task has repeated and no {{SKILL}} covers it; a {{SKILL}}'s
|
|
6
|
+
self-improvement loop produced an edit worth making; the user says "make this a
|
|
7
|
+
skill", "write a skill for…", "fix the trigger of…"; or two {{SKILLS}} keep
|
|
8
|
+
disambiguating against each other and should merge. Meta by nature: it edits the
|
|
9
|
+
apparatus, so every step ends in the user's assent ({{LAW}} II, {{LAW}} IV).
|
|
10
|
+
|
|
11
|
+
## Procedure
|
|
12
|
+
1. **Reuse before authoring** ({{DOCTRINE}} craft 1, craft 4). Read the catalogue — the
|
|
13
|
+
host's skill list, or AGENT.md §4 — and the nearest existing {{SKILL}} in full. If
|
|
14
|
+
its domain already covers the need, the change is an *edit* to that file (a step,
|
|
15
|
+
a trigger phrase, a done-when), not a new file. Name the skill by its domain, not
|
|
16
|
+
the situation that prompted it.
|
|
17
|
+
2. **Write the trigger first, then the procedure.** Start from
|
|
18
|
+
`{{DIR_SKILLS}}/_template.md`. The purpose line says *what*; the **Trigger** line
|
|
19
|
+
says *when*, in the words a user would actually say and the situations the model
|
|
20
|
+
would actually meet — the emitted `description:` is purpose + trigger, and it is
|
|
21
|
+
the only text the host matches a task against. Then the numbered procedure (each
|
|
22
|
+
step an action with a verification), and a **Done when** that a stranger could
|
|
23
|
+
check. Keep it to one coherent domain; a "Requires:" line only for a hard external
|
|
24
|
+
prerequisite. When only the user should ever open it (a teaching drill, a tool
|
|
25
|
+
gated on an environment the model cannot see), put the `invocation: user` HTML
|
|
26
|
+
comment on the line after the purpose blockquote — the template shows it. Never
|
|
27
|
+
quote that marker inside another skill's body: the emit matches it anywhere in the
|
|
28
|
+
text, and the quoting skill silently drops out of the model's catalogue.
|
|
29
|
+
A name the host already owns as a built-in command (Claude Code ships
|
|
30
|
+
`security-review`, `code-review`, `simplify`, `init`) is shadowed — pick another.
|
|
31
|
+
3. **Test the trigger against its neighbours.** For three real asks the skill should
|
|
32
|
+
catch and two it should not, decide from the descriptions alone which skill fires.
|
|
33
|
+
A wrong pick is a trigger to sharpen — or a sign two skills should be one. A trigger
|
|
34
|
+
that needs a "not this, use that" clause to be safe is a trigger with a fuzzy edge;
|
|
35
|
+
fix the edge rather than adding the clause.
|
|
36
|
+
4. **Register it where the host expects.** In an *installed* harness: the file under
|
|
37
|
+
`{{DIR_SKILLS}}/`, one row in AGENT.md §4's table, then `geneseed doctor` — it fails
|
|
38
|
+
if the table and the files disagree. In the *Geneseed source repo* the cost is the
|
|
39
|
+
full satellite set (`docs/extending.md` §3): the file, the §4 row, `DESC_<NAME>` in
|
|
40
|
+
every theme, `SKILL_CLASS`, a `registry.json` row, the README enumeration, then
|
|
41
|
+
`doctor --all` and the suites. A skill that bundles a script or several files is a
|
|
42
|
+
folder skill (`<name>/SKILL.md` + `VENDOR.md`), listed in `VENDORED_SKILL_DIRS`.
|
|
43
|
+
5. **Merge or retire honestly.** When two skills fold into one: keep the best steps of
|
|
44
|
+
each, rewrite the exit so the survivor routes to what the retired one led to, and
|
|
45
|
+
remove the retired file and *every* reference to it (table row, sibling links, theme
|
|
46
|
+
tokens, registry, README) — a dangling link is a build failure, a dangling trigger
|
|
47
|
+
phrase is a silent miss. Retirement is deletion; get consent ({{LAW}} IV).
|
|
48
|
+
6. **Verify by rendering.** Build or re-emit, open the emitted `SKILL.md`, read the
|
|
49
|
+
frontmatter description as the host will, and confirm the body carries no
|
|
50
|
+
unresolved token or dead link (`doctor`, or `geneseed-build --validate-only`).
|
|
51
|
+
Show the user the diff and the emitted description before it lands ({{LAW}} II).
|
|
52
|
+
|
|
53
|
+
## Done when
|
|
54
|
+
- The need is met by an edit to an existing {{SKILL}} or by one new file in its own
|
|
55
|
+
domain; the emitted description names both purpose and trigger and wins its five
|
|
56
|
+
test asks against the neighbours; every satellite the host or the repo demands is in
|
|
57
|
+
place, `doctor` is green, and the user saw and accepted the change.
|
|
58
|
+
|
|
59
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|