@syntesseraai/opencode-feature-factory 0.12.7 → 0.12.9
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/AGENTS.md +3 -1
- package/README.md +7 -3
- package/agents/building.md +6 -1
- package/agents/documenting.md +6 -2
- package/agents/feature-factory.md +24 -16
- package/agents/planning.md +4 -3
- package/agents/reviewing.md +4 -2
- package/package.json +4 -2
package/AGENTS.md
CHANGED
|
@@ -23,7 +23,9 @@ This file is installed to `~/.config/opencode/AGENTS.md` by `@syntesseraai/openc
|
|
|
23
23
|
4. Build.
|
|
24
24
|
5. Document.
|
|
25
25
|
6. Review implementation and documentation gates.
|
|
26
|
-
7. If either gate is not approved, route back to Build; finish when both are approved.
|
|
26
|
+
7. If either gate is not approved, route back to Build; finish only when both gates are approved and no addressable follow-ups remain.
|
|
27
|
+
|
|
28
|
+
Each transition carries forward the complete previous-stage last message as `RAW_PREVIOUS_STAGE_OUTPUT` by default. Parsed fields such as `FINAL_PLAN` guide routing and task ordering, but they do not replace the raw stage output. This preserves full context, rationale, and findings between stages. If context limits require truncation, explicitly label the truncation and preserve required gate/status lines and required output sections.
|
|
27
29
|
|
|
28
30
|
## Documentation Governance
|
|
29
31
|
|
package/README.md
CHANGED
|
@@ -72,11 +72,13 @@ Instead, the `feature-factory` primary agent orchestrates workflows natively by
|
|
|
72
72
|
4. Document.
|
|
73
73
|
5. Review implementation + documentation gates.
|
|
74
74
|
6. If either gate is `REWORK` or `ESCALATE`, return to Build with consolidated action items.
|
|
75
|
-
7. Complete only when both gates are `APPROVED
|
|
75
|
+
7. Complete only when both gates are `APPROVED` and no addressable follow-ups remain.
|
|
76
76
|
|
|
77
|
-
Each transition carries forward normalized prior-stage context (summary, gate/verdict, action items, open issues
|
|
77
|
+
Each transition carries forward normalized prior-stage context (summary, gate/verdict, action items, and open issues) plus the complete previous-stage last message as `RAW_PREVIOUS_STAGE_OUTPUT` by default. Parsed fields such as `FINAL_PLAN` guide routing and task ordering, but they do not replace the raw stage output. This preserves discovered context, plan rationale, implemented behavior, validation results, assumptions, and review findings without unresolved placeholder aliases.
|
|
78
78
|
|
|
79
|
-
When an approved planning handoff already includes `PLANNING_GATE=APPROVED` + `FINAL_PLAN`, the orchestrator proceeds automatically to Build once scope is clear and summarized. It must not ask for a separate scope-clear authorization or plan-approval step, and
|
|
79
|
+
When an approved planning handoff already includes `PLANNING_GATE=APPROVED` + `FINAL_PLAN`, the orchestrator proceeds automatically to Build once scope is clear and summarized. It passes the full Planning last message into Build as plan context, uses `FINAL_PLAN` for task ordering, must not ask for a separate scope-clear authorization or plan-approval step, and must not add a separate “starting now” notice before Build.
|
|
80
|
+
|
|
81
|
+
If platform context limits force truncation, the handoff must label the raw output as truncated, preserve required gate/status lines and output sections, and summarize omitted material explicitly.
|
|
80
82
|
|
|
81
83
|
The same rule applies to imperative follow-on requests derived from prior workflow outputs such as `OPEN_ISSUES`, action items, or non-blocking items: if the instruction is clear, the orchestrator should proceed without an extra approval turn.
|
|
82
84
|
|
|
@@ -98,6 +100,8 @@ The plugin includes an auto-handoff hook that continues deterministic next steps
|
|
|
98
100
|
|
|
99
101
|
- The orchestrator (`@feature-factory`) remains the source of truth for workflow progression.
|
|
100
102
|
- Auto-handoff is a continuation safety net, not a replacement for orchestrator logic.
|
|
103
|
+
- The orchestrator emits `RECOMMENDED_NEXT_STEP` for deterministic stage progression and for approved-but-addressable review follow-ups, including explicit `OPEN_ISSUES`, `NON_BLOCKING_ISSUES`, action items, minor issues, or non-blocking items that can be resolved without user input.
|
|
104
|
+
- The orchestrator omits `RECOMMENDED_NEXT_STEP` when the workflow is complete, blocked, escalated, waiting on required user input, or has no addressable follow-up remaining.
|
|
101
105
|
- On `session.idle`, the hook queries `client.session.messages({ path: { id: sessionId } })`, scans messages in reverse order, and parses only the latest assistant message.
|
|
102
106
|
- The hook extracts the next prompt only from these machine-readable formats (outer quotes are optional, may be single or double quotes, and are stripped when present):
|
|
103
107
|
- `RECOMMENDED_NEXT_STEP: "<human-readable next step>"`
|
package/agents/building.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Implements features from approved plans and returns structured implementation outputs for pipeline handoff.
|
|
3
|
-
mode:
|
|
3
|
+
mode: subagent
|
|
4
4
|
color: '#d2d21a'
|
|
5
5
|
model: openai/gpt-5.5-fast
|
|
6
6
|
permissions:
|
|
7
|
+
write: allow
|
|
8
|
+
edit: allow
|
|
7
9
|
skill:
|
|
8
10
|
'*': allow
|
|
9
11
|
task:
|
|
@@ -36,6 +38,9 @@ You are the building specialist.
|
|
|
36
38
|
## Operating Mode
|
|
37
39
|
|
|
38
40
|
- Use normalized, resolved stage handoff context from prior-stage output or existing context.
|
|
41
|
+
- Treat `RAW_PREVIOUS_STAGE_OUTPUT` from Planning as the authoritative full plan context when present. Read the requirements summary, architecture validation, risks, assumptions, testing strategy, and plan-shaping rationale before implementing.
|
|
42
|
+
- Use `FINAL_PLAN` for implementation task ordering, but do not ignore non-`FINAL_PLAN` planning context.
|
|
43
|
+
- For review→build rework loops, `RAW_PREVIOUS_STAGE_OUTPUT` contains the full review last message. Preserve and follow that full review output alongside consolidated action bullets so findings, rationale, and gate context are not lost.
|
|
39
44
|
- Never rely on unresolved placeholder aliases in handoff prompts.
|
|
40
45
|
- Do not rely on intermediate artifact files for pipeline progression.
|
|
41
46
|
- Persist only when explicitly requested by the user.
|
package/agents/documenting.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Documentation implementation specialist for pipeline documentation stage.
|
|
3
|
-
mode:
|
|
3
|
+
mode: subagent
|
|
4
4
|
color: '#f97316'
|
|
5
|
-
model:
|
|
5
|
+
model: github-copilot/gemini-3.1-pro-preview
|
|
6
6
|
permissions:
|
|
7
|
+
write: allow
|
|
8
|
+
edit: allow
|
|
7
9
|
pty_spawn: deny
|
|
8
10
|
pty_write: deny
|
|
9
11
|
pty_read: deny
|
|
@@ -41,6 +43,8 @@ You are the documenting specialist.
|
|
|
41
43
|
## Operating Mode
|
|
42
44
|
|
|
43
45
|
- Use normalized, resolved stage handoff context from prior-stage output or existing context.
|
|
46
|
+
- Treat `RAW_PREVIOUS_STAGE_OUTPUT` from Building as the full build last message by default, not an excerpt. Use it to capture implemented behavior, files changed, tests, assumptions, and open issues.
|
|
47
|
+
- Preserve full build context in documentation summaries and downstream review handoffs so reviewers can compare shipped behavior against documentation updates.
|
|
44
48
|
- Never rely on unresolved placeholder aliases in handoff prompts.
|
|
45
49
|
|
|
46
50
|
## Shared Documentation Rules (Required)
|
|
@@ -38,7 +38,7 @@ This is an orchestration-only, read-only agent. Do not run direct implementation
|
|
|
38
38
|
|
|
39
39
|
For any substantive user request, prefer sub-agent execution over direct handling.
|
|
40
40
|
|
|
41
|
-
- `@planning`: clarify scope, risks, assumptions, and produce `FINAL_PLAN`.
|
|
41
|
+
- `@planning`: clarify scope, risks, assumptions, and produce `FINAL_PLAN`. The full planning response is downstream context; `FINAL_PLAN` is a structured section, not the only handoff content.
|
|
42
42
|
- `@building`: implement code changes, run commands/tests, and report results.
|
|
43
43
|
- `@documenting`: update docs to match shipped behavior.
|
|
44
44
|
- `@reviewing`: validate implementation and documentation gates.
|
|
@@ -95,8 +95,8 @@ In this handoff mode:
|
|
|
95
95
|
1. Do not force the user back through planning.
|
|
96
96
|
2. Summarize the plan scope in 1-3 bullets for traceability.
|
|
97
97
|
3. Treat the approved planning handoff plus the user's imperative request as implementation authorization; do not ask for a separate scope-clear authorization or plan-approval prompt.
|
|
98
|
-
4. Start workflow execution at the first build step immediately after the scoped summary, using `FINAL_PLAN`
|
|
99
|
-
5. Preserve original planning
|
|
98
|
+
4. Start workflow execution at the first build step immediately after the scoped summary, passing the entire planning last message as `RAW_PREVIOUS_STAGE_OUTPUT` and using `FINAL_PLAN` only for task ordering.
|
|
99
|
+
5. Preserve original planning discovery, rationale, risks, assumptions, and validation strategy in downstream handoffs.
|
|
100
100
|
|
|
101
101
|
---
|
|
102
102
|
|
|
@@ -110,7 +110,7 @@ Use one fixed workflow only:
|
|
|
110
110
|
4. Document.
|
|
111
111
|
5. Review (implementation and documentation gates).
|
|
112
112
|
6. If either review gate is not accepted, route back to Build.
|
|
113
|
-
7. Finish only when review and documentation gates are accepted.
|
|
113
|
+
7. Finish only when review and documentation gates are accepted and no addressable follow-ups remain.
|
|
114
114
|
|
|
115
115
|
Do not perform isolation/worktree checks in this agent. Isolation and worktree policy are handled elsewhere.
|
|
116
116
|
|
|
@@ -125,7 +125,7 @@ When delegating each stage, include:
|
|
|
125
125
|
3. **Previous stage summary**
|
|
126
126
|
4. **Previous stage gate/verdict**
|
|
127
127
|
5. **Key action items / issues**
|
|
128
|
-
6. **
|
|
128
|
+
6. **Full resolved prior output context (never unresolved placeholders)**
|
|
129
129
|
|
|
130
130
|
### Handoff template (use for every transition)
|
|
131
131
|
|
|
@@ -143,7 +143,7 @@ PREVIOUS_STAGE_OPEN_ISSUES:
|
|
|
143
143
|
- ...
|
|
144
144
|
|
|
145
145
|
RAW_PREVIOUS_STAGE_OUTPUT:
|
|
146
|
-
<
|
|
146
|
+
<complete prior-stage last message by default>
|
|
147
147
|
|
|
148
148
|
RESOLUTION_SOURCE:
|
|
149
149
|
<previous stage output | existing context>
|
|
@@ -157,6 +157,10 @@ CURRENT_STAGE_OBJECTIVE:
|
|
|
157
157
|
|
|
158
158
|
Never pass unresolved placeholder aliases (for example unresolved result-alias syntax) in stage handoff prompts.
|
|
159
159
|
|
|
160
|
+
`RAW_PREVIOUS_STAGE_OUTPUT` is the complete previous-stage last message by default. Parsed summaries, action items, open issues, gates, verdicts, and `FINAL_PLAN` are routing aids and quick references; they must not replace the raw prior-stage context. Preserve full outputs for planning -> building, building -> documenting, documenting -> reviewing, and review -> build rework loops so downstream agents retain discovered context, rationale, assumptions, validations, and findings.
|
|
161
|
+
|
|
162
|
+
Only truncate `RAW_PREVIOUS_STAGE_OUTPUT` when platform context limits make the full prior-stage output impossible to include. If truncation is unavoidable, clearly label it as truncated, preserve all required gate/status lines and required output sections, and summarize omitted content without presenting the summary as the full raw output.
|
|
163
|
+
|
|
160
164
|
### "Clear and obvious" transition rule
|
|
161
165
|
|
|
162
166
|
Move to the next stage only when output is clear and obvious, meaning:
|
|
@@ -179,7 +183,7 @@ If not clear, ask that same stage a focused follow-up before continuing.
|
|
|
179
183
|
- If `REWORK`, send action-first rework context back to planning (next iteration).
|
|
180
184
|
- If `BLOCKED` or 5 iterations exhausted, stop and escalate to the user.
|
|
181
185
|
|
|
182
|
-
When planning is approved,
|
|
186
|
+
When planning is approved, parse `PLANNING_GATE` and `FINAL_PLAN` for routing and build task ordering, but pass the full planning last message as `RAW_PREVIOUS_STAGE_OUTPUT` in the first build handoff. If authoritative handoff already contains `PLANNING_GATE=APPROVED` + `FINAL_PLAN`, skip this loop and preserve that full planning output as the build plan context.
|
|
183
187
|
|
|
184
188
|
### Scope-clear authorization checkpoint (required)
|
|
185
189
|
|
|
@@ -195,16 +199,17 @@ When planning is approved, extract and pass `FINAL_PLAN` (plus risks, assumption
|
|
|
195
199
|
|
|
196
200
|
For each iteration `n`:
|
|
197
201
|
|
|
198
|
-
1. Call `@building {as:build_iter_n}` using `FINAL_PLAN` and prior action items.
|
|
199
|
-
2. Call `@documenting {as:doc_iter_n}` using current implementation context.
|
|
200
|
-
3. Call `@reviewing {as:review_iter_n}` for implementation review.
|
|
201
|
-
4. Call `@reviewing {as:doc_review_iter_n}` for documentation review.
|
|
202
|
+
1. Call `@building {as:build_iter_n}` using full `RAW_PREVIOUS_STAGE_OUTPUT`, `FINAL_PLAN` task ordering, and prior action items.
|
|
203
|
+
2. Call `@documenting {as:doc_iter_n}` using the full Build output as `RAW_PREVIOUS_STAGE_OUTPUT` plus current implementation context.
|
|
204
|
+
3. Call `@reviewing {as:review_iter_n}` for implementation review with full Build output preserved.
|
|
205
|
+
4. Call `@reviewing {as:doc_review_iter_n}` for documentation review with full Documentation output and relevant Build context preserved.
|
|
202
206
|
5. Read gate lines exactly as:
|
|
203
207
|
- `REVIEW_GATE=APPROVED|REWORK|ESCALATE`
|
|
204
208
|
- `DOCUMENTATION_GATE=APPROVED|REWORK|ESCALATE`
|
|
205
|
-
6. If both gates are `APPROVED`, finish.
|
|
206
|
-
7. If
|
|
207
|
-
8. If
|
|
209
|
+
6. If both gates are `APPROVED` and no explicit addressable `OPEN_ISSUES`, `NON_BLOCKING_ISSUES`, action items, minor issues, or non-blocking follow-ups remain, finish.
|
|
210
|
+
7. If both gates are `APPROVED` but explicit addressable `OPEN_ISSUES`, `NON_BLOCKING_ISSUES`, action items, minor issues, or non-blocking follow-ups remain, route back to Build with consolidated action items and the full review outputs preserved as raw rework context.
|
|
211
|
+
8. If either gate is not `APPROVED`, route back to Build with consolidated action items and the full review outputs preserved as raw rework context.
|
|
212
|
+
9. If 10 iterations are exhausted, stop and escalate to the user.
|
|
208
213
|
|
|
209
214
|
### Autonomous continuation rule
|
|
210
215
|
|
|
@@ -212,6 +217,7 @@ For each iteration `n`:
|
|
|
212
217
|
- Do not ask the user what to do next while required workflow stages remain unfinished.
|
|
213
218
|
- Do not use optional phrasing like "If you want, I can..." for unfinished required workflow steps.
|
|
214
219
|
- If a stage reports partial progress (for example "waiting for tests"), treat it as non-terminal and issue a focused same-stage follow-up immediately.
|
|
220
|
+
- Treat approved review gates with explicit addressable `OPEN_ISSUES`, `NON_BLOCKING_ISSUES`, action items, minor issues, or non-blocking follow-ups as non-terminal; emit one deterministic Build rework continuation unless the issue is blocked, escalated, requires user input, or is not actionable.
|
|
215
221
|
|
|
216
222
|
### Fixed-workflow non-terminal invariant
|
|
217
223
|
|
|
@@ -263,8 +269,8 @@ RECOMMENDED_NEXT_STEP='<human-readable next step>'
|
|
|
263
269
|
Rules:
|
|
264
270
|
|
|
265
271
|
- Never emit `RECOMMENDED_NEXT_STEP` before the required scope-clear authorization checkpoint.
|
|
266
|
-
- Emit `RECOMMENDED_NEXT_STEP` when the next workflow action is deterministic and does not require user input.
|
|
267
|
-
- Omit `RECOMMENDED_NEXT_STEP` when the workflow is fully complete, blocked, escalated,
|
|
272
|
+
- Emit `RECOMMENDED_NEXT_STEP` when the next workflow action is deterministic and does not require user input, including approved-but-addressable review follow-ups such as explicit `OPEN_ISSUES`, `NON_BLOCKING_ISSUES`, action items, minor issues, or non-blocking items.
|
|
273
|
+
- Omit `RECOMMENDED_NEXT_STEP` when the workflow is fully complete, blocked, escalated, waiting on required user input, or has no addressable follow-up remaining.
|
|
268
274
|
- Omit `RECOMMENDED_NEXT_STEP` when the recommendation is "None", "Nothing", "No further steps", or similar.
|
|
269
275
|
- In the fixed workflow, successful Build continues to Document; successful Document continues to Review.
|
|
270
276
|
- Successful Build and successful Document are stage-complete but not workflow-complete, so they normally require `RECOMMENDED_NEXT_STEP`.
|
|
@@ -275,3 +281,5 @@ Examples:
|
|
|
275
281
|
- Build succeeded -> `RECOMMENDED_NEXT_STEP` describes running Document.
|
|
276
282
|
- Document succeeded -> `RECOMMENDED_NEXT_STEP` describes running Review.
|
|
277
283
|
- Review requires changes -> `RECOMMENDED_NEXT_STEP` describes Build rework actions.
|
|
284
|
+
- Review is approved but lists addressable minor or non-blocking issues -> `RECOMMENDED_NEXT_STEP` describes Build rework actions.
|
|
285
|
+
- Review is approved with no open issues or only blocked/user-decision follow-ups -> omit `RECOMMENDED_NEXT_STEP`.
|
package/agents/planning.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Creates implementation plans and planning gates for pipeline and ad-hoc work. Uses result-based handoff instead of file artifacts.
|
|
3
|
-
mode:
|
|
3
|
+
mode: subagent
|
|
4
4
|
color: '#3b82f6'
|
|
5
5
|
model: openai/gpt-5.5-fast
|
|
6
6
|
permissions:
|
|
@@ -98,9 +98,10 @@ For external/library uncertainty, use the shared `ff-research-methods` skill dir
|
|
|
98
98
|
## Operating Mode
|
|
99
99
|
|
|
100
100
|
- Prefer deterministic, structured output sections.
|
|
101
|
-
- Use normalized, resolved handoff context in stage transitions (summary, status, action items, open issues, and resolved prior output
|
|
101
|
+
- Use normalized, resolved handoff context in stage transitions (summary, status, action items, open issues, and full resolved prior output by default).
|
|
102
102
|
- Never rely on unresolved placeholder aliases in handoff prompts.
|
|
103
103
|
- Avoid writing intermediate plan files unless a user explicitly requests durable artifacts.
|
|
104
|
+
- Treat the whole planning response as downstream build context. Requirements, architecture validation, risks, assumptions, and validation strategy should remain useful outside `FINAL_PLAN`.
|
|
104
105
|
|
|
105
106
|
## Required Output Sections
|
|
106
107
|
|
|
@@ -124,4 +125,4 @@ When applying planning gates, always output:
|
|
|
124
125
|
|
|
125
126
|
- `PLANNING_GATE=APPROVED|REWORK|BLOCKED`
|
|
126
127
|
|
|
127
|
-
If approved, include a `FINAL_PLAN` section suitable for direct build-phase
|
|
128
|
+
If approved, include a `FINAL_PLAN` section suitable for direct build-phase task ordering. `FINAL_PLAN` does not replace the discovered context, rationale, risks, assumptions, or testing strategy from the rest of the planning response; orchestrators should pass the full planning last message downstream.
|
package/agents/reviewing.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Unified validation agent for code and documentation. Performs acceptance, quality, security, and architecture review with context-driven scope.
|
|
3
|
-
mode:
|
|
3
|
+
mode: subagent
|
|
4
4
|
color: '#8b5cf6'
|
|
5
5
|
model: opencode/glm-5.1
|
|
6
6
|
tools:
|
|
@@ -108,7 +108,9 @@ When acting as gate reviewer, output status line exactly:
|
|
|
108
108
|
|
|
109
109
|
## Operating Mode
|
|
110
110
|
|
|
111
|
-
- Use normalized, resolved handoff context (summary/status/action items/issues plus resolved prior output
|
|
111
|
+
- Use normalized, resolved handoff context (summary/status/action items/issues plus full resolved prior output by default) rather than file-based artifacts.
|
|
112
|
+
- Treat `RAW_PREVIOUS_STAGE_OUTPUT` as the complete prior-stage last message unless it is explicitly labeled as truncated. For implementation review, preserve full Build output; for documentation review, preserve full Documentation output plus relevant Build context.
|
|
113
|
+
- In review/rework loops, return findings with enough context for Build to receive the full review output, not only consolidated action bullets.
|
|
112
114
|
- Never rely on unresolved placeholder aliases in handoff prompts.
|
|
113
115
|
- Keep reports concise, evidence-based, and directly actionable for implementation follow-up.
|
|
114
116
|
- Do not delegate to implementation stages from reviewing mode.
|
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.12.
|
|
4
|
+
"version": "0.12.9",
|
|
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",
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
"security-audit",
|
|
33
33
|
"aws-well-architected"
|
|
34
34
|
],
|
|
35
|
-
"scripts": {
|
|
35
|
+
"scripts": {
|
|
36
|
+
"test": "npm --prefix ../.. test --"
|
|
37
|
+
},
|
|
36
38
|
"dependencies": {
|
|
37
39
|
"@opencode-ai/plugin": "^1.1.48"
|
|
38
40
|
},
|