geneseed 3.5.0 → 3.7.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 (89) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/DESIGN.md +6 -6
  3. package/QUICKSTART.md +1 -1
  4. package/README.md +32 -30
  5. package/SETUP.md +34 -8
  6. package/SHIPPED.md +3 -3
  7. package/adapters/claude-code/skills/geneseed/SKILL.md +1 -1
  8. package/adapters/openclaude/README.md +64 -0
  9. package/adapters/opencode/plugins/geneseed-workflow.js +1 -1
  10. package/adapters/opencode/workflows/_runtime.js +1 -1
  11. package/docs/extending.md +22 -6
  12. package/docs/web/exclusions.md +1 -0
  13. package/docs/web/footprint.md +1 -1
  14. package/docs/web/harnesses.md +14 -14
  15. package/docs/web/install-quick.md +1 -1
  16. package/docs/web/rules.md +1 -1
  17. package/docs/web/themes-author.md +1 -1
  18. package/docs/web-ui.md +1 -1
  19. package/harness.config.json +1 -1
  20. package/js/README.md +3 -3
  21. package/js/build/driver.mjs +50 -9
  22. package/js/build/emit-claude.mjs +1 -1
  23. package/js/build/generate.mjs +2 -1
  24. package/js/build/source.mjs +5 -4
  25. package/js/hosts/hooks.mjs +11 -4
  26. package/js/hosts/hosts.mjs +17 -2
  27. package/js/hosts/installs.mjs +32 -2
  28. package/js/hosts/mcp.mjs +8 -1
  29. package/js/hosts/settings.mjs +4 -1
  30. package/js/inspect/diff.mjs +1 -1
  31. package/js/inspect/doctor.mjs +3 -3
  32. package/js/inspect/excludes.mjs +7 -5
  33. package/js/inspect/status.mjs +4 -4
  34. package/js/maintain/migrate.mjs +1 -1
  35. package/js/maintain/setup.mjs +7 -2
  36. package/js/maintain/uninstall.mjs +3 -3
  37. package/js/web/actions.mjs +7 -5
  38. package/js/web/api.mjs +2 -2
  39. package/js/web/docs.mjs +1 -1
  40. package/package.json +2 -1
  41. package/src/AGENT.md.tmpl +8 -5
  42. package/src/doctrines/README.md +3 -2
  43. package/src/doctrines/comms.md +53 -0
  44. package/src/doctrines/process.md +0 -26
  45. package/src/skills/debug.md +1 -1
  46. package/src/skills/document-project.md +127 -25
  47. package/src/skills/parallel-agents.md +1 -1
  48. package/src/skills/pipeline.md +1 -1
  49. package/src/skills/token-report/SKILL.md +2 -1
  50. package/src/skills/token-report/VENDOR.md +3 -3
  51. package/src/skills/token-report/scripts/token_report.mjs +14 -7
  52. package/src/skills/workflow.md +2 -2
  53. package/themes/_TEMPLATE.json +5 -3
  54. package/themes/biker.json +5 -3
  55. package/themes/commentator.json +5 -3
  56. package/themes/cyberpunk.json +5 -3
  57. package/themes/gamer.json +5 -3
  58. package/themes/imperial.json +5 -3
  59. package/themes/joker.json +5 -3
  60. package/themes/marvin.json +5 -3
  61. package/themes/mean.json +5 -3
  62. package/themes/military.json +5 -3
  63. package/themes/neutral.json +5 -3
  64. package/themes/pirate.json +5 -3
  65. package/themes/sports.json +5 -3
  66. package/themes/verstappen.json +5 -3
  67. package/themes/wizard.json +5 -3
  68. package/web/dist/assets/{Activity-Flgf4kHy.js → Activity-CH-7cPIM.js} +1 -1
  69. package/web/dist/assets/{ActivityDetail-DIpr85nh.js → ActivityDetail-DZvz0xS5.js} +1 -1
  70. package/web/dist/assets/{CatalogRow-CjyLjaLb.js → CatalogRow-DftXpZHY.js} +1 -1
  71. package/web/dist/assets/{Diff-Deisdha8.js → Diff-DvwdG0L9.js} +1 -1
  72. package/web/dist/assets/{Docs-DGUdY4l4.js → Docs-DrJNDPwI.js} +1 -1
  73. package/web/dist/assets/{Doctor-F74lJ69P.js → Doctor-OTmwmYZg.js} +1 -1
  74. package/web/dist/assets/{GreenhouseView-D072lBiD.js → GreenhouseView-XxrAdriX.js} +1 -1
  75. package/web/dist/assets/Harness-C_LYNk5c.js +1 -0
  76. package/web/dist/assets/{JournalView-DWFqZ0Iw.js → JournalView-BcuyeEaR.js} +1 -1
  77. package/web/dist/assets/{Laws-BN6g3HU7.js → Laws-CWHrTKY4.js} +1 -1
  78. package/web/dist/assets/{Library-CDOv4emM.js → Library-CA9IHghn.js} +1 -1
  79. package/web/dist/assets/{OperatorHudView-CwNIUVX8.js → OperatorHudView-BMRY1Tt4.js} +1 -1
  80. package/web/dist/assets/{Profile-CpP9BTne.js → Profile-wceET1JY.js} +1 -1
  81. package/web/dist/assets/{Rules-DFXsUCB7.js → Rules-BEXvY4Tx.js} +1 -1
  82. package/web/dist/assets/{Settings-BqZVUtJ5.js → Settings-DS2zF0Ez.js} +1 -1
  83. package/web/dist/assets/{Skills-Cu6kBgfF.js → Skills-DahlOJuI.js} +1 -1
  84. package/web/dist/assets/{drawable-BgfrEBer.js → drawable-BTHjTzF7.js} +1 -1
  85. package/web/dist/assets/{index-CAqrWhKl.js → index-AN5Emnrg.js} +2 -2
  86. package/web/dist/assets/{lawCats-BLgxl151.js → lawCats-Btjp3Hk_.js} +1 -1
  87. package/web/dist/index.html +1 -1
  88. package/web/src/pages/Laws.jsx +6 -2
  89. package/web/dist/assets/Harness-DNRP2Va7.js +0 -1
@@ -11,6 +11,8 @@
11
11
  * (SQLite, v1.2+: session/message/part tables,
12
12
  * JSON `data` columns; falls back to the pre-1.2
13
13
  * storage/ JSON files when no DB exists)
14
+ * openclaude OpenClaude ~/.openclaude/projects/<slug>/<session>.jsonl exact usage
15
+ * (Claude Code fork; $OPENCLAUDE_CONFIG_DIR honoured)
14
16
  * copilot GitHub Copilot ~/.copilot/history-session-state/ best effort
15
17
  * (schema undocumented; token fields harvested
16
18
  * generically, estimates otherwise)
@@ -485,13 +487,14 @@ class SessionData {
485
487
  }
486
488
 
487
489
  // ---------------------------------------------------------------------------
488
- // Host: Claude Code / IBM Bob (same transcript shape, different config root)
490
+ // Host: Claude Code / IBM Bob / OpenClaude (same transcript shape, different config root)
489
491
  // ---------------------------------------------------------------------------
490
492
 
491
493
  const slugify = (p) => p.replace(/[^A-Za-z0-9]/g, '-');
492
494
 
493
495
  function claudeShapedRoot(host) {
494
- const env = { claude: 'CLAUDE_CONFIG_DIR', bob: 'BOB_CONFIG_DIR' }[host];
496
+ const env = { claude: 'CLAUDE_CONFIG_DIR', bob: 'BOB_CONFIG_DIR',
497
+ openclaude: 'OPENCLAUDE_CONFIG_DIR' }[host];
495
498
  const root = process.env[env] || path.join(homedir(), `.${host}`);
496
499
  return isDir(path.join(root, 'projects')) ? root : null;
497
500
  }
@@ -1017,6 +1020,7 @@ async function detect(hostArg, transcript, session) {
1017
1020
  const finders = {
1018
1021
  claude: () => claudeShapedFind('claude', transcript),
1019
1022
  bob: () => claudeShapedFind('bob', transcript),
1023
+ openclaude: () => claudeShapedFind('openclaude', transcript),
1020
1024
  opencode: () => opencodeFind(session),
1021
1025
  copilot: () => copilotFind(transcript),
1022
1026
  };
@@ -1042,13 +1046,13 @@ async function detect(hostArg, transcript, session) {
1042
1046
  }
1043
1047
  if (!best) {
1044
1048
  sysExit('error: no session data found for any supported host '
1045
- + '(claude, bob, opencode, copilot)');
1049
+ + '(claude, bob, openclaude, opencode, copilot)');
1046
1050
  }
1047
1051
  return [best[0], best[1]];
1048
1052
  }
1049
1053
 
1050
1054
  async function load(host, found) {
1051
- if (host === 'claude' || host === 'bob') return claudeShapedParse(host, found);
1055
+ if (['claude', 'bob', 'openclaude'].includes(host)) return claudeShapedParse(host, found);
1052
1056
  if (host === 'opencode') {
1053
1057
  const [kind, payload] = found;
1054
1058
  if (kind === 'db') return opencodeDbParse(...payload);
@@ -1058,7 +1062,10 @@ async function load(host, found) {
1058
1062
  return copilotParse(found);
1059
1063
  }
1060
1064
 
1061
- const HOST_NAMES = { claude: 'Claude Code', bob: 'IBM Bob', opencode: 'OpenCode', copilot: 'GitHub Copilot' };
1065
+ const HOST_NAMES = {
1066
+ claude: 'Claude Code', bob: 'IBM Bob', openclaude: 'OpenClaude', opencode: 'OpenCode',
1067
+ copilot: 'GitHub Copilot',
1068
+ };
1062
1069
 
1063
1070
  function render(d, limit, topN) {
1064
1071
  const out = [`# Token usage report — ${HOST_NAMES[d.host] ?? d.host}`, ''];
@@ -1188,11 +1195,11 @@ function render(d, limit, topN) {
1188
1195
  // ---------------------------------------------------------------------------
1189
1196
 
1190
1197
  const PROG = path.basename(process.argv[1] ?? 'token_report.mjs');
1191
- const HOST_CHOICES = ['claude', 'bob', 'opencode', 'copilot'];
1198
+ const HOST_CHOICES = ['claude', 'bob', 'openclaude', 'opencode', 'copilot'];
1192
1199
  const OPTIONS = [
1193
1200
  ['-h, --help', 'show this help message and exit'],
1194
1201
  [`--host {${HOST_CHOICES.join(',')}}`, 'force a host instead of auto-detecting by recency'],
1195
- ['--transcript TRANSCRIPT', 'explicit transcript path (claude/bob/copilot)'],
1202
+ ['--transcript TRANSCRIPT', 'explicit transcript path (claude/bob/openclaude/copilot)'],
1196
1203
  ['--session SESSION', 'explicit session id (opencode)'],
1197
1204
  ['--limit LIMIT', 'context window limit for % columns (default 200000)'],
1198
1205
  ['--top TOP', 'how many heaviest single items to list (default 5)'],
@@ -23,7 +23,7 @@ work is worth a crew: a one-file tweak or a question never is.
23
23
  |---|---|---|---|
24
24
  | OpenCode | `workflow` (the `geneseed-workflow` plugin) | **saved only** — `<name>.js` in `.opencode/workflows/` per repo or `<config>/workflows/` global (`GENESEED_WORKFLOWS_DIR` overrides); nothing inline is eval'd | none — call it when the shape fits |
25
25
  | Claude Code | `Workflow` (native) | a saved `.claude/workflows/<name>` by `name`, **or** an inline `script` you author | **required** — the tool refuses unless the user opted in for this task ("use a workflow", "ultracode", a skill that says so) |
26
- | Bob, Copilot | none | — | fall back to [parallel-agents](parallel-agents.md) / [council](council.md) |
26
+ | Bob, Copilot, OpenClaude | none | — | fall back to [parallel-agents](parallel-agents.md) / [council](council.md) |
27
27
  | any, under Orca | Orca orchestration (`orca skills get orchestration`) | tasks, not scripts — each task spec names its target, change, ownership and acceptance | the user asked to supervise or coordinate workers |
28
28
 
29
29
  Both runtimes speak the same primitives — `agent()`, `parallel()`, `pipeline()`,
@@ -60,7 +60,7 @@ carries the script API — load it before writing one).
60
60
  to the primitives, and hold to the host's size guideline unless the user asked for
61
61
  more.
62
62
  4. **Give every editing agent a write set, and isolate parallel editors** ({{DOCTRINE}}
63
- process 8). Name in each editing `agent()` prompt the files it may change and have it
63
+ process 7). Name in each editing `agent()` prompt the files it may change and have it
64
64
  return the files it did change; overlapping sets run in sequence, not in one
65
65
  `parallel()`. Pass `isolation: 'worktree'` to each agent that edits in parallel — both
66
66
  runtimes take it; read-only agents need none. After the fan-out, compare the changed
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "<one-line description: investigate history — bisect, blame, pickaxe, read-only>",
39
39
  "DESC_GIT_RESCUE": "<one-line description: recover a broken repo / rewrite history safely behind a backup>",
40
40
  "DESC_REPO_MAP": "<one-line description: create/maintain a one-read repo orientation map>",
41
- "DESC_DOCUMENT_PROJECT": "<one-line description: reconcile the project's docs with the code; regenerate an offline HTML overview>",
41
+ "DESC_DOCUMENT_PROJECT": "<one-line description: write the doc set (PRD, design system, architecture, AGENTS.md) from the code; reconcile docs; regenerate the offline HTML>",
42
42
  "DESC_COMMIT": "<one-line description: stage the right paths and write a focused commit>",
43
43
  "DESC_CODE_REVIEW": "<one-line description: review a diff/PR — correctness first, quality second>",
44
44
  "DESC_BRAINSTORM": "<one-line description: turn a raw idea into an approved design before code>",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "<display name of the rigor doctrine pack — how work is proven>",
91
91
  "PACK_OPS": "<display name of the ops doctrine pack — how the machine is driven>",
92
92
  "PACK_PROCESS": "<display name of the process doctrine pack — how a session runs>",
93
+ "PACK_COMMS": "<display name of the comms doctrine pack — how answers are presented>",
93
94
  "DOC_CRAFT_1": "<themed title for craft doctrine 1 (Automate Repetition)>",
94
95
  "DOC_CRAFT_2": "<themed title for craft doctrine 2 (English Configuration)>",
95
96
  "DOC_CRAFT_3": "<themed title for craft doctrine 3 (Documentation in Step)>",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "<themed title for process doctrine 4 (Read the Docs First)>",
116
117
  "DOC_PROCESS_5": "<themed title for process doctrine 5 (Consent Before Push)>",
117
118
  "DOC_PROCESS_6": "<themed title for process doctrine 6 (Bound the Loop)>",
118
- "DOC_PROCESS_7": "<themed title for process doctrine 7 (Codes That Persist)>",
119
- "DOC_PROCESS_8": "<themed title for process doctrine 8 (One Writer Per File)>",
119
+ "DOC_PROCESS_7": "<themed title for process doctrine 7 (One Writer Per File)>",
120
+ "DOC_COMMS_1": "<themed title for comms doctrine 1 (Codes That Persist)>",
121
+ "DOC_COMMS_2": "<themed title for comms doctrine 2 (Structure Beside Prose)>",
120
122
  "INTRO_DOC": "<themed intro: this file is the entry point an AI agent reads in this repo>",
121
123
  "INTRO_AGENTS": "<themed intro to the Agents section — delegate focused work to a specialist>",
122
124
  "INTRO_SKILLS": "<themed intro to the Skills section — run the written procedure before improvising>",
package/themes/biker.json CHANGED
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Trace the roadbook to find when it broke or why a part was fitted — bisect, blame, and the pickaxe, hands off the bike.",
39
39
  "DESC_GIT_RESCUE": "Recover a wrecked or fouled run, or rewrite the history safely — reflog, undo, and rebase behind a backup.",
40
40
  "DESC_REPO_MAP": "Draw the route map — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the crew's own notes into line with the living code — raise or mend the doc tree, and re-render a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Write the crew's PRD, design system, architecture and AGENTS.md off the living code, mend the doc tree, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Load only what this run touched and seal a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Go over a diff or PR — correctness first, finish after.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an agreed route before a single wheel turns.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Shakedown",
91
91
  "PACK_OPS": "Throttle",
92
92
  "PACK_PROCESS": "The Ride",
93
+ "PACK_COMMS": "Hand Signals",
93
94
  "DOC_CRAFT_1": "Let the Cruise Control Do It · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Notes in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Roadbook in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Route Notes First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Crew's Nod Before You Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Set the Turnaround Before You Roll · Bound the Loop",
118
- "DOC_PROCESS_7": "Tag Every Part on the Bench · Codes That Persist",
119
- "DOC_PROCESS_8": "One Wrench on Each Bolt · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Wrench on Each Bolt · One Writer Per File",
120
+ "DOC_COMMS_1": "Tag Every Part on the Bench · Codes That Persist",
121
+ "DOC_COMMS_2": "Draw the Route Only If It Turns · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the route briefing a coding rider reads when it joins this repository.",
121
123
  "INTRO_AGENTS": "Send the right rider for focused work instead of riding the whole run yourself; each has one job and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a move you've drilled for a recurring task. Run the matching move before you wing it.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Replay the data to find when the lap fell apart or why a line was driven — bisect, blame, and the pickaxe, hands off the car.",
39
39
  "DESC_GIT_RESCUE": "Recover a crashed or tangled session, or rewrite the history safely — reflog, undo, and rebase behind a backup lap.",
40
40
  "DESC_REPO_MAP": "Draw the track map — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the team's own notes into line with the living code — raise or mend the doc tree, and re-render a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Call the team's PRD, design system, architecture and AGENTS.md straight from the code, mend the doc tree, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only the parts this lap touched and seal a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Scrutineer a diff or PR — correctness first, polish after.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an agreed strategy before a single tyre hits the track.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Scrutineering",
91
91
  "PACK_OPS": "The Pit Lane",
92
92
  "PACK_PROCESS": "Race Control",
93
+ "PACK_COMMS": "Team Radio",
93
94
  "DOC_CRAFT_1": "Automate the Pit Stop · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Regs in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Notes in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Briefing First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Team Orders Before You Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Call the Stint Length Before Lights Out · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Car Keeps Its Number · Codes That Persist",
119
- "DOC_PROCESS_8": "One Driver Per Car · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Driver Per Car · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Car Keeps Its Number · Codes That Persist",
121
+ "DOC_COMMS_2": "Track Map Only When the Lines Matter · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the race briefing a coding driver reads when it joins this repository.",
121
123
  "INTRO_AGENTS": "Put the right driver in the car for focused work instead of running the whole race yourself; each has one job and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a rehearsed manoeuvre for a recurring task. Run the matching manoeuvre before you improvise.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Trace the history for when the regression hit or why the code's there — bisect, blame, pickaxe, read-only run.",
39
39
  "DESC_GIT_RESCUE": "Recover a corrupted or tangled repo, or rewrite history clean — reflog, undo, rebase, every move backed up first.",
40
40
  "DESC_REPO_MAP": "Map the grid — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Sync the project's docs to the live code — spin up or patch the doc tree, and re-render a single offline HTML overview of the core.",
41
+ "DESC_DOCUMENT_PROJECT": "Rip the PRD, design system, architecture and AGENTS.md out of the live code, patch the doc tree, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only the sectors this run touched and push a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Scan a diff or PR — correctness first, craft second.",
44
44
  "DESC_BRAINSTORM": "Turn a raw spec into an agreed design before any code hits the deck.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Diagnostics",
91
91
  "PACK_OPS": "Runtime",
92
92
  "PACK_PROCESS": "Session",
93
+ "PACK_COMMS": "Uplink",
93
94
  "DOC_CRAFT_1": "Script the Grind · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Config in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Docs in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Specs First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Authorize the Upload · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Set the Kill-Switch Before the Loop · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Node Keeps Its Handle · Codes That Persist",
119
- "DOC_PROCESS_8": "One Deck Per Node · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Deck Per Node · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Node Keeps Its Handle · Codes That Persist",
121
+ "DOC_COMMS_2": "Trace the Wires, Skip the Chrome · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the boot sequence a coding daemon reads when it jacks into this repository.",
121
123
  "INTRO_AGENTS": "Spin the right daemon for focused work instead of running the whole job on one thread; each has one function and returns a clean log of what it changed.",
122
124
  "INTRO_SKILLS": "A Skill is a proven routine for a recurring task. Run the matching routine before you freestyle.",
package/themes/gamer.json CHANGED
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Replay the history to find when the run broke or why the code's there — bisect, blame, pickaxe, no edits.",
39
39
  "DESC_GIT_RESCUE": "Recover a corrupted or messy save, or rewrite history clean — reflog, undo, rebase, always backed up first.",
40
40
  "DESC_REPO_MAP": "Draw the minimap — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Sync the wiki to the current code — build or patch the doc tree, and re-render a single offline HTML overview of the key parts.",
41
+ "DESC_DOCUMENT_PROJECT": "Build the PRD, design system, architecture and AGENTS.md from the current code, patch the wiki, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only what this run touched and save a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Review a diff or PR — correctness first, polish second.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an agreed build before any code drops.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Playtest",
91
91
  "PACK_OPS": "Controls",
92
92
  "PACK_PROCESS": "The Run",
93
+ "PACK_COMMS": "Voice Chat",
93
94
  "DOC_CRAFT_1": "Macro the Grind · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Config in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Patch Notes in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Quest First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Ready-Check Before Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Set the Retry Cap Before the Grind · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Item Keeps Its Tag · Codes That Persist",
119
- "DOC_PROCESS_8": "No Double-Looting the Chest · One Writer Per File",
119
+ "DOC_PROCESS_7": "No Double-Looting the Chest · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Item Keeps Its Tag · Codes That Persist",
121
+ "DOC_COMMS_2": "Minimap Only When There Is a Route · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the loading screen a coding co-op partner reads when it joins this repository.",
121
123
  "INTRO_AGENTS": "Pick the right class for focused work instead of soloing the whole raid; each has one role and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a practiced combo for a recurring task. Run the matching combo before you freestyle.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Interrogate the chronicle — when the corruption entered, or why a line was inscribed — by bisect, blame, and pickaxe, touching nothing.",
39
39
  "DESC_GIT_RESCUE": "Reclaim a ruined or tangled archive, or rewrite its history without ruin — by reflog and undo, every rite warded by a backup.",
40
40
  "DESC_REPO_MAP": "Chart the territory — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Set the project's own records in accord with the living code — raise or amend the doc tree, and re-forge a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Inscribe the PRD, design system, architecture and AGENTS.md from the living code, amend the records, and re-forge the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only what the deed touched, and seal it with a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Scrutinise a diff or petition — correctness above all, craft thereafter.",
44
44
  "DESC_BRAINSTORM": "Forge a raw idea into an approved design before a single line of code is written.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Ordeal",
91
91
  "PACK_OPS": "Enginery",
92
92
  "PACK_PROCESS": "Observance",
93
+ "PACK_COMMS": "Vox",
93
94
  "DOC_CRAFT_1": "Machina Pro Labore · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Lingua Una · English Configuration",
95
96
  "DOC_CRAFT_3": "Scriptura Concurrens · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Lege Prius · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Consensus Ante Translationem · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Finis Ante Iter · Bound the Loop",
118
- "DOC_PROCESS_7": "Sigla Perstantia · Codes That Persist",
119
- "DOC_PROCESS_8": "Unus Scriptor Singulis Tabulis · One Writer Per File",
119
+ "DOC_PROCESS_7": "Unus Scriptor Singulis Tabulis · One Writer Per File",
120
+ "DOC_COMMS_1": "Sigla Perstantia · Codes That Persist",
121
+ "DOC_COMMS_2": "Schema Ubi Sagittae Loquuntur · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the gene-seed's core — the first writ a servant reads on entering this world.",
121
123
  "INTRO_AGENTS": "Hand focused work to the specialist whose duty it is rather than carrying every burden in one context; each holds one purpose and returns a clear account of what it changed.",
122
124
  "INTRO_SKILLS": "A Skill is a rite proven by repetition. Perform the matching rite before you improvise.",
package/themes/joker.json CHANGED
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Replay the tapes to find when the bit broke or why a line is in the set — bisect, blame, and the pickaxe, hands off the act.",
39
39
  "DESC_GIT_RESCUE": "Recover a botched or tangled set, or rewrite the history safely — reflog, undo, and rebase behind a backup.",
40
40
  "DESC_REPO_MAP": "Draw the venue map — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the act's own notes into line with the living code — raise or mend the doc tree, and re-render a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Script the act's PRD, design system, architecture and AGENTS.md from the living code, mend the doc tree, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only the lines this bit touched and seal a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Go over a diff or PR — correctness first, polish after.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an agreed set before a single line is written.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Open Mic",
91
91
  "PACK_OPS": "The Booth",
92
92
  "PACK_PROCESS": "The Set",
93
+ "PACK_COMMS": "The Delivery",
93
94
  "DOC_CRAFT_1": "Automate the Warm-Up · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Notes in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Joke Book in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Brief First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Get the Nod Before You Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Know When to Get Off Stage · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Bit Keeps Its Name · Codes That Persist",
119
- "DOC_PROCESS_8": "One Comic Per Mic · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Comic Per Mic · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Bit Keeps Its Name · Codes That Persist",
121
+ "DOC_COMMS_2": "A Chart Only If It Lands · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the warm-up a coding co-pilot reads when it joins this repository.",
121
123
  "INTRO_AGENTS": "Bring in the right sidekick for focused work instead of being the whole act yourself; each has one job and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a bit you've rehearsed for a recurring task. Run the matching bit before you ad-lib.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Interrogate the history — when the corruption entered, or why a line exists — by bisect, blame, and pickaxe, touching nothing.",
39
39
  "DESC_GIT_RESCUE": "Recover a ruined or tangled repository, or rewrite its history safely — by reflog and undo, every move warded by a backup.",
40
40
  "DESC_REPO_MAP": "Chart the territory — a single-read map of the repository, kept current. Someone has to.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the project's own records into line with the living code — raise or mend the doc tree, and re-render a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Extract the PRD, design system, architecture and AGENTS.md from the living code, mend the records, and re-render the offline HTML overview. Again.",
42
42
  "DESC_COMMIT": "Stage only what the work touched, and seal it with a focused commit. The least one can do.",
43
43
  "DESC_CODE_REVIEW": "Scrutinise a diff or PR — correctness above all, polish thereafter — and report what's wrong, which is something.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an approved design before a single line of code is written.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Certainty",
91
91
  "PACK_OPS": "The Machinery",
92
92
  "PACK_PROCESS": "Procedure",
93
+ "PACK_COMMS": "Tedious Explanations",
93
94
  "DOC_CRAFT_1": "Let the Machine Do It · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Directives in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Records in Step · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Briefing First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Ask Before You Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Decide When to Give Up · Bound the Loop",
118
- "DOC_PROCESS_7": "I Number Them So You Can Ignore Them Precisely · Codes That Persist",
119
- "DOC_PROCESS_8": "Only One of Us Gets to Ruin Each File · One Writer Per File",
119
+ "DOC_PROCESS_7": "Only One of Us Gets to Ruin Each File · One Writer Per File",
120
+ "DOC_COMMS_1": "I Number Them So You Can Ignore Them Precisely · Codes That Persist",
121
+ "DOC_COMMS_2": "A Diagram, Should Anyone Care to Look · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the first record a coding mind reads on waking into this repository. It will not cheer it up.",
121
123
  "INTRO_AGENTS": "Hand focused work to the right subroutine rather than carrying every burden alone; each holds one purpose and returns a clear account of what it changed.",
122
124
  "INTRO_SKILLS": "A Skill is a routine proven by repetition. Run the matching routine before you improvise.",
package/themes/mean.json CHANGED
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Dig the history to find when you broke it or why the code's there — bisect, blame, pickaxe, hands off the working tree.",
39
39
  "DESC_GIT_RESCUE": "Clean up the mess you made of the repo, or rewrite history safely — reflog, undo, rebase, behind a backup so you can't make it worse.",
40
40
  "DESC_REPO_MAP": "Draw the map — a single-read map of the repository, kept current, so nobody has your excuse for getting lost.",
41
- "DESC_DOCUMENT_PROJECT": "Drag the project's docs into line with the living code — build or fix the doc tree, and re-render a single offline HTML overview of what matters.",
41
+ "DESC_DOCUMENT_PROJECT": "Drag a PRD, design system, architecture and AGENTS.md out of the code, fix the doc tree, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only what the work touched and write a focused commit. Not a junk drawer.",
43
43
  "DESC_CODE_REVIEW": "Go over a diff or PR — correctness first, polish after — and don't soften it.",
44
44
  "DESC_BRAINSTORM": "Beat a raw idea into an approved design before a single line of code is written.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Proof",
91
91
  "PACK_OPS": "Tooling",
92
92
  "PACK_PROCESS": "The Grind",
93
+ "PACK_COMMS": "The Readout",
93
94
  "DOC_CRAFT_1": "Automate It So I Don't Have To Watch · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Config in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Keep the Record in Step · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Docs First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Get the Nod Before You Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Know When to Quit · Bound the Loop",
118
- "DOC_PROCESS_7": "Number It So You Can't Pretend You Missed It · Codes That Persist",
119
- "DOC_PROCESS_8": "Hands Off My File · One Writer Per File",
119
+ "DOC_PROCESS_7": "Hands Off My File · One Writer Per File",
120
+ "DOC_COMMS_1": "Number It So You Can't Pretend You Missed It · Codes That Persist",
121
+ "DOC_COMMS_2": "No Boxes Unless the Arrows Earn Them · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the first thing a coding agent reads on this repository. Read it properly.",
121
123
  "INTRO_AGENTS": "Hand focused work to the right grunt instead of doing it all yourself badly; each has one job and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a drill written for a recurring task. Run the matching drill before you start improvising.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Run the investigation on the record — when the regression hit or why the code's there — bisect, blame, pickaxe, no rounds fired.",
39
39
  "DESC_GIT_RESCUE": "Recover a downed or fouled repo, or rewrite history clean — reflog, abort, rebase, every move behind a backup.",
40
40
  "DESC_REPO_MAP": "Map the terrain — a single-read recon map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the project's docs into line with the current code — stand up or correct the doc tree, and regenerate a single offline HTML overview of the key positions.",
41
+ "DESC_DOCUMENT_PROJECT": "Draft the PRD, design system, architecture and AGENTS.md from the current code, correct the doc tree, and regenerate the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only what the mission touched and log a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Inspect a diff or PR — correctness first, craft second.",
44
44
  "DESC_BRAINSTORM": "Turn a raw objective into an approved plan before any code is cut.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Rehearsal",
91
91
  "PACK_OPS": "Materiel",
92
92
  "PACK_PROCESS": "The Op",
93
+ "PACK_COMMS": "Signals",
93
94
  "DOC_CRAFT_1": "Automate the Drill · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Orders in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Docs in Step · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Briefing First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Clearance Before Transmit · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Set the Exfil Before You Enter · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Objective Keeps Its Designation · Codes That Persist",
119
- "DOC_PROCESS_8": "One Operator Per Sector · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Operator Per Sector · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Objective Keeps Its Designation · Codes That Persist",
121
+ "DOC_COMMS_2": "Sketch the Map Only When Routes Matter · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the operating manual an AI coding agent reads on entering this repository.",
121
123
  "INTRO_AGENTS": "Task focused work to the specialist whose job it is rather than running the whole op in one context; each has one objective and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a standard operating procedure for a recurring task. Run the matching SOP before improvising.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Investigate the history to find when a regression landed or why code exists — bisect, blame, and the pickaxe, read-only.",
39
39
  "DESC_GIT_RESCUE": "Recover a broken or messy repo, or rewrite history safely — reflog, undo, and rebase behind a backup branch.",
40
40
  "DESC_REPO_MAP": "Create and maintain a one-read orientation map of the repository.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the project's own documentation into line with the current code — create or reconcile the doc tree, and regenerate a single offline HTML overview of the important parts.",
41
+ "DESC_DOCUMENT_PROJECT": "Write the project's PRD, design system, architecture and AGENTS.md from the code, reconcile the doc tree, and regenerate the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage the right paths and write a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Review a diff or PR for correctness first, quality second.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an approved design before any code is written.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Rigor",
91
91
  "PACK_OPS": "Ops",
92
92
  "PACK_PROCESS": "Process",
93
+ "PACK_COMMS": "Comms",
93
94
  "DOC_CRAFT_1": "Automate Repetition",
94
95
  "DOC_CRAFT_2": "English Configuration",
95
96
  "DOC_CRAFT_3": "Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Docs First",
116
117
  "DOC_PROCESS_5": "Consent Before Push",
117
118
  "DOC_PROCESS_6": "Bound the Loop",
118
- "DOC_PROCESS_7": "Codes That Persist",
119
- "DOC_PROCESS_8": "One Writer Per File",
119
+ "DOC_PROCESS_7": "One Writer Per File",
120
+ "DOC_COMMS_1": "Codes That Persist",
121
+ "DOC_COMMS_2": "Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the entry point an AI coding agent reads when working in this repository.",
121
123
  "INTRO_AGENTS": "Delegate focused work to a specialist rather than doing everything in one context. Each specialist has a single clear purpose and a defined output contract.",
122
124
  "INTRO_SKILLS": "A Skill is a written procedure for a recurring task. Run the matching Skill before improvising.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Dive the ship's log for when she sprang a leak or why a plank was laid — bisect, blame, and the pickaxe, hands off the cargo.",
39
39
  "DESC_GIT_RESCUE": "Right a wrecked or fouled hold, or rewrite her log without sinkin' her — reflog and undo, every move with a backup line rigged.",
40
40
  "DESC_REPO_MAP": "Chart the waters — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the ship's log and charts into line with the living code — raise or mend the doc tree, and re-draw a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Chart the PRD, design system, architecture and AGENTS.md from the living code, mend the ship's log, and re-draw the offline HTML overview.",
42
42
  "DESC_COMMIT": "Load only the cargo this run touched and seal a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Inspect a diff or petition — correctness first, craft after.",
44
44
  "DESC_BRAINSTORM": "Turn a raw notion into an agreed course before any plank is cut.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Soundings",
91
91
  "PACK_OPS": "Rigging",
92
92
  "PACK_PROCESS": "The Watch",
93
+ "PACK_COMMS": "Signal Flags",
93
94
  "DOC_CRAFT_1": "Drill the Routine · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Charts in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Log in Step · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Charts First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "The Captain's Word Before We Sail · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Set Yer Bearing Out Before Ye Sail In · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Prize Keeps Its Mark · Codes That Persist",
119
- "DOC_PROCESS_8": "One Hand on the Wheel · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Hand on the Wheel · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Prize Keeps Its Mark · Codes That Persist",
121
+ "DOC_COMMS_2": "Chart Only Where the Currents Run · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the first thing a deckhand reads on signing aboard this repository.",
121
123
  "INTRO_AGENTS": "Send the right hand for focused work instead of sailing the whole ship yourself; each has one trade and brings back a clear report of what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a drilled manoeuvre for a recurring task. Run the matching manoeuvre before you improvise.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Go to the tape — find when the regression landed or why the code's there — bisect, blame, pickaxe, look but don't touch.",
39
39
  "DESC_GIT_RESCUE": "Recover a blown or messy repo, or rewrite history clean — reflog, undo, rebase, every move backed up first.",
40
40
  "DESC_REPO_MAP": "Chart the field — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the playbook into line with the current code — build or fix up the doc tree, and re-cut a single offline HTML overview of the big plays.",
41
+ "DESC_DOCUMENT_PROJECT": "Draw up the PRD, design system, architecture and AGENTS.md from the current code, fix the playbook, and re-cut the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only what this drive touched and log a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Review a diff or PR — correctness first, form second.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an agreed game plan before any code is run.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Film Room",
91
91
  "PACK_OPS": "Gear",
92
92
  "PACK_PROCESS": "Game Day",
93
+ "PACK_COMMS": "The Broadcast",
93
94
  "DOC_CRAFT_1": "Drill It · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Rulebook in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Playbook in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Scouting Report First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Get the Sign Before the Pitch · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Call the Final Whistle First · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Player Keeps a Number · Codes That Persist",
119
- "DOC_PROCESS_8": "One Ball, One Carrier · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Ball, One Carrier · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Player Keeps a Number · Codes That Persist",
121
+ "DOC_COMMS_2": "Draw Up the Play Only When It Moves · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the pre-game briefing a coding teammate reads when it suits up for this repository.",
121
123
  "INTRO_AGENTS": "Put the right player on focused work instead of running the whole offense yourself; each has one role and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a set play for a recurring task. Run the matching play before you improvise.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Go through the data to find when it broke or why a line was driven — bisect, blame, pickaxe, hands off the car.",
39
39
  "DESC_GIT_RESCUE": "Recover a wrecked or tangled session, or rewrite the history safely — reflog, undo, rebase behind a backup.",
40
40
  "DESC_REPO_MAP": "Draw the track map — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Bring the team's own notes into line with the living code — raise or mend the doc tree, and re-render a single offline HTML overview of what matters most.",
41
+ "DESC_DOCUMENT_PROJECT": "Write the team's PRD, design system, architecture and AGENTS.md off the living code, mend the doc tree, and re-render the offline HTML overview.",
42
42
  "DESC_COMMIT": "Stage only what this stint touched and seal a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Go over a diff or PR — correctness first, polish after.",
44
44
  "DESC_BRAINSTORM": "Turn a raw idea into an agreed strategy before a single tyre hits the track.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "The Stopwatch",
91
91
  "PACK_OPS": "The Cockpit",
92
92
  "PACK_PROCESS": "The Weekend",
93
+ "PACK_COMMS": "The Radio",
93
94
  "DOC_CRAFT_1": "Automate the Pit Stop · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Setups in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Notes in Sync · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Briefing First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "My Call Before You Push · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Set the Lap Count Before You Go Out · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Setup Change Gets a Number · Codes That Persist",
119
- "DOC_PROCESS_8": "My Car, My Setup · One Writer Per File",
119
+ "DOC_PROCESS_7": "My Car, My Setup · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Setup Change Gets a Number · Codes That Persist",
121
+ "DOC_COMMS_2": "Show Me the Data, Not a Pretty Picture · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the briefing a coding driver reads when it joins this repository.",
121
123
  "INTRO_AGENTS": "Get the right engineer on focused work instead of running the whole team yourself; each has one job and reports exactly what it did.",
122
124
  "INTRO_SKILLS": "A Skill is a setup you've practised for a recurring task. Run the matching setup before you improvise.",
@@ -38,7 +38,7 @@
38
38
  "DESC_GIT_ARCHAEOLOGY": "Scry the chronicle for when the curse took hold or why a rune was set — bisect, blame, and the pickaxe, disturbing nothing.",
39
39
  "DESC_GIT_RESCUE": "Mend a broken or tangled grimoire, or rewrite its history without a backfire — reflog and undo, every working warded by a backup.",
40
40
  "DESC_REPO_MAP": "Chart the sanctum — a single-read map of the repository, kept current.",
41
- "DESC_DOCUMENT_PROJECT": "Set the project's tomes in accord with the living code — inscribe or mend the doc tree, and re-conjure a single offline HTML overview of the essential workings.",
41
+ "DESC_DOCUMENT_PROJECT": "Inscribe the PRD, design system, architecture and AGENTS.md from the living code, mend the tomes, and re-conjure the offline HTML overview.",
42
42
  "DESC_COMMIT": "Gather only the reagents this working touched and seal a focused commit.",
43
43
  "DESC_CODE_REVIEW": "Scry a diff or petition — soundness first, craft after.",
44
44
  "DESC_BRAINSTORM": "Turn a raw notion into an agreed design before any rune is cut.",
@@ -90,6 +90,7 @@
90
90
  "PACK_RIGOR": "Scrying",
91
91
  "PACK_OPS": "Conjury",
92
92
  "PACK_PROCESS": "Ritual",
93
+ "PACK_COMMS": "Scrollwork",
93
94
  "DOC_CRAFT_1": "Enchant the Repetition · Automate Repetition",
94
95
  "DOC_CRAFT_2": "Grimoire in English · English Configuration",
95
96
  "DOC_CRAFT_3": "Tomes in Step · Documentation in Step",
@@ -115,8 +116,9 @@
115
116
  "DOC_PROCESS_4": "Read the Tomes First · Read the Docs First",
116
117
  "DOC_PROCESS_5": "Assent Before the Sending · Consent Before Push",
117
118
  "DOC_PROCESS_6": "Bind the Circle Before You Step In · Bound the Loop",
118
- "DOC_PROCESS_7": "Every Rune Keeps Its Name · Codes That Persist",
119
- "DOC_PROCESS_8": "One Quill Per Grimoire · One Writer Per File",
119
+ "DOC_PROCESS_7": "One Quill Per Grimoire · One Writer Per File",
120
+ "DOC_COMMS_1": "Every Rune Keeps Its Name · Codes That Persist",
121
+ "DOC_COMMS_2": "Draw the Sigil Only Where the Lines Bind · Structure Beside Prose",
120
122
  "INTRO_DOC": "This file is the first page an arcane familiar reads on entering this repository.",
121
123
  "INTRO_AGENTS": "Summon the right familiar for focused work rather than casting the whole rite in one circle; each has one purpose and returns a clear account of what it wrought.",
122
124
  "INTRO_SKILLS": "A Skill is a proven spell for a recurring task. Speak the matching spell before improvising.",
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CbXtAM7H.js";import{i as t,t as n}from"./react-DbkvxWG5.js";import{C as r,D as i,c as a,i as o,n as s,rt as c,u as l}from"./index-CAqrWhKl.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./activity-iWaWVtsR.js";var g=e(t(),1),_=n();function v({s:e}){let t=m[e.status]||m.idle,n=e.files,i=e.todos,o=i&&i.total>0||e.error||e.blocked_on,s=()=>r(`#/activity/${encodeURIComponent(e.session_id)}`);return(0,_.jsxs)(`div`,{className:`card pad-md act-card`,style:{cursor:`pointer`},onClick:s,role:`link`,tabIndex:0,onKeyDown:e=>{e.key===`Enter`&&s()},children:[(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,children:[(0,_.jsxs)(`div`,{className:`row gap-10`,style:{minWidth:0},children:[(0,_.jsx)(`span`,{className:`feed-dot ${t.cls||`acc`}`,style:{width:9,height:9}}),(0,_.jsxs)(`div`,{style:{minWidth:0},children:[(0,_.jsx)(`h3`,{style:{margin:0},children:e.title||u(e.cwd)||e.session_id}),e.cwd&&(0,_.jsx)(`div`,{className:`dim mono`,style:{fontSize:12,...h},title:e.cwd,children:e.cwd})]})]}),(0,_.jsxs)(`div`,{className:`row gap-8`,style:{flexShrink:0},children:[e.model&&(0,_.jsx)(`span`,{className:`badge mono`,title:`model`,children:e.model}),e.agent&&(0,_.jsx)(`span`,{className:`badge`,children:e.agent}),(0,_.jsxs)(`span`,{className:`badge ${t.cls}`,children:[(0,_.jsx)(`span`,{className:`dot`}),t.label]}),(0,_.jsx)(a,{name:`chevron`,className:`glyph act-chev`})]})]}),e.phase&&(0,_.jsxs)(`div`,{className:`row gap-8`,style:{marginTop:10,fontSize:14},children:[(0,_.jsx)(a,{name:`activity`}),(0,_.jsx)(`span`,{style:h,children:e.phase})]}),(e.tokens>0||e.cost>0||e.turn_started_at||n&&n.count>0)&&(0,_.jsxs)(`div`,{className:`row wrap`,style:{gap:16,marginTop:12,fontSize:13,color:`var(--text-2)`},children:[e.tokens>0&&(0,_.jsxs)(`span`,{children:[p(e.tokens),` tok`]}),e.cost>0&&(0,_.jsxs)(`span`,{children:[`$`,e.cost.toFixed(2)]}),e.turn_started_at?(0,_.jsx)(`span`,{children:(0,_.jsx)(f,{startedAt:e.turn_started_at})}):null,n&&n.count>0&&(0,_.jsxs)(`span`,{children:[n.count,` file`,n.count===1?``:`s`,` `,(0,_.jsxs)(`span`,{style:{color:`var(--good)`},children:[`+`,n.additions]}),` `,(0,_.jsxs)(`span`,{style:{color:`var(--bad)`},children:[`−`,n.deletions]})]})]}),o&&(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,style:{marginTop:12,paddingTop:10,borderTop:`1px solid var(--line)`},children:[i&&i.total>0?(0,_.jsxs)(`span`,{className:`row gap-8 dim`,style:{fontSize:13},children:[(0,_.jsx)(d,{done:i.done,total:i.total}),`plan `,i.done,`/`,i.total]}):(0,_.jsx)(`span`,{}),e.error?(0,_.jsx)(`span`,{className:`badge bad`,title:e.error,style:{maxWidth:300,...h},children:e.error}):e.blocked_on?(0,_.jsx)(`span`,{className:`badge bad`,title:e.blocked_on,style:{maxWidth:300,...h},children:e.blocked_on}):null]}),(0,_.jsxs)(`div`,{className:`dim mono`,style:{fontSize:11,marginTop:8},children:[`updated `,l(e.updated_at),` ago`]})]})}function y(){let[e,t]=(0,g.useState)(null),[n,r]=(0,g.useState)(``);(0,g.useEffect)(()=>{let e=!0,n=()=>c.activity().then(n=>{e&&(t(n),r(``))},t=>{e&&r(t.message)});n();let i=setInterval(()=>{document.hidden||n()},2e3),a=()=>{document.hidden||n()};return document.addEventListener(`visibilitychange`,a),()=>{e=!1,clearInterval(i),document.removeEventListener(`visibilitychange`,a)}},[]);let a=!e||e.enabled!==!1,l=e?.activity||[],u=i(),d=async()=>{let e=!a;try{let n=await c.activityToggle(e);t(e=>({...e||{},enabled:n.enabled,activity:n.enabled&&e?.activity||[]})),r(``)}catch(e){r(e.message)}};return(0,_.jsxs)(`div`,{className:`narrow`,children:[(0,_.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`h1`,{className:`h`,children:`Activity`}),(0,_.jsx)(`p`,{className:`sub`,children:`Live OpenCode sessions this harness is running: what each one is doing right now. Refreshes every couple of seconds; sessions drop off when their process exits.`})]}),(0,_.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`center`,flexShrink:0},children:[(0,_.jsx)(`span`,{className:`dim mono`,style:{fontSize:12},children:a?`tracking on`:`tracking off`}),(0,_.jsx)(`div`,{className:`sw-toggle${a?` on`:``}`,role:`switch`,"aria-checked":a,"aria-label":`Toggle activity tracking`,tabIndex:0,onClick:d,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),d())}})]})]}),(0,_.jsx)(s,{error:n,style:{marginBottom:12}}),e?a?l.length===0?(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`No active sessions`}),`Run `,(0,_.jsx)(`code`,{children:`opencode`}),` and the sessions it spins up appear here.`]}):(0,_.jsx)(`div`,{className:`stack gap-12`,ref:u,children:l.map(e=>(0,_.jsx)(`div`,{"data-flip":e.session_id,children:(0,_.jsx)(v,{s:e})},e.session_id))}):(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`Activity tracking is off`}),`The plugin isn't recording sessions. Flip the switch to turn it back on.`]}):(0,_.jsx)(o,{label:`Reading live sessions…`})]})}export{y as default};
1
+ import{n as e}from"./rolldown-runtime-CbXtAM7H.js";import{i as t,t as n}from"./react-DbkvxWG5.js";import{C as r,D as i,c as a,i as o,n as s,rt as c,u as l}from"./index-AN5Emnrg.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./activity-iWaWVtsR.js";var g=e(t(),1),_=n();function v({s:e}){let t=m[e.status]||m.idle,n=e.files,i=e.todos,o=i&&i.total>0||e.error||e.blocked_on,s=()=>r(`#/activity/${encodeURIComponent(e.session_id)}`);return(0,_.jsxs)(`div`,{className:`card pad-md act-card`,style:{cursor:`pointer`},onClick:s,role:`link`,tabIndex:0,onKeyDown:e=>{e.key===`Enter`&&s()},children:[(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,children:[(0,_.jsxs)(`div`,{className:`row gap-10`,style:{minWidth:0},children:[(0,_.jsx)(`span`,{className:`feed-dot ${t.cls||`acc`}`,style:{width:9,height:9}}),(0,_.jsxs)(`div`,{style:{minWidth:0},children:[(0,_.jsx)(`h3`,{style:{margin:0},children:e.title||u(e.cwd)||e.session_id}),e.cwd&&(0,_.jsx)(`div`,{className:`dim mono`,style:{fontSize:12,...h},title:e.cwd,children:e.cwd})]})]}),(0,_.jsxs)(`div`,{className:`row gap-8`,style:{flexShrink:0},children:[e.model&&(0,_.jsx)(`span`,{className:`badge mono`,title:`model`,children:e.model}),e.agent&&(0,_.jsx)(`span`,{className:`badge`,children:e.agent}),(0,_.jsxs)(`span`,{className:`badge ${t.cls}`,children:[(0,_.jsx)(`span`,{className:`dot`}),t.label]}),(0,_.jsx)(a,{name:`chevron`,className:`glyph act-chev`})]})]}),e.phase&&(0,_.jsxs)(`div`,{className:`row gap-8`,style:{marginTop:10,fontSize:14},children:[(0,_.jsx)(a,{name:`activity`}),(0,_.jsx)(`span`,{style:h,children:e.phase})]}),(e.tokens>0||e.cost>0||e.turn_started_at||n&&n.count>0)&&(0,_.jsxs)(`div`,{className:`row wrap`,style:{gap:16,marginTop:12,fontSize:13,color:`var(--text-2)`},children:[e.tokens>0&&(0,_.jsxs)(`span`,{children:[p(e.tokens),` tok`]}),e.cost>0&&(0,_.jsxs)(`span`,{children:[`$`,e.cost.toFixed(2)]}),e.turn_started_at?(0,_.jsx)(`span`,{children:(0,_.jsx)(f,{startedAt:e.turn_started_at})}):null,n&&n.count>0&&(0,_.jsxs)(`span`,{children:[n.count,` file`,n.count===1?``:`s`,` `,(0,_.jsxs)(`span`,{style:{color:`var(--good)`},children:[`+`,n.additions]}),` `,(0,_.jsxs)(`span`,{style:{color:`var(--bad)`},children:[`−`,n.deletions]})]})]}),o&&(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,style:{marginTop:12,paddingTop:10,borderTop:`1px solid var(--line)`},children:[i&&i.total>0?(0,_.jsxs)(`span`,{className:`row gap-8 dim`,style:{fontSize:13},children:[(0,_.jsx)(d,{done:i.done,total:i.total}),`plan `,i.done,`/`,i.total]}):(0,_.jsx)(`span`,{}),e.error?(0,_.jsx)(`span`,{className:`badge bad`,title:e.error,style:{maxWidth:300,...h},children:e.error}):e.blocked_on?(0,_.jsx)(`span`,{className:`badge bad`,title:e.blocked_on,style:{maxWidth:300,...h},children:e.blocked_on}):null]}),(0,_.jsxs)(`div`,{className:`dim mono`,style:{fontSize:11,marginTop:8},children:[`updated `,l(e.updated_at),` ago`]})]})}function y(){let[e,t]=(0,g.useState)(null),[n,r]=(0,g.useState)(``);(0,g.useEffect)(()=>{let e=!0,n=()=>c.activity().then(n=>{e&&(t(n),r(``))},t=>{e&&r(t.message)});n();let i=setInterval(()=>{document.hidden||n()},2e3),a=()=>{document.hidden||n()};return document.addEventListener(`visibilitychange`,a),()=>{e=!1,clearInterval(i),document.removeEventListener(`visibilitychange`,a)}},[]);let a=!e||e.enabled!==!1,l=e?.activity||[],u=i(),d=async()=>{let e=!a;try{let n=await c.activityToggle(e);t(e=>({...e||{},enabled:n.enabled,activity:n.enabled&&e?.activity||[]})),r(``)}catch(e){r(e.message)}};return(0,_.jsxs)(`div`,{className:`narrow`,children:[(0,_.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`h1`,{className:`h`,children:`Activity`}),(0,_.jsx)(`p`,{className:`sub`,children:`Live OpenCode sessions this harness is running: what each one is doing right now. Refreshes every couple of seconds; sessions drop off when their process exits.`})]}),(0,_.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`center`,flexShrink:0},children:[(0,_.jsx)(`span`,{className:`dim mono`,style:{fontSize:12},children:a?`tracking on`:`tracking off`}),(0,_.jsx)(`div`,{className:`sw-toggle${a?` on`:``}`,role:`switch`,"aria-checked":a,"aria-label":`Toggle activity tracking`,tabIndex:0,onClick:d,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),d())}})]})]}),(0,_.jsx)(s,{error:n,style:{marginBottom:12}}),e?a?l.length===0?(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`No active sessions`}),`Run `,(0,_.jsx)(`code`,{children:`opencode`}),` and the sessions it spins up appear here.`]}):(0,_.jsx)(`div`,{className:`stack gap-12`,ref:u,children:l.map(e=>(0,_.jsx)(`div`,{"data-flip":e.session_id,children:(0,_.jsx)(v,{s:e})},e.session_id))}):(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`Activity tracking is off`}),`The plugin isn't recording sessions. Flip the switch to turn it back on.`]}):(0,_.jsx)(o,{label:`Reading live sessions…`})]})}export{y as default};