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.
Files changed (337) hide show
  1. package/CHANGELOG.md +938 -0
  2. package/DESIGN.md +1423 -0
  3. package/LICENSE +21 -0
  4. package/QUICKSTART.md +48 -0
  5. package/README.md +336 -0
  6. package/SETUP.md +1027 -0
  7. package/SHIPPED.md +70 -0
  8. package/adapters/bob/README.md +100 -0
  9. package/adapters/claude-code/README.md +101 -0
  10. package/adapters/claude-code/settings.json +47 -0
  11. package/adapters/claude-code/skills/geneseed/SKILL.md +72 -0
  12. package/adapters/copilot/README.md +76 -0
  13. package/adapters/opencode/GLOBAL-HARNESS-SPEC.md +434 -0
  14. package/adapters/opencode/HOW-OPENCODE-LOADS.md +158 -0
  15. package/adapters/opencode/README.md +582 -0
  16. package/adapters/opencode/agents/orchestrator.md +25 -0
  17. package/adapters/opencode/opencode.json +44 -0
  18. package/adapters/opencode/plugins/geneseed-activity.js +430 -0
  19. package/adapters/opencode/plugins/geneseed-context.js +876 -0
  20. package/adapters/opencode/plugins/geneseed-guard.js +290 -0
  21. package/adapters/opencode/plugins/geneseed-learn.js +396 -0
  22. package/adapters/opencode/plugins/geneseed-notify.js +142 -0
  23. package/adapters/opencode/plugins/geneseed-ponytail.js +148 -0
  24. package/adapters/opencode/plugins/geneseed-workflow.js +183 -0
  25. package/adapters/opencode/workflows/_runtime.js +277 -0
  26. package/adapters/opencode/workflows/council.js +64 -0
  27. package/adapters/opencode/workflows/dispatch.js +89 -0
  28. package/adapters/opencode/workflows/research-plan-implement.js +43 -0
  29. package/adapters/opencode/workflows/review.js +57 -0
  30. package/bin/geneseed-cli.mjs +412 -0
  31. package/bin/geneseed-hook.mjs +129 -0
  32. package/bin/geneseed.mjs +1086 -0
  33. package/docs/declined.md +149 -0
  34. package/docs/limits.md +270 -0
  35. package/docs/opencode-plugin-setup.md +64 -0
  36. package/docs/token-footprint.md +68 -0
  37. package/docs/web/_groups.json +45 -0
  38. package/docs/web/about.md +6 -0
  39. package/docs/web/adapters-claude-code.md +8 -0
  40. package/docs/web/adapters-opencode-loads.md +8 -0
  41. package/docs/web/adapters-opencode-spec.md +8 -0
  42. package/docs/web/adapters-opencode.md +8 -0
  43. package/docs/web/agents.md +8 -0
  44. package/docs/web/authoring.md +11 -0
  45. package/docs/web/autostart.md +9 -0
  46. package/docs/web/claude-hooks.md +36 -0
  47. package/docs/web/cli.md +6 -0
  48. package/docs/web/collaboration.md +27 -0
  49. package/docs/web/configure-wiki.md +9 -0
  50. package/docs/web/design.md +7 -0
  51. package/docs/web/env-knobs.md +9 -0
  52. package/docs/web/exclusions.md +26 -0
  53. package/docs/web/first-session.md +28 -0
  54. package/docs/web/footprint.md +31 -0
  55. package/docs/web/foreman-mode.md +33 -0
  56. package/docs/web/glossary.md +6 -0
  57. package/docs/web/harnesses.md +28 -0
  58. package/docs/web/headless.md +9 -0
  59. package/docs/web/ingest-docs.md +9 -0
  60. package/docs/web/install-paths.md +9 -0
  61. package/docs/web/install-quick.md +35 -0
  62. package/docs/web/lsp-overview.md +37 -0
  63. package/docs/web/mcp-claude-code.md +10 -0
  64. package/docs/web/mcp-filesystem.md +9 -0
  65. package/docs/web/mcp-gitlab.md +9 -0
  66. package/docs/web/mcp-markitdown.md +9 -0
  67. package/docs/web/mcp-overview.md +34 -0
  68. package/docs/web/mcp-trouble.md +9 -0
  69. package/docs/web/mcp-verify.md +9 -0
  70. package/docs/web/memory.md +7 -0
  71. package/docs/web/migrate.md +39 -0
  72. package/docs/web/model.md +20 -0
  73. package/docs/web/notebook.md +7 -0
  74. package/docs/web/pipelines.md +24 -0
  75. package/docs/web/plugin-activity.md +23 -0
  76. package/docs/web/plugin-context.md +26 -0
  77. package/docs/web/plugin-guard.md +24 -0
  78. package/docs/web/plugin-learn.md +27 -0
  79. package/docs/web/plugin-notify.md +24 -0
  80. package/docs/web/plugin-ponytail.md +23 -0
  81. package/docs/web/plugin-setup.md +7 -0
  82. package/docs/web/plugin-workflow.md +24 -0
  83. package/docs/web/plugins.md +17 -0
  84. package/docs/web/project-context.md +9 -0
  85. package/docs/web/rules.md +8 -0
  86. package/docs/web/run-anywhere.md +9 -0
  87. package/docs/web/self-improve.md +8 -0
  88. package/docs/web/setup-choices.md +39 -0
  89. package/docs/web/skills.md +8 -0
  90. package/docs/web/themes-author.md +8 -0
  91. package/docs/web/themes.md +9 -0
  92. package/docs/web/token-footprint.md +7 -0
  93. package/docs/web/trouble.md +38 -0
  94. package/docs/web/upgrade.md +9 -0
  95. package/docs/web/verify.md +30 -0
  96. package/docs/web/wiki.md +7 -0
  97. package/docs/web/worktree.md +10 -0
  98. package/docs/web-ui.md +144 -0
  99. package/docs/wiki.md +43 -0
  100. package/geneseed +39 -0
  101. package/geneseed.cmd +34 -0
  102. package/harness.config.json +6 -0
  103. package/js/anim.mjs +326 -0
  104. package/js/catalog.mjs +112 -0
  105. package/js/checkout.mjs +88 -0
  106. package/js/cli-table.json +1034 -0
  107. package/js/cli.mjs +498 -0
  108. package/js/diff.mjs +384 -0
  109. package/js/doctor.mjs +1364 -0
  110. package/js/emit.mjs +1373 -0
  111. package/js/excludes.mjs +271 -0
  112. package/js/generate.mjs +379 -0
  113. package/js/hooks.mjs +1026 -0
  114. package/js/hosts.mjs +253 -0
  115. package/js/installs.mjs +378 -0
  116. package/js/inventory.mjs +175 -0
  117. package/js/lib/fs.mjs +913 -0
  118. package/js/lib/proc.mjs +28 -0
  119. package/js/lib/udiff.mjs +275 -0
  120. package/js/link.mjs +286 -0
  121. package/js/mcp.mjs +335 -0
  122. package/js/memory.mjs +108 -0
  123. package/js/menu.mjs +118 -0
  124. package/js/migrate.mjs +251 -0
  125. package/js/native.mjs +426 -0
  126. package/js/opencode.mjs +325 -0
  127. package/js/registry.mjs +110 -0
  128. package/js/render.mjs +282 -0
  129. package/js/settings.mjs +924 -0
  130. package/js/setup.mjs +492 -0
  131. package/js/status.mjs +281 -0
  132. package/js/themes.mjs +195 -0
  133. package/js/tui.mjs +444 -0
  134. package/js/uninstall.mjs +1137 -0
  135. package/js/update.mjs +910 -0
  136. package/js/web/actions.mjs +868 -0
  137. package/js/web/activity.mjs +284 -0
  138. package/js/web/api.mjs +873 -0
  139. package/js/web/docs.mjs +531 -0
  140. package/js/web/graph.mjs +0 -0
  141. package/js/web/jobs.mjs +480 -0
  142. package/js/web/server.mjs +1135 -0
  143. package/package.json +54 -0
  144. package/registry.json +474 -0
  145. package/src/AGENT.md.tmpl +390 -0
  146. package/src/agents/_template.md +76 -0
  147. package/src/agents/advocate.md +36 -0
  148. package/src/agents/architect.md +55 -0
  149. package/src/agents/developer.md +66 -0
  150. package/src/agents/docs.md +54 -0
  151. package/src/agents/empiricist.md +39 -0
  152. package/src/agents/explorer.md +54 -0
  153. package/src/agents/framer.md +36 -0
  154. package/src/agents/historian.md +51 -0
  155. package/src/agents/operator.md +37 -0
  156. package/src/agents/pragmatist.md +37 -0
  157. package/src/agents/reviewer.md +52 -0
  158. package/src/agents/security.md +57 -0
  159. package/src/agents/skeptic.md +48 -0
  160. package/src/agents/steward.md +36 -0
  161. package/src/agents/tester.md +54 -0
  162. package/src/agents/user-advocate.md +36 -0
  163. package/src/agents/visionary.md +36 -0
  164. package/src/laws/universal.md +387 -0
  165. package/src/memory/README.md +109 -0
  166. package/src/memory/gitignore +6 -0
  167. package/src/modes/README.md +26 -0
  168. package/src/modes/direct.md +2 -0
  169. package/src/modes/foreman.md +19 -0
  170. package/src/notebook/README.md +39 -0
  171. package/src/notebook/gitignore +7 -0
  172. package/src/postures/README.md +31 -0
  173. package/src/postures/artisan.md +14 -0
  174. package/src/postures/assistant.md +12 -0
  175. package/src/postures/expert.md +11 -0
  176. package/src/postures/mentor.md +11 -0
  177. package/src/postures/peer.md +12 -0
  178. package/src/skills/_template.md +47 -0
  179. package/src/skills/brainstorm.md +28 -0
  180. package/src/skills/clarify.md +28 -0
  181. package/src/skills/codebase-design.md +44 -0
  182. package/src/skills/commit.md +48 -0
  183. package/src/skills/council.md +34 -0
  184. package/src/skills/crash-course.md +28 -0
  185. package/src/skills/daydream/.claude-plugin/plugin.json +9 -0
  186. package/src/skills/daydream/SKILL.md +74 -0
  187. package/src/skills/daydream/VENDOR.md +25 -0
  188. package/src/skills/daydream/critic-prompt.md +38 -0
  189. package/src/skills/daydream/instructions.md +422 -0
  190. package/src/skills/daydream/synthesizer-prompt.md +41 -0
  191. package/src/skills/debug.md +37 -0
  192. package/src/skills/decode.md +28 -0
  193. package/src/skills/develop.md +29 -0
  194. package/src/skills/document-project.md +79 -0
  195. package/src/skills/domain-modeling.md +38 -0
  196. package/src/skills/drill.md +28 -0
  197. package/src/skills/feynman.md +26 -0
  198. package/src/skills/forge-mcp.md +48 -0
  199. package/src/skills/fresh-eyes.md +29 -0
  200. package/src/skills/frontend-design.md +58 -0
  201. package/src/skills/gap-detector.md +27 -0
  202. package/src/skills/geneseed-code-review.md +33 -0
  203. package/src/skills/geneseed.md +29 -0
  204. package/src/skills/git-archaeology.md +47 -0
  205. package/src/skills/git-rescue.md +68 -0
  206. package/src/skills/handoff.md +29 -0
  207. package/src/skills/herdr.md +164 -0
  208. package/src/skills/ingest.md +49 -0
  209. package/src/skills/learning-path.md +26 -0
  210. package/src/skills/migrate.md +45 -0
  211. package/src/skills/opencode-theme.md +52 -0
  212. package/src/skills/parallel-agents.md +28 -0
  213. package/src/skills/pipeline.md +52 -0
  214. package/src/skills/plan.md +45 -0
  215. package/src/skills/ponytail.md +29 -0
  216. package/src/skills/profile.md +58 -0
  217. package/src/skills/prose.md +42 -0
  218. package/src/skills/prototype.md +44 -0
  219. package/src/skills/react-view-transitions/AGENTS.md +955 -0
  220. package/src/skills/react-view-transitions/README.md +42 -0
  221. package/src/skills/react-view-transitions/SKILL.md +320 -0
  222. package/src/skills/react-view-transitions/VENDOR.md +16 -0
  223. package/src/skills/react-view-transitions/metadata.json +12 -0
  224. package/src/skills/react-view-transitions/references/css-recipes.md +242 -0
  225. package/src/skills/react-view-transitions/references/implementation.md +182 -0
  226. package/src/skills/react-view-transitions/references/nextjs.md +176 -0
  227. package/src/skills/react-view-transitions/references/patterns.md +262 -0
  228. package/src/skills/refactor.md +32 -0
  229. package/src/skills/release.md +43 -0
  230. package/src/skills/repo-map.md +36 -0
  231. package/src/skills/research.md +42 -0
  232. package/src/skills/review-response.md +36 -0
  233. package/src/skills/roast-me.md +28 -0
  234. package/src/skills/rule.md +100 -0
  235. package/src/skills/ship.md +49 -0
  236. package/src/skills/tdd.md +31 -0
  237. package/src/skills/tickets.md +44 -0
  238. package/src/skills/token-report/SKILL.md +76 -0
  239. package/src/skills/token-report/VENDOR.md +23 -0
  240. package/src/skills/token-report/scripts/token_report.mjs +1301 -0
  241. package/src/skills/wayfinder.md +49 -0
  242. package/src/skills/wiki.md +68 -0
  243. package/src/skills/workflow.md +38 -0
  244. package/themes/README.md +69 -0
  245. package/themes/_TEMPLATE.json +147 -0
  246. package/themes/biker.json +147 -0
  247. package/themes/commentator.json +147 -0
  248. package/themes/cyberpunk.json +147 -0
  249. package/themes/gamer.json +147 -0
  250. package/themes/imperial.json +147 -0
  251. package/themes/joker.json +147 -0
  252. package/themes/marvin.json +147 -0
  253. package/themes/mean.json +147 -0
  254. package/themes/military.json +147 -0
  255. package/themes/neutral.json +147 -0
  256. package/themes/opencode/README.md +58 -0
  257. package/themes/opencode/catppuccin.json +27 -0
  258. package/themes/opencode/dracula.json +27 -0
  259. package/themes/opencode/everforest.json +27 -0
  260. package/themes/opencode/gruvbox.json +27 -0
  261. package/themes/opencode/kanagawa.json +27 -0
  262. package/themes/opencode/neon.json +27 -0
  263. package/themes/opencode/nord.json +27 -0
  264. package/themes/opencode/rosepine.json +27 -0
  265. package/themes/opencode/tokyonight.json +27 -0
  266. package/themes/pirate.json +147 -0
  267. package/themes/sports.json +147 -0
  268. package/themes/verstappen.json +147 -0
  269. package/themes/wizard.json +147 -0
  270. package/web/dist/assets/About-DX1-VTBP.js +1 -0
  271. package/web/dist/assets/Activity-Dp9NaXOn.js +1 -0
  272. package/web/dist/assets/ActivityDetail-HpOBtrXS.js +1 -0
  273. package/web/dist/assets/Diff-Ct4G3Se8.js +5 -0
  274. package/web/dist/assets/Doctor-DGjkZFuA.js +1 -0
  275. package/web/dist/assets/Graph-b8o-S6kv.js +1 -0
  276. package/web/dist/assets/Harnesses-gr3-aHBF.js +1 -0
  277. package/web/dist/assets/Laws-DTwF5tTC.js +1 -0
  278. package/web/dist/assets/Library-BEZscyaQ.js +1 -0
  279. package/web/dist/assets/Markdown-k_LSLBGq.js +1 -0
  280. package/web/dist/assets/Profile-DydukTxP.js +1 -0
  281. package/web/dist/assets/Rules-CIRG4Ldt.js +1 -0
  282. package/web/dist/assets/Skills-Buoi1IBr.js +1 -0
  283. package/web/dist/assets/StatusBadge-CE_AJttl.js +1 -0
  284. package/web/dist/assets/Themes-CI4o3gJC.js +2 -0
  285. package/web/dist/assets/activity-BCW7e6Cy.js +1 -0
  286. package/web/dist/assets/audiowide-latin-400-normal-6GFCX7ni.woff2 +0 -0
  287. package/web/dist/assets/geist-mono-latin-400-normal-DKaoCDn5.woff2 +0 -0
  288. package/web/dist/assets/geist-mono-latin-500-normal-C3sF8Y1B.woff2 +0 -0
  289. package/web/dist/assets/geist-mono-latin-600-normal-BHzjB6_C.woff2 +0 -0
  290. package/web/dist/assets/hanken-grotesk-latin-400-italic-Bserb8X5.woff2 +0 -0
  291. package/web/dist/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2 +0 -0
  292. package/web/dist/assets/hanken-grotesk-latin-500-italic-BGfwwhek.woff2 +0 -0
  293. package/web/dist/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2 +0 -0
  294. package/web/dist/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2 +0 -0
  295. package/web/dist/assets/hanken-grotesk-latin-700-normal-CeQ8H3UY.woff2 +0 -0
  296. package/web/dist/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  297. package/web/dist/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  298. package/web/dist/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
  299. package/web/dist/assets/ibm-plex-serif-latin-400-normal-BIGslYFI.woff2 +0 -0
  300. package/web/dist/assets/ibm-plex-serif-latin-500-normal-REKAfBVG.woff2 +0 -0
  301. package/web/dist/assets/ibm-plex-serif-latin-600-normal-DAxitmSu.woff2 +0 -0
  302. package/web/dist/assets/index-B1PIx7RM.js +1 -0
  303. package/web/dist/assets/index-BnTQUSUz.js +12 -0
  304. package/web/dist/assets/index-Ck2iCdaC.js +2 -0
  305. package/web/dist/assets/index-DUCsDv7z.css +1 -0
  306. package/web/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  307. package/web/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  308. package/web/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  309. package/web/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
  310. package/web/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  311. package/web/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  312. package/web/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  313. package/web/dist/assets/marked.esm-JKvyS0Pp.js +46 -0
  314. package/web/dist/assets/oswald-latin-400-normal-BAFo8sP8.woff2 +0 -0
  315. package/web/dist/assets/oswald-latin-500-normal-B-eyT0Dw.woff2 +0 -0
  316. package/web/dist/assets/oswald-latin-600-normal-plFmSr5g.woff2 +0 -0
  317. package/web/dist/assets/oswald-latin-700-normal-vy6hmKSr.woff2 +0 -0
  318. package/web/dist/assets/poppins-latin-400-normal-cpxAROuN.woff2 +0 -0
  319. package/web/dist/assets/poppins-latin-500-normal-C8OXljZJ.woff2 +0 -0
  320. package/web/dist/assets/poppins-latin-600-normal-zEkxB9Mr.woff2 +0 -0
  321. package/web/dist/assets/poppins-latin-700-normal-Qrb0O0WB.woff2 +0 -0
  322. package/web/dist/assets/react-DOpiTn5v.js +32 -0
  323. package/web/dist/assets/roman-DkYN0LX9.js +1 -0
  324. package/web/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 +0 -0
  325. package/web/dist/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 +0 -0
  326. package/web/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 +0 -0
  327. package/web/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 +0 -0
  328. package/web/dist/assets/space-mono-latin-400-italic-YylcN9Ay.woff2 +0 -0
  329. package/web/dist/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2 +0 -0
  330. package/web/dist/assets/space-mono-latin-700-italic-vNvENeTh.woff2 +0 -0
  331. package/web/dist/assets/space-mono-latin-700-normal-mWgeinG7.woff2 +0 -0
  332. package/web/dist/icon-maskable.svg +10 -0
  333. package/web/dist/icon.svg +8 -0
  334. package/web/dist/index.html +21 -0
  335. package/web/dist/manifest.webmanifest +14 -0
  336. package/web/dist/sw.js +40 -0
  337. package/web/src/pages/Laws.jsx +230 -0
@@ -0,0 +1,43 @@
1
+ # {{SKILL}}: release
2
+
3
+ > {{DESC_RELEASE}}
4
+
5
+ **Trigger:** cutting a release — a version bump, a changelog entry, and a tag.
6
+
7
+ ## Procedure
8
+ 1. Decide the version from the changes since the last tag, following the project's
9
+ scheme (semver: breaking → major, feature → minor, fix → patch). Verify the
10
+ current version and the last tag rather than guessing (universal {{LAW}} III).
11
+ **Never ship a breaking change under a non-major bump** — honest versions are a
12
+ promise to downstream consumers, and a quiet break is a broken one.
13
+ 2. Update the version wherever it is declared (manifest, package metadata, a VERSION
14
+ constant) — find *every* occurrence so they cannot drift (universal {{LAW}} XII).
15
+ 3. Update the changelog: a dated section for the new version summarising the
16
+ user-visible changes, grouped (added / changed / fixed), derived from the commits
17
+ since the last tag.
18
+ 4. Commit the version bump and changelog as one focused commit, through the
19
+ [commit {{SKILL}}](commit.md) — summary and exact message presented for
20
+ acceptance (universal {{LAW}} II, {{LAW}} XX).
21
+ 5. Tag the release (annotated, matching the version). Tagging and publishing are
22
+ **outward-facing** (universal {{LAW}} IV), and the push itself needs explicit
23
+ per-push acceptance — a release lands on a shared branch, where {{LAW}} XX
24
+ applies with extra care and grants no standing consent.
25
+ 6. With that acceptance, push the commit and the tag together; trigger or verify
26
+ the publish/release pipeline.
27
+
28
+ ## Done when
29
+ - Version, changelog, and tag all name the same number, and the release is pushed
30
+ (or staged for the pipeline) with no unrelated changes bundled in.
31
+
32
+ ## Self-improvement
33
+
34
+ Close each run with one beat of reflection on the {{SKILL}} itself:
35
+ - A step misled, a needed step was missing, or the trigger fired wrongly — that
36
+ is a flaw in this file. Propose the exact edit (trigger, procedure, or
37
+ done-when) and apply it with the user's assent ({{LAW}} II).
38
+ - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
39
+ clears {{LAW}} VI's bar: it would change how a future session behaves, and a
40
+ fresh read of the repo would not re-derive it. Update an existing memory over
41
+ adding one; when in doubt, leave it out.
42
+ - No friction, nothing learned — move on; this loop earns no ceremony. Most
43
+ runs end here.
@@ -0,0 +1,36 @@
1
+ # {{SKILL}}: repo-map
2
+
3
+ > {{DESC_REPO_MAP}}
4
+
5
+ **Trigger:** onboarding to a repo that has no map, or after a structural change.
6
+
7
+ ## Procedure
8
+ 1. If `ARCHITECTURE.md` exists, read it first — it is the cheapest orientation
9
+ (universal {{LAW}} XV).
10
+ 2. Locate the project's own documentation — a `docs/`, `doc/`, `documentation/`,
11
+ or `wiki/` folder at the root, or the top-level README. Note where it lives and
12
+ what it covers, and record that in the map. Read the pages relevant to the work
13
+ at hand before changing the code they describe (universal {{LAW}} XVII) — the
14
+ relevant pages, not the whole tree ({{LAW}} XV).
15
+ 3. If `ARCHITECTURE.md` is absent or stale, build or refresh it: entry points, the
16
+ key directories and what each holds, how to build / test / run, external
17
+ services, and the one or two non-obvious conventions a newcomer must know.
18
+ 4. Keep it short — a map, not documentation. Link out for detail.
19
+ 5. Update it in the same change whenever structure shifts (universal {{LAW}} XI).
20
+
21
+ ## Done when
22
+ - `ARCHITECTURE.md` reflects the current structure, and a fresh agent could orient
23
+ from it in a single read.
24
+
25
+ ## Self-improvement
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 {{LAW}} VI'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.
@@ -0,0 +1,42 @@
1
+ # {{SKILL}}: research
2
+
3
+ > {{DESC_RESEARCH}}
4
+
5
+ **Trigger:** a question needs current, external, or wide-ranging information that is
6
+ not in this repository or your own knowledge — facts to gather and verify from the
7
+ open web.
8
+
9
+ **Requires:** a host web-search or web-fetch capability ({{LAW}} XIX) — without one,
10
+ stop and report it ({{LAW}} VII); never substitute recall for verified research.
11
+
12
+ ## Procedure
13
+ 1. State the question and what a complete answer must contain. Break a broad question
14
+ into specific sub-questions.
15
+ 2. Search the web — use the host's web-search tool or a connected search provider
16
+ ({{LAW}} XIX). Query from several angles; one search is not research. If the host
17
+ exposes no web capability at all, stop and report that ({{LAW}} VII) — never
18
+ substitute your own knowledge for verified research.
19
+ 3. Open the most promising sources and extract only the relevant slice, not the whole
20
+ page ({{LAW}} XV). Prefer primary and recent sources.
21
+ 4. Cross-check every material claim against at least two independent sources. Treat a
22
+ single-source or unsourced claim as unverified, and say so ({{LAW}} III).
23
+ 5. Note recency — flag anything that may be out of date, and prefer the most current
24
+ authority.
25
+ 6. Synthesise a concise answer with each claim attributed to its source (title or URL).
26
+
27
+ ## Done when
28
+ - The question is answered, every material claim is traceable to a cited,
29
+ cross-checked source, and remaining uncertainties are flagged explicitly.
30
+
31
+ ## Self-improvement
32
+
33
+ Close each run with one beat of reflection on the {{SKILL}} itself:
34
+ - A step misled, a needed step was missing, or the trigger fired wrongly — that
35
+ is a flaw in this file. Propose the exact edit (trigger, procedure, or
36
+ done-when) and apply it with the user's assent ({{LAW}} II).
37
+ - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
38
+ clears {{LAW}} VI's bar: it would change how a future session behaves, and a
39
+ fresh read of the repo would not re-derive it. Update an existing memory over
40
+ adding one; when in doubt, leave it out.
41
+ - No friction, nothing learned — move on; this loop earns no ceremony. Most
42
+ runs end here.
@@ -0,0 +1,36 @@
1
+ # {{SKILL}}: review-response
2
+
3
+ > {{DESC_REVIEW_RESPONSE}}
4
+
5
+ **Trigger:** you have received review feedback — from a human or another agent — and
6
+ are about to act on it.
7
+
8
+ ## Procedure
9
+ 1. Read every comment in full before changing anything. Group related comments.
10
+ 2. Classify each comment: correct, partially correct, wrong, or unclear.
11
+ 3. For anything you judge wrong or unclear, verify it against the code or a test before
12
+ responding — do not comply blindly and do not dismiss blindly ({{LAW}} III,
13
+ {{LAW}} VIII).
14
+ 4. Respond to each comment: the change you will make and why, or a reasoned decline
15
+ with evidence.
16
+ 5. Apply the accepted changes — one intent per commit ({{LAW}} II), each through the
17
+ [commit {{SKILL}}](commit.md) so {{LAW}} XX's per-commit consent holds — then
18
+ re-run the checks ({{LAW}} III).
19
+ 6. Surface anything the review missed that you noticed while addressing it.
20
+
21
+ ## Done when
22
+ - Every comment has a reasoned response and either an applied change or a justified
23
+ decline, and the resulting changes are verified.
24
+
25
+ ## Self-improvement
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 {{LAW}} VI'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.
@@ -0,0 +1,28 @@
1
+ # {{SKILL}}: roast-me
2
+
3
+ > {{DESC_ROAST_ME}}
4
+
5
+ **Trigger:** the user asks to "roast", "tear apart", "find the fatal flaws", or "be brutally honest" about an artifact — code, design, plan, pitch, or writing. This is the *open-ended quality critique*: for reviewing a diff use [geneseed-code-review](geneseed-code-review.md); for a zero-context does-it-meet-the-spec verdict use [fresh-eyes](fresh-eyes.md).
6
+
7
+ ## Procedure
8
+ 1. Identify the artifact and the critique axis that matters (correctness, architecture, viability, clarity, security…); if unclear, ask once, then proceed.
9
+ 2. Steelman it: state the strongest case FOR the artifact in a sentence, so the attack hits the real thing, not a strawman.
10
+ 3. In the voice of {{ROAST_PERSONA}}, write each flaw as one line — `location/claim — what's wrong — what to do instead`. No praise, no hedging, no filler; drop any finding you can't pair with a fix.
11
+ 4. Rank findings by severity: fatal → significant → minor.
12
+ 5. Close with the single change that would help most.
13
+
14
+ ## Done when
15
+ - Findings are severity-ranked, every one carries a fix, and the highest-impact change is named.
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,100 @@
1
+ # {{SKILL}}: rule
2
+
3
+ > {{DESC_RULE}}
4
+
5
+ **Trigger:** anything the user wants to outlive this session — a standing rule of
6
+ their own ("always…", "never…", "from now on…", "make that a rule") or a durable
7
+ fact ("remember that…", "note that…", "keep in mind…"). Also fires when a
8
+ `feedback` {{MEMORY}} lesson keeps recurring and deserves promotion, or when
9
+ `user-rules.md` needs review — a trial rule past its date, a stale rule, a bloated
10
+ set. Nothing reaches `user-rules.md` or {{MEMORY}} except through here ({{LAW}} VI).
11
+
12
+ ## Procedure
13
+
14
+ ### 0 — The fork
15
+ Ask first, always: **a standing rule, or a fact to remember?** Never infer it. The
16
+ two stores bind differently and the choice belongs to the user. If they hesitate,
17
+ draw the line in one sentence: a rule changes how you *act* and binds every future
18
+ session; a memory records something *true* that would otherwise be lost or
19
+ re-derived. Then take exactly one branch.
20
+
21
+ ### Branch A — a fact to remember
22
+ 1. Search {{MEMORY}} for a file that already covers it. If one exists, update that
23
+ file — never mint a twin.
24
+ 2. Ask which **binding force** the fact carries, in plain words, not jargon:
25
+ *imposed by you, not mine to relax* (`constraint`) · *a choice taken among real
26
+ alternatives* (`choice`) · *a stance I hold until evidence overturns it*
27
+ (`conviction`) · *a constraint you deliberately relaxed* (`tempered`).
28
+ 3. Infer the `type` (`user` | `feedback` | `project` | `reference`), draft the file
29
+ per the {{MEMORY}} convention, and **show the exact content, frontmatter
30
+ included** — so a wrong inference is visible before it is written, not after.
31
+ 4. On the user's word, write the file and add its one-line entry to `MEMORY.md`.
32
+
33
+ ### Branch B — a standing rule
34
+ 1. **Triage.** A rule earns its place only if it is all three of: *standing
35
+ behaviour* (how to act — a fact belongs in Branch A, a pointer to documentation
36
+ in `context.json`), *recurring* (it will bind many future tasks, not just this
37
+ one), and *not already covered* (not a {{LAW}}, not an existing rule — extend
38
+ the existing rule rather than minting a twin). A failed triage goes back to the
39
+ fork, named and explained; a lean rule set is the feature, not a failure.
40
+ 2. **Reformulation.** Have the user state the rule as they would to a colleague on
41
+ their first day. Interrupt the moment they (a) use a term they cannot themselves
42
+ unpack, (b) skip a step — it says what to do but not when it bites, or the
43
+ reverse — or (c) simplify so far that the rule becomes false. Name which of the
44
+ three it was, each time. Then ask only about the axes still open — scope,
45
+ trigger, action, conflict, cost — one question at a time.
46
+ 3. **The counter-example.** Always, even for a rule that came out clean: build the
47
+ case where this rule would do harm, put it to the user, and make them choose —
48
+ accept it ("yes, even there") or narrow the rule. A rule that cannot survive its
49
+ own worst case was never generic, only never contradicted.
50
+ 4. **Legality.** A user rule may *tighten* a {{LAW}}, never repeal or weaken one.
51
+ If the rule conflicts — "push without asking", "skip the tests" — refuse, cite
52
+ the {{LAW}} it would repeal, and offer the nearest compliant version. Never write
53
+ rules into the {{LAWS}} file itself: it is regenerated on every update and the
54
+ edit would be silently lost.
55
+ 5. **Destination.** Scope decides the file: a rule that holds across all the user's
56
+ work goes to the *global* install's `user-rules.md`, a rule bound to this
57
+ codebase to the project's. Read the target first ({{LAW}} III — the real current
58
+ rules, not a remembered copy). The build seeds it once and never overwrites it;
59
+ if it is genuinely absent, create it with a `# User rules` header and note that a
60
+ rebuild would have seeded it.
61
+ 6. **Draft in the file's own format**: the next free `## R<n> — Title` heading, an
62
+ optional `(scope: user|project | source: …)` metadata line, then the rule in one
63
+ short paragraph, plain and testable. For a promotion from {{MEMORY}}, set
64
+ `source:` to the memory's name and add `trial until:` about a month out — a
65
+ promoted rule starts on probation.
66
+ 7. Show the exact text to the user and wait for explicit consent ({{LAW}} IV) before
67
+ appending it. For a promotion, after the rule lands, delete or archive the source
68
+ memory (with the same consent) so the lesson is not loaded twice.
69
+ 8. **Keep the set lean.** After writing, if the file holds more than ~15 rules or
70
+ any rule no longer changes behaviour, say so and propose merges or prunes — every
71
+ rule is loaded every session, and a bloated set dilutes the rules that matter.
72
+
73
+ The asymmetry is deliberate: Branch A costs one question, Branch B costs several.
74
+ The price is the safeguard — make remembering cheap and legislating expensive, or
75
+ the user picks "rule" out of impatience and the set inflates.
76
+
77
+ **Review flow** (on request, or when a `trial until:` date has passed): for each rule
78
+ due, ask whether it actually fired since adoption — graduate it (drop the trial
79
+ marker), demote it back to a {{MEMORY}} fact, or delete it. Same consent gate as
80
+ adoption.
81
+
82
+ ## Done when
83
+ - The fork was put to the user, and then either a {{MEMORY}} file exists carrying its
84
+ `force`, its `type` and its `MEMORY.md` line — or a rule stands in the right
85
+ `user-rules.md`, having survived reformulation, its own counter-example and the
86
+ {{LAWS}}, consented to explicitly, with any promoted source memory archived. The
87
+ {{LAWS}} file is untouched either way.
88
+
89
+ ## Self-improvement
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 {{LAW}} VI'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.
@@ -0,0 +1,49 @@
1
+ # {{SKILL}}: ship
2
+
3
+ > {{DESC_SHIP}}
4
+
5
+ **Trigger:** the change is committed and verified, and it is time to open a pull
6
+ request or merge the branch.
7
+
8
+ ## Procedure
9
+ 1. Confirm the work is actually done before shipping. Find the project's Definition
10
+ of Done — its test, lint, and build commands (often pointed at from
11
+ `context.json`); if it is undefined, ask rather than assume. Run those checks and
12
+ read the actual output (universal {{LAW}} III); state what you ran and its result.
13
+ Never ship on an unproven claim.
14
+ 2. Confirm the branch carries only this change's commits and is rebased/updated on
15
+ the base branch; resolve any divergence before opening.
16
+ 3. Push the branch only with the user's explicit, per-push acceptance — on every
17
+ branch, feature branches included ({{LAW}} XX); present the change summary + commit
18
+ message and wait, and never treat an earlier approval as consent for this push.
19
+ Opening a PR or merging is **outward-facing** — get explicit confirmation first too,
20
+ unless already authorized (universal {{LAW}} IV).
21
+ 4. Open the PR with a structured body: *what* changed and *why*, *how it was
22
+ tested*, and any risk or follow-up. Link the issue it closes; keep the title an
23
+ imperative one-line summary.
24
+ 5. If the project merges locally instead, merge into the base branch only after
25
+ review/approval, then delete the merged branch.
26
+ If shipping triggers a production deploy, confirm a tested rollback or
27
+ fix-forward path and a retained previous artifact *before* deploying — there must
28
+ be a way back (universal {{LAW}} IV); dispatch the
29
+ [operator {{AGENT}}](../{{DIR_AGENTS}}/operator.md) when the runtime surface is
30
+ non-trivial.
31
+ 6. Make sure documentation shipped with the code (universal {{LAW}} XI) — a change
32
+ that alters behaviour without its docs is incomplete, not ready to ship.
33
+
34
+ ## Done when
35
+ - The PR is open (or the branch is merged) with a body stating what / why / how it
36
+ was tested, and nothing unrelated rides along.
37
+
38
+ ## Self-improvement
39
+
40
+ Close each run with one beat of reflection on the {{SKILL}} itself:
41
+ - A step misled, a needed step was missing, or the trigger fired wrongly — that
42
+ is a flaw in this file. Propose the exact edit (trigger, procedure, or
43
+ done-when) and apply it with the user's assent ({{LAW}} II).
44
+ - A lesson that is *not* a flaw in this file goes to {{MEMORY}} only if it
45
+ clears {{LAW}} VI'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.
@@ -0,0 +1,31 @@
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 ({{LAW}} XXV).
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 {{LAW}} VI'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.
@@ -0,0 +1,44 @@
1
+ # {{SKILL}}: tickets
2
+
3
+ > {{DESC_TICKETS}}
4
+
5
+ **Trigger:** a spec or plan is too big for one session and must be split into
6
+ tracker issues that fresh sessions can pick up independently.
7
+
8
+ ## Procedure
9
+ 1. Work from the spec or plan already in context; explore the code enough that
10
+ ticket titles and bodies use the project's domain vocabulary (read
11
+ `CONTEXT.md` if it exists).
12
+ 2. Cut **tracer-bullet vertical slices**: each ticket cuts a narrow but
13
+ complete path through every layer it touches (schema, API, UI, tests), is
14
+ demoable or verifiable on its own, and fits one fresh context window. Any
15
+ prefactoring gets its own ticket first — make the change easy, then make
16
+ the easy change.
17
+ 3. Give every ticket its **blocking edges** — the tickets that must land
18
+ before it can start. A ticket with no blockers can start immediately.
19
+ 4. Exception — a **wide refactor** (one mechanical change whose blast radius
20
+ spans the codebase: a rename, a shared retype) cannot land as a green
21
+ vertical slice. Sequence it as **expand–contract**: expand (add the new
22
+ form beside the old, nothing breaks), migrate call sites in batches sized
23
+ by blast radius (each batch its own ticket, blocked by the expand),
24
+ contract (delete the old form, blocked by every batch).
25
+ 5. Publish to the repo's tracker (GitHub Issues by default; markdown files
26
+ under `docs/` when the repo has none). Each implementing session then takes
27
+ one unblocked ticket in a fresh context.
28
+
29
+ ## Done when
30
+ - Every slice of the spec is a published ticket with explicit blockers, each
31
+ sized for one session, and at least one unblocked ticket exists to start on.
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,76 @@
1
+ ---
2
+ name: token-report
3
+ description: "Generate a token usage report for the current session — a markdown table breakdown of context window usage: the session-start baseline (harness, system prompt, tools, skills), everything processed since (user messages, replies, thinking, tool calls and results per tool), exact recorded totals, and the heaviest single items. Use this whenever the user asks about token usage, context usage, context window size, session cost in tokens, 'how full is the context', 'what is eating my context', a usage breakdown or usage report — even if they don't say the word 'token'."
4
+ ---
5
+
6
+ # Token usage report
7
+
8
+ > Generate the session's token usage breakdown — exact recorded totals, context
9
+ > window occupancy, and an estimated attribution of what filled it — as markdown
10
+ > tables, on any supported host.
11
+
12
+ Produce a token usage report for the current session by running the bundled
13
+ script, then present its markdown output to the user.
14
+
15
+ ## How to run
16
+
17
+ Run the script that sits next to this SKILL.md:
18
+
19
+ ```bash
20
+ node <this-skill-directory>/scripts/token_report.mjs
21
+ ```
22
+
23
+ It auto-detects the host you are running on by locating session data and
24
+ picking the most recently active source:
25
+
26
+ | Host | Session data | Fidelity |
27
+ |---|---|---|
28
+ | Claude Code | `~/.claude/projects/<slug>/*.jsonl` | exact usage per request |
29
+ | IBM Bob | `~/.bob/projects/<slug>/*.jsonl` (Claude-shaped, `$BOB_CONFIG_DIR` honoured) | exact usage per request |
30
+ | OpenCode | `~/.local/share/opencode/opencode.db` (SQLite, v1.2+; pre-1.2 falls back to `storage/` JSON files) | exact `tokens` per request; child sessions attributed as subagents |
31
+ | GitHub Copilot | `~/.copilot/history-session-state/` | best effort — undocumented schema; token-like fields harvested, else estimates only |
32
+
33
+ Useful flags: `--host claude|bob|opencode|copilot` to force a host,
34
+ `--transcript <path>` / `--session <id>` for a specific session,
35
+ `--limit <tokens>` for the context-window limit used in the % columns
36
+ (default 200000), `--top <n>` for the heaviest-items list.
37
+
38
+ ## What the report contains, and where the numbers come from
39
+
40
+ Two kinds of numbers — keep the distinction explicit when presenting:
41
+
42
+ 1. **Exact numbers** come from the usage the host records with every request:
43
+ session totals (output tokens, fresh input, cache reads/writes), the
44
+ session-start baseline, and the current/peak context size. These are ground
45
+ truth — never contradict them.
46
+ 2. **Estimated attribution** (~4 characters per token) explains *what* fills
47
+ the context: user messages, assistant replies, thinking, tool calls, and
48
+ tool results grouped per tool. These are labeled estimates; keep them
49
+ labeled that way.
50
+
51
+ The session-start baseline is the input-side token count of the very first
52
+ request — that is the harness (system prompt, tool schemas, skill/agent
53
+ listings, memory files) plus the user's first message. At the start of a
54
+ fresh session that is the whole story; later, the delta between current and
55
+ start context is the work processed since.
56
+
57
+ ## Presenting the result
58
+
59
+ Relay the script's markdown tables directly — they are the deliverable.
60
+ After the tables, add a short interpretation in your own words: what is
61
+ consuming the most context, and one concrete suggestion if something stands
62
+ out (e.g. a single huge file read dominating, or heavy tool results that a
63
+ subagent could have absorbed instead). Do not pad the report with generic
64
+ advice when nothing stands out.
65
+
66
+ If the script errors or reports degraded fidelity (a host that stores its
67
+ sessions elsewhere, or records no usage), say so plainly and fall back to
68
+ reporting what you know: rough context size from any usage information
69
+ available to you, and a qualitative breakdown of what has happened this
70
+ session. Do not invent exact numbers.
71
+
72
+ ## Self-improvement
73
+
74
+ If the script failed to find this host's session data, or a host changed its
75
+ storage schema, note the observed layout and fix `scripts/token_report.mjs`
76
+ (or record the finding in memory for the next run) before closing out.
@@ -0,0 +1,23 @@
1
+ # Folder skill — token-report
2
+
3
+ Unlike its siblings in `VENDORED_SKILL_DIRS`, this folder is **Geneseed-authored**,
4
+ not third-party. It rides the vendored-folder mechanism because it bundles an
5
+ executable (`scripts/token_report.mjs`) and Geneseed's flat-skill pipeline renders
6
+ single `.md` files only. Listing it in the generator's `VENDORED_SKILL_DIRS`
7
+ makes the whole folder ride along verbatim into every host emit — Claude Code,
8
+ IBM Bob, OpenCode, GitHub Copilot — which is exactly what a multi-file skill needs.
9
+
10
+ - **Upstream:** this repository (first-party)
11
+ - **License:** same as Geneseed (see repository LICENSE)
12
+
13
+ Consequences of riding this mechanism (deliberate):
14
+
15
+ - exempt from the flat-skill authoring gates (theme DESC tokens, dead-link,
16
+ hermeticity, skill counts) — the SKILL.md here carries its own frontmatter
17
+ `description` and blockquote purpose line instead;
18
+ - listed in AGENT.md's folder-skills section, not the main skills table.
19
+
20
+ The script supports all four emitted hosts (exact usage on Claude Code, Bob and
21
+ OpenCode; best-effort on Copilot, whose session-state schema is undocumented).
22
+ If a host changes its session storage layout, fix the corresponding finder or
23
+ parser in `scripts/token_report.mjs`.