nitm-ai-dev-toolkit 5.0.0 → 5.0.1
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.
- package/CHANGELOG.md +46 -0
- package/README.md +27 -7
- package/bin/cli.js +598 -88
- package/package.json +1 -1
- package/src/monorepo/.agents/skills/factory/SKILL.md +77 -27
- package/src/monorepo/.claude/commands/assign-tasks.md +1 -0
- package/src/monorepo/.claude/commands/factory.md +1 -1
- package/src/monorepo/.claude/commands/ponytail-review.md +1 -1
- package/src/monorepo/.claude/prompt-snippets/assign-tasks.md +13 -3
- package/src/monorepo/.claude/prompt-snippets/bootstrap-patch.md +31 -24
- package/src/monorepo/.claude/prompt-snippets/bootstrap-upgrade.md +12 -13
- package/src/monorepo/.claude/prompt-snippets/bootstrap.md +11 -11
- package/src/monorepo/.claude/prompt-snippets/factory.md +4 -4
- package/src/monorepo/.claude/prompt-snippets/implement-feature.md +3 -1
- package/src/monorepo/.claude/rules-snippets/subagent-workflow.md +2 -2
- package/src/monorepo/.cursor/commands/factory.md +1 -1
- package/src/monorepo/.github/prompts/factory.prompt.md +1 -1
- package/src/monorepo/.opencode/agents/admin-portal.md +1 -1
- package/src/monorepo/.opencode/agents/api-specialist.md +1 -1
- package/src/monorepo/.opencode/agents/backend-architect.md +1 -1
- package/src/monorepo/.opencode/agents/documenter.md +1 -1
- package/src/monorepo/.opencode/agents/factory-approver.md +1 -1
- package/src/monorepo/.opencode/agents/factory-builder.md +1 -1
- package/src/monorepo/.opencode/agents/factory-reviewer-code.md +1 -1
- package/src/monorepo/.opencode/agents/factory-reviewer-security.md +1 -1
- package/src/monorepo/.opencode/agents/factory-reviewer-ui.md +1 -1
- package/src/monorepo/.opencode/agents/factory-reviewer-ux.md +1 -1
- package/src/monorepo/.opencode/agents/factory-spec-writer.md +1 -1
- package/src/monorepo/.opencode/agents/feature-builder.md +1 -1
- package/src/monorepo/.opencode/agents/frontend-developer.md +1 -1
- package/src/monorepo/.opencode/agents/green.md +1 -1
- package/src/monorepo/.opencode/agents/implementer.md +1 -1
- package/src/monorepo/.opencode/agents/planner.md +1 -1
- package/src/monorepo/.opencode/agents/red.md +1 -1
- package/src/monorepo/.opencode/agents/refactor.md +1 -1
- package/src/monorepo/.opencode/agents/researcher.md +1 -1
- package/src/monorepo/.opencode/agents/reviewer.md +1 -1
- package/src/monorepo/.opencode/agents/tdd.md +1 -1
- package/src/monorepo/.opencode/commands/assign-tasks.md +1 -1
- package/src/monorepo/.opencode/commands/bootstrap-patch.md +1 -1
- package/src/monorepo/.opencode/commands/bootstrap-upgrade.md +1 -1
- package/src/monorepo/.opencode/commands/bootstrap.md +1 -1
- package/src/monorepo/.opencode/commands/commit-push.md +1 -1
- package/src/monorepo/.opencode/commands/constitution.md +1 -1
- package/src/monorepo/.opencode/commands/create-skill.md +1 -1
- package/src/monorepo/.opencode/commands/factory.md +1 -1
- package/src/monorepo/.opencode/commands/implement-feature.md +1 -1
- package/src/monorepo/.opencode/commands/implement-fixes.md +1 -1
- package/src/monorepo/.opencode/commands/implement.md +1 -1
- package/src/monorepo/.opencode/commands/plan.md +1 -1
- package/src/monorepo/.opencode/commands/playwright-test.md +1 -1
- package/src/monorepo/.opencode/commands/ponytail-audit.md +1 -1
- package/src/monorepo/.opencode/commands/ponytail-debt.md +1 -1
- package/src/monorepo/.opencode/commands/ponytail-gain.md +1 -1
- package/src/monorepo/.opencode/commands/ponytail-help.md +1 -1
- package/src/monorepo/.opencode/commands/ponytail-review.md +1 -1
- package/src/monorepo/.opencode/commands/ponytail.md +1 -1
- package/src/monorepo/.opencode/commands/release-notes.md +1 -1
- package/src/monorepo/.opencode/commands/review-pr.md +1 -1
- package/src/monorepo/.opencode/commands/review.md +1 -1
- package/src/monorepo/.opencode/commands/specify.md +1 -1
- package/src/monorepo/.opencode/commands/tasks.md +1 -1
- package/src/monorepo/.opencode/opencode.jsonc +1 -2
- package/src/monorepo/.opencode/rules/agent-conduct.md +1 -1
- package/src/monorepo/.opencode/rules/api-server.md +1 -1
- package/src/monorepo/.opencode/rules/coding-standards.md +1 -1
- package/src/monorepo/.opencode/rules/component-structure.md +1 -1
- package/src/monorepo/.opencode/rules/core-libraries.md +1 -1
- package/src/monorepo/.opencode/rules/environment-tooling.md +1 -1
- package/src/monorepo/.opencode/rules/logging-comments.md +1 -1
- package/src/monorepo/.opencode/rules/logging.md +1 -1
- package/src/monorepo/.opencode/rules/prisma-migrations.md +1 -1
- package/src/monorepo/.opencode/rules/project-context.md +1 -1
- package/src/monorepo/.opencode/rules/server-client-separation.md +1 -1
- package/src/monorepo/.opencode/rules/subagent-workflow.md +1 -1
- package/src/monorepo/.opencode/rules/testing-quality.md +1 -1
- package/src/monorepo/.opencode/rules/ui-accessibility.md +1 -1
- package/src/monorepo/.opencode/rules/version-control.md +1 -1
- package/src/monorepo/.opencode/rules/what-to-avoid.md +1 -1
- package/src/monorepo/AGENTS.md +3 -3
- package/src/monorepo/README.md +4 -4
- package/src/monorepo/factory/README.md +40 -15
- package/src/monorepo/factory/worktree-bootstrap.md +32 -0
- package/src/repo/.agents/skills/factory/SKILL.md +76 -26
- package/src/repo/.claude/commands/assign-tasks.md +1 -0
- package/src/repo/.claude/commands/factory.md +1 -1
- package/src/repo/.claude/commands/ponytail-review.md +1 -1
- package/src/repo/.claude/prompt-snippets/assign-tasks.md +13 -3
- package/src/repo/.claude/prompt-snippets/bootstrap-patch.md +31 -24
- package/src/repo/.claude/prompt-snippets/bootstrap-upgrade.md +16 -16
- package/src/repo/.claude/prompt-snippets/bootstrap.md +11 -11
- package/src/repo/.claude/prompt-snippets/factory.md +4 -4
- package/src/repo/.claude/prompt-snippets/implement-feature.md +3 -1
- package/src/repo/.claude/rules-snippets/subagent-workflow.md +2 -2
- package/src/repo/.cursor/commands/factory.md +1 -1
- package/src/repo/.github/prompts/factory.prompt.md +1 -1
- package/src/repo/.opencode/agents/admin-portal.md +1 -1
- package/src/repo/.opencode/agents/api-specialist.md +1 -1
- package/src/repo/.opencode/agents/backend-architect.md +1 -1
- package/src/repo/.opencode/agents/documenter.md +1 -1
- package/src/repo/.opencode/agents/factory-approver.md +1 -1
- package/src/repo/.opencode/agents/factory-builder.md +1 -1
- package/src/repo/.opencode/agents/factory-reviewer-code.md +1 -1
- package/src/repo/.opencode/agents/factory-reviewer-security.md +1 -1
- package/src/repo/.opencode/agents/factory-reviewer-ui.md +1 -1
- package/src/repo/.opencode/agents/factory-reviewer-ux.md +1 -1
- package/src/repo/.opencode/agents/factory-spec-writer.md +1 -1
- package/src/repo/.opencode/agents/feature-builder.md +1 -1
- package/src/repo/.opencode/agents/frontend-developer.md +1 -1
- package/src/repo/.opencode/agents/green.md +1 -1
- package/src/repo/.opencode/agents/implementer.md +1 -1
- package/src/repo/.opencode/agents/planner.md +1 -1
- package/src/repo/.opencode/agents/red.md +1 -1
- package/src/repo/.opencode/agents/refactor.md +1 -1
- package/src/repo/.opencode/agents/researcher.md +1 -1
- package/src/repo/.opencode/agents/reviewer.md +1 -1
- package/src/repo/.opencode/agents/tdd.md +1 -1
- package/src/repo/.opencode/commands/assign-tasks.md +1 -1
- package/src/repo/.opencode/commands/bootstrap-patch.md +1 -1
- package/src/repo/.opencode/commands/bootstrap-upgrade.md +1 -1
- package/src/repo/.opencode/commands/bootstrap.md +1 -1
- package/src/repo/.opencode/commands/commit-push.md +1 -1
- package/src/repo/.opencode/commands/constitution.md +1 -1
- package/src/repo/.opencode/commands/create-skill.md +1 -1
- package/src/repo/.opencode/commands/factory.md +1 -1
- package/src/repo/.opencode/commands/implement-feature.md +1 -1
- package/src/repo/.opencode/commands/implement-fixes.md +1 -1
- package/src/repo/.opencode/commands/implement.md +1 -1
- package/src/repo/.opencode/commands/plan.md +1 -1
- package/src/repo/.opencode/commands/playwright-test.md +1 -1
- package/src/repo/.opencode/commands/ponytail-audit.md +1 -1
- package/src/repo/.opencode/commands/ponytail-debt.md +1 -1
- package/src/repo/.opencode/commands/ponytail-gain.md +1 -1
- package/src/repo/.opencode/commands/ponytail-help.md +1 -1
- package/src/repo/.opencode/commands/ponytail-review.md +1 -1
- package/src/repo/.opencode/commands/ponytail.md +1 -1
- package/src/repo/.opencode/commands/release-notes.md +1 -1
- package/src/repo/.opencode/commands/review-pr.md +1 -1
- package/src/repo/.opencode/commands/review.md +1 -1
- package/src/repo/.opencode/commands/specify.md +1 -1
- package/src/repo/.opencode/commands/tasks.md +1 -1
- package/src/repo/.opencode/opencode.jsonc +1 -2
- package/src/repo/.opencode/rules/agent-conduct.md +1 -1
- package/src/repo/.opencode/rules/api-server.md +1 -1
- package/src/repo/.opencode/rules/coding-standards.md +1 -1
- package/src/repo/.opencode/rules/component-structure.md +1 -1
- package/src/repo/.opencode/rules/core-libraries.md +1 -1
- package/src/repo/.opencode/rules/environment-tooling.md +1 -1
- package/src/repo/.opencode/rules/logging-comments.md +1 -1
- package/src/repo/.opencode/rules/logging.md +1 -1
- package/src/repo/.opencode/rules/prisma-migrations.md +1 -1
- package/src/repo/.opencode/rules/project-context.md +1 -1
- package/src/repo/.opencode/rules/server-client-separation.md +1 -1
- package/src/repo/.opencode/rules/subagent-workflow.md +1 -1
- package/src/repo/.opencode/rules/testing-quality.md +1 -1
- package/src/repo/.opencode/rules/ui-accessibility.md +1 -1
- package/src/repo/.opencode/rules/version-control.md +1 -1
- package/src/repo/.opencode/rules/what-to-avoid.md +1 -1
- package/src/repo/AGENTS.md +3 -3
- package/src/repo/README.md +4 -4
- package/src/repo/factory/README.md +33 -14
- package/src/repo/factory/worktree-bootstrap.md +32 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Bootstrap Upgrade — Monorepo
|
|
2
2
|
|
|
3
|
-
Upgrade this monorepo to toolkit
|
|
3
|
+
Upgrade this monorepo to toolkit <version> (the installed package version), including native OpenCode V2 for confirmed OpenCode users (toolkit 4.0.0 and later). For pre-3.0 installations, also migrate inline content to snippet-based architecture. Only modify confirmed harness targets; preserve unrelated harness/Codex behavior.
|
|
4
4
|
|
|
5
5
|
## OpenCode version preflight (before any changes)
|
|
6
6
|
|
|
7
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.
|
|
9
|
-
- If OpenCode V1 (`major < 2`) is detected, **STOP** before customizing/migrating OpenCode files or writing `.toolkit-version` as
|
|
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.0.0 and later require `major >= 2`.
|
|
9
|
+
- If OpenCode V1 (`major < 2`) is detected, **STOP** before customizing/migrating OpenCode files or writing `.toolkit-version` as 4.0.0 or later. Ask the user to upgrade OpenCode to V2 or remain on toolkit 3.x.
|
|
10
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
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
12
|
|
|
@@ -21,7 +21,7 @@ Read `.toolkit-version` and select the route before dispatching agents or changi
|
|
|
21
21
|
|
|
22
22
|
## OpenCode migration guardrails
|
|
23
23
|
|
|
24
|
-
Back up V1; native-converted files are incompatible with V1. Preserve models/providers/user-global plugins.
|
|
24
|
+
Back up V1; native-converted files are incompatible with V1. Preserve models/providers/user-global plugins. The OpenCode Ponytail plugin (`@dietrichgebert/ponytail`) is installed globally by the operator and is never registered by templates or project config; obsolete toolkit-local Ponytail copies are removed only after backup and approval (Step 7), with no API port or bridge. Keep `opentmux` commented as V1-only. Only with approval, merge pinned `"plugins": ["oh-my-opencode-slim@3.0.0"]` locally without replacing other registrations. Slim's separate strict schema retains `prompt`/`permission`/`variant`; do not host-migrate it or silently upgrade the separate external starter. Activate on the next run/restart; plugin/runtime integration is untested.
|
|
25
25
|
|
|
26
26
|
## Orchestrator Checkpoint
|
|
27
27
|
|
|
@@ -71,7 +71,7 @@ Back up V1; native-converted files are incompatible with V1. Preserve models/pro
|
|
|
71
71
|
5. **Present summary and ask for confirmation**:
|
|
72
72
|
|
|
73
73
|
```markdown
|
|
74
|
-
## 🔄 Monorepo Upgrade: toolkit
|
|
74
|
+
## 🔄 Monorepo Upgrade: toolkit <version>
|
|
75
75
|
|
|
76
76
|
**Selected route**: verified legacy | v3 native OpenCode
|
|
77
77
|
|
|
@@ -81,7 +81,7 @@ Back up V1; native-converted files are incompatible with V1. Preserve models/pro
|
|
|
81
81
|
- Confirmed OpenCode only: merge native V2 host files and approved missing wrappers (Step 7)
|
|
82
82
|
- Verified legacy only: approved hook installation and verified identical duplicate skill cleanup (Steps 8–10); preserve custom skills
|
|
83
83
|
- Merge only applicable missing documentation and validate the selected route; v3 keeps existing snippet bodies/frontmatter unchanged
|
|
84
|
-
-
|
|
84
|
+
- Keep the `.toolkit-version` the CLI writes (installed package version, 4.0.0 or later) after the approved migration
|
|
85
85
|
|
|
86
86
|
### Monorepo-specific changes
|
|
87
87
|
|
|
@@ -264,18 +264,17 @@ For the v3 route, merge only relevant native OpenCode host fields; preserve exis
|
|
|
264
264
|
"$schema": "https://opencode.ai/config.json",
|
|
265
265
|
"instructions": ["AGENTS.md", ".opencode/rules/*.md"],
|
|
266
266
|
"skills": [".agents/skills"],
|
|
267
|
-
"plugins": ["@dietrichgebert/ponytail@4.12.0"],
|
|
268
267
|
"lsp": true
|
|
269
268
|
}
|
|
270
269
|
```
|
|
271
270
|
|
|
272
271
|
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. The published schema may describe V1; do not use it or a V1 API fetch as native V2 validation authority. 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`.
|
|
273
272
|
|
|
274
|
-
`instructions` entries
|
|
273
|
+
Ambient root/nested `AGENTS.md` works. `instructions` entries load only when the runtime injects them (OpenChamber does; other hosts may not), so do not rely on them: write explicit "Read and follow" wrappers regardless. `@refs` are ordinary text, not attachments: wrappers must explicitly tell agents to read referenced 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 current V2 LSP tools/diagnostics). `--env opencode` supplies minimal shared references without other harness activation. Verify using installed V2 after the next run/restart; report only checks actually run.
|
|
275
274
|
|
|
276
275
|
2. **Replace obsolete toolkit Ponytail (backup and approval only)**:
|
|
277
276
|
- Back up the local config and known obsolete toolkit-owned `.opencode/plugins/ponytail.js`, `.opencode/plugins/ponytail.mjs`, and `.opencode/plugins/ponytail.ts` copies; obtain approval before removing only those copies. Preserve unrelated local plugins.
|
|
278
|
-
-
|
|
277
|
+
- The OpenCode Ponytail plugin (`@dietrichgebert/ponytail`) is installed globally by the operator. Never add or pin it in the local `plugins` array. Check whether it is installed globally; if not, tell the operator to install it globally. Do not edit global config or overwrite global plugins. Keep `opentmux` commented as V1-only; do not copy local Ponytail source, port APIs, or introduce bridges. Runtime integration remains untested.
|
|
279
278
|
|
|
280
279
|
3. Create `.opencode/commands/*.md` — one thin wrapper per `.claude/commands/*.md`:
|
|
281
280
|
|
|
@@ -379,7 +378,7 @@ If `CLAUDE.md` is an applicable confirmed harness target, merge only missing rel
|
|
|
379
378
|
|
|
380
379
|
### Step 12: Create .toolkit-version File
|
|
381
380
|
|
|
382
|
-
|
|
381
|
+
Keep the `.toolkit-version` value the CLI writes (the installed package version, 4.0.0 or later); do not write `4.0.0` by hand. Only after the approved migration and OpenCode preflight pass (or OpenCode is confirmed out of scope). If the file is missing, run `npx nitm-ai-dev-toolkit patch` to record it.
|
|
383
382
|
|
|
384
383
|
### Step 13: Validation
|
|
385
384
|
|
|
@@ -399,7 +398,7 @@ If `--verbose`: log each check result.
|
|
|
399
398
|
Include only operations/checks actually performed for the selected route; omit legacy extraction/cleanup rows on v3 and never pre-mark skipped checks as passed.
|
|
400
399
|
|
|
401
400
|
```markdown
|
|
402
|
-
## ✅ Monorepo Upgrade Complete:
|
|
401
|
+
## ✅ Monorepo Upgrade Complete: toolkit <version>
|
|
403
402
|
|
|
404
403
|
### Build System: {{BUILD_SYSTEM}}
|
|
405
404
|
|
|
@@ -435,7 +434,7 @@ Include only operations/checks actually performed for the selected route; omit l
|
|
|
435
434
|
| File | Purpose |
|
|
436
435
|
| -------------------------- | -------------------------- |
|
|
437
436
|
| `.opencode/opencode.jsonc` | OpenCode configuration |
|
|
438
|
-
| `.toolkit-version` | Version tracking (
|
|
437
|
+
| `.toolkit-version` | Version tracking (installed package version) |
|
|
439
438
|
|
|
440
439
|
### Validation Results
|
|
441
440
|
|
|
@@ -464,7 +463,7 @@ Include only operations/checks actually performed for the selected route; omit l
|
|
|
464
463
|
|
|
465
464
|
```bash
|
|
466
465
|
git add -A
|
|
467
|
-
git commit -m "chore: upgrade AI instructions to toolkit
|
|
466
|
+
git commit -m "chore: upgrade AI instructions to toolkit <version>"
|
|
468
467
|
```
|
|
469
468
|
|
|
470
469
|
## Error Handling
|
|
@@ -5,8 +5,8 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
|
|
|
5
5
|
## OpenCode version preflight (before any changes)
|
|
6
6
|
|
|
7
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.
|
|
9
|
-
- If OpenCode V1 (`major < 2`) is detected, **STOP** before customizing/migrating OpenCode files or writing `.toolkit-version` as
|
|
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.0.0 and later require `major >= 2`.
|
|
9
|
+
- If OpenCode V1 (`major < 2`) is detected, **STOP** before customizing/migrating OpenCode files or writing `.toolkit-version` as 4.0.0 or later. Ask the user to upgrade OpenCode to V2 or remain on toolkit 3.x.
|
|
10
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
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
12
|
|
|
@@ -68,9 +68,9 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
|
|
|
68
68
|
| `{{PM_URL}}` | Project management URL (if applicable) |
|
|
69
69
|
| `{{PROJECT_KEY}}` | Project/workspace ID (if applicable) |
|
|
70
70
|
| `{{PM_ISSUE_KEY}}` | Issue key format (e.g., PROJ-###, #42) |
|
|
71
|
-
| `{{FACTORY_PORT_BASE}}` | Default `5100` |
|
|
72
|
-
| `{{APPROVAL_MODE}}` | Default `human` |
|
|
73
|
-
| `{{FACTORY_REVIEW_LENSES}}` | Default `code, security`; add `ux, ui` only if the project has a UI and a browser tool is configured (for example a browser MCP server) |
|
|
71
|
+
| `{{FACTORY_PORT_BASE}}` | Only if Factory is installed. Default `5100` |
|
|
72
|
+
| `{{APPROVAL_MODE}}` | Only if Factory is installed. Default `human` |
|
|
73
|
+
| `{{FACTORY_REVIEW_LENSES}}` | Only if Factory is installed. Default `code, security`; add `ux, ui` only if the project has a UI and a browser tool is configured (for example a browser MCP server) |
|
|
74
74
|
|
|
75
75
|
3. **Analyze Apps**:
|
|
76
76
|
|
|
@@ -180,23 +180,23 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
|
|
|
180
180
|
|
|
181
181
|
- 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`.
|
|
182
182
|
- 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.
|
|
183
|
-
-
|
|
184
|
-
- Config `instructions` entries
|
|
185
|
-
- `--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
|
|
183
|
+
- The OpenCode Ponytail plugin (`@dietrichgebert/ponytail`, the author's native V2 package) is installed globally by the operator. Templates do not register or pin it, and no local Ponytail source is bundled or ported. Keep `opentmux` commented as V1-only. Do not introduce API ports or bridges or claim tested runtime integration.
|
|
184
|
+
- Ambient root/nested `AGENTS.md` works. Config `instructions` entries load only when the runtime injects them (OpenChamber does; other hosts may not), so do not rely on them: write explicit "Read and follow" wrappers regardless. `@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).
|
|
185
|
+
- `--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.
|
|
186
186
|
|
|
187
187
|
**Ponytail pre-activation cleanup (confirmed OpenCode use only):**
|
|
188
188
|
|
|
189
189
|
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.
|
|
190
190
|
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.
|
|
191
|
-
3.
|
|
191
|
+
3. Never add `@dietrichgebert/ponytail` to project `.opencode/opencode.jsonc`. Check whether it is installed globally; if not, tell the operator to install it globally and leave global and project config untouched. No API port or bridge.
|
|
192
192
|
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.
|
|
193
193
|
|
|
194
194
|
**Create Toolkit Version File:**
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
Confirm `.toolkit-version` in the project root. The CLI writes it on install and patch with the installed package version. For toolkit 4.0.0 or later, keep the value the CLI wrote; do not write it by hand or overwrite it with a hard-coded version. If it is missing, run `npx nitm-ai-dev-toolkit patch` only after the OpenCode preflight and Ponytail cleanup gate pass (or OpenCode is confirmed out of scope). Expected form:
|
|
197
197
|
|
|
198
198
|
```
|
|
199
|
-
|
|
199
|
+
<installed package version, for example 5.0.0>
|
|
200
200
|
```
|
|
201
201
|
|
|
202
202
|
This file enables `bootstrap-patch` to detect version changes and apply migrations automatically.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Run an opt-in factory job: intake, spec and plan gates, build in a worktree or in place, reviews, approval, local merge"
|
|
2
|
+
description: "Run an opt-in factory job: intake, spec and plan gates, build in a worktree or in place, reviews, approval, merge (local, or a merge request on the forge)"
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
You are the factory orchestrator for this session. Arguments: $ARGUMENTS
|
|
@@ -9,12 +9,12 @@ Follow the [factory orchestrator skill](../../.agents/skills/factory/SKILL.md) e
|
|
|
9
9
|
Ground rules:
|
|
10
10
|
|
|
11
11
|
- Run the orchestrator in this session. Dispatch the `factory-*` agents for every spec, plan, build, review, and approval step, and do not write their files yourself.
|
|
12
|
-
- Only write `job.json`, `intake.md`, `spec-<k>.md`, `plan-<k>.md`, `rework-<k>.md`, the escalation `decision.md`, `merge-conflict.md`, the ticket keys in `tasks.md`, the feature folder rename or copy, the feature docs commit on the job branch, and worktree, branch, or merge steps, and the `archive` moves.
|
|
12
|
+
- Only write `job.json`, `intake.md`, `spec-<k>.md`, `plan-<k>.md`, `rework-<k>.md`, the escalation `decision.md`, `merge-conflict.md`, `bootstrap.md`, the ticket keys in `tasks.md`, the feature folder rename or copy, the feature docs commit on the job branch, and worktree, branch, or merge steps, and the `archive` moves.
|
|
13
13
|
- Intake asks in chat before any folder, job, or spec exists. Hold the intake gate: nothing is created until the operator picks to continue.
|
|
14
14
|
- Hold the spec gate and the plan gate: nothing is planned, ticketed, or built until the operator confirms in chat. The spec cannot be confirmed while a `[PRODUCT DECISION]` item is open.
|
|
15
15
|
- `--in-place` on the command, or the operator saying in place, builds in the main checkout instead of a worktree. Only a new job takes it.
|
|
16
16
|
- `abandon <job-id>` closes a job without merging it. Ask first when an agent may still be running.
|
|
17
|
-
-
|
|
17
|
+
- Local merges never push. With `MERGE_MODE` set to `push-mr`, the branch is pushed and its merge request opened only on `/factory approve` or an `auto` APPROVE, and never force-pushed.
|
|
18
18
|
- `archive` moves closed jobs only, to `factory/archive/`. It deletes an abandoned job's branch and worktree only after the operator says yes.
|
|
19
|
-
- `prune` permanently deletes closed jobs from `factory/jobs/` and `factory/archive/`, after one confirmation in chat: merged jobs by default, and abandoned jobs too with `--abandoned`. It never touches an open job or
|
|
19
|
+
- `prune` permanently deletes closed jobs from `factory/jobs/` and `factory/archive/`, after one confirmation in chat: merged jobs by default, and abandoned jobs too with `--abandoned`. It never touches an open job or the feature folders.
|
|
20
20
|
- If `$ARGUMENTS` is empty, show the invocation list from the skill and ask which one the user wants.
|
|
@@ -79,7 +79,9 @@ Implement a feature by completing tasks sequentially with proper tracking.
|
|
|
79
79
|
git commit -m "feat({{SCOPE}}): {{DESCRIPTION}}"
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
f. **Mark Task Complete**:
|
|
82
|
+
f. **Mark Task Complete**:
|
|
83
|
+
- Slim `tasks.md`: tick `- [x]` on the task's line
|
|
84
|
+
- Legacy `tasks.md`: tick `- [x]` only on checkboxes under the current task's heading (until the next heading). Never tick checkboxes under other headings. If that heading has no checkboxes, report "no checkboxes under <heading>; nothing ticked" and continue
|
|
83
85
|
|
|
84
86
|
5. **Post-Implementation Review**:
|
|
85
87
|
- Dispatch **Reviewer** agent on all changes before proceeding
|
|
@@ -103,8 +103,8 @@ Before executing any task list, the orchestrator MUST run this analysis:
|
|
|
103
103
|
- **Mixed** → Dispatch independent group in parallel, then continue sequential chain
|
|
104
104
|
|
|
105
105
|
```
|
|
106
|
-
Example: 5 tasks →
|
|
107
|
-
Dispatch:
|
|
106
|
+
Example: 5 tasks → T1 (setup) → T2 [P] (backend API) + T3 [P] (frontend UI) + T4 [P] (docs) → T5 (integration tests)
|
|
107
|
+
Dispatch: T1 sequential → T2+T3+T4 parallel → T5 sequential
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
## Quality Gates
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Run an opt-in factory job: intake, spec and plan gates, build in a worktree or in place, reviews, approval, local merge"
|
|
2
|
+
description: "Run an opt-in factory job: intake, spec and plan gates, build in a worktree or in place, reviews, approval, merge (local, or a merge request on the forge)"
|
|
3
3
|
argument-hint: "[--in-place] <feature request> | start [--in-place] <request | KEY | slug | job-id> | approve <job-id> | rework <job-id> <note> | abandon <job-id> | status [--all] | watch [--all] | archive [--all] [--dry-run] | prune [--all] [--abandoned] [--dry-run]"
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Run an opt-in factory job: intake, spec and plan gates, build in a worktree or in place, reviews, approval, local merge"
|
|
2
|
+
description: "Run an opt-in factory job: intake, spec and plan gates, build in a worktree or in place, reviews, approval, merge (local, or a merge request on the forge)"
|
|
3
3
|
tools: ["agent", "edit", "search", "read", "runInTerminal", "terminalLastCommand"]
|
|
4
4
|
argument-hint: "[--in-place] <feature request> | start [--in-place] <request | KEY | slug | job-id> | approve <job-id> | rework <job-id> <note> | abandon <job-id> | status [--all] | watch [--all] | archive [--all] [--dry-run] | prune [--all] [--abandoned] [--dry-run]"
|
|
5
5
|
---
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Review a factory job's branch for correctness, simplicity, reuse, conventions, and docs, and run the project's checks.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/factory-reviewer-code.md` before performing this role.
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Review a factory job's feature at its build location for design-system consistency, spacing, typography, contrast, and responsive layout, without signing in or writing to real services.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/factory-reviewer-ui.md` before performing this role.
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Review a factory job's feature at its build location for flows, states, copy, accessibility, and mobile, without signing in or writing to real services.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/factory-reviewer-ux.md` before performing this role.
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Build user interfaces, implement components, handle state management, and optimize frontend performance.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/frontend-developer.md` before performing this role.
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Implement code changes for a specific task. Follow TDD, write tests alongside code, and self-review before reporting completion.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/implementer.md` before performing this role.
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Break down feature requests into implementation tasks. Read specifications, analyze codebase patterns, and produce structured plans with dependencies.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/planner.md` before performing this role.
|
|
@@ -17,4 +17,4 @@ permissions:
|
|
|
17
17
|
|
|
18
18
|
Research codebase patterns, dependencies, and technical context. Analyze code structure, find relevant examples, and report findings without making changes.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Read and follow `.claude/agents-snippets/researcher.md` before performing this role.
|
|
@@ -11,6 +11,6 @@ description: "Commit and push changes with conventional commit messages"
|
|
|
11
11
|
|
|
12
12
|
Commit and push changes using conventional commit format.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Read and follow `.claude/prompt-snippets/commit-push.md` before executing this command.
|
|
15
15
|
|
|
16
16
|
$ARGUMENTS
|
|
@@ -7,4 +7,4 @@ description: "Whole-repo audit for over-engineering. Scans entire codebase for w
|
|
|
7
7
|
> **Recommended agent:** `oracle`
|
|
8
8
|
> Whole-repo over-engineering analysis
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Read and follow `.claude/prompt-snippets/ponytail-audit.md` before executing this command.
|
|
@@ -7,4 +7,4 @@ description: "Forces the laziest solution that actually works — YAGNI, stdlib,
|
|
|
7
7
|
> **Recommended agent:** `fixer`
|
|
8
8
|
> Apply YAGNI/stdlib discipline
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Read and follow `.claude/prompt-snippets/ponytail.md` before executing this command.
|
|
@@ -13,6 +13,6 @@ description: "Conduct comprehensive pull request code review"
|
|
|
13
13
|
|
|
14
14
|
Conduct comprehensive code review for pull requests.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Read and follow `.claude/prompt-snippets/review-pr.md` before executing this command.
|
|
17
17
|
|
|
18
18
|
$ARGUMENTS
|
|
@@ -13,6 +13,6 @@ description: "Conduct code review for files or features"
|
|
|
13
13
|
|
|
14
14
|
Review code for quality, security, and adherence to project patterns.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Read and follow `.claude/prompt-snippets/review.md` before executing this command.
|
|
17
17
|
|
|
18
18
|
$ARGUMENTS
|