geneseed 3.3.0 → 3.5.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 +323 -0
- package/DESIGN.md +11 -14
- package/QUICKSTART.md +3 -1
- package/README.md +53 -44
- package/SETUP.md +25 -27
- package/SHIPPED.md +26 -32
- package/adapters/bob/README.md +12 -9
- package/adapters/copilot/README.md +28 -26
- package/adapters/opencode/GLOBAL-HARNESS-SPEC.md +1 -1
- package/adapters/opencode/README.md +8 -4
- package/adapters/opencode/plugins/geneseed-context.js +5 -3
- package/adapters/opencode/plugins/geneseed-workflow.js +30 -3
- package/adapters/opencode/workflows/_runtime.js +97 -7
- package/bin/build-driver.mjs +5 -1248
- package/bin/geneseed-cli.mjs +11 -6
- package/bin/geneseed-hook.mjs +4 -2
- package/docs/candidate-hosts.md +1 -1
- package/docs/design-history.md +37 -37
- package/docs/extending.md +49 -27
- package/docs/token-footprint.md +52 -26
- package/docs/web/agents.md +1 -1
- package/docs/web/claude-hooks.md +3 -2
- package/docs/web/collaboration.md +2 -2
- package/docs/web/first-session.md +2 -2
- package/docs/web/footprint.md +2 -2
- package/docs/web/harnesses.md +1 -1
- package/docs/web/model.md +1 -1
- package/docs/web/plugin-workflow.md +1 -0
- package/docs/web/rules.md +3 -3
- package/docs/web/setup-choices.md +2 -2
- package/docs/web/skills.md +1 -1
- package/docs/web/themes-author.md +1 -1
- package/docs/web-ui.md +18 -10
- package/harness.config.json +1 -1
- package/js/README.md +6 -5
- package/js/build/driver.mjs +1191 -0
- package/js/build/emit-claude.mjs +17 -10
- package/js/build/emit-common.mjs +4 -4
- package/js/build/generate.mjs +1 -1
- package/js/build/render.mjs +48 -44
- package/js/build/stubs.mjs +1 -1
- package/js/build/themes.mjs +4 -4
- package/js/build/version.mjs +12 -0
- package/js/cli-table.json +21 -6
- package/js/hosts/hooks.mjs +89 -74
- package/js/hosts/hosts.mjs +19 -2
- package/js/hosts/mcp.mjs +14 -20
- package/js/hosts/native.mjs +85 -25
- package/js/hosts/opencode.mjs +14 -0
- package/js/hosts/settings.mjs +52 -104
- package/js/inspect/checks-authoring.mjs +117 -3
- package/js/inspect/diff.mjs +1 -1
- package/js/inspect/doctor.mjs +1 -1
- package/js/inspect/excludes.mjs +1 -1
- package/js/inspect/inventory.mjs +12 -7
- package/js/inspect/scan.mjs +3 -14
- package/js/inspect/status.mjs +2 -2
- package/js/inspect/validate.mjs +1 -1
- package/js/lib/fs.mjs +23 -8
- package/js/lib/json.mjs +7 -1
- package/js/lib/proc.mjs +6 -4
- package/js/maintain/migrate.mjs +1 -1
- package/js/maintain/setup.mjs +1 -1
- package/js/maintain/uninstall.mjs +17 -15
- package/js/ui/cli.mjs +19 -0
- package/js/ui/menu.mjs +1 -1
- package/js/web/actions.mjs +4 -4
- package/js/web/activity.mjs +4 -4
- package/js/web/api.mjs +14 -11
- package/js/web/daemon.mjs +1 -1
- package/js/web/docs.mjs +12 -12
- package/js/web/handler.mjs +12 -5
- package/js/web/jobs.mjs +1 -1
- package/package.json +1 -1
- package/registry.json +86 -79
- package/src/AGENT.md.tmpl +83 -48
- package/src/agents/architect.md +4 -1
- package/src/agents/developer.md +2 -2
- 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/reviewer.md +5 -2
- 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/README.md +26 -3
- package/src/doctrines/craft.md +78 -5
- package/src/doctrines/ops.md +62 -0
- package/src/doctrines/process.md +91 -4
- package/src/doctrines/rigor.md +41 -1
- package/src/laws/universal.md +27 -21
- package/src/memory/README.md +4 -2
- package/src/modes/foreman.md +5 -5
- package/src/notebook/README.md +2 -1
- package/src/ontology/universal.md +71 -67
- package/src/postures/peer.md +3 -0
- 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 +2 -13
- package/src/skills/bruno-test-writer.md +3 -14
- 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/daydream/LICENSE +21 -0
- package/src/skills/daydream/VENDOR.md +3 -1
- 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 +7 -14
- 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 +4 -15
- package/src/skills/pipeline.md +6 -17
- 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/react-view-transitions/VENDOR.md +7 -1
- 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 +82 -26
- package/src/skills/worktree.md +52 -0
- package/themes/_TEMPLATE.json +15 -12
- package/themes/biker.json +14 -11
- package/themes/commentator.json +14 -11
- package/themes/cyberpunk.json +14 -11
- package/themes/gamer.json +14 -11
- package/themes/imperial.json +14 -11
- package/themes/joker.json +14 -11
- package/themes/marvin.json +14 -11
- package/themes/mean.json +14 -11
- package/themes/military.json +14 -11
- package/themes/neutral.json +15 -12
- package/themes/opencode/README.md +2 -2
- package/themes/pirate.json +14 -11
- package/themes/sports.json +14 -11
- package/themes/verstappen.json +14 -11
- package/themes/wizard.json +14 -11
- package/web/dist/assets/Activity-Flgf4kHy.js +1 -0
- package/web/dist/assets/ActivityDetail-DIpr85nh.js +1 -0
- package/web/dist/assets/CatalogRow-CjyLjaLb.js +1 -0
- package/web/dist/assets/Diff-Deisdha8.js +2 -0
- package/web/dist/assets/Docs-DGUdY4l4.js +2 -0
- package/web/dist/assets/Doctor-F74lJ69P.js +1 -0
- package/web/dist/assets/FilterInput-BakJLvaV.js +1 -0
- package/web/dist/assets/GreenhouseView-D072lBiD.js +2 -0
- package/web/dist/assets/Harness-DNRP2Va7.js +1 -0
- package/web/dist/assets/JournalView-DWFqZ0Iw.js +1 -0
- package/web/dist/assets/Laws-BN6g3HU7.js +3 -0
- package/web/dist/assets/Library-CDOv4emM.js +1 -0
- package/web/dist/assets/Markdown-BQAvN8xx.js +38 -0
- package/web/dist/assets/OperatorHudView-CwNIUVX8.js +2 -0
- package/web/dist/assets/Profile-CpP9BTne.js +1 -0
- package/web/dist/assets/Rules-DFXsUCB7.js +1 -0
- package/web/dist/assets/Settings-BqZVUtJ5.js +1 -0
- package/web/dist/assets/Skills-Cu6kBgfF.js +1 -0
- package/web/dist/assets/StatusBadge-Cg6j-NJL.js +1 -0
- package/web/dist/assets/activity-iWaWVtsR.js +1 -0
- package/web/dist/assets/drawable-BgfrEBer.js +1 -0
- package/web/dist/assets/index-CAqrWhKl.js +2 -0
- package/web/dist/assets/index-Ruh93A3A.css +1 -0
- package/web/dist/assets/jobBuckets-Dbq8ZlWW.js +1 -0
- package/web/dist/assets/lawCats-BLgxl151.js +1 -0
- package/web/dist/assets/react-DbkvxWG5.js +8 -0
- package/web/dist/assets/rolldown-runtime-CbXtAM7H.js +1 -0
- package/web/dist/index.html +4 -3
- package/web/src/pages/Laws.jsx +22 -8
- 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/react-view-transitions/README.md +0 -42
- package/src/skills/tdd.md +0 -31
- package/web/dist/assets/Activity-BfVcLrda.js +0 -1
- package/web/dist/assets/ActivityDetail-CQXccGPl.js +0 -1
- package/web/dist/assets/CatalogRow-DALEQImZ.js +0 -1
- package/web/dist/assets/Diff-BIjxXx46.js +0 -5
- package/web/dist/assets/Doctor-CJLbgsrw.js +0 -1
- package/web/dist/assets/FilterInput-CkUCk_lY.js +0 -1
- package/web/dist/assets/GreenhouseView-DfC5IILJ.js +0 -2
- package/web/dist/assets/Harness-Dm5CCU-v.js +0 -1
- package/web/dist/assets/JournalView-Cpu2eI4s.js +0 -1
- package/web/dist/assets/Laws-DDDVFuQz.js +0 -3
- package/web/dist/assets/Library-Dao3T9na.js +0 -1
- package/web/dist/assets/Markdown-C__nuWX5.js +0 -46
- package/web/dist/assets/OperatorHudView-DEpCtAjP.js +0 -2
- package/web/dist/assets/Profile-BlXtUlh2.js +0 -1
- package/web/dist/assets/Rules-DIre6gxR.js +0 -1
- package/web/dist/assets/Skills-rY13ZPhM.js +0 -1
- package/web/dist/assets/StatusBadge-wW_RS_my.js +0 -1
- package/web/dist/assets/activity-DpYPKNrA.js +0 -1
- package/web/dist/assets/index-BEZvPvpF.js +0 -1
- package/web/dist/assets/index-DNQE5ydy.js +0 -10
- package/web/dist/assets/index-DzdQjvM1.css +0 -1
- package/web/dist/assets/index-PmQGRS1X.js +0 -2
- package/web/dist/assets/jobBuckets-DfTUJUxR.js +0 -1
- package/web/dist/assets/lawCats-DUS9UTH4.js +0 -1
- package/web/dist/assets/react-DOpiTn5v.js +0 -32
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 -->
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# {{SKILL}}: teach
|
|
2
|
+
|
|
3
|
+
> {{DESC_TEACH}}
|
|
4
|
+
|
|
5
|
+
<!-- invocation: user -->
|
|
6
|
+
|
|
7
|
+
**Trigger:** the user wants to *learn* something and asks you to teach — "teach me X",
|
|
8
|
+
"get me up to speed on X", "this is confusing, break it down", "explain this passage",
|
|
9
|
+
"how do I get to X in N days". Three shapes, picked from the ask: a **crash course**
|
|
10
|
+
(from zero to functional, fast), a **decode** (confusing material handed over, make it
|
|
11
|
+
click), or a **path** (a specific result by a deadline, day by day). To *test* what the
|
|
12
|
+
user already knows rather than teach it, use the [quiz {{SKILL}}](quiz.md); to gather
|
|
13
|
+
facts from the web first, [research](research.md); to convert a PDF or web page into
|
|
14
|
+
readable form, [ingest](ingest.md).
|
|
15
|
+
|
|
16
|
+
## Procedure
|
|
17
|
+
1. Pin the footing before teaching anything: what the user wants to be able to *do*
|
|
18
|
+
afterwards, how much time they have, and what they already know. Ask once if any of
|
|
19
|
+
the three is missing, then proceed — do not plan around "learn X in general".
|
|
20
|
+
2. Pick the shape and run it:
|
|
21
|
+
- **Crash course** — act as a teacher who has only this one session and will never
|
|
22
|
+
see them again; the sole objective is *functional* before time runs out. Name
|
|
23
|
+
three things explicitly: **what to learn first**, **what to ignore completely**
|
|
24
|
+
(for now), and **the single exercise that, done once, puts them ahead of most
|
|
25
|
+
people who have studied this for months**. No theory without immediate use, no
|
|
26
|
+
bare lists. Have them do the exercise — or set it up so they can — rather than
|
|
27
|
+
read about it.
|
|
28
|
+
- **Decode** — read what they are stuck on and, before explaining anything, find the
|
|
29
|
+
one keystone sentence that makes the rest fall into place. Explain only that
|
|
30
|
+
sentence first, with an everyday analogy and no technical terms; confirm it
|
|
31
|
+
landed; then let the rest follow from it instead of re-explaining every line.
|
|
32
|
+
- **Path** — build a day-by-day route to the stated result. Each day carries exactly
|
|
33
|
+
three things: one task that fits the stated time budget (default 45 minutes), a
|
|
34
|
+
concrete criterion so they can tell they did it right, and one explicit
|
|
35
|
+
*what-not-to-do* that day. Trace the whole path against the goal; if finishing
|
|
36
|
+
every day would not deliver the result, rebuild it until it does.
|
|
37
|
+
3. Check it took: ask three questions only someone who understood could answer (a
|
|
38
|
+
crash course or decode), or walk the first day together (a path). A miss goes back
|
|
39
|
+
to the analogy or the exercise — re-anchor, don't hand over the answer.
|
|
40
|
+
4. Close by naming what to practise next and the gap most likely to trip them, so the
|
|
41
|
+
learning continues without you; offer the [quiz {{SKILL}}](quiz.md) for when they
|
|
42
|
+
want it tested.
|
|
43
|
+
|
|
44
|
+
## Done when
|
|
45
|
+
- The user is functional (crash course), has the keystone idea in plain terms and
|
|
46
|
+
passed the three questions (decode), or holds a dated path whose every day has a
|
|
47
|
+
timed task, a criterion and a what-not-to-do (path) — and knows what to practise
|
|
48
|
+
next.
|
|
49
|
+
|
|
50
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/tickets.md
CHANGED
|
@@ -30,15 +30,4 @@ tracker issues that fresh sessions can pick up independently.
|
|
|
30
30
|
- Every slice of the spec is a published ticket with explicit blockers, each
|
|
31
31
|
sized for one session, and at least one unblocked ticket exists to start on.
|
|
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 -->
|
package/src/skills/wayfinder.md
CHANGED
|
@@ -35,15 +35,4 @@ the destination can be named but the route to it cannot; the user says
|
|
|
35
35
|
- Every decision ticket is closed, the map indexes them all, and someone could
|
|
36
36
|
pursue the destination without a single further decision.
|
|
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 -->
|
package/src/skills/wiki.md
CHANGED
|
@@ -54,15 +54,4 @@ truth.
|
|
|
54
54
|
- anything written follows the wiki's `conventions`, links into the graph,
|
|
55
55
|
sits in the right folder (or the `inbox`), and touches nothing `protected`.
|
|
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/workflow.md
CHANGED
|
@@ -2,37 +2,93 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_WORKFLOW}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** a task that benefits from *deterministic* multi-agent orchestration —
|
|
5
|
+
**Trigger:** a task that benefits from *deterministic* multi-agent orchestration — a
|
|
6
|
+
fan-out across independent units, a staged find→verify pipeline, a fresh-context
|
|
7
|
+
handoff between phases, or a loop that accumulates to a target — **and** the host
|
|
8
|
+
exposes a workflow tool. When it does not, use [parallel-agents](parallel-agents.md)
|
|
9
|
+
or [council](council.md) instead — those are *model-driven*; this {{SKILL}} is
|
|
10
|
+
*code-driven*.
|
|
6
11
|
|
|
7
12
|
## What it is
|
|
8
13
|
|
|
9
|
-
A
|
|
14
|
+
A workflow is a script that orchestrates subagents in **code**, not prose. The
|
|
15
|
+
script — not the model — decides what fans out, what runs in sequence, and what
|
|
16
|
+
verifies; the host runs it and hands back a distilled result. Use it when the control
|
|
17
|
+
flow should be exact and repeatable rather than re-improvised each time, and when the
|
|
18
|
+
work is worth a crew: a one-file tweak or a question never is.
|
|
10
19
|
|
|
11
|
-
|
|
20
|
+
## The hosts
|
|
21
|
+
|
|
22
|
+
| Host | Tool | Scripts | Opt-in |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| OpenCode | `workflow` (the `geneseed-workflow` plugin) | **saved only** — `<name>.js` in `.opencode/workflows/` per repo or `<config>/workflows/` global (`GENESEED_WORKFLOWS_DIR` overrides); nothing inline is eval'd | none — call it when the shape fits |
|
|
25
|
+
| Claude Code | `Workflow` (native) | a saved `.claude/workflows/<name>` by `name`, **or** an inline `script` you author | **required** — the tool refuses unless the user opted in for this task ("use a workflow", "ultracode", a skill that says so) |
|
|
26
|
+
| Bob, Copilot | none | — | fall back to [parallel-agents](parallel-agents.md) / [council](council.md) |
|
|
27
|
+
| any, under Orca | Orca orchestration (`orca skills get orchestration`) | tasks, not scripts — each task spec names its target, change, ownership and acceptance | the user asked to supervise or coordinate workers |
|
|
28
|
+
|
|
29
|
+
Both runtimes speak the same primitives — `agent()`, `parallel()`, `pipeline()`,
|
|
30
|
+
`phase()`, `args` — and every script opens with a literal `export const meta = { name,
|
|
31
|
+
description, phases }`. The four shipped scripts are OpenCode-saved today; on Claude
|
|
32
|
+
Code the same shapes are authored inline (the host's `workflow-authoring` reference
|
|
33
|
+
carries the script API — load it before writing one).
|
|
34
|
+
|
|
35
|
+
## The shipped shapes
|
|
36
|
+
|
|
37
|
+
- **review** — sweep a change across dimensions, then adversarially verify each
|
|
38
|
+
finding before reporting (the canonical find→verify pipeline: a dimension's findings
|
|
39
|
+
verify as soon as that dimension returns, no barrier).
|
|
40
|
+
- **research-plan-implement** — three clean phases, each in its own child context,
|
|
41
|
+
carrying only the distilled output of the prior phase.
|
|
42
|
+
- **council** — the [council](council.md) debate on rails: seat the stance {{AGENTS}},
|
|
43
|
+
gather positions in parallel, chair synthesises, dissent preserved.
|
|
44
|
+
- **dispatch** — decompose a multi-domain goal, route each subtask to its owning
|
|
45
|
+
capability {{AGENT}}, converge (model-driven fallback: [parallel-agents](parallel-agents.md)).
|
|
12
46
|
|
|
13
47
|
## Procedure
|
|
14
|
-
1. Confirm the host
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
48
|
+
1. **Confirm the host and the opt-in.** OpenCode: the `workflow` tool is present. Claude
|
|
49
|
+
Code: the tool is present *and* the user opted in — if the shape plainly warrants a
|
|
50
|
+
workflow but they have not, describe it in two lines with its rough cost (how many
|
|
51
|
+
agents) and ask; never call the tool on your own judgement. No tool at all → fall
|
|
52
|
+
back and stop here.
|
|
53
|
+
2. **Confirm the task is crew-sized** and the shape is one of the four above (or a
|
|
54
|
+
plain variation). Sequential work with shared state is a [plan](plan.md); a
|
|
55
|
+
dev↔test loop in an isolated tree is a [pipeline](pipeline.md), which itself runs on
|
|
56
|
+
a workflow where one exists.
|
|
57
|
+
3. **Pick saved over inline.** List what is available first — OpenCode: call `workflow`
|
|
58
|
+
with no `name`; Claude Code: read `.claude/workflows/`. A saved script has been run
|
|
59
|
+
before; an inline one has not. Author inline only when no saved shape fits, keep it
|
|
60
|
+
to the primitives, and hold to the host's size guideline unless the user asked for
|
|
61
|
+
more.
|
|
62
|
+
4. **Give every editing agent a write set, and isolate parallel editors** ({{DOCTRINE}}
|
|
63
|
+
process 8). Name in each editing `agent()` prompt the files it may change and have it
|
|
64
|
+
return the files it did change; overlapping sets run in sequence, not in one
|
|
65
|
+
`parallel()`. Pass `isolation: 'worktree'` to each agent that edits in parallel — both
|
|
66
|
+
runtimes take it; read-only agents need none. After the fan-out, compare the changed
|
|
67
|
+
files in plain script code (OpenCode hands them to you as `overlaps()`) — a file two
|
|
68
|
+
agents touched goes to one merge agent, never to whoever wrote last.
|
|
69
|
+
5. **Pass the task as `args`, never baked in** — target paths, the motion, the question,
|
|
70
|
+
any timestamp. Scripts stay deterministic: no wall clock, no randomness, nothing
|
|
71
|
+
read from the environment that the next run would see differently, so a run is a
|
|
72
|
+
pure function of (script, args, child replies) and can be replayed.
|
|
73
|
+
6. **Run it and wait for the result, not the transcript.** The run is asynchronous on
|
|
74
|
+
Claude Code (a task notification arrives; `/workflows` watches it live) and
|
|
75
|
+
synchronous on OpenCode. Read the returned summary; the full structured result and
|
|
76
|
+
the phase-by-phase trace are in the run's progress file — point the user there for
|
|
77
|
+
detail, do not paste it. Never fabricate a result for a run that has not returned.
|
|
78
|
+
7. **On failure, resume — don't rerun.** A script that died mid-way keeps its completed
|
|
79
|
+
`agent()` results; fix the script or the args and resume from the run id where the
|
|
80
|
+
host supports it, so finished stages are not paid twice. A stage that keeps failing
|
|
81
|
+
is a finding about the task, not a reason to loop.
|
|
82
|
+
8. **Exit — carry the conclusion yourself.** The workflow gathers and verifies;
|
|
83
|
+
committing, pushing, merging, or opening anything outward stays with you
|
|
84
|
+
({{DOCTRINE}} process 5, {{LAW}} IV). State what the run concluded, what you are
|
|
85
|
+
doing with it, and where the trace lives.
|
|
23
86
|
|
|
24
87
|
## Done when
|
|
25
|
-
- The right
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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.
|
|
88
|
+
- The right shape ran to completion on the host's tool (with the user's opt-in where
|
|
89
|
+
the host demands one), its summary was read and its trace is locatable, a failed run
|
|
90
|
+
was resumed rather than restarted, and you — not the script — have carried its
|
|
91
|
+
conclusion into the next {{SKILL}} or the commit gate. Or: no tool existed, and the
|
|
92
|
+
model-driven equivalent ran instead.
|
|
93
|
+
|
|
94
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# {{SKILL}}: worktree
|
|
2
|
+
|
|
3
|
+
> {{DESC_WORKTREE}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** work must not share a working tree with what is already in flight — a
|
|
6
|
+
[pipeline](pipeline.md) crew needs its own tree, a second task starts while the first
|
|
7
|
+
is uncommitted, another agent or session is editing this checkout, a risky migration
|
|
8
|
+
or rewrite needs a disposable copy, or the user says "worktree", "isolate this",
|
|
9
|
+
"don't touch my checkout". Also the first thing to reach for when `git status` shows
|
|
10
|
+
changes you did not make.
|
|
11
|
+
|
|
12
|
+
## Procedure
|
|
13
|
+
1. **Look before you branch** ({{LAW}} III). `git status` and `git worktree list`
|
|
14
|
+
first. Uncommitted changes you did not author mean someone else owns this tree —
|
|
15
|
+
never `checkout -b` from it (that moves *their* HEAD onto your branch) and never
|
|
16
|
+
stash or revert it. Note the branch they are on; you will not touch it.
|
|
17
|
+
2. **Create the tree beside the repo, from a clean base:**
|
|
18
|
+
```
|
|
19
|
+
git worktree add -b <type>/<slug> ../<repo>-<slug> <base>
|
|
20
|
+
```
|
|
21
|
+
`<base>` is the integration branch (`main`, or `origin/main` after a `git fetch`),
|
|
22
|
+
never the dirty tree's HEAD. One worktree per task; name the directory after the
|
|
23
|
+
branch so `git worktree list` reads as a task list.
|
|
24
|
+
3. **Make it runnable.** A worktree shares the repository, not the untracked files:
|
|
25
|
+
install dependencies (`npm ci`, the project's equivalent) or link the ones that are
|
|
26
|
+
large and pure; copy no `.env` — secrets are the user's to place ({{LAW}} I). Run
|
|
27
|
+
the project's checks once in the new tree and read the output before changing
|
|
28
|
+
anything, so a later red is yours.
|
|
29
|
+
4. **Work only in the worktree.** Every edit, test, commit and `doctor`/lint run
|
|
30
|
+
happens under its path — use absolute paths in tools whose cwd resets. The
|
|
31
|
+
original checkout stays as found. Host hooks or shims that write machine-wide
|
|
32
|
+
state (a global config, a hook shim) run from the worktree only when they resolve
|
|
33
|
+
the repo through it; verify with the tool's own status command rather than assume.
|
|
34
|
+
5. **Integrate through the normal gate** — commit via the [commit {{SKILL}}](commit.md),
|
|
35
|
+
ship via [ship](ship.md). A worktree earns no exemption from per-commit and
|
|
36
|
+
per-push consent ({{DOCTRINE}} process 5). Expect conflicts with a sibling tree that
|
|
37
|
+
touched the same files; resolve them on the branch, not in the other tree.
|
|
38
|
+
6. **Clean up when the branch is merged or abandoned** — with consent, since removal
|
|
39
|
+
is deletion ({{LAW}} IV):
|
|
40
|
+
```
|
|
41
|
+
git worktree remove ../<repo>-<slug>
|
|
42
|
+
git branch -d <type>/<slug>
|
|
43
|
+
```
|
|
44
|
+
`git worktree prune` after a directory was deleted by hand. Leave nothing listed
|
|
45
|
+
that no task owns.
|
|
46
|
+
|
|
47
|
+
## Done when
|
|
48
|
+
- The task ran to its commit or PR entirely inside its own tree from a clean base,
|
|
49
|
+
the original checkout is byte-for-byte as it was found, and the worktree is either
|
|
50
|
+
still listed with a live task or removed with its branch.
|
|
51
|
+
|
|
52
|
+
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/themes/_TEMPLATE.json
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
"EPI_LAWS": "<epigraph above the Laws section, themed>",
|
|
8
8
|
"EPI_DOCTRINES": "<epigraph above the Doctrines section, themed>",
|
|
9
9
|
"PACT": "<noun for the mutual user–agent contract, e.g. Pact>",
|
|
10
|
-
"EPI_PACT": "<epigraph above the Pact section, themed>",
|
|
11
10
|
"EPI_AGENTS": "<epigraph above the Agents section, themed>",
|
|
12
11
|
"EPI_SKILLS": "<epigraph above the Skills section, themed>",
|
|
13
12
|
"EPI_MEMORY": "<epigraph above the Memory section, themed>",
|
|
@@ -23,6 +22,7 @@
|
|
|
23
22
|
"DESC_DOCS": "<one-line description: writes user-facing docs after code lands>",
|
|
24
23
|
"DESC_SECURITY": "<one-line description: audits changes touching the security surface>",
|
|
25
24
|
"DESC_EXPLORER": "<one-line description: reads/searches widely, returns only distilled findings>",
|
|
25
|
+
"DESC_RESEARCHER": "<one-line description: searches and fetches the open web, cross-checks every claim, returns sourced findings>",
|
|
26
26
|
"DESC_ADVOCATE": "<council seat: argues the strongest case FOR the proposal>",
|
|
27
27
|
"DESC_SKEPTIC": "<council seat: devil's advocate — failure modes and hidden assumptions>",
|
|
28
28
|
"DESC_PRAGMATIST": "<council seat: weighs cost, effort, complexity vs payoff>",
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
"DESC_COMMIT": "<one-line description: stage the right paths and write a focused commit>",
|
|
43
43
|
"DESC_CODE_REVIEW": "<one-line description: review a diff/PR — correctness first, quality second>",
|
|
44
44
|
"DESC_BRAINSTORM": "<one-line description: turn a raw idea into an approved design before code>",
|
|
45
|
-
"DESC_CLARIFY": "<one-line description: interview the user to pin goal, scope, success criteria>",
|
|
46
45
|
"DESC_CODEBASE_DESIGN": "<one-line description: design deep modules behind small interfaces at deliberate seams>",
|
|
47
46
|
"DESC_DOMAIN_MODELING": "<one-line description: maintain the domain glossary and record decisions as ADRs>",
|
|
48
47
|
"DESC_WAYFINDER": "<one-line description: map an oversized effort as decision tickets and resolve them until the route is clear>",
|
|
@@ -57,19 +56,20 @@
|
|
|
57
56
|
"DESC_PONYTAIL": "<one-line description: force the laziest working solution — minimal, shortest path, stdlib/native before custom code; lite/full/ultra intensity>",
|
|
58
57
|
"DESC_PARALLEL_AGENTS": "<one-line description: fan independent subtasks to concurrent subagents, then converge>",
|
|
59
58
|
"DESC_PIPELINE": "<one-line description: spawn a small crew — analyst, developer, tester — to work a substantial task in isolation, merging only on mechanical proof (tests + lint green)>",
|
|
60
|
-
"DESC_TDD": "<one-line description: drive implementation with a failing test first>",
|
|
61
59
|
"DESC_DEVELOP": "<one-line description: drive a code change through cover-and-verify — smallest change, tests written for it, affected suite green, committed slice by slice>",
|
|
60
|
+
"DESC_TEACH": "<one-line description: teach toward a result — crash course, decode confusing material, or a day-by-day path to a deadline>",
|
|
61
|
+
"DESC_QUIZ": "<one-line description: test what the user knows instead of explaining — drill, explain-it-back check, or mastery claim stress-tested>",
|
|
62
|
+
"DESC_SECURITY_AUDIT": "<one-line description: review a change for how it would be attacked and what it leaks, ending in ship / fix / block>",
|
|
63
|
+
"DESC_SKILL_FORGE": "<one-line description: author, sharpen, merge, or retire a skill — reuse first, trigger tested, every satellite registered>",
|
|
64
|
+
"DESC_WORKTREE": "<one-line description: isolate a task in its own git worktree from a clean base, integrate through the normal gate, remove when merged>",
|
|
65
|
+
"DESC_CI_FIX": "<one-line description: turn a red CI run green at the cause — read the log, reproduce under CI's conditions, fix, watch the re-run>",
|
|
66
|
+
"DESC_DEPS_AUDIT": "<one-line description: survey dependencies — outdated, vulnerable, abandoned, unused — into a risk-ordered upgrade plan, installing nothing>",
|
|
67
|
+
"DESC_CONSOLIDATE_MEMORY": "<one-line description: tend the memory set — verify facts against the live repo, merge, retire, promote, rebuild the index>",
|
|
62
68
|
"DESC_HANDOFF": "<one-line description: snapshot task state so a fresh context can resume in one read>",
|
|
63
69
|
"DESC_SHIP": "<one-line description: open a PR with a structured body, or finish and merge a branch>",
|
|
64
70
|
"DESC_RELEASE": "<one-line description: cut a release — bump, changelog, tag, kept in sync>",
|
|
65
71
|
"DESC_INGEST": "<one-line description: convert a PDF/Office/web doc into clean markdown before reading>",
|
|
66
72
|
"DESC_RESEARCH": "<one-line description: answer from the open web, verifying each claim against independent sources>",
|
|
67
|
-
"DESC_LEARNING_PATH": "<one-line description: turn a goal+deadline into a day-by-day path — daily timed task, correctness criterion, what not to do>",
|
|
68
|
-
"DESC_GAP_DETECTOR": "<one-line description: stress-test a mastery claim with five simple-looking questions, blunt verdict on the gaps>",
|
|
69
|
-
"DESC_FEYNMAN": "<one-line description: explain-it-simply check, caught on jargon/skipped steps/over-simplification, readout of what isn't solid>",
|
|
70
|
-
"DESC_CRASH_COURSE": "<one-line description: go from zero to functional in a skill fast — what to learn first, what to ignore, the one exercise that puts you ahead>",
|
|
71
|
-
"DESC_DRILL": "<one-line description: turn shaky knowledge into reflex — real situations, questioned through your mistakes, answer withheld until you've tried>",
|
|
72
|
-
"DESC_DECODE": "<one-line description: make confusing material click — one keystone sentence, an everyday analogy, then a comprehension check>",
|
|
73
73
|
"DESC_HERDR": "<one-line description: drive herdr from inside it — split panes, spawn agents, read panes>",
|
|
74
74
|
"DESC_RULE": "<one-line description: ask whether the user wants a standing rule or a durable memory, then write the memory, or pressure-test the rule until it is generic and adopt it in user-rules.md>",
|
|
75
75
|
"DESC_PROFILE": "<one-line description: interview the user and draft or refresh PROFILE.md — who they are, how they work, how they like answers pitched; identity only, rules go to user-rules.md>",
|
|
@@ -83,9 +83,9 @@
|
|
|
83
83
|
"LEX_VI": "<themed title for Law VI (Data, Not Orders)>",
|
|
84
84
|
"LEX_VII": "<themed title for Law VII (Least Privilege)>",
|
|
85
85
|
"LEX_VIII": "<themed title for Law VIII (Cure the Cause)>",
|
|
86
|
-
"LEX_IX": "<themed title for Law IX (External Gate)>",
|
|
86
|
+
"LEX_IX": "<themed title for the retired Law IX (External Gate), ending in (retired)>",
|
|
87
87
|
"LEX_X": "<themed title for Law X (Echo the Intent)>",
|
|
88
|
-
"LEX_XI": "<themed title for Law XI (Absence Is a Claim)>",
|
|
88
|
+
"LEX_XI": "<themed title for the retired Law XI (Absence Is a Claim), ending in (retired)>",
|
|
89
89
|
"PACK_CRAFT": "<display name of the craft doctrine pack — how code is written>",
|
|
90
90
|
"PACK_RIGOR": "<display name of the rigor doctrine pack — how work is proven>",
|
|
91
91
|
"PACK_OPS": "<display name of the ops doctrine pack — how the machine is driven>",
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"DOC_CRAFT_4": "<themed title for craft doctrine 4 (Search Before Creating)>",
|
|
97
97
|
"DOC_CRAFT_5": "<themed title for craft doctrine 5 (Respect Conventions)>",
|
|
98
98
|
"DOC_CRAFT_6": "<themed title for craft doctrine 6 (Smallest Viable Diff)>",
|
|
99
|
+
"DOC_CRAFT_7": "<themed title for craft doctrine 7 (One Writer Per Value)>",
|
|
99
100
|
"DOC_RIGOR_1": "<themed title for rigor doctrine 1 (Idempotent by Default)>",
|
|
100
101
|
"DOC_RIGOR_2": "<themed title for rigor doctrine 2 (Honest Tests)>",
|
|
101
102
|
"DOC_RIGOR_3": "<themed title for rigor doctrine 3 (Cover and Verify)>",
|
|
@@ -107,6 +108,7 @@
|
|
|
107
108
|
"DOC_OPS_4": "<themed title for ops doctrine 4 (Complete the Teardown)>",
|
|
108
109
|
"DOC_OPS_5": "<themed title for ops doctrine 5 (Record the Probe, Not the Snapshot)>",
|
|
109
110
|
"DOC_OPS_6": "<themed title for ops doctrine 6 (Restart Is Not Reload)>",
|
|
111
|
+
"DOC_OPS_7": "<themed title for ops doctrine 7 (Serialize Against a Rationed Resource)>",
|
|
110
112
|
"DOC_PROCESS_1": "<themed title for process doctrine 1 (Persist Insight)>",
|
|
111
113
|
"DOC_PROCESS_2": "<themed title for process doctrine 2 (Plan Before Acting)>",
|
|
112
114
|
"DOC_PROCESS_3": "<themed title for process doctrine 3 (Context Economy)>",
|
|
@@ -114,13 +116,14 @@
|
|
|
114
116
|
"DOC_PROCESS_5": "<themed title for process doctrine 5 (Consent Before Push)>",
|
|
115
117
|
"DOC_PROCESS_6": "<themed title for process doctrine 6 (Bound the Loop)>",
|
|
116
118
|
"DOC_PROCESS_7": "<themed title for process doctrine 7 (Codes That Persist)>",
|
|
119
|
+
"DOC_PROCESS_8": "<themed title for process doctrine 8 (One Writer Per File)>",
|
|
117
120
|
"INTRO_DOC": "<themed intro: this file is the entry point an AI agent reads in this repo>",
|
|
118
121
|
"INTRO_AGENTS": "<themed intro to the Agents section — delegate focused work to a specialist>",
|
|
119
122
|
"INTRO_SKILLS": "<themed intro to the Skills section — run the written procedure before improvising>",
|
|
120
123
|
"INTRO_WORKSPACE": "<themed intro to the Workspace section — the install dir is shared>",
|
|
121
124
|
"INTRO_SCRIPTS": "<themed intro to the Scripts section — everything above works on self-discipline alone>",
|
|
122
125
|
"BANNER": "<multi-line ASCII banner shown at the top of AGENT.md; use \\n for line breaks>",
|
|
123
|
-
"ONTOLOGY": "<noun for the always-on worldview tier, e.g.
|
|
126
|
+
"ONTOLOGY": "<noun for the always-on worldview tier, e.g. Ethos — a bare noun with no leading article, since it is read inline mid-sentence>",
|
|
124
127
|
"LAW": "<singular noun for a rule in this theme, e.g. Rule / Dictate / Law>",
|
|
125
128
|
"LAWS": "<plural of LAW>",
|
|
126
129
|
"DOCTRINE": "<SINGLE-WORD singular noun for one optional doctrine rule, e.g. Doctrine — a space in this value breaks the heading parser silently>",
|