@davidorex/pi-workflows 0.9.2 → 0.10.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.
Files changed (59) hide show
  1. package/agents/architecture-designer.agent.yaml +2 -1
  2. package/agents/architecture-inferrer.agent.yaml +2 -1
  3. package/agents/audit-finding-verifier.agent.yaml +2 -1
  4. package/agents/audit-fixer.agent.yaml +2 -1
  5. package/agents/audit-results-router.agent.yaml +2 -1
  6. package/agents/code-explorer.agent.yaml +4 -2
  7. package/agents/decomposer.agent.yaml +2 -1
  8. package/agents/gap-identifier.agent.yaml +2 -1
  9. package/agents/gap-resolution-assessor.agent.yaml +2 -1
  10. package/agents/handoff-writer.agent.yaml +2 -1
  11. package/agents/investigator.agent.yaml +2 -1
  12. package/agents/pattern-analyzer.agent.yaml +4 -2
  13. package/agents/phase-author.agent.yaml +2 -1
  14. package/agents/plan-creator.agent.yaml +2 -1
  15. package/agents/plan-decomposer.agent.yaml +2 -1
  16. package/agents/project-definer.agent.yaml +2 -1
  17. package/agents/project-inferrer.agent.yaml +2 -1
  18. package/agents/quality-analyzer.agent.yaml +4 -2
  19. package/agents/requirements-gatherer.agent.yaml +2 -1
  20. package/agents/researcher.agent.yaml +2 -1
  21. package/agents/spec-implementer.agent.yaml +2 -1
  22. package/agents/structure-analyzer.agent.yaml +4 -2
  23. package/agents/synthesizer.agent.yaml +4 -2
  24. package/agents/verifier.agent.yaml +2 -1
  25. package/dist/agent-spec.d.ts.map +1 -1
  26. package/dist/agent-spec.js +30 -4
  27. package/dist/agent-spec.js.map +1 -1
  28. package/dist/dag.d.ts.map +1 -1
  29. package/dist/dag.js +24 -1
  30. package/dist/dag.js.map +1 -1
  31. package/dist/dispatch.js +1 -1
  32. package/dist/dispatch.js.map +1 -1
  33. package/dist/step-foreach.d.ts.map +1 -1
  34. package/dist/step-foreach.js +13 -0
  35. package/dist/step-foreach.js.map +1 -1
  36. package/dist/template-validation.d.ts +15 -0
  37. package/dist/template-validation.d.ts.map +1 -1
  38. package/dist/template-validation.js +214 -0
  39. package/dist/template-validation.js.map +1 -1
  40. package/dist/workflow-executor.d.ts.map +1 -1
  41. package/dist/workflow-executor.js +16 -5
  42. package/dist/workflow-executor.js.map +1 -1
  43. package/dist/workflow-spec.d.ts.map +1 -1
  44. package/dist/workflow-spec.js +100 -63
  45. package/dist/workflow-spec.js.map +1 -1
  46. package/package.json +2 -2
  47. package/templates/architecture-inferrer/task.md +9 -9
  48. package/templates/audit-results-router/task.md +1 -1
  49. package/templates/gap-identifier/task.md +5 -5
  50. package/templates/phase-author/task.md +7 -7
  51. package/templates/project-inferrer/task.md +7 -7
  52. package/templates/spec-implementer/task.md +4 -2
  53. package/workflows/analyze-existing-project.workflow.yaml +10 -16
  54. package/workflows/create-handoff.workflow.yaml +9 -5
  55. package/workflows/create-phase.workflow.yaml +10 -3
  56. package/workflows/do-gap.workflow.yaml +7 -7
  57. package/workflows/fix-audit.workflow.yaml +6 -6
  58. package/workflows/gap-to-phase.workflow.yaml +9 -9
  59. package/workflows/self-implement.workflow.yaml +2 -2
@@ -67,10 +67,22 @@ export function parseWorkflowSpec(content, filePath, source) {
67
67
  if (Object.keys(rawSteps).length === 0) {
68
68
  throw new WorkflowSpecError(filePath, "'steps' must be a non-empty object");
69
69
  }
70
- // Validate each step
70
+ // Accumulate non-fatal parse errors so users see all problems at once
71
+ const errors = [];
72
+ // Validate each step (per-step failures are accumulated, not thrown)
71
73
  const steps = {};
72
74
  for (const [stepName, stepValue] of Object.entries(rawSteps)) {
73
- steps[stepName] = validateStep(stepValue, stepName, filePath);
75
+ try {
76
+ steps[stepName] = validateStep(stepValue, stepName, filePath);
77
+ }
78
+ catch (err) {
79
+ if (err instanceof WorkflowSpecError) {
80
+ errors.push(err.reason);
81
+ }
82
+ else {
83
+ throw err;
84
+ }
85
+ }
74
86
  }
75
87
  // Build the spec with defaults
76
88
  const spec = {
@@ -93,77 +105,101 @@ export function parseWorkflowSpec(content, filePath, source) {
93
105
  else {
94
106
  spec.triggerTurn = true;
95
107
  }
96
- // completion (optional)
108
+ // completion (optional) — errors accumulated
97
109
  if ("completion" in raw && raw.completion !== undefined) {
98
110
  if (typeof raw.completion !== "object" || raw.completion === null || Array.isArray(raw.completion)) {
99
- throw new WorkflowSpecError(filePath, "'completion' must be an object");
100
- }
101
- const rawComp = raw.completion;
102
- // Mutual exclusivity: template and message cannot coexist
103
- if ("template" in rawComp && "message" in rawComp) {
104
- throw new WorkflowSpecError(filePath, "'completion' cannot have both 'template' and 'message'");
105
- }
106
- // Must have at least one
107
- if (!("template" in rawComp) && !("message" in rawComp)) {
108
- throw new WorkflowSpecError(filePath, "'completion' must have either 'template' or 'message'");
109
- }
110
- const completion = {};
111
- if (typeof rawComp.template === "string") {
112
- completion.template = rawComp.template;
113
- }
114
- else if ("template" in rawComp) {
115
- throw new WorkflowSpecError(filePath, "'completion.template' must be a string");
116
- }
117
- if (typeof rawComp.message === "string") {
118
- completion.message = rawComp.message;
119
- }
120
- else if ("message" in rawComp) {
121
- throw new WorkflowSpecError(filePath, "'completion.message' must be a string");
122
- }
123
- if ("include" in rawComp) {
124
- if (!Array.isArray(rawComp.include)) {
125
- throw new WorkflowSpecError(filePath, "'completion.include' must be an array of strings");
126
- }
127
- for (const item of rawComp.include) {
128
- if (typeof item !== "string") {
129
- throw new WorkflowSpecError(filePath, "'completion.include' must be an array of strings");
111
+ errors.push("'completion' must be an object");
112
+ }
113
+ else {
114
+ const rawComp = raw.completion;
115
+ let completionValid = true;
116
+ // Mutual exclusivity: template and message cannot coexist
117
+ if ("template" in rawComp && "message" in rawComp) {
118
+ errors.push("'completion' cannot have both 'template' and 'message'");
119
+ completionValid = false;
120
+ }
121
+ // Must have at least one
122
+ if (!("template" in rawComp) && !("message" in rawComp)) {
123
+ errors.push("'completion' must have either 'template' or 'message'");
124
+ completionValid = false;
125
+ }
126
+ if (completionValid) {
127
+ const completion = {};
128
+ if (typeof rawComp.template === "string") {
129
+ completion.template = rawComp.template;
130
+ }
131
+ else if ("template" in rawComp) {
132
+ errors.push("'completion.template' must be a string");
133
+ }
134
+ if (typeof rawComp.message === "string") {
135
+ completion.message = rawComp.message;
130
136
  }
137
+ else if ("message" in rawComp) {
138
+ errors.push("'completion.message' must be a string");
139
+ }
140
+ if ("include" in rawComp) {
141
+ if (!Array.isArray(rawComp.include)) {
142
+ errors.push("'completion.include' must be an array of strings");
143
+ }
144
+ else {
145
+ const allStrings = rawComp.include.every((item) => typeof item === "string");
146
+ if (!allStrings) {
147
+ errors.push("'completion.include' must be an array of strings");
148
+ }
149
+ else {
150
+ completion.include = rawComp.include;
151
+ }
152
+ }
153
+ }
154
+ spec.completion = completion;
131
155
  }
132
- completion.include = rawComp.include;
133
156
  }
134
- spec.completion = completion;
135
157
  }
136
- // artifacts (optional)
158
+ // artifacts (optional) — errors accumulated
137
159
  if ("artifacts" in raw && raw.artifacts !== undefined) {
138
160
  if (typeof raw.artifacts !== "object" || raw.artifacts === null || Array.isArray(raw.artifacts)) {
139
- throw new WorkflowSpecError(filePath, "'artifacts' must be an object");
140
- }
141
- const rawArtifacts = raw.artifacts;
142
- const artifacts = {};
143
- for (const [artName, artValue] of Object.entries(rawArtifacts)) {
144
- if (typeof artValue !== "object" || artValue === null || Array.isArray(artValue)) {
145
- throw new WorkflowSpecError(filePath, `artifact '${artName}' must be an object`);
146
- }
147
- const rawArt = artValue;
148
- if (typeof rawArt.path !== "string") {
149
- throw new WorkflowSpecError(filePath, `artifact '${artName}' must have a 'path' string`);
150
- }
151
- if (typeof rawArt.from !== "string") {
152
- throw new WorkflowSpecError(filePath, `artifact '${artName}' must have a 'from' string`);
153
- }
154
- const artifact = {
155
- path: rawArt.path,
156
- from: rawArt.from,
157
- };
158
- if (rawArt.schema !== undefined) {
159
- if (typeof rawArt.schema !== "string") {
160
- throw new WorkflowSpecError(filePath, `artifact '${artName}' schema must be a string`);
161
+ errors.push("'artifacts' must be an object");
162
+ }
163
+ else {
164
+ const rawArtifacts = raw.artifacts;
165
+ const artifacts = {};
166
+ for (const [artName, artValue] of Object.entries(rawArtifacts)) {
167
+ if (typeof artValue !== "object" || artValue === null || Array.isArray(artValue)) {
168
+ errors.push(`artifact '${artName}' must be an object`);
169
+ continue;
170
+ }
171
+ const rawArt = artValue;
172
+ const artErrors = [];
173
+ if (typeof rawArt.path !== "string") {
174
+ artErrors.push(`artifact '${artName}' must have a 'path' string`);
161
175
  }
162
- artifact.schema = rawArt.schema;
176
+ if (typeof rawArt.from !== "string") {
177
+ artErrors.push(`artifact '${artName}' must have a 'from' string`);
178
+ }
179
+ if (artErrors.length > 0) {
180
+ errors.push(...artErrors);
181
+ continue;
182
+ }
183
+ const artifact = {
184
+ path: rawArt.path,
185
+ from: rawArt.from,
186
+ };
187
+ if (rawArt.schema !== undefined) {
188
+ if (typeof rawArt.schema !== "string") {
189
+ errors.push(`artifact '${artName}' schema must be a string`);
190
+ }
191
+ else {
192
+ artifact.schema = rawArt.schema;
193
+ }
194
+ }
195
+ artifacts[artName] = artifact;
163
196
  }
164
- artifacts[artName] = artifact;
197
+ spec.artifacts = artifacts;
165
198
  }
166
- spec.artifacts = artifacts;
199
+ }
200
+ // Throw all accumulated errors as a single WorkflowSpecError
201
+ if (errors.length > 0) {
202
+ throw new WorkflowSpecError(filePath, errors.map((e) => `- ${e}`).join("\n"));
167
203
  }
168
204
  return spec;
169
205
  }
@@ -224,7 +260,8 @@ function validateStep(stepValue, stepName, filePath) {
224
260
  throw new WorkflowSpecError(filePath, `step '${stepName}' must have exactly one of: ${stepTypeList}`);
225
261
  }
226
262
  if (presentTypes.length > 1) {
227
- throw new WorkflowSpecError(filePath, `step '${stepName}' must have exactly one of: ${stepTypeList}`);
263
+ const conflicting = presentTypes.map((t) => t.field).join(", ");
264
+ throw new WorkflowSpecError(filePath, `step '${stepName}' has multiple type fields: ${conflicting} — each step must have exactly one`);
228
265
  }
229
266
  // Individual flags for downstream parsing (derived from presentTypes check above)
230
267
  const hasAgent = presentTypes[0].field === "agent";
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-spec.js","sourceRoot":"","sources":["../src/workflow-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-spec.js","sourceRoot":"","sources":["../src/workflow-spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidorex/pi-workflows",
3
- "version": "0.9.2",
3
+ "version": "0.10.0",
4
4
  "description": "Workflow orchestration extension for Pi",
5
5
  "license": "MIT",
6
6
  "author": "David Ryan",
@@ -42,7 +42,7 @@
42
42
  "dependencies": {
43
43
  "nunjucks": "^3.2.4",
44
44
  "yaml": "^2.7.1",
45
- "@davidorex/pi-project": "^0.9.2",
45
+ "@davidorex/pi-project": "^0.10.0",
46
46
  "@mariozechner/pi-ai": "^0.63.1",
47
47
  "@mariozechner/pi-coding-agent": "^0.63.1",
48
48
  "@mariozechner/pi-tui": "^0.63.1",
@@ -2,30 +2,30 @@ Infer the architecture of the project at `{{ path }}`.
2
2
 
3
3
  ## Codebase Analysis
4
4
 
5
- {% if analysis.files is defined %}
5
+ {% if exploration.files is defined %}
6
6
  ### Files
7
- {% for file in analysis.files %}
7
+ {% for file in exploration.files %}
8
8
  - `{{ file.path }}` ({{ file.language | default("unknown") }}, {{ file.lines | default("?") }} lines){% if file.exports %} — {{ file.exports | length }} exports{% endif %}
9
9
  {% endfor %}
10
10
  {% endif %}
11
11
 
12
- {% if analysis.types is defined %}
12
+ {% if exploration.types is defined %}
13
13
  ### Types
14
- {% for t in analysis.types %}
14
+ {% for t in exploration.types %}
15
15
  - `{{ t.name }}` ({{ t.kind }}) in `{{ t.file }}`
16
16
  {% endfor %}
17
17
  {% endif %}
18
18
 
19
- {% if analysis.dependencies is defined %}
19
+ {% if exploration.dependencies is defined %}
20
20
  ### Dependencies
21
- {% for d in analysis.dependencies %}
21
+ {% for d in exploration.dependencies %}
22
22
  - `{{ d.from }}` → `{{ d.to }}` ({{ d.type | default("import") }})
23
23
  {% endfor %}
24
24
  {% endif %}
25
25
 
26
- {% if analysis.entryPoints is defined %}
26
+ {% if exploration.entryPoints is defined %}
27
27
  ### Entry Points
28
- {% for ep in analysis.entryPoints %}
28
+ {% for ep in exploration.entryPoints %}
29
29
  - `{{ ep }}`
30
30
  {% endfor %}
31
31
  {% endif %}
@@ -50,7 +50,7 @@ From the analysis above and targeted code reads, produce an architecture block:
50
50
 
51
51
  4. **Overview** — one paragraph summarizing the architecture: what the system does, how it's organized, and what the key design decisions are
52
52
 
53
- Read entry points, config files, and module interfaces to confirm the analysis. Do not read every file.
53
+ Read entry points, config files, and module interfaces to confirm the exploration. Do not read every file.
54
54
 
55
55
  ## Required Output Schema
56
56
 
@@ -31,7 +31,7 @@ Review the audit fix results and produce a routing manifest.
31
31
  Produce a routing manifest with:
32
32
 
33
33
  1. **decisions** — validated decisions from implementation results (with complete id, description, rationale fields)
34
- 2. **new_gaps** — genuine issues that should be tracked (with stable id, description, status: "open", category, priority)
34
+ 2. **new_issues** — genuine issues that should be tracked (with stable id, description, status: "open", category, priority)
35
35
  3. **summary** — accurate summary of what was completed, what failed, what needs inspection
36
36
 
37
37
  Only include items that are well-formed and represent genuine project artifacts. Do not route items that are missing required fields or describe hypothetical concerns.
@@ -29,16 +29,16 @@ Identify gaps in the project at `{{ path }}`.
29
29
 
30
30
  ## Codebase Analysis
31
31
 
32
- {% if analysis.files is defined %}
33
- ### Files ({{ analysis.files | length }} total)
34
- {% for file in analysis.files %}
32
+ {% if exploration.files is defined %}
33
+ ### Files ({{ exploration.files | length }} total)
34
+ {% for file in exploration.files %}
35
35
  - `{{ file.path }}` ({{ file.language | default("unknown") }}, {{ file.lines | default("?") }} lines){% if file.exports %} — {{ file.exports | length }} exports{% endif %}
36
36
  {% endfor %}
37
37
  {% endif %}
38
38
 
39
- {% if analysis.types is defined %}
39
+ {% if exploration.types is defined %}
40
40
  ### Types
41
- {% for t in analysis.types %}
41
+ {% for t in exploration.types %}
42
42
  - `{{ t.name }}` ({{ t.kind }}) in `{{ t.file }}`
43
43
  {% endfor %}
44
44
  {% endif %}
@@ -31,10 +31,10 @@
31
31
  {% endfor %}
32
32
  {% endif %}
33
33
 
34
- {% if gaps %}
34
+ {% if gaps and gaps.gaps %}
35
35
  ## Current Gaps
36
36
 
37
- {% for gap in gaps %}
37
+ {% for gap in gaps.gaps %}
38
38
  {% if gap.status == "open" %}
39
39
  - [{{ gap.priority }}] {{ gap.id }}: {{ gap.description }}
40
40
  {% endif %}
@@ -44,11 +44,11 @@
44
44
  {% if inventory %}
45
45
  ## Current Inventory
46
46
 
47
- - Step types: {{ inventory.step_types | length }}
48
- - Agent specs: {{ inventory.agent_specs | length }}
49
- - Schemas: {{ inventory.schemas | length }}
50
- - Tests: {{ inventory.test_count }}
51
- {% endif %}
47
+ {% if inventory.step_types %}- Step types: {{ inventory.step_types | length }}
48
+ {% endif %}{% if inventory.agent_specs %}- Agent specs: {{ inventory.agent_specs | length }}
49
+ {% endif %}{% if inventory.schemas %}- Schemas: {{ inventory.schemas | length }}
50
+ {% endif %}{% if inventory.test_count is defined %}- Tests: {{ inventory.test_count }}
51
+ {% endif %}{% endif %}
52
52
 
53
53
  ## Instructions
54
54
 
@@ -2,19 +2,19 @@ Infer the project identity for the project at `{{ path }}`.
2
2
 
3
3
  ## Codebase Analysis
4
4
 
5
- {% if analysis.files is defined %}
6
- ### Files ({{ analysis.files | length }} total)
7
- {% for file in analysis.files | batch(20) | first %}
5
+ {% if exploration.files is defined %}
6
+ ### Files ({{ exploration.files | length }} total)
7
+ {% for file in exploration.files | batch(20) | first %}
8
8
  - `{{ file.path }}` ({{ file.language | default("unknown") }})
9
9
  {% endfor %}
10
- {% if analysis.files | length > 20 %}
11
- ... and {{ analysis.files | length - 20 }} more files
10
+ {% if exploration.files | length > 20 %}
11
+ ... and {{ exploration.files | length - 20 }} more files
12
12
  {% endif %}
13
13
  {% endif %}
14
14
 
15
- {% if analysis.entryPoints is defined %}
15
+ {% if exploration.entryPoints is defined %}
16
16
  ### Entry Points
17
- {% for ep in analysis.entryPoints %}
17
+ {% for ep in exploration.entryPoints %}
18
18
  - `{{ ep }}`
19
19
  {% endfor %}
20
20
  {% endif %}
@@ -1,15 +1,17 @@
1
1
  ## Plan: {{ spec.name }}
2
2
 
3
3
  ### Intent
4
- {{ spec.intent }}
4
+ {{ spec.intent | default(spec.description, true) }}
5
5
 
6
+ {% if spec.tasks %}
6
7
  ### Tasks
7
8
  {% for task in spec.tasks %}
8
9
  {{ loop.index }}. {{ task }}
9
10
  {% endfor %}
11
+ {% endif %}
10
12
 
11
13
  ### Files to Change
12
- {% for f in spec.files_to_change %}
14
+ {% for f in spec.files_to_change | default(spec.files, true) %}
13
15
  - `{{ f }}`
14
16
  {% endfor %}
15
17
 
@@ -1,5 +1,5 @@
1
1
  name: analyze-existing-project
2
- description: Analyze an existing codebase, infer architecture and conventions, identify gaps, create planning state
2
+ description: Analyze an existing codebase, infer architecture and conventions, identify issues, create planning state
3
3
  version: "1"
4
4
 
5
5
  input:
@@ -35,9 +35,7 @@ steps:
35
35
  infer-architecture:
36
36
  agent: architecture-inferrer
37
37
  input:
38
- analysis:
39
- structure: ${{ steps.analyze-structure.output }}
40
- patterns: ${{ steps.analyze-patterns.output }}
38
+ exploration: "${{ steps.explore.output }}"
41
39
  path: ${{ input.path }}
42
40
  output:
43
41
  format: json
@@ -48,9 +46,7 @@ steps:
48
46
  infer-project:
49
47
  agent: project-inferrer
50
48
  input:
51
- analysis:
52
- structure: ${{ steps.analyze-structure.output }}
53
- patterns: ${{ steps.analyze-patterns.output }}
49
+ exploration: "${{ steps.explore.output }}"
54
50
  path: ${{ input.path }}
55
51
  output:
56
52
  format: json
@@ -58,17 +54,15 @@ steps:
58
54
  retry:
59
55
  maxAttempts: 2
60
56
 
61
- identify-gaps:
57
+ identify-issues:
62
58
  agent: gap-identifier
63
59
  input:
64
- analysis:
65
- structure: ${{ steps.analyze-structure.output }}
66
- patterns: ${{ steps.analyze-patterns.output }}
60
+ exploration: "${{ steps.explore.output }}"
67
61
  architecture: ${{ steps.infer-architecture.output }}
68
62
  path: ${{ input.path }}
69
63
  output:
70
64
  format: json
71
- schema: block:gaps
65
+ schema: block:issues
72
66
  retry:
73
67
  maxAttempts: 2
74
68
 
@@ -79,9 +73,9 @@ artifacts:
79
73
  architecture:
80
74
  path: .project/architecture.json
81
75
  from: steps.infer-architecture.output
82
- gaps:
83
- path: .project/gaps.json
84
- from: steps.identify-gaps.output
76
+ issues:
77
+ path: .project/issues.json
78
+ from: steps.identify-issues.output
85
79
 
86
80
  completion:
87
81
  template: |
@@ -89,6 +83,6 @@ completion:
89
83
 
90
84
  **Project:** ${{ steps.infer-project.output.name }} — ${{ steps.infer-project.output.core_value }}
91
85
  **Architecture:** ${{ steps.infer-architecture.output.modules | length }} modules, ${{ steps.infer-architecture.output.patterns | length }} patterns
92
- **Gaps:** ${{ steps.identify-gaps.output.gaps | length }} identified
86
+ **Gaps:** ${{ steps.identify-issues.output.issues | length }} identified
93
87
 
94
88
  Use `/project status` to see the full state. Use `/project validate` to check cross-block references.
@@ -5,8 +5,8 @@ version: "1"
5
5
  steps:
6
6
  load-blocks:
7
7
  block:
8
- read: [project, gaps, decisions, tasks]
9
- optional: [project, gaps, decisions, tasks]
8
+ read: [project, issues, decisions, tasks]
9
+ optional: [project, issues, decisions, tasks]
10
10
  output:
11
11
  format: json
12
12
 
@@ -22,7 +22,11 @@ steps:
22
22
  const { execSync } = require('child_process');
23
23
  const git = {};
24
24
  try {
25
- git.recent_commits = execSync('git log --oneline -10', { encoding: 'utf-8' }).trim().split('\n');
25
+ const lines = execSync('git log --oneline -10', { encoding: 'utf-8' }).trim().split('\n').filter(Boolean);
26
+ git.recent_commits = lines.map(line => {
27
+ const spaceIdx = line.indexOf(' ');
28
+ return { sha: line.slice(0, spaceIdx), message: line.slice(spaceIdx + 1) };
29
+ });
26
30
  } catch (e) {
27
31
  git.recent_commits = [];
28
32
  git.commits_error = e.message || 'git log failed';
@@ -47,14 +51,14 @@ steps:
47
51
  console.log(JSON.stringify({
48
52
  project: blocks.project,
49
53
  phases: phases,
50
- gaps: blocks.gaps,
54
+ issues: blocks.issues,
51
55
  decisions: blocks.decisions,
52
56
  tasks: blocks.tasks,
53
57
  recentCommits: git.recent_commits || [],
54
58
  changedFiles: git.changed_files || [],
55
59
  blocks_status: {
56
60
  project: blocks.project != null,
57
- gaps: blocks.gaps != null,
61
+ issues: blocks.issues != null,
58
62
  decisions: blocks.decisions != null,
59
63
  tasks: blocks.tasks != null,
60
64
  phases: phases.length > 0,
@@ -19,8 +19,15 @@ steps:
19
19
 
20
20
  load-context:
21
21
  block:
22
- read: [architecture, conventions, gaps, inventory]
23
- optional: [architecture, conventions, gaps, inventory]
22
+ read: [architecture, conventions, inventory]
23
+ optional: [architecture, conventions, inventory]
24
+ output:
25
+ format: json
26
+
27
+ load-issues:
28
+ block:
29
+ read: issues
30
+ optional: [issues]
24
31
  output:
25
32
  format: json
26
33
 
@@ -31,7 +38,7 @@ steps:
31
38
  phases: "${{ steps.load-phases.output }}"
32
39
  architecture: "${{ steps.load-context.output.architecture }}"
33
40
  conventions: "${{ steps.load-context.output.conventions }}"
34
- gaps: "${{ steps.load-context.output.gaps.gaps }}"
41
+ issues: "${{ steps.load-issues.output }}"
35
42
  inventory: "${{ steps.load-context.output.inventory }}"
36
43
  output:
37
44
  format: json