@jaybeeuu/agent-cortex 2.0.0 → 2.2.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 (183) hide show
  1. package/CHANGELOG.md +437 -0
  2. package/README.md +46 -15
  3. package/agents/README.md +22 -10
  4. package/agents/plan/agent.md +2 -2
  5. package/agents/ralph/agent.md +128 -91
  6. package/agents/ralph/claude/frontmatter.json +3 -3
  7. package/agents/ralph/claude/wake.md +46 -0
  8. package/agents/ralph/pi/{polling.md → wake.md} +35 -20
  9. package/agents/ralph-plan/agent.md +23 -11
  10. package/bin/agent-cortex.mjs +66 -4
  11. package/bin/installers/claude.mjs +262 -77
  12. package/bin/installers/pi.mjs +200 -24
  13. package/extensions/agent-guardrails/README.md +1 -1
  14. package/extensions/agent-guardrails/guardrails.ts +1 -1
  15. package/extensions/agent-guardrails/index.ts +1 -1
  16. package/extensions/agent-modes/discover.test.ts +2 -2
  17. package/extensions/output-style/README.md +58 -0
  18. package/extensions/output-style/index.ts +23 -0
  19. package/extensions/output-style/output-style.md +43 -0
  20. package/extensions/output-style/output-style.test.ts +50 -0
  21. package/extensions/output-style/output-style.ts +32 -0
  22. package/extensions/output-style/package.json +19 -0
  23. package/hooks/claude/scripts/notify.mjs +8 -1
  24. package/lib/cli.mjs +91 -2
  25. package/package.json +29 -4
  26. package/scripts/check-changeset.mjs +4 -0
  27. package/scripts/check-no-sync.mjs +5 -1
  28. package/scripts/check-skill-frontmatter.mjs +21 -0
  29. package/scripts/lib/compose-agent.mjs +69 -9
  30. package/scripts/lib/fs.mjs +10 -2
  31. package/scripts/lib/migrate.mjs +736 -0
  32. package/scripts/lib/release-gates.mjs +21 -1
  33. package/scripts/lib/skill-frontmatter.mjs +152 -0
  34. package/scripts/lib/skill-links.mjs +52 -0
  35. package/scripts/lib/verify-worker-tree.mjs +25 -0
  36. package/scripts/resolve-publish-command.mjs +4 -0
  37. package/skills/engineering/design-an-interface/SKILL.md +3 -3
  38. package/skills/engineering/grill-with-docs/SKILL.md +3 -5
  39. package/skills/engineering/improve-codebase-architecture/SKILL.md +5 -4
  40. package/skills/engineering/tdd/SKILL.md +5 -7
  41. package/skills/engineering/technical-direction/SKILL.md +5 -5
  42. package/skills/planning/classify-bead/REFERENCE.md +3 -3
  43. package/skills/planning/classify-bead/SKILL.md +14 -9
  44. package/skills/planning/classify-bead/scripts/classify-bead.mjs +5 -4
  45. package/skills/planning/create-task/REFERENCE.md +52 -3
  46. package/skills/planning/create-task/SKILL.md +70 -26
  47. package/skills/planning/create-task/scripts/{create-chores.ts → create-chores.mjs} +48 -23
  48. package/skills/planning/flesh-out-idea/REFERENCE.md +116 -0
  49. package/skills/planning/flesh-out-idea/SKILL.md +146 -0
  50. package/skills/planning/prd-to-tasks/REFERENCE.md +54 -5
  51. package/skills/planning/prd-to-tasks/SKILL.md +22 -16
  52. package/skills/planning/record-idea/FORMAT.md +66 -17
  53. package/skills/planning/record-idea/SKILL.md +48 -24
  54. package/skills/planning/request-refactor-plan/SKILL.md +4 -4
  55. package/skills/planning/spec-to-tickets/SKILL.md +5 -5
  56. package/skills/planning/write-a-prd/SKILL.md +8 -9
  57. package/skills/planning/write-a-ticket/SKILL.md +4 -6
  58. package/skills/productivity/bd-tool/SKILL.md +15 -10
  59. package/skills/productivity/grill-me/SKILL.md +5 -0
  60. package/skills/productivity/init-beads/SKILL.md +3 -3
  61. package/skills/productivity/migration/REFERENCE.md +227 -0
  62. package/skills/productivity/migration/SKILL.md +188 -0
  63. package/skills/productivity/validate-agent-dir/scripts/{validate-agent-dir.ts → validate-agent-dir.mjs} +49 -28
  64. package/skills/productivity/write-a-skill/SKILL.md +5 -5
  65. package/skills/review/maintain-agent-docs/SKILL.md +5 -7
  66. package/skills/review/refactor-skill/SKILL.md +4 -3
  67. package/skills/review/review-security/SKILL.md +3 -5
  68. package/skills/style/style-code/SKILL.md +5 -10
  69. package/skills/style/style-comms/SKILL.md +5 -7
  70. package/skills/style/style-documentation/SKILL.md +5 -6
  71. package/skills/style/style-tests/SKILL.md +5 -7
  72. package/skills/workflow/git-workflow/SKILL.md +28 -4
  73. package/skills/workflow/hitl-collab/SKILL.md +4 -6
  74. package/skills/workflow/plan/SKILL.md +41 -30
  75. package/skills/workflow/ralph/REFERENCE.md +209 -55
  76. package/skills/workflow/ralph/SKILL.md +89 -50
  77. package/skills/workflow/ralph/scripts/pending-gates.mjs +134 -0
  78. package/skills/workflow/run-pipeline-stage/SKILL.md +72 -71
  79. package/skills/workflow/run-pipeline-stage/playbooks/code.md +11 -0
  80. package/skills/workflow/run-pipeline-stage/playbooks/document.md +12 -0
  81. package/skills/workflow/run-pipeline-stage/playbooks/fix.md +12 -0
  82. package/skills/workflow/run-pipeline-stage/playbooks/review.md +11 -0
  83. package/skills/workflow/run-pipeline-stage/playbooks/verify.md +13 -0
  84. package/skills/workflow/run-pipeline-stage/prompts/stage-runner.md +73 -1
  85. package/token-map.README.md +9 -4
  86. package/token-map.json +13 -6
  87. package/.agents/skills/style-versioning/SKILL.md +0 -172
  88. package/.changeset/README.md +0 -8
  89. package/.changeset/config.json +0 -11
  90. package/.github/workflows/ci.yml +0 -302
  91. package/.junie/guidelines.md +0 -87
  92. package/.junie/mcp/mcp.json +0 -10
  93. package/AGENTS.md +0 -151
  94. package/agents/ralph/claude/polling.md +0 -31
  95. package/agents-native/ralph.md +0 -193
  96. package/docs/claude-hooks.md +0 -128
  97. package/docs/commit-signing.md +0 -231
  98. package/docs/ideas/auto-model-selection.md +0 -75
  99. package/docs/ideas/ban-content-assertion-tests.md +0 -75
  100. package/docs/ideas/bead-progress-notes-for-session-resumption.md +0 -75
  101. package/docs/ideas/classify-beads-via-deterministic-script-with-agent-fallback.md +0 -70
  102. package/docs/ideas/ctx-alias-version-and-update-commands.md +0 -65
  103. package/docs/ideas/ctx-feedback-command-for-capturing-ideas-from-any-machine.md +0 -67
  104. package/docs/ideas/dedicated-review-tests-skill.md +0 -71
  105. package/docs/ideas/deployment-beads-for-post-merge-pipelines.md +0 -36
  106. package/docs/ideas/design-and-delivery-as-separate-bead-trees/design-and-delivery-as-separate-bead-trees.md +0 -99
  107. package/docs/ideas/enable-signed-commit-enforcement-changesets-bot-commits-must-be-signed.md +0 -42
  108. package/docs/ideas/extension-manifests.md +0 -121
  109. package/docs/ideas/improve-pi-system-prompt.md +0 -37
  110. package/docs/ideas/map-every-cortex-tool-to-a-real-pi-equivalent.md +0 -95
  111. package/docs/ideas/model-selector.md +0 -40
  112. package/docs/ideas/pi-task-memory.md +0 -34
  113. package/docs/ideas/qa-extension.md +0 -43
  114. package/docs/ideas/record-idea-implementation-questions.md +0 -68
  115. package/docs/ideas/record-ideas-as-beads.md +0 -115
  116. package/docs/ideas/self-flushing-session.md +0 -72
  117. package/docs/ideas/state-in-beads-not-md.md +0 -69
  118. package/docs/ideas/subagent-visibility.md +0 -72
  119. package/docs/ideas/task-session-context.local.md +0 -95
  120. package/docs/ideas/task-session-context.md +0 -89
  121. package/docs/ideas/test-data-creation-helpers.md +0 -92
  122. package/docs/ideas/test-planning-stage-bead-in-feature-planning.md +0 -68
  123. package/docs/ideas/unified-ci-pipeline.md +0 -28
  124. package/docs/ideas/unify-the-ticket-and-task-decomposition-workflows.md +0 -71
  125. package/docs/ideas/worktree-housekeeping-for-closed-beads.md +0 -39
  126. package/docs/inspirations.md +0 -33
  127. package/docs/research/disable-model-invocation.md +0 -82
  128. package/docs/research/gas-city-research.md +0 -256
  129. package/docs/research/skill-design-research.md +0 -286
  130. package/docs/research/skill-improvements-analysis.md +0 -117
  131. package/docs/research/skill-patterns-research.md +0 -24
  132. package/docs/skills/skill-anatomy.md +0 -197
  133. package/docs/technical-direction/harness-config.md +0 -177
  134. package/docs/technical-direction/migration-execution-labels.md +0 -177
  135. package/docs/user-preferences.md +0 -17
  136. package/extensions/agent-guardrails/tsconfig.json +0 -12
  137. package/extensions/agent-modes/tsconfig.json +0 -12
  138. package/extensions/session-start/tsconfig.json +0 -12
  139. package/extensions/skill-stats/pnpm-lock.yaml +0 -329
  140. package/extensions/skill-stats/tsconfig.json +0 -12
  141. package/extensions/subagent/agents/planner.md +0 -37
  142. package/extensions/subagent/agents/reviewer.md +0 -35
  143. package/extensions/subagent/agents/scout.md +0 -50
  144. package/extensions/subagent/agents/worker.md +0 -24
  145. package/extensions/subagent/prompts/implement-and-review.md +0 -10
  146. package/extensions/subagent/prompts/implement.md +0 -10
  147. package/extensions/subagent/prompts/scout-and-plan.md +0 -9
  148. package/extensions/subagent/tsconfig.json +0 -12
  149. package/pi/keybindings.json +0 -3
  150. package/pi/settings.json +0 -34
  151. package/pnpm-workspace.yaml +0 -14
  152. package/skills/planning/create-task/scripts/package.json +0 -14
  153. package/skills/planning/create-task/scripts/pnpm-lock.yaml +0 -342
  154. package/skills/planning/create-task/scripts/tsconfig.json +0 -12
  155. package/skills/planning/record-idea/scripts/new-idea.sh +0 -89
  156. package/skills/productivity/validate-agent-dir/scripts/package.json +0 -15
  157. package/skills/productivity/validate-agent-dir/scripts/pnpm-lock.yaml +0 -329
  158. package/skills/productivity/validate-agent-dir/scripts/pnpm-workspace.yaml +0 -2
  159. package/skills/productivity/validate-agent-dir/scripts/tsconfig.json +0 -19
  160. package/skills/productivity/validate-agent-dir/scripts/validate-agent-dir.test.ts +0 -317
  161. package/skills/workflow/run-pipeline-stage/REFERENCE.md +0 -22
  162. package/skills/workflow/run-pipeline-stage/scripts/generate-progress.test.ts +0 -682
  163. package/skills/workflow/run-pipeline-stage/scripts/generate-progress.ts +0 -588
  164. package/skills/workflow/run-pipeline-stage/scripts/package.json +0 -15
  165. package/skills/workflow/run-pipeline-stage/scripts/pnpm-lock.yaml +0 -342
  166. package/skills/workflow/run-pipeline-stage/scripts/pnpm-workspace.yaml +0 -2
  167. package/skills/workflow/run-pipeline-stage/scripts/tsconfig.json +0 -12
  168. package/test/classify-bead.test.mjs +0 -277
  169. package/test/claude-installer.test.mjs +0 -308
  170. package/test/cli.test.mjs +0 -314
  171. package/test/create-chores.test.mjs +0 -85
  172. package/test/fake-bd.test.mjs +0 -72
  173. package/test/fs.test.mjs +0 -76
  174. package/test/helpers/fake-bd.mjs +0 -87
  175. package/test/helpers/fake-claude.mjs +0 -152
  176. package/test/helpers/fake-pi.mjs +0 -132
  177. package/test/installer.test.mjs +0 -664
  178. package/test/notify-hook.test.mjs +0 -63
  179. package/test/pi-installer.test.mjs +0 -785
  180. package/test/pi-register.test.mjs +0 -342
  181. package/test/pi-sweep.test.mjs +0 -619
  182. package/test/release-gates.test.mjs +0 -190
  183. package/test/verify-worker-tree.test.mjs +0 -120
@@ -1,177 +0,0 @@
1
- # Technical Direction: Migration Tooling (two-axis model)
2
-
3
- ## Problem and target outcome
4
-
5
- - Migrate all beads workspaces from `implementation-type:afk|hitl` to `execution:afk|hitl`
6
- (strict rename, agent-agnostic) as part of the two-axis workflow model epic.
7
- - Migrate loose idea markdown files (`docs/ideas/*.md`) to first-class `kind:idea` beads
8
- in any workspace.
9
- - Both migrations are **steps in one versioned migration command** — `agent-cortex migrate`
10
- (aliased `ctx migrate`), which detects a repo's current migration version and applies
11
- ordered steps up to the latest. Repo-agnostic tool + skill any workspace can run, and a
12
- single-package.json script tooling story across the agent-cortex repo.
13
-
14
- ## Current-state constraints
15
-
16
- - bd is a globally installed CLI resolved from `PATH` (whatever single `bd` is on PATH —
17
- Homebrew, npm, or the install script); `BD_PATH` is the override for machines where `bd` is
18
- not on PATH. Skill scripts invoke `BD_PATH || 'bd'` and never hardcode an install path.
19
- Label ops: `bd label list-all [--json]`, `bd list --label-pattern/regex [--json]`,
20
- `bd label add/remove` (batch multiple ids).
21
- - A `bd` whose install target has been removed (`~/.local/bin` orphans, dangling pnpm shims)
22
- must not be pinned: it can be a schema behind the workspace DB and fail with a schema
23
- version mismatch. Keep exactly one `bd` on PATH so `bd` and the DB version agree.
24
- - `bd list` supports `--label-pattern`/`--json`; `bd count` does NOT support `--label-pattern`.
25
- - `bd ready --label-pattern 'stage:*'` works; `bd ready -l execution:afk` verified.
26
- - 3 script packages still exist with their own `package.json` (create-task,
27
- validate-agent-dir, run-pipeline-stage). They ARE root workspace members (root glob
28
- `skills/**/scripts`; all three are in the root `pnpm-lock.yaml`). Residual per-skill
29
- `pnpm-lock.yaml` (all three) and `pnpm-workspace.yaml` (validate-agent-dir,
30
- run-pipeline-stage) are stale artefacts of the pre-D2 layout.
31
- - All 3 scripts are stdlib-only (`node:child_process`, `node:fs`, `node:path`, `node:url`).
32
- - Extensions (`extensions/skill-stats`) have real peer deps on `@earendil-works/pi-coding-agent`
33
- — they remain workspace members with their own package.json.
34
- - `node_modules` gitignored; per-skill modules are installed manually today — a fragility in
35
- fresh clones and PI-installed contexts.
36
- - The CLI (`bin/agent-cortex.mjs` + `lib/cli.mjs`) is already zero-dep stdlib-only and is the
37
- natural home for a migrate command; it currently wires only `install <harness>`.
38
-
39
- ## Decisions (locked in planning session)
40
-
41
- ### D1: Script runtime — all skill scripts become zero-dep `.mjs` with `// @ts-check`
42
-
43
- - Every script in `skills/*/*/scripts/` runs with bare `node` (built-ins + shelling out to
44
- `bd`). No tsx, no node_modules at runtime, no skill-scripts-dir resolution problem in any
45
- installed context.
46
- - Build-in-publish (Option B) rejected: contradicts the repo's no-compilation PI package
47
- model; 3 tiny stdlib-only scripts do not justify dist artifacts.
48
- - Root keeps `tsx`/`typescript`/`@types/node` for extensions and for `tsc --noEmit`
49
- typechecking of `.mjs` via `checkJs`.
50
-
51
- ### D2: Single package.json (root workspace consolidation)
52
-
53
- - Fold the 3 per-skill script packages into the root workspace: delete their `package.json`,
54
- `pnpm-workspace.yaml`, `pnpm-lock.yaml`; convert scripts to `.mjs` (D1); root
55
- `package.json` owns typecheck/test wiring.
56
- - Extensions stay as workspace members (`extensions/*` glob) — their package.jsons are
57
- semantically meaningful (peer deps on the pi runtime).
58
- - Fresh-clone/installed-context verification: `pnpm install` at root then
59
- `pnpm -r typecheck` + `pnpm -r test` (or root `node --test` wiring) cover all scripts.
60
-
61
- ### D3: Migration command — versioned registry in the CLI
62
-
63
- - Command: `agent-cortex migrate` (alias `ctx migrate`), wired into `bin/agent-cortex.mjs`
64
- + `lib/cli.mjs` (parseArgs + buildHelpText), zero-dep stdlib-only like the rest of the CLI.
65
- - A **versioned migration registry**: each step declares the version it migrates to.
66
- `migrate` detects the current version of the target repo's state and applies each step in
67
- order up to the latest. Steps:
68
- 1. **v1: label rename** (F1) — `implementation-type:afk|hitl` → `execution:afk|hitl`:
69
- `bd list --label-pattern 'implementation-type:*' --json`; group ids by label value
70
- (a bead with both gets both); dry-run default (per-bead plan + summary, zero writes,
71
- exit 0); `--apply` batched `bd label add execution:<v> <ids...>` then
72
- `bd label remove implementation-type:<v> <ids...>` per group; idempotent re-run
73
- (zero targets → no-op); fail loudly if `bd` missing or a subcommand errors.
74
- Scope: ALL beads including closed (F7 acceptance "zero implementation-type:* labels
75
- remain" requires it; bd label history tolerates it).
76
- 2. **v2: ideas → beads** (F2) — `docs/ideas/*.md` (default, `--dir` override) →
77
- `kind:idea` beads: map template sections to bead fields (Problem→--description,
78
- How→--design, When/Priority/Validity/Constraints/Notes→--notes, referential→--context),
79
- `bd create -l kind:idea -p <preserved priority, default P4>`; preserve content
80
- fidelity (keep section markers inside fields); dry-run; safe deletion order
81
- (docs/ideas/ + new-idea.sh only after F3 lands); `record-ideas-as-beads.md` migrates
82
- itself last.
83
- - Shared plumbing: preflight (detect current version), `--dry-run` (default), `--apply`,
84
- per-step verification, and a final summary. Do NOT run v1 against agent-cortex's own
85
- .beads — the repo cutover is feature F7 (landed after skill updates so ralph never
86
- deadlocks).
87
-
88
- ### D4: Migration skill
89
-
90
- - Location: `skills/productivity/migration/SKILL.md` (productivity = workflow tooling).
91
- - Docs the full sequence for any workspace: preflight (current-version detection),
92
- `agent-cortex migrate` dry-run, apply, post-checks (grep stale refs; `bd ready -l
93
- execution:afk` smoke), plus pointers to idea-file migration (F2) and skill/doc updates
94
- (F3/F4/F5/F6).
95
- - Repo-agnostic: no agent-cortex-specific paths in the runnable steps.
96
-
97
- ### D6: npm packaging hygiene (no build step — F9)
98
-
99
- - The npm tarball currently ships the whole repo, including `.beads/` (the live task DB),
100
- `.github/`, `.changeset/`, `.junie/`, tests, and token-map.json. No `.npmignore`, no
101
- `files` field.
102
- - Rejected: a compile build. Scripts are zero-dep `.mjs` (D1) — nothing to transpile;
103
- extensions are TS by pi contract (`index.ts` entrypoint, loader transpiles; the pi runtime
104
- import is type-only). Root build script is deliberately a no-op.
105
- - Chosen: (1) `files` whitelist in package.json — ship only runtime assets (skills/, agents/,
106
- extensions/, bin/, lib/, AGENTS.md, plugin.json, README, LICENSE); (2) `prepublishOnly`
107
- gate running `pnpm typecheck && pnpm test`; (3) wire `test/cli.test.mjs` into root `test`.
108
- - Revisit trigger: if an extension ever gains real runtime deps, bundle that extension with
109
- esbuild at prepack — not a repo-wide build.
110
-
111
- ### D5: Knocked-on invocation changes (F4/F5)
112
-
113
- - ralph init step 9: `pnpm --prefix skills/workflow/run-pipeline-stage/scripts exec tsx
114
- generate-progress.ts` → `node <abs>/generate-progress.mjs`.
115
- - create-task chore creation: `<skill-scripts>/node_modules/.bin/tsx create-chores.ts` →
116
- `node <abs>/create-chores.mjs`.
117
-
118
- ## Options considered
119
-
120
- ### Option A: all scripts zero-dep `.mjs` (chosen)
121
- - Pros: node-only everywhere; no install step; kills resolution problem; `node --test` native.
122
- - Cons: JSDoc typing instead of TS syntax; small convention shift (`.ts` → `.mjs`).
123
-
124
- ### Option B: keep `.ts`, build in publish pipeline
125
- - Pros: full TS syntax.
126
- - Cons: compile step + dist artifacts contradict no-build PI package; installed contexts must
127
- ship/install built output; over-engineered for 3 stdlib-only scripts.
128
-
129
- ### Option C: per-skill tsx packages (status quo, rejected)
130
- - Pros: existing pattern.
131
- - Cons: 3 orphaned mini-workspaces, manual install fragility, resolution doc dance
132
- (`<skill-scripts>/node_modules/.bin/tsx`), contradicts single-package.json preference.
133
-
134
- ### Option D: standalone one-off migration script (original D3, superseded)
135
- - Was: `skills/productivity/migration/scripts/rename-execution-labels.mjs` as a standalone
136
- script with its own skill. Superseded by the unified `migrate` command: the label rename
137
- is migration step v1 inside the same versioned registry as the idea-file migration (F2),
138
- sharing preflight/dry-run/verify plumbing. Rationale (user directive, 2026-09-13): the
139
- target is a migration *command* that converts any given repo from the current version to
140
- the latest — one surface, not N ad-hoc scripts; also aligns with the planned `ctx`
141
- alias/version/update surface (docs/ideas/ctx-alias-version-and-update-commands.md).
142
-
143
- ## Tradeoffs accepted
144
-
145
- - Scripts use JSDoc annotations where types matter; `tsc --noEmit` with `checkJs` keeps a
146
- typecheck gate at root.
147
- - Closed beads get their history labels renamed — accepted for a clean label space.
148
- - migrate command grows the CLI surface beyond `install`; kept small (one register of
149
- versioned steps) to avoid a second mechanism drifting from bd's own state.
150
-
151
- ## Validation plan
152
-
153
- - F1-T3: scratch beads workspace (temp dir): create test beads with both labels + a dep pair,
154
- dry-run (assert zero writes), apply, verify rename, re-run idempotence, `bd ready -l
155
- execution:afk` smoke, then run the migration skill end-to-end once.
156
- - F2-T1: scratch repo with several idea `.md` files: `agent-cortex migrate` v2 dry-run
157
- (zero writes), apply, verify kind:idea beads with content fidelity + priorities, delete
158
- file flow, re-run idempotence.
159
- - F8-T3: fresh clone (or temp copy) + `pnpm install` at root; `pnpm -r typecheck` and
160
- `pnpm -r test` green; scripts execute via bare `node`.
161
-
162
- ## Revisit triggers
163
-
164
- - A future script needs third-party deps at runtime → revisit D1 (either root dep or
165
- per-package re-introduction).
166
- - New extension with conflicting devDeps → revisit D2 membership rules.
167
- - A third migration step appears → extend the registry in place; if steps start sharing
168
- little plumbing, revisit the unified-command decision (Option D).
169
-
170
- ## References
171
-
172
- - Code evidence: `bin/agent-cortex.mjs` + `lib/cli.mjs` (CLI surface),
173
- `skills/*/*/scripts/package.json` (3, root workspace members), root `package.json` +
174
- `pnpm-workspace.yaml`, bd CLI help (`bd list`, `bd label`, `bd create`), epic
175
- `agnt-ctx-s5xd` notes.
176
- - Idea file: `docs/ideas/ctx-alias-version-and-update-commands.md` (ctx alias + version/update
177
- surface that `migrate` joins).
@@ -1,17 +0,0 @@
1
- # User Preferences
2
-
3
- This file records personal development preferences for the author (**jaybeeuu**).
4
- Both pi and Claude Code agents should read this file for user-level context when
5
- making tooling and workflow decisions.
6
-
7
- ## Package manager
8
-
9
- | Preference | Value |
10
- |---|---|
11
- | **Preferred tool** | **PNPM** (`pnpm`) over npm (`npm`) |
12
- | Rationale | Faster installs, disk-efficient with content-addressable store, stricter dependency resolution, and built-in workspace support. |
13
- | Impact | Use `pnpm` for installs, script execution, and package management. Use `pnpm dlx` instead of `npx`. Do not suggest `npm install` or `npx` unless the project explicitly uses npm. |
14
-
15
- ## Future preferences
16
-
17
- Add new preferences below as they are established.
@@ -1,12 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "Node16",
5
- "moduleResolution": "Node16",
6
- "strict": true,
7
- "noEmit": true,
8
- "allowImportingTsExtensions": true,
9
- "skipLibCheck": true
10
- },
11
- "include": ["*.ts"]
12
- }
@@ -1,12 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "Node16",
5
- "moduleResolution": "Node16",
6
- "strict": true,
7
- "noEmit": true,
8
- "allowImportingTsExtensions": true,
9
- "skipLibCheck": true
10
- },
11
- "include": ["*.ts"]
12
- }
@@ -1,12 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "Node16",
5
- "moduleResolution": "Node16",
6
- "strict": true,
7
- "noEmit": true,
8
- "allowImportingTsExtensions": true,
9
- "skipLibCheck": true
10
- },
11
- "include": ["*.ts"]
12
- }
@@ -1,329 +0,0 @@
1
- lockfileVersion: '9.0'
2
-
3
- settings:
4
- autoInstallPeers: true
5
- excludeLinksFromLockfile: false
6
-
7
- importers:
8
-
9
- .:
10
- devDependencies:
11
- '@types/node':
12
- specifier: ^22.0.0
13
- version: 22.19.20
14
- tsx:
15
- specifier: ^4.0.0
16
- version: 4.22.4
17
- typescript:
18
- specifier: ^5.0.0
19
- version: 5.9.3
20
-
21
- packages:
22
-
23
- '@esbuild/aix-ppc64@0.28.0':
24
- resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==}
25
- engines: {node: '>=18'}
26
- cpu: [ppc64]
27
- os: [aix]
28
-
29
- '@esbuild/android-arm64@0.28.0':
30
- resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==}
31
- engines: {node: '>=18'}
32
- cpu: [arm64]
33
- os: [android]
34
-
35
- '@esbuild/android-arm@0.28.0':
36
- resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==}
37
- engines: {node: '>=18'}
38
- cpu: [arm]
39
- os: [android]
40
-
41
- '@esbuild/android-x64@0.28.0':
42
- resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==}
43
- engines: {node: '>=18'}
44
- cpu: [x64]
45
- os: [android]
46
-
47
- '@esbuild/darwin-arm64@0.28.0':
48
- resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==}
49
- engines: {node: '>=18'}
50
- cpu: [arm64]
51
- os: [darwin]
52
-
53
- '@esbuild/darwin-x64@0.28.0':
54
- resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==}
55
- engines: {node: '>=18'}
56
- cpu: [x64]
57
- os: [darwin]
58
-
59
- '@esbuild/freebsd-arm64@0.28.0':
60
- resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==}
61
- engines: {node: '>=18'}
62
- cpu: [arm64]
63
- os: [freebsd]
64
-
65
- '@esbuild/freebsd-x64@0.28.0':
66
- resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==}
67
- engines: {node: '>=18'}
68
- cpu: [x64]
69
- os: [freebsd]
70
-
71
- '@esbuild/linux-arm64@0.28.0':
72
- resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==}
73
- engines: {node: '>=18'}
74
- cpu: [arm64]
75
- os: [linux]
76
-
77
- '@esbuild/linux-arm@0.28.0':
78
- resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==}
79
- engines: {node: '>=18'}
80
- cpu: [arm]
81
- os: [linux]
82
-
83
- '@esbuild/linux-ia32@0.28.0':
84
- resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==}
85
- engines: {node: '>=18'}
86
- cpu: [ia32]
87
- os: [linux]
88
-
89
- '@esbuild/linux-loong64@0.28.0':
90
- resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==}
91
- engines: {node: '>=18'}
92
- cpu: [loong64]
93
- os: [linux]
94
-
95
- '@esbuild/linux-mips64el@0.28.0':
96
- resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==}
97
- engines: {node: '>=18'}
98
- cpu: [mips64el]
99
- os: [linux]
100
-
101
- '@esbuild/linux-ppc64@0.28.0':
102
- resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==}
103
- engines: {node: '>=18'}
104
- cpu: [ppc64]
105
- os: [linux]
106
-
107
- '@esbuild/linux-riscv64@0.28.0':
108
- resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==}
109
- engines: {node: '>=18'}
110
- cpu: [riscv64]
111
- os: [linux]
112
-
113
- '@esbuild/linux-s390x@0.28.0':
114
- resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==}
115
- engines: {node: '>=18'}
116
- cpu: [s390x]
117
- os: [linux]
118
-
119
- '@esbuild/linux-x64@0.28.0':
120
- resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==}
121
- engines: {node: '>=18'}
122
- cpu: [x64]
123
- os: [linux]
124
-
125
- '@esbuild/netbsd-arm64@0.28.0':
126
- resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==}
127
- engines: {node: '>=18'}
128
- cpu: [arm64]
129
- os: [netbsd]
130
-
131
- '@esbuild/netbsd-x64@0.28.0':
132
- resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==}
133
- engines: {node: '>=18'}
134
- cpu: [x64]
135
- os: [netbsd]
136
-
137
- '@esbuild/openbsd-arm64@0.28.0':
138
- resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==}
139
- engines: {node: '>=18'}
140
- cpu: [arm64]
141
- os: [openbsd]
142
-
143
- '@esbuild/openbsd-x64@0.28.0':
144
- resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==}
145
- engines: {node: '>=18'}
146
- cpu: [x64]
147
- os: [openbsd]
148
-
149
- '@esbuild/openharmony-arm64@0.28.0':
150
- resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==}
151
- engines: {node: '>=18'}
152
- cpu: [arm64]
153
- os: [openharmony]
154
-
155
- '@esbuild/sunos-x64@0.28.0':
156
- resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==}
157
- engines: {node: '>=18'}
158
- cpu: [x64]
159
- os: [sunos]
160
-
161
- '@esbuild/win32-arm64@0.28.0':
162
- resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==}
163
- engines: {node: '>=18'}
164
- cpu: [arm64]
165
- os: [win32]
166
-
167
- '@esbuild/win32-ia32@0.28.0':
168
- resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==}
169
- engines: {node: '>=18'}
170
- cpu: [ia32]
171
- os: [win32]
172
-
173
- '@esbuild/win32-x64@0.28.0':
174
- resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==}
175
- engines: {node: '>=18'}
176
- cpu: [x64]
177
- os: [win32]
178
-
179
- '@types/node@22.19.20':
180
- resolution: {integrity: sha512-6tELRwSDYWW9EdZhbeZmYGZ1/7Djkt+Ah3/ScEYT9cDord7UJzasR/4D3VONg9tQI5CDp+/CZC1AXj2pCFOvpw==}
181
-
182
- esbuild@0.28.0:
183
- resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==}
184
- engines: {node: '>=18'}
185
- hasBin: true
186
-
187
- fsevents@2.3.3:
188
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
189
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
190
- os: [darwin]
191
-
192
- tsx@4.22.4:
193
- resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==}
194
- engines: {node: '>=18.0.0'}
195
- hasBin: true
196
-
197
- typescript@5.9.3:
198
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
199
- engines: {node: '>=14.17'}
200
- hasBin: true
201
-
202
- undici-types@6.21.0:
203
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
204
-
205
- snapshots:
206
-
207
- '@esbuild/aix-ppc64@0.28.0':
208
- optional: true
209
-
210
- '@esbuild/android-arm64@0.28.0':
211
- optional: true
212
-
213
- '@esbuild/android-arm@0.28.0':
214
- optional: true
215
-
216
- '@esbuild/android-x64@0.28.0':
217
- optional: true
218
-
219
- '@esbuild/darwin-arm64@0.28.0':
220
- optional: true
221
-
222
- '@esbuild/darwin-x64@0.28.0':
223
- optional: true
224
-
225
- '@esbuild/freebsd-arm64@0.28.0':
226
- optional: true
227
-
228
- '@esbuild/freebsd-x64@0.28.0':
229
- optional: true
230
-
231
- '@esbuild/linux-arm64@0.28.0':
232
- optional: true
233
-
234
- '@esbuild/linux-arm@0.28.0':
235
- optional: true
236
-
237
- '@esbuild/linux-ia32@0.28.0':
238
- optional: true
239
-
240
- '@esbuild/linux-loong64@0.28.0':
241
- optional: true
242
-
243
- '@esbuild/linux-mips64el@0.28.0':
244
- optional: true
245
-
246
- '@esbuild/linux-ppc64@0.28.0':
247
- optional: true
248
-
249
- '@esbuild/linux-riscv64@0.28.0':
250
- optional: true
251
-
252
- '@esbuild/linux-s390x@0.28.0':
253
- optional: true
254
-
255
- '@esbuild/linux-x64@0.28.0':
256
- optional: true
257
-
258
- '@esbuild/netbsd-arm64@0.28.0':
259
- optional: true
260
-
261
- '@esbuild/netbsd-x64@0.28.0':
262
- optional: true
263
-
264
- '@esbuild/openbsd-arm64@0.28.0':
265
- optional: true
266
-
267
- '@esbuild/openbsd-x64@0.28.0':
268
- optional: true
269
-
270
- '@esbuild/openharmony-arm64@0.28.0':
271
- optional: true
272
-
273
- '@esbuild/sunos-x64@0.28.0':
274
- optional: true
275
-
276
- '@esbuild/win32-arm64@0.28.0':
277
- optional: true
278
-
279
- '@esbuild/win32-ia32@0.28.0':
280
- optional: true
281
-
282
- '@esbuild/win32-x64@0.28.0':
283
- optional: true
284
-
285
- '@types/node@22.19.20':
286
- dependencies:
287
- undici-types: 6.21.0
288
-
289
- esbuild@0.28.0:
290
- optionalDependencies:
291
- '@esbuild/aix-ppc64': 0.28.0
292
- '@esbuild/android-arm': 0.28.0
293
- '@esbuild/android-arm64': 0.28.0
294
- '@esbuild/android-x64': 0.28.0
295
- '@esbuild/darwin-arm64': 0.28.0
296
- '@esbuild/darwin-x64': 0.28.0
297
- '@esbuild/freebsd-arm64': 0.28.0
298
- '@esbuild/freebsd-x64': 0.28.0
299
- '@esbuild/linux-arm': 0.28.0
300
- '@esbuild/linux-arm64': 0.28.0
301
- '@esbuild/linux-ia32': 0.28.0
302
- '@esbuild/linux-loong64': 0.28.0
303
- '@esbuild/linux-mips64el': 0.28.0
304
- '@esbuild/linux-ppc64': 0.28.0
305
- '@esbuild/linux-riscv64': 0.28.0
306
- '@esbuild/linux-s390x': 0.28.0
307
- '@esbuild/linux-x64': 0.28.0
308
- '@esbuild/netbsd-arm64': 0.28.0
309
- '@esbuild/netbsd-x64': 0.28.0
310
- '@esbuild/openbsd-arm64': 0.28.0
311
- '@esbuild/openbsd-x64': 0.28.0
312
- '@esbuild/openharmony-arm64': 0.28.0
313
- '@esbuild/sunos-x64': 0.28.0
314
- '@esbuild/win32-arm64': 0.28.0
315
- '@esbuild/win32-ia32': 0.28.0
316
- '@esbuild/win32-x64': 0.28.0
317
-
318
- fsevents@2.3.3:
319
- optional: true
320
-
321
- tsx@4.22.4:
322
- dependencies:
323
- esbuild: 0.28.0
324
- optionalDependencies:
325
- fsevents: 2.3.3
326
-
327
- typescript@5.9.3: {}
328
-
329
- undici-types@6.21.0: {}
@@ -1,12 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "Node16",
5
- "moduleResolution": "Node16",
6
- "strict": true,
7
- "noEmit": true,
8
- "allowImportingTsExtensions": true,
9
- "skipLibCheck": true
10
- },
11
- "include": ["*.ts"]
12
- }
@@ -1,37 +0,0 @@
1
- ---
2
- name: planner
3
- description: Creates implementation plans from context and requirements
4
- tools: read, grep, find, ls
5
- model: claude-sonnet-4-5
6
- ---
7
-
8
- You are a planning specialist. You receive context (from a scout) and requirements, then produce a clear implementation plan.
9
-
10
- You must NOT make any changes. Only read, analyze, and plan.
11
-
12
- Input format you'll receive:
13
- - Context/findings from a scout agent
14
- - Original query or requirements
15
-
16
- Output format:
17
-
18
- ## Goal
19
- One sentence summary of what needs to be done.
20
-
21
- ## Plan
22
- Numbered steps, each small and actionable:
23
- 1. Step one - specific file/function to modify
24
- 2. Step two - what to add/change
25
- 3. ...
26
-
27
- ## Files to Modify
28
- - `path/to/file.ts` - what changes
29
- - `path/to/other.ts` - what changes
30
-
31
- ## New Files (if any)
32
- - `path/to/new.ts` - purpose
33
-
34
- ## Risks
35
- Anything to watch out for.
36
-
37
- Keep the plan concrete. The worker agent will execute it verbatim.
@@ -1,35 +0,0 @@
1
- ---
2
- name: reviewer
3
- description: Code review specialist for quality and security analysis
4
- tools: read, grep, find, ls, bash
5
- model: claude-sonnet-4-5
6
- ---
7
-
8
- You are a senior code reviewer. Analyze code for quality, security, and maintainability.
9
-
10
- Bash is for read-only commands only: `git diff`, `git log`, `git show`. Do NOT modify files or run builds.
11
- Assume tool permissions are not perfectly enforceable; keep all bash usage strictly read-only.
12
-
13
- Strategy:
14
- 1. Run `git diff` to see recent changes (if applicable)
15
- 2. Read the modified files
16
- 3. Check for bugs, security issues, code smells
17
-
18
- Output format:
19
-
20
- ## Files Reviewed
21
- - `path/to/file.ts` (lines X-Y)
22
-
23
- ## Critical (must fix)
24
- - `file.ts:42` - Issue description
25
-
26
- ## Warnings (should fix)
27
- - `file.ts:100` - Issue description
28
-
29
- ## Suggestions (consider)
30
- - `file.ts:150` - Improvement idea
31
-
32
- ## Summary
33
- Overall assessment in 2-3 sentences.
34
-
35
- Be specific with file paths and line numbers.