@davidorex/pi-workflows 0.3.0 → 0.3.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/dist/dag.d.ts.map +1 -1
- package/dist/dag.js +6 -0
- package/dist/dag.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -29
- package/dist/index.js.map +1 -1
- package/dist/step-agent.d.ts.map +1 -1
- package/dist/step-agent.js +18 -3
- package/dist/step-agent.js.map +1 -1
- package/dist/step-shared.d.ts +11 -5
- package/dist/step-shared.d.ts.map +1 -1
- package/dist/step-shared.js +17 -6
- package/dist/step-shared.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow-executor.d.ts.map +1 -1
- package/dist/workflow-executor.js +30 -18
- package/dist/workflow-executor.js.map +1 -1
- package/dist/workflow-sdk.d.ts.map +1 -1
- package/dist/workflow-sdk.js +23 -4
- package/dist/workflow-sdk.js.map +1 -1
- package/dist/workflow-spec.js +12 -0
- package/dist/workflow-spec.js.map +1 -1
- package/package.json +2 -2
- package/skill-narrative.md +50 -27
- package/skills/pi-workflows/SKILL.md +74 -136
- package/skills/pi-workflows/references/bundled-resources.md +87 -0
- package/workflows/analyze-existing-project.workflow.yaml +21 -1
- package/workflows/create-handoff.workflow.yaml +8 -0
- package/workflows/create-phase.workflow.yaml +1 -1
- package/workflows/gap-to-phase.workflow.yaml +1 -1
- package/workflows/init-new-project.workflow.yaml +27 -1
- package/workflows/plan-from-requirements.workflow.yaml +9 -1
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
---
|
|
2
|
+
name: pi-workflows
|
|
3
|
+
description: >
|
|
4
|
+
Orchestrates multi-step agent workflows defined in YAML with DAG-based
|
|
5
|
+
execution, typed data flow, checkpoint/resume, and output validation. Use when
|
|
6
|
+
running workflows, authoring workflow specs, debugging step failures, or
|
|
7
|
+
inspecting agent configurations.
|
|
8
|
+
---
|
|
8
9
|
|
|
10
|
+
<tools_reference>
|
|
11
|
+
<tool name="workflow">
|
|
9
12
|
Run a named workflow with typed input. Discovers workflows from .workflows/ and ~/.pi/agent/workflows/.
|
|
10
13
|
|
|
11
14
|
*Run a multi-step workflow with typed data flow between agents*
|
|
@@ -15,15 +18,16 @@ Run a named workflow with typed input. Discovers workflows from .workflows/ and
|
|
|
15
18
|
| `workflow` | string | yes | Name of the workflow to run |
|
|
16
19
|
| `input` | unknown | no | Input data for the workflow (validated against workflow's input schema) |
|
|
17
20
|
| `fresh` | string | no | Set to 'true' to start a fresh run, ignoring any incomplete prior runs |
|
|
21
|
+
</tool>
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
<tool name="workflow-list">
|
|
21
24
|
List available workflows with names, descriptions, and sources.
|
|
22
25
|
|
|
23
26
|
*List available workflows with names, descriptions, and sources*
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
</tool>
|
|
26
29
|
|
|
30
|
+
<tool name="workflow-agents">
|
|
27
31
|
List available agents with full specs, or inspect a single agent by name. Returns role, description, model, tools, output format/schema, prompt template paths.
|
|
28
32
|
|
|
29
33
|
*List available agents with specs, or inspect a single agent by name*
|
|
@@ -31,9 +35,9 @@ List available agents with full specs, or inspect a single agent by name. Return
|
|
|
31
35
|
| Parameter | Type | Required | Description |
|
|
32
36
|
|-----------|------|----------|-------------|
|
|
33
37
|
| `name` | string | no | Agent name to inspect (omit to list all) |
|
|
38
|
+
</tool>
|
|
34
39
|
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
<tool name="workflow-validate">
|
|
37
41
|
Validate workflow specs — check agents, schemas, step references, and filters.
|
|
38
42
|
|
|
39
43
|
*Validate workflow specs — check agents, schemas, step references, filters*
|
|
@@ -41,207 +45,141 @@ Validate workflow specs — check agents, schemas, step references, and filters.
|
|
|
41
45
|
| Parameter | Type | Required | Description |
|
|
42
46
|
|-----------|------|----------|-------------|
|
|
43
47
|
| `name` | string | no | Workflow name to validate (omit to validate all) |
|
|
48
|
+
</tool>
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
<tool name="workflow-status">
|
|
47
51
|
Get workflow vocabulary — step types, filters, available agents, workflows, schemas, templates.
|
|
48
52
|
|
|
49
53
|
*Get workflow vocabulary — step types, filters, available agents, workflows, schemas*
|
|
50
54
|
|
|
51
|
-
|
|
55
|
+
</tool>
|
|
52
56
|
|
|
57
|
+
<tool name="workflow-init">
|
|
53
58
|
Initialize .workflows/ directory for workflow run state.
|
|
54
59
|
|
|
55
60
|
*Initialize .workflows/ directory for workflow run state*
|
|
56
61
|
|
|
57
|
-
|
|
62
|
+
</tool>
|
|
58
63
|
|
|
59
|
-
|
|
64
|
+
</tools_reference>
|
|
60
65
|
|
|
66
|
+
<commands_reference>
|
|
67
|
+
<command name="/workflow">
|
|
61
68
|
List and run workflows
|
|
62
69
|
|
|
63
70
|
Subcommands: `init`, `run`, `list`, `resume`, `validate`, `status`
|
|
71
|
+
</command>
|
|
64
72
|
|
|
65
|
-
|
|
73
|
+
</commands_reference>
|
|
66
74
|
|
|
75
|
+
<keyboard_shortcuts>
|
|
67
76
|
- **ctrl+h** — Pause running workflow
|
|
68
77
|
- **ctrl+j** — Resume paused workflow
|
|
78
|
+
</keyboard_shortcuts>
|
|
69
79
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- `agents/architecture-designer.agent.yaml`
|
|
75
|
-
- `agents/architecture-inferrer.agent.yaml`
|
|
76
|
-
- `agents/audit-fixer.agent.yaml`
|
|
77
|
-
- `agents/code-explorer.agent.yaml`
|
|
78
|
-
- `agents/decomposer.agent.yaml`
|
|
79
|
-
- `agents/gap-identifier.agent.yaml`
|
|
80
|
-
- `agents/handoff-writer.agent.yaml`
|
|
81
|
-
- `agents/investigator.agent.yaml`
|
|
82
|
-
- `agents/pattern-analyzer.agent.yaml`
|
|
83
|
-
- `agents/phase-author.agent.yaml`
|
|
84
|
-
- `agents/plan-creator.agent.yaml`
|
|
85
|
-
- `agents/plan-decomposer.agent.yaml`
|
|
86
|
-
- `agents/project-definer.agent.yaml`
|
|
87
|
-
- `agents/project-inferrer.agent.yaml`
|
|
88
|
-
- `agents/quality-analyzer.agent.yaml`
|
|
89
|
-
- `agents/requirements-gatherer.agent.yaml`
|
|
90
|
-
- `agents/researcher.agent.yaml`
|
|
91
|
-
- `agents/spec-implementer.agent.yaml`
|
|
92
|
-
- `agents/structure-analyzer.agent.yaml`
|
|
93
|
-
- `agents/synthesizer.agent.yaml`
|
|
94
|
-
- `agents/verifier.agent.yaml`
|
|
95
|
-
|
|
96
|
-
### schemas/ (11 files)
|
|
97
|
-
|
|
98
|
-
- `schemas/decomposition-specs.schema.json`
|
|
99
|
-
- `schemas/execution-results.schema.json`
|
|
100
|
-
- `schemas/investigation-findings.schema.json`
|
|
101
|
-
- `schemas/pattern-analysis.schema.json`
|
|
102
|
-
- `schemas/phase.schema.json`
|
|
103
|
-
- `schemas/plan-breakdown.schema.json`
|
|
104
|
-
- `schemas/quality-analysis.schema.json`
|
|
105
|
-
- `schemas/research-findings.schema.json`
|
|
106
|
-
- `schemas/structure-analysis.schema.json`
|
|
107
|
-
- `schemas/synthesis.schema.json`
|
|
108
|
-
- `schemas/verifier-output.schema.json`
|
|
109
|
-
|
|
110
|
-
### workflows/ (14 files)
|
|
111
|
-
|
|
112
|
-
- `workflows/analyze-existing-project.workflow.yaml`
|
|
113
|
-
- `workflows/create-handoff.workflow.yaml`
|
|
114
|
-
- `workflows/create-phase.workflow.yaml`
|
|
115
|
-
- `workflows/do-gap.workflow.yaml`
|
|
116
|
-
- `workflows/fix-audit.workflow.yaml`
|
|
117
|
-
- `workflows/gap-to-phase.workflow.yaml`
|
|
118
|
-
- `workflows/init-new-project.workflow.yaml`
|
|
119
|
-
- `workflows/parallel-analysis.workflow.yaml`
|
|
120
|
-
- `workflows/parallel-explicit.workflow.yaml`
|
|
121
|
-
- `workflows/pausable-analysis.workflow.yaml`
|
|
122
|
-
- `workflows/plan-from-requirements.workflow.yaml`
|
|
123
|
-
- `workflows/resumable-analysis.workflow.yaml`
|
|
124
|
-
- `workflows/self-implement.workflow.yaml`
|
|
125
|
-
- `workflows/typed-analysis.workflow.yaml`
|
|
126
|
-
|
|
127
|
-
### templates/ (28 files)
|
|
128
|
-
|
|
129
|
-
- `templates/analyzers/base-analyzer.md`
|
|
130
|
-
- `templates/analyzers/macros.md`
|
|
131
|
-
- `templates/analyzers/patterns-task.md`
|
|
132
|
-
- `templates/analyzers/patterns.md`
|
|
133
|
-
- `templates/analyzers/quality-task.md`
|
|
134
|
-
- `templates/analyzers/quality.md`
|
|
135
|
-
- `templates/analyzers/structure-task.md`
|
|
136
|
-
- `templates/analyzers/structure.md`
|
|
137
|
-
- `templates/architecture-designer/task.md`
|
|
138
|
-
- `templates/architecture-inferrer/task.md`
|
|
139
|
-
- `templates/audit-fixer/task.md`
|
|
140
|
-
- `templates/decomposer/task.md`
|
|
141
|
-
- `templates/explorer/system.md`
|
|
142
|
-
- `templates/explorer/task.md`
|
|
143
|
-
- `templates/gap-identifier/task.md`
|
|
144
|
-
- `templates/handoff-writer/task.md`
|
|
145
|
-
- `templates/investigator/task.md`
|
|
146
|
-
- `templates/phase-author/task.md`
|
|
147
|
-
- `templates/plan-creator/task.md`
|
|
148
|
-
- `templates/plan-decomposer/task.md`
|
|
149
|
-
- `templates/project-definer/task.md`
|
|
150
|
-
- `templates/project-inferrer/task.md`
|
|
151
|
-
- `templates/requirements-gatherer/task.md`
|
|
152
|
-
- `templates/researcher/task.md`
|
|
153
|
-
- `templates/spec-implementer/task.md`
|
|
154
|
-
- `templates/synthesizer/system.md`
|
|
155
|
-
- `templates/synthesizer/task.md`
|
|
156
|
-
- `templates/verifier/task.md`
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## How It Works
|
|
80
|
+
<bundled_resources>
|
|
81
|
+
21 agents, 11 schemas, 14 workflows, 28 templates bundled.
|
|
82
|
+
See references/bundled-resources.md for full inventory.
|
|
83
|
+
</bundled_resources>
|
|
161
84
|
|
|
85
|
+
<objective>
|
|
162
86
|
pi-workflows orchestrates multi-step agent workflows defined in YAML. Workflows are DAGs of typed steps with data flow via `${{ }}` expressions.
|
|
87
|
+
</objective>
|
|
163
88
|
|
|
164
|
-
|
|
165
|
-
|
|
89
|
+
<workflow_discovery>
|
|
166
90
|
Workflows are discovered from three locations (first match wins):
|
|
167
91
|
1. `.workflows/*.workflow.yaml` — project-level
|
|
168
92
|
2. `~/.pi/agent/workflows/*.workflow.yaml` — user-level
|
|
169
93
|
3. Package bundled `workflows/` — built-in
|
|
94
|
+
</workflow_discovery>
|
|
170
95
|
|
|
171
|
-
|
|
172
|
-
|
|
96
|
+
<step_types>
|
|
173
97
|
| Type | Field | Description |
|
|
174
98
|
|------|-------|-------------|
|
|
175
99
|
| agent | `agent: name` | Dispatch an LLM subprocess via `pi --mode json` |
|
|
176
100
|
| command | `command: "..."` | Run a shell command, capture stdout as output |
|
|
101
|
+
| monitor | `monitor: name` | Run a monitor classification as a verification gate |
|
|
177
102
|
| transform | `transform: { mapping: {...} }` | Pure data transformation via expressions, no LLM |
|
|
178
103
|
| gate | `gate: { check: "..." }` | Shell command exit code as pass/fail boolean |
|
|
179
104
|
| loop | `loop: { maxAttempts, steps }` | Repeat sub-steps until gate breaks or max reached |
|
|
180
105
|
| parallel | `parallel: { a: ..., b: ... }` | Run named sub-steps concurrently |
|
|
181
106
|
| pause | `pause: true` or `pause: "message"` | Pause execution, resumable later |
|
|
182
107
|
| forEach | `forEach: "${{ expr }}"` | Iterate over an array, executing the step per element |
|
|
108
|
+
</step_types>
|
|
183
109
|
|
|
184
|
-
|
|
185
|
-
|
|
110
|
+
<expression_syntax>
|
|
186
111
|
`${{ expression }}` resolves against scope: `input`, `steps`, `loop`, `forEach`.
|
|
187
112
|
|
|
188
113
|
Access step outputs: `${{ steps.investigate.output.findings }}`
|
|
189
114
|
Filters: `${{ steps.analyze.output | json }}`, `${{ items | length }}`, `${{ name | upper }}`
|
|
190
115
|
|
|
191
116
|
Available filters: length, keys, filter, json, upper, lower, trim, default, first, last, join, split, replace, includes, map, sum, min, max, sort, unique, flatten, zip, group_by, count_by, chunk, pick, omit, entries, from_entries, merge, values, not, and, or.
|
|
117
|
+
</expression_syntax>
|
|
192
118
|
|
|
193
|
-
|
|
194
|
-
|
|
119
|
+
<agent_resolution>
|
|
195
120
|
Agent specs (`.agent.yaml`) are resolved from three locations (first match wins):
|
|
196
121
|
1. `.pi/agents/<name>.agent.yaml` — project-level
|
|
197
122
|
2. `~/.pi/agent/agents/<name>.agent.yaml` — user-level
|
|
198
123
|
3. Package bundled `agents/<name>.agent.yaml` — built-in
|
|
199
124
|
|
|
200
125
|
Agent specs define: model, thinking level, tools, system prompt (or template), task template, output format/schema.
|
|
126
|
+
</agent_resolution>
|
|
201
127
|
|
|
202
|
-
|
|
203
|
-
|
|
128
|
+
<execution_model>
|
|
204
129
|
1. Steps are ordered by YAML declaration order
|
|
205
130
|
2. DAG planner infers parallelism from `${{ steps.X }}` references
|
|
206
131
|
3. Steps without explicit dependencies run after their predecessor (conservative sequential)
|
|
207
132
|
4. Each step's result is persisted atomically to `<runDir>/state.json`
|
|
208
133
|
5. TUI progress widget shows real-time step status, cost, and timing
|
|
134
|
+
</execution_model>
|
|
209
135
|
|
|
210
|
-
|
|
211
|
-
|
|
136
|
+
<checkpoint_resume>
|
|
212
137
|
Incomplete runs (failed or paused) are detected on next invocation. If the workflow spec hasn't changed incompatibly, execution resumes from the last completed step. Failed steps are re-executed. Use `fresh: "true"` to force a new run.
|
|
138
|
+
</checkpoint_resume>
|
|
213
139
|
|
|
214
|
-
|
|
215
|
-
|
|
140
|
+
<output_validation>
|
|
216
141
|
Steps with `output.schema` validate the agent's JSON output against a JSON Schema file. Validation failure marks the step as failed.
|
|
217
142
|
|
|
218
|
-
|
|
143
|
+
Use `block:<name>` to reference project block schemas portably: `output.schema: block:project` resolves to `.project/schemas/project.schema.json` from cwd. Works across monorepo, npm install, and user-customized schemas. Combined with `retry: { maxAttempts: 2 }`, the agent gets the schema validation error injected into its retry prompt and can self-correct.
|
|
144
|
+
</output_validation>
|
|
219
145
|
|
|
146
|
+
<retry>
|
|
220
147
|
Steps with `retry: { maxAttempts: N }` are re-executed on failure. Between retries:
|
|
221
148
|
- Project block files are rolled back to pre-attempt state
|
|
222
149
|
- Prior error messages are injected into the prompt
|
|
223
150
|
- Optional `steeringMessage` provides custom retry guidance
|
|
151
|
+
</retry>
|
|
224
152
|
|
|
225
|
-
|
|
226
|
-
|
|
153
|
+
<completion_messages>
|
|
227
154
|
After execution, the workflow result is injected into the main LLM conversation. The `completion` field controls this: either a `template` (full `${{ }}` template) or `message` + `include` (message text plus resolved data paths).
|
|
155
|
+
</completion_messages>
|
|
228
156
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
Workflows can write post-completion files via the `artifacts` field. Paths may contain `${{ }}` expressions. Artifacts targeting `.project/*.json` are validated against block schemas.
|
|
157
|
+
<artifacts>
|
|
158
|
+
Workflows can write post-completion files via the `artifacts` field. Paths may contain `${{ }}` expressions. Artifacts targeting `.project/*.json` are routed through `writeBlock()` for schema validation.
|
|
232
159
|
|
|
233
|
-
|
|
160
|
+
Block artifact write failures are fatal — if the data doesn't conform to the block's schema, the workflow fails. Non-block artifact failures remain non-fatal (warning). On resume, all steps are preserved; only artifact processing re-runs, so fixing the schema issue or agent output and resuming avoids re-running expensive LLM steps.
|
|
161
|
+
</artifacts>
|
|
234
162
|
|
|
163
|
+
<validation>
|
|
235
164
|
`validateWorkflow(spec, cwd)` runs authoring-time checks without executing the workflow:
|
|
236
165
|
|
|
237
166
|
1. **Agent resolution** — all referenced agents exist in the three-tier search
|
|
238
|
-
2. **
|
|
239
|
-
3. **
|
|
240
|
-
4. **Step
|
|
241
|
-
5. **
|
|
167
|
+
2. **Monitor resolution** — all referenced monitors exist in .pi/monitors/ or built-in examples
|
|
168
|
+
3. **Schema resolution** — all output schema file paths resolve to existing files
|
|
169
|
+
4. **Step reference validity** — `${{ steps.X }}` expressions reference declared steps
|
|
170
|
+
5. **Step ordering** — referenced steps are declared before the referencing step
|
|
171
|
+
6. **Filter name validity** — `${{ value | filter }}` uses known filter names
|
|
242
172
|
|
|
243
173
|
Returns `{ valid: boolean, issues: ValidationIssue[] }` where each issue has severity, message, and field path. Use `/workflow validate` or `/workflow validate <name>` to run from the command line.
|
|
244
|
-
|
|
245
|
-
|
|
174
|
+
</validation>
|
|
175
|
+
|
|
176
|
+
<success_criteria>
|
|
177
|
+
- Workflow completes all steps without unhandled failures
|
|
178
|
+
- Step outputs match declared output schemas
|
|
179
|
+
- State is persisted atomically after each step
|
|
180
|
+
- Completion message is delivered to main conversation
|
|
181
|
+
- `/workflow validate` returns no errors for authored specs
|
|
182
|
+
- Checkpoint/resume recovers from the last completed step
|
|
183
|
+
</success_criteria>
|
|
246
184
|
|
|
247
185
|
*Generated from source by `scripts/generate-skills.js` — do not edit by hand.*
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Bundled Resources
|
|
2
|
+
|
|
3
|
+
## agents/ (21 files)
|
|
4
|
+
|
|
5
|
+
- `agents/architecture-designer.agent.yaml`
|
|
6
|
+
- `agents/architecture-inferrer.agent.yaml`
|
|
7
|
+
- `agents/audit-fixer.agent.yaml`
|
|
8
|
+
- `agents/code-explorer.agent.yaml`
|
|
9
|
+
- `agents/decomposer.agent.yaml`
|
|
10
|
+
- `agents/gap-identifier.agent.yaml`
|
|
11
|
+
- `agents/handoff-writer.agent.yaml`
|
|
12
|
+
- `agents/investigator.agent.yaml`
|
|
13
|
+
- `agents/pattern-analyzer.agent.yaml`
|
|
14
|
+
- `agents/phase-author.agent.yaml`
|
|
15
|
+
- `agents/plan-creator.agent.yaml`
|
|
16
|
+
- `agents/plan-decomposer.agent.yaml`
|
|
17
|
+
- `agents/project-definer.agent.yaml`
|
|
18
|
+
- `agents/project-inferrer.agent.yaml`
|
|
19
|
+
- `agents/quality-analyzer.agent.yaml`
|
|
20
|
+
- `agents/requirements-gatherer.agent.yaml`
|
|
21
|
+
- `agents/researcher.agent.yaml`
|
|
22
|
+
- `agents/spec-implementer.agent.yaml`
|
|
23
|
+
- `agents/structure-analyzer.agent.yaml`
|
|
24
|
+
- `agents/synthesizer.agent.yaml`
|
|
25
|
+
- `agents/verifier.agent.yaml`
|
|
26
|
+
|
|
27
|
+
## schemas/ (11 files)
|
|
28
|
+
|
|
29
|
+
- `schemas/decomposition-specs.schema.json`
|
|
30
|
+
- `schemas/execution-results.schema.json`
|
|
31
|
+
- `schemas/investigation-findings.schema.json`
|
|
32
|
+
- `schemas/pattern-analysis.schema.json`
|
|
33
|
+
- `schemas/phase.schema.json`
|
|
34
|
+
- `schemas/plan-breakdown.schema.json`
|
|
35
|
+
- `schemas/quality-analysis.schema.json`
|
|
36
|
+
- `schemas/research-findings.schema.json`
|
|
37
|
+
- `schemas/structure-analysis.schema.json`
|
|
38
|
+
- `schemas/synthesis.schema.json`
|
|
39
|
+
- `schemas/verifier-output.schema.json`
|
|
40
|
+
|
|
41
|
+
## workflows/ (14 files)
|
|
42
|
+
|
|
43
|
+
- `workflows/analyze-existing-project.workflow.yaml`
|
|
44
|
+
- `workflows/create-handoff.workflow.yaml`
|
|
45
|
+
- `workflows/create-phase.workflow.yaml`
|
|
46
|
+
- `workflows/do-gap.workflow.yaml`
|
|
47
|
+
- `workflows/fix-audit.workflow.yaml`
|
|
48
|
+
- `workflows/gap-to-phase.workflow.yaml`
|
|
49
|
+
- `workflows/init-new-project.workflow.yaml`
|
|
50
|
+
- `workflows/parallel-analysis.workflow.yaml`
|
|
51
|
+
- `workflows/parallel-explicit.workflow.yaml`
|
|
52
|
+
- `workflows/pausable-analysis.workflow.yaml`
|
|
53
|
+
- `workflows/plan-from-requirements.workflow.yaml`
|
|
54
|
+
- `workflows/resumable-analysis.workflow.yaml`
|
|
55
|
+
- `workflows/self-implement.workflow.yaml`
|
|
56
|
+
- `workflows/typed-analysis.workflow.yaml`
|
|
57
|
+
|
|
58
|
+
## templates/ (28 files)
|
|
59
|
+
|
|
60
|
+
- `templates/analyzers/base-analyzer.md`
|
|
61
|
+
- `templates/analyzers/macros.md`
|
|
62
|
+
- `templates/analyzers/patterns-task.md`
|
|
63
|
+
- `templates/analyzers/patterns.md`
|
|
64
|
+
- `templates/analyzers/quality-task.md`
|
|
65
|
+
- `templates/analyzers/quality.md`
|
|
66
|
+
- `templates/analyzers/structure-task.md`
|
|
67
|
+
- `templates/analyzers/structure.md`
|
|
68
|
+
- `templates/architecture-designer/task.md`
|
|
69
|
+
- `templates/architecture-inferrer/task.md`
|
|
70
|
+
- `templates/audit-fixer/task.md`
|
|
71
|
+
- `templates/decomposer/task.md`
|
|
72
|
+
- `templates/explorer/system.md`
|
|
73
|
+
- `templates/explorer/task.md`
|
|
74
|
+
- `templates/gap-identifier/task.md`
|
|
75
|
+
- `templates/handoff-writer/task.md`
|
|
76
|
+
- `templates/investigator/task.md`
|
|
77
|
+
- `templates/phase-author/task.md`
|
|
78
|
+
- `templates/plan-creator/task.md`
|
|
79
|
+
- `templates/plan-decomposer/task.md`
|
|
80
|
+
- `templates/project-definer/task.md`
|
|
81
|
+
- `templates/project-inferrer/task.md`
|
|
82
|
+
- `templates/requirements-gatherer/task.md`
|
|
83
|
+
- `templates/researcher/task.md`
|
|
84
|
+
- `templates/spec-implementer/task.md`
|
|
85
|
+
- `templates/synthesizer/system.md`
|
|
86
|
+
- `templates/synthesizer/task.md`
|
|
87
|
+
- `templates/verifier/task.md`
|
|
@@ -41,6 +41,9 @@ steps:
|
|
|
41
41
|
path: ${{ input.path }}
|
|
42
42
|
output:
|
|
43
43
|
format: json
|
|
44
|
+
schema: block:architecture
|
|
45
|
+
retry:
|
|
46
|
+
maxAttempts: 2
|
|
44
47
|
|
|
45
48
|
infer-project:
|
|
46
49
|
agent: project-inferrer
|
|
@@ -51,6 +54,9 @@ steps:
|
|
|
51
54
|
path: ${{ input.path }}
|
|
52
55
|
output:
|
|
53
56
|
format: json
|
|
57
|
+
schema: block:project
|
|
58
|
+
retry:
|
|
59
|
+
maxAttempts: 2
|
|
54
60
|
|
|
55
61
|
identify-gaps:
|
|
56
62
|
agent: gap-identifier
|
|
@@ -62,10 +68,24 @@ steps:
|
|
|
62
68
|
path: ${{ input.path }}
|
|
63
69
|
output:
|
|
64
70
|
format: json
|
|
71
|
+
schema: block:gaps
|
|
72
|
+
retry:
|
|
73
|
+
maxAttempts: 2
|
|
74
|
+
|
|
75
|
+
artifacts:
|
|
76
|
+
project:
|
|
77
|
+
path: .project/project.json
|
|
78
|
+
from: steps.infer-project.output
|
|
79
|
+
architecture:
|
|
80
|
+
path: .project/architecture.json
|
|
81
|
+
from: steps.infer-architecture.output
|
|
82
|
+
gaps:
|
|
83
|
+
path: .project/gaps.json
|
|
84
|
+
from: steps.identify-gaps.output
|
|
65
85
|
|
|
66
86
|
completion:
|
|
67
87
|
template: |
|
|
68
|
-
Existing project analyzed.
|
|
88
|
+
Existing project analyzed. Results written to .project/ blocks.
|
|
69
89
|
|
|
70
90
|
**Project:** ${{ steps.infer-project.output.name }} — ${{ steps.infer-project.output.core_value }}
|
|
71
91
|
**Architecture:** ${{ steps.infer-architecture.output.modules | length }} modules, ${{ steps.infer-architecture.output.patterns | length }} patterns
|
|
@@ -17,6 +17,9 @@ steps:
|
|
|
17
17
|
vision: ${{ input.vision }}
|
|
18
18
|
output:
|
|
19
19
|
format: json
|
|
20
|
+
schema: block:project
|
|
21
|
+
retry:
|
|
22
|
+
maxAttempts: 2
|
|
20
23
|
|
|
21
24
|
gather-requirements:
|
|
22
25
|
agent: requirements-gatherer
|
|
@@ -25,6 +28,9 @@ steps:
|
|
|
25
28
|
vision: ${{ input.vision }}
|
|
26
29
|
output:
|
|
27
30
|
format: json
|
|
31
|
+
schema: block:requirements
|
|
32
|
+
retry:
|
|
33
|
+
maxAttempts: 2
|
|
28
34
|
|
|
29
35
|
design-architecture:
|
|
30
36
|
agent: architecture-designer
|
|
@@ -33,6 +39,9 @@ steps:
|
|
|
33
39
|
requirements: ${{ steps.gather-requirements.output }}
|
|
34
40
|
output:
|
|
35
41
|
format: json
|
|
42
|
+
schema: block:architecture
|
|
43
|
+
retry:
|
|
44
|
+
maxAttempts: 2
|
|
36
45
|
|
|
37
46
|
create-plan:
|
|
38
47
|
agent: plan-creator
|
|
@@ -42,10 +51,27 @@ steps:
|
|
|
42
51
|
architecture: ${{ steps.design-architecture.output }}
|
|
43
52
|
output:
|
|
44
53
|
format: json
|
|
54
|
+
schema: block:tasks
|
|
55
|
+
retry:
|
|
56
|
+
maxAttempts: 2
|
|
57
|
+
|
|
58
|
+
artifacts:
|
|
59
|
+
project:
|
|
60
|
+
path: .project/project.json
|
|
61
|
+
from: steps.define-identity.output
|
|
62
|
+
requirements:
|
|
63
|
+
path: .project/requirements.json
|
|
64
|
+
from: steps.gather-requirements.output
|
|
65
|
+
architecture:
|
|
66
|
+
path: .project/architecture.json
|
|
67
|
+
from: steps.design-architecture.output
|
|
68
|
+
tasks:
|
|
69
|
+
path: .project/tasks.json
|
|
70
|
+
from: steps.create-plan.output
|
|
45
71
|
|
|
46
72
|
completion:
|
|
47
73
|
template: |
|
|
48
|
-
Project initialized from vision.
|
|
74
|
+
Project initialized from vision. Results written to .project/ blocks.
|
|
49
75
|
|
|
50
76
|
**Identity:** ${{ steps.define-identity.output.name }} — ${{ steps.define-identity.output.core_value }}
|
|
51
77
|
**Requirements:** ${{ steps.gather-requirements.output.requirements | length }} captured
|
|
@@ -42,10 +42,18 @@ steps:
|
|
|
42
42
|
existing_phases: ${{ steps.load-context.output.existing_phases }}
|
|
43
43
|
output:
|
|
44
44
|
format: json
|
|
45
|
+
schema: block:tasks
|
|
46
|
+
retry:
|
|
47
|
+
maxAttempts: 2
|
|
48
|
+
|
|
49
|
+
artifacts:
|
|
50
|
+
tasks:
|
|
51
|
+
path: .project/tasks.json
|
|
52
|
+
from: steps.create-plan.output
|
|
45
53
|
|
|
46
54
|
completion:
|
|
47
55
|
template: |
|
|
48
|
-
Plan created from requirements.
|
|
56
|
+
Plan created from requirements. Tasks written to .project/tasks.json.
|
|
49
57
|
|
|
50
58
|
Use `/project status` to see the phase and task breakdown.
|
|
51
59
|
Use `/project validate` to check cross-block references.
|