nitm-ai-dev-toolkit 5.0.1 → 5.1.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 +26 -0
- package/README.md +4 -4
- package/bin/cli.js +38 -1
- package/package.json +1 -1
- package/src/monorepo/.agents/skills/factory/SKILL.md +53 -36
- package/src/monorepo/{.claude/agents-snippets/factory-approver.md → .agents/skills/factory/roles/approve.md} +3 -3
- package/src/monorepo/{.claude/agents-snippets/factory-builder.md → .agents/skills/factory/roles/build.md} +3 -3
- package/src/monorepo/{.claude/agents-snippets/factory-reviewer-code.md → .agents/skills/factory/roles/review-code.md} +5 -5
- package/src/{repo/.claude/agents-snippets/factory-reviewer-security.md → monorepo/.agents/skills/factory/roles/review-security.md} +4 -4
- package/src/monorepo/{.claude/agents-snippets/factory-reviewer-ui.md → .agents/skills/factory/roles/review-ui.md} +6 -6
- package/src/monorepo/{.claude/agents-snippets/factory-reviewer-ux.md → .agents/skills/factory/roles/review-ux.md} +6 -6
- package/src/monorepo/{.claude/agents-snippets/factory-spec-writer.md → .agents/skills/factory/roles/spec.md} +2 -2
- package/src/monorepo/.claude/agents/implementer.agent.md +1 -1
- package/src/monorepo/.claude/agents/planner.agent.md +1 -1
- package/src/monorepo/.claude/agents/reviewer.agent.md +1 -1
- package/src/monorepo/.claude/commands/factory.md +8 -8
- package/src/monorepo/.claude/prompt-snippets/bootstrap-patch.md +2 -2
- package/src/monorepo/.claude/prompt-snippets/bootstrap-upgrade.md +2 -2
- package/src/monorepo/.claude/prompt-snippets/bootstrap.md +2 -2
- package/src/monorepo/.claude/prompt-snippets/factory.md +2 -2
- package/src/monorepo/.cursor/commands/factory.md +8 -8
- package/src/monorepo/.github/prompts/factory.prompt.md +8 -8
- package/src/monorepo/.opencode/agents/admin-portal.md +0 -3
- package/src/monorepo/.opencode/agents/api-specialist.md +0 -3
- package/src/monorepo/.opencode/agents/backend-architect.md +0 -3
- package/src/monorepo/.opencode/agents/documenter.md +0 -3
- package/src/monorepo/.opencode/agents/feature-builder.md +0 -3
- package/src/monorepo/.opencode/agents/frontend-developer.md +0 -3
- package/src/monorepo/.opencode/agents/green.md +0 -3
- package/src/monorepo/.opencode/agents/implementer.md +0 -3
- package/src/monorepo/.opencode/agents/planner.md +0 -3
- package/src/monorepo/.opencode/agents/red.md +0 -3
- package/src/monorepo/.opencode/agents/refactor.md +0 -3
- package/src/monorepo/.opencode/agents/researcher.md +0 -3
- package/src/monorepo/.opencode/agents/reviewer.md +0 -3
- package/src/monorepo/.opencode/agents/tdd.md +0 -3
- package/src/monorepo/.opencode/commands/factory.md +9 -9
- package/src/monorepo/AGENTS.md +3 -3
- package/src/monorepo/README.md +2 -2
- package/src/monorepo/factory/README.md +13 -11
- package/src/repo/.agents/skills/factory/SKILL.md +53 -36
- package/src/repo/{.claude/agents-snippets/factory-approver.md → .agents/skills/factory/roles/approve.md} +3 -3
- package/src/repo/{.claude/agents-snippets/factory-builder.md → .agents/skills/factory/roles/build.md} +3 -3
- package/src/repo/{.claude/agents-snippets/factory-reviewer-code.md → .agents/skills/factory/roles/review-code.md} +5 -5
- package/src/{monorepo/.claude/agents-snippets/factory-reviewer-security.md → repo/.agents/skills/factory/roles/review-security.md} +4 -4
- package/src/repo/{.claude/agents-snippets/factory-reviewer-ui.md → .agents/skills/factory/roles/review-ui.md} +6 -6
- package/src/repo/{.claude/agents-snippets/factory-reviewer-ux.md → .agents/skills/factory/roles/review-ux.md} +6 -6
- package/src/repo/{.claude/agents-snippets/factory-spec-writer.md → .agents/skills/factory/roles/spec.md} +2 -2
- package/src/repo/.claude/agents/implementer.agent.md +1 -1
- package/src/repo/.claude/agents/planner.agent.md +1 -1
- package/src/repo/.claude/agents/reviewer.agent.md +1 -1
- package/src/repo/.claude/commands/factory.md +8 -8
- package/src/repo/.claude/prompt-snippets/bootstrap-patch.md +2 -2
- package/src/repo/.claude/prompt-snippets/bootstrap-upgrade.md +2 -2
- package/src/repo/.claude/prompt-snippets/bootstrap.md +2 -2
- package/src/repo/.claude/prompt-snippets/factory.md +2 -2
- package/src/repo/.cursor/commands/factory.md +8 -8
- package/src/repo/.github/prompts/factory.prompt.md +8 -8
- package/src/repo/.opencode/agents/admin-portal.md +0 -3
- package/src/repo/.opencode/agents/api-specialist.md +0 -3
- package/src/repo/.opencode/agents/backend-architect.md +0 -3
- package/src/repo/.opencode/agents/documenter.md +0 -3
- package/src/repo/.opencode/agents/feature-builder.md +0 -3
- package/src/repo/.opencode/agents/frontend-developer.md +0 -3
- package/src/repo/.opencode/agents/green.md +0 -3
- package/src/repo/.opencode/agents/implementer.md +0 -3
- package/src/repo/.opencode/agents/planner.md +0 -3
- package/src/repo/.opencode/agents/red.md +0 -3
- package/src/repo/.opencode/agents/refactor.md +0 -3
- package/src/repo/.opencode/agents/researcher.md +0 -3
- package/src/repo/.opencode/agents/reviewer.md +0 -3
- package/src/repo/.opencode/agents/tdd.md +0 -3
- package/src/repo/.opencode/commands/factory.md +9 -9
- package/src/repo/AGENTS.md +3 -3
- package/src/repo/README.md +2 -2
- package/src/repo/factory/README.md +13 -11
- package/src/monorepo/.claude/agents/factory-approver.agent.md +0 -12
- package/src/monorepo/.claude/agents/factory-builder.agent.md +0 -12
- package/src/monorepo/.claude/agents/factory-reviewer-code.agent.md +0 -12
- package/src/monorepo/.claude/agents/factory-reviewer-security.agent.md +0 -12
- package/src/monorepo/.claude/agents/factory-reviewer-ui.agent.md +0 -12
- package/src/monorepo/.claude/agents/factory-reviewer-ux.agent.md +0 -12
- package/src/monorepo/.claude/agents/factory-spec-writer.agent.md +0 -12
- package/src/monorepo/.cursor/agents/factory-approver.agent.md +0 -11
- package/src/monorepo/.cursor/agents/factory-builder.agent.md +0 -11
- package/src/monorepo/.cursor/agents/factory-reviewer-code.agent.md +0 -11
- package/src/monorepo/.cursor/agents/factory-reviewer-security.agent.md +0 -11
- package/src/monorepo/.cursor/agents/factory-reviewer-ui.agent.md +0 -11
- package/src/monorepo/.cursor/agents/factory-reviewer-ux.agent.md +0 -11
- package/src/monorepo/.cursor/agents/factory-spec-writer.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-approver.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-builder.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-reviewer-code.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-reviewer-security.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-reviewer-ui.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-reviewer-ux.agent.md +0 -11
- package/src/monorepo/.github/agents/factory-spec-writer.agent.md +0 -11
- package/src/monorepo/.opencode/agents/factory-approver.md +0 -20
- package/src/monorepo/.opencode/agents/factory-builder.md +0 -20
- package/src/monorepo/.opencode/agents/factory-reviewer-code.md +0 -20
- package/src/monorepo/.opencode/agents/factory-reviewer-security.md +0 -20
- package/src/monorepo/.opencode/agents/factory-reviewer-ui.md +0 -20
- package/src/monorepo/.opencode/agents/factory-reviewer-ux.md +0 -20
- package/src/monorepo/.opencode/agents/factory-spec-writer.md +0 -20
- package/src/repo/.claude/agents/factory-approver.agent.md +0 -12
- package/src/repo/.claude/agents/factory-builder.agent.md +0 -12
- package/src/repo/.claude/agents/factory-reviewer-code.agent.md +0 -12
- package/src/repo/.claude/agents/factory-reviewer-security.agent.md +0 -12
- package/src/repo/.claude/agents/factory-reviewer-ui.agent.md +0 -12
- package/src/repo/.claude/agents/factory-reviewer-ux.agent.md +0 -12
- package/src/repo/.claude/agents/factory-spec-writer.agent.md +0 -12
- package/src/repo/.cursor/agents/factory-approver.agent.md +0 -11
- package/src/repo/.cursor/agents/factory-builder.agent.md +0 -11
- package/src/repo/.cursor/agents/factory-reviewer-code.agent.md +0 -11
- package/src/repo/.cursor/agents/factory-reviewer-security.agent.md +0 -11
- package/src/repo/.cursor/agents/factory-reviewer-ui.agent.md +0 -11
- package/src/repo/.cursor/agents/factory-reviewer-ux.agent.md +0 -11
- package/src/repo/.cursor/agents/factory-spec-writer.agent.md +0 -11
- package/src/repo/.github/agents/factory-approver.agent.md +0 -11
- package/src/repo/.github/agents/factory-builder.agent.md +0 -11
- package/src/repo/.github/agents/factory-reviewer-code.agent.md +0 -11
- package/src/repo/.github/agents/factory-reviewer-security.agent.md +0 -11
- package/src/repo/.github/agents/factory-reviewer-ui.agent.md +0 -11
- package/src/repo/.github/agents/factory-reviewer-ux.agent.md +0 -11
- package/src/repo/.github/agents/factory-spec-writer.agent.md +0 -11
- package/src/repo/.opencode/agents/factory-approver.md +0 -20
- package/src/repo/.opencode/agents/factory-builder.md +0 -20
- package/src/repo/.opencode/agents/factory-reviewer-code.md +0 -20
- package/src/repo/.opencode/agents/factory-reviewer-security.md +0 -20
- package/src/repo/.opencode/agents/factory-reviewer-ui.md +0 -20
- package/src/repo/.opencode/agents/factory-reviewer-ux.md +0 -20
- package/src/repo/.opencode/agents/factory-spec-writer.md +0 -20
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: implementer
|
|
3
3
|
description: "Implement code changes for a specific task. Follow TDD, write tests alongside code, and self-review before reporting completion."
|
|
4
|
-
tools: ["Read", "Grep", "Write", "Edit", "Bash(*)"]
|
|
4
|
+
tools: ["Read", "Grep", "Glob", "Write", "Edit", "Bash(*)"]
|
|
5
5
|
user-invocable: false
|
|
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", "Glob", "Write", "Bash(*)"]
|
|
5
5
|
user-invocable: false
|
|
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", "Glob", "Bash(*)"]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Reviewer Agent
|
|
@@ -11,14 +11,14 @@ argument-hint: "[--in-place] <feature request> | start [--in-place] <request | K
|
|
|
11
11
|
|
|
12
12
|
| Agent | When to use |
|
|
13
13
|
|-------|-------------|
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
14
|
+
| `planner` | Spec writer. Spec stage (`spec` mode) writes `spec.md`; plan stage (`plan` mode) writes `plan.md` and `tasks.md`. Brief: `.agents/skills/factory/roles/spec.md` |
|
|
15
|
+
| `implementer` | Builder. Build, repair, and rework: writes `build.md` in the job folder; its code goes in the build location. Brief: `.agents/skills/factory/roles/build.md` |
|
|
16
|
+
| `reviewer` | Code reviewer. Review round, `code` lens. Brief: `.agents/skills/factory/roles/review-code.md` |
|
|
17
|
+
| `reviewer` | Security reviewer, fresh context. Review round, `security` lens. Brief: `.agents/skills/factory/roles/review-security.md` |
|
|
18
|
+
| `reviewer` | UX reviewer. Review round, `ux` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ux.md` |
|
|
19
|
+
| `reviewer` | UI reviewer. Review round, `ui` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ui.md` |
|
|
20
|
+
| `reviewer` | Approver, fresh context. Approval gate: returns the decision, which the orchestrator saves as `decision.md`. Brief: `.agents/skills/factory/roles/approve.md` |
|
|
21
21
|
|
|
22
|
-
Dispatch each agent by
|
|
22
|
+
Dispatch each native agent by the name in the first column, and tell it to read the brief in the last column first. Reviewers and the approver return their report, and the orchestrator saves it. Copilot may show a display name; pick the agent with that name.
|
|
23
23
|
|
|
24
24
|
Follow the prompt defined in [.claude/prompt-snippets/factory.md](../prompt-snippets/factory.md).
|
|
@@ -105,10 +105,10 @@ The CLI runs the same patch flow without an AI session: `npx nitm-ai-dev-toolkit
|
|
|
105
105
|
|
|
106
106
|
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; neither it nor a V1 API fetch validates native V2. Plural keys are intentional.
|
|
107
107
|
|
|
108
|
-
- Use `agents`/`system`,
|
|
108
|
+
- Use `agents`/`system`, 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`.
|
|
109
109
|
- The version preflight must pass before changes. Back up V1 before native conversion (converted files are incompatible with V1). Preserve models/providers/user-global plugins. Only with approval, merge `"plugins": ["oh-my-opencode-slim@3.0.0"]` locally. Slim's separate strict schema keeps `prompt`/`permission`/`variant`; do not host-migrate it or silently upgrade the separate external starter.
|
|
110
110
|
- **Obsolete Ponytail cleanup (plan here; apply after backup and approval in Step 5):** Remove only known obsolete toolkit-owned `.opencode/plugins/ponytail.js`, `.opencode/plugins/ponytail.mjs`, and `.opencode/plugins/ponytail.ts` copies. Preserve unrelated local plugins. The OpenCode Ponytail plugin is installed globally by the operator; never add it to project config. If it is not installed globally, tell the operator to install it globally. Do not edit global config. Keep `opentmux` commented as V1-only. Do not port local APIs or add bridges; runtime integration is untested.
|
|
111
|
-
- 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: explicitly read snippets.
|
|
111
|
+
- 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: explicitly read snippets. Do not set a temperature; the current runner does not send one. Preserve `lsp: true`; use workspace lint/typecheck/compiler commands (no V2 LSP tools/diagnostics currently).
|
|
112
112
|
- `--env opencode` supplies minimal shared references without other harness activation. Activate on the next run/restart and report only installed-V2 checks actually run, not assumed runtime validation.
|
|
113
113
|
|
|
114
114
|
3. **Diff Analysis** (parallelizable — dispatch one subagent per category):
|
|
@@ -268,9 +268,9 @@ For the v3 route, merge only relevant native OpenCode host fields; preserve exis
|
|
|
268
268
|
}
|
|
269
269
|
```
|
|
270
270
|
|
|
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),
|
|
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), 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`.
|
|
272
272
|
|
|
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.
|
|
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. Do not set a temperature; the current runner does not send one. 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.
|
|
274
274
|
|
|
275
275
|
2. **Replace obsolete toolkit Ponytail (backup and approval only)**:
|
|
276
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.
|
|
@@ -178,10 +178,10 @@ You are helping to bootstrap AI instructions for this monorepo by analyzing the
|
|
|
178
178
|
|
|
179
179
|
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.
|
|
180
180
|
|
|
181
|
-
- After the version preflight passes, use `agents`/JSON `system` (Markdown bodies for file agents),
|
|
181
|
+
- After the version preflight passes, use `agents`/JSON `system` (Markdown bodies for file agents), 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
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.
|
|
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. Do not set a temperature; the current runner does not send one. Preserve `lsp: true`; use workspace lint/typecheck/compiler commands (no V2 LSP tools/diagnostics currently).
|
|
185
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):**
|
|
@@ -8,8 +8,8 @@ Follow the [factory orchestrator skill](../../.agents/skills/factory/SKILL.md) e
|
|
|
8
8
|
|
|
9
9
|
Ground rules:
|
|
10
10
|
|
|
11
|
-
- Run the orchestrator in this session. Dispatch the
|
|
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.
|
|
11
|
+
- Run the orchestrator in this session. Dispatch the native agents (`planner`, `implementer`, `reviewer`, see the skill's Subagent dispatch) for every spec, plan, build, review, and approval step, and do not write their files yourself. Reviewers and the approver return their reports, which you save.
|
|
12
|
+
- Only write `job.json`, `intake.md`, `spec-<k>.md`, `plan-<k>.md`, `rework-<k>.md`, the review files and `decision.md` from the reviewer and approver replies, 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.
|
|
@@ -11,14 +11,14 @@ argument-hint: "[--in-place] <feature request> | start [--in-place] <request | K
|
|
|
11
11
|
|
|
12
12
|
| Agent | When to use |
|
|
13
13
|
|-------|-------------|
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
14
|
+
| `planner` | Spec writer. Spec stage (`spec` mode) writes `spec.md`; plan stage (`plan` mode) writes `plan.md` and `tasks.md`. Brief: `.agents/skills/factory/roles/spec.md` |
|
|
15
|
+
| `implementer` | Builder. Build, repair, and rework: writes `build.md` in the job folder; its code goes in the build location. Brief: `.agents/skills/factory/roles/build.md` |
|
|
16
|
+
| `reviewer` | Code reviewer. Review round, `code` lens. Brief: `.agents/skills/factory/roles/review-code.md` |
|
|
17
|
+
| `reviewer` | Security reviewer, fresh context. Review round, `security` lens. Brief: `.agents/skills/factory/roles/review-security.md` |
|
|
18
|
+
| `reviewer` | UX reviewer. Review round, `ux` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ux.md` |
|
|
19
|
+
| `reviewer` | UI reviewer. Review round, `ui` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ui.md` |
|
|
20
|
+
| `reviewer` | Approver, fresh context. Approval gate: returns the decision, which the orchestrator saves as `decision.md`. Brief: `.agents/skills/factory/roles/approve.md` |
|
|
21
21
|
|
|
22
|
-
Dispatch each agent by
|
|
22
|
+
Dispatch each native agent by the name in the first column, and tell it to read the brief in the last column first. Reviewers and the approver return their report, and the orchestrator saves it. Copilot may show a display name; pick the agent with that name.
|
|
23
23
|
|
|
24
24
|
**CRITICAL: READ:** [.claude/prompt-snippets/factory.md](../../.claude/prompt-snippets/factory.md)
|
|
@@ -12,14 +12,14 @@ argument-hint: "[--in-place] <feature request> | start [--in-place] <request | K
|
|
|
12
12
|
|
|
13
13
|
| Agent | When to use |
|
|
14
14
|
|-------|-------------|
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
15
|
+
| `planner` | Spec writer. Spec stage (`spec` mode) writes `spec.md`; plan stage (`plan` mode) writes `plan.md` and `tasks.md`. Brief: `.agents/skills/factory/roles/spec.md` |
|
|
16
|
+
| `implementer` | Builder. Build, repair, and rework: writes `build.md` in the job folder; its code goes in the build location. Brief: `.agents/skills/factory/roles/build.md` |
|
|
17
|
+
| `reviewer` | Code reviewer. Review round, `code` lens. Brief: `.agents/skills/factory/roles/review-code.md` |
|
|
18
|
+
| `reviewer` | Security reviewer, fresh context. Review round, `security` lens. Brief: `.agents/skills/factory/roles/review-security.md` |
|
|
19
|
+
| `reviewer` | UX reviewer. Review round, `ux` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ux.md` |
|
|
20
|
+
| `reviewer` | UI reviewer. Review round, `ui` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ui.md` |
|
|
21
|
+
| `reviewer` | Approver, fresh context. Approval gate: returns the decision, which the orchestrator saves as `decision.md`. Brief: `.agents/skills/factory/roles/approve.md` |
|
|
22
22
|
|
|
23
|
-
Dispatch each agent by
|
|
23
|
+
Dispatch each native agent by the name in the first column, and tell it to read the brief in the last column first. Reviewers and the approver return their report, and the orchestrator saves it. Copilot may show a display name; pick the agent with that name.
|
|
24
24
|
|
|
25
25
|
**CRITICAL: READ:** [.claude/prompt-snippets/factory.md](../../.claude/prompt-snippets/factory.md).
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.3
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.1
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -1,9 +1,6 @@
|
|
|
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
|
-
request:
|
|
5
|
-
body:
|
|
6
|
-
temperature: 0.3
|
|
7
4
|
permissions:
|
|
8
5
|
- action: edit
|
|
9
6
|
resource: "*"
|
|
@@ -10,15 +10,15 @@ description: "Run an opt-in factory job: intake, spec and plan gates, build in a
|
|
|
10
10
|
|
|
11
11
|
| Agent | When to use |
|
|
12
12
|
|-------|-------------|
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
|
|
21
|
-
Dispatch each agent by
|
|
13
|
+
| `planner` | Spec writer. Spec stage (`spec` mode) writes `spec.md`; plan stage (`plan` mode) writes `plan.md` and `tasks.md`. Brief: `.agents/skills/factory/roles/spec.md` |
|
|
14
|
+
| `implementer` | Builder. Build, repair, and rework: writes `build.md` in the job folder; edits code at the build location. Brief: `.agents/skills/factory/roles/build.md` |
|
|
15
|
+
| `reviewer` | Code reviewer. Review round, `code` lens. Brief: `.agents/skills/factory/roles/review-code.md` |
|
|
16
|
+
| `reviewer` | Security reviewer, fresh context. Review round, `security` lens. Brief: `.agents/skills/factory/roles/review-security.md` |
|
|
17
|
+
| `reviewer` | UX reviewer. Review round, `ux` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ux.md` |
|
|
18
|
+
| `reviewer` | UI reviewer. Review round, `ui` lens (opt-in). Brief: `.agents/skills/factory/roles/review-ui.md` |
|
|
19
|
+
| `reviewer` | Approver, fresh context. Approval gate: returns the decision, which the orchestrator saves as `decision.md`. Brief: `.agents/skills/factory/roles/approve.md` |
|
|
20
|
+
|
|
21
|
+
Dispatch each native agent by the name in the first column, and tell it to read the brief in the last column first. Reviewers and the approver return their report, and the orchestrator saves it. Copilot may show a display name; pick the agent with that name.
|
|
22
22
|
|
|
23
23
|
## Arguments
|
|
24
24
|
|
package/src/monorepo/AGENTS.md
CHANGED
|
@@ -121,9 +121,9 @@ Each app has its own `AGENTS.md` with detailed patterns:
|
|
|
121
121
|
|
|
122
122
|
OpenCode use with toolkit 4.0.0 and later 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 marking the installed toolkit version (4.0.0 or later). Directory presence is not harness proof; other-harness-only setup is unaffected.
|
|
123
123
|
|
|
124
|
-
Use `agents`/`system`,
|
|
124
|
+
Use `agents`/`system`, 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. The OpenCode Ponytail plugin (`@dietrichgebert/ponytail`) is installed globally by the operator; the toolkit does not register it. Bootstrap may check for it and tell the operator to install it globally, but must never add it to project config. `opentmux` stays commented as V1-only. Remove only known obsolete toolkit Ponytail `.js`/`.mjs`/`.ts` copies after backup and approval, and preserve unrelated local plugins. No local API port or bridge is used; plugin/runtime integration is untested. The Claude Code hooks in `hooks/*.json` use `${CLAUDE_PLUGIN_ROOT}` and are plugin-only: they fire only when installed through the Ponytail plugin, not from project settings.
|
|
125
125
|
|
|
126
|
-
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 linked snippets.
|
|
126
|
+
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 linked snippets. Do not set a temperature; the current runner does not send one. 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.
|
|
127
127
|
|
|
128
128
|
## Detailed Instructions
|
|
129
129
|
|
|
@@ -366,7 +366,7 @@ Subagents are typically **agent-initiated** — the coordinator decides when to
|
|
|
366
366
|
|
|
367
367
|
### Factory (opt-in)
|
|
368
368
|
|
|
369
|
-
An optional file-driven pipeline for feature-sized work, alongside Feature Builder and TDD. Start it with `/factory <request>` in Claude Code, Copilot, Cursor, or OpenCode. The orchestrator reads the project and asks only the glaring questions before it creates anything, then asks you to continue or change the answers. Resume a feature with `/factory start <KEY | slug | job-id>`. Codex runs the orchestrator skill directly. Each job belongs to a feature folder in `docs/features/`, stops at a spec gate and a plan gate for your confirmation before any ticket or build, builds in its own git worktree unless you ask for `--in-place`, and moves its tickets when the project tracks them. The orchestrator is [.agents/skills/factory/SKILL.md](.agents/skills/factory/SKILL.md).
|
|
369
|
+
An optional file-driven pipeline for feature-sized work, alongside Feature Builder and TDD. Start it with `/factory <request>` in Claude Code, Copilot, Cursor, or OpenCode. The orchestrator reads the project and asks only the glaring questions before it creates anything, then asks you to continue or change the answers. Resume a feature with `/factory start <KEY | slug | job-id>`. Codex runs the orchestrator skill directly. Each job belongs to a feature folder in `docs/features/`, stops at a spec gate and a plan gate for your confirmation before any ticket or build, builds in its own git worktree unless you ask for `--in-place`, and moves its tickets when the project tracks them. The orchestrator is [.agents/skills/factory/SKILL.md](.agents/skills/factory/SKILL.md). It runs on the native `planner` (spec and plan), `implementer` (build, repair, and rework), and `reviewer` (the code, security, ux, and ui lenses, and approval) agents. Each role's Factory rules are in its brief in `.agents/skills/factory/roles/`. Setup, placeholders, and approval modes are in [factory/README.md](factory/README.md). Jobs name the affected apps and packages in their spec, and checks run for those with the filtered commands in [Commands](#commands).
|
|
370
370
|
|
|
371
371
|
## Documentation Requirements
|
|
372
372
|
|
package/src/monorepo/README.md
CHANGED
|
@@ -64,9 +64,9 @@ The template's local `plugins` array registers `opencode-mem` and `@tarquinen/op
|
|
|
64
64
|
|
|
65
65
|
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.
|
|
66
66
|
|
|
67
|
-
Use native `agents`/`system`,
|
|
67
|
+
Use native `agents`/`system`, 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.
|
|
68
68
|
|
|
69
|
-
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: read linked snippets explicitly.
|
|
69
|
+
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: read linked snippets explicitly. Do not set a temperature; the current runner does not send one. Preserve `lsp: true`; use workspace lint/typecheck/compiler commands (no V2 LSP tools/diagnostics currently).
|
|
70
70
|
|
|
71
71
|
`--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.
|
|
72
72
|
|
|
@@ -4,14 +4,14 @@ A file-driven pipeline for feature-sized work. One orchestrator session runs a f
|
|
|
4
4
|
|
|
5
5
|
The factory is **opt-in**. It sits alongside Feature Builder and TDD and changes nothing they do. Nothing runs until you invoke `/factory`. Quick fixes stay direct.
|
|
6
6
|
|
|
7
|
-
Orchestrator: [.agents/skills/factory/SKILL.md](../.agents/skills/factory/SKILL.md).
|
|
7
|
+
Orchestrator: [.agents/skills/factory/SKILL.md](../.agents/skills/factory/SKILL.md). It runs on the native `planner`, `implementer`, and `reviewer` agents, and its role briefs live in `.agents/skills/factory/roles/`. See [Harnesses](#harnesses).
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
11
|
1. **Install it.** The toolkit installer copies this folder into your project root as `factory/`.
|
|
12
12
|
2. **Document your commands in `AGENTS.md`.** Agents read setup, dev, test, lint, and build commands from there, and the dev command must document how to pass a port (a flag or an env var). In a monorepo, document the root commands and the filtered form for each app and package, for example `--filter=<app>`. Without them the factory stops and asks you. Edit `factory/worktree-bootstrap.md` for the setup each new worktree needs (see Build location).
|
|
13
|
-
3. **Replace the placeholders** below in `.agents/skills/factory/SKILL.md` and `.
|
|
14
|
-
4. **Commit** `factory/README.md`, `factory/.gitignore`, and the factory
|
|
13
|
+
3. **Replace the placeholders** below in `.agents/skills/factory/SKILL.md` and `.agents/skills/factory/roles/*.md`. Bootstrap does this when it runs.
|
|
14
|
+
4. **Commit** `factory/README.md`, `factory/.gitignore`, and the factory skill with its role briefs. Runtime state is ignored (see Layout). Feature docs in the feature folders are committed with the code.
|
|
15
15
|
5. **Run it** from your harness: `/factory <feature request>` to start from a request, or `/factory start <KEY | slug | job-id>` to pick up an existing feature. See [Harnesses](#harnesses) for each entry point.
|
|
16
16
|
|
|
17
17
|
## Placeholders
|
|
@@ -47,15 +47,17 @@ There is no queue. Start each feature with a request, a ticket key, or a slug.
|
|
|
47
47
|
|
|
48
48
|
## Harnesses
|
|
49
49
|
|
|
50
|
-
The orchestrator and agents are the same in every harness. Each harness has its own entry point
|
|
50
|
+
The orchestrator and agents are the same in every harness. Each harness has its own entry point. Every role runs on a native agent: `planner` for the spec writer, `implementer` for the builder, and `reviewer` for each review lens and the approver, with the lens or approval mode named in the dispatch. The role briefs in `.agents/skills/factory/roles/` hold the Factory rules.
|
|
51
51
|
|
|
52
|
-
| Harness | Entry point |
|
|
52
|
+
| Harness | Entry point | Native agents |
|
|
53
53
|
| --- | --- | --- |
|
|
54
54
|
| Claude Code | `/factory` (`.claude/commands/factory.md`) | `.claude/agents/` |
|
|
55
55
|
| GitHub Copilot | `/factory` prompt (`.github/prompts/factory.prompt.md`) | `.github/agents/` |
|
|
56
56
|
| Cursor | `/factory` (`.cursor/commands/factory.md`) | `.cursor/agents/` |
|
|
57
57
|
| OpenCode | `/factory` (`.opencode/commands/factory.md`) | `.opencode/agents/` |
|
|
58
|
-
| Codex | The factory skill (`.agents/skills/factory/SKILL.md`) | None. Runs
|
|
58
|
+
| Codex | The factory skill (`.agents/skills/factory/SKILL.md`) | None. Runs each role brief directly, one role at a time in one session (see Harness notes in SKILL.md) |
|
|
59
|
+
|
|
60
|
+
In OpenCode with the Slim plugin, `oracle` and `designer` are optional alternatives to `reviewer`, if you configure them as edit-denied. The default is the native agents.
|
|
59
61
|
|
|
60
62
|
## Feature folders and sizing
|
|
61
63
|
|
|
@@ -95,7 +97,7 @@ Any value other than exactly `auto` is treated as `human`.
|
|
|
95
97
|
|
|
96
98
|
## Build location
|
|
97
99
|
|
|
98
|
-
By default each job builds in its own git worktree on branch `factory/<id>`, so the main checkout stays free. A job's `job.json` records this in `worktree` (`true`) and the worktree path in `worktree_path`.
|
|
100
|
+
By default each job builds in its own git worktree on branch `factory/<id>`, so the main checkout stays free. A job's `job.json` records this in `worktree` (`true`) and the worktree path in `worktree_path`. Worktrees live in `.worktrees/<id>/` at the git root; the factory adds `.worktrees/` to `.gitignore` if it is missing.
|
|
99
101
|
|
|
100
102
|
### Worktree bootstrap
|
|
101
103
|
|
|
@@ -142,15 +144,15 @@ The parent and every sub-task move together. The orchestrator uses the project's
|
|
|
142
144
|
## How a job runs
|
|
143
145
|
|
|
144
146
|
1. **Intake.** For `/factory <request>`, the orchestrator reads the project and asks only the glaring questions. You answer them, then choose to continue or change the answers. Nothing is created before you continue.
|
|
145
|
-
2. **Spec.** `
|
|
147
|
+
2. **Spec.** `planner` (spec mode) inspects the code and writes `spec.md` with numbered acceptance criteria.
|
|
146
148
|
3. **Spec gate.** You confirm the spec, or request changes.
|
|
147
|
-
4. **Plan.** `
|
|
149
|
+
4. **Plan.** `planner` in plan mode writes `plan.md` (with the size) and `tasks.md` for large work.
|
|
148
150
|
5. **Plan gate.** You confirm the plan, or request changes. Nothing is ticketed or built before you confirm.
|
|
149
151
|
6. **Tickets and build location.** If tracked, the parent and sub-tasks are created and their keys are written into `tasks.md`. The folder is renamed to carry the key. Then a builder gets its own git worktree on branch `factory/<id>` (bootstrapped first, see Build location), or the in-place branch. The job's feature docs are committed on that branch.
|
|
150
152
|
7. **Build.** The builder follows TDD, ticks `tasks.md` as it completes tasks, writes `build.md`, and writes `qa.md`.
|
|
151
|
-
8. **Review.** Every configured lens reviews the branch,
|
|
153
|
+
8. **Review.** Every configured lens reviews the branch, and each reviewer's report is saved as `round-N/review-<lens>.md` with `VERDICT: PASS` or `VERDICT: CHANGES`.
|
|
152
154
|
9. **Repair.** Any `CHANGES` sends the builder back to fix it. Two repairs at most, so three review rounds. Then the job escalates to you.
|
|
153
|
-
10. **Approve.** `
|
|
155
|
+
10. **Approve.** `reviewer` in approval mode (fresh context) returns `APPROVE` or `ESCALATE`, and the orchestrator writes it to `decision.md`.
|
|
154
156
|
11. **Merge.** `local` mode: local only, never pushed. `push-mr` mode: push and open the request, then finish on the second approve (see Merge modes). `--no-ff` merge, the test commands for the affected apps and packages, then the worktree (if any) and branch are removed. Feature docs in the main checkout are set aside first (copies in `main-copies/`), so the merge brings in the branch's committed copies.
|
|
155
157
|
|
|
156
158
|
Jobs that escalate (`needs-human`) keep their branch and worktree so you can inspect them. Use `/factory rework` or `/factory approve` to continue.
|