refactor(workflow-lite-planex): update skill name and improve documentation consistency

This commit is contained in:
catlog22
2026-03-02 15:31:17 +08:00
parent 121e834459
commit ce2927b28d
2 changed files with 26 additions and 22 deletions

View File

@@ -282,6 +282,10 @@ const taskJsons = taskFiles.map(f => {
const content = Read(f) const content = Read(f)
const json = JSON.parse(content) const json = JSON.parse(content)
json._filePath = f json._filePath = f
// Fallback: derive id from filename if missing
if (!json.id) {
json.id = f.split('/').pop().replace('.json', '')
}
return json return json
}) })
@@ -860,7 +864,7 @@ let todoMd = Read(`${sessionFolder}/TODO_LIST.md`)
for (const task of finalTasks) { for (const task of finalTasks) {
if (task.status === 'completed') { if (task.status === 'completed') {
// Ensure marked as [x] in TODO_LIST.md // Ensure marked as [x] in TODO_LIST.md
const uncheckedPattern = new RegExp(`^(- \\[ \\] ${task.id.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}:.*)$`, 'm') const uncheckedPattern = new RegExp(`^(- \\[ \\] ${task.id.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(:.*)?)$`, 'm')
todoMd = todoMd.replace(uncheckedPattern, (match, line) => line.replace('- [ ]', '- [x]')) todoMd = todoMd.replace(uncheckedPattern, (match, line) => line.replace('- [ ]', '- [x]'))
} }
} }

View File

@@ -1,5 +1,5 @@
--- ---
name: wave-plan-pipeline name: workflow-lite-planex
description: Explore-first wave pipeline. Decomposes requirement into exploration angles, runs wave exploration via spawn_agents_on_csv, synthesizes findings into execution tasks with cross-phase context linking (E*→T*), then wave-executes via spawn_agents_on_csv. description: Explore-first wave pipeline. Decomposes requirement into exploration angles, runs wave exploration via spawn_agents_on_csv, synthesizes findings into execution tasks with cross-phase context linking (E*→T*), then wave-executes via spawn_agents_on_csv.
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"requirement description\"" argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"requirement description\""
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
@@ -9,15 +9,15 @@ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUser
When `--yes` or `-y`: Auto-confirm decomposition, skip interactive validation, use defaults. When `--yes` or `-y`: Auto-confirm decomposition, skip interactive validation, use defaults.
# Wave Plan Pipeline # Workflow Lite Planex
## Usage ## Usage
```bash ```bash
$wave-plan-pipeline "Implement user authentication with OAuth, JWT, and 2FA" $workflow-lite-planex "Implement user authentication with OAuth, JWT, and 2FA"
$wave-plan-pipeline -c 4 "Refactor payment module with Stripe and PayPal" $workflow-lite-planex -c 4 "Refactor payment module with Stripe and PayPal"
$wave-plan-pipeline -y "Build notification system with email and SMS" $workflow-lite-planex -y "Build notification system with email and SMS"
$wave-plan-pipeline --continue "auth-20260228" $workflow-lite-planex --continue "auth-20260228"
``` ```
**Flags**: **Flags**:
@@ -25,7 +25,7 @@ $wave-plan-pipeline --continue "auth-20260228"
- `-c, --concurrency N`: Max concurrent agents within each wave (default: 4) - `-c, --concurrency N`: Max concurrent agents within each wave (default: 4)
- `--continue`: Resume existing session - `--continue`: Resume existing session
**Output Directory**: `.workflow/.wave-plan/{session-id}/` **Output Directory**: `.workflow/.lite-plan/{session-id}/`
--- ---
@@ -37,7 +37,7 @@ Explore-first wave-based pipeline using `spawn_agents_on_csv`. Two-stage CSV exe
``` ```
┌──────────────────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────────────────────┐
│ WAVE PLAN PIPELINE │ WORKFLOW LITE PLANEX
├──────────────────────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────────────────────┤
│ │ │ │
│ Phase 1: Requirement → explore.csv │ │ Phase 1: Requirement → explore.csv │
@@ -191,7 +191,7 @@ The `prev_context` column is built from `context_from` by looking up completed r
## Session Structure ## Session Structure
``` ```
.workflow/.wave-plan/{session-id}/ .workflow/.lite-plan/{session-id}/
├── explore.csv # Exploration state ├── explore.csv # Exploration state
├── tasks.csv # Execution state ├── tasks.csv # Execution state
├── results.csv # Final results export ├── results.csv # Final results export
@@ -225,14 +225,14 @@ const slug = requirement.toLowerCase()
.substring(0, 40) .substring(0, 40)
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '') const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
const sessionId = `wpp-${slug}-${dateStr}` const sessionId = `wpp-${slug}-${dateStr}`
const sessionFolder = `.workflow/.wave-plan/${sessionId}` const sessionFolder = `.workflow/.lite-plan/${sessionId}`
// Continue mode: find existing session // Continue mode: find existing session
if (continueMode) { if (continueMode) {
const existing = Bash(`ls -t .workflow/.wave-plan/ 2>/dev/null | head -1`).trim() const existing = Bash(`ls -t .workflow/.lite-plan/ 2>/dev/null | head -1`).trim()
if (existing) { if (existing) {
sessionId = existing sessionId = existing
sessionFolder = `.workflow/.wave-plan/${sessionId}` sessionFolder = `.workflow/.lite-plan/${sessionId}`
// Check which phase to resume: if tasks.csv exists → Phase 4, else → Phase 2 // Check which phase to resume: if tasks.csv exists → Phase 4, else → Phase 2
} }
} }
@@ -304,7 +304,7 @@ REQUIREMENT: ${requirement}" --tool gemini --mode analysis --rule planning-break
}) })
if (answer.Validation === "Modify") { if (answer.Validation === "Modify") {
console.log(`Edit: ${sessionFolder}/explore.csv\nResume: $wave-plan-pipeline --continue`) console.log(`Edit: ${sessionFolder}/explore.csv\nResume: $workflow-lite-planex --continue`)
return return
} else if (answer.Validation === "Cancel") { } else if (answer.Validation === "Cancel") {
return return
@@ -599,7 +599,7 @@ ${wt.map(t => ` - [${t.id}] ${t.title} (scope: ${t.scope}, from: ${t.context_fr
}) })
if (answer.Confirm === "Modify") { if (answer.Confirm === "Modify") {
console.log(`Edit: ${sessionFolder}/tasks.csv\nResume: $wave-plan-pipeline --continue`) console.log(`Edit: ${sessionFolder}/tasks.csv\nResume: $workflow-lite-planex --continue`)
return return
} else if (answer.Confirm === "Cancel") { } else if (answer.Confirm === "Cancel") {
return return
@@ -897,7 +897,7 @@ Otherwise set status to "failed" with details in error field.
const failed = finalTasks.filter(t => t.status === 'failed') const failed = finalTasks.filter(t => t.status === 'failed')
const skipped = finalTasks.filter(t => t.status === 'skipped') const skipped = finalTasks.filter(t => t.status === 'skipped')
const contextContent = `# Wave Plan Execution Report const contextContent = `# Lite Planex Execution Report
**Session**: ${sessionId} **Session**: ${sessionId}
**Requirement**: ${requirement} **Requirement**: ${requirement}
@@ -969,7 +969,7 @@ ${[...new Set(finalTasks.flatMap(t => (t.files_modified || '').split(';')).filte
```javascript ```javascript
console.log(` console.log(`
## Wave Plan Complete ## Lite Planex Complete
- **Session**: ${sessionId} - **Session**: ${sessionId}
- **Explore**: ${exploreCSV.filter(r => r.status === 'completed').length}/${exploreCSV.length} angles - **Explore**: ${exploreCSV.filter(r => r.status === 'completed').length}/${exploreCSV.length} angles
@@ -1134,8 +1134,8 @@ All agents across all phases share `discoveries.ndjson`. This eliminates redunda
| Scenario | Recommended Approach | | Scenario | Recommended Approach |
|----------|---------------------| |----------|---------------------|
| Complex feature (unclear architecture) | `$wave-plan-pipeline` — explore first, then plan | | Complex feature (unclear architecture) | `$workflow-lite-planex` — explore first, then plan |
| Simple known-pattern task | `$csv-wave-pipeline` — skip exploration, direct execution | | Simple known-pattern task | `$workflow-lite-planex` — skip exploration, direct execution |
| Independent parallel tasks | `$csv-wave-pipeline -c 8` — single wave, max parallelism | | Independent parallel tasks | `$workflow-lite-planex -c 8` — single wave, max parallelism |
| Diamond dependency (A→B,C→D) | `$wave-plan-pipeline` — 3 waves with context propagation | | Diamond dependency (A→B,C→D) | `$workflow-lite-planex` — 3 waves with context propagation |
| Unknown codebase | `$wave-plan-pipeline` — exploration phase is essential | | Unknown codebase | `$workflow-lite-planex` — exploration phase is essential |