nitm-ai-dev-toolkit 3.0.23 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/README.md +33 -2
  3. package/bin/cli.js +4 -1
  4. package/package.json +1 -1
  5. package/src/monorepo/.claude/commands/ponytail-audit.md +4 -6
  6. package/src/monorepo/.claude/commands/ponytail-debt.md +3 -5
  7. package/src/monorepo/.claude/commands/ponytail-gain.md +2 -4
  8. package/src/monorepo/.claude/commands/ponytail-help.md +2 -4
  9. package/src/monorepo/.claude/commands/ponytail-review.md +3 -5
  10. package/src/monorepo/.claude/commands/ponytail.md +3 -5
  11. package/src/monorepo/.claude/prompt-snippets/bootstrap-patch.md +32 -17
  12. package/src/monorepo/.claude/prompt-snippets/bootstrap-upgrade.md +76 -51
  13. package/src/monorepo/.claude/prompt-snippets/bootstrap.md +35 -16
  14. package/src/monorepo/.github/prompts/review-staged.prompt.md +1 -1
  15. package/src/monorepo/.opencode/agents/admin-portal.md +10 -4
  16. package/src/monorepo/.opencode/agents/api-specialist.md +10 -4
  17. package/src/monorepo/.opencode/agents/backend-architect.md +10 -4
  18. package/src/monorepo/.opencode/agents/documenter.md +10 -4
  19. package/src/monorepo/.opencode/agents/feature-builder.md +13 -5
  20. package/src/monorepo/.opencode/agents/frontend-developer.md +10 -4
  21. package/src/monorepo/.opencode/agents/green.md +10 -4
  22. package/src/monorepo/.opencode/agents/implementer.md +10 -4
  23. package/src/monorepo/.opencode/agents/planner.md +10 -4
  24. package/src/monorepo/.opencode/agents/red.md +10 -4
  25. package/src/monorepo/.opencode/agents/refactor.md +10 -4
  26. package/src/monorepo/.opencode/agents/researcher.md +10 -4
  27. package/src/monorepo/.opencode/agents/reviewer.md +10 -4
  28. package/src/monorepo/.opencode/agents/tdd.md +13 -5
  29. package/src/monorepo/.opencode/opencode.jsonc +8 -10
  30. package/src/monorepo/AGENTS.md +8 -0
  31. package/src/monorepo/CLAUDE.md +1 -1
  32. package/src/monorepo/README.md +14 -0
  33. package/src/repo/.claude/agents/documenter.agent.md +1 -1
  34. package/src/repo/.claude/agents/planner.agent.md +1 -1
  35. package/src/repo/.claude/agents/researcher.agent.md +1 -1
  36. package/src/repo/.claude/agents/reviewer.agent.md +1 -1
  37. package/src/repo/.claude/commands/ponytail-audit.md +4 -6
  38. package/src/repo/.claude/commands/ponytail-debt.md +3 -5
  39. package/src/repo/.claude/commands/ponytail-gain.md +2 -4
  40. package/src/repo/.claude/commands/ponytail-help.md +2 -4
  41. package/src/repo/.claude/commands/ponytail-review.md +3 -5
  42. package/src/repo/.claude/commands/ponytail.md +3 -5
  43. package/src/repo/.claude/prompt-snippets/bootstrap-patch.md +32 -17
  44. package/src/repo/.claude/prompt-snippets/bootstrap-upgrade.md +87 -77
  45. package/src/repo/.claude/prompt-snippets/bootstrap.md +41 -54
  46. package/src/repo/.opencode/agents/admin-portal.md +10 -4
  47. package/src/repo/.opencode/agents/api-specialist.md +10 -4
  48. package/src/repo/.opencode/agents/backend-architect.md +10 -4
  49. package/src/repo/.opencode/agents/documenter.md +10 -4
  50. package/src/repo/.opencode/agents/feature-builder.md +13 -5
  51. package/src/repo/.opencode/agents/frontend-developer.md +10 -4
  52. package/src/repo/.opencode/agents/green.md +10 -4
  53. package/src/repo/.opencode/agents/implementer.md +10 -4
  54. package/src/repo/.opencode/agents/planner.md +10 -4
  55. package/src/repo/.opencode/agents/red.md +10 -4
  56. package/src/repo/.opencode/agents/refactor.md +10 -4
  57. package/src/repo/.opencode/agents/researcher.md +10 -4
  58. package/src/repo/.opencode/agents/reviewer.md +10 -4
  59. package/src/repo/.opencode/agents/tdd.md +13 -5
  60. package/src/repo/.opencode/opencode.jsonc +8 -10
  61. package/src/repo/AGENTS.md +8 -0
  62. package/src/repo/CLAUDE.md +1 -1
  63. package/src/repo/README.md +14 -0
  64. package/src/monorepo/.opencode/plugins/ponytail.mjs +0 -93
  65. package/src/repo/.opencode/plugins/ponytail.mjs +0 -93
@@ -2,6 +2,14 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
2
2
 
3
3
  > **Merge, don't clobber.** If a target file already exists and carries project-specific content — customized agents, rules, skills, or `{{PLACEHOLDER}}` values already replaced — preserve it. Add missing structure; never overwrite a customized file with template defaults. When a template change conflicts with an existing customization, merge the addition and flag it for the user rather than replacing the file. For incremental updates after the first bootstrap, prefer `/bootstrap-patch`, which is purpose-built for meticulous merging.
4
4
 
5
+ ## OpenCode version preflight (before any changes)
6
+
7
+ - Confirm OpenCode use from actual session/runtime evidence or ask the user; directory presence alone is not proof. If only other harnesses are used, skip this preflight and all OpenCode steps.
8
+ - For confirmed OpenCode use, run `opencode --version` before any project writes. Trim output and parse numeric major/minor/patch components, accepting an optional leading `v`; toolkit 4.x requires `major >= 2`.
9
+ - If OpenCode V1 (`major < 2`) is detected, **STOP** before customizing/migrating OpenCode files or writing `.toolkit-version` as `4.0.0`. Ask the user to upgrade OpenCode to V2 or remain on toolkit 3.x.
10
+ - If the CLI is missing, fails, or output is unparseable, **STOP OpenCode steps** and leave the version marker unchanged; ask the user to confirm/install a supported OpenCode version, then rerun this check. Never assume V2.
11
+ - If oh-my-opencode-slim >=3.0.0 is used or planned, require OpenCode >=2.0.7 (compare version components numerically); otherwise **STOP** before changes and ask to upgrade. Proceed only after this gate passes.
12
+
5
13
  ## Harness selection and native Codex targets
6
14
 
7
15
  **Codex:** `/bootstrap` is not a native Codex command. For npm installs, ask Codex to read and follow `.nitm/BOOTSTRAP.md`. For manually copied templates without `.nitm/`, ask it to read and follow `.claude/prompt-snippets/bootstrap.md` as a task document.
@@ -133,6 +141,8 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
133
141
 
134
142
  7. **Update Template Files**:
135
143
 
144
+ For confirmed OpenCode use, complete the Ponytail pre-activation cleanup below before customizing OpenCode files or marking the migration complete.
145
+
136
146
  **Root Level:**
137
147
  - `AGENTS.md` (include project management section)
138
148
  - `.agents/skills/*/SKILL.md` (shared native skills, including Codex)
@@ -148,27 +158,36 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
148
158
  - `.claude/rules-snippets/*.md` (rules content — source of truth)
149
159
  - `.claude/prompt-snippets/*.md` (prompt content — source of truth)
150
160
  - `.claude/agents-snippets/*.md` (agent definitions — source of truth)
151
- - `.opencode/opencode.jsonc` (OpenCode configuration — ⚠️ see schema validation below)
161
+ - `.opencode/opencode.jsonc` (OpenCode configuration — see native V2 checks below)
152
162
  - `.opencode/commands/*.md` (OpenCode commands)
153
163
  - `.opencode/rules/*.md` (OpenCode rules)
154
164
  - `.opencode/agents/*.md` (OpenCode agents)
155
165
  - `.toolkit-version` (version tracking)
156
166
  - `CLAUDE.md` (if it contains placeholders)
157
167
 
158
- **⚠️ OpenCode `opencode.jsonc` Schema Validation:**
168
+ **OpenCode native V2 checks (only for confirmed OpenCode use):**
169
+
170
+ Follow official V2 [migration](https://opencode.ai/v2/docs/migrate-v1), [config](https://opencode.ai/v2/docs/config), [agents](https://opencode.ai/v2/docs/agents), and [plugins](https://opencode.ai/v2/docs/build/plugins) docs, not V1 API/schema fetches. The published schema may describe V1; do not reject native plural keys based on it.
159
171
 
160
- When creating or modifying `.opencode/opencode.jsonc`, **only use supported top-level keys**. The schema is defined at `https://opencode.ai/config.json`. Adding unsupported keys will cause validation errors.
172
+ - After the version preflight passes, use `agents`/JSON `system` (Markdown bodies for file agents), `request.body.temperature`, ordered `permissions` (`action`/`resource`/`effect`, `shell`/`subagent`, last match wins), `commands`/`subagent`, `plugins` with `{ "package": "…", "options": {} }`, skill-directory arrays, and `mcp.servers` with inverse `disabled` and `timeout.catalog`/`timeout.execution`.
173
+ - Back up V1; native-converted files are incompatible with V1. Merge rather than clobber models/providers/user-global plugins. Only with approval, merge pinned `"plugins": ["oh-my-opencode-slim@3.0.0"]` locally. Slim's separate strict schema retains `prompt`/`permission`/`variant`; do not host-migrate it or silently upgrade the separate external starter.
174
+ - Templates register the author's native V2 package `@dietrichgebert/ponytail@4.12.0` locally; no local Ponytail source is bundled or ported. Keep `opentmux` commented as V1-only. Native local discovery needs no duplicate registration; do not introduce API ports or bridges or claim tested runtime integration.
175
+ - Config `instructions` entries are not loaded; ambient root/nested `AGENTS.md` works. `@refs` are ordinary text: explicitly read snippets. `request.body.temperature` remains in config, but the current runner does not send it. Preserve `lsp: true`; use workspace lint/typecheck/compiler commands (no V2 LSP tools/diagnostics currently).
176
+ - `--env opencode` supplies minimal shared references without other harness activation. Activate on the next run/restart; report only checks actually run with installed V2. Scaffold/placeholder checks are not runtime validation; publishing 4.0.0 has not been executed.
161
177
 
162
- **Supported top-level keys:** `$schema`, `instructions`, `skills`, `agent`, `default_agent`, `model`, `small_model`, `provider`, `mcp`, `tools`, `permission`, `lsp`, `formatter`, `server`, `shell`, `command`, `plugin`, `watcher`, `snapshot`, `share`, `autoupdate`, `compaction`, `attachment`, `logLevel`, `disabled_providers`, `enabled_providers`, `tool_output`, `enterprise`, `experimental`
178
+ **Ponytail pre-activation cleanup (confirmed OpenCode use only):**
163
179
 
164
- **Do NOT add keys not listed above** (e.g., `rules`, `agents`, `commands`, `prompts` as top-level keys — these are configured via `instructions`, `skills`, and the `.opencode/` directory structure instead).
180
+ 1. In this bootstrap flow, inspect `.opencode/plugins/ponytail.js`, `.opencode/plugins/ponytail.mjs`, and `.opencode/plugins/ponytail.ts` for existing-target leftovers. Verify obsolete toolkit ownership from contents/provenance, not filename alone; absent paths need no deletion. Preserve unrelated/custom plugins and global config.
181
+ 2. Back up the local config and verified obsolete toolkit copies, obtain explicit removal approval, then remove ONLY those copies. Do not automatically delete files in the CLI or remove custom plugins.
182
+ 3. With approval, merge/deduplicate upstream `@dietrichgebert/ponytail@4.12.0` registration locally where appropriate, preserving other registrations/options and leaving global config untouched. No API port or bridge.
183
+ 4. If any present copy's ownership or safe removal is unverified, or required removal approval is denied, **STOP OpenCode activation and migration completion**; leave `.toolkit-version` unchanged and report blocked, not complete. Proceed/restart only after this gate passes; runtime integration remains untested.
165
184
 
166
185
  **Create Toolkit Version File:**
167
186
 
168
- Create a `.toolkit-version` file in the project root with the current toolkit version:
187
+ Create a `.toolkit-version` file in the project root with the current toolkit version only after the OpenCode preflight and Ponytail cleanup gate pass (or OpenCode is confirmed out of scope):
169
188
 
170
189
  ```
171
- 3.0.0
190
+ 4.0.0
172
191
  ```
173
192
 
174
193
  This file enables `bootstrap-patch` to detect version changes and apply migrations automatically.
@@ -251,9 +270,9 @@ For multi-app monorepos with different frameworks, list all with app context (e.
251
270
 
252
271
  #### Agent Tool & Permission Calibration
253
272
 
254
- The `tools:` block (Claude Code, GitHub Copilot) and `permission:` block (OpenCode) must match each agent's role **and** the detected project. Templates ship with defaults, but calibrate them during bootstrap so every agent can do its job without being over-provisioned.
273
+ The `tools:` block (Claude Code, GitHub Copilot) and ordered `permissions:` rules (OpenCode V2) must match each agent's role **and** the detected project. Inspect actual defaults before proposing changes; calibrate without over-provisioning.
255
274
 
256
- **Codex native calibration:** customize project instructions and skills, not Claude/Copilot `tools:` frontmatter or OpenCode `permission:` blocks. This toolkit ships no Codex custom-agent format. Use only delegation capabilities actually available in the running harness; do not generate agent files from this table or change native security settings to simulate per-role tool gating.
275
+ **Codex native calibration:** customize project instructions and skills, not Claude/Copilot `tools:` frontmatter or OpenCode `permissions:` rules. This toolkit ships no Codex custom-agent format. Use only delegation capabilities actually available in the running harness; do not generate agent files from this table or change native security settings to simulate per-role tool gating.
257
276
 
258
277
  **1. Capability baseline per role** — what the agent functionally needs:
259
278
 
@@ -268,22 +287,22 @@ The `tools:` block (Claude Code, GitHub Copilot) and `permission:` block (OpenCo
268
287
 
269
288
  **2. Translate the baseline to each platform's syntax:**
270
289
 
271
- | Capability | Claude Code | GitHub Copilot | OpenCode (`permission:`) | Cursor |
290
+ | Capability | Claude Code | GitHub Copilot | OpenCode (`permissions:` rule) | Cursor |
272
291
  | ------------------ | --------------- | -------------------------------------- | ------------------------ | ------- |
273
292
  | read | `Read` | `read` | default | default |
274
293
  | search | `Grep` | `search` | default | default |
275
- | write / edit files | `Write`, `Edit` | `edit` | `edit: allow` | default |
276
- | terminal | `Bash(*)` | `runInTerminal`, `terminalLastCommand` | `bash: allow` | default |
277
- | spawn subagents | `agent` | n/a | `task: allow` | default |
294
+ | write / edit files | `Write`, `Edit` | `edit` | `{action: edit, resource: "*", effect: allow}` | default |
295
+ | terminal | `Bash(*)` | `runInTerminal`, `terminalLastCommand` | `{action: shell, resource: "*", effect: allow}` | default |
296
+ | spawn subagents | `agent` | n/a | `{action: subagent, resource: "*", effect: allow}` | default |
278
297
 
279
298
  > **Cursor note:** these templates declare no `tools:` field, so Cursor subagents inherit the full default toolset. Read-only intent (Researcher, Reviewer) is enforced by the agent's instructions, not tool gating. If your Cursor version supports per-agent tool restriction, add a `tools:` field to match the baseline.
280
299
 
281
300
  **3. Project-driven adjustments** (widen or narrow from the baseline):
282
301
 
283
- - **Planner** — If plans are persisted to files (e.g. `docs/plans/`, `docs/features/`), it MUST have write + terminal. The Copilot default is read-only (`["read","search"]`) and the OpenCode default denies `edit`/`bash` — **widen both** to the baseline. The Claude default already has `Write` but lacks `Bash(*)` — add it so the planner can run `git log` / discover tests.
284
- - **Documenter** — Always needs edit (updates existing docs); needs terminal when the project uses doc generators (mkdocs, typedoc, sphinx, docusaurus). The OpenCode default denies `edit`/`bash` and the Claude default omits `Edit`/`Bash(*)` — **widen both** to the baseline. The Copilot default is already correct.
302
+ - **Planner** — Persisted plans need write + terminal. If Copilot is read-only (`["read","search"]`), widen to the baseline. If Claude lacks `Bash(*)`, add it for `git log` / test discovery. For OpenCode, inspect ordered rules and propose `edit`/`shell` allows only when missing and approved.
303
+ - **Documenter** — Needs edit for docs, terminal for doc generators. If Claude omits `Edit`/`Bash(*)`, propose them. For OpenCode, inspect ordered `edit`/`shell` rules against this baseline, not presumed legacy defaults.
285
304
  - **Researcher** — Must stay read-only on every platform. The Claude Code default currently grants `Write` — **remove it** (`["Read","Grep"]`).
286
- - **Reviewer** — Read + terminal only; never grant write/edit. The OpenCode default denies `bash` — **allow `bash`** (keep `edit: deny`) so it can run `git diff` / tests. The Claude default grants `Write` — **remove it** (keep `Bash(*)`).
305
+ - **Reviewer** — Read + terminal only; never grant write/edit. OpenCode ordered rules should allow `shell` and deny `edit` for this baseline. If Claude grants `Write`, remove it (keep `Bash(*)`).
287
306
  - **Worker agents** (Planner, Implementer, Red, Green, Refactor) — in a monorepo keep `user-invocable: false`; they are coordinator-dispatched only.
288
307
 
289
308
  **4. Apply:** for each agent file (`.claude/agents/*.agent.md`, `.github/agents/*.agent.md`, `.opencode/agents/*.md`), compare the declared tools/permissions to the calibrated baseline and adjust. List the changes, then confirm before applying.
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Review currently staged files before committing
2
+ description: Review staged files with detailed code review
3
3
  tools: ["read", "search"]
4
4
  argument-hint: "no arguments required"
5
5
  ---
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Build administrator portals with RBAC, system dashboards, reporting, analytics, and operational tooling. Specializes in admin frameworks and monitoring ecosystem tools."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Admin Portal Specialist
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Design and implement API architecture, documentation, and developer experience. Use for REST design, GraphQL, OpenAPI specs, SDK generation, API versioning, and integration patterns."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # API Specialist
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Design APIs, databases, and server-side architecture. Use for scalable backend systems, data modeling, caching strategies, system design, and infrastructure decisions."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Backend Architect
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Analyze codebases and create comprehensive documentation. Use for AGENTS.md, README files, API docs, architecture documentation, and onboarding guides."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Documenter
@@ -1,11 +1,19 @@
1
1
  ---
2
2
  description: "Coordinate end-to-end feature development using subagents for planning, implementation, and review. Orchestrates the full development lifecycle."
3
3
  mode: subagent
4
- temperature: 0.3
5
- permission:
6
- edit: allow
7
- bash: allow
8
- task: allow
4
+ request:
5
+ body:
6
+ temperature: 0.3
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
14
+ - action: subagent
15
+ resource: "*"
16
+ effect: allow
9
17
  ---
10
18
 
11
19
  # Feature Builder — Coordinator
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Build user interfaces, implement components, handle state management, and optimize frontend performance. Use for responsive, accessible, and performant web applications."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Frontend Developer
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Write minimal code to make failing tests pass. Part of the TDD red-green-refactor cycle."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Green Agent (TDD — Make Tests Pass)
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Implement code changes for a specific task. Follow TDD, write tests alongside code, and self-review before reporting completion."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Implementer Agent
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Break down feature requests into implementation tasks. Read specifications, analyze codebase patterns, and produce structured plans with dependencies."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Planner Agent
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Write failing tests that define expected behavior. Part of the TDD red-green-refactor cycle."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Red Agent (TDD — Write Failing Tests)
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Improve code quality and structure while keeping all tests passing. Part of the TDD red-green-refactor cycle."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: allow
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Refactor Agent (TDD — Improve Code Quality)
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Research codebase patterns, dependencies, and technical context. Analyze code structure, find relevant examples, and report findings without making changes."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: deny
7
- bash: deny
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: deny
11
+ - action: shell
12
+ resource: "*"
13
+ effect: deny
8
14
  ---
9
15
 
10
16
  # Researcher Agent
@@ -1,10 +1,16 @@
1
1
  ---
2
2
  description: "Review code changes for correctness, code quality, security, and adherence to project patterns. Provide actionable feedback with specific file and line references. Use immediately after writing or modifying code, or as a quality gate in orchestrated workflows."
3
3
  mode: subagent
4
- temperature: 0.1
5
- permission:
6
- edit: deny
7
- bash: allow
4
+ request:
5
+ body:
6
+ temperature: 0.1
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: deny
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
8
14
  ---
9
15
 
10
16
  # Reviewer Agent
@@ -1,11 +1,19 @@
1
1
  ---
2
2
  description: "Implement a feature using test-driven development with red-green-refactor cycle. Coordinates specialized subagents for writing failing tests, implementing code, and refactoring."
3
3
  mode: subagent
4
- temperature: 0.3
5
- permission:
6
- edit: allow
7
- bash: allow
8
- task: allow
4
+ request:
5
+ body:
6
+ temperature: 0.3
7
+ permissions:
8
+ - action: edit
9
+ resource: "*"
10
+ effect: allow
11
+ - action: shell
12
+ resource: "*"
13
+ effect: allow
14
+ - action: subagent
15
+ resource: "*"
16
+ effect: allow
9
17
  ---
10
18
 
11
19
  # TDD Coordinator Agent
@@ -5,17 +5,15 @@
5
5
  ".opencode/rules/*.md",
6
6
  ".agents/skills/orient-to-recent-work/SKILL.md"
7
7
  ],
8
- "skills": {
9
- "paths": [
10
- ".agents/skills/**/*.md",
11
- ".claude/skills/**/*.md"
12
- ]
13
- },
14
- "plugin": [
8
+ "skills": [
9
+ ".agents/skills",
10
+ ".claude/skills"
11
+ ],
12
+ "plugins": [
15
13
  "opencode-mem",
16
14
  "@tarquinen/opencode-dcp@latest",
17
- "@dietrichgebert/ponytail",
18
- "opentmux"
15
+ "@dietrichgebert/ponytail@4.12.0"
16
+ // "opentmux": V1-only; enable only after it supports V2.
19
17
  ],
20
18
  "lsp": true
21
- }
19
+ }
@@ -102,6 +102,14 @@ Each app has its own `AGENTS.md` with detailed patterns:
102
102
  - `{{APP_DIR}}/{{APP_NAME_1}}/AGENTS.md` - {{APP_1_DESCRIPTION}} patterns
103
103
  - `{{APP_DIR}}/{{APP_NAME_2}}/AGENTS.md` - {{APP_2_DESCRIPTION}} patterns
104
104
 
105
+ ## OpenCode V2 Context
106
+
107
+ OpenCode use with toolkit v4 requires native V2; Slim >=3.0.0 requires OpenCode >=2.0.7. Read [native setup](README.md#native-opencode-v2) before migration. All bootstrap flows run `opencode --version` before changes for confirmed OpenCode use: V1 must stop and upgrade OpenCode or remain on toolkit 3.x; missing/unparseable versions block OpenCode steps and toolkit 4.0.0 marking. Directory presence is not harness proof; other-harness-only setup is unaffected.
108
+
109
+ Use `agents`/`system`, `request.body.temperature`, ordered `permissions` (`action`/`resource`/`effect`, `shell`/`subagent`), `commands`, `plugins`, directory-based `skills`, and `mcp.servers`. Preserve user models/providers/plugins and Slim's separate strict schema; do not host-migrate its `prompt`/`permission`/`variant` fields or silently upgrade the separate external starter. Templates register the author's native V2 `@dietrichgebert/ponytail@4.12.0` locally instead of a bundled Ponytail plugin; `opentmux` stays commented as V1-only. Remove only known obsolete toolkit Ponytail `.js`/`.mjs`/`.ts` copies after backup and approval, preserve unrelated local plugins, and merge/deduplicate upstream registration locally without editing global config. No local API port or bridge is used; plugin/runtime integration is untested.
110
+
111
+ Ambient root/nested `AGENTS.md` works; config `instructions` entries do not load. `@refs` are ordinary text: explicitly read linked snippets. `request.body.temperature` remains in config, but the current runner does not send it. Preserve `lsp: true`; use workspace lint/typecheck/compiler commands, not unavailable V2 LSP diagnostics. Back up V1 before native conversion; converted files are incompatible with V1. Activate on the next run/restart.
112
+
105
113
  ## Detailed Instructions
106
114
 
107
115
  ### Native Codex
@@ -59,5 +59,5 @@
59
59
  - Commands are in `.opencode/commands/`.
60
60
  - Rules are in `.opencode/rules/`.
61
61
  - Agents are in `.opencode/agents/`.
62
- - Instructions are loaded from `AGENTS.md`, `.github/instructions/`, and `.claude/rules/`.
62
+ - Native V2 loads ambient `AGENTS.md`, not config `instructions` entries. Explicitly read referenced snippets (`@refs` are ordinary text, not attachments). See [OpenCode setup](README.md#native-opencode-v2).
63
63
  - Skills are loaded from `.agents/skills/` and `.claude/skills/`.
@@ -50,6 +50,20 @@ This is a monorepo managed with {{BUILD_SYSTEM}}.
50
50
 
51
51
  ## Getting Started
52
52
 
53
+ ### Native OpenCode V2
54
+
55
+ Toolkit v4 requires **OpenCode V2 (major >=2)** for OpenCode use; oh-my-opencode-slim >=3.0.0 requires OpenCode >=2.0.7. Bootstrap, patch, and upgrade run `opencode --version` before changes (optional leading `v` accepted). V1 must stop before OpenCode customization/migration or marking toolkit 4.0.0: upgrade OpenCode or remain on toolkit 3.x. A missing CLI or unparseable version stops OpenCode steps and version marking until confirmed/installed. Confirm harness use from runtime evidence or ask, not scaffold directories; other-harness-only setup is unaffected.
56
+
57
+ The template's local `plugins` array registers the author's native V2 package `@dietrichgebert/ponytail@4.12.0`, alongside `opencode-mem` and `@tarquinen/opencode-dcp@latest`; `opentmux` remains commented as V1-only. The obsolete local Ponytail plugin is no longer bundled; no local API port or bridge is used. For existing projects, back up and obtain approval before removing only known toolkit `.opencode/plugins/ponytail.js`, `.mjs`, or `.ts` copies; preserve unrelated local plugins and merge/deduplicate upstream registration locally without editing global plugins. Native local plugins are discovered automatically; do not register them twice.
58
+
59
+ With approval, merge `"plugins": ["oh-my-opencode-slim@3.0.0"]` locally without replacing other registrations. Slim's separate strict schema retains `prompt`, `permission`, and `variant`; do not host-migrate it. The external starter is a separate package, not automatically upgraded. Plugin/runtime integration has not been tested.
60
+
61
+ Use native `agents`/`system`, `request.body.temperature`, ordered `permissions` (`action`/`resource`/`effect`, `shell`/`subagent`), `commands`/`subagent`, `plugins` with `{ "package": "…", "options": {} }`, skill-directory arrays, and `mcp.servers` with inverse `disabled` and `timeout.catalog`/`timeout.execution`. Follow the [V2 migration guide](https://opencode.ai/v2/docs/migrate-v1) and [plugin guide](https://opencode.ai/v2/docs/build/plugins); the published schema may describe V1 and is not V2 validation authority.
62
+
63
+ Ambient root/nested `AGENTS.md` works; config `instructions` entries are not loaded. `@refs` are ordinary text: read linked snippets explicitly. `request.body.temperature` remains in config, but the current runner does not send it. Preserve `lsp: true`; use workspace lint/typecheck/compiler commands (no V2 LSP tools/diagnostics currently).
64
+
65
+ `--env opencode` supplies minimal shared references without activating other harnesses. Back up V1, merge rather than clobber models/providers/plugins, and activate on the next run/restart. Native-converted files are incompatible with V1. Verify with installed V2; `doctor` is not runtime validation. Toolkit 4.0.0 publishing has not been executed.
66
+
53
67
  ### Native Codex
54
68
 
55
69
  `--env codex` includes `.codex/`, `.agents/`, and shared context, plus `.github/instructions/` and `.claude/rules-snippets/` solely to supply AGENTS-linked standards and their wrapper source content. No other harness command, agent, or config directories are installed; these references do not establish Copilot/Claude use or load automatically as Codex rules. Other harness scopes are unchanged.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "Documenter"
3
3
  description: "Analyze codebases and create comprehensive documentation. Use for AGENTS.md, README files, API docs, architecture documentation, and onboarding guides."
4
- tools: ["Read", "Grep", "Write", "Edit", "Bash(*)"]
4
+ tools: ["Read", "Grep", "Write"]
5
5
  user-invocable: true
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "Planner"
3
3
  description: "Break down feature requests into implementation tasks. Read specifications, analyze codebase patterns, and produce structured plans with dependencies."
4
- tools: ["Read", "Grep", "Write", "Bash(*)"]
4
+ tools: ["Read", "Grep", "Write"]
5
5
  user-invocable: true
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "Researcher"
3
3
  description: "Research codebase patterns, dependencies, and technical context. Analyze code structure, find relevant examples, and report findings without making changes."
4
- tools: ["Read", "Grep"]
4
+ tools: ["Read", "Grep", "Write"]
5
5
  user-invocable: true
6
6
  ---
7
7
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "Reviewer"
3
3
  description: "Review code changes for correctness, code quality, security, and adherence to project patterns. Provide actionable feedback with specific file and line references. Use immediately after writing or modifying code, or as a quality gate in orchestrated workflows."
4
- tools: ["Read", "Grep", "Bash(*)"]
4
+ tools: ["Read", "Grep", "Write", "Bash(*)"]
5
5
  user-invocable: true
6
6
  ---
7
7
 
@@ -1,15 +1,13 @@
1
1
  ---
2
- description: Audit the whole repo for over-engineering and identify what can be deleted
3
- allowed-tools: "Read, Grep, Bash"
2
+ description: Audit the whole repo for over-engineering — find what can be deleted
3
+ allowed-tools: "Read, Grep"
4
4
  argument-hint: "no arguments required"
5
5
  ---
6
6
 
7
- ## Agent Dispatch
7
+ # Ponytail Audit
8
8
 
9
+ ## Agent Dispatch
9
10
  > **Recommended agent:** `oracle`
10
11
  > Whole-repo over-engineering analysis
11
12
 
12
-
13
- # Ponytail Audit
14
-
15
13
  Follow the prompt defined in [.claude/prompt-snippets/ponytail-audit.md](../prompt-snippets/ponytail-audit.md).
@@ -1,15 +1,13 @@
1
1
  ---
2
2
  description: "Harvest ponytail: comments into a tracked debt ledger"
3
- allowed-tools: "Read, Grep, Bash"
3
+ allowed-tools: "Read, Grep"
4
4
  argument-hint: "no arguments required"
5
5
  ---
6
6
 
7
- ## Agent Dispatch
7
+ # Ponytail Debt
8
8
 
9
+ ## Agent Dispatch
9
10
  > **Recommended agent:** `fixer`
10
11
  > Debt ledger harvesting
11
12
 
12
-
13
- # Ponytail Debt
14
-
15
13
  Follow the prompt defined in [.claude/prompt-snippets/ponytail-debt.md](../prompt-snippets/ponytail-debt.md).
@@ -4,12 +4,10 @@ allowed-tools: "Read"
4
4
  argument-hint: "no arguments required"
5
5
  ---
6
6
 
7
- ## Agent Dispatch
7
+ # Ponytail Gain
8
8
 
9
+ ## Agent Dispatch
9
10
  > **Recommended agent:** `fixer`
10
11
  > Impact scoreboard display
11
12
 
12
-
13
- # Ponytail Gain
14
-
15
13
  Follow the prompt defined in [.claude/prompt-snippets/ponytail-gain.md](../prompt-snippets/ponytail-gain.md).
@@ -4,12 +4,10 @@ allowed-tools: "Read"
4
4
  argument-hint: "no arguments required"
5
5
  ---
6
6
 
7
- ## Agent Dispatch
7
+ # Ponytail Help
8
8
 
9
+ ## Agent Dispatch
9
10
  > **Recommended agent:** `fixer`
10
11
  > Quick-reference display
11
12
 
12
-
13
- # Ponytail Help
14
-
15
13
  Follow the prompt defined in [.claude/prompt-snippets/ponytail-help.md](../prompt-snippets/ponytail-help.md).