agile-context-engineering 0.5.0 → 0.5.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/.claude-plugin/marketplace.json +18 -0
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +7 -1
- package/README.md +16 -12
- package/agents/ace-code-discovery-analyst.md +245 -245
- package/agents/ace-code-integration-analyst.md +248 -248
- package/agents/ace-code-reviewer.md +375 -375
- package/agents/ace-product-owner.md +365 -361
- package/agents/ace-project-researcher.md +606 -606
- package/agents/ace-technical-application-architect.md +315 -315
- package/bin/install.js +587 -173
- package/hooks/ace-check-update.js +15 -14
- package/hooks/ace-statusline.js +30 -12
- package/hooks/hooks.json +14 -0
- package/package.json +3 -2
- package/shared/lib/ace-core.js +53 -0
- package/shared/lib/ace-core.test.js +308 -308
- package/shared/lib/ace-story.test.js +250 -250
- package/skills/execute-story/SKILL.md +116 -110
- package/skills/execute-story/script.js +13 -27
- package/skills/execute-story/script.test.js +261 -261
- package/skills/execute-story/story-template.xml +451 -451
- package/skills/execute-story/workflow.xml +3 -1
- package/skills/help/SKILL.md +71 -69
- package/skills/help/script.js +32 -35
- package/skills/help/script.test.js +183 -183
- package/skills/help/workflow.xml +14 -3
- package/skills/init-coding-standards/SKILL.md +91 -72
- package/skills/init-coding-standards/coding-standards-template.xml +531 -531
- package/skills/init-coding-standards/script.js +50 -59
- package/skills/init-coding-standards/script.test.js +70 -70
- package/skills/init-coding-standards/workflow.xml +1 -1
- package/skills/map-cross-cutting/SKILL.md +126 -89
- package/skills/map-cross-cutting/workflow.xml +1 -1
- package/skills/map-guide/SKILL.md +126 -89
- package/skills/map-guide/workflow.xml +1 -1
- package/skills/map-pattern/SKILL.md +125 -89
- package/skills/map-pattern/workflow.xml +1 -1
- package/skills/map-story/SKILL.md +180 -127
- package/skills/map-story/templates/tech-debt-index.xml +125 -125
- package/skills/map-story/workflow.xml +2 -2
- package/skills/map-subsystem/SKILL.md +155 -111
- package/skills/map-subsystem/script.js +51 -60
- package/skills/map-subsystem/script.test.js +68 -68
- package/skills/map-subsystem/templates/subsystem-architecture.xml +343 -343
- package/skills/map-subsystem/templates/subsystem-structure.xml +234 -234
- package/skills/map-subsystem/workflow.xml +1173 -1173
- package/skills/map-sys-doc/SKILL.md +125 -90
- package/skills/map-sys-doc/workflow.xml +1 -1
- package/skills/map-system/SKILL.md +103 -85
- package/skills/map-system/script.js +75 -84
- package/skills/map-system/script.test.js +73 -73
- package/skills/map-system/templates/system-structure.xml +177 -177
- package/skills/map-system/templates/testing-framework.xml +283 -283
- package/skills/map-system/workflow.xml +667 -667
- package/skills/map-walkthrough/SKILL.md +140 -92
- package/skills/map-walkthrough/workflow.xml +457 -457
- package/skills/plan-backlog/SKILL.md +93 -75
- package/skills/plan-backlog/script.js +121 -136
- package/skills/plan-backlog/script.test.js +83 -83
- package/skills/plan-backlog/workflow.xml +1348 -1348
- package/skills/plan-feature/SKILL.md +99 -76
- package/skills/plan-feature/feature-template.xml +361 -361
- package/skills/plan-feature/script.js +131 -148
- package/skills/plan-feature/script.test.js +80 -80
- package/skills/plan-feature/workflow.xml +1 -1
- package/skills/plan-product-vision/SKILL.md +91 -75
- package/skills/plan-product-vision/product-vision-template.xml +227 -227
- package/skills/plan-product-vision/script.js +51 -60
- package/skills/plan-product-vision/script.test.js +69 -69
- package/skills/plan-product-vision/workflow.xml +337 -337
- package/skills/plan-story/SKILL.md +125 -102
- package/skills/plan-story/script.js +18 -49
- package/skills/plan-story/story-template.xml +8 -1
- package/skills/plan-story/workflow.xml +17 -1
- package/skills/research-external-solution/SKILL.md +120 -107
- package/skills/research-external-solution/external-solution-template.xml +832 -832
- package/skills/research-external-solution/script.js +229 -238
- package/skills/research-external-solution/script.test.js +134 -134
- package/skills/research-external-solution/workflow.xml +657 -657
- package/skills/research-integration-solution/SKILL.md +121 -98
- package/skills/research-integration-solution/integration-solution-template.xml +1015 -1015
- package/skills/research-integration-solution/script.js +223 -231
- package/skills/research-integration-solution/script.test.js +134 -134
- package/skills/research-integration-solution/workflow.xml +711 -711
- package/skills/research-story-wiki/SKILL.md +101 -92
- package/skills/research-story-wiki/script.js +223 -231
- package/skills/research-story-wiki/script.test.js +138 -138
- package/skills/research-story-wiki/story-wiki-template.xml +194 -194
- package/skills/research-story-wiki/workflow.xml +473 -473
- package/skills/research-technical-solution/SKILL.md +131 -103
- package/skills/research-technical-solution/script.js +223 -231
- package/skills/research-technical-solution/script.test.js +134 -134
- package/skills/research-technical-solution/technical-solution-template.xml +1025 -1025
- package/skills/research-technical-solution/workflow.xml +761 -761
- package/skills/review-story/SKILL.md +99 -100
- package/skills/review-story/script.js +8 -16
- package/skills/review-story/script.test.js +169 -169
- package/skills/review-story/story-template.xml +451 -451
- package/skills/review-story/workflow.xml +1 -1
- package/skills/update/SKILL.md +65 -53
- package/skills/update/workflow.xml +21 -5
|
@@ -1,110 +1,116 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: execute-story
|
|
3
|
-
description: Execute a fully-planned story -- loads AC + Technical Solution, creates execution plan via Plan Mode, implements (solo or agent teams), runs code review, updates state, and triggers wiki mapping
|
|
4
|
-
argument-hint: "story=<file-path|github-url> [--agent-teams-off]"
|
|
5
|
-
disable-model-invocation: true
|
|
6
|
-
allowed-tools: Read, Bash, Write, Edit, AskUserQuestion, Glob, Grep, Agent, EnterPlanMode, ExitPlanMode
|
|
7
|
-
model: opus
|
|
8
|
-
effort: max
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
The
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
1
|
+
---
|
|
2
|
+
name: execute-story
|
|
3
|
+
description: Execute a fully-planned story -- loads AC + Technical Solution, creates execution plan via Plan Mode, implements (solo or agent teams), runs code review, updates state, and triggers wiki mapping
|
|
4
|
+
argument-hint: "story=<file-path|github-url> [--agent-teams-off]"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
allowed-tools: Read, Bash, Write, Edit, AskUserQuestion, Glob, Grep, Agent, EnterPlanMode, ExitPlanMode
|
|
7
|
+
model: opus
|
|
8
|
+
effort: max
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Environment Context (preprocessed)
|
|
12
|
+
|
|
13
|
+
!`node "${CLAUDE_SKILL_DIR}/script.js" init "$ARGUMENTS" 2>/dev/null`
|
|
14
|
+
|
|
15
|
+
## Supporting Resources (auto-loaded)
|
|
16
|
+
|
|
17
|
+
!`cat "${CLAUDE_SKILL_DIR}/workflow.xml"`
|
|
18
|
+
|
|
19
|
+
!`cat "${CLAUDE_SKILL_DIR}/story-template.xml"`
|
|
20
|
+
|
|
21
|
+
!`cat "${CLAUDE_SKILL_DIR}/walkthrough-template.xml"`
|
|
22
|
+
|
|
23
|
+
!`cat "${CLAUDE_SKILL_DIR}/../../shared/utils/questioning.xml"`
|
|
24
|
+
|
|
25
|
+
!`cat "${CLAUDE_SKILL_DIR}/../../shared/utils/ui-formatting.md"`
|
|
26
|
+
|
|
27
|
+
```xml
|
|
28
|
+
<command>
|
|
29
|
+
|
|
30
|
+
<execution-time>
|
|
31
|
+
<runs-after>
|
|
32
|
+
<trigger>After /ace:plan-story — once a story has AC + Technical Solution</trigger>
|
|
33
|
+
<trigger>Anytime — to execute a fully-planned story specification</trigger>
|
|
34
|
+
</runs-after>
|
|
35
|
+
<use-when>
|
|
36
|
+
<condition>A story has both Acceptance Criteria AND Technical Solution sections</condition>
|
|
37
|
+
<condition>Story status is "Refined" (ready for implementation)</condition>
|
|
38
|
+
</use-when>
|
|
39
|
+
</execution-time>
|
|
40
|
+
|
|
41
|
+
<input>
|
|
42
|
+
<flags>
|
|
43
|
+
<flag name="--agent-teams-off">
|
|
44
|
+
Force solo execution mode regardless of agent_teams setting.
|
|
45
|
+
Overrides the agent_teams flag in settings.json.
|
|
46
|
+
Use when you want single-context execution even if teams are enabled.
|
|
47
|
+
</flag>
|
|
48
|
+
</flags>
|
|
49
|
+
|
|
50
|
+
<parameters>
|
|
51
|
+
<required>
|
|
52
|
+
<param name="story" type="file | github-url">
|
|
53
|
+
Story source — can be either:
|
|
54
|
+
- **File path**: Path to a fully-planned story markdown file
|
|
55
|
+
(must have AC + Technical Solution sections)
|
|
56
|
+
- **GitHub URL or issue number**: GitHub story reference
|
|
57
|
+
Must be a valid, accessible file or GitHub issue.
|
|
58
|
+
The story MUST have been through /ace:plan-story (has AC + Technical Solution).
|
|
59
|
+
</param>
|
|
60
|
+
</required>
|
|
61
|
+
</parameters>
|
|
62
|
+
</input>
|
|
63
|
+
|
|
64
|
+
<execution-context>
|
|
65
|
+
<!-- All supporting files are auto-loaded in the Supporting Resources section above.
|
|
66
|
+
The model does NOT need to Read these files — they are already in context. -->
|
|
67
|
+
</execution-context>
|
|
68
|
+
|
|
69
|
+
<output>
|
|
70
|
+
<objective>
|
|
71
|
+
Take a fully-planned story (with AC + Technical Solution) and:
|
|
72
|
+
1. Create an execution plan via Claude Code Plan Mode
|
|
73
|
+
2. Execute the plan — solo or with Agent Teams
|
|
74
|
+
3. Run code review (3-level verification, anti-pattern detection, coding standards)
|
|
75
|
+
4. Present results to user for verification/approval
|
|
76
|
+
5. Commit implementation (single commit after approval)
|
|
77
|
+
6. Update state: story file, feature file, product backlog, GitHub
|
|
78
|
+
7. Trigger wiki mapping (background) with tech debt integration
|
|
79
|
+
|
|
80
|
+
Two execution modes:
|
|
81
|
+
- **Solo Mode** (default or --agent-teams-off): Single context, plan mode → execute
|
|
82
|
+
- **Agent Teams Mode** (when enabled + plan recommends): Lead + teammates for parallel work
|
|
83
|
+
</objective>
|
|
84
|
+
|
|
85
|
+
<artifacts>
|
|
86
|
+
Story file updated with Summary & State section and Wiki Updates section.
|
|
87
|
+
Feature file updated with story status.
|
|
88
|
+
Product backlog updated with story (and possibly feature) status.
|
|
89
|
+
Wiki documents updated/created based on implementation changes.
|
|
90
|
+
</artifacts>
|
|
91
|
+
</output>
|
|
92
|
+
|
|
93
|
+
<process>
|
|
94
|
+
**STRICT WORKFLOW EXECUTION — Follow the execute-story workflow STEP BY STEP.
|
|
95
|
+
Do NOT skip steps. Do NOT improvise. Do NOT start reading code or planning
|
|
96
|
+
until step 1 (init & validate) is fully complete with the init command output parsed.**
|
|
97
|
+
|
|
98
|
+
Execute the execute-story workflow from
|
|
99
|
+
`workflow.xml` end-to-end.
|
|
100
|
+
|
|
101
|
+
**MANDATORY FIRST ACTION: Run the init command (step 1.2) BEFORE doing anything else.
|
|
102
|
+
Do NOT read the story file manually. Do NOT explore the codebase. Do NOT start planning.
|
|
103
|
+
The init command validates the story and provides all paths and context needed.**
|
|
104
|
+
|
|
105
|
+
**CRITICAL REQUIREMENTS:**
|
|
106
|
+
- Story MUST have Acceptance Criteria — STOP if missing
|
|
107
|
+
- Story MUST have Technical Solution — STOP if missing
|
|
108
|
+
- NO intermediary commits during implementation
|
|
109
|
+
- ONE single commit per story after user approval (code + state + docs)
|
|
110
|
+
- Code review is MANDATORY — blockers must be fixed before approval
|
|
111
|
+
- Coding standards violations are BLOCKERS, not warnings
|
|
112
|
+
- Dead code and backwards-compatible shims must be DELETED
|
|
113
|
+
</process>
|
|
114
|
+
|
|
115
|
+
<example-usage>
|
|
116
|
+
```
|
|
@@ -18,7 +18,7 @@ const path = require('path');
|
|
|
18
18
|
|
|
19
19
|
const {
|
|
20
20
|
loadConfig, pathExists, safeReadFile, resolveModel,
|
|
21
|
-
loadSettings, execCommand, output, error,
|
|
21
|
+
loadSettings, execCommand, output, error, runSkillScript,
|
|
22
22
|
} = require('../../shared/lib/ace-core');
|
|
23
23
|
|
|
24
24
|
const {
|
|
@@ -35,7 +35,7 @@ const { syncStory } = require('../../shared/lib/ace-github');
|
|
|
35
35
|
* Detect the runtime config directory name.
|
|
36
36
|
* In the plugin context, the script lives at:
|
|
37
37
|
* <base>/<config-dir>/skills/execute-story/script.js
|
|
38
|
-
* Default to '.claude'
|
|
38
|
+
* Default to '.claude' for backwards compatibility.
|
|
39
39
|
*/
|
|
40
40
|
function getRuntimeConfigDirName() {
|
|
41
41
|
try {
|
|
@@ -43,7 +43,7 @@ function getRuntimeConfigDirName() {
|
|
|
43
43
|
const skillsDir = path.dirname(skillDir); // <base>/<config-dir>/skills
|
|
44
44
|
const configDir = path.dirname(skillsDir); // <base>/<config-dir>
|
|
45
45
|
const dirName = path.basename(configDir);
|
|
46
|
-
if (dirName === '.opencode' || dirName === '.claude') {
|
|
46
|
+
if (dirName === '.opencode' || dirName === '.codex' || dirName === '.claude') {
|
|
47
47
|
return dirName;
|
|
48
48
|
}
|
|
49
49
|
} catch {}
|
|
@@ -54,31 +54,17 @@ const RUNTIME_CONFIG_DIR = getRuntimeConfigDirName();
|
|
|
54
54
|
|
|
55
55
|
// ─── CLI Dispatch ────────────────────────────────────────────────────────────
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
case 'init':
|
|
64
|
-
cmdInit(cwd, raw, args.slice(1).filter(a => a !== '--raw'));
|
|
65
|
-
break;
|
|
66
|
-
case 'update-state':
|
|
67
|
-
updateState(cwd, raw, args.slice(1).filter(a => a !== '--raw'));
|
|
68
|
-
break;
|
|
69
|
-
case 'sync-github':
|
|
70
|
-
syncStory(cwd, raw, args.slice(1).filter(a => a !== '--raw'));
|
|
71
|
-
break;
|
|
72
|
-
case 'resolve-model': {
|
|
73
|
-
const agentType = args[1];
|
|
57
|
+
runSkillScript({
|
|
58
|
+
init: cmdInit,
|
|
59
|
+
'update-state': (cwd, raw, args) => updateState(cwd, raw, args),
|
|
60
|
+
'sync-github': (cwd, raw, args) => syncStory(cwd, raw, args),
|
|
61
|
+
'resolve-model': (cwd, raw, args, parsed) => {
|
|
62
|
+
const agentType = parsed._positional || args[0];
|
|
74
63
|
if (!agentType) error('resolve-model requires agent-type argument');
|
|
75
64
|
const model = resolveModel(cwd, agentType);
|
|
76
65
|
output({ model, agent: agentType }, raw, model);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
default:
|
|
80
|
-
error(`Unknown command: ${cmd}\nAvailable: init, update-state, sync-github, resolve-model`);
|
|
81
|
-
}
|
|
66
|
+
},
|
|
67
|
+
});
|
|
82
68
|
|
|
83
69
|
// ─── Init: Execute Story ────────────────────────────────────────────────────
|
|
84
70
|
|
|
@@ -88,7 +74,7 @@ switch (cmd) {
|
|
|
88
74
|
* Detects: git, gh CLI, GitHub project, agent teams, story source/content/metadata,
|
|
89
75
|
* acceptance criteria, technical solution, wiki refs, coding standards, computed paths.
|
|
90
76
|
*/
|
|
91
|
-
function cmdInit(cwd, raw,
|
|
77
|
+
function cmdInit(cwd, raw, args, parsed) {
|
|
92
78
|
const config = loadConfig(cwd);
|
|
93
79
|
|
|
94
80
|
// ── Environment detection ──
|
|
@@ -114,7 +100,7 @@ function cmdInit(cwd, raw, initArgs) {
|
|
|
114
100
|
} catch {}
|
|
115
101
|
|
|
116
102
|
// ── Parse story param ──
|
|
117
|
-
const storyParam =
|
|
103
|
+
const storyParam = parsed.story || parsed._positional || null;
|
|
118
104
|
|
|
119
105
|
// ── Classify the story parameter ──
|
|
120
106
|
const classified = classifyStoryParam(storyParam);
|