@surlymochan/evalid 0.0.0-stage → 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/CHANGELOG.md +74 -0
- package/LICENSE +21 -0
- package/README.md +315 -2
- package/RELEASE_NOTES.md +102 -0
- package/atoms/registry.json +758 -0
- package/bin/xflow.js +7208 -0
- package/docs/adoption/README.md +128 -0
- package/docs/adoption/openflow-release-hardening.md +61 -0
- package/docs/benchmark-openflow-vs-gstack-superpowers-openspec-2026-05-25.md +81 -0
- package/docs/compatibility.md +52 -0
- package/docs/competitive-benchmark.md +108 -0
- package/docs/corps-operator-guide.md +75 -0
- package/docs/demo-proof.md +126 -0
- package/docs/examples-gallery.md +115 -0
- package/docs/fixtures/tracker-item.json +7 -0
- package/docs/goal-vs-codex.md +129 -0
- package/docs/gstack-comparison.md +88 -0
- package/docs/install-upgrade.md +133 -0
- package/docs/integrations.md +49 -0
- package/docs/launch-demo.md +123 -0
- package/docs/launch-dossier.md +180 -0
- package/docs/methodology.md +149 -0
- package/docs/npm-publish-handoff.md +83 -0
- package/docs/openspec-migration.md +106 -0
- package/docs/public-benchmark.md +68 -0
- package/docs/public-release.md +145 -0
- package/docs/quality-assessment.md +139 -0
- package/docs/quickstart.md +156 -0
- package/docs/reviewer-guide.md +43 -0
- package/docs/spec-kit-benchmark.md +73 -0
- package/docs/super-assistant-comparison.md +106 -0
- package/docs/superpowers-comparison.md +82 -0
- package/docs/team-adoption.md +123 -0
- package/docs/tooling-matrix.md +91 -0
- package/docs/walkthrough.md +76 -0
- package/docs/workflow-manual.md +1125 -0
- package/package.json +83 -4
- package/prompts/pencil-draft.md +46 -0
- package/prompts/pencil-refine.md +46 -0
- package/prompts/phase-artifact.md +24 -0
- package/prompts/phase-execution.md +32 -0
- package/schemas/competitor-reconstruction-contract.schema.json +91 -0
- package/schemas/llm-design-review-aggregate.schema.json +83 -0
- package/schemas/visual-benchmark.schema.json +978 -0
- package/schemas/workflow.schema.json +100 -0
- package/scripts/run-tests.mjs +23 -0
- package/scripts/takein_digest.py +139 -0
- package/specs/README.md +118 -0
- package/specs/architecture.md +36 -0
- package/specs/product.md +33 -0
- package/specs/workflow.md +349 -0
- package/src/agent_team/atoms/codex-app-bridge.js +8 -0
- package/src/agent_team/atoms/design/competitor-reconstruction-review.js +44 -0
- package/src/agent_team/atoms/design/contract-freeze.js +8 -0
- package/src/agent_team/atoms/design/generation-contract.js +442 -0
- package/src/agent_team/atoms/design/reconstruction-pack.js +246 -0
- package/src/agent_team/atoms/design/reference-surface-lock.js +49 -0
- package/src/agent_team/atoms/patch-challenge.js +19 -0
- package/src/agent_team/atoms/pencil/accept.js +9 -0
- package/src/agent_team/atoms/pencil/draft.js +365 -0
- package/src/agent_team/atoms/pencil/refine.js +229 -0
- package/src/agent_team/atoms/phase-run-dispatch.js +8 -0
- package/src/agent_team/atoms/team-run.js +380 -0
- package/src/agent_team/atoms/visual/aesthetic-review.js +231 -0
- package/src/agent_team/atoms/visual/benchmark-repair-plan.js +291 -0
- package/src/agent_team/atoms/visual/benchmark.js +1652 -0
- package/src/agent_team/atoms/visual/design-selection.js +23 -0
- package/src/agent_team/atoms/visual/direction-synthesis.js +124 -0
- package/src/agent_team/atoms/visual/dom-rect-export.js +129 -0
- package/src/agent_team/atoms/visual/image-diff.js +186 -0
- package/src/agent_team/atoms/visual/layout-competition.js +8 -0
- package/src/agent_team/atoms/visual/page-evidence-capture.js +806 -0
- package/src/agent_team/atoms/visual/playwright-runtime.js +8 -0
- package/src/agent_team/atoms/visual/review-aggregate.js +87 -0
- package/src/agent_team/atoms/visual/review.js +77 -0
- package/src/agent_team/atoms/visual/visual-report.js +197 -0
- package/src/agent_team/atoms/visual/visual-token-export.js +417 -0
- package/src/agent_team/common.js +311 -0
- package/src/core/atoms/agent-invoke.js +684 -0
- package/src/core/atoms/event/ingest.js +30 -0
- package/src/core/atoms/experience/digest.js +55 -0
- package/src/core/atoms/gate/artifact-verify.js +83 -0
- package/src/core/atoms/gate/competitor-contract-validate.js +119 -0
- package/src/core/atoms/gate/evidence-collect.js +64 -0
- package/src/core/atoms/gate/payload-from-phase-run.js +78 -0
- package/src/core/atoms/gate/visual-benchmark-validate.js +183 -0
- package/src/core/atoms/gate/workbench.js +79 -0
- package/src/core/atoms/intake/classify.js +15 -0
- package/src/core/atoms/intake/design-skill-select.js +16 -0
- package/src/core/atoms/intake/preview-or-refine.js +19 -0
- package/src/core/atoms/intake/recommend.js +20 -0
- package/src/core/atoms/intake/research-same-category.js +19 -0
- package/src/core/atoms/intervention/create.js +30 -0
- package/src/core/atoms/memory/manage.js +27 -0
- package/src/core/atoms/memory/mount.js +13 -0
- package/src/core/atoms/mission/create.js +19 -0
- package/src/core/atoms/mission/list.js +14 -0
- package/src/core/atoms/mission/show.js +26 -0
- package/src/core/atoms/notify/checkpoint.js +46 -0
- package/src/core/atoms/phase-run/complete.js +42 -0
- package/src/core/atoms/phase-run/fail.js +40 -0
- package/src/core/atoms/phase-run/persist.js +39 -0
- package/src/core/atoms/phase-run/start.js +30 -0
- package/src/core/atoms/plugin/run.js +76 -0
- package/src/core/atoms/policy/gate.js +90 -0
- package/src/core/atoms/policy/resolve.js +11 -0
- package/src/core/atoms/storage/sync.js +57 -0
- package/src/core/atoms/workflow/advance.js +25 -0
- package/src/core/atoms/workflow/guard.js +127 -0
- package/src/core/atoms/workflow/state-load.js +37 -0
- package/src/core/bindings.js +37 -0
- package/src/core/change-artifacts.js +134 -0
- package/src/core/competitive-score.js +265 -0
- package/src/core/concurrency-policy.js +35 -0
- package/src/core/execution-log.js +108 -0
- package/src/core/intake-recommendation.js +134 -0
- package/src/core/memory-state.js +62 -0
- package/src/core/mission-state.js +780 -0
- package/src/core/pending-gates.js +66 -0
- package/src/core/phase-cost.js +116 -0
- package/src/core/phase-run-read.js +27 -0
- package/src/core/policy-overlay.js +180 -0
- package/src/core/state-store.js +201 -0
- package/src/core/workflow-executor.js +998 -0
- package/src/core/workflow-integrity.js +111 -0
- package/src/core/workflow-loader.js +163 -0
- package/src/core/workflow-rerun.js +84 -0
- package/src/core/workflow-state.js +119 -0
- package/src/server.js +1307 -0
- package/workflows/corps.yaml +479 -0
- package/workflows/yolo.yaml +233 -0
- package/xflow/README.md +76 -0
- package/xflow/aha/SKILL.md +82 -0
- package/xflow/aha/scripts/append_aha.py +50 -0
- package/xflow/archive/scripts/archive_change.py +338 -0
- package/xflow/archive/templates/merge-design.md +54 -0
- package/xflow/archive/templates/merge-workflow.md +26 -0
- package/xflow/atoms/__init__.py +6 -0
- package/xflow/atoms/a1_issue_create_or_patch.py +70 -0
- package/xflow/atoms/a2_branch_create_and_link.py +42 -0
- package/xflow/atoms/a3_repo_doctor.py +11 -0
- package/xflow/atoms/a4_project_set_status.py +11 -0
- package/xflow/atoms/a5_archive_commit_push_close.py +11 -0
- package/xflow/atoms/a6_pr_create.py +72 -0
- package/xflow/atoms/b1_change_scaffold.py +11 -0
- package/xflow/atoms/b2_status_read.py +16 -0
- package/xflow/atoms/b2b_status_write.py +20 -0
- package/xflow/atoms/b3_status_transition.py +27 -0
- package/xflow/atoms/b4_handoff_scaffold_or_refresh.py +11 -0
- package/xflow/atoms/b5_aha_append.py +11 -0
- package/xflow/atoms/b6_takein_digest.py +11 -0
- package/xflow/atoms/b6b_lookback_digest.py +11 -0
- package/xflow/atoms/b7_change_mission_bind.py +43 -0
- package/xflow/atoms/c1_mem.py +54 -0
- package/xflow/atoms/e6_gate_local_precheck.py +23 -0
- package/xflow/atoms/h1_design_lite_gate.py +74 -0
- package/xflow/atoms/i6a_tdd_run.py +104 -0
- package/xflow/atoms/i6b_tdd_proof_validate.py +165 -0
- package/xflow/atoms/i6c_tdd_quality_review.py +357 -0
- package/xflow/atoms/j1_tests_run.py +129 -0
- package/xflow/atoms/j4a_spec_consistency_structural.py +105 -0
- package/xflow/atoms/j4b_spec_delta_review.py +316 -0
- package/xflow/atoms/j4c_openspec_migration_map.py +121 -0
- package/xflow/atoms/j4d_spec_clarify_gate.py +373 -0
- package/xflow/atoms/j6_cr_review.py +443 -0
- package/xflow/atoms/k1_artifacts_complete_check.py +39 -0
- package/xflow/atoms/k2_merge_snippets_apply.py +11 -0
- package/xflow/atoms/k3_handoff_refresh.py +14 -0
- package/xflow/atoms/k4_mem_lesson_persist.py +65 -0
- package/xflow/atoms/k5_archive_publish.py +21 -0
- package/xflow/atoms/k6_aha_merge.py +42 -0
- package/xflow/atoms/tdd_lib.py +747 -0
- package/xflow/corps/SKILL.md +109 -0
- package/xflow/exec/scripts/set_issue_in_progress.py +159 -0
- package/xflow/goal/SKILL.md +150 -0
- package/xflow/handoff/SKILL.md +95 -0
- package/xflow/handoff/scripts/scaffold_handoff.py +304 -0
- package/xflow/lookback/SKILL.md +66 -0
- package/xflow/lookback/scripts/lookback_digest.py +46 -0
- package/xflow/openissue/scripts/open_issue_flow.py +438 -0
- package/xflow/plan/SKILL.md +38 -0
- package/xflow/ralph/SKILL.md +123 -0
- package/xflow/scripts/check_installed_xflow_skill_sync.sh +44 -0
- package/xflow/scripts/common.py +480 -0
- package/xflow/scripts/doctor.py +278 -0
- package/xflow/scripts/sync_installed_xflow_skill.sh +134 -0
- package/xflow/takein/SKILL.md +81 -0
- package/xflow/takein/scripts/takein_digest.py +88 -0
- package/xflow/yolo/SKILL.md +66 -0
- package/xflow/yolo/scripts/scaffold_specs_change.py +673 -0
- package/xflow/yolo/scripts/yolo_gate.py +312 -0
- package/xflow/yolo/templates/DESIGN.md +179 -0
|
@@ -0,0 +1,758 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Canonical atom registry. Every atom has exactly ONE implementation. track=lite atoms must not import heavy modules.",
|
|
3
|
+
"atoms": {
|
|
4
|
+
"A1.issue.create_or_patch": {
|
|
5
|
+
"track": "lite",
|
|
6
|
+
"type": "python",
|
|
7
|
+
"script": "xflow/atoms/a1_issue_create_or_patch.py",
|
|
8
|
+
"description": "Create or patch a GitHub issue, return issue number and URL",
|
|
9
|
+
"input_schema": {
|
|
10
|
+
"repo": "string",
|
|
11
|
+
"change_id": "string",
|
|
12
|
+
"title": "string",
|
|
13
|
+
"body_file": "string?",
|
|
14
|
+
"issue_number": "integer?"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"A2.branch.create_and_link": {
|
|
18
|
+
"track": "lite",
|
|
19
|
+
"type": "python",
|
|
20
|
+
"script": "xflow/atoms/a2_branch_create_and_link.py",
|
|
21
|
+
"description": "Create branch named after issue, push, and link back to issue via comment",
|
|
22
|
+
"input_schema": {
|
|
23
|
+
"repo": "string",
|
|
24
|
+
"change_id": "string",
|
|
25
|
+
"issue_number": "integer",
|
|
26
|
+
"base_branch": "string?"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"A3.repo.doctor": {
|
|
30
|
+
"track": "lite",
|
|
31
|
+
"type": "python",
|
|
32
|
+
"script": "xflow/atoms/a3_repo_doctor.py",
|
|
33
|
+
"description": "Validate repo/remote/issue/branch/project consistency, emit JSON verdict",
|
|
34
|
+
"input_schema": {
|
|
35
|
+
"project_root": "string",
|
|
36
|
+
"change_id": "string"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"A4.project.set_status": {
|
|
40
|
+
"track": "lite",
|
|
41
|
+
"type": "python",
|
|
42
|
+
"script": "xflow/atoms/a4_project_set_status.py",
|
|
43
|
+
"description": "Move GitHub Project item to a named status column (In Progress / Done)",
|
|
44
|
+
"input_schema": {
|
|
45
|
+
"project_root": "string",
|
|
46
|
+
"change_id": "string",
|
|
47
|
+
"target_status": "string"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"A5.archive.commit_push_close": {
|
|
51
|
+
"track": "lite",
|
|
52
|
+
"type": "python",
|
|
53
|
+
"script": "xflow/atoms/a5_archive_commit_push_close.py",
|
|
54
|
+
"description": "Stage artifacts, create commit, push branch, close issue, mark project Done",
|
|
55
|
+
"input_schema": {
|
|
56
|
+
"project_root": "string",
|
|
57
|
+
"change_id": "string",
|
|
58
|
+
"commit_message": "string?"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"A6.pr.create": {
|
|
62
|
+
"track": "lite",
|
|
63
|
+
"type": "python",
|
|
64
|
+
"script": "xflow/atoms/a6_pr_create.py",
|
|
65
|
+
"description": "Open a PR from the issue branch against base, return PR URL",
|
|
66
|
+
"input_schema": {
|
|
67
|
+
"project_root": "string",
|
|
68
|
+
"change_id": "string",
|
|
69
|
+
"base_branch": "string?"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"B1.change.scaffold": {
|
|
73
|
+
"track": "lite",
|
|
74
|
+
"type": "python",
|
|
75
|
+
"script": "xflow/atoms/b1_change_scaffold.py",
|
|
76
|
+
"description": "Initialize specs/changes/<change_id>/ with proposal/plan/tasks/status.json",
|
|
77
|
+
"input_schema": {
|
|
78
|
+
"project_root": "string",
|
|
79
|
+
"change_id": "string",
|
|
80
|
+
"title": "string",
|
|
81
|
+
"change_type": "string"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"B2.status.read": {
|
|
85
|
+
"track": "lite",
|
|
86
|
+
"type": "python",
|
|
87
|
+
"script": "xflow/atoms/b2_status_read.py",
|
|
88
|
+
"description": "Read and return the parsed status.json for a change",
|
|
89
|
+
"input_schema": {
|
|
90
|
+
"project_root": "string",
|
|
91
|
+
"change_id": "string"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"B2b.status.write": {
|
|
95
|
+
"track": "lite",
|
|
96
|
+
"type": "python",
|
|
97
|
+
"script": "xflow/atoms/b2b_status_write.py",
|
|
98
|
+
"description": "Merge fields into status.json, preserving history arrays",
|
|
99
|
+
"input_schema": {
|
|
100
|
+
"project_root": "string",
|
|
101
|
+
"change_id": "string",
|
|
102
|
+
"fields": "object"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"B3.status.transition": {
|
|
106
|
+
"track": "lite",
|
|
107
|
+
"type": "python",
|
|
108
|
+
"script": "xflow/atoms/b3_status_transition.py",
|
|
109
|
+
"description": "Assert and record a stage or status transition with history entry",
|
|
110
|
+
"input_schema": {
|
|
111
|
+
"project_root": "string",
|
|
112
|
+
"change_id": "string",
|
|
113
|
+
"to_stage": "string?",
|
|
114
|
+
"to_status": "string?",
|
|
115
|
+
"reason": "string?"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"B4.handoff.scaffold_or_refresh": {
|
|
119
|
+
"track": "lite",
|
|
120
|
+
"type": "python",
|
|
121
|
+
"script": "xflow/atoms/b4_handoff_scaffold_or_refresh.py",
|
|
122
|
+
"description": "Create or refresh root HANDOFF.md with required Context Pack sections",
|
|
123
|
+
"input_schema": {
|
|
124
|
+
"project_root": "string",
|
|
125
|
+
"title": "string?"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"B5.aha.append": {
|
|
129
|
+
"track": "lite",
|
|
130
|
+
"type": "python",
|
|
131
|
+
"script": "xflow/atoms/b5_aha_append.py",
|
|
132
|
+
"description": "Append a structured AHA entry to root AHA.md",
|
|
133
|
+
"input_schema": {
|
|
134
|
+
"project_root": "string",
|
|
135
|
+
"title": "string",
|
|
136
|
+
"insight": "string",
|
|
137
|
+
"why": "string",
|
|
138
|
+
"action": "string",
|
|
139
|
+
"evidence": "string[]?"
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"B6.takein.digest": {
|
|
143
|
+
"track": "lite",
|
|
144
|
+
"type": "python",
|
|
145
|
+
"script": "xflow/atoms/b6_takein_digest.py",
|
|
146
|
+
"description": "Extract compact digest from HANDOFF.md and AHA.md for session rehydration",
|
|
147
|
+
"input_schema": {
|
|
148
|
+
"project_root": "string"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"B6b.lookback.digest": {
|
|
152
|
+
"track": "lite",
|
|
153
|
+
"type": "python",
|
|
154
|
+
"script": "xflow/atoms/b6b_lookback_digest.py",
|
|
155
|
+
"description": "List lookback sources (HANDOFF.md, AHA.md, DESIGN.md, recent plans)",
|
|
156
|
+
"input_schema": {
|
|
157
|
+
"project_root": "string"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"B7.change_mission.bind": {
|
|
161
|
+
"track": "lite",
|
|
162
|
+
"type": "python",
|
|
163
|
+
"script": "xflow/atoms/b7_change_mission_bind.py",
|
|
164
|
+
"description": "Write change_id <-> mission_id binding row to .as-xflow/bindings.json",
|
|
165
|
+
"input_schema": {
|
|
166
|
+
"project_root": "string",
|
|
167
|
+
"change_id": "string",
|
|
168
|
+
"mission_id": "string?",
|
|
169
|
+
"direction": "string?"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"C1.mem": {
|
|
173
|
+
"track": "lite",
|
|
174
|
+
"type": "python",
|
|
175
|
+
"script": "xflow/atoms/c1_mem.py",
|
|
176
|
+
"description": "Opaque personal/global memory atom — all subcommands passed through verbatim",
|
|
177
|
+
"input_schema": {
|
|
178
|
+
"subcommand": "string",
|
|
179
|
+
"args": "string[]?"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"E6.gate.local_precheck": {
|
|
183
|
+
"track": "lite",
|
|
184
|
+
"type": "python",
|
|
185
|
+
"script": "xflow/atoms/e6_gate_local_precheck.py",
|
|
186
|
+
"description": "Deterministic preflight gate: artifact presence + status.json consistency + doctor. Single source of truth for lite gate logic.",
|
|
187
|
+
"input_schema": {
|
|
188
|
+
"project_root": "string",
|
|
189
|
+
"change_id": "string",
|
|
190
|
+
"phase": "string"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"H1.design.lite_gate": {
|
|
194
|
+
"track": "lite",
|
|
195
|
+
"type": "python",
|
|
196
|
+
"script": "xflow/atoms/h1_design_lite_gate.py",
|
|
197
|
+
"description": "Check DESIGN.md presence and required sections (Reference Anchors, Beauty Contract, Layout Premise). Deterministic.",
|
|
198
|
+
"input_schema": {
|
|
199
|
+
"project_root": "string",
|
|
200
|
+
"change_id": "string",
|
|
201
|
+
"require_full_contract": "boolean?"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"I6a.tdd.run": {
|
|
205
|
+
"track": "lite",
|
|
206
|
+
"type": "python",
|
|
207
|
+
"script": "xflow/atoms/i6a_tdd_run.py",
|
|
208
|
+
"description": "Run test command, snapshot the tree, and bind the exit code, output hash, and failure class into a TDD proof",
|
|
209
|
+
"input_schema": {
|
|
210
|
+
"project_root": "string",
|
|
211
|
+
"change_id": "string",
|
|
212
|
+
"test_command": "string",
|
|
213
|
+
"phase": "string?",
|
|
214
|
+
"expect": "pass|fail?"
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"I6b.tdd.proof_validate": {
|
|
218
|
+
"track": "lite",
|
|
219
|
+
"type": "python",
|
|
220
|
+
"script": "xflow/atoms/i6b_tdd_proof_validate.py",
|
|
221
|
+
"description": "Recompute the TDD proof binding, re-run the command on its snapshot, and check red/green semantics. refactor and docs modes can omit a red proof.",
|
|
222
|
+
"input_schema": {
|
|
223
|
+
"project_root": "string",
|
|
224
|
+
"change_id": "string",
|
|
225
|
+
"phase": "string?",
|
|
226
|
+
"tdd_mode": "red-green|refactor|docs?"
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
"I6c.tdd.quality_review": {
|
|
230
|
+
"track": "lite",
|
|
231
|
+
"type": "python",
|
|
232
|
+
"script": "xflow/atoms/i6c_tdd_quality_review.py",
|
|
233
|
+
"description": "Review changed-test quality, red/green command identity, skip/todo markers, and weak assertions. tdd_mode refactor or docs replaces the red-proof requirement.",
|
|
234
|
+
"input_schema": {
|
|
235
|
+
"project_root": "string",
|
|
236
|
+
"change_id": "string",
|
|
237
|
+
"diff_ref": "string?",
|
|
238
|
+
"tdd_mode": "red-green|refactor|docs?"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"J4a.spec_consistency.structural": {
|
|
242
|
+
"track": "lite",
|
|
243
|
+
"type": "python",
|
|
244
|
+
"script": "xflow/atoms/j4a_spec_consistency_structural.py",
|
|
245
|
+
"description": "Deterministic structural consistency check: diff proposal sections vs plan tasks vs specs/* vs AHA.md keyword anchors",
|
|
246
|
+
"input_schema": {
|
|
247
|
+
"project_root": "string",
|
|
248
|
+
"change_id": "string"
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"J4b.spec_delta.review": {
|
|
252
|
+
"track": "lite",
|
|
253
|
+
"type": "python",
|
|
254
|
+
"script": "xflow/atoms/j4b_spec_delta_review.py",
|
|
255
|
+
"description": "Generate deterministic reviewer-facing spec delta review for proposal, plan, tasks, and merge spec snippets",
|
|
256
|
+
"input_schema": {
|
|
257
|
+
"project_root": "string",
|
|
258
|
+
"change_id": "string"
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
"J4d.spec_clarify.gate": {
|
|
262
|
+
"track": "lite",
|
|
263
|
+
"type": "python",
|
|
264
|
+
"script": "xflow/atoms/j4d_spec_clarify_gate.py",
|
|
265
|
+
"description": "Pre-implementation SPEC clarification gate: flag unquantified MUST/SHALL statements, scenarios missing WHEN/THEN, unquantified vague terms (EN/CN), and unresolved placeholders; every finding carries a concrete clarification question. Writes spec_clarify.json/.md.",
|
|
266
|
+
"input_schema": {
|
|
267
|
+
"project_root": "string",
|
|
268
|
+
"change_id": "string",
|
|
269
|
+
"files": "string[]?"
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"J4c.openspec.migration_map": {
|
|
273
|
+
"track": "lite",
|
|
274
|
+
"type": "python",
|
|
275
|
+
"script": "xflow/atoms/j4c_openspec_migration_map.py",
|
|
276
|
+
"description": "Read OpenSpec folders and generate a safe evalid migration mapping report",
|
|
277
|
+
"input_schema": {
|
|
278
|
+
"project_root": "string",
|
|
279
|
+
"openspec_root": "string?"
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
"J6.cr.review": {
|
|
283
|
+
"track": "lite",
|
|
284
|
+
"type": "python",
|
|
285
|
+
"script": "xflow/atoms/j6_cr_review.py",
|
|
286
|
+
"description": "Deterministic first-pass code review gate before PR/archive: spec alignment of changed code, test follow per code file, assertion net-decrease check, and a configurable loop budget (diff size) that recommends splitting the spec",
|
|
287
|
+
"input_schema": {
|
|
288
|
+
"project_root": "string",
|
|
289
|
+
"change_id": "string",
|
|
290
|
+
"diff_ref": "string?",
|
|
291
|
+
"max_files": "integer?",
|
|
292
|
+
"max_lines": "integer?"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"K6.aha.merge": {
|
|
296
|
+
"track": "lite",
|
|
297
|
+
"type": "python",
|
|
298
|
+
"script": "xflow/atoms/k6_aha_merge.py",
|
|
299
|
+
"description": "Merge durable insights from change workspace into root AHA.md (idempotent, dated)",
|
|
300
|
+
"input_schema": {
|
|
301
|
+
"project_root": "string",
|
|
302
|
+
"change_id": "string"
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
"D1.mission.create": {
|
|
306
|
+
"track": "heavy",
|
|
307
|
+
"type": "js",
|
|
308
|
+
"module": "src/core/atoms/mission/create.js",
|
|
309
|
+
"export": "missionCreate",
|
|
310
|
+
"description": "Create mission in state.sqlite with goal/workspace/repo/intake_snapshot",
|
|
311
|
+
"requires_http": false
|
|
312
|
+
},
|
|
313
|
+
"D2.mission.list": {
|
|
314
|
+
"track": "heavy",
|
|
315
|
+
"type": "js",
|
|
316
|
+
"module": "src/core/atoms/mission/list.js",
|
|
317
|
+
"export": "missionList",
|
|
318
|
+
"description": "List missions from state",
|
|
319
|
+
"requires_http": false
|
|
320
|
+
},
|
|
321
|
+
"D2b.mission.show": {
|
|
322
|
+
"track": "heavy",
|
|
323
|
+
"type": "js",
|
|
324
|
+
"module": "src/core/atoms/mission/show.js",
|
|
325
|
+
"export": "missionShow",
|
|
326
|
+
"description": "Show mission detail including phase-runs and gate decisions",
|
|
327
|
+
"requires_http": false
|
|
328
|
+
},
|
|
329
|
+
"D3a.phase_run.start": {
|
|
330
|
+
"track": "heavy",
|
|
331
|
+
"type": "js",
|
|
332
|
+
"module": "src/core/atoms/phase-run/start.js",
|
|
333
|
+
"export": "phaseRunStart",
|
|
334
|
+
"requires_http": false
|
|
335
|
+
},
|
|
336
|
+
"D3b.phase_run.persist": {
|
|
337
|
+
"track": "heavy",
|
|
338
|
+
"type": "js",
|
|
339
|
+
"module": "src/core/atoms/phase-run/persist.js",
|
|
340
|
+
"export": "phaseRunPersist",
|
|
341
|
+
"requires_http": false
|
|
342
|
+
},
|
|
343
|
+
"D3c.phase_run.complete": {
|
|
344
|
+
"track": "heavy",
|
|
345
|
+
"type": "js",
|
|
346
|
+
"module": "src/core/atoms/phase-run/complete.js",
|
|
347
|
+
"export": "phaseRunComplete",
|
|
348
|
+
"requires_http": false
|
|
349
|
+
},
|
|
350
|
+
"D3d.phase_run.fail": {
|
|
351
|
+
"track": "heavy",
|
|
352
|
+
"type": "js",
|
|
353
|
+
"module": "src/core/atoms/phase-run/fail.js",
|
|
354
|
+
"export": "phaseRunFail",
|
|
355
|
+
"requires_http": false
|
|
356
|
+
},
|
|
357
|
+
"D4.event.ingest": {
|
|
358
|
+
"track": "heavy",
|
|
359
|
+
"type": "js",
|
|
360
|
+
"module": "src/core/atoms/event/ingest.js",
|
|
361
|
+
"export": "eventIngest",
|
|
362
|
+
"requires_http": false
|
|
363
|
+
},
|
|
364
|
+
"D5.intervention.create": {
|
|
365
|
+
"track": "heavy",
|
|
366
|
+
"type": "js",
|
|
367
|
+
"module": "src/core/atoms/intervention/create.js",
|
|
368
|
+
"export": "interventionCreate",
|
|
369
|
+
"requires_http": false
|
|
370
|
+
},
|
|
371
|
+
"E1.workflow.state_load": {
|
|
372
|
+
"track": "heavy",
|
|
373
|
+
"type": "js",
|
|
374
|
+
"module": "src/core/atoms/workflow/state-load.js",
|
|
375
|
+
"export": "workflowStateLoad",
|
|
376
|
+
"requires_http": false
|
|
377
|
+
},
|
|
378
|
+
"E2.workflow.guard": {
|
|
379
|
+
"track": "heavy",
|
|
380
|
+
"type": "js",
|
|
381
|
+
"module": "src/core/atoms/workflow/guard.js",
|
|
382
|
+
"export": "workflowGuard",
|
|
383
|
+
"description": "Mint gate token, run command, validate artifact, advance state. Uses E6 for structural checks.",
|
|
384
|
+
"requires_http": false
|
|
385
|
+
},
|
|
386
|
+
"E3.gate.workbench": {
|
|
387
|
+
"track": "heavy",
|
|
388
|
+
"type": "js",
|
|
389
|
+
"module": "src/core/atoms/gate/workbench.js",
|
|
390
|
+
"export": "gateWorkbench",
|
|
391
|
+
"requires_http": false
|
|
392
|
+
},
|
|
393
|
+
"E4.gate.payload_from_phase_run": {
|
|
394
|
+
"track": "heavy",
|
|
395
|
+
"type": "js",
|
|
396
|
+
"module": "src/core/atoms/gate/payload-from-phase-run.js",
|
|
397
|
+
"export": "gatePayloadFromPhaseRun",
|
|
398
|
+
"requires_http": false
|
|
399
|
+
},
|
|
400
|
+
"E5.artifact.verify": {
|
|
401
|
+
"track": "heavy",
|
|
402
|
+
"type": "js",
|
|
403
|
+
"module": "src/core/atoms/gate/artifact-verify.js",
|
|
404
|
+
"export": "artifactVerify",
|
|
405
|
+
"requires_http": false
|
|
406
|
+
},
|
|
407
|
+
"E7.workflow.advance": {
|
|
408
|
+
"track": "heavy",
|
|
409
|
+
"type": "js",
|
|
410
|
+
"module": "src/core/atoms/workflow/advance.js",
|
|
411
|
+
"export": "workflowAdvance",
|
|
412
|
+
"description": "Advance workflow cursor to next phase after gate passes. Split from E2 for retry support.",
|
|
413
|
+
"requires_http": false
|
|
414
|
+
},
|
|
415
|
+
"F1.memory_item.manage": {
|
|
416
|
+
"track": "heavy",
|
|
417
|
+
"type": "js",
|
|
418
|
+
"module": "src/core/atoms/memory/manage.js",
|
|
419
|
+
"export": "memoryItemManage",
|
|
420
|
+
"requires_http": false
|
|
421
|
+
},
|
|
422
|
+
"F2.memory.mount": {
|
|
423
|
+
"track": "heavy",
|
|
424
|
+
"type": "js",
|
|
425
|
+
"module": "src/core/atoms/memory/mount.js",
|
|
426
|
+
"export": "memoryMount",
|
|
427
|
+
"requires_http": false
|
|
428
|
+
},
|
|
429
|
+
"G1.intake.preview_or_refine": {
|
|
430
|
+
"track": "heavy",
|
|
431
|
+
"type": "js",
|
|
432
|
+
"module": "src/core/atoms/intake/preview-or-refine.js",
|
|
433
|
+
"export": "intakePreviewOrRefine"
|
|
434
|
+
},
|
|
435
|
+
"G2.intake.classify": {
|
|
436
|
+
"track": "heavy",
|
|
437
|
+
"type": "js",
|
|
438
|
+
"module": "src/core/atoms/intake/classify.js",
|
|
439
|
+
"export": "intakeClassify",
|
|
440
|
+
"requires_http": false
|
|
441
|
+
},
|
|
442
|
+
"G3.research.same_category": {
|
|
443
|
+
"track": "heavy",
|
|
444
|
+
"type": "js",
|
|
445
|
+
"module": "src/core/atoms/intake/research-same-category.js",
|
|
446
|
+
"export": "researchSameCategory",
|
|
447
|
+
"requires_http": false
|
|
448
|
+
},
|
|
449
|
+
"G4.design_skill.select": {
|
|
450
|
+
"track": "heavy",
|
|
451
|
+
"type": "js",
|
|
452
|
+
"module": "src/core/atoms/intake/design-skill-select.js",
|
|
453
|
+
"export": "designSkillSelect",
|
|
454
|
+
"requires_http": false
|
|
455
|
+
},
|
|
456
|
+
"H2.design.contract_freeze": {
|
|
457
|
+
"track": "heavy",
|
|
458
|
+
"type": "js",
|
|
459
|
+
"module": "src/agent_team/atoms/design/contract-freeze.js",
|
|
460
|
+
"export": "designContractFreeze",
|
|
461
|
+
"requires_http": false
|
|
462
|
+
},
|
|
463
|
+
"H2b.design.competitor_reconstruction_review": {
|
|
464
|
+
"track": "heavy",
|
|
465
|
+
"type": "js",
|
|
466
|
+
"module": "src/agent_team/atoms/design/competitor-reconstruction-review.js",
|
|
467
|
+
"export": "competitorReconstructionReview",
|
|
468
|
+
"requires_http": false
|
|
469
|
+
},
|
|
470
|
+
"H2d.design.reference_surface_lock": {
|
|
471
|
+
"track": "heavy",
|
|
472
|
+
"type": "js",
|
|
473
|
+
"module": "src/agent_team/atoms/design/reference-surface-lock.js",
|
|
474
|
+
"export": "referenceSurfaceLock",
|
|
475
|
+
"requires_http": false
|
|
476
|
+
},
|
|
477
|
+
"H2e.design.reconstruction_pack": {
|
|
478
|
+
"track": "heavy",
|
|
479
|
+
"type": "js",
|
|
480
|
+
"module": "src/agent_team/atoms/design/reconstruction-pack.js",
|
|
481
|
+
"export": "reconstructionPack",
|
|
482
|
+
"requires_http": false
|
|
483
|
+
},
|
|
484
|
+
"H2f.design.generation_contract": {
|
|
485
|
+
"track": "heavy",
|
|
486
|
+
"type": "js",
|
|
487
|
+
"module": "src/agent_team/atoms/design/generation-contract.js",
|
|
488
|
+
"export": "generationContract",
|
|
489
|
+
"requires_http": false
|
|
490
|
+
},
|
|
491
|
+
"H2c.design.competitor_contract_validate": {
|
|
492
|
+
"track": "heavy",
|
|
493
|
+
"type": "js",
|
|
494
|
+
"module": "src/core/atoms/gate/competitor-contract-validate.js",
|
|
495
|
+
"export": "competitorContractValidate",
|
|
496
|
+
"requires_http": false
|
|
497
|
+
},
|
|
498
|
+
"H3a.visual.direction_synthesis": {
|
|
499
|
+
"track": "heavy",
|
|
500
|
+
"type": "js",
|
|
501
|
+
"module": "src/agent_team/atoms/visual/direction-synthesis.js",
|
|
502
|
+
"export": "visualDirectionSynthesis",
|
|
503
|
+
"requires_http": false
|
|
504
|
+
},
|
|
505
|
+
"H3b.visual.layout_competition": {
|
|
506
|
+
"track": "heavy",
|
|
507
|
+
"type": "js",
|
|
508
|
+
"module": "src/agent_team/atoms/visual/layout-competition.js",
|
|
509
|
+
"export": "visualLayoutCompetition",
|
|
510
|
+
"requires_http": false
|
|
511
|
+
},
|
|
512
|
+
"H3c.visual.design_selection": {
|
|
513
|
+
"track": "heavy",
|
|
514
|
+
"type": "js",
|
|
515
|
+
"module": "src/agent_team/atoms/visual/design-selection.js",
|
|
516
|
+
"export": "visualDesignSelection",
|
|
517
|
+
"requires_http": false
|
|
518
|
+
},
|
|
519
|
+
"H4a.pencil.draft": {
|
|
520
|
+
"track": "heavy",
|
|
521
|
+
"type": "agent_invoke",
|
|
522
|
+
"module": "src/core/atoms/agent-invoke.js",
|
|
523
|
+
"prompt_template": "prompts/pencil-draft.md",
|
|
524
|
+
"expected_artifact": "specs/changes/${change_id}/pencil_output.pen",
|
|
525
|
+
"agent_config": { "adapter": "auto", "require_real_runtime": true, "model": "claude-sonnet-4-6", "timeout_ms": 900000 },
|
|
526
|
+
"stub_config": {
|
|
527
|
+
"write_pen": true
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
"H4b.pencil.refine": {
|
|
531
|
+
"track": "heavy",
|
|
532
|
+
"type": "agent_invoke",
|
|
533
|
+
"module": "src/core/atoms/agent-invoke.js",
|
|
534
|
+
"prompt_template": "prompts/pencil-refine.md",
|
|
535
|
+
"expected_artifact": "specs/changes/${change_id}/pencil_output.pen",
|
|
536
|
+
"agent_config": { "adapter": "auto", "require_real_runtime": true, "model": "claude-sonnet-4-6", "timeout_ms": 900000 },
|
|
537
|
+
"stub_config": {
|
|
538
|
+
"write_pen": true
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
"H4c.pencil.accept": {
|
|
542
|
+
"track": "heavy",
|
|
543
|
+
"type": "js",
|
|
544
|
+
"module": "src/agent_team/atoms/pencil/accept.js",
|
|
545
|
+
"export": "pencilAccept",
|
|
546
|
+
"requires_http": false
|
|
547
|
+
},
|
|
548
|
+
"H5.visual.review": {
|
|
549
|
+
"track": "heavy",
|
|
550
|
+
"type": "js",
|
|
551
|
+
"module": "src/agent_team/atoms/visual/review.js",
|
|
552
|
+
"export": "visualReview",
|
|
553
|
+
"requires_http": false
|
|
554
|
+
},
|
|
555
|
+
"H5b.visual.review.aggregate": {
|
|
556
|
+
"track": "heavy",
|
|
557
|
+
"type": "js",
|
|
558
|
+
"module": "src/agent_team/atoms/visual/review-aggregate.js",
|
|
559
|
+
"export": "visualReviewAggregate",
|
|
560
|
+
"description": "Aggregate parallel visual review and benchmark worker outputs into a single llm_design_review artifact"
|
|
561
|
+
},
|
|
562
|
+
"H6.visual.benchmark": {
|
|
563
|
+
"track": "heavy",
|
|
564
|
+
"type": "js",
|
|
565
|
+
"module": "src/agent_team/atoms/visual/benchmark.js",
|
|
566
|
+
"export": "visualBenchmark",
|
|
567
|
+
"description": "Execute the deterministic reference-backed visual benchmark and persist visual_benchmark.json"
|
|
568
|
+
},
|
|
569
|
+
"H6b.visual.benchmark_validate": {
|
|
570
|
+
"track": "heavy",
|
|
571
|
+
"type": "js",
|
|
572
|
+
"module": "src/core/atoms/gate/visual-benchmark-validate.js",
|
|
573
|
+
"export": "visualBenchmarkValidate",
|
|
574
|
+
"requires_http": false
|
|
575
|
+
},
|
|
576
|
+
"H6c.visual.benchmark_repair_plan": {
|
|
577
|
+
"track": "heavy",
|
|
578
|
+
"type": "js",
|
|
579
|
+
"module": "src/agent_team/atoms/visual/benchmark-repair-plan.js",
|
|
580
|
+
"export": "benchmarkRepairPlan",
|
|
581
|
+
"requires_http": false
|
|
582
|
+
},
|
|
583
|
+
"H6d.visual.aesthetic_review": {
|
|
584
|
+
"track": "heavy",
|
|
585
|
+
"type": "js",
|
|
586
|
+
"module": "src/agent_team/atoms/visual/aesthetic-review.js",
|
|
587
|
+
"export": "visualAestheticReview",
|
|
588
|
+
"requires_http": false,
|
|
589
|
+
"description": "Gate high-aesthetic UI readiness across aesthetic contract, image-reference strategy, Pencil boundary, and benchmark proof"
|
|
590
|
+
},
|
|
591
|
+
"I1.team.run": {
|
|
592
|
+
"track": "heavy",
|
|
593
|
+
"type": "agent_invoke",
|
|
594
|
+
"module": "src/core/atoms/agent-invoke.js",
|
|
595
|
+
"prompt_template": "prompts/phase-execution.md",
|
|
596
|
+
"expected_artifact": "specs/changes/${change_id}/execution.json",
|
|
597
|
+
"agent_config": { "adapter": "auto" }
|
|
598
|
+
},
|
|
599
|
+
"I1b.team.run.structured": {
|
|
600
|
+
"track": "heavy",
|
|
601
|
+
"type": "js",
|
|
602
|
+
"module": "src/agent_team/atoms/team-run.js",
|
|
603
|
+
"export": "teamRun",
|
|
604
|
+
"requires_http": false
|
|
605
|
+
},
|
|
606
|
+
"I2.phase_run.dispatch": {
|
|
607
|
+
"track": "heavy",
|
|
608
|
+
"type": "agent_invoke",
|
|
609
|
+
"module": "src/core/atoms/agent-invoke.js",
|
|
610
|
+
"prompt_template": "prompts/phase-artifact.md",
|
|
611
|
+
"expected_artifact": "specs/changes/${change_id}/execute.json",
|
|
612
|
+
"agent_config": { "adapter": "auto" },
|
|
613
|
+
"stub_config": {
|
|
614
|
+
"use_phase_artifact": false,
|
|
615
|
+
"summary": "Phase-run dispatch completed and execution evidence was recorded."
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
"I4.patch.challenge": {
|
|
619
|
+
"track": "heavy",
|
|
620
|
+
"type": "js",
|
|
621
|
+
"module": "src/agent_team/atoms/patch-challenge.js",
|
|
622
|
+
"export": "patchChallenge"
|
|
623
|
+
},
|
|
624
|
+
"I5.codex.app_bridge": {
|
|
625
|
+
"track": "heavy",
|
|
626
|
+
"type": "js",
|
|
627
|
+
"module": "src/agent_team/atoms/codex-app-bridge.js",
|
|
628
|
+
"export": "codexAppBridge",
|
|
629
|
+
"requires_http": false
|
|
630
|
+
},
|
|
631
|
+
"J1.tests.run": {
|
|
632
|
+
"track": "lite",
|
|
633
|
+
"type": "python",
|
|
634
|
+
"script": "xflow/atoms/j1_tests_run.py",
|
|
635
|
+
"description": "Run planned verification commands, capture pass/fail proof",
|
|
636
|
+
"input_schema": {
|
|
637
|
+
"project_root": "string",
|
|
638
|
+
"change_id": "string",
|
|
639
|
+
"commands": "string[]"
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
"J5.gate.evidence_collect": {
|
|
643
|
+
"track": "heavy",
|
|
644
|
+
"type": "js",
|
|
645
|
+
"module": "src/core/atoms/gate/evidence-collect.js",
|
|
646
|
+
"export": "gateEvidenceCollect",
|
|
647
|
+
"description": "Walk specs/changes/<id>/ and phase-run artifactRefs, build evidence packet for gate",
|
|
648
|
+
"requires_http": false
|
|
649
|
+
},
|
|
650
|
+
"P1.policy.resolve": {
|
|
651
|
+
"track": "lite",
|
|
652
|
+
"type": "js",
|
|
653
|
+
"module": "src/core/atoms/policy/resolve.js",
|
|
654
|
+
"export": "policyResolve",
|
|
655
|
+
"description": "Resolve personal/team policy overlay and write policy_effective.json without forking yolo/corps",
|
|
656
|
+
"requires_http": false
|
|
657
|
+
},
|
|
658
|
+
"P2.policy.gate": {
|
|
659
|
+
"track": "lite",
|
|
660
|
+
"type": "js",
|
|
661
|
+
"module": "src/core/atoms/policy/gate.js",
|
|
662
|
+
"export": "policyGate",
|
|
663
|
+
"description": "Evaluate effective team policy against coverage, reviewer, and smoke evidence; write structured policy_gate.json",
|
|
664
|
+
"requires_http": false
|
|
665
|
+
},
|
|
666
|
+
"G5.intake.recommend": {
|
|
667
|
+
"track": "lite",
|
|
668
|
+
"type": "js",
|
|
669
|
+
"module": "src/core/atoms/intake/recommend.js",
|
|
670
|
+
"export": "intakeRecommend",
|
|
671
|
+
"description": "Build demand profile and workflow_recommendation.json for yolo/corps plus optional gate overlays",
|
|
672
|
+
"requires_http": false
|
|
673
|
+
},
|
|
674
|
+
"N1.notify.checkpoint": {
|
|
675
|
+
"track": "lite",
|
|
676
|
+
"type": "js",
|
|
677
|
+
"module": "src/core/atoms/notify/checkpoint.js",
|
|
678
|
+
"export": "notifyCheckpoint",
|
|
679
|
+
"description": "Send file/mock checkpoint notification evidence; does not approve human gates",
|
|
680
|
+
"requires_http": false
|
|
681
|
+
},
|
|
682
|
+
"N2.plugin.run": {
|
|
683
|
+
"track": "lite",
|
|
684
|
+
"type": "js",
|
|
685
|
+
"module": "src/core/atoms/plugin/run.js",
|
|
686
|
+
"export": "pluginRun",
|
|
687
|
+
"description": "Run or dry-run generic script/webhook plugin providers and write structured plugin result evidence",
|
|
688
|
+
"requires_http": false
|
|
689
|
+
},
|
|
690
|
+
"N3.storage.sync": {
|
|
691
|
+
"track": "lite",
|
|
692
|
+
"type": "js",
|
|
693
|
+
"module": "src/core/atoms/storage/sync.js",
|
|
694
|
+
"export": "storageSync",
|
|
695
|
+
"description": "Import/export file/mock shared storage artifacts under .xflow/storage and record sync evidence",
|
|
696
|
+
"requires_http": false
|
|
697
|
+
},
|
|
698
|
+
"N4.experience.digest": {
|
|
699
|
+
"track": "lite",
|
|
700
|
+
"type": "js",
|
|
701
|
+
"module": "src/core/atoms/experience/digest.js",
|
|
702
|
+
"export": "experienceDigest",
|
|
703
|
+
"description": "Summarize local/team experience entries into advisory experience_digest.json",
|
|
704
|
+
"requires_http": false
|
|
705
|
+
},
|
|
706
|
+
"K1.artifacts.complete_check": {
|
|
707
|
+
"track": "lite",
|
|
708
|
+
"type": "python",
|
|
709
|
+
"script": "xflow/atoms/k1_artifacts_complete_check.py",
|
|
710
|
+
"description": "Verify proposal/plan/tasks/status.json (and design.md if frontend) exist and are non-empty",
|
|
711
|
+
"input_schema": {
|
|
712
|
+
"project_root": "string",
|
|
713
|
+
"change_id": "string"
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
"K2.merge_snippets.apply": {
|
|
717
|
+
"track": "lite",
|
|
718
|
+
"type": "python",
|
|
719
|
+
"script": "xflow/atoms/k2_merge_snippets_apply.py",
|
|
720
|
+
"description": "Standalone merge-snippets-only helper: append merge-*.md snippets from change workspace into root specs/* files",
|
|
721
|
+
"input_schema": {
|
|
722
|
+
"project_root": "string",
|
|
723
|
+
"change_id": "string"
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
"K3.handoff.refresh": {
|
|
727
|
+
"track": "lite",
|
|
728
|
+
"type": "python",
|
|
729
|
+
"script": "xflow/atoms/k3_handoff_refresh.py",
|
|
730
|
+
"description": "Refresh root HANDOFF.md to reflect completed change state",
|
|
731
|
+
"input_schema": {
|
|
732
|
+
"project_root": "string",
|
|
733
|
+
"change_id": "string"
|
|
734
|
+
}
|
|
735
|
+
},
|
|
736
|
+
"K4.mem.lesson_persist": {
|
|
737
|
+
"track": "lite",
|
|
738
|
+
"type": "python",
|
|
739
|
+
"script": "xflow/atoms/k4_mem_lesson_persist.py",
|
|
740
|
+
"description": "Persist durable lesson from change to cli-use-memory (via C1.mem lesson:project)",
|
|
741
|
+
"input_schema": {
|
|
742
|
+
"project_root": "string",
|
|
743
|
+
"lesson": "string",
|
|
744
|
+
"context": "string?"
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
"K5.archive.publish": {
|
|
748
|
+
"track": "lite",
|
|
749
|
+
"type": "python",
|
|
750
|
+
"script": "xflow/atoms/k5_archive_publish.py",
|
|
751
|
+
"description": "Standalone terminal status helper: mark status archived; not the workflow archive publisher",
|
|
752
|
+
"input_schema": {
|
|
753
|
+
"project_root": "string",
|
|
754
|
+
"change_id": "string"
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|