@syntesseraai/opencode-feature-factory 0.6.16 → 0.6.18
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/README.md +17 -13
- package/command/mini-loop/documentation/document.md +1 -0
- package/command/mini-loop/documentation/gate.md +1 -0
- package/command/mini-loop/documentation/review.md +1 -0
- package/command/mini-loop/documentation/run.md +8 -3
- package/command/mini-loop/implementation/build.md +1 -0
- package/command/mini-loop/implementation/gate.md +1 -0
- package/command/mini-loop/implementation/review.md +1 -0
- package/command/mini-loop/implementation/run.md +8 -3
- package/command/mini-loop/start.md +5 -0
- package/command/pipeline/building/breakdown.md +1 -0
- package/command/pipeline/building/implement-batch.md +13 -3
- package/command/pipeline/building/run.md +5 -15
- package/command/pipeline/building/validate-batch.md +1 -0
- package/command/pipeline/complete.md +1 -0
- package/command/pipeline/documentation/document.md +1 -0
- package/command/pipeline/documentation/gate.md +2 -0
- package/command/pipeline/documentation/review.md +1 -0
- package/command/pipeline/documentation/run.md +4 -16
- package/command/pipeline/planning/gate.md +1 -0
- package/command/pipeline/planning/run.md +3 -15
- package/command/pipeline/planning/synthesize.md +4 -3
- package/command/pipeline/reviewing/gate.md +1 -0
- package/command/pipeline/reviewing/run.md +7 -12
- package/command/pipeline/reviewing/synthesize.md +1 -0
- package/command/pipeline/reviewing/triage.md +1 -0
- package/command/pipeline/start.md +1 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,7 +39,8 @@ It also updates `~/.config/opencode/opencode.json` non-destructively by merging
|
|
|
39
39
|
- There is no dedicated `@pipeline` intake agent; the command tree handles orchestration autonomously.
|
|
40
40
|
- Orchestration is implemented by the command tree under `command/pipeline/` using subtask2 primitives (`return`, `parallel`, `loop`).
|
|
41
41
|
- Orchestration wrapper commands (`/pipeline/start`, `/pipeline/*/run`, `/pipeline/complete`) pin `agent: general` to avoid recursive self-invocation before phase-specific delegation begins.
|
|
42
|
-
- Coordinator and synthesis model defaults to ChatGPT 5.4
|
|
42
|
+
- Coordinator and synthesis model defaults to ChatGPT 5.4 via frontmatter `model:` declarations in orchestrator commands.
|
|
43
|
+
- All orchestrator commands include an explicit **orchestrator constraint**: they must NOT directly read, edit, modify, write, or create any code/config/repository files — they only dispatch sub-commands, pass structured data via `{as:name}` / `$RESULT[name]`, and evaluate gate/loop conditions.
|
|
43
44
|
|
|
44
45
|
## Command Tree
|
|
45
46
|
|
|
@@ -56,20 +57,23 @@ It also updates `~/.config/opencode/opencode.json` non-destructively by merging
|
|
|
56
57
|
|
|
57
58
|
## Model Routing
|
|
58
59
|
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
Models are declared in each command's frontmatter (`model:` field). Multi-model fan-out targets (`plan.md`, `review.md`) use per-invocation `{model:...}` overrides since they are invoked multiple times with different models.
|
|
61
|
+
|
|
62
|
+
| Role | Model | Commands |
|
|
63
|
+
| ----------------------- | --------------------------- | --------------------------------------------------------------------------- |
|
|
64
|
+
| Orchestration/reasoning | `openai/gpt-5.4` | All `run.md`, `start.md`, `complete.md`, gates, triage, synthesize, confirm |
|
|
65
|
+
| Implementation | `openai/gpt-5.3-codex` | `implement-batch`, `build`, `document` |
|
|
66
|
+
| Architecture analysis | `anthropic/claude-opus-4-6` | `breakdown`, review fan-out (opus slot) |
|
|
67
|
+
| Validation | `opencode/gemini-3.1-pro` | `validate-batch`, documentation review, review fan-out (gemini slot) |
|
|
68
|
+
| Multi-model fan-out | per-invocation | `plan.md`, `review.md` |
|
|
69
|
+
|
|
66
70
|
- Pipeline stages pass intermediate artifacts with `{as:name}` and `$RESULT[name]` (minimal file persistence)
|
|
67
|
-
- Planning (with architecture validation):
|
|
68
|
-
- Implementation:
|
|
69
|
-
- Review (with architecture validation):
|
|
71
|
+
- Planning fan-out (with architecture validation): opus, gemini, and codex models in parallel
|
|
72
|
+
- Implementation: codex via frontmatter model declaration in `implement-batch.md`, with parallel `building` sub-agents per independent task within each batch
|
|
73
|
+
- Review fan-out (with architecture validation): opus, gemini, and codex models in parallel
|
|
70
74
|
- Rework path: `/pipeline/reviewing/run` re-enters implementation via `/pipeline/building/implement-batch` when gate status is `REWORK`
|
|
71
|
-
- Documentation stage:
|
|
72
|
-
- Documentation stage skill usage:
|
|
75
|
+
- Documentation stage: codex updates documentation, gemini reviews docs, and orchestrator (`gpt-5.4`) supervises a bounded loop until approved
|
|
76
|
+
- Documentation stage skill usage: codex pass loads `ff-todo-management`, `ff-mini-plan`; gemini review pass loads `ff-report-templates` and `ff-severity-classification`
|
|
73
77
|
|
|
74
78
|
## Quality Gates
|
|
75
79
|
|
|
@@ -2,18 +2,23 @@
|
|
|
2
2
|
description: Run documentation mini-loop until gate passes
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
loop:
|
|
6
7
|
max: 5
|
|
7
8
|
until: documentation gate is APPROVED
|
|
8
9
|
return:
|
|
9
|
-
- /mini-loop/documentation/document {
|
|
10
|
-
- /mini-loop/documentation/review {
|
|
11
|
-
- /mini-loop/documentation/gate
|
|
10
|
+
- /mini-loop/documentation/document {as:mini-doc-pass} $ARGUMENTS
|
|
11
|
+
- /mini-loop/documentation/review {as:mini-doc-review} $RESULT[mini-doc-pass]
|
|
12
|
+
- /mini-loop/documentation/gate $RESULT[mini-doc-review]
|
|
12
13
|
- If `MINI_LOOP_DOCUMENTATION_GATE=REWORK`, continue loop with prior documentation review feedback included in the next documentation pass.
|
|
13
14
|
---
|
|
14
15
|
|
|
15
16
|
Execute the documentation mini-loop for the approved implementation context.
|
|
16
17
|
|
|
18
|
+
Orchestrator constraint:
|
|
19
|
+
|
|
20
|
+
This command is a **dispatch orchestrator only**. You must NOT directly read, edit, modify, write, or create any code files, configuration files, or repository files. Your sole responsibility is to invoke the declared sub-commands (`document`, `review`, `gate`), pass structured data between them via `{as:name}` / `$RESULT[name]`, evaluate gate/loop conditions, and route execution. All file-touching work belongs exclusively to the leaf sub-commands.
|
|
21
|
+
|
|
17
22
|
Stop criteria:
|
|
18
23
|
|
|
19
24
|
- approve when `MINI_LOOP_DOCUMENTATION_GATE=APPROVED`
|
|
@@ -2,18 +2,23 @@
|
|
|
2
2
|
description: Run implementation mini-loop until gate passes
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
loop:
|
|
6
7
|
max: 10
|
|
7
8
|
until: implementation gate is APPROVED
|
|
8
9
|
return:
|
|
9
|
-
- /mini-loop/implementation/build {
|
|
10
|
-
- /mini-loop/implementation/review {
|
|
11
|
-
- /mini-loop/implementation/gate
|
|
10
|
+
- /mini-loop/implementation/build {as:mini-impl-build} $ARGUMENTS
|
|
11
|
+
- /mini-loop/implementation/review {as:mini-impl-review} $RESULT[mini-impl-build]
|
|
12
|
+
- /mini-loop/implementation/gate $RESULT[mini-impl-review]
|
|
12
13
|
- If `MINI_LOOP_IMPLEMENTATION_GATE=REWORK`, continue loop with prior review feedback included in the next build input.
|
|
13
14
|
---
|
|
14
15
|
|
|
15
16
|
Execute the implementation mini-loop for the active requirements/rework context.
|
|
16
17
|
|
|
18
|
+
Orchestrator constraint:
|
|
19
|
+
|
|
20
|
+
This command is a **dispatch orchestrator only**. You must NOT directly read, edit, modify, write, or create any code files, configuration files, or repository files. Your sole responsibility is to invoke the declared sub-commands (`build`, `review`, `gate`), pass structured data between them via `{as:name}` / `$RESULT[name]`, evaluate gate/loop conditions, and route execution. All file-touching work belongs exclusively to the leaf sub-commands.
|
|
21
|
+
|
|
17
22
|
Stop criteria:
|
|
18
23
|
|
|
19
24
|
- approve when `MINI_LOOP_IMPLEMENTATION_GATE=APPROVED`
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
description: Mini-loop two-stage workflow entrypoint
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
return:
|
|
6
7
|
- /mini-loop/implementation/run {as:implementation-phase} $ARGUMENTS
|
|
7
8
|
- /mini-loop/documentation/run $RESULT[implementation-phase]
|
|
@@ -16,3 +17,7 @@ Execution requirements:
|
|
|
16
17
|
1. Always complete implementation approval before starting documentation.
|
|
17
18
|
2. Use `{as:name}` and `$RESULT[name]` for all handoffs.
|
|
18
19
|
3. Keep loop decisions deterministic and gate-driven.
|
|
20
|
+
|
|
21
|
+
Orchestrator constraint:
|
|
22
|
+
|
|
23
|
+
This command is a **top-level dispatch orchestrator only**. You must NOT directly read, edit, modify, write, or create any code files, configuration files, or repository files. Your sole responsibility is to invoke the declared phase commands in order, pass structured data between them via `{as:name}` / `$RESULT[name]`, and evaluate gate conditions. All file-touching work belongs exclusively to the leaf sub-commands within each phase.
|
|
@@ -2,15 +2,25 @@
|
|
|
2
2
|
description: Implement validated batches with Codex
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: building
|
|
5
|
+
model: openai/gpt-5.3-codex
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
Read `BATCHES` input from `$ARGUMENTS` and implement
|
|
8
|
+
Read `BATCHES` input from `$ARGUMENTS` and implement each batch.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Execution strategy:
|
|
11
|
+
|
|
12
|
+
1. Process batches in dependency order — a batch may only start after all batches it depends on have completed.
|
|
13
|
+
2. Within each batch, launch **parallel sub-agents** (type: `building`) — one per task — for tasks that have no mutual dependency edges. Use concurrent tool calls to maximize throughput.
|
|
14
|
+
3. Tasks within the same batch that share file targets or have explicit dependency edges must run sequentially.
|
|
15
|
+
4. Wait for all tasks in a batch to complete before starting the next batch.
|
|
16
|
+
|
|
17
|
+
For each task (inside its sub-agent):
|
|
10
18
|
|
|
11
19
|
1. implement code changes
|
|
12
20
|
2. add/update tests
|
|
13
21
|
3. run lint/typecheck/tests for impacted scope
|
|
14
|
-
4. return a structured completion report
|
|
22
|
+
4. return a structured completion report (no file persistence)
|
|
23
|
+
|
|
24
|
+
After all batches complete, merge the per-task completion reports into a single `IMPLEMENTATION_REPORT` output.
|
|
15
25
|
|
|
16
26
|
This command performs implementation only; reviewing is triggered by `/pipeline/building/run` and by rework flow.
|
|
@@ -2,20 +2,10 @@
|
|
|
2
2
|
description: Run build phase from approved plan
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
return:
|
|
6
|
-
- /pipeline/building/breakdown {
|
|
7
|
-
- /pipeline/building/validate-batch {
|
|
8
|
-
- /pipeline/building/implement-batch {
|
|
9
|
-
- /pipeline/reviewing/run {
|
|
7
|
+
- /pipeline/building/breakdown {as:build-tasks} $ARGUMENTS
|
|
8
|
+
- /pipeline/building/validate-batch {as:build-batches} $RESULT[build-tasks]
|
|
9
|
+
- /pipeline/building/implement-batch {as:build-implementation} $RESULT[build-batches]
|
|
10
|
+
- /pipeline/reviewing/run {as:review-phase} $RESULT[build-implementation]
|
|
10
11
|
---
|
|
11
|
-
|
|
12
|
-
Run build phase from the approved final plan passed in `$ARGUMENTS`.
|
|
13
|
-
|
|
14
|
-
Rules:
|
|
15
|
-
|
|
16
|
-
1. If `PLANNING_PROCEED=NO` appears in input, stop and return user-confirmation-required context instead of executing build tasks.
|
|
17
|
-
2. Maintain dependency-safe batching.
|
|
18
|
-
3. Only parallelize tasks with no dependency edges.
|
|
19
|
-
4. Pass intermediate outputs via `{as:name}` and `$RESULT[name]`.
|
|
20
|
-
5. Implementation is codex-focused via explicit model override.
|
|
21
|
-
6. Send completed implementation output into reviewing via `/pipeline/reviewing/run`.
|
|
@@ -2,25 +2,13 @@
|
|
|
2
2
|
description: Run documentation loop after review approval
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
loop:
|
|
6
7
|
max: 5
|
|
7
8
|
until: documentation updates are approved by documentation reviewer with zero unresolved documentation issues
|
|
8
9
|
return:
|
|
9
|
-
- /pipeline/documentation/document {
|
|
10
|
-
- /pipeline/documentation/review {
|
|
11
|
-
- /pipeline/documentation/gate
|
|
10
|
+
- /pipeline/documentation/document {as:doc-pass} $ARGUMENTS
|
|
11
|
+
- /pipeline/documentation/review {as:doc-review} $RESULT[doc-pass]
|
|
12
|
+
- /pipeline/documentation/gate $RESULT[doc-review]
|
|
12
13
|
- If `DOCUMENTATION_GATE=REWORK`, continue loop with review feedback for the next document pass.
|
|
13
14
|
---
|
|
14
|
-
|
|
15
|
-
Execute the documentation stage for the current approved implementation.
|
|
16
|
-
|
|
17
|
-
Skill requirements:
|
|
18
|
-
|
|
19
|
-
1. ChatGPT supervisor must load `ff-todo-management` to track documentation actions and rework items per iteration.
|
|
20
|
-
2. Documentation reviewer should use `ff-severity-classification` when reporting documentation issues.
|
|
21
|
-
|
|
22
|
-
Stop criteria:
|
|
23
|
-
|
|
24
|
-
- approve when documentation reviewer confirms documentation is complete, accurate, and repository docs are updated
|
|
25
|
-
- continue loop while unresolved documentation issues exist and iteration < 5
|
|
26
|
-
- escalate to user when iteration reaches 5 without approval
|
|
@@ -2,24 +2,12 @@
|
|
|
2
2
|
description: Execute one planning iteration
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
parallel:
|
|
6
7
|
- /pipeline/planning/plan {model:anthropic/claude-opus-4-6 && as:plan-opus} [MODEL_TAG:opus] $ARGUMENTS
|
|
7
8
|
- /pipeline/planning/plan {model:opencode/gemini-3.1-pro && as:plan-gemini} [MODEL_TAG:gemini] $ARGUMENTS
|
|
8
9
|
- /pipeline/planning/plan {model:openai/gpt-5.3-codex && as:plan-codex} [MODEL_TAG:codex] $ARGUMENTS
|
|
9
10
|
return:
|
|
10
|
-
- /pipeline/planning/synthesize {
|
|
11
|
-
- /pipeline/planning/gate
|
|
11
|
+
- /pipeline/planning/synthesize {as:plan-consensus} $RESULT[plan-opus] $RESULT[plan-gemini] $RESULT[plan-codex]
|
|
12
|
+
- /pipeline/planning/gate $RESULT[plan-consensus]
|
|
12
13
|
---
|
|
13
|
-
|
|
14
|
-
Run one complete planning iteration for the active pipeline.
|
|
15
|
-
|
|
16
|
-
Requirements brief:
|
|
17
|
-
|
|
18
|
-
$ARGUMENTS
|
|
19
|
-
|
|
20
|
-
Rules:
|
|
21
|
-
|
|
22
|
-
1. Keep each planner output structured and concise for synthesis.
|
|
23
|
-
2. Pass outputs using `{as:name}` and `$RESULT[name]` rather than intermediate files.
|
|
24
|
-
3. Each planning model must include architecture validation in its proposal.
|
|
25
|
-
4. Continue only through gate outcomes defined in `/pipeline/planning/gate`.
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
description: Synthesize planning consensus
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: planning
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
Synthesize the three model outputs from planning fan-out:
|
|
8
9
|
|
|
9
|
-
- `$RESULT[plan-
|
|
10
|
-
- `$RESULT[plan-
|
|
11
|
-
- `$RESULT[plan-
|
|
10
|
+
- `$RESULT[plan-opus]`
|
|
11
|
+
- `$RESULT[plan-gemini]`
|
|
12
|
+
- `$RESULT[plan-codex]`
|
|
12
13
|
|
|
13
14
|
Produce a consensus report (no file persistence).
|
|
14
15
|
|
|
@@ -2,23 +2,18 @@
|
|
|
2
2
|
description: Run review loop for completed tasks
|
|
3
3
|
subtask: true
|
|
4
4
|
agent: general
|
|
5
|
+
model: openai/gpt-5.4
|
|
5
6
|
loop:
|
|
6
7
|
max: 10
|
|
7
8
|
until: all tasks in the active batch are approved with confidence >=95 and zero unresolved issues
|
|
8
9
|
return:
|
|
9
|
-
- /pipeline/reviewing/triage {
|
|
10
|
+
- /pipeline/reviewing/triage {as:review-brief} $ARGUMENTS
|
|
11
|
+
parallel:
|
|
10
12
|
- /pipeline/reviewing/review {model:anthropic/claude-opus-4-6 && as:review-opus} [MODEL_TAG:opus] $RESULT[review-brief]
|
|
11
13
|
- /pipeline/reviewing/review {model:opencode/gemini-3.1-pro && as:review-gemini} [MODEL_TAG:gemini] $RESULT[review-brief]
|
|
12
14
|
- /pipeline/reviewing/review {model:openai/gpt-5.3-codex && as:review-codex} [MODEL_TAG:codex] $RESULT[review-brief]
|
|
13
|
-
|
|
14
|
-
- /pipeline/reviewing/
|
|
15
|
-
-
|
|
15
|
+
return:
|
|
16
|
+
- /pipeline/reviewing/synthesize {as:review-synthesis} $RESULT[review-opus] $RESULT[review-gemini] $RESULT[review-codex]
|
|
17
|
+
- /pipeline/reviewing/gate $RESULT[review-synthesis]
|
|
18
|
+
- If `REVIEW_GATE=REWORK`, invoke `/pipeline/building/implement-batch` to apply fixes before the next loop iteration.
|
|
16
19
|
---
|
|
17
|
-
|
|
18
|
-
Execute the review loop for the current completed tasks/rework report.
|
|
19
|
-
|
|
20
|
-
Stop criteria:
|
|
21
|
-
|
|
22
|
-
- approve when `>=95` confidence and zero unresolved issues
|
|
23
|
-
- continue loop while unresolved issues exist and iteration < 10
|
|
24
|
-
- escalate to user when iteration reaches 10 without approval
|
|
@@ -4,22 +4,9 @@ subtask: true
|
|
|
4
4
|
agent: general
|
|
5
5
|
model: openai/gpt-5.4
|
|
6
6
|
return:
|
|
7
|
-
- /pipeline/planning/run {as:planning-phase && loop:5 && until:planning gate is APPROVED or planning gate is BLOCKED and waiting for user confirmation}
|
|
7
|
+
- /pipeline/planning/run {as:planning-phase && loop:5 && until:planning gate is APPROVED or planning gate is BLOCKED and waiting for user confirmation} $ARGUMENTS
|
|
8
8
|
- /pipeline/planning/confirm {as:planning-decision} $RESULT[planning-phase]
|
|
9
9
|
- /pipeline/building/run {as:build-phase} $RESULT[planning-decision]
|
|
10
10
|
- /pipeline/documentation/run $RESULT[build-phase]
|
|
11
11
|
- /pipeline/complete
|
|
12
12
|
---
|
|
13
|
-
|
|
14
|
-
Start the deterministic Feature Factory pipeline with this requirements brief:
|
|
15
|
-
|
|
16
|
-
$ARGUMENTS
|
|
17
|
-
|
|
18
|
-
Execution requirements:
|
|
19
|
-
|
|
20
|
-
1. You are already inside `/pipeline/start`; do not invoke `/pipeline/start` again.
|
|
21
|
-
2. Execute the declared return chain directly from this command.
|
|
22
|
-
3. Use `{as:name}` and `$RESULT[name]` for phase-to-phase handoff.
|
|
23
|
-
4. Avoid file persistence for intermediate artifacts unless a command explicitly requires audit snapshots.
|
|
24
|
-
5. Use command chaining, parallel fan-out, and loop gates from the `/pipeline/...` command tree.
|
|
25
|
-
6. Do not skip planning, review, and documentation gates.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@syntesseraai/opencode-feature-factory",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.18",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "OpenCode plugin for Feature Factory agents - provides sub-agents and skills for validation, review, security, and architecture assessment",
|
|
7
7
|
"license": "MIT",
|