geneseed 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +3 -3
  3. package/SHIPPED.md +2 -2
  4. package/adapters/copilot/README.md +2 -1
  5. package/adapters/opencode/README.md +6 -2
  6. package/docs/extending.md +4 -3
  7. package/docs/web/agents.md +1 -1
  8. package/docs/web/first-session.md +1 -1
  9. package/docs/web/skills.md +1 -1
  10. package/harness.config.json +1 -1
  11. package/js/hosts/native.mjs +69 -15
  12. package/js/hosts/opencode.mjs +14 -0
  13. package/js/inspect/inventory.mjs +12 -7
  14. package/package.json +1 -1
  15. package/registry.json +86 -79
  16. package/src/AGENT.md.tmpl +14 -12
  17. package/src/agents/architect.md +4 -1
  18. package/src/agents/explorer.md +2 -0
  19. package/src/agents/operator.md +13 -0
  20. package/src/agents/pragmatist.md +12 -0
  21. package/src/agents/researcher.md +72 -0
  22. package/src/agents/security.md +7 -1
  23. package/src/agents/skeptic.md +2 -1
  24. package/src/agents/tester.md +5 -1
  25. package/src/agents/user-advocate.md +13 -0
  26. package/src/doctrines/rigor.md +1 -1
  27. package/src/skills/_self-improvement.md +19 -0
  28. package/src/skills/_template.md +1 -12
  29. package/src/skills/brainstorm.md +37 -19
  30. package/src/skills/bruno-collection-generator.md +1 -12
  31. package/src/skills/bruno-test-writer.md +1 -12
  32. package/src/skills/ci-fix.md +49 -0
  33. package/src/skills/codebase-design.md +1 -12
  34. package/src/skills/commit.md +1 -12
  35. package/src/skills/consolidate-memory.md +50 -0
  36. package/src/skills/council.md +1 -12
  37. package/src/skills/debug.md +1 -12
  38. package/src/skills/deps-audit.md +46 -0
  39. package/src/skills/develop.md +38 -20
  40. package/src/skills/document-project.md +1 -12
  41. package/src/skills/domain-modeling.md +1 -12
  42. package/src/skills/forge-mcp.md +1 -12
  43. package/src/skills/fresh-eyes.md +1 -12
  44. package/src/skills/frontend-design.md +1 -12
  45. package/src/skills/geneseed-code-review.md +1 -12
  46. package/src/skills/geneseed.md +1 -12
  47. package/src/skills/git-archaeology.md +1 -12
  48. package/src/skills/git-rescue.md +1 -12
  49. package/src/skills/handoff.md +1 -12
  50. package/src/skills/herdr.md +1 -12
  51. package/src/skills/ingest.md +1 -12
  52. package/src/skills/migrate.md +1 -12
  53. package/src/skills/opencode-theme.md +1 -12
  54. package/src/skills/parallel-agents.md +1 -12
  55. package/src/skills/pipeline.md +2 -13
  56. package/src/skills/plan.md +1 -12
  57. package/src/skills/ponytail.md +1 -12
  58. package/src/skills/profile.md +1 -12
  59. package/src/skills/prose.md +1 -12
  60. package/src/skills/prototype.md +1 -12
  61. package/src/skills/quiz.md +43 -0
  62. package/src/skills/refactor.md +1 -12
  63. package/src/skills/release.md +1 -12
  64. package/src/skills/repo-map.md +1 -12
  65. package/src/skills/research.md +5 -13
  66. package/src/skills/review-response.md +1 -12
  67. package/src/skills/roast-me.md +1 -12
  68. package/src/skills/rule.md +1 -12
  69. package/src/skills/security-audit.md +51 -0
  70. package/src/skills/ship.md +1 -12
  71. package/src/skills/skill-forge.md +59 -0
  72. package/src/skills/teach.md +50 -0
  73. package/src/skills/tickets.md +1 -12
  74. package/src/skills/wayfinder.md +1 -12
  75. package/src/skills/wiki.md +1 -12
  76. package/src/skills/workflow.md +74 -26
  77. package/src/skills/worktree.md +52 -0
  78. package/themes/_TEMPLATE.json +9 -8
  79. package/themes/biker.json +9 -8
  80. package/themes/commentator.json +9 -8
  81. package/themes/cyberpunk.json +9 -8
  82. package/themes/gamer.json +9 -8
  83. package/themes/imperial.json +9 -8
  84. package/themes/joker.json +9 -8
  85. package/themes/marvin.json +9 -8
  86. package/themes/mean.json +9 -8
  87. package/themes/military.json +9 -8
  88. package/themes/neutral.json +9 -8
  89. package/themes/pirate.json +9 -8
  90. package/themes/sports.json +9 -8
  91. package/themes/verstappen.json +9 -8
  92. package/themes/wizard.json +9 -8
  93. package/web/dist/assets/{Activity-BfVcLrda.js → Activity-DMGhhjQc.js} +1 -1
  94. package/web/dist/assets/{ActivityDetail-CQXccGPl.js → ActivityDetail-CeQcDA7e.js} +1 -1
  95. package/web/dist/assets/{CatalogRow-DALEQImZ.js → CatalogRow-CnSbDPyg.js} +1 -1
  96. package/web/dist/assets/{Diff-BIjxXx46.js → Diff-D_ksMBD1.js} +1 -1
  97. package/web/dist/assets/{Doctor-CJLbgsrw.js → Doctor-Brb3_oCT.js} +1 -1
  98. package/web/dist/assets/{FilterInput-CkUCk_lY.js → FilterInput-DbRWPhtT.js} +1 -1
  99. package/web/dist/assets/{GreenhouseView-DfC5IILJ.js → GreenhouseView-F3VNFr73.js} +1 -1
  100. package/web/dist/assets/{Harness-Dm5CCU-v.js → Harness-DJSwfYeF.js} +1 -1
  101. package/web/dist/assets/{JournalView-Cpu2eI4s.js → JournalView-BLRYRnB3.js} +1 -1
  102. package/web/dist/assets/{Laws-DDDVFuQz.js → Laws-CKYns9qe.js} +1 -1
  103. package/web/dist/assets/{Library-Dao3T9na.js → Library-BK0YloSv.js} +1 -1
  104. package/web/dist/assets/{Markdown-C__nuWX5.js → Markdown-BzTRzc7a.js} +1 -1
  105. package/web/dist/assets/{OperatorHudView-DEpCtAjP.js → OperatorHudView-D3OQSGp5.js} +1 -1
  106. package/web/dist/assets/{Profile-BlXtUlh2.js → Profile-CPA2u_0g.js} +1 -1
  107. package/web/dist/assets/{Rules-DIre6gxR.js → Rules-Lukel-Ru.js} +1 -1
  108. package/web/dist/assets/Skills-BKRLHH7m.js +1 -0
  109. package/web/dist/assets/{StatusBadge-wW_RS_my.js → StatusBadge-DI3weRKd.js} +1 -1
  110. package/web/dist/assets/{activity-DpYPKNrA.js → activity-C_H2Bx1P.js} +1 -1
  111. package/web/dist/assets/{index-PmQGRS1X.js → index-B7_Wga23.js} +1 -1
  112. package/web/dist/assets/{index-BEZvPvpF.js → index-N8dTrVro.js} +1 -1
  113. package/web/dist/assets/{index-DNQE5ydy.js → index-Py_IQjgK.js} +2 -2
  114. package/web/dist/index.html +1 -1
  115. package/src/skills/clarify.md +0 -28
  116. package/src/skills/crash-course.md +0 -29
  117. package/src/skills/decode.md +0 -29
  118. package/src/skills/drill.md +0 -29
  119. package/src/skills/feynman.md +0 -27
  120. package/src/skills/gap-detector.md +0 -27
  121. package/src/skills/learning-path.md +0 -27
  122. package/src/skills/tdd.md +0 -31
  123. package/web/dist/assets/Skills-rY13ZPhM.js +0 -1
@@ -1,27 +0,0 @@
1
- # {{SKILL}}: gap-detector
2
-
3
- > {{DESC_GAP_DETECTOR}}
4
-
5
- **Trigger:** the user believes they already master a skill or topic and wants that belief stress-tested — "I think I already know X, prove me wrong", "test whether I really understand X", "find the holes in what I know". For routing toward a goal use [learning-path](learning-path.md); for checking freshly-studied material use [feynman](feynman.md).
6
-
7
- ## Procedure
8
- 1. Take the skill the user claims to master. Set the contract plainly: you will try to prove them wrong, and you will not go easy.
9
- 2. Ask five questions that look simple but separate someone who has truly gone deep from someone who has only skimmed — edge cases, "why", the assumption under the rule, the case where the standard answer breaks.
10
- 3. For every answer the user gives, say plainly what it reveals about what is still missing in their foundation. If an answer is shallow, name it as shallow and say what depth would have looked like — no flattery.
11
- 4. Close with the honest verdict: the specific gaps to fill before the mastery claim holds.
12
-
13
- ## Done when
14
- - All five questions were asked, each answer was met with a direct read of what it exposes, and the run ends with a concrete verdict on the remaining gaps — never empty praise.
15
-
16
- ## Self-improvement
17
-
18
- Close each run with one beat of reflection on the {{SKILL}} itself:
19
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
20
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
21
- done-when) and apply it with the user's assent ({{LAW}} II).
22
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
23
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
24
- fresh read of the repo would not re-derive it. Update an existing memory over
25
- adding one; when in doubt, leave it out.
26
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
27
- runs end here.
@@ -1,27 +0,0 @@
1
- # {{SKILL}}: learning-path
2
-
3
- > {{DESC_LEARNING_PATH}}
4
- <!-- invocation: user -->
5
-
6
- **Trigger:** the user wants to learn a skill toward a *specific* result by a deadline and asks for a plan or route — "build me a learning path", "how do I get to X in N days", "I need to be able to do Y by [date]". For pressure-testing a mastery the user already claims, use [gap-detector](gap-detector.md); for checking whether something just-studied stuck, use [feynman](feynman.md).
7
-
8
- ## Procedure
9
- 1. Pin the *real* goal, not the subject: the specific result wanted, the deadline, and what the user already masters. Ask once if any of the three is missing — do not plan around "learn X in general".
10
- 2. Build a day-by-day path to that result. Each day carries exactly three things: one task that fits the user's stated time budget (default 45 minutes), a concrete criterion so they can tell whether they did it correctly, and one explicit *what not to do* that day so time is not wasted.
11
- 3. Trace the whole path against the goal. If finishing every day would not actually deliver the result, rebuild it until it does.
12
-
13
- ## Done when
14
- - The user has a dated, day-by-day path where each day has a timed task, a correctness criterion, and a what-not-to-do — and the path provably reaches the stated goal.
15
-
16
- ## Self-improvement
17
-
18
- Close each run with one beat of reflection on the {{SKILL}} itself:
19
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
20
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
21
- done-when) and apply it with the user's assent ({{LAW}} II).
22
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
23
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
24
- fresh read of the repo would not re-derive it. Update an existing memory over
25
- adding one; when in doubt, leave it out.
26
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
27
- runs end here.
package/src/skills/tdd.md DELETED
@@ -1,31 +0,0 @@
1
- # {{SKILL}}: tdd
2
-
3
- > {{DESC_TDD}}
4
-
5
- **Trigger:** implementing a feature or fixing a bug whose behaviour can be expressed as a test — before writing implementation code.
6
-
7
- ## Procedure
8
- 1. Agree the seams first: name the public interfaces the tests will target and
9
- confirm them with the user — no test is written at an unconfirmed seam.
10
- Testing effort belongs on critical paths and complex logic, not every edge.
11
- 2. Write one failing test that pins the next small slice of behaviour; be specific about the expected output. For a bug, the test reproduces it.
12
- 3. Run it and watch it fail for the RIGHT reason — a test that passes immediately proves nothing.
13
- 4. Write the minimum code to make it pass; add nothing the test doesn't demand ({{DOCTRINE}} craft 6).
14
- 5. With the suite green, tidy up via the [refactor {{SKILL}}](refactor.md) — the tests are your safety net.
15
- 6. Repeat one slice at a time, committing each green cycle with the [commit {{SKILL}}](commit.md).
16
-
17
- ## Done when
18
- - The behaviour is covered by tests written before the code, the suite is green, and each cycle was committed.
19
-
20
- ## Self-improvement
21
-
22
- Close each run with one beat of reflection on the {{SKILL}} itself:
23
- - A step misled, a needed step was missing, or the trigger fired wrongly — that
24
- is a flaw in this file. Propose the exact edit (trigger, procedure, or
25
- done-when) and apply it with the user's assent ({{LAW}} II).
26
- - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
27
- clears {{DOCTRINE}} process 1's bar: it would change how a future session behaves, and a
28
- fresh read of the repo would not re-derive it. Update an existing memory over
29
- adding one; when in doubt, leave it out.
30
- - No friction, nothing learned — move on; this loop earns no ceremony. Most
31
- runs end here.
@@ -1 +0,0 @@
1
- import{u as w,j as s,E as f,L as v,a as y,g as S}from"./index-DNQE5ydy.js";import{r as b}from"./react-DOpiTn5v.js";import{M as C}from"./Markdown-C__nuWX5.js";import{S as F}from"./StatusBadge-wW_RS_my.js";import{C as L}from"./CatalogRow-DALEQImZ.js";import{F as $}from"./FilterInput-CkUCk_lY.js";import{C as c}from"./lawCats-DUS9UTH4.js";const t={design:{label:"Design",c:c.context},build:{label:"Build",c:c.craft},review:{label:"Review",c:c.security},ship:{label:"Ship",c:c.process},understand:{label:"Understand",c:c.verify},learn:{label:"Learn",c:c.comms},personal:{label:"Personal",c:"oklch(0.72 0.025 250)"}},E=["design","build","review","ship","understand","learn","personal"];function A({skill:l,isOpen:d,onToggle:o}){const r=t[l.cat]||t.build,a=s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"skill-name",children:[s.jsx("span",{className:"x",children:"›"}),l.name,s.jsx(F,{status:l.status})]}),s.jsx("span",{className:"skill-desc",children:l.desc}),s.jsxs("span",{className:"law-class",children:[s.jsx("span",{className:"cdot"}),r.label]})]});return s.jsx(L,{kind:"skill",addr:l.name,isOpen:d,onToggle:o,className:`skill-row ${d?"on":""}`,style:{"--cc":r.c},head:a,expandClassName:"law-expand skill-expand",renderBody:i=>s.jsx("div",{className:"skill-doc",children:s.jsx(C,{body:i.body,links:i.links||[]})}),srcLine:`$ geneseed skill ${l.name} · skills/${l.name}.md`})}function D({selected:l,dataRev:d}){const{data:o,error:r}=w(()=>y.catalog("skills"),[d],"catalog:skills"),[a,i]=b.useState("all"),[h,N]=b.useState(""),j=l||null,k=e=>S(j===e?"#/skills":`#/item/skill/${e}`);if(r)return s.jsx(f,{error:r});if(!o)return s.jsx(v,{});const n=(o.items||[]).map(e=>({name:e.name,desc:e.desc,status:e.status,cat:e.klass&&t[e.klass]?e.klass:"build"})),m={};n.forEach(e=>{m[e.cat]=(m[e.cat]||0)+1});const u=n.filter(e=>e.status==="experimental").length,g=E.filter(e=>e!=="personal"||m.personal>0),x=h.trim().toLowerCase(),p=(a==="all"?n:n.filter(e=>e.cat===a)).filter(e=>!x||`${e.name} ${e.desc}`.toLowerCase().includes(x));return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"head-row mb-16",children:s.jsxs("div",{children:[s.jsx("div",{className:"eyebrow",children:"capabilities"}),s.jsx("h1",{className:"h",children:"Skills"}),s.jsx("p",{className:"sub",children:"The repeatable workflows the agent runs on demand. Pick a class to filter, or open any skill to read its full procedure."})]})}),s.jsxs("div",{className:"law-toolbar",children:[s.jsxs("div",{className:"law-cats",children:[s.jsxs("button",{className:`law-cat ${a==="all"?"on":""}`,onClick:()=>i("all"),children:[s.jsx("span",{children:"All"}),s.jsx("span",{className:"cn",children:n.length})]}),g.map(e=>s.jsxs("button",{className:`law-cat ${a===e?"on":""}`,style:{"--cc":t[e].c},onClick:()=>i(e),children:[s.jsx("span",{className:"cdot"}),s.jsx("span",{children:t[e].label}),s.jsx("span",{className:"cn",children:m[e]||0})]},e))]}),s.jsx($,{className:"lib-filter law-filter",value:h,onChange:N,placeholder:"Filter skills…",label:"Filter skills"}),s.jsxs("span",{className:"law-readout",children:[s.jsx("b",{children:p.length})," skills · ",s.jsx("b",{children:g.length})," classes ·"," ",u>0?s.jsxs(s.Fragment,{children:[s.jsx("b",{children:u})," experimental ·"," "]}):null,"source ",s.jsx("b",{children:"src/skills/"})]})]}),s.jsxs("div",{className:"card law-wrap",children:[s.jsxs("div",{className:"skill-rowhead",children:[s.jsx("span",{children:"Skill"}),s.jsx("span",{children:"Purpose"}),s.jsx("span",{children:"Class"})]}),p.map(e=>s.jsx(A,{skill:e,isOpen:j===e.name,onToggle:()=>k(e.name)},e.name)),p.length===0&&s.jsx("div",{className:"empty",style:{padding:32},children:n.length===0?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"big",children:"Nothing here yet"}),"No skills are deployed; build and install a theme to seed them."]}):x?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"big",children:"No matching skills"}),"Nothing matches “",h.trim(),"”."]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"big",children:"No skills in this class"}),"Try another class, or pick All."]})})]})]})}export{D as default};