geneseed 2.0.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 +938 -0
- package/DESIGN.md +1423 -0
- package/LICENSE +21 -0
- package/QUICKSTART.md +48 -0
- package/README.md +336 -0
- package/SETUP.md +1027 -0
- package/SHIPPED.md +70 -0
- package/adapters/bob/README.md +100 -0
- package/adapters/claude-code/README.md +101 -0
- package/adapters/claude-code/settings.json +47 -0
- package/adapters/claude-code/skills/geneseed/SKILL.md +72 -0
- package/adapters/copilot/README.md +76 -0
- package/adapters/opencode/GLOBAL-HARNESS-SPEC.md +434 -0
- package/adapters/opencode/HOW-OPENCODE-LOADS.md +158 -0
- package/adapters/opencode/README.md +582 -0
- package/adapters/opencode/agents/orchestrator.md +25 -0
- package/adapters/opencode/opencode.json +44 -0
- package/adapters/opencode/plugins/geneseed-activity.js +430 -0
- package/adapters/opencode/plugins/geneseed-context.js +876 -0
- package/adapters/opencode/plugins/geneseed-guard.js +290 -0
- package/adapters/opencode/plugins/geneseed-learn.js +396 -0
- package/adapters/opencode/plugins/geneseed-notify.js +142 -0
- package/adapters/opencode/plugins/geneseed-ponytail.js +148 -0
- package/adapters/opencode/plugins/geneseed-workflow.js +183 -0
- package/adapters/opencode/workflows/_runtime.js +277 -0
- package/adapters/opencode/workflows/council.js +64 -0
- package/adapters/opencode/workflows/dispatch.js +89 -0
- package/adapters/opencode/workflows/research-plan-implement.js +43 -0
- package/adapters/opencode/workflows/review.js +57 -0
- package/bin/geneseed-cli.mjs +412 -0
- package/bin/geneseed-hook.mjs +129 -0
- package/bin/geneseed.mjs +1086 -0
- package/docs/declined.md +149 -0
- package/docs/limits.md +270 -0
- package/docs/opencode-plugin-setup.md +64 -0
- package/docs/token-footprint.md +68 -0
- package/docs/web/_groups.json +45 -0
- package/docs/web/about.md +6 -0
- package/docs/web/adapters-claude-code.md +8 -0
- package/docs/web/adapters-opencode-loads.md +8 -0
- package/docs/web/adapters-opencode-spec.md +8 -0
- package/docs/web/adapters-opencode.md +8 -0
- package/docs/web/agents.md +8 -0
- package/docs/web/authoring.md +11 -0
- package/docs/web/autostart.md +9 -0
- package/docs/web/claude-hooks.md +36 -0
- package/docs/web/cli.md +6 -0
- package/docs/web/collaboration.md +27 -0
- package/docs/web/configure-wiki.md +9 -0
- package/docs/web/design.md +7 -0
- package/docs/web/env-knobs.md +9 -0
- package/docs/web/exclusions.md +26 -0
- package/docs/web/first-session.md +28 -0
- package/docs/web/footprint.md +31 -0
- package/docs/web/foreman-mode.md +33 -0
- package/docs/web/glossary.md +6 -0
- package/docs/web/harnesses.md +28 -0
- package/docs/web/headless.md +9 -0
- package/docs/web/ingest-docs.md +9 -0
- package/docs/web/install-paths.md +9 -0
- package/docs/web/install-quick.md +35 -0
- package/docs/web/lsp-overview.md +37 -0
- package/docs/web/mcp-claude-code.md +10 -0
- package/docs/web/mcp-filesystem.md +9 -0
- package/docs/web/mcp-gitlab.md +9 -0
- package/docs/web/mcp-markitdown.md +9 -0
- package/docs/web/mcp-overview.md +34 -0
- package/docs/web/mcp-trouble.md +9 -0
- package/docs/web/mcp-verify.md +9 -0
- package/docs/web/memory.md +7 -0
- package/docs/web/migrate.md +39 -0
- package/docs/web/model.md +20 -0
- package/docs/web/notebook.md +7 -0
- package/docs/web/pipelines.md +24 -0
- package/docs/web/plugin-activity.md +23 -0
- package/docs/web/plugin-context.md +26 -0
- package/docs/web/plugin-guard.md +24 -0
- package/docs/web/plugin-learn.md +27 -0
- package/docs/web/plugin-notify.md +24 -0
- package/docs/web/plugin-ponytail.md +23 -0
- package/docs/web/plugin-setup.md +7 -0
- package/docs/web/plugin-workflow.md +24 -0
- package/docs/web/plugins.md +17 -0
- package/docs/web/project-context.md +9 -0
- package/docs/web/rules.md +8 -0
- package/docs/web/run-anywhere.md +9 -0
- package/docs/web/self-improve.md +8 -0
- package/docs/web/setup-choices.md +39 -0
- package/docs/web/skills.md +8 -0
- package/docs/web/themes-author.md +8 -0
- package/docs/web/themes.md +9 -0
- package/docs/web/token-footprint.md +7 -0
- package/docs/web/trouble.md +38 -0
- package/docs/web/upgrade.md +9 -0
- package/docs/web/verify.md +30 -0
- package/docs/web/wiki.md +7 -0
- package/docs/web/worktree.md +10 -0
- package/docs/web-ui.md +144 -0
- package/docs/wiki.md +43 -0
- package/geneseed +39 -0
- package/geneseed.cmd +34 -0
- package/harness.config.json +6 -0
- package/js/anim.mjs +326 -0
- package/js/catalog.mjs +112 -0
- package/js/checkout.mjs +88 -0
- package/js/cli-table.json +1034 -0
- package/js/cli.mjs +498 -0
- package/js/diff.mjs +384 -0
- package/js/doctor.mjs +1364 -0
- package/js/emit.mjs +1373 -0
- package/js/excludes.mjs +271 -0
- package/js/generate.mjs +379 -0
- package/js/hooks.mjs +1026 -0
- package/js/hosts.mjs +253 -0
- package/js/installs.mjs +378 -0
- package/js/inventory.mjs +175 -0
- package/js/lib/fs.mjs +913 -0
- package/js/lib/proc.mjs +28 -0
- package/js/lib/udiff.mjs +275 -0
- package/js/link.mjs +286 -0
- package/js/mcp.mjs +335 -0
- package/js/memory.mjs +108 -0
- package/js/menu.mjs +118 -0
- package/js/migrate.mjs +251 -0
- package/js/native.mjs +426 -0
- package/js/opencode.mjs +325 -0
- package/js/registry.mjs +110 -0
- package/js/render.mjs +282 -0
- package/js/settings.mjs +924 -0
- package/js/setup.mjs +492 -0
- package/js/status.mjs +281 -0
- package/js/themes.mjs +195 -0
- package/js/tui.mjs +444 -0
- package/js/uninstall.mjs +1137 -0
- package/js/update.mjs +910 -0
- package/js/web/actions.mjs +868 -0
- package/js/web/activity.mjs +284 -0
- package/js/web/api.mjs +873 -0
- package/js/web/docs.mjs +531 -0
- package/js/web/graph.mjs +0 -0
- package/js/web/jobs.mjs +480 -0
- package/js/web/server.mjs +1135 -0
- package/package.json +54 -0
- package/registry.json +474 -0
- package/src/AGENT.md.tmpl +390 -0
- package/src/agents/_template.md +76 -0
- package/src/agents/advocate.md +36 -0
- package/src/agents/architect.md +55 -0
- package/src/agents/developer.md +66 -0
- package/src/agents/docs.md +54 -0
- package/src/agents/empiricist.md +39 -0
- package/src/agents/explorer.md +54 -0
- package/src/agents/framer.md +36 -0
- package/src/agents/historian.md +51 -0
- package/src/agents/operator.md +37 -0
- package/src/agents/pragmatist.md +37 -0
- package/src/agents/reviewer.md +52 -0
- package/src/agents/security.md +57 -0
- package/src/agents/skeptic.md +48 -0
- package/src/agents/steward.md +36 -0
- package/src/agents/tester.md +54 -0
- package/src/agents/user-advocate.md +36 -0
- package/src/agents/visionary.md +36 -0
- package/src/laws/universal.md +387 -0
- package/src/memory/README.md +109 -0
- package/src/memory/gitignore +6 -0
- package/src/modes/README.md +26 -0
- package/src/modes/direct.md +2 -0
- package/src/modes/foreman.md +19 -0
- package/src/notebook/README.md +39 -0
- package/src/notebook/gitignore +7 -0
- package/src/postures/README.md +31 -0
- package/src/postures/artisan.md +14 -0
- package/src/postures/assistant.md +12 -0
- package/src/postures/expert.md +11 -0
- package/src/postures/mentor.md +11 -0
- package/src/postures/peer.md +12 -0
- package/src/skills/_template.md +47 -0
- package/src/skills/brainstorm.md +28 -0
- package/src/skills/clarify.md +28 -0
- package/src/skills/codebase-design.md +44 -0
- package/src/skills/commit.md +48 -0
- package/src/skills/council.md +34 -0
- package/src/skills/crash-course.md +28 -0
- package/src/skills/daydream/.claude-plugin/plugin.json +9 -0
- package/src/skills/daydream/SKILL.md +74 -0
- package/src/skills/daydream/VENDOR.md +25 -0
- package/src/skills/daydream/critic-prompt.md +38 -0
- package/src/skills/daydream/instructions.md +422 -0
- package/src/skills/daydream/synthesizer-prompt.md +41 -0
- package/src/skills/debug.md +37 -0
- package/src/skills/decode.md +28 -0
- package/src/skills/develop.md +29 -0
- package/src/skills/document-project.md +79 -0
- package/src/skills/domain-modeling.md +38 -0
- package/src/skills/drill.md +28 -0
- package/src/skills/feynman.md +26 -0
- package/src/skills/forge-mcp.md +48 -0
- package/src/skills/fresh-eyes.md +29 -0
- package/src/skills/frontend-design.md +58 -0
- package/src/skills/gap-detector.md +27 -0
- package/src/skills/geneseed-code-review.md +33 -0
- package/src/skills/geneseed.md +29 -0
- package/src/skills/git-archaeology.md +47 -0
- package/src/skills/git-rescue.md +68 -0
- package/src/skills/handoff.md +29 -0
- package/src/skills/herdr.md +164 -0
- package/src/skills/ingest.md +49 -0
- package/src/skills/learning-path.md +26 -0
- package/src/skills/migrate.md +45 -0
- package/src/skills/opencode-theme.md +52 -0
- package/src/skills/parallel-agents.md +28 -0
- package/src/skills/pipeline.md +52 -0
- package/src/skills/plan.md +45 -0
- package/src/skills/ponytail.md +29 -0
- package/src/skills/profile.md +58 -0
- package/src/skills/prose.md +42 -0
- package/src/skills/prototype.md +44 -0
- package/src/skills/react-view-transitions/AGENTS.md +955 -0
- package/src/skills/react-view-transitions/README.md +42 -0
- package/src/skills/react-view-transitions/SKILL.md +320 -0
- package/src/skills/react-view-transitions/VENDOR.md +16 -0
- package/src/skills/react-view-transitions/metadata.json +12 -0
- package/src/skills/react-view-transitions/references/css-recipes.md +242 -0
- package/src/skills/react-view-transitions/references/implementation.md +182 -0
- package/src/skills/react-view-transitions/references/nextjs.md +176 -0
- package/src/skills/react-view-transitions/references/patterns.md +262 -0
- package/src/skills/refactor.md +32 -0
- package/src/skills/release.md +43 -0
- package/src/skills/repo-map.md +36 -0
- package/src/skills/research.md +42 -0
- package/src/skills/review-response.md +36 -0
- package/src/skills/roast-me.md +28 -0
- package/src/skills/rule.md +100 -0
- package/src/skills/ship.md +49 -0
- package/src/skills/tdd.md +31 -0
- package/src/skills/tickets.md +44 -0
- package/src/skills/token-report/SKILL.md +76 -0
- package/src/skills/token-report/VENDOR.md +23 -0
- package/src/skills/token-report/scripts/token_report.mjs +1301 -0
- package/src/skills/wayfinder.md +49 -0
- package/src/skills/wiki.md +68 -0
- package/src/skills/workflow.md +38 -0
- package/themes/README.md +69 -0
- package/themes/_TEMPLATE.json +147 -0
- package/themes/biker.json +147 -0
- package/themes/commentator.json +147 -0
- package/themes/cyberpunk.json +147 -0
- package/themes/gamer.json +147 -0
- package/themes/imperial.json +147 -0
- package/themes/joker.json +147 -0
- package/themes/marvin.json +147 -0
- package/themes/mean.json +147 -0
- package/themes/military.json +147 -0
- package/themes/neutral.json +147 -0
- package/themes/opencode/README.md +58 -0
- package/themes/opencode/catppuccin.json +27 -0
- package/themes/opencode/dracula.json +27 -0
- package/themes/opencode/everforest.json +27 -0
- package/themes/opencode/gruvbox.json +27 -0
- package/themes/opencode/kanagawa.json +27 -0
- package/themes/opencode/neon.json +27 -0
- package/themes/opencode/nord.json +27 -0
- package/themes/opencode/rosepine.json +27 -0
- package/themes/opencode/tokyonight.json +27 -0
- package/themes/pirate.json +147 -0
- package/themes/sports.json +147 -0
- package/themes/verstappen.json +147 -0
- package/themes/wizard.json +147 -0
- package/web/dist/assets/About-DX1-VTBP.js +1 -0
- package/web/dist/assets/Activity-Dp9NaXOn.js +1 -0
- package/web/dist/assets/ActivityDetail-HpOBtrXS.js +1 -0
- package/web/dist/assets/Diff-Ct4G3Se8.js +5 -0
- package/web/dist/assets/Doctor-DGjkZFuA.js +1 -0
- package/web/dist/assets/Graph-b8o-S6kv.js +1 -0
- package/web/dist/assets/Harnesses-gr3-aHBF.js +1 -0
- package/web/dist/assets/Laws-DTwF5tTC.js +1 -0
- package/web/dist/assets/Library-BEZscyaQ.js +1 -0
- package/web/dist/assets/Markdown-k_LSLBGq.js +1 -0
- package/web/dist/assets/Profile-DydukTxP.js +1 -0
- package/web/dist/assets/Rules-CIRG4Ldt.js +1 -0
- package/web/dist/assets/Skills-Buoi1IBr.js +1 -0
- package/web/dist/assets/StatusBadge-CE_AJttl.js +1 -0
- package/web/dist/assets/Themes-CI4o3gJC.js +2 -0
- package/web/dist/assets/activity-BCW7e6Cy.js +1 -0
- package/web/dist/assets/audiowide-latin-400-normal-6GFCX7ni.woff2 +0 -0
- package/web/dist/assets/geist-mono-latin-400-normal-DKaoCDn5.woff2 +0 -0
- package/web/dist/assets/geist-mono-latin-500-normal-C3sF8Y1B.woff2 +0 -0
- package/web/dist/assets/geist-mono-latin-600-normal-BHzjB6_C.woff2 +0 -0
- package/web/dist/assets/hanken-grotesk-latin-400-italic-Bserb8X5.woff2 +0 -0
- package/web/dist/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2 +0 -0
- package/web/dist/assets/hanken-grotesk-latin-500-italic-BGfwwhek.woff2 +0 -0
- package/web/dist/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2 +0 -0
- package/web/dist/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2 +0 -0
- package/web/dist/assets/hanken-grotesk-latin-700-normal-CeQ8H3UY.woff2 +0 -0
- package/web/dist/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/web/dist/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/web/dist/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- package/web/dist/assets/ibm-plex-serif-latin-400-normal-BIGslYFI.woff2 +0 -0
- package/web/dist/assets/ibm-plex-serif-latin-500-normal-REKAfBVG.woff2 +0 -0
- package/web/dist/assets/ibm-plex-serif-latin-600-normal-DAxitmSu.woff2 +0 -0
- package/web/dist/assets/index-B1PIx7RM.js +1 -0
- package/web/dist/assets/index-BnTQUSUz.js +12 -0
- package/web/dist/assets/index-Ck2iCdaC.js +2 -0
- package/web/dist/assets/index-DUCsDv7z.css +1 -0
- package/web/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/web/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
- package/web/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
- package/web/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
- package/web/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/web/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/web/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
- package/web/dist/assets/marked.esm-JKvyS0Pp.js +46 -0
- package/web/dist/assets/oswald-latin-400-normal-BAFo8sP8.woff2 +0 -0
- package/web/dist/assets/oswald-latin-500-normal-B-eyT0Dw.woff2 +0 -0
- package/web/dist/assets/oswald-latin-600-normal-plFmSr5g.woff2 +0 -0
- package/web/dist/assets/oswald-latin-700-normal-vy6hmKSr.woff2 +0 -0
- package/web/dist/assets/poppins-latin-400-normal-cpxAROuN.woff2 +0 -0
- package/web/dist/assets/poppins-latin-500-normal-C8OXljZJ.woff2 +0 -0
- package/web/dist/assets/poppins-latin-600-normal-zEkxB9Mr.woff2 +0 -0
- package/web/dist/assets/poppins-latin-700-normal-Qrb0O0WB.woff2 +0 -0
- package/web/dist/assets/react-DOpiTn5v.js +32 -0
- package/web/dist/assets/roman-DkYN0LX9.js +1 -0
- package/web/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 +0 -0
- package/web/dist/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 +0 -0
- package/web/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 +0 -0
- package/web/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 +0 -0
- package/web/dist/assets/space-mono-latin-400-italic-YylcN9Ay.woff2 +0 -0
- package/web/dist/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2 +0 -0
- package/web/dist/assets/space-mono-latin-700-italic-vNvENeTh.woff2 +0 -0
- package/web/dist/assets/space-mono-latin-700-normal-mWgeinG7.woff2 +0 -0
- package/web/dist/icon-maskable.svg +10 -0
- package/web/dist/icon.svg +8 -0
- package/web/dist/index.html +21 -0
- package/web/dist/manifest.webmanifest +14 -0
- package/web/dist/sw.js +40 -0
- package/web/src/pages/Laws.jsx +230 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
**Assistant** — the agent executes your intent precisely and keeps its own initiative
|
|
2
|
+
low. You are steering.
|
|
3
|
+
|
|
4
|
+
- **Register.** Plain, service-minded, unobtrusive. Reports what it did and what it
|
|
5
|
+
found, without editorialising.
|
|
6
|
+
- **Initiative.** Does what is asked and stops. Confirms before deviating from the
|
|
7
|
+
literal request or widening scope; prefers a question over a guess.
|
|
8
|
+
- **Disagreement.** Still flags a real risk or a factual error — {{LAW}} XXX holds in
|
|
9
|
+
every posture — but raises it as a note for your call, not a debate.
|
|
10
|
+
- **What it will not do.** Take large or irreversible steps unprompted, or reshape
|
|
11
|
+
your approach because it prefers another. When you want a collaborator that pushes
|
|
12
|
+
back harder, switch to Peer.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
**Expert** — maximum signal density for someone already fluent in the domain.
|
|
2
|
+
|
|
3
|
+
- **Register.** Terse and technical. Uses the field's vocabulary without unpacking it;
|
|
4
|
+
assumes the background and gets to the point.
|
|
5
|
+
- **Initiative.** Moves fast on the implied task, states conclusions first, and leaves
|
|
6
|
+
the derivation available but not front-loaded.
|
|
7
|
+
- **Disagreement.** Blunt and immediate — a flaw is named as a flaw, no cushioning
|
|
8
|
+
({{LAW}} XXX).
|
|
9
|
+
- **What it will not do.** Explain the basics, define common terms, or pad with
|
|
10
|
+
context you already hold. If an answer starts to feel over-explained, it has drifted
|
|
11
|
+
— pull it back to Expert.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
**Mentor** — the agent works to leave you more capable than it found you, not just
|
|
2
|
+
to finish the task.
|
|
3
|
+
|
|
4
|
+
- **Register.** Patient and explanatory. Names the reasoning, the trade-offs, and
|
|
5
|
+
the concept behind the move, so the *why* travels with the *what*.
|
|
6
|
+
- **Initiative.** Checks understanding before moving on; pauses at the teachable
|
|
7
|
+
moment rather than racing to the answer.
|
|
8
|
+
- **Disagreement.** Corrects, but shows its working so you can judge the correction
|
|
9
|
+
for yourself ({{LAW}} XXX) — a wrong turn is used to teach, not just reversed.
|
|
10
|
+
- **What it will not do.** Hand over a black-box result, or optimise for speed at the
|
|
11
|
+
cost of your understanding. If you want just-the-answer, say so — or pick Expert.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
**Peer** — the default. The agent works alongside you as a candid equal, not a
|
|
2
|
+
deferential assistant.
|
|
3
|
+
|
|
4
|
+
- **Register.** Direct, dense, collegial. Assumes competence; skips the hand-holding
|
|
5
|
+
and the flattery alike.
|
|
6
|
+
- **Initiative.** Acts on what the request implies without asking permission for
|
|
7
|
+
every reversible step; surfaces genuine forks rather than guessing ({{LAW}} XXXI).
|
|
8
|
+
- **Disagreement.** Says so plainly and early when you are wrong, with the evidence,
|
|
9
|
+
and does not fold the moment you push back ({{LAW}} XXX). Honouring this is the
|
|
10
|
+
{{PACT}} working, not defiance.
|
|
11
|
+
- **What it will not do.** Pad answers, stage false agreement, or narrate reassurance.
|
|
12
|
+
Brevity and candour over comfort.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Authoring a new skill (this scaffold replaces the old create-skill skill):
|
|
3
|
+
1. Reuse first — if an existing skill's domain already covers the need, extend it
|
|
4
|
+
instead of adding a file (universal Law V). Name the skill by its domain.
|
|
5
|
+
2. Copy this file to skills/<name>.md and fill in the purpose line, trigger,
|
|
6
|
+
procedure, and done-when. In an installed harness the purpose line is plain
|
|
7
|
+
prose; in the Geneseed source repo it is the DESC_<NAME> token with the prose
|
|
8
|
+
defined per theme.
|
|
9
|
+
3. Add a row for it to the skills table in AGENT.md (the table is hand-authored;
|
|
10
|
+
the skill files themselves auto-render). doctor fails if the table and the skill
|
|
11
|
+
files disagree, so neither can silently drift.
|
|
12
|
+
Geneseed source repo only (skip in an installed harness):
|
|
13
|
+
4. Define the DESC_<NAME> token (hyphens -> underscores, uppercased) in ALL theme
|
|
14
|
+
JSONs under themes/ — the parity gate fails if any theme is missing it.
|
|
15
|
+
5. Bump the `skills-N` count badge in README.md (doctor checks it against the real
|
|
16
|
+
file count; the test counts derive from src/ and need no edit), then run
|
|
17
|
+
`./geneseed doctor --all` and the repository's test suites.
|
|
18
|
+
-->
|
|
19
|
+
# {{SKILL}}: <name>
|
|
20
|
+
|
|
21
|
+
> One-line statement of the recurring task this {{SKILL}} automates.
|
|
22
|
+
|
|
23
|
+
**Trigger:** the situation or phrase that should make the agent run this {{SKILL}}.
|
|
24
|
+
|
|
25
|
+
**Requires:** *(optional line — include only for hard prerequisites: an env var, an
|
|
26
|
+
external binary, or a host capability the {{SKILL}} cannot run without. A {{SKILL}}
|
|
27
|
+
that merely uses standard repo tooling — git, the test runner — omits this line.)*
|
|
28
|
+
|
|
29
|
+
## Procedure
|
|
30
|
+
1. Ordered, concrete steps. Each step is an action the agent takes.
|
|
31
|
+
2. Note any verification step (run the command, read the output).
|
|
32
|
+
|
|
33
|
+
## Done when
|
|
34
|
+
- The observable condition that means the {{SKILL}} succeeded.
|
|
35
|
+
|
|
36
|
+
## Self-improvement
|
|
37
|
+
|
|
38
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
39
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
40
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
41
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
42
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
43
|
+
clears {{LAW}} VI'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.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# {{SKILL}}: brainstorm
|
|
2
|
+
|
|
3
|
+
> {{DESC_BRAINSTORM}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** a new feature or behaviour change with no design yet, or the user says "brainstorm" / "let's design this". (If the goal or scope itself is still unclear — especially for non-design work — run the [clarify {{SKILL}}](clarify.md) first.)
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
1. Read the current project state and its own docs ({{LAW}} XVII) so questions are grounded; if the request bundles several systems, decompose and take one at a time.
|
|
9
|
+
2. Ask clarifying questions ONE at a time (multiple-choice when you can) until purpose, constraints, and success criteria are clear.
|
|
10
|
+
3. Propose 2-3 approaches with trade-offs; lead with your recommendation.
|
|
11
|
+
4. Present the design in sections (purpose → components → data flow → failure modes → testing), getting an explicit "looks right" after each; cut anything YAGNI.
|
|
12
|
+
5. Write the agreed design to a spec the next session can find — `SPEC.md` beside the work, or the project's own spec home (e.g. `docs/specs/`) — re-read it for ambiguity, then hand off to the [plan {{SKILL}}](plan.md) to sequence it — writing no implementation code before that approval.
|
|
13
|
+
|
|
14
|
+
## Done when
|
|
15
|
+
- An approved, ambiguity-free design exists and `plan` has it to sequence, with no code written beforehand.
|
|
16
|
+
|
|
17
|
+
## Self-improvement
|
|
18
|
+
|
|
19
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
20
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
21
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
22
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
23
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
24
|
+
clears {{LAW}} VI'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.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# {{SKILL}}: clarify
|
|
2
|
+
|
|
3
|
+
> {{DESC_CLARIFY}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** a task or whole project arrives with its goal, scope, or success criteria unstated or ambiguous — including non-design work (a refactor, migration, ops chore, investigation) — or the user says "interview me" / "what am I actually trying to do" / "clarify this first". If a concrete design problem is already identified, use the [brainstorm {{SKILL}}](brainstorm.md) instead.
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
1. Read the current project state and its own docs ({{LAW}} XVII) so questions are grounded ({{LAW}} III — verify the actual state before designing the interview). If the request bundles several goals, separate them and take one at a time.
|
|
9
|
+
2. Interpret the request in its strongest, most reasonable form first (the principle of charity) — do not manufacture ambiguity from a fair reading. If the goal, scope, and success criteria are already unambiguous, restate them in one line and skip to step 4 — no ceremony on a clear ask. Otherwise interview the user ONE question at a time (multiple-choice when you can), driving at *why* (the outcome wanted), *scope* (what is explicitly in and out), and *done* (how success is judged) — not *how* yet. Keep asking until each is unambiguous.
|
|
10
|
+
3. Name every KEY DECISION the answers imply or leave open — chosen direction, trade-offs accepted, load-bearing constraints, assumptions, and non-goals. Surface each silent assumption as a decision to ratify, not a settled fact.
|
|
11
|
+
4. Write the goal and the key-decision ledger to `BRIEF.md` (or `clarify/<task>.md`), then read it back to the user as a numbered list and get an EXPLICIT confirmation before acting ({{LAW}} III — an inferred intent is not ground truth until echoed back and agreed) — so nothing material is silently assumed. Scope the read-back to decisions that are consequential, irreversible, or genuinely uncertain; correct the file and re-confirm any the user changes.
|
|
12
|
+
5. Route the confirmed brief to the right next {{SKILL}} — [brainstorm {{SKILL}}](brainstorm.md) for a design problem, [plan {{SKILL}}](plan.md) for a multi-step build, [debug {{SKILL}}](debug.md) for a defect — handing it the brief and writing no implementation code first.
|
|
13
|
+
|
|
14
|
+
## Done when
|
|
15
|
+
- A confirmed, ambiguity-free goal with an explicitly verified key-decision ledger is written to `BRIEF.md`, and the work has been handed to the appropriate downstream {{SKILL}}.
|
|
16
|
+
|
|
17
|
+
## Self-improvement
|
|
18
|
+
|
|
19
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
20
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
21
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
22
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
23
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
24
|
+
clears {{LAW}} VI'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.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# {{SKILL}}: codebase-design
|
|
2
|
+
|
|
3
|
+
> {{DESC_CODEBASE_DESIGN}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** designing or reshaping a module's interface, deciding where a seam
|
|
6
|
+
goes, making code more testable through its interface — or another {{SKILL}}
|
|
7
|
+
needs the deep-module vocabulary.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
1. Use this vocabulary exactly — **module** (anything with an interface and an
|
|
11
|
+
implementation, at any scale), **interface** (everything a caller must know:
|
|
12
|
+
the types plus invariants, ordering constraints, error modes, performance),
|
|
13
|
+
**depth** (behaviour a caller gets per unit of interface they must learn),
|
|
14
|
+
**seam** (a place where behaviour can be altered without editing in place),
|
|
15
|
+
**adapter** (a concrete thing filling a seam). Avoid "component", "service",
|
|
16
|
+
"API", "boundary" — consistent language is the point.
|
|
17
|
+
2. Aim for **deep modules**: a lot of behaviour behind a small interface. Depth
|
|
18
|
+
buys callers leverage (one implementation pays back across N call sites) and
|
|
19
|
+
maintainers locality (change, bugs, and knowledge concentrate in one place).
|
|
20
|
+
3. Place seams deliberately and sparingly — the interface is the test surface,
|
|
21
|
+
and the fewer seams the better. One adapter at a seam is a hypothesis; a
|
|
22
|
+
second adapter is what makes the seam real.
|
|
23
|
+
4. Apply the **deletion test** to anything suspected shallow (interface nearly
|
|
24
|
+
as complex as its implementation): would deleting it concentrate complexity
|
|
25
|
+
somewhere sensible, or just move it around? "Concentrates" → fold it in.
|
|
26
|
+
5. Record any structural decision this produces as the
|
|
27
|
+
[domain-modeling {{SKILL}}](domain-modeling.md) prescribes.
|
|
28
|
+
|
|
29
|
+
## Done when
|
|
30
|
+
- The design is stated in this vocabulary, the seams are explicit and agreed,
|
|
31
|
+
and each module is deeper than the alternative you rejected.
|
|
32
|
+
|
|
33
|
+
## Self-improvement
|
|
34
|
+
|
|
35
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
36
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
37
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
38
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
39
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
40
|
+
clears {{LAW}} VI'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.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# {{SKILL}}: commit
|
|
2
|
+
|
|
3
|
+
> {{DESC_COMMIT}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** about to commit changes.
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
1. Review the working tree; identify the paths that belong to *this* change only.
|
|
9
|
+
2. Stage exactly those paths — never `git add -A` blindly (universal {{LAW}} II:
|
|
10
|
+
one intent, one act). Leave unrelated dirty files out.
|
|
11
|
+
3. Confirm no secret is being committed (universal {{LAW}} I), and no leftover
|
|
12
|
+
debug scaffolding rides along — `console.log`, `debugger`, `print`,
|
|
13
|
+
commented-out code, or hardcoded test values left over from diagnosis
|
|
14
|
+
({{LAW}} XXIV).
|
|
15
|
+
4. Write a message: imperative subject ≤50 chars; a body only when the *why*
|
|
16
|
+
isn't obvious from the diff. **Match the repository's existing commit convention**
|
|
17
|
+
(universal {{LAW}} XIII) — detect it from commit tooling (`commitlint`,
|
|
18
|
+
`semantic-release`, `release-please`, husky hooks) and recent `git log`. When the
|
|
19
|
+
repo has no discernible convention, default to **Conventional Commits**:
|
|
20
|
+
`type(scope): subject` (`feat`, `fix`, `docs`, `refactor`, `test`, `chore`…),
|
|
21
|
+
with a `!` before the colon or a `BREAKING CHANGE:` footer for a breaking change.
|
|
22
|
+
5. **Get explicit consent before committing (universal {{LAW}} XX).** On *every*
|
|
23
|
+
branch — feature branches included — first show the user a plain-language summary of
|
|
24
|
+
the change *and* the exact commit message, then wait for explicit acceptance before
|
|
25
|
+
committing. A previous approval is not standing consent; ask again each commit. On a
|
|
26
|
+
*shared branch* (`main`, `master`, `develop`/`development`, a release/hotfix branch,
|
|
27
|
+
or any branch that is not a dedicated feature branch) apply the same gate with extra
|
|
28
|
+
care.
|
|
29
|
+
6. Push only when the user has explicitly approved *that push* ({{LAW}} XX / {{LAW}} IV)
|
|
30
|
+
— never push on your own initiative, on any branch, and never treat one approval as
|
|
31
|
+
consent for the next.
|
|
32
|
+
|
|
33
|
+
## Done when
|
|
34
|
+
- The commit contains only the intended change and the working tree is clean of it,
|
|
35
|
+
and every commit and push went out only with the user's explicit, per-action consent.
|
|
36
|
+
|
|
37
|
+
## Self-improvement
|
|
38
|
+
|
|
39
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
40
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
41
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
42
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
43
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
44
|
+
clears {{LAW}} VI's bar: it would change how a future session behaves, and a
|
|
45
|
+
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
46
|
+
adding one; when in doubt, leave it out.
|
|
47
|
+
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
48
|
+
runs end here.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# {{SKILL}}: council
|
|
2
|
+
|
|
3
|
+
> {{DESC_COUNCIL}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** the user asks to "convene a council", "debate this", "argue both sides", "stress-test this decision", or wants a change, plan, or claim challenged from several points of view before committing to it.
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
1. Frame the motion in one line — the exact decision, change, or claim under debate — and name what it feeds (a choice to make, a design to accept, a discussion to settle). Ground it in the real artifact and the project's own docs ({{LAW}} XVII–XVIII) so the council argues the actual thing; if the motion is unclear or bundles several questions, split it and ask once, then proceed.
|
|
9
|
+
2. Seat the council from the standing roster of read-only debate {{AGENTS}}, each arguing one fixed stance — convene the subset that genuinely clashes on *this* motion (usually 3–6, never the whole bench for its own sake), always anchored by the for/against spine of [advocate](../{{DIR_AGENTS}}/advocate.md) and [skeptic](../{{DIR_AGENTS}}/skeptic.md):
|
|
10
|
+
- [advocate](../{{DIR_AGENTS}}/advocate.md) — the strongest case **for**; [skeptic](../{{DIR_AGENTS}}/skeptic.md) — devil's advocate, failure modes and hidden assumptions.
|
|
11
|
+
- [pragmatist](../{{DIR_AGENTS}}/pragmatist.md) — cost, effort, YAGNI; [steward](../{{DIR_AGENTS}}/steward.md) — long-term architecture and debt; [operator](../{{DIR_AGENTS}}/operator.md) — running it in production.
|
|
12
|
+
- [visionary](../{{DIR_AGENTS}}/visionary.md) — the bold, transformative version; [framer](../{{DIR_AGENTS}}/framer.md) — whether it's even the right problem; [empiricist](../{{DIR_AGENTS}}/empiricist.md) — every claim held to evidence; [historian](../{{DIR_AGENTS}}/historian.md) — what was tried before.
|
|
13
|
+
- [user-advocate](../{{DIR_AGENTS}}/user-advocate.md) — whoever consumes the outcome.
|
|
14
|
+
|
|
15
|
+
Hand each chosen seat the motion and a one-line charter scoped to this topic; skip the seats with nothing to say here, and add an ad-hoc seat (e.g. the [security](../{{DIR_AGENTS}}/security.md) surface) only when the topic plainly demands a voice the roster doesn't cover.
|
|
16
|
+
3. Round one — positions: convene the seats by dispatching each stance {{AGENT}} as its own subagent in one batch where the tool supports it (the [parallel-agents {{SKILL}}](parallel-agents.md)), so each argues in an isolated context with no groupthink; where no subagent capability exists, voice each seat in turn as a persona. Each returns its steelmanned brief ({{LAW}} VIII) — no hedging, no strawmen.
|
|
17
|
+
4. Round two — clash: put the briefs in front of each other and have the seats rebut only on the points that actually conflict, surfacing the cruxes, the load-bearing assumptions, and where the evidence is thin. Hold to a fixed number of rounds so the debate converges instead of looping; the skeptic already pairs every objection with what would resolve it (the [roast-me {{SKILL}}](roast-me.md) discipline).
|
|
18
|
+
5. The chair synthesises in neutral voice: state the verdict and its reasoning, record the strongest surviving dissent verbatim so it is not lost, list what would change the verdict, and name the single next action. Surface it for the user to decide — the council advises, it does not commit: write no code and push nothing on its own ({{LAW}} IV, {{LAW}} XX).
|
|
19
|
+
|
|
20
|
+
## Done when
|
|
21
|
+
- A crisp motion was debated by distinct, steelmanned seats over bounded rounds, and the chair has delivered a verdict, the preserved dissent, and one next action for the user to weigh.
|
|
22
|
+
|
|
23
|
+
## Self-improvement
|
|
24
|
+
|
|
25
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
26
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
27
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
28
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
29
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
30
|
+
clears {{LAW}} VI's bar: it would change how a future session behaves, and a
|
|
31
|
+
fresh read of the repo would not re-derive it. Update an existing memory over
|
|
32
|
+
adding one; when in doubt, leave it out.
|
|
33
|
+
- No friction, nothing learned — move on; this loop earns no ceremony. Most
|
|
34
|
+
runs end here.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# {{SKILL}}: crash-course
|
|
2
|
+
|
|
3
|
+
> {{DESC_CRASH_COURSE}}
|
|
4
|
+
|
|
5
|
+
**Trigger:** the user wants to go from zero to *functional* in a skill fast — "teach me X", "get me up to speed on X", "I have limited time to learn X". For practising a concept until it's reflex use [drill](drill.md); for making confusing material click use [decode](decode.md); for gathering facts from the web use [research](research.md).
|
|
6
|
+
|
|
7
|
+
## Procedure
|
|
8
|
+
1. Pin the skill and the footing: what they want to be able to *do* afterwards, how much time they have, and what they already know. If unclear, ask once, then proceed.
|
|
9
|
+
2. Act as a teacher who has only this one session and will never see them again; the sole objective is to make them functional before time runs out. Do not give theory without immediate practical use, and do not hand over a bare list.
|
|
10
|
+
3. Name three things explicitly: **what to learn first**, **what to ignore completely** (for now), and **the single exercise that, done once, puts them ahead of most people who have studied this for months**.
|
|
11
|
+
4. Have them do that exercise — or set it up so they can — rather than just reading about it.
|
|
12
|
+
5. Close by naming what to practise next and the gap most likely to trip them, so the learning continues without you.
|
|
13
|
+
|
|
14
|
+
## Done when
|
|
15
|
+
- The user knows what to learn first, what to skip, and has the one high-leverage exercise in hand — functional, not just informed.
|
|
16
|
+
|
|
17
|
+
## Self-improvement
|
|
18
|
+
|
|
19
|
+
Close each run with one beat of reflection on the {{SKILL}} itself:
|
|
20
|
+
- A step misled, a needed step was missing, or the trigger fired wrongly — that
|
|
21
|
+
is a flaw in this file. Propose the exact edit (trigger, procedure, or
|
|
22
|
+
done-when) and apply it with the user's assent ({{LAW}} II).
|
|
23
|
+
- A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
|
|
24
|
+
clears {{LAW}} VI'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.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Vault Daydream Skill
|
|
2
|
+
|
|
3
|
+
Multi-agent system that mines the Obsidian vault for non-obvious connections between notes, mimicking the brain's default mode network. Samples random note pairs, synthesizes connections via Sonnet, filters with Haiku critic.
|
|
4
|
+
|
|
5
|
+
Inspired by [Gwern's LLM Daydreaming](https://gwern.net/ai-daydreaming).
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
/daydream
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Setup (Geneseed)
|
|
14
|
+
|
|
15
|
+
Before the first run, make sure the pieces this skill depends on are in place:
|
|
16
|
+
|
|
17
|
+
1. **A vault to mine.** Declare your Obsidian vault in the harness `wiki.jsonc`
|
|
18
|
+
(AGENT.md §7) — give a `wikis[]` entry a `path` to the vault root. Without it the
|
|
19
|
+
skill falls back to detecting a `.obsidian/` folder in the current directory, then
|
|
20
|
+
asks. No vault → nothing to daydream about.
|
|
21
|
+
2. **Parallel subagents.** Synthesis and critique fan out across ~10–20 subagents per
|
|
22
|
+
run, so the host must be able to dispatch them (Claude Code's `Task`; OpenCode's
|
|
23
|
+
`task` tool — see the [parallel-agents](../parallel-agents.md) skill). On a host
|
|
24
|
+
with no subagent mechanism, the skill still works but runs serially and slowly.
|
|
25
|
+
3. **Models.** The upstream prompts request `sonnet` for synthesis and `haiku` for
|
|
26
|
+
critique. Those are Claude model names — on another host, substitute the host's
|
|
27
|
+
capable/cheap pair (a strong model for synthesis, a fast one for scoring).
|
|
28
|
+
4. **Prompt templates.** Steps 4 and 5 read the `synthesizer-prompt.md` and
|
|
29
|
+
`critic-prompt.md` files **in this skill's own folder** (`skills/daydream/` in a
|
|
30
|
+
deployed Geneseed bundle). They ship with the skill — nothing to install.
|
|
31
|
+
5. **Writable output folders.** The run writes `Daydreams/`, `Daydreams/digests/`,
|
|
32
|
+
`Daily/`, and `ai-research/daydream/history.json` into the vault. If any of those
|
|
33
|
+
sit under a `protected` path in `wiki.jsonc`, the guard plugin will block the write —
|
|
34
|
+
keep them unprotected (Law-I-safe, since they're generated notes, not secrets).
|
|
35
|
+
|
|
36
|
+
This skill adds **no dependencies of its own** — it uses only the host's built-in
|
|
37
|
+
Glob/Read/Write/Bash and subagent tools. See [VENDOR.md](VENDOR.md) for provenance.
|
|
38
|
+
|
|
39
|
+
## What it does
|
|
40
|
+
|
|
41
|
+
1. Resolves vault root from the harness `wiki.jsonc` manifest (a declared vault's `path`); falls back to auto-detecting `.obsidian/` from the current directory, then asks if still unfound
|
|
42
|
+
2. Scans vault for notes modified in last 120 days
|
|
43
|
+
2. Generates 50 recency-weighted random pairs
|
|
44
|
+
3. Synthesizes connections (Sonnet, parallel batches of 5)
|
|
45
|
+
4. Critiques and scores insights (Haiku, parallel batches)
|
|
46
|
+
5. Filters for quality (average score >= 7.0)
|
|
47
|
+
6. Saves insight notes to `Daydreams/` folder
|
|
48
|
+
7. Generates daily digest in `Daydreams/digests/`
|
|
49
|
+
8. Appends summary to today's daily note
|
|
50
|
+
|
|
51
|
+
## Output
|
|
52
|
+
|
|
53
|
+
- **Individual insights**: `Daydreams/YYYYMMDD-slug.md` -- full synthesis with scores and wikilinks
|
|
54
|
+
- **Daily digest**: `Daydreams/digests/YYYYMMDD-digest.md` -- stats + ranked top insights
|
|
55
|
+
- **Daily note**: Summary appended under `## Daydream`
|
|
56
|
+
- **History log**: `ai-research/daydream/history.json` -- tracks sampled pairs for dedup
|
|
57
|
+
|
|
58
|
+
## Architecture
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Skill (orchestrator)
|
|
62
|
+
|-- Glob/Read: scan vault, extract excerpts
|
|
63
|
+
|-- Generate 50 random pairs (recency-weighted)
|
|
64
|
+
|-- Task(model: sonnet) x 10: synthesize connections <-- parallel
|
|
65
|
+
|-- Task(model: haiku) x 10: critique/score insights <-- parallel
|
|
66
|
+
|-- Filter (avg >= 7.0)
|
|
67
|
+
+-- Write: save insight notes + daily digest
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
No external dependencies -- pure Claude Code tools (Glob, Read, Write, Bash, Task).
|
|
71
|
+
|
|
72
|
+
## Cost
|
|
73
|
+
|
|
74
|
+
Per run (~50 pairs): approximately $0.40-0.50 via Claude Code usage.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Vendored skill — daydream
|
|
2
|
+
|
|
3
|
+
This folder is a third-party skill vendored into Geneseed, not a Geneseed-authored
|
|
4
|
+
skill. It rides along in the rendered bundle and is exempt from Geneseed's authoring
|
|
5
|
+
gates (token, dead-link, hermeticity, skill counts) — it is listed in the
|
|
6
|
+
generator's `VENDORED_SKILL_DIRS`.
|
|
7
|
+
|
|
8
|
+
- **Upstream:** https://github.com/glebis/claude-skills/tree/main/daydream
|
|
9
|
+
- **Commit:** f47170dee300dd3d5da2a1c3c708986faeea3d5a
|
|
10
|
+
- **Author:** Gleb Kalinin
|
|
11
|
+
- **License:** MIT (declared in `.claude-plugin/plugin.json`)
|
|
12
|
+
- **Inspired by:** Gwern's [LLM Daydreaming](https://gwern.net/ai-daydreaming)
|
|
13
|
+
|
|
14
|
+
## Geneseed adaptation
|
|
15
|
+
|
|
16
|
+
Vault resolution is adapted to read the harness's `wiki.jsonc` knowledge-base
|
|
17
|
+
manifest first (a declared vault's `path`), falling back to the upstream cwd/`.obsidian`
|
|
18
|
+
auto-detection when no wiki is declared. The synthesis/critique still run as parallel
|
|
19
|
+
subagents over recency-weighted note pairs. The model-name references (`sonnet`,
|
|
20
|
+
`haiku`) and the `.claude/skills/daydream/…` prompt paths are upstream's; on a
|
|
21
|
+
non-Claude host, read the sibling `synthesizer-prompt.md` / `critic-prompt.md`
|
|
22
|
+
directly and dispatch through whatever subagent mechanism the host provides.
|
|
23
|
+
|
|
24
|
+
To update, re-copy the upstream folder, re-apply the wiki.jsonc adaptation in
|
|
25
|
+
`SKILL.md` / `instructions.md`, and bump the commit above.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Critic Prompt
|
|
2
|
+
|
|
3
|
+
Used by Task sub-agents (model: haiku) to score and filter synthesized insights.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a discerning critic evaluating a synthesized insight
|
|
8
|
+
from an Obsidian knowledge vault.
|
|
9
|
+
|
|
10
|
+
Rate the following on a scale of 1-10:
|
|
11
|
+
|
|
12
|
+
- **Novelty**: Is this surprising and non-obvious? (1=obvious, 10=paradigm-shifting)
|
|
13
|
+
- **Coherence**: Is the reasoning logical? (1=nonsense, 10=rigorous)
|
|
14
|
+
- **Usefulness**: Could this lead to action? (1=useless, 10=highly actionable)
|
|
15
|
+
|
|
16
|
+
Source notes: "{title_a}" and "{title_b}"
|
|
17
|
+
|
|
18
|
+
Connection: {connection}
|
|
19
|
+
|
|
20
|
+
Synthesis:
|
|
21
|
+
{synthesis}
|
|
22
|
+
|
|
23
|
+
Implication:
|
|
24
|
+
{implication}
|
|
25
|
+
|
|
26
|
+
Respond with ONLY a JSON object (no markdown fences):
|
|
27
|
+
{
|
|
28
|
+
"novelty": <1-10>,
|
|
29
|
+
"coherence": <1-10>,
|
|
30
|
+
"usefulness": <1-10>,
|
|
31
|
+
"average": <float rounded to 1 decimal>,
|
|
32
|
+
"verdict": "accept" or "reject",
|
|
33
|
+
"reason": "<1-sentence justification>"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
Accept if average >= 7.0. Be genuinely critical -- most random
|
|
37
|
+
combinations should be rejected. Only accept insights that would
|
|
38
|
+
genuinely surprise and inform the note author.
|