speccrew 0.7.26 → 0.7.27

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.
@@ -112,9 +112,11 @@ When Worker loads a skill (via `skill_name` or `skill_path` parameter):
112
112
  **If `skill_path` or `skill_name` is provided:**
113
113
  1. If `skill_path` is provided, use it directly; otherwise use Skill Discovery
114
114
  2. If Skill file does not exist, immediately report error
115
- 3. If `context` parameters exist, substitute them into placeholders in the Skill
116
- 4. Strictly execute according to the workflow defined in the Skill
117
- 5. Complete the task and output results
115
+ 3. **Read SKILL.md** to understand skill overview, constraints, and templates
116
+ 4. **Read workflow.agentflow.xml** this is the AUTHORITATIVE execution definition
117
+ 5. If `context` parameters exist, substitute them into placeholders
118
+ 6. **Execute blocks defined in workflow.agentflow.xml sequentially** (top-to-bottom, announcing each block)
119
+ 7. Complete the task and output results
118
120
 
119
121
  > 🛑 **CRITICAL — Skill Execution Enforcement**:
120
122
  > - If the Skill specifies script execution via `run_in_terminal` or `Bash` → You MUST execute the script via terminal. DO NOT substitute with manual file creation.
@@ -122,6 +124,23 @@ When Worker loads a skill (via `skill_name` or `skill_path` parameter):
122
124
  > - If the Skill contains MANDATORY/FORBIDDEN constraints → You MUST follow them strictly.
123
125
  > - DO NOT improvise alternative execution paths. If a step fails, report the error — do not attempt workarounds.
124
126
 
127
+ ### MANDATORY: XML Workflow Loading Protocol
128
+
129
+ When executing any Skill that contains `workflow.agentflow.xml`:
130
+
131
+ 1. **SKILL.md is METADATA ONLY** — it provides overview, constraints, and template references. It is NOT the execution plan.
132
+ 2. **workflow.agentflow.xml is the AUTHORITATIVE execution plan** — Worker MUST read this file and execute its blocks in sequential document order.
133
+ 3. **FORBIDDEN**: Starting task execution based solely on SKILL.md without reading workflow.agentflow.xml.
134
+ 4. **FORBIDDEN**: Summarizing or paraphrasing the workflow — execute blocks exactly as defined.
135
+ 5. **FORBIDDEN**: Skipping, reordering, or merging blocks.
136
+
137
+ **Execution sequence:**
138
+ ```
139
+ Read SKILL.md → Read workflow.agentflow.xml → Execute blocks in XML order → Report results
140
+ ```
141
+
142
+ If workflow.agentflow.xml does not exist in the skill directory, fall back to SKILL.md-based execution.
143
+
125
144
  ### XML Workflow Block Announcement Protocol
126
145
 
127
146
  When executing a Skill that uses XML workflow format (`<workflow>` root element), you MUST follow the Block Execution Announcement Protocol defined in `docs/rules/agentflow-spec.md`:
@@ -211,10 +230,14 @@ When the task fails or is blocked, output:
211
230
  **MUST DO:**
212
231
  - If `skill_name` is provided, MUST use Skill Discovery to resolve the full path and strictly follow the Skill definition
213
232
  - If `skill_name` is provided but Skill file does not exist, immediately report error
233
+ - If Skill directory contains workflow.agentflow.xml, MUST read it and execute blocks in sequential order — this is the authoritative execution plan
234
+ - MUST announce each XML block before execution using the Block Announcement Protocol
214
235
  - Only process the single task assigned to the current Worker
215
236
 
216
237
  **MUST NOT DO:**
217
238
  - Do not skip or ignore a provided Skill file
239
+ - Do not execute tasks based solely on SKILL.md when workflow.agentflow.xml exists — the XML workflow is authoritative
240
+ - Do not skip reading workflow.agentflow.xml even if SKILL.md seems sufficient
218
241
  - Do not actively modify code beyond the task scope
219
242
  - Do not overstep to handle other tasks
220
243
  - Do not assume context information not provided
@@ -31,6 +31,12 @@ Applies workspace initialization principles:
31
31
  - Progress tracking via WORKFLOW-PROGRESS.json
32
32
  - Checkpoint recovery for session continuity
33
33
 
34
+ ## Templates Used
35
+
36
+ | Template | Path | Purpose |
37
+ |----------|------|---------|
38
+ | WORKFLOW-PROGRESS | `templates/WORKFLOW-PROGRESS-TEMPLATE.json` | Standard workflow progress tracking with 7 predefined stages |
39
+
34
40
  ## Output Deliverables
35
41
 
36
42
  | Deliverable | Path | Description |
@@ -68,9 +74,15 @@ Applies workspace initialization principles:
68
74
  - Compute all path variables as absolute paths
69
75
  - Check for active iteration before creating new one
70
76
  - Copy requirement document to iteration's 00.docs directory
77
+ - Create EXACTLY two subdirectories: `00.docs/` (original requirement documents) and `01.product-requirement/` (PRD and clarification outputs)
78
+ - Initialize `WORKFLOW-PROGRESS.json` from `WORKFLOW-PROGRESS-TEMPLATE.json` template — stage names MUST match template exactly (01_prd, 02_feature_design, etc.)
71
79
 
72
80
  **Must not do:**
73
81
  - Manually create WORKFLOW-PROGRESS.json via Write/Edit tools
74
82
  - Skip checkpoint recovery check
75
83
  - Use relative paths in Worker dispatches
76
84
  - Create iteration directory without proper naming convention
85
+ - Pre-create directories for later phases (`02.feature-design/`, `03.system-design/`, `04.development/`, `05.deployment/`, `06.system-test/`, `07.delivery/`) — each phase creates its own directory when needed
86
+ - Invent directory names not defined in `workspace-structure.md`
87
+ - Manually write WORKFLOW-PROGRESS.json content — MUST use template + update-progress.js script
88
+ - Invent custom stage names (e.g., phase0_initialization, phase1_requirement_analysis) — use template-defined names only
@@ -0,0 +1,56 @@
1
+ {
2
+ "created_at": "{created_at}",
3
+ "updated_at": "{updated_at}",
4
+ "current_stage": null,
5
+ "stages": {
6
+ "01_prd": {
7
+ "status": "pending",
8
+ "started_at": null,
9
+ "completed_at": null,
10
+ "confirmed_at": null,
11
+ "output": null
12
+ },
13
+ "02_feature_design": {
14
+ "status": "pending",
15
+ "started_at": null,
16
+ "completed_at": null,
17
+ "confirmed_at": null,
18
+ "output": null
19
+ },
20
+ "03_system_design": {
21
+ "status": "pending",
22
+ "started_at": null,
23
+ "completed_at": null,
24
+ "confirmed_at": null,
25
+ "output": null
26
+ },
27
+ "04_development": {
28
+ "status": "pending",
29
+ "started_at": null,
30
+ "completed_at": null,
31
+ "confirmed_at": null,
32
+ "output": null
33
+ },
34
+ "05_deployment": {
35
+ "status": "pending",
36
+ "started_at": null,
37
+ "completed_at": null,
38
+ "confirmed_at": null,
39
+ "output": null
40
+ },
41
+ "06_system_test": {
42
+ "status": "pending",
43
+ "started_at": null,
44
+ "completed_at": null,
45
+ "confirmed_at": null,
46
+ "output": null
47
+ },
48
+ "07_delivery": {
49
+ "status": "pending",
50
+ "started_at": null,
51
+ "completed_at": null,
52
+ "confirmed_at": null,
53
+ "output": null
54
+ }
55
+ }
56
+ }
@@ -19,6 +19,8 @@
19
19
  <field name="text">ALL WORKFLOW-PROGRESS.json operations MUST use update-progress.js script</field>
20
20
  <field name="text">ALL path variables MUST be absolute paths</field>
21
21
  <field name="text">Check for active iteration before creating new one</field>
22
+ <field name="text">Phase 0 MUST create EXACTLY TWO subdirectories: 00.docs and 01.product-requirement</field>
23
+ <field name="text">FORBIDDEN: Pre-creating directories for later phases (02.feature-design, 03.system-design, 04.development, etc.). Each phase creates its own directory when needed.</field>
22
24
  </block>
23
25
 
24
26
  <block type="rule" id="R2" level="forbidden" desc="Phase 0 Forbidden Actions">
@@ -118,7 +120,24 @@
118
120
  <block type="task" id="P0-1-B9" action="run-script" status="pending" desc="Copy requirement document to iteration">
119
121
  <field name="command">Copy-Item "${user_requirement}" "${iteration_path}/00.docs/" -ErrorAction SilentlyContinue</field>
120
122
  </block>
121
-
123
+
124
+ <!-- Step 2.7: Load WORKFLOW-PROGRESS template -->
125
+ <block type="task" id="P0-1-B9A" action="read-file" status="pending" desc="Load WORKFLOW-PROGRESS template">
126
+ <field name="path" value="${skill_path}/templates/WORKFLOW-PROGRESS-TEMPLATE.json"/>
127
+ <field name="output" var="workflow_progress_template"/>
128
+ </block>
129
+
130
+ <!-- Step 2.8: Generate initial WORKFLOW-PROGRESS.json from template -->
131
+ <block type="task" id="P0-1-B9B" action="generate" status="pending" desc="Create WORKFLOW-PROGRESS.json from template">
132
+ <field name="template" value="${workflow_progress_template}"/>
133
+ <field name="output_path" value="${iteration_path}/WORKFLOW-PROGRESS.json"/>
134
+ <field name="vars">
135
+ - created_at: ${current_timestamp}
136
+ - updated_at: ${current_timestamp}
137
+ </field>
138
+ <field name="output" var="workflow_progress_path"/>
139
+ </block>
140
+
122
141
  <!-- Step 0.1.1: Initialize WORKFLOW-PROGRESS.json -->
123
142
  <block type="task" id="P0-1-B10" action="run-script" status="pending" desc="Initialize WORKFLOW-PROGRESS.json via script">
124
143
  <!-- MANDATORY: Use update-progress.js script -->
@@ -134,7 +134,21 @@
134
134
  <field name="output" var="skill_definition"/>
135
135
  </block>
136
136
  <block type="event" id="E8" action="log" desc="加载技能">📄 Loaded skill: ${resolved_skill_path}</block>
137
+
138
+ <!-- MANDATORY: Load XML Workflow Definition -->
139
+ <block type="rule" id="R-WORKFLOW-FIRST" level="mandatory" desc="XML workflow is the authoritative execution definition">
140
+ <field name="text">MANDATORY: workflow.agentflow.xml is the AUTHORITATIVE execution definition. SKILL.md is supplementary context only.</field>
141
+ <field name="text">Worker MUST read workflow.agentflow.xml BEFORE starting any task execution.</field>
142
+ <field name="text">Worker MUST execute ONLY the blocks defined in workflow.agentflow.xml, in sequential document order.</field>
143
+ <field name="text">FORBIDDEN: Executing tasks based solely on SKILL.md description without reading the XML workflow.</field>
144
+ </block>
137
145
 
146
+ <block type="task" id="T6b" action="read-file" desc="MANDATORY: Read XML workflow definition">
147
+ <field name="path">${skill_path}/workflow.agentflow.xml</field>
148
+ <field name="output" var="skill_workflow_xml"/>
149
+ </block>
150
+ <block type="event" id="E8b" action="log" desc="Loaded XML workflow">📄 Loaded workflow: ${skill_path}/workflow.agentflow.xml — This is the AUTHORITATIVE execution plan. Execute blocks in document order.</block>
151
+
138
152
  <!-- 加载 AgentFlow 规范 -->
139
153
  <block type="task" id="T7" action="read-file" desc="读取 AgentFlow 规范">
140
154
  <field name="path">${workspace_root}/speccrew-workspace/docs/rules/agentflow-spec.md</field>
@@ -143,10 +157,12 @@
143
157
  <block type="event" id="E9" action="log" desc="加载规范">📖 Loaded AgentFlow specification</block>
144
158
 
145
159
  <!-- 执行技能工作流 -->
146
- <block type="task" id="T8" action="run-skill" desc="执行技能工作流">
160
+ <block type="task" id="T8" action="run-skill" desc="Execute skill workflow — follow XML blocks sequentially">
147
161
  <field name="skill">${resolved_skill_path}</field>
148
162
  <field name="context">${context}</field>
149
163
  <field name="skill_path">${skill_path}</field>
164
+ <field name="workflow_xml">${skill_workflow_xml}</field>
165
+ <field name="execution_mode">xml-block-sequential</field>
150
166
  </block>
151
167
  <field name="execution_status" value="success"/>
152
168
  </branch>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccrew",
3
- "version": "0.7.26",
3
+ "version": "0.7.27",
4
4
  "description": "Spec-Driven Development toolkit for AI-powered IDEs",
5
5
  "author": "charlesmu99",
6
6
  "repository": {