intentdna 1.7.4 → 1.8.0
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/LICENSE +201 -0
- package/README.md +143 -194
- package/dist/assets/candidates.d.ts +124 -0
- package/dist/assets/candidates.js +1249 -0
- package/dist/assets/catalog.d.ts +101 -0
- package/dist/assets/catalog.js +311 -0
- package/dist/assets/evidence.d.ts +93 -0
- package/dist/assets/evidence.js +391 -0
- package/dist/assets/index.d.ts +4 -0
- package/dist/assets/index.js +4 -0
- package/dist/assets/metadata.d.ts +19 -0
- package/dist/assets/metadata.js +227 -0
- package/dist/cli/commands/assets.d.ts +65 -0
- package/dist/cli/commands/assets.js +2871 -0
- package/dist/cli/commands/auth.d.ts +322 -0
- package/dist/cli/commands/auth.js +1592 -0
- package/dist/cli/commands/cloud-auth-guidance.d.ts +2 -0
- package/dist/cli/commands/cloud-auth-guidance.js +4 -0
- package/dist/cli/commands/cloud.d.ts +1359 -0
- package/dist/cli/commands/cloud.js +8364 -0
- package/dist/cli/commands/evolve.js +18 -2
- package/dist/cli/commands/generate.js +25 -2
- package/dist/cli/commands/guard.d.ts +1 -1
- package/dist/cli/commands/guard.js +1 -1
- package/dist/cli/commands/guide.d.ts +15 -0
- package/dist/cli/commands/guide.js +1747 -0
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.js +95 -60
- package/dist/cli/commands/org.d.ts +16 -0
- package/dist/cli/commands/org.js +2393 -0
- package/dist/cli/commands/release.d.ts +59 -0
- package/dist/cli/commands/release.js +716 -0
- package/dist/cli/commands/report.d.ts +82 -0
- package/dist/cli/commands/report.js +1516 -0
- package/dist/cli/commands/run.d.ts +6 -1
- package/dist/cli/commands/run.js +95 -26
- package/dist/cli/commands/sync.d.ts +8 -1
- package/dist/cli/commands/sync.js +436 -141
- package/dist/cli/commands/templates.d.ts +64 -0
- package/dist/cli/commands/templates.js +2151 -1
- package/dist/cli/commands/workflow.d.ts +26 -0
- package/dist/cli/commands/workflow.js +3053 -0
- package/dist/cli/index.js +719 -42
- package/dist/compiler/cascade.js +4 -9
- package/dist/compiler/compile.js +1 -0
- package/dist/governance/evidence-capture-attribution.d.ts +12 -0
- package/dist/governance/evidence-capture-attribution.js +46 -0
- package/dist/governance/index.d.ts +2 -0
- package/dist/governance/index.js +1 -0
- package/dist/hooks/cli.d.ts +6 -0
- package/dist/hooks/cli.js +168 -12
- package/dist/hooks/enforce.d.ts +1 -0
- package/dist/hooks/protocol.d.ts +1 -1
- package/dist/hooks/protocol.js +1 -1
- package/dist/hooks/state.d.ts +41 -0
- package/dist/hooks/state.js +126 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/mcp/tools-state.js +2 -0
- package/dist/organization/index.d.ts +121 -0
- package/dist/organization/index.js +413 -0
- package/dist/runtime/claude-sync-target.d.ts +49 -0
- package/dist/runtime/claude-sync-target.js +280 -0
- package/dist/runtime/codex-adapter.d.ts +254 -0
- package/dist/runtime/codex-adapter.js +1204 -0
- package/dist/runtime/codex-sync-target.d.ts +33 -0
- package/dist/runtime/codex-sync-target.js +241 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/output-artifact-registry.d.ts +1 -1
- package/dist/runtime/output-artifact-registry.js +2 -0
- package/dist/runtime/settings-adapter.d.ts +1 -1
- package/dist/runtime/settings-adapter.js +1 -1
- package/dist/runtime/skill-adapter.d.ts +5 -1
- package/dist/runtime/skill-adapter.js +120 -34
- package/dist/runtime/sync-artifact-registry.d.ts +99 -0
- package/dist/runtime/sync-artifact-registry.js +194 -0
- package/dist/runtime/sync-target-plan.d.ts +45 -0
- package/dist/runtime/sync-target-plan.js +19 -0
- package/dist/schema/controller-registry.d.ts +8 -1
- package/dist/schema/controller-registry.js +8 -0
- package/dist/schema/types.d.ts +35 -23
- package/dist/schema/types.js +10 -1
- package/dist/schema/validate.js +22 -22
- package/dist/schema/validators/controllers.js +38 -20
- package/dist/schema/workflow-authoring-contract.d.ts +29 -0
- package/dist/schema/workflow-authoring-contract.js +109 -0
- package/dist/schema/yaml-parser.js +18 -0
- package/dist/templates/api-backend.dna.yaml +19 -0
- package/dist/templates/brainstorming-first.dna.yaml +19 -0
- package/dist/templates/code-cleanup.dna.yaml +19 -0
- package/dist/templates/code-review-pipeline.dna.yaml +18 -0
- package/dist/templates/documentation-writer.dna.yaml +19 -0
- package/dist/templates/flutter-behavior-lock.dna.yaml +19 -0
- package/dist/templates/flutter-refactoring-rescue.dna.yaml +19 -0
- package/dist/templates/flutter-rewrite-diagnosis-review.dna.yaml +210 -0
- package/dist/templates/flutter-rewrite-fix-review-loop.dna.yaml +260 -0
- package/dist/templates/flutter-rewrite-new.dna.yaml +506 -0
- package/dist/templates/flutter-rewrite.dna.yaml +20 -0
- package/dist/templates/frontend-quality.dna.yaml +19 -0
- package/dist/templates/full-pipeline.dna.yaml +20 -0
- package/dist/templates/marketplace.d.ts +92 -0
- package/dist/templates/marketplace.js +502 -0
- package/dist/templates/metadata.d.ts +25 -0
- package/dist/templates/metadata.js +136 -3
- package/dist/templates/mobile-dev.dna.yaml +19 -0
- package/dist/templates/multi-agent-handoff-coordination.dna.yaml +156 -0
- package/dist/templates/multi-perspective-review.dna.yaml +19 -0
- package/dist/templates/persistent-executor.dna.yaml +19 -0
- package/dist/templates/qa-loop.dna.yaml +18 -0
- package/dist/templates/release-evidence-gate.dna.yaml +131 -0
- package/dist/templates/requirements-gate.dna.yaml +19 -0
- package/dist/templates/research-orchestration.dna.yaml +19 -0
- package/dist/templates/root-cause-analysis.dna.yaml +19 -0
- package/dist/templates/safe-refactoring.dna.yaml +321 -0
- package/dist/templates/secure-dev.dna.yaml +19 -0
- package/dist/templates/subagent-parallel.dna.yaml +19 -0
- package/dist/templates/systematic-debugging.dna.yaml +19 -0
- package/dist/templates/tdd-strict.dna.yaml +19 -0
- package/dist/templates/ui-visual-regression-qa.dna.yaml +133 -0
- package/dist/templates/workflow-author.dna.yaml +302 -0
- package/dist/templates/workflow-blocked-scope-triage.dna.yaml +242 -0
- package/dist/templates/workflow-completion-audit.dna.yaml +254 -0
- package/dist/templates/workflow-cross-boundary-resource-approval.dna.yaml +249 -0
- package/dist/templates/workflow-evidence-review.dna.yaml +198 -0
- package/dist/templates/workflow-module-inventory.dna.yaml +257 -0
- package/dist/templates/workflow-runtime-smoke-review.dna.yaml +252 -0
- package/dist/templates/workflow-verification-command-routing.dna.yaml +278 -0
- package/dist/workflow/authoring-packet.d.ts +67 -0
- package/dist/workflow/authoring-packet.js +218 -0
- package/dist/workflow/draft.d.ts +159 -0
- package/dist/workflow/draft.js +800 -0
- package/dist/workflow/index.d.ts +3 -0
- package/dist/workflow/index.js +3 -0
- package/dist/workflow/suggestion-review.d.ts +65 -0
- package/dist/workflow/suggestion-review.js +245 -0
- package/package.json +1 -1
- package/spec/README.md +15 -48
- package/spec/codex-adapter-contract.md +176 -0
- package/spec/sync-target-plan.md +158 -0
- package/spec/workflow-capability-ir.md +153 -0
- package/spec/agent-dispatch-fix.md +0 -116
- package/spec/control-plane-convergence-handoff-2026-04-24.md +0 -432
- package/spec/flutter-rewrite-template-optimization.md +0 -301
- package/spec/foundation-hardening.md +0 -178
- package/spec/hooks-infra-harness-hardening.md +0 -741
- package/spec/multi-config.md +0 -172
- package/spec/parallel-isolation.md +0 -268
- package/spec/template-version-namespace-fix.md +0 -653
- package/spec/workflow-pipeline.md +0 -101
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
# workflow-author: create real workflow assets through C3 authoring packet
|
|
2
|
+
# Purpose: external-agent authoring plus deterministic dna validation and an explicit human save gate.
|
|
3
|
+
|
|
4
|
+
version: "0.1.0"
|
|
5
|
+
id: template_workflow_author
|
|
6
|
+
name: Workflow Author
|
|
7
|
+
purpose: Create a real C1 workflow asset through an external-agent interview, YAML generation, dna validate loop, explicit human save confirmation, and catalog verification.
|
|
8
|
+
maturity: draft
|
|
9
|
+
fit:
|
|
10
|
+
- Creating a new workflow asset when no existing asset fits the work method.
|
|
11
|
+
- Turning a repeated team or personal work method into portable C1 YAML.
|
|
12
|
+
- Dogfooding the C3 authoring-packet path before Online Builder exists.
|
|
13
|
+
not_for:
|
|
14
|
+
- Runtime execution of the workflow being authored.
|
|
15
|
+
- Automatic adoption, organization binding, sync, deployment, or policy mutation.
|
|
16
|
+
- Pretending dna inferred intent from a one-line goal.
|
|
17
|
+
inputs:
|
|
18
|
+
- natural-language workflow goal
|
|
19
|
+
- human interview answers
|
|
20
|
+
- C3 authoring packet
|
|
21
|
+
- dna validate diagnostics
|
|
22
|
+
outputs:
|
|
23
|
+
- staged C1 workflow asset candidate
|
|
24
|
+
- deterministic validation evidence
|
|
25
|
+
- human save decision
|
|
26
|
+
- saved project asset and catalog inspection evidence
|
|
27
|
+
boundaries:
|
|
28
|
+
- External agents author YAML; they do not adopt, bind, sync, deploy, upload, or make runtime decisions.
|
|
29
|
+
- The goal is opaque context for dna; dna does not parse, score, or infer intent.
|
|
30
|
+
- Candidate YAML stays under .dna/authoring until dna validate passes and the human explicitly approves save.
|
|
31
|
+
- Save copies the exact validated candidate into .dna/templates; it does not adopt or sync the asset.
|
|
32
|
+
- Online, marketplace, Supabase, and MCP have no runtime authority in this workflow.
|
|
33
|
+
lineage:
|
|
34
|
+
source: P2 authoring packet dogfood asset
|
|
35
|
+
contract: docs/architecture/c3-authoring-packet.md
|
|
36
|
+
type: project
|
|
37
|
+
namespace: wa
|
|
38
|
+
|
|
39
|
+
cascade:
|
|
40
|
+
inherits: ["species:default"]
|
|
41
|
+
priority: 100
|
|
42
|
+
|
|
43
|
+
variables:
|
|
44
|
+
workflow_goal:
|
|
45
|
+
description: "Human description of the work method to author. Used only as opaque packet/interview context."
|
|
46
|
+
default: "$ARGUMENTS"
|
|
47
|
+
candidate_path:
|
|
48
|
+
description: "Fixed safe staging path for the current authoring session."
|
|
49
|
+
default: ".dna/authoring/workflow-author.candidate.dna.yaml"
|
|
50
|
+
|
|
51
|
+
genes:
|
|
52
|
+
k2_authoring_boundary:
|
|
53
|
+
description: Keep probabilistic creation outside dna and deterministic validation inside dna.
|
|
54
|
+
codons:
|
|
55
|
+
- type: attract
|
|
56
|
+
target: external_agent_interview
|
|
57
|
+
- type: attract
|
|
58
|
+
target: dna_validate_loop
|
|
59
|
+
- type: repel
|
|
60
|
+
target: dna_intent_inference
|
|
61
|
+
- type: repel
|
|
62
|
+
target: automatic_policy_mutation
|
|
63
|
+
|
|
64
|
+
human_save_gate:
|
|
65
|
+
description: Block catalog save while explicit human confirmation is absent.
|
|
66
|
+
codons:
|
|
67
|
+
- type: attract
|
|
68
|
+
target: explicit_human_save_confirmation
|
|
69
|
+
- type: repel
|
|
70
|
+
target: silent_template_write
|
|
71
|
+
- type: threshold
|
|
72
|
+
condition: "human_save_confirmation_present == false"
|
|
73
|
+
action: block
|
|
74
|
+
|
|
75
|
+
validation_before_catalog:
|
|
76
|
+
description: Only the exact candidate that passed dna validate may enter the project asset catalog.
|
|
77
|
+
codons:
|
|
78
|
+
- type: attract
|
|
79
|
+
target: exact_validated_candidate_save
|
|
80
|
+
- type: repel
|
|
81
|
+
target: pre_validation_catalog_write
|
|
82
|
+
- type: threshold
|
|
83
|
+
condition: "candidate_validation_green == false"
|
|
84
|
+
action: block
|
|
85
|
+
|
|
86
|
+
contexts: {}
|
|
87
|
+
|
|
88
|
+
roles:
|
|
89
|
+
packet_reader:
|
|
90
|
+
description: Reads the C3 packet and reports its deterministic contract without mutating project state.
|
|
91
|
+
tool_permissions:
|
|
92
|
+
allow: [Read, Grep, Glob, Bash]
|
|
93
|
+
deny: [Edit, Write, NotebookEdit]
|
|
94
|
+
scope:
|
|
95
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
96
|
+
write: []
|
|
97
|
+
instructions:
|
|
98
|
+
- Run dna workflow authoring-packet for the requested goal, passing the goal as one CLI argument.
|
|
99
|
+
- Treat goal_context.raw as opaque context, not as a parsed intent model.
|
|
100
|
+
- Return the complete asset contract, schema constraints, examples, red lines, interview protocol, and validate loop.
|
|
101
|
+
success_criteria:
|
|
102
|
+
- Packet schema is intentdna.authoring_packet.v1.
|
|
103
|
+
- No project file is written by packet generation.
|
|
104
|
+
|
|
105
|
+
external_author:
|
|
106
|
+
description: Main-session external agent that interviews the human, authors the staged candidate, revises it from diagnostics, and saves only after approval.
|
|
107
|
+
model: interactive
|
|
108
|
+
tool_permissions:
|
|
109
|
+
allow: [Read, Write, Grep, Glob]
|
|
110
|
+
deny: [Bash, Edit, NotebookEdit]
|
|
111
|
+
scope:
|
|
112
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
113
|
+
write: [".dna/authoring/**", ".dna/templates/**"]
|
|
114
|
+
instructions:
|
|
115
|
+
- Ask every interview_protocol question before writing YAML.
|
|
116
|
+
- Obtain a safe asset id matching /^[a-z][a-z0-9-]{1,62}$/ from the human-confirmed answers; never derive a file path from the raw goal.
|
|
117
|
+
- Write and revise only {{candidate_path}} until deterministic validation is green.
|
|
118
|
+
- After APPROVE_SAVE, copy the exact validated YAML to .dna/templates/<asset-id>.dna.yaml without changing its contents.
|
|
119
|
+
- Do not adopt, bind, sync, deploy, upload, or claim runtime authority.
|
|
120
|
+
success_criteria:
|
|
121
|
+
- Candidate structure reflects the interview answers rather than a canned example clone.
|
|
122
|
+
- Saved YAML is byte-equivalent to the validated candidate.
|
|
123
|
+
|
|
124
|
+
dna_validator:
|
|
125
|
+
description: Runs deterministic validation, catalog checks, and dry-run sync previews without rewriting YAML.
|
|
126
|
+
tool_permissions:
|
|
127
|
+
allow: [Read, Grep, Glob, Bash]
|
|
128
|
+
deny: [Edit, Write, NotebookEdit]
|
|
129
|
+
scope:
|
|
130
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
131
|
+
write: []
|
|
132
|
+
instructions:
|
|
133
|
+
- Run dna validate on the staged candidate and report exact diagnostics.
|
|
134
|
+
- Never edit the candidate or infer what the human intended.
|
|
135
|
+
- After save, run dna assets show, dna assets inspect, dna sync --dry-run, and dna sync --codex --dry-run.
|
|
136
|
+
success_criteria:
|
|
137
|
+
- Validation evidence records exit code and diagnostics.
|
|
138
|
+
- Catalog and both harness previews refer to the saved asset.
|
|
139
|
+
|
|
140
|
+
human_reviewer:
|
|
141
|
+
description: Human owner who decides whether the validated candidate reflects the real work method and may be saved.
|
|
142
|
+
model: human
|
|
143
|
+
tool_permissions:
|
|
144
|
+
allow: []
|
|
145
|
+
deny: [Read, Write, Edit, Bash, Grep, Glob, NotebookEdit]
|
|
146
|
+
scope:
|
|
147
|
+
read: []
|
|
148
|
+
write: []
|
|
149
|
+
instructions:
|
|
150
|
+
- Review the candidate and deterministic validation evidence.
|
|
151
|
+
- Respond APPROVE_SAVE, REQUEST_CHANGES, or REJECT.
|
|
152
|
+
- Keep adoption, organization binding, and runtime sync as later explicit decisions.
|
|
153
|
+
|
|
154
|
+
workflow:
|
|
155
|
+
name: workflow-author
|
|
156
|
+
description: Author a real workflow asset through C3 packet, external-agent interview and YAML work, deterministic validate retries, explicit human save confirmation, and catalog verification.
|
|
157
|
+
steps:
|
|
158
|
+
- id: packet
|
|
159
|
+
role: packet_reader
|
|
160
|
+
description: Emit and read the complete C3 authoring packet for the opaque workflow goal.
|
|
161
|
+
prompt: |
|
|
162
|
+
Run dna workflow authoring-packet for {{workflow_goal}} in JSON mode.
|
|
163
|
+
Pass the entire goal as one CLI argument.
|
|
164
|
+
Return the complete packet without parsing, scoring, or inferring intent.
|
|
165
|
+
handoff:
|
|
166
|
+
produces:
|
|
167
|
+
- type: summary
|
|
168
|
+
name: authoring_packet
|
|
169
|
+
description: Complete packet schema, red lines, examples, interview protocol, and validate loop.
|
|
170
|
+
|
|
171
|
+
- id: interview
|
|
172
|
+
role: external_author
|
|
173
|
+
depends_on: [packet]
|
|
174
|
+
description: Interview the human for the real workflow shape and a safe asset id.
|
|
175
|
+
prompt: |
|
|
176
|
+
Ask the packet interview_protocol questions for {{workflow_goal}}.
|
|
177
|
+
Confirm goal, steps, roles, verification, boundaries, failure handling, and a safe asset id matching /^[a-z][a-z0-9-]{1,62}$/.
|
|
178
|
+
Do not write YAML until the human answers are concrete enough to define the workflow.
|
|
179
|
+
handoff:
|
|
180
|
+
consumes:
|
|
181
|
+
- type: summary
|
|
182
|
+
name: authoring_packet
|
|
183
|
+
from: packet
|
|
184
|
+
description: Complete C3 packet.
|
|
185
|
+
produces:
|
|
186
|
+
- type: summary
|
|
187
|
+
name: interview_answers
|
|
188
|
+
description: Human-confirmed workflow shape, safe asset id, roles, boundaries, and validation needs.
|
|
189
|
+
|
|
190
|
+
- id: draft-yaml
|
|
191
|
+
role: external_author
|
|
192
|
+
depends_on: [interview]
|
|
193
|
+
description: Write or revise one staged C1 workflow asset candidate.
|
|
194
|
+
prompt: |
|
|
195
|
+
Write {{candidate_path}} from interview_answers and the packet contract.
|
|
196
|
+
Keep maturity draft, declare boundaries, and use the safe asset id from the interview.
|
|
197
|
+
On a retry, change only what the dna validate diagnostics or explicit human correction require.
|
|
198
|
+
Do not write under .dna/templates in this step.
|
|
199
|
+
handoff:
|
|
200
|
+
consumes:
|
|
201
|
+
- type: summary
|
|
202
|
+
name: interview_answers
|
|
203
|
+
from: interview
|
|
204
|
+
description: Human-confirmed workflow shape and safe asset id.
|
|
205
|
+
produces:
|
|
206
|
+
- type: file
|
|
207
|
+
path: "{{candidate_path}}"
|
|
208
|
+
description: Staged C1 workflow asset candidate outside the project asset catalog.
|
|
209
|
+
|
|
210
|
+
- id: validate
|
|
211
|
+
role: dna_validator
|
|
212
|
+
depends_on: [draft-yaml]
|
|
213
|
+
description: Validate the staged candidate and return exact diagnostics for bounded revision.
|
|
214
|
+
prompt: |
|
|
215
|
+
Run dna validate "{{candidate_path}}".
|
|
216
|
+
If invalid, return the exact diagnostics to draft-yaml and do not continue to human review or save.
|
|
217
|
+
If valid, record green validation evidence without changing the candidate.
|
|
218
|
+
checkpoints:
|
|
219
|
+
- assert: authoring_candidate_validated
|
|
220
|
+
command: "dna validate \"{{candidate_path}}\""
|
|
221
|
+
message: "Candidate workflow asset must pass dna validate before human save review."
|
|
222
|
+
action: block
|
|
223
|
+
handoff:
|
|
224
|
+
consumes:
|
|
225
|
+
- type: file
|
|
226
|
+
path: "{{candidate_path}}"
|
|
227
|
+
from: draft-yaml
|
|
228
|
+
description: Staged candidate YAML.
|
|
229
|
+
produces:
|
|
230
|
+
- type: test_result
|
|
231
|
+
name: validate_result
|
|
232
|
+
description: Deterministic dna validate exit code and diagnostics.
|
|
233
|
+
|
|
234
|
+
- id: human-save-review
|
|
235
|
+
role: human_reviewer
|
|
236
|
+
depends_on: [validate]
|
|
237
|
+
description: Ask the human whether the exact validated candidate may enter the project asset catalog.
|
|
238
|
+
prompt: |
|
|
239
|
+
Review {{candidate_path}}, interview_answers, and validate_result.
|
|
240
|
+
Respond with APPROVE_SAVE, REQUEST_CHANGES, or REJECT.
|
|
241
|
+
APPROVE_SAVE authorizes only the exact catalog save; it does not authorize adoption, binding, sync, deployment, or upload.
|
|
242
|
+
handoff:
|
|
243
|
+
consumes:
|
|
244
|
+
- type: file
|
|
245
|
+
path: "{{candidate_path}}"
|
|
246
|
+
from: draft-yaml
|
|
247
|
+
description: Exact validated candidate YAML.
|
|
248
|
+
- type: test_result
|
|
249
|
+
name: validate_result
|
|
250
|
+
from: validate
|
|
251
|
+
description: Green deterministic validation evidence.
|
|
252
|
+
produces:
|
|
253
|
+
- type: summary
|
|
254
|
+
name: human_save_decision
|
|
255
|
+
description: Explicit APPROVE_SAVE, REQUEST_CHANGES, or REJECT decision.
|
|
256
|
+
|
|
257
|
+
- id: save-asset
|
|
258
|
+
role: external_author
|
|
259
|
+
depends_on: [human-save-review]
|
|
260
|
+
description: Save the exact validated candidate only after APPROVE_SAVE.
|
|
261
|
+
prompt: |
|
|
262
|
+
Require human_save_decision == APPROVE_SAVE.
|
|
263
|
+
Read {{candidate_path}} and write the exact same YAML bytes to .dna/templates/<safe-asset-id>.dna.yaml using the safe id from interview_answers.
|
|
264
|
+
Do not alter maturity, adopt, bind, sync, deploy, or upload.
|
|
265
|
+
handoff:
|
|
266
|
+
consumes:
|
|
267
|
+
- type: file
|
|
268
|
+
path: "{{candidate_path}}"
|
|
269
|
+
from: draft-yaml
|
|
270
|
+
description: Exact candidate that passed dna validate.
|
|
271
|
+
- type: summary
|
|
272
|
+
name: human_save_decision
|
|
273
|
+
from: human-save-review
|
|
274
|
+
description: Explicit human save decision.
|
|
275
|
+
produces:
|
|
276
|
+
- type: file
|
|
277
|
+
name: saved_workflow_asset
|
|
278
|
+
description: Project-local .dna/templates/<safe-asset-id>.dna.yaml copied from the validated candidate.
|
|
279
|
+
|
|
280
|
+
- id: catalog-check
|
|
281
|
+
role: dna_validator
|
|
282
|
+
depends_on: [save-asset]
|
|
283
|
+
description: Confirm catalog visibility and preview both supported harness surfaces.
|
|
284
|
+
prompt: |
|
|
285
|
+
Run dna validate on the saved asset, then dna assets show <safe-asset-id> and dna assets inspect <safe-asset-id>.
|
|
286
|
+
Run dna sync --dry-run and dna sync --codex --dry-run.
|
|
287
|
+
Report equivalent workflow projection or any explicitly unsupported adapter difference; do not perform live sync.
|
|
288
|
+
handoff:
|
|
289
|
+
consumes:
|
|
290
|
+
- type: file
|
|
291
|
+
name: saved_workflow_asset
|
|
292
|
+
from: save-asset
|
|
293
|
+
description: Human-approved project-local workflow asset.
|
|
294
|
+
produces:
|
|
295
|
+
- type: test_result
|
|
296
|
+
name: catalog_and_sync_preview
|
|
297
|
+
description: Saved-asset validation, catalog visibility, and Claude/Codex dry-run evidence.
|
|
298
|
+
|
|
299
|
+
retry_policy:
|
|
300
|
+
max_retries: 3
|
|
301
|
+
retry_from: draft-yaml
|
|
302
|
+
backoff: none
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# workflow-blocked-scope-triage: reusable blocked/skipped/deferred scope review
|
|
2
|
+
# Source: extracted from Flutter rewrite dogfood modules with blocked and skipped work
|
|
3
|
+
# Purpose: make blocked scope classification explicit before manager review, adoption, rollout, or sync
|
|
4
|
+
|
|
5
|
+
version: "0.1.0"
|
|
6
|
+
id: template_workflow_blocked_scope_triage
|
|
7
|
+
name: Workflow Blocked Scope Triage
|
|
8
|
+
purpose: Classify blocked, skipped, deferred, removed, or outside-scope work before completion, adoption, rollout, or sync.
|
|
9
|
+
maturity: reviewed
|
|
10
|
+
fit:
|
|
11
|
+
- Workflow evidence with skipped tests, blocked items, or human approval requirements.
|
|
12
|
+
- Manager review before treating deferred scope as accepted.
|
|
13
|
+
not_for:
|
|
14
|
+
- Hiding unimplemented work as completion.
|
|
15
|
+
- Automatic policy mutation from evidence.
|
|
16
|
+
inputs:
|
|
17
|
+
- progress or verification evidence
|
|
18
|
+
- diagnosis or baseline reference
|
|
19
|
+
- blocked item owner and reason
|
|
20
|
+
outputs:
|
|
21
|
+
- blocked scope triage artifact
|
|
22
|
+
- manager-readable next review path
|
|
23
|
+
- explicit remaining versus deferred classification
|
|
24
|
+
lineage:
|
|
25
|
+
source: Flutter rewrite dogfood modules
|
|
26
|
+
reference: src/templates/flutter-rewrite.dna.yaml
|
|
27
|
+
type: project
|
|
28
|
+
namespace: wbst
|
|
29
|
+
|
|
30
|
+
cascade:
|
|
31
|
+
inherits: ["species:default"]
|
|
32
|
+
priority: 100
|
|
33
|
+
|
|
34
|
+
variables:
|
|
35
|
+
evidence_path:
|
|
36
|
+
description: "Progress or verification evidence path"
|
|
37
|
+
default: ".dna/fix-progress/$ARGUMENTS.json"
|
|
38
|
+
triage_path:
|
|
39
|
+
description: "Blocked scope triage artifact path"
|
|
40
|
+
default: ".dna/blocked-scope/$ARGUMENTS.triage.json"
|
|
41
|
+
reference_path:
|
|
42
|
+
description: "Optional behavior, diagnosis, or review reference path"
|
|
43
|
+
default: "docs/behavior/$ARGUMENTS.md"
|
|
44
|
+
|
|
45
|
+
evidence:
|
|
46
|
+
- label: Flutter rewrite dogfood blocked evidence
|
|
47
|
+
kind: reference
|
|
48
|
+
path: /Users/samuel/lawark/lwk_flutter_v2-rewrite/.dna/fix-progress
|
|
49
|
+
description: Module progress JSON and logs where chat and device recorded blocked or intentionally skipped items.
|
|
50
|
+
- label: Flutter rewrite blocked item rules
|
|
51
|
+
kind: reference
|
|
52
|
+
path: src/templates/flutter-rewrite.dna.yaml
|
|
53
|
+
description: Dogfood workflow rules that separate remaining UNIMPLEMENTED skipped tests from blocked TEST_BUG, INFRA, REMOVED, or explicitly approved blocked items.
|
|
54
|
+
|
|
55
|
+
genes:
|
|
56
|
+
blocked_scope_is_explicit:
|
|
57
|
+
description: Blocked, skipped, removed, infra, and deferred work must be classified before completion or rollout
|
|
58
|
+
codons:
|
|
59
|
+
- type: attract
|
|
60
|
+
target: explicit_blocked_item_classification
|
|
61
|
+
- type: repel
|
|
62
|
+
target: silent_skip_as_pass
|
|
63
|
+
- type: threshold
|
|
64
|
+
condition: "blocked_scope_triage_written == true"
|
|
65
|
+
action: block
|
|
66
|
+
|
|
67
|
+
remaining_not_blocked:
|
|
68
|
+
description: Diagnosis-backed UNIMPLEMENTED skipped work is remaining work, not blocked scope
|
|
69
|
+
codons:
|
|
70
|
+
- type: attract
|
|
71
|
+
target: remaining_unimplemented_skipped_count
|
|
72
|
+
- type: repel
|
|
73
|
+
target: unimplemented_marked_blocked
|
|
74
|
+
- type: threshold
|
|
75
|
+
condition: "remaining_items_not_hidden == true"
|
|
76
|
+
action: block
|
|
77
|
+
|
|
78
|
+
manager_approval_for_defer:
|
|
79
|
+
description: Deferred or intentionally blocked scope requires a manager-readable reason and next review path
|
|
80
|
+
codons:
|
|
81
|
+
- type: attract
|
|
82
|
+
target: manager_readable_blocked_reason
|
|
83
|
+
- type: attract
|
|
84
|
+
target: next_review_command
|
|
85
|
+
- type: repel
|
|
86
|
+
target: automatic_defer
|
|
87
|
+
- type: sense
|
|
88
|
+
signal: blocked_scope_without_owner
|
|
89
|
+
response: request_manager_review
|
|
90
|
+
|
|
91
|
+
contexts: {}
|
|
92
|
+
|
|
93
|
+
roles:
|
|
94
|
+
scope_triager:
|
|
95
|
+
description: Reads progress, tests, diagnosis, and references to classify blocked, skipped, and deferred scope.
|
|
96
|
+
tool_permissions:
|
|
97
|
+
allow: [Read, Grep, Glob]
|
|
98
|
+
deny: [Edit, Write, Bash, NotebookEdit]
|
|
99
|
+
scope:
|
|
100
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
101
|
+
write: []
|
|
102
|
+
instructions:
|
|
103
|
+
- Read {{evidence_path}} and {{reference_path}} before classifying blocked or skipped items.
|
|
104
|
+
- Separate REMAINING from BLOCKED, DEFERRED, TEST_BUG, INFRA, REMOVED, and USER_APPROVED_BLOCKED.
|
|
105
|
+
- Treat diagnosis-backed UNIMPLEMENTED skipped tests as REMAINING, not BLOCKED.
|
|
106
|
+
- Do not turn historical blocked notes into current verdicts without fresh evidence.
|
|
107
|
+
- Keep Obsidian/wiki as internal memory only; use machine evidence and reviewed artifacts for workflow decisions.
|
|
108
|
+
|
|
109
|
+
triage_reviewer:
|
|
110
|
+
description: Reviews scope triage for hidden remaining work, unsupported deferrals, and stale evidence.
|
|
111
|
+
tool_permissions:
|
|
112
|
+
allow: [Read, Grep, Glob]
|
|
113
|
+
deny: [Edit, Write, Bash, NotebookEdit]
|
|
114
|
+
scope:
|
|
115
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
116
|
+
write: []
|
|
117
|
+
instructions:
|
|
118
|
+
- Reject triage that marks actionable BUG or UNIMPLEMENTED work as blocked.
|
|
119
|
+
- Reject PASS if any diagnosis-backed UNIMPLEMENTED skipped test remains.
|
|
120
|
+
- Require owner, reason, evidence path, and next review command for each blocked or deferred item.
|
|
121
|
+
- Return APPROVE, REQUEST_CHANGES, or BLOCKED with concise reasons.
|
|
122
|
+
|
|
123
|
+
triage_recorder:
|
|
124
|
+
description: Writes durable blocked scope triage evidence without mutating workflow assets or runtime sync artifacts.
|
|
125
|
+
tool_permissions:
|
|
126
|
+
allow: [Read, Write, Grep, Glob]
|
|
127
|
+
deny: [Edit, Bash, NotebookEdit]
|
|
128
|
+
scope:
|
|
129
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
130
|
+
write: [".dna/blocked-scope/**"]
|
|
131
|
+
instructions:
|
|
132
|
+
- Write {{triage_path}} as JSON with status, remaining_items, blocked_items, deferred_items, evidence_paths, next_commands, reviewer_verdict, and updated_at.
|
|
133
|
+
- Include counts for remaining_count, blocked_count, deferred_count, and remaining_unimplemented_skipped_count.
|
|
134
|
+
- State whether manager review, continued fixing, adoption, evolution preview, rollout, or sync is allowed.
|
|
135
|
+
- Do not edit app code, tests, workflow templates, organization profiles, evolution markers, or runtime artifacts.
|
|
136
|
+
|
|
137
|
+
manager_reviewer:
|
|
138
|
+
description: Produces a manager-readable route from the triage artifact.
|
|
139
|
+
tool_permissions:
|
|
140
|
+
allow: [Read, Grep, Glob]
|
|
141
|
+
deny: [Edit, Write, Bash, NotebookEdit]
|
|
142
|
+
scope:
|
|
143
|
+
read: ["**/*", ".dna/**", "docs/**"]
|
|
144
|
+
write: []
|
|
145
|
+
instructions:
|
|
146
|
+
- Read {{triage_path}} and summarize whether work is PASS, CONTINUE, REQUEST_CHANGES, or BLOCKED.
|
|
147
|
+
- Name the evidence paths and explain any deferred or blocked scope in plain language.
|
|
148
|
+
- If remaining work exists, route back to fix/review before adoption, evolution mutation, rollout, or sync.
|
|
149
|
+
- End with an explicit mutation boundary.
|
|
150
|
+
|
|
151
|
+
workflows:
|
|
152
|
+
blocked-scope-triage:
|
|
153
|
+
name: Blocked Scope Triage
|
|
154
|
+
description: Classify blocked, skipped, and deferred work before manager review, adoption, rollout, or runtime sync.
|
|
155
|
+
steps:
|
|
156
|
+
- id: classify-scope
|
|
157
|
+
role: scope_triager
|
|
158
|
+
description: Classify remaining, blocked, skipped, and deferred scope from evidence.
|
|
159
|
+
prompt: |
|
|
160
|
+
Classify blocked, skipped, and deferred scope for $ARGUMENTS.
|
|
161
|
+
Read {{evidence_path}} and {{reference_path}}.
|
|
162
|
+
Separate REMAINING from BLOCKED, DEFERRED, TEST_BUG, INFRA, REMOVED, and USER_APPROVED_BLOCKED.
|
|
163
|
+
Treat diagnosis-backed UNIMPLEMENTED skipped tests as REMAINING, not BLOCKED.
|
|
164
|
+
handoff:
|
|
165
|
+
produces:
|
|
166
|
+
- type: summary
|
|
167
|
+
name: scope_classification
|
|
168
|
+
description: Remaining, blocked, deferred, and skipped item classification with evidence paths.
|
|
169
|
+
- id: review-triage
|
|
170
|
+
role: triage_reviewer
|
|
171
|
+
depends_on: [classify-scope]
|
|
172
|
+
description: Review the scope triage for hidden work and unsupported blocked claims.
|
|
173
|
+
prompt: |
|
|
174
|
+
Review scope triage for $ARGUMENTS.
|
|
175
|
+
Reject hidden remaining work, stale evidence, unsupported deferrals, or actionable work marked as blocked.
|
|
176
|
+
Return APPROVE, REQUEST_CHANGES, or BLOCKED.
|
|
177
|
+
handoff:
|
|
178
|
+
consumes:
|
|
179
|
+
- type: summary
|
|
180
|
+
name: scope_classification
|
|
181
|
+
from: classify-scope
|
|
182
|
+
description: Scope classification.
|
|
183
|
+
produces:
|
|
184
|
+
- type: summary
|
|
185
|
+
name: triage_review_verdict
|
|
186
|
+
description: Review verdict and required changes.
|
|
187
|
+
- id: record-triage
|
|
188
|
+
role: triage_recorder
|
|
189
|
+
depends_on: [review-triage]
|
|
190
|
+
description: Write durable triage evidence for manager review.
|
|
191
|
+
prompt: |
|
|
192
|
+
Write {{triage_path}} for $ARGUMENTS.
|
|
193
|
+
Include status, remaining_items, blocked_items, deferred_items, evidence_paths, next_commands, reviewer_verdict, counts, and updated_at.
|
|
194
|
+
State whether adoption, evolution preview, rollout, or sync is allowed.
|
|
195
|
+
checkpoints:
|
|
196
|
+
- assert: triage_artifact_written
|
|
197
|
+
command: "test -s \"{{triage_path}}\""
|
|
198
|
+
message: "Blocked scope triage artifact must exist before manager route."
|
|
199
|
+
action: block
|
|
200
|
+
handoff:
|
|
201
|
+
consumes:
|
|
202
|
+
- type: summary
|
|
203
|
+
name: triage_review_verdict
|
|
204
|
+
from: review-triage
|
|
205
|
+
description: Triage review verdict.
|
|
206
|
+
produces:
|
|
207
|
+
- type: file
|
|
208
|
+
path: "{{triage_path}}"
|
|
209
|
+
description: Durable blocked scope triage JSON.
|
|
210
|
+
- id: manager-route
|
|
211
|
+
role: manager_reviewer
|
|
212
|
+
depends_on: [record-triage]
|
|
213
|
+
description: Produce manager-readable next action from blocked scope triage.
|
|
214
|
+
prompt: |
|
|
215
|
+
Read {{triage_path}} for $ARGUMENTS.
|
|
216
|
+
State PASS, CONTINUE, REQUEST_CHANGES, or BLOCKED, with evidence and next command.
|
|
217
|
+
Do not approve adoption, evolution mutation, rollout, or sync while remaining work is hidden.
|
|
218
|
+
handoff:
|
|
219
|
+
consumes:
|
|
220
|
+
- type: file
|
|
221
|
+
path: "{{triage_path}}"
|
|
222
|
+
from: record-triage
|
|
223
|
+
description: Blocked scope triage artifact.
|
|
224
|
+
produces:
|
|
225
|
+
- type: summary
|
|
226
|
+
name: manager_triage_route
|
|
227
|
+
description: Manager-readable route to continue, approve, request changes, or block.
|
|
228
|
+
|
|
229
|
+
controllers:
|
|
230
|
+
blocked-scope-triage:
|
|
231
|
+
name: Blocked Scope Triage
|
|
232
|
+
description: "Classify, review, record, and route blocked/skipped/deferred scope before adoption or sync."
|
|
233
|
+
kind: sequential
|
|
234
|
+
workflow: blocked-scope-triage
|
|
235
|
+
max_rounds: 1
|
|
236
|
+
progress_artifact_path: ".dna/blocked-scope/$ARGUMENTS.controller.json"
|
|
237
|
+
roles:
|
|
238
|
+
scope_triager: scope_triager
|
|
239
|
+
triage_reviewer: triage_reviewer
|
|
240
|
+
triage_recorder: triage_recorder
|
|
241
|
+
manager_reviewer: manager_reviewer
|
|
242
|
+
stop_format: configured_stop_report
|