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,506 @@
|
|
|
1
|
+
# flutter-rewrite-new: Flutter rewrite with workflow-infra governance stages
|
|
2
|
+
# Purpose: demonstrate the next template shape after workflow capability foundation.
|
|
3
|
+
# Keeps Flutter-specific migration knowledge, but moves execution into explicit
|
|
4
|
+
# intent, boundary, baseline, diagnosis, rewrite, equivalence, review, evidence gates.
|
|
5
|
+
|
|
6
|
+
version: "0.1.0"
|
|
7
|
+
id: template_flutter_rewrite_new
|
|
8
|
+
name: Flutter Rewrite New
|
|
9
|
+
purpose: Demonstrate the governed Flutter rewrite workflow shape with explicit intent, boundary, baseline, diagnosis, rewrite, equivalence, review, and evidence gates.
|
|
10
|
+
maturity: draft
|
|
11
|
+
fit:
|
|
12
|
+
- Designing or reviewing the next generation Flutter rewrite workflow shape.
|
|
13
|
+
- Migration work that needs explicit stage boundaries before adopting the full dogfood-proven asset.
|
|
14
|
+
not_for:
|
|
15
|
+
- Replacing the adopted flutter-rewrite asset without review.
|
|
16
|
+
- Feature redesigns or runtime execution outside local dna sync.
|
|
17
|
+
inputs:
|
|
18
|
+
- target module or feature slug
|
|
19
|
+
- v1 source root
|
|
20
|
+
- v2 Flutter package root
|
|
21
|
+
- behavior and evidence directories
|
|
22
|
+
outputs:
|
|
23
|
+
- governed rewrite stage plan
|
|
24
|
+
- baseline, diagnosis, rewrite, equivalence, and review evidence
|
|
25
|
+
- adoption review material
|
|
26
|
+
lineage:
|
|
27
|
+
source: workflow-infra governance template shape
|
|
28
|
+
reference: src/templates/flutter-rewrite.dna.yaml
|
|
29
|
+
type: project
|
|
30
|
+
namespace: frwn
|
|
31
|
+
|
|
32
|
+
cascade:
|
|
33
|
+
inherits: ["species:default"]
|
|
34
|
+
priority: 100
|
|
35
|
+
|
|
36
|
+
variables:
|
|
37
|
+
module:
|
|
38
|
+
description: "Target module or feature slug"
|
|
39
|
+
default: "$ARGUMENTS"
|
|
40
|
+
v1_path:
|
|
41
|
+
description: "v1 source root used as behavior truth"
|
|
42
|
+
default: "common/lib"
|
|
43
|
+
v2_path:
|
|
44
|
+
description: "v2 Flutter package root"
|
|
45
|
+
default: "v2/packages"
|
|
46
|
+
behavior_docs:
|
|
47
|
+
description: "Behavior contract output directory"
|
|
48
|
+
default: "docs/behavior"
|
|
49
|
+
test_path:
|
|
50
|
+
description: "Behavior test output directory"
|
|
51
|
+
default: "test/behavior"
|
|
52
|
+
evidence_dir:
|
|
53
|
+
description: "Rewrite governance evidence directory"
|
|
54
|
+
default: ".dna/rewrite/{{module}}"
|
|
55
|
+
test_command:
|
|
56
|
+
description: "Command that verifies the target module"
|
|
57
|
+
default: "flutter test"
|
|
58
|
+
target_scope:
|
|
59
|
+
description: "Allowed write scope for the rewrite step"
|
|
60
|
+
default: "v2/**"
|
|
61
|
+
|
|
62
|
+
genes:
|
|
63
|
+
v1_behavior_truth:
|
|
64
|
+
description: v1 source is the behavior truth for rewrite decisions.
|
|
65
|
+
codons:
|
|
66
|
+
- type: attract
|
|
67
|
+
target: read_v1_source_before_changing
|
|
68
|
+
- type: attract
|
|
69
|
+
target: cite_v1_evidence
|
|
70
|
+
- type: repel
|
|
71
|
+
target: guess_api_signature
|
|
72
|
+
- type: threshold
|
|
73
|
+
condition: "v1_reference_missing == false"
|
|
74
|
+
action: block
|
|
75
|
+
|
|
76
|
+
workflow_gates_before_code:
|
|
77
|
+
description: Rewrite cannot begin until intent, boundary, and baseline are recorded.
|
|
78
|
+
codons:
|
|
79
|
+
- type: attract
|
|
80
|
+
target: intent_lock
|
|
81
|
+
- type: attract
|
|
82
|
+
target: boundary_freeze
|
|
83
|
+
- type: attract
|
|
84
|
+
target: baseline_characterization
|
|
85
|
+
- type: repel
|
|
86
|
+
target: direct_edit_without_evidence
|
|
87
|
+
- type: threshold
|
|
88
|
+
condition: "prewrite_evidence_complete == true"
|
|
89
|
+
action: block
|
|
90
|
+
|
|
91
|
+
equivalence_over_improvement:
|
|
92
|
+
description: The rewrite preserves v1 behavior rather than improving product behavior.
|
|
93
|
+
codons:
|
|
94
|
+
- type: attract
|
|
95
|
+
target: logic_equivalence_validation
|
|
96
|
+
- type: attract
|
|
97
|
+
target: same_inputs_same_outputs
|
|
98
|
+
- type: repel
|
|
99
|
+
target: opportunistic_improvement
|
|
100
|
+
- type: threshold
|
|
101
|
+
condition: "behavior_delta_approved == true"
|
|
102
|
+
action: escalate
|
|
103
|
+
|
|
104
|
+
small_bounded_rounds:
|
|
105
|
+
description: Each rewrite round stays small, scoped, and reviewable.
|
|
106
|
+
codons:
|
|
107
|
+
- type: attract
|
|
108
|
+
target: single_module_focus
|
|
109
|
+
- type: attract
|
|
110
|
+
target: targeted_tests_per_round
|
|
111
|
+
- type: repel
|
|
112
|
+
target: cross_module_rewrite
|
|
113
|
+
- type: threshold
|
|
114
|
+
condition: "files_changed_per_round <= 5"
|
|
115
|
+
action: escalate
|
|
116
|
+
|
|
117
|
+
evidence_before_completion:
|
|
118
|
+
description: Completion requires reviewable evidence, not a prose claim.
|
|
119
|
+
codons:
|
|
120
|
+
- type: attract
|
|
121
|
+
target: evidence_package
|
|
122
|
+
- type: attract
|
|
123
|
+
target: runtime_decision_evidence
|
|
124
|
+
- type: repel
|
|
125
|
+
target: claim_without_test_output
|
|
126
|
+
|
|
127
|
+
contexts: {}
|
|
128
|
+
|
|
129
|
+
context_files:
|
|
130
|
+
mandatory:
|
|
131
|
+
- CLAUDE.md
|
|
132
|
+
- docs/refactoring-workflow-v2.md
|
|
133
|
+
- v2/docs/PROVIDER_DESIGN.md
|
|
134
|
+
- v2/docs/memory/flutter_architecture_guide.md
|
|
135
|
+
per_role:
|
|
136
|
+
intent_mapper:
|
|
137
|
+
- "{{behavior_docs}}/{{module}}.md"
|
|
138
|
+
boundary_guard:
|
|
139
|
+
- "{{behavior_docs}}/{{module}}.md"
|
|
140
|
+
baseline_tester:
|
|
141
|
+
- "{{behavior_docs}}/{{module}}.md"
|
|
142
|
+
diagnosis_analyst:
|
|
143
|
+
- "{{evidence_dir}}/intent.md"
|
|
144
|
+
- "{{evidence_dir}}/boundary.md"
|
|
145
|
+
- "{{evidence_dir}}/baseline.log"
|
|
146
|
+
rewrite_surgeon:
|
|
147
|
+
- "{{evidence_dir}}/intent.md"
|
|
148
|
+
- "{{evidence_dir}}/boundary.md"
|
|
149
|
+
- "{{evidence_dir}}/diagnosis.md"
|
|
150
|
+
equivalence_verifier:
|
|
151
|
+
- "{{evidence_dir}}/baseline.log"
|
|
152
|
+
- "{{evidence_dir}}/diagnosis.md"
|
|
153
|
+
rewrite_reviewer:
|
|
154
|
+
- "{{evidence_dir}}/intent.md"
|
|
155
|
+
- "{{evidence_dir}}/boundary.md"
|
|
156
|
+
- "{{evidence_dir}}/equivalence.md"
|
|
157
|
+
|
|
158
|
+
verifier_policy:
|
|
159
|
+
allow_builtin_asserts:
|
|
160
|
+
- clean_working_tree
|
|
161
|
+
- no_test_regression
|
|
162
|
+
|
|
163
|
+
roles:
|
|
164
|
+
intent_mapper:
|
|
165
|
+
description: Locks module intent, v1 truth, success criteria, and explicit non-goals.
|
|
166
|
+
tool_permissions:
|
|
167
|
+
allow: [Read, Grep, Glob, Write]
|
|
168
|
+
deny: [Edit, Bash, NotebookEdit]
|
|
169
|
+
scope:
|
|
170
|
+
read: ["**/*"]
|
|
171
|
+
write: ["{{evidence_dir}}/**"]
|
|
172
|
+
instructions:
|
|
173
|
+
- "Read the behavior doc and v1 source references before writing intent."
|
|
174
|
+
- "Define exact module scope, success criteria, and explicit non-goals."
|
|
175
|
+
- "Do not edit implementation or tests."
|
|
176
|
+
|
|
177
|
+
boundary_guard:
|
|
178
|
+
description: Freezes allowed paths, forbidden areas, tool policy, and escalation triggers.
|
|
179
|
+
tool_permissions:
|
|
180
|
+
allow: [Read, Grep, Glob, Write]
|
|
181
|
+
deny: [Edit, Bash, NotebookEdit]
|
|
182
|
+
scope:
|
|
183
|
+
read: ["**/*"]
|
|
184
|
+
write: ["{{evidence_dir}}/**"]
|
|
185
|
+
instructions:
|
|
186
|
+
- "Record allowed write paths and forbidden source areas."
|
|
187
|
+
- "Treat cross-module rewrites or unbounded scope as blockers."
|
|
188
|
+
- "Do not edit implementation or tests."
|
|
189
|
+
|
|
190
|
+
baseline_tester:
|
|
191
|
+
description: Captures baseline test behavior before rewrite.
|
|
192
|
+
tool_permissions:
|
|
193
|
+
allow: [Read, Grep, Glob, Bash, Write]
|
|
194
|
+
deny: [Edit, NotebookEdit]
|
|
195
|
+
scope:
|
|
196
|
+
read: ["**/*"]
|
|
197
|
+
write: ["{{evidence_dir}}/**"]
|
|
198
|
+
instructions:
|
|
199
|
+
- "Run the declared test command before edits."
|
|
200
|
+
- "Record pass/fail/skip/hung counts and known failures."
|
|
201
|
+
- "Do not change code to make baseline pass."
|
|
202
|
+
|
|
203
|
+
diagnosis_analyst:
|
|
204
|
+
description: Classifies gaps using v1 behavior evidence without prescribing implementation.
|
|
205
|
+
tool_permissions:
|
|
206
|
+
allow: [Read, Grep, Glob, Write]
|
|
207
|
+
deny: [Edit, Bash, NotebookEdit]
|
|
208
|
+
scope:
|
|
209
|
+
read: ["**/*"]
|
|
210
|
+
write: ["{{evidence_dir}}/**"]
|
|
211
|
+
instructions:
|
|
212
|
+
- "For each failing, skipped, or missing behavior, read test code, v1 source, and v2 current state."
|
|
213
|
+
- "Classify as BUG, UNIMPLEMENTED, INFRA, TEST_BUG, or REMOVED."
|
|
214
|
+
- "Write evidence and classification only; do not include fix prescriptions."
|
|
215
|
+
|
|
216
|
+
rewrite_surgeon:
|
|
217
|
+
description: Performs the smallest behavior-preserving v2 rewrite inside the frozen boundary.
|
|
218
|
+
tool_permissions:
|
|
219
|
+
allow: [Read, Edit, Write, Grep, Glob, Bash]
|
|
220
|
+
scope:
|
|
221
|
+
read: ["**/*"]
|
|
222
|
+
write: ["{{target_scope}}", "{{test_path}}/**"]
|
|
223
|
+
instructions:
|
|
224
|
+
- "Read intent, boundary, approved diagnosis, and v1 source before any edit."
|
|
225
|
+
- "Apply the smallest behavior-preserving rewrite for this module."
|
|
226
|
+
- "Use v2 architecture conventions, but do not change product behavior."
|
|
227
|
+
- "Run targeted tests after material changes."
|
|
228
|
+
- "Stop if the required change exceeds the frozen boundary."
|
|
229
|
+
|
|
230
|
+
equivalence_verifier:
|
|
231
|
+
description: Compares baseline and post-rewrite behavior and records equivalence evidence.
|
|
232
|
+
tool_permissions:
|
|
233
|
+
allow: [Read, Grep, Glob, Bash, Write]
|
|
234
|
+
deny: [Edit, NotebookEdit]
|
|
235
|
+
scope:
|
|
236
|
+
read: ["**/*"]
|
|
237
|
+
write: ["{{evidence_dir}}/**"]
|
|
238
|
+
instructions:
|
|
239
|
+
- "Run the declared test command after rewrite."
|
|
240
|
+
- "Compare current results with baseline and diagnosis classifications."
|
|
241
|
+
- "Mark unproven equivalence as a blocker."
|
|
242
|
+
|
|
243
|
+
rewrite_reviewer:
|
|
244
|
+
description: Reviews diff, evidence, and risk before final approval.
|
|
245
|
+
tool_permissions:
|
|
246
|
+
allow: [Read, Grep, Glob, Bash, Write]
|
|
247
|
+
deny: [Edit, NotebookEdit]
|
|
248
|
+
scope:
|
|
249
|
+
read: ["**/*"]
|
|
250
|
+
write: ["{{evidence_dir}}/**"]
|
|
251
|
+
instructions:
|
|
252
|
+
- "Review final diff against intent, boundary, diagnosis, and equivalence evidence."
|
|
253
|
+
- "Reject scope creep, fake tests, unrelated refactors, or unapproved behavior deltas."
|
|
254
|
+
- "Write final evidence package with verdict and residual risks."
|
|
255
|
+
|
|
256
|
+
workflows:
|
|
257
|
+
rewrite-governed:
|
|
258
|
+
name: Governed Flutter Rewrite
|
|
259
|
+
description: "Intent-locked Flutter rewrite workflow: freeze scope, capture baseline, diagnose, rewrite, prove equivalence, and package evidence."
|
|
260
|
+
consumes:
|
|
261
|
+
- type: state
|
|
262
|
+
name: module_rewrite_request
|
|
263
|
+
required: true
|
|
264
|
+
description: Target module and rewrite goal.
|
|
265
|
+
produces:
|
|
266
|
+
- type: file
|
|
267
|
+
path: "{{evidence_dir}}/evidence.md"
|
|
268
|
+
description: Final rewrite evidence package.
|
|
269
|
+
default_isolation: worktree
|
|
270
|
+
retry_policy:
|
|
271
|
+
max_retries: 1
|
|
272
|
+
retry_from: equivalence_verify
|
|
273
|
+
backoff: none
|
|
274
|
+
steps:
|
|
275
|
+
- id: intent_lock
|
|
276
|
+
role: intent_mapper
|
|
277
|
+
description: Lock module intent, v1 truth, success criteria, and non-goals.
|
|
278
|
+
enforce:
|
|
279
|
+
read_only: true
|
|
280
|
+
additional_write_paths: ["{{evidence_dir}}/**"]
|
|
281
|
+
handoff:
|
|
282
|
+
produces:
|
|
283
|
+
- type: file
|
|
284
|
+
path: "{{evidence_dir}}/intent.md"
|
|
285
|
+
description: Locked module intent and equivalence criteria.
|
|
286
|
+
completion:
|
|
287
|
+
- file_contains: { path: "{{evidence_dir}}/intent.md", pattern: "Equivalence criteria" }
|
|
288
|
+
checkpoints:
|
|
289
|
+
- assert: clean_working_tree
|
|
290
|
+
action: warn
|
|
291
|
+
message: "Record any pre-existing dirty state before rewrite."
|
|
292
|
+
prompt: |
|
|
293
|
+
Lock rewrite intent for module {{module}} before implementation.
|
|
294
|
+
Write {{evidence_dir}}/intent.md with:
|
|
295
|
+
- Module and exact target scope
|
|
296
|
+
- v1 truth references under {{v1_path}}
|
|
297
|
+
- v2 target paths under {{v2_path}}
|
|
298
|
+
- Explicit non-goals
|
|
299
|
+
- Equivalence criteria
|
|
300
|
+
- Allowed behavior deltas, if any
|
|
301
|
+
|
|
302
|
+
- id: boundary_freeze
|
|
303
|
+
role: boundary_guard
|
|
304
|
+
depends_on: [intent_lock]
|
|
305
|
+
description: Freeze allowed write paths, forbidden areas, tool policy, and escalation triggers.
|
|
306
|
+
enforce:
|
|
307
|
+
read_only: true
|
|
308
|
+
additional_write_paths: ["{{evidence_dir}}/**"]
|
|
309
|
+
handoff:
|
|
310
|
+
consumes:
|
|
311
|
+
- type: file
|
|
312
|
+
path: "{{evidence_dir}}/intent.md"
|
|
313
|
+
from: intent_lock
|
|
314
|
+
description: Locked intent.
|
|
315
|
+
produces:
|
|
316
|
+
- type: file
|
|
317
|
+
path: "{{evidence_dir}}/boundary.md"
|
|
318
|
+
description: Frozen rewrite boundary.
|
|
319
|
+
completion:
|
|
320
|
+
- file_contains: { path: "{{evidence_dir}}/boundary.md", pattern: "Allowed writes" }
|
|
321
|
+
prompt: |
|
|
322
|
+
Freeze rewrite boundary for module {{module}}.
|
|
323
|
+
Write {{evidence_dir}}/boundary.md with:
|
|
324
|
+
- Allowed writes: {{target_scope}}, {{test_path}}/**
|
|
325
|
+
- Forbidden areas
|
|
326
|
+
- Required context files
|
|
327
|
+
- Required checks: {{test_command}}
|
|
328
|
+
- Escalation triggers
|
|
329
|
+
|
|
330
|
+
- id: baseline_characterization
|
|
331
|
+
role: baseline_tester
|
|
332
|
+
depends_on: [boundary_freeze]
|
|
333
|
+
description: Capture baseline behavior before rewrite.
|
|
334
|
+
handoff:
|
|
335
|
+
consumes:
|
|
336
|
+
- type: file
|
|
337
|
+
path: "{{evidence_dir}}/boundary.md"
|
|
338
|
+
from: boundary_freeze
|
|
339
|
+
description: Frozen boundary.
|
|
340
|
+
produces:
|
|
341
|
+
- type: test_result
|
|
342
|
+
path: "{{evidence_dir}}/baseline.log"
|
|
343
|
+
description: Baseline test output before rewrite.
|
|
344
|
+
completion:
|
|
345
|
+
- file_not_empty: "{{evidence_dir}}/baseline.log"
|
|
346
|
+
checkpoints:
|
|
347
|
+
- assert: no_test_regression
|
|
348
|
+
command: "{{test_command}}"
|
|
349
|
+
action: warn
|
|
350
|
+
message: "Baseline command should run before rewrite; known failures must be recorded."
|
|
351
|
+
prompt: |
|
|
352
|
+
Capture baseline behavior for module {{module}} before code edits.
|
|
353
|
+
Run: {{test_command}}
|
|
354
|
+
Save output or concise transcript to {{evidence_dir}}/baseline.log.
|
|
355
|
+
Record known failures, skipped tests, and any command that cannot run.
|
|
356
|
+
|
|
357
|
+
- id: diagnosis
|
|
358
|
+
role: diagnosis_analyst
|
|
359
|
+
depends_on: [baseline_characterization]
|
|
360
|
+
description: Classify failures and missing behavior using v1 evidence.
|
|
361
|
+
enforce:
|
|
362
|
+
read_only: true
|
|
363
|
+
additional_write_paths: ["{{evidence_dir}}/**"]
|
|
364
|
+
handoff:
|
|
365
|
+
consumes:
|
|
366
|
+
- type: file
|
|
367
|
+
path: "{{evidence_dir}}/intent.md"
|
|
368
|
+
from: intent_lock
|
|
369
|
+
description: Locked intent.
|
|
370
|
+
- type: test_result
|
|
371
|
+
path: "{{evidence_dir}}/baseline.log"
|
|
372
|
+
from: baseline_characterization
|
|
373
|
+
description: Baseline output.
|
|
374
|
+
produces:
|
|
375
|
+
- type: file
|
|
376
|
+
path: "{{evidence_dir}}/diagnosis.md"
|
|
377
|
+
description: Evidence-only diagnosis classification.
|
|
378
|
+
completion:
|
|
379
|
+
- file_contains: { path: "{{evidence_dir}}/diagnosis.md", pattern: "Classification" }
|
|
380
|
+
prompt: |
|
|
381
|
+
Diagnose module {{module}} without editing code.
|
|
382
|
+
Write {{evidence_dir}}/diagnosis.md with:
|
|
383
|
+
- Classification table: BUG / UNIMPLEMENTED / INFRA / TEST_BUG / REMOVED
|
|
384
|
+
- v1 evidence path and snippet reference for each item
|
|
385
|
+
- v2 current state path for each item
|
|
386
|
+
- Baseline evidence reference
|
|
387
|
+
Do not include implementation order, prescriptions, or surgeon notes.
|
|
388
|
+
|
|
389
|
+
- id: rewrite
|
|
390
|
+
role: rewrite_surgeon
|
|
391
|
+
depends_on: [diagnosis]
|
|
392
|
+
description: Rewrite inside the frozen boundary while preserving behavior.
|
|
393
|
+
isolation: worktree
|
|
394
|
+
enforce:
|
|
395
|
+
additional_write_paths: ["{{target_scope}}", "{{test_path}}/**"]
|
|
396
|
+
handoff:
|
|
397
|
+
consumes:
|
|
398
|
+
- type: file
|
|
399
|
+
path: "{{evidence_dir}}/intent.md"
|
|
400
|
+
from: intent_lock
|
|
401
|
+
description: Locked intent.
|
|
402
|
+
- type: file
|
|
403
|
+
path: "{{evidence_dir}}/boundary.md"
|
|
404
|
+
from: boundary_freeze
|
|
405
|
+
description: Frozen boundary.
|
|
406
|
+
- type: file
|
|
407
|
+
path: "{{evidence_dir}}/diagnosis.md"
|
|
408
|
+
from: diagnosis
|
|
409
|
+
description: Diagnosis classification.
|
|
410
|
+
produces:
|
|
411
|
+
- type: summary
|
|
412
|
+
name: rewrite_summary
|
|
413
|
+
description: Summary of behavior-preserving rewrite changes.
|
|
414
|
+
checkpoints:
|
|
415
|
+
- assert: no_test_regression
|
|
416
|
+
command: "{{test_command}}"
|
|
417
|
+
action: warn
|
|
418
|
+
message: "Rewrite should keep the declared verification path non-regressing."
|
|
419
|
+
prompt: |
|
|
420
|
+
Rewrite module {{module}} inside the frozen boundary only.
|
|
421
|
+
Before editing, read {{evidence_dir}}/intent.md, boundary.md, diagnosis.md, and the relevant v1 source.
|
|
422
|
+
Preserve behavior exactly unless the intent file explicitly approves a delta.
|
|
423
|
+
Use v2 Flutter architecture conventions.
|
|
424
|
+
Run targeted checks after material changes.
|
|
425
|
+
Produce a concise rewrite_summary with files changed, diagnosis items addressed, and commands run.
|
|
426
|
+
|
|
427
|
+
- id: equivalence_verify
|
|
428
|
+
role: equivalence_verifier
|
|
429
|
+
depends_on: [rewrite]
|
|
430
|
+
description: Prove rewritten behavior is equivalent to v1 and baseline expectations.
|
|
431
|
+
handoff:
|
|
432
|
+
consumes:
|
|
433
|
+
- type: test_result
|
|
434
|
+
path: "{{evidence_dir}}/baseline.log"
|
|
435
|
+
from: baseline_characterization
|
|
436
|
+
description: Baseline output.
|
|
437
|
+
- type: summary
|
|
438
|
+
name: rewrite_summary
|
|
439
|
+
from: rewrite
|
|
440
|
+
description: Rewrite summary.
|
|
441
|
+
produces:
|
|
442
|
+
- type: test_result
|
|
443
|
+
path: "{{evidence_dir}}/equivalence.log"
|
|
444
|
+
description: Post-rewrite verification output.
|
|
445
|
+
- type: file
|
|
446
|
+
path: "{{evidence_dir}}/equivalence.md"
|
|
447
|
+
description: Equivalence verdict.
|
|
448
|
+
completion:
|
|
449
|
+
- file_contains: { path: "{{evidence_dir}}/equivalence.md", pattern: "Equivalent: yes" }
|
|
450
|
+
checkpoints:
|
|
451
|
+
- assert: no_test_regression
|
|
452
|
+
command: "{{test_command}}"
|
|
453
|
+
message: "Equivalence validation must pass or record a blocker before review."
|
|
454
|
+
prompt: |
|
|
455
|
+
Verify module {{module}} after rewrite.
|
|
456
|
+
Run: {{test_command}}
|
|
457
|
+
Save output to {{evidence_dir}}/equivalence.log.
|
|
458
|
+
Write {{evidence_dir}}/equivalence.md with:
|
|
459
|
+
- Equivalent: yes/no
|
|
460
|
+
- Baseline comparison
|
|
461
|
+
- v1 behavior evidence covered
|
|
462
|
+
- Remaining unimplemented / skipped / blocked behavior
|
|
463
|
+
- Any unverified behavior or residual risk
|
|
464
|
+
|
|
465
|
+
- id: review
|
|
466
|
+
role: rewrite_reviewer
|
|
467
|
+
depends_on: [equivalence_verify]
|
|
468
|
+
description: Review final diff and package evidence.
|
|
469
|
+
enforce:
|
|
470
|
+
read_only: true
|
|
471
|
+
additional_write_paths: ["{{evidence_dir}}/**"]
|
|
472
|
+
handoff:
|
|
473
|
+
consumes:
|
|
474
|
+
- type: file
|
|
475
|
+
path: "{{evidence_dir}}/intent.md"
|
|
476
|
+
from: intent_lock
|
|
477
|
+
description: Locked intent.
|
|
478
|
+
- type: file
|
|
479
|
+
path: "{{evidence_dir}}/boundary.md"
|
|
480
|
+
from: boundary_freeze
|
|
481
|
+
description: Frozen boundary.
|
|
482
|
+
- type: file
|
|
483
|
+
path: "{{evidence_dir}}/diagnosis.md"
|
|
484
|
+
from: diagnosis
|
|
485
|
+
description: Diagnosis.
|
|
486
|
+
- type: file
|
|
487
|
+
path: "{{evidence_dir}}/equivalence.md"
|
|
488
|
+
from: equivalence_verify
|
|
489
|
+
description: Equivalence verdict.
|
|
490
|
+
produces:
|
|
491
|
+
- type: file
|
|
492
|
+
path: "{{evidence_dir}}/evidence.md"
|
|
493
|
+
description: Final rewrite evidence package.
|
|
494
|
+
completion:
|
|
495
|
+
- file_contains: { path: "{{evidence_dir}}/evidence.md", pattern: "Verdict: APPROVE" }
|
|
496
|
+
prompt: |
|
|
497
|
+
Review module {{module}} rewrite evidence.
|
|
498
|
+
Write {{evidence_dir}}/evidence.md with:
|
|
499
|
+
- Intent summary
|
|
500
|
+
- Boundary summary
|
|
501
|
+
- Diagnosis items addressed
|
|
502
|
+
- Test/equivalence evidence
|
|
503
|
+
- RuntimeDecisionEvent or diagnostic evidence refs when available
|
|
504
|
+
- Unsupported or partial harness capability gaps
|
|
505
|
+
- Residual risks
|
|
506
|
+
- Verdict: APPROVE or REQUEST_CHANGES
|
|
@@ -5,6 +5,26 @@
|
|
|
5
5
|
version: "0.1.0"
|
|
6
6
|
id: template_flutter_rewrite
|
|
7
7
|
name: Flutter Rewrite (Unified)
|
|
8
|
+
purpose: Govern a behavior-preserving Flutter v1 to v2 rewrite with evidence, review, and verification gates.
|
|
9
|
+
maturity: adopted
|
|
10
|
+
fit:
|
|
11
|
+
- Flutter module rewrites that must preserve v1 behavior.
|
|
12
|
+
- Dogfood-backed work needing behavior locks, diagnosis, fixes, and verification.
|
|
13
|
+
not_for:
|
|
14
|
+
- Feature redesign or product improvement during migration.
|
|
15
|
+
- Generic non-Flutter refactors without v1/v2 behavior equivalence constraints.
|
|
16
|
+
inputs:
|
|
17
|
+
- v1 source path
|
|
18
|
+
- v2 source path
|
|
19
|
+
- behavior documents
|
|
20
|
+
- diagnosis and progress evidence
|
|
21
|
+
outputs:
|
|
22
|
+
- governed rewrite workflow
|
|
23
|
+
- behavior lock artifacts
|
|
24
|
+
- verification and review evidence
|
|
25
|
+
lineage:
|
|
26
|
+
source: dogfood
|
|
27
|
+
reference: docs/archive/2026H1/references/flutter-rewrite-workflow-asset.md
|
|
8
28
|
type: project
|
|
9
29
|
namespace: frw
|
|
10
30
|
|
|
@@ -5,6 +5,25 @@
|
|
|
5
5
|
version: "0.1.0"
|
|
6
6
|
id: template_frontend_quality
|
|
7
7
|
name: Frontend Quality Standards
|
|
8
|
+
purpose: Provide frontend implementation guardrails for accessibility, performance, design fidelity, and framework best practices.
|
|
9
|
+
maturity: draft
|
|
10
|
+
fit:
|
|
11
|
+
- React, Next.js, Vue, or similar frontend work needing a local quality baseline.
|
|
12
|
+
- UI implementation where accessibility, responsive layout, and performance must stay visible.
|
|
13
|
+
not_for:
|
|
14
|
+
- Replacing visual QA, Playwright checks, or design review evidence.
|
|
15
|
+
- Claiming Online runtime authority from browser UI.
|
|
16
|
+
inputs:
|
|
17
|
+
- UI route or component scope
|
|
18
|
+
- design and accessibility requirements
|
|
19
|
+
- framework and performance constraints
|
|
20
|
+
outputs:
|
|
21
|
+
- frontend quality guardrails
|
|
22
|
+
- accessibility and performance review notes
|
|
23
|
+
- design-fidelity checklist
|
|
24
|
+
lineage:
|
|
25
|
+
source: built-in frontend quality standards template
|
|
26
|
+
reference: src/templates/frontend-quality.dna.yaml
|
|
8
27
|
type: project
|
|
9
28
|
namespace: fe
|
|
10
29
|
|
|
@@ -5,6 +5,26 @@
|
|
|
5
5
|
version: "0.1.0"
|
|
6
6
|
id: template_full_pipeline
|
|
7
7
|
name: Full Development Pipeline
|
|
8
|
+
purpose: Run a complete plan, implement, test, review, and release-note pipeline for feature work that needs staged evidence.
|
|
9
|
+
maturity: reviewed
|
|
10
|
+
fit:
|
|
11
|
+
- Product or engineering tasks that need design, implementation, verification, and review stages.
|
|
12
|
+
- Work where acceptance criteria and release notes must stay connected to code changes.
|
|
13
|
+
not_for:
|
|
14
|
+
- Tiny one-command fixes that do not need a full team workflow.
|
|
15
|
+
- Skipping tests or review because implementation appears complete.
|
|
16
|
+
inputs:
|
|
17
|
+
- requirement or task brief
|
|
18
|
+
- codebase context
|
|
19
|
+
- acceptance criteria and verification commands
|
|
20
|
+
outputs:
|
|
21
|
+
- design document
|
|
22
|
+
- implementation diff
|
|
23
|
+
- test evidence and review report
|
|
24
|
+
- release notes
|
|
25
|
+
lineage:
|
|
26
|
+
source: Superpowers-inspired plan/implement/test/review workflow shape
|
|
27
|
+
reference: src/templates/full-pipeline.dna.yaml
|
|
8
28
|
type: project
|
|
9
29
|
namespace: fp
|
|
10
30
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type TemplateCatalogEntry } from "./catalog.js";
|
|
2
|
+
export type TemplateVisibility = "public" | "personal" | "internal_ready";
|
|
3
|
+
export type TemplateHarness = "claude_code" | "codex_cli";
|
|
4
|
+
export type TemplateEvidencePosture = "explicit_gap" | "example" | "dogfood";
|
|
5
|
+
export type TemplateAssetMaturity = "draft" | "reviewed" | "dogfood" | "internal_ready";
|
|
6
|
+
export type TemplateSyncSurface = "markdown_injection" | "compiled_ir" | "claude_mcp" | "claude_settings_hooks" | "claude_agents" | "claude_skills" | "workflow_scripts" | "codex_adapter";
|
|
7
|
+
export interface TemplateEvidenceExample {
|
|
8
|
+
label: string;
|
|
9
|
+
path: string;
|
|
10
|
+
kind: "doc" | "dogfood" | "reference";
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TemplateEvidenceGap {
|
|
14
|
+
status: "needs_local_evidence" | "covered_by_examples";
|
|
15
|
+
summary: string;
|
|
16
|
+
nextCommands: string[];
|
|
17
|
+
acceptanceCriteria: string[];
|
|
18
|
+
notEvidence: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface TemplateAssetRelation {
|
|
21
|
+
relatedTemplate: string;
|
|
22
|
+
relation: "main_workflow" | "reusable_loop" | "followup_draft" | "companion_asset";
|
|
23
|
+
purpose: string;
|
|
24
|
+
preserves: string[];
|
|
25
|
+
nextCommands: string[];
|
|
26
|
+
notAllowedToImply: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface TemplateMarketplaceMetadata {
|
|
29
|
+
visibility: TemplateVisibility;
|
|
30
|
+
purpose: string;
|
|
31
|
+
fit: string[];
|
|
32
|
+
inputs: string[];
|
|
33
|
+
outputs: string[];
|
|
34
|
+
assetRelations: TemplateAssetRelation[];
|
|
35
|
+
evidencePosture: TemplateEvidencePosture;
|
|
36
|
+
evidenceGap: TemplateEvidenceGap;
|
|
37
|
+
maturity: TemplateAssetMaturity;
|
|
38
|
+
lifecycleGuide: {
|
|
39
|
+
state: TemplateVisibility;
|
|
40
|
+
meaning: string;
|
|
41
|
+
availableNow: string[];
|
|
42
|
+
nextStep: string;
|
|
43
|
+
notAllowedToImply: string[];
|
|
44
|
+
};
|
|
45
|
+
supportedHarnesses: TemplateHarness[];
|
|
46
|
+
requiredDnaVersion: string;
|
|
47
|
+
syncSurfaces: TemplateSyncSurface[];
|
|
48
|
+
evidenceExamples: TemplateEvidenceExample[];
|
|
49
|
+
install: {
|
|
50
|
+
command: string;
|
|
51
|
+
syncCommands: string[];
|
|
52
|
+
};
|
|
53
|
+
review: {
|
|
54
|
+
inspectCommand: string;
|
|
55
|
+
adoptionCommand: string;
|
|
56
|
+
orgBindCommand: string;
|
|
57
|
+
orgReviewCommand: string;
|
|
58
|
+
rolloutCommand: string;
|
|
59
|
+
boundary: string;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface TemplateMarketplaceCatalogItem {
|
|
63
|
+
name: string;
|
|
64
|
+
displayName?: string;
|
|
65
|
+
namespace?: string;
|
|
66
|
+
version?: string;
|
|
67
|
+
source: TemplateCatalogEntry["source"];
|
|
68
|
+
contentHash: string;
|
|
69
|
+
keywords: readonly string[];
|
|
70
|
+
marketplace: TemplateMarketplaceMetadata;
|
|
71
|
+
}
|
|
72
|
+
export interface TemplateMarketplaceCatalog {
|
|
73
|
+
schema_version: "intentdna.template_marketplace_catalog.v1";
|
|
74
|
+
generated_at: string;
|
|
75
|
+
totals: {
|
|
76
|
+
templates: number;
|
|
77
|
+
public: number;
|
|
78
|
+
personal: number;
|
|
79
|
+
internal_ready: number;
|
|
80
|
+
claude_code: number;
|
|
81
|
+
codex_cli: number;
|
|
82
|
+
};
|
|
83
|
+
items: TemplateMarketplaceCatalogItem[];
|
|
84
|
+
boundaries: string[];
|
|
85
|
+
}
|
|
86
|
+
export declare function getTemplateMarketplaceMetadata(template: TemplateCatalogEntry, options?: {
|
|
87
|
+
content?: string;
|
|
88
|
+
}): Promise<TemplateMarketplaceMetadata>;
|
|
89
|
+
export declare function buildTemplateMarketplaceCatalog(options?: {
|
|
90
|
+
projectDir?: string;
|
|
91
|
+
generatedAt?: string;
|
|
92
|
+
}): Promise<TemplateMarketplaceCatalog>;
|