qualia-framework 2.1.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.
- package/README.md +50 -0
- package/bin/cli.js +519 -0
- package/framework/agents/architecture-strategist.md +53 -0
- package/framework/agents/backend-agent.md +150 -0
- package/framework/agents/code-simplicity-reviewer.md +86 -0
- package/framework/agents/frontend-agent.md +111 -0
- package/framework/agents/kieran-typescript-reviewer.md +96 -0
- package/framework/agents/performance-oracle.md +111 -0
- package/framework/agents/qualia-codebase-mapper.md +760 -0
- package/framework/agents/qualia-debugger.md +1203 -0
- package/framework/agents/qualia-executor.md +881 -0
- package/framework/agents/qualia-integration-checker.md +423 -0
- package/framework/agents/qualia-phase-researcher.md +453 -0
- package/framework/agents/qualia-plan-checker.md +699 -0
- package/framework/agents/qualia-planner.md +1241 -0
- package/framework/agents/qualia-project-researcher.md +602 -0
- package/framework/agents/qualia-research-synthesizer.md +236 -0
- package/framework/agents/qualia-roadmapper.md +605 -0
- package/framework/agents/qualia-verifier.md +685 -0
- package/framework/agents/team-orchestrator.md +228 -0
- package/framework/agents/teams/full-stack-team.md +48 -0
- package/framework/agents/teams/optimize-team.md +53 -0
- package/framework/agents/teams/review-team.md +62 -0
- package/framework/agents/teams/ship-team.md +86 -0
- package/framework/agents/test-agent.md +182 -0
- package/framework/askpass.sh +2 -0
- package/framework/commands/design.md +53 -0
- package/framework/commands/quick-db.md +22 -0
- package/framework/config/retention.json +35 -0
- package/framework/core/PRINCIPLES.md +77 -0
- package/framework/hooks/auto-format.sh +45 -0
- package/framework/hooks/block-env-edit.sh +42 -0
- package/framework/hooks/branch-guard.sh +46 -0
- package/framework/hooks/confirm-delete.sh +56 -0
- package/framework/hooks/migration-validate.sh +68 -0
- package/framework/hooks/notification-speak.sh +15 -0
- package/framework/hooks/pre-commit.sh +80 -0
- package/framework/hooks/pre-compact.sh +55 -0
- package/framework/hooks/pre-deploy-gate.sh +151 -0
- package/framework/hooks/qualia-colors.sh +32 -0
- package/framework/hooks/retention-cleanup.sh +43 -0
- package/framework/hooks/save-session-state.sh +153 -0
- package/framework/hooks/session-context-loader.sh +28 -0
- package/framework/hooks/session-learn.sh +30 -0
- package/framework/knowledge/claudecode-bible.md +1384 -0
- package/framework/knowledge/client-prefs.md +22 -0
- package/framework/knowledge/common-fixes.md +25 -0
- package/framework/knowledge/deployment-map.md +35 -0
- package/framework/knowledge/email-signature.html +1 -0
- package/framework/knowledge/employees.md +8 -0
- package/framework/knowledge/learned-patterns.md +51 -0
- package/framework/knowledge/optimization-research-2026.md +137 -0
- package/framework/knowledge/qualia-context.md +67 -0
- package/framework/knowledge/supabase-patterns.md +50 -0
- package/framework/knowledge/voice-agent-patterns.md +46 -0
- package/framework/qualia-engine/VERSION +1 -0
- package/framework/qualia-engine/bin/qualia-tools.js +2160 -0
- package/framework/qualia-engine/bin/qualia-tools.test.js +1054 -0
- package/framework/qualia-engine/references/checkpoints.md +775 -0
- package/framework/qualia-engine/references/continuation-format.md +249 -0
- package/framework/qualia-engine/references/decimal-phase-calculation.md +65 -0
- package/framework/qualia-engine/references/design-quality.md +56 -0
- package/framework/qualia-engine/references/git-integration.md +254 -0
- package/framework/qualia-engine/references/git-planning-commit.md +50 -0
- package/framework/qualia-engine/references/model-profile-resolution.md +32 -0
- package/framework/qualia-engine/references/model-profiles.md +73 -0
- package/framework/qualia-engine/references/phase-argument-parsing.md +61 -0
- package/framework/qualia-engine/references/planning-config.md +195 -0
- package/framework/qualia-engine/references/questioning.md +141 -0
- package/framework/qualia-engine/references/tdd.md +263 -0
- package/framework/qualia-engine/references/ui-brand.md +160 -0
- package/framework/qualia-engine/references/verification-patterns.md +612 -0
- package/framework/qualia-engine/templates/DEBUG.md +159 -0
- package/framework/qualia-engine/templates/DESIGN.md +81 -0
- package/framework/qualia-engine/templates/UAT.md +247 -0
- package/framework/qualia-engine/templates/codebase/architecture.md +255 -0
- package/framework/qualia-engine/templates/codebase/concerns.md +310 -0
- package/framework/qualia-engine/templates/codebase/conventions.md +307 -0
- package/framework/qualia-engine/templates/codebase/integrations.md +280 -0
- package/framework/qualia-engine/templates/codebase/stack.md +186 -0
- package/framework/qualia-engine/templates/codebase/structure.md +285 -0
- package/framework/qualia-engine/templates/codebase/testing.md +480 -0
- package/framework/qualia-engine/templates/config.json +35 -0
- package/framework/qualia-engine/templates/context.md +283 -0
- package/framework/qualia-engine/templates/continue-here.md +78 -0
- package/framework/qualia-engine/templates/debug-subagent-prompt.md +91 -0
- package/framework/qualia-engine/templates/discovery.md +146 -0
- package/framework/qualia-engine/templates/milestone-archive.md +123 -0
- package/framework/qualia-engine/templates/milestone.md +115 -0
- package/framework/qualia-engine/templates/phase-prompt.md +567 -0
- package/framework/qualia-engine/templates/planner-subagent-prompt.md +117 -0
- package/framework/qualia-engine/templates/project.md +184 -0
- package/framework/qualia-engine/templates/projects/ai-agent.md +156 -0
- package/framework/qualia-engine/templates/projects/mobile-app.md +181 -0
- package/framework/qualia-engine/templates/projects/voice-agent.md +134 -0
- package/framework/qualia-engine/templates/projects/website.md +137 -0
- package/framework/qualia-engine/templates/requirements.md +231 -0
- package/framework/qualia-engine/templates/research-project/ARCHITECTURE.md +204 -0
- package/framework/qualia-engine/templates/research-project/FEATURES.md +147 -0
- package/framework/qualia-engine/templates/research-project/PITFALLS.md +200 -0
- package/framework/qualia-engine/templates/research-project/STACK.md +120 -0
- package/framework/qualia-engine/templates/research-project/SUMMARY.md +170 -0
- package/framework/qualia-engine/templates/research.md +552 -0
- package/framework/qualia-engine/templates/roadmap.md +202 -0
- package/framework/qualia-engine/templates/state.md +176 -0
- package/framework/qualia-engine/templates/summary-complex.md +59 -0
- package/framework/qualia-engine/templates/summary-minimal.md +41 -0
- package/framework/qualia-engine/templates/summary-standard.md +48 -0
- package/framework/qualia-engine/templates/summary.md +246 -0
- package/framework/qualia-engine/templates/user-setup.md +311 -0
- package/framework/qualia-engine/templates/verification-report.md +322 -0
- package/framework/qualia-engine/workflows/add-phase.md +179 -0
- package/framework/qualia-engine/workflows/add-todo.md +157 -0
- package/framework/qualia-engine/workflows/audit-milestone.md +241 -0
- package/framework/qualia-engine/workflows/check-todos.md +176 -0
- package/framework/qualia-engine/workflows/complete-milestone.md +858 -0
- package/framework/qualia-engine/workflows/diagnose-issues.md +219 -0
- package/framework/qualia-engine/workflows/discovery-phase.md +289 -0
- package/framework/qualia-engine/workflows/discuss-phase.md +534 -0
- package/framework/qualia-engine/workflows/execute-phase.md +559 -0
- package/framework/qualia-engine/workflows/execute-plan.md +438 -0
- package/framework/qualia-engine/workflows/help.md +470 -0
- package/framework/qualia-engine/workflows/insert-phase.md +220 -0
- package/framework/qualia-engine/workflows/list-phase-assumptions.md +178 -0
- package/framework/qualia-engine/workflows/map-codebase.md +327 -0
- package/framework/qualia-engine/workflows/new-milestone.md +363 -0
- package/framework/qualia-engine/workflows/new-project.md +1037 -0
- package/framework/qualia-engine/workflows/pause-work.md +122 -0
- package/framework/qualia-engine/workflows/plan-milestone-gaps.md +256 -0
- package/framework/qualia-engine/workflows/plan-phase.md +422 -0
- package/framework/qualia-engine/workflows/progress.md +354 -0
- package/framework/qualia-engine/workflows/quick.md +252 -0
- package/framework/qualia-engine/workflows/remove-phase.md +326 -0
- package/framework/qualia-engine/workflows/research-phase.md +74 -0
- package/framework/qualia-engine/workflows/resume-project.md +306 -0
- package/framework/qualia-engine/workflows/set-profile.md +80 -0
- package/framework/qualia-engine/workflows/settings.md +145 -0
- package/framework/qualia-engine/workflows/transition.md +556 -0
- package/framework/qualia-engine/workflows/update.md +197 -0
- package/framework/qualia-engine/workflows/verify-phase.md +195 -0
- package/framework/qualia-engine/workflows/verify-work.md +625 -0
- package/framework/rules/context7.md +11 -0
- package/framework/rules/deployment.md +29 -0
- package/framework/rules/frontend.md +33 -0
- package/framework/rules/security.md +12 -0
- package/framework/rules/speed.md +20 -0
- package/framework/scripts/__pycache__/say.cpython-314.pyc +0 -0
- package/framework/scripts/apply-retention.sh +120 -0
- package/framework/scripts/bootstrap-pop-os.sh +354 -0
- package/framework/scripts/claude-voice +13 -0
- package/framework/scripts/cleanup.sh +131 -0
- package/framework/scripts/cowork-mode.sh +141 -0
- package/framework/scripts/generate-project-claude-md.sh +153 -0
- package/framework/scripts/load-test-webhook.js +172 -0
- package/framework/scripts/say.py +236 -0
- package/framework/scripts/showcase-video-recorder/ffmpeg-builder.js +167 -0
- package/framework/scripts/showcase-video-recorder/playwright-helpers.js +216 -0
- package/framework/scripts/speak.py +55 -0
- package/framework/scripts/speak.sh +18 -0
- package/framework/scripts/status.sh +138 -0
- package/framework/scripts/sync-to-framework.sh +65 -0
- package/framework/scripts/voice-hotkey.py +227 -0
- package/framework/scripts/voice-input.sh +51 -0
- package/framework/skills/animate/SKILL.md +202 -0
- package/framework/skills/bolder/SKILL.md +144 -0
- package/framework/skills/browser-qa/SKILL.md +536 -0
- package/framework/skills/clarify/SKILL.md +179 -0
- package/framework/skills/colorize/SKILL.md +170 -0
- package/framework/skills/critique/SKILL.md +126 -0
- package/framework/skills/deep-research/SKILL.md +271 -0
- package/framework/skills/delight/SKILL.md +329 -0
- package/framework/skills/deploy/SKILL.md +261 -0
- package/framework/skills/deploy-verify/SKILL.md +377 -0
- package/framework/skills/deploy-verify/scripts/canary-check.sh +206 -0
- package/framework/skills/deploy-verify/scripts/check-console-errors.js +147 -0
- package/framework/skills/deploy-verify/scripts/check-cwv.js +139 -0
- package/framework/skills/deploy-verify/scripts/project-detect.sh +84 -0
- package/framework/skills/deploy-verify/scripts/verify.sh +548 -0
- package/framework/skills/design-quieter/SKILL.md +130 -0
- package/framework/skills/distill/SKILL.md +149 -0
- package/framework/skills/docs-lookup/SKILL.md +78 -0
- package/framework/skills/fcm-notifications/SKILL.md +125 -0
- package/framework/skills/financial-ledger/SKILL.md +1039 -0
- package/framework/skills/frontend-master/NOTICE.md +4 -0
- package/framework/skills/frontend-master/SKILL.md +127 -0
- package/framework/skills/frontend-master/reference/color-and-contrast.md +132 -0
- package/framework/skills/frontend-master/reference/interaction-design.md +123 -0
- package/framework/skills/frontend-master/reference/motion-design.md +99 -0
- package/framework/skills/frontend-master/reference/responsive-design.md +114 -0
- package/framework/skills/frontend-master/reference/spatial-design.md +100 -0
- package/framework/skills/frontend-master/reference/typography.md +131 -0
- package/framework/skills/frontend-master/reference/ux-writing.md +107 -0
- package/framework/skills/harden/SKILL.md +357 -0
- package/framework/skills/i18n-rtl/SKILL.md +752 -0
- package/framework/skills/learn/SKILL.md +71 -0
- package/framework/skills/memory/SKILL.md +50 -0
- package/framework/skills/mobile-expo/SKILL.md +864 -0
- package/framework/skills/mobile-expo/references/store-checklist.md +550 -0
- package/framework/skills/nestjs-backend/README.md +73 -0
- package/framework/skills/nestjs-backend/SKILL.md +446 -0
- package/framework/skills/nestjs-backend/references/templates.md +1173 -0
- package/framework/skills/normalize/SKILL.md +79 -0
- package/framework/skills/onboard/SKILL.md +242 -0
- package/framework/skills/polish/SKILL.md +209 -0
- package/framework/skills/pr/SKILL.md +66 -0
- package/framework/skills/qualia/SKILL.md +153 -0
- package/framework/skills/qualia-add-todo/SKILL.md +68 -0
- package/framework/skills/qualia-audit-milestone/SKILL.md +92 -0
- package/framework/skills/qualia-check-todos/SKILL.md +55 -0
- package/framework/skills/qualia-complete-milestone/SKILL.md +108 -0
- package/framework/skills/qualia-debug/SKILL.md +149 -0
- package/framework/skills/qualia-design/SKILL.md +203 -0
- package/framework/skills/qualia-discuss-phase/SKILL.md +72 -0
- package/framework/skills/qualia-execute-phase/SKILL.md +86 -0
- package/framework/skills/qualia-help/SKILL.md +67 -0
- package/framework/skills/qualia-idk/SKILL.md +352 -0
- package/framework/skills/qualia-list-phase-assumptions/SKILL.md +67 -0
- package/framework/skills/qualia-new-milestone/SKILL.md +72 -0
- package/framework/skills/qualia-new-project/SKILL.md +92 -0
- package/framework/skills/qualia-optimize/SKILL.md +417 -0
- package/framework/skills/qualia-pause-work/SKILL.md +96 -0
- package/framework/skills/qualia-plan-milestone-gaps/SKILL.md +57 -0
- package/framework/skills/qualia-plan-phase/SKILL.md +101 -0
- package/framework/skills/qualia-progress/SKILL.md +53 -0
- package/framework/skills/qualia-quick/SKILL.md +89 -0
- package/framework/skills/qualia-research-phase/SKILL.md +88 -0
- package/framework/skills/qualia-resume-work/SKILL.md +62 -0
- package/framework/skills/qualia-review/SKILL.md +263 -0
- package/framework/skills/qualia-start/SKILL.md +182 -0
- package/framework/skills/qualia-verify-work/SKILL.md +105 -0
- package/framework/skills/qualia-workflow/SKILL.md +130 -0
- package/framework/skills/rag/SKILL.md +750 -0
- package/framework/skills/responsive/SKILL.md +231 -0
- package/framework/skills/retro/SKILL.md +284 -0
- package/framework/skills/sakani-conventions/SKILL.md +136 -0
- package/framework/skills/sakani-conventions/evals/evals.json +23 -0
- package/framework/skills/sakani-conventions/references/entities.md +365 -0
- package/framework/skills/sakani-conventions/references/error-codes.md +95 -0
- package/framework/skills/seo-master/SKILL.md +490 -0
- package/framework/skills/seo-master/references/checklist.md +199 -0
- package/framework/skills/seo-master/references/structured-data.md +609 -0
- package/framework/skills/ship/SKILL.md +202 -0
- package/framework/skills/stack-researcher/SKILL.md +215 -0
- package/framework/skills/status/SKILL.md +154 -0
- package/framework/skills/status/scripts/health-check.sh +562 -0
- package/framework/skills/subscription-payments/SKILL.md +250 -0
- package/framework/skills/supabase/SKILL.md +973 -0
- package/framework/skills/supabase/references/templates.md +159 -0
- package/framework/skills/team/SKILL.md +67 -0
- package/framework/skills/test-runner/SKILL.md +202 -0
- package/framework/skills/voice-agent/SKILL.md +407 -0
- package/framework/skills/zoho-workflow/SKILL.md +51 -0
- package/framework/statusline-command.sh +117 -0
- package/package.json +24 -0
- package/profiles/fawzi.json +16 -0
- package/profiles/hasan.json +16 -0
- package/profiles/moayad.json +16 -0
- package/templates/CLAUDE-owner.md +52 -0
- package/templates/CLAUDE.md.hbs +58 -0
- package/templates/env.claude.template +12 -0
- package/templates/settings.json +141 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification. Default flow: Research (if needed) -> Plan -> Verify -> Done. Orchestrates qualia-phase-researcher, qualia-planner, and qualia-plan-checker agents with a revision loop (max 3 iterations).
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
|
|
8
|
+
@/home/qualia/.claude/qualia-engine/references/ui-brand.md
|
|
9
|
+
</required_reading>
|
|
10
|
+
|
|
11
|
+
<process>
|
|
12
|
+
|
|
13
|
+
## 1. Initialize
|
|
14
|
+
|
|
15
|
+
Load all context in one call:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
INIT=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js init plan-phase "$PHASE")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`.
|
|
22
|
+
|
|
23
|
+
**If `planning_exists` is false:** Error — run `/qualia:new-project` first.
|
|
24
|
+
|
|
25
|
+
## 2. Parse and Normalize Arguments
|
|
26
|
+
|
|
27
|
+
Extract from $ARGUMENTS: phase number (integer or decimal like `2.1`), flags (`--research`, `--skip-research`, `--gaps`, `--skip-verify`).
|
|
28
|
+
|
|
29
|
+
**If no phase number:** Detect next unplanned phase from roadmap.
|
|
30
|
+
|
|
31
|
+
**If `phase_found` is false:** Validate phase exists in ROADMAP.md. If valid, create the directory using `phase_slug` and `padded_phase` from init:
|
|
32
|
+
```bash
|
|
33
|
+
mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Existing artifacts from init:** `has_research`, `has_plans`, `plan_count`.
|
|
37
|
+
|
|
38
|
+
## 3. Validate Phase
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
PHASE_INFO=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js roadmap get-phase "${PHASE}")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**If `found` is false:** Error with available phases. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
|
|
45
|
+
|
|
46
|
+
## 4. Load CONTEXT.md
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
CONTEXT_CONTENT=$(cat "${PHASE_DIR}"/*-CONTEXT.md 2>/dev/null)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**CRITICAL:** Store `CONTEXT_CONTENT` now — pass to researcher, planner, checker, and revision agents.
|
|
53
|
+
|
|
54
|
+
If CONTEXT.md exists, display: `Using phase context from: ${PHASE_DIR}/*-CONTEXT.md`
|
|
55
|
+
|
|
56
|
+
## 5. Handle Research
|
|
57
|
+
|
|
58
|
+
**Skip if:** `--gaps` flag, `--skip-research` flag, or `research_enabled` is false (from init) without `--research` override.
|
|
59
|
+
|
|
60
|
+
**If `has_research` is true (from init) AND no `--research` flag:** Use existing, skip to step 6.
|
|
61
|
+
|
|
62
|
+
**If RESEARCH.md missing OR `--research` flag:**
|
|
63
|
+
|
|
64
|
+
Display banner:
|
|
65
|
+
```
|
|
66
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
67
|
+
Qualia ► RESEARCHING PHASE {X}
|
|
68
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
|
+
|
|
70
|
+
◆ Spawning researcher...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Spawn qualia-phase-researcher
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
PHASE_DESC=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js roadmap get-phase "${PHASE}" | jq -r '.section')
|
|
77
|
+
REQUIREMENTS=$(cat .planning/REQUIREMENTS.md 2>/dev/null | grep -A100 "## Requirements" | head -50)
|
|
78
|
+
STATE_SNAP=$(node /home/qualia/.claude/qualia-engine/bin/qualia-tools.js state-snapshot)
|
|
79
|
+
# Extract decisions from state-snapshot JSON: jq '.decisions[] | "\(.phase): \(.summary) - \(.rationale)"'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Research prompt:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
<objective>
|
|
86
|
+
Research how to implement Phase {phase_number}: {phase_name}
|
|
87
|
+
Answer: "What do I need to know to PLAN this phase well?"
|
|
88
|
+
</objective>
|
|
89
|
+
|
|
90
|
+
<phase_context>
|
|
91
|
+
IMPORTANT: If CONTEXT.md exists below, it contains user decisions from /qualia:discuss-phase.
|
|
92
|
+
- **Decisions** = Locked — research THESE deeply, no alternatives
|
|
93
|
+
- **Claude's Discretion** = Freedom areas — research options, recommend
|
|
94
|
+
- **Deferred Ideas** = Out of scope — ignore
|
|
95
|
+
|
|
96
|
+
{context_content}
|
|
97
|
+
</phase_context>
|
|
98
|
+
|
|
99
|
+
<additional_context>
|
|
100
|
+
**Phase description:** {phase_description}
|
|
101
|
+
**Requirements:** {requirements}
|
|
102
|
+
**Prior decisions:** {decisions}
|
|
103
|
+
</additional_context>
|
|
104
|
+
|
|
105
|
+
<output>
|
|
106
|
+
Write to: {phase_dir}/{phase}-RESEARCH.md
|
|
107
|
+
</output>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Task(
|
|
112
|
+
prompt="First, read /home/qualia/.claude/agents/qualia-phase-researcher.md for your role and instructions.\n\n" + research_prompt,
|
|
113
|
+
subagent_type="general-purpose",
|
|
114
|
+
model="{researcher_model}",
|
|
115
|
+
description="Research Phase {phase}"
|
|
116
|
+
)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Handle Researcher Return
|
|
120
|
+
|
|
121
|
+
- **`## RESEARCH COMPLETE`:** Display confirmation, continue to step 6
|
|
122
|
+
- **`## RESEARCH BLOCKED`:** Display blocker, offer: 1) Provide context, 2) Skip research, 3) Abort
|
|
123
|
+
|
|
124
|
+
## 6. Check Existing Plans
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**If exists:** Offer: 1) Add more plans, 2) View existing, 3) Replan from scratch.
|
|
131
|
+
|
|
132
|
+
## 7. Read Context Files
|
|
133
|
+
|
|
134
|
+
Read and store for planner agent (`@` syntax doesn't work across Task() boundaries):
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
STATE_CONTENT=$(cat .planning/STATE.md)
|
|
138
|
+
ROADMAP_CONTENT=$(cat .planning/ROADMAP.md)
|
|
139
|
+
REQUIREMENTS_CONTENT=$(cat .planning/REQUIREMENTS.md 2>/dev/null)
|
|
140
|
+
RESEARCH_CONTENT=$(cat "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null)
|
|
141
|
+
VERIFICATION_CONTENT=$(cat "${PHASE_DIR}"/*-VERIFICATION.md 2>/dev/null)
|
|
142
|
+
UAT_CONTENT=$(cat "${PHASE_DIR}"/*-UAT.md 2>/dev/null)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 8. Spawn qualia-planner Agent
|
|
146
|
+
|
|
147
|
+
Display banner:
|
|
148
|
+
```
|
|
149
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
150
|
+
Qualia ► PLANNING PHASE {X}
|
|
151
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
152
|
+
|
|
153
|
+
◆ Spawning planner...
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Planner prompt:
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
<planning_context>
|
|
160
|
+
**Phase:** {phase_number}
|
|
161
|
+
**Mode:** {standard | gap_closure}
|
|
162
|
+
|
|
163
|
+
**Project State:** {state_content}
|
|
164
|
+
**Roadmap:** {roadmap_content}
|
|
165
|
+
**Requirements:** {requirements_content}
|
|
166
|
+
|
|
167
|
+
**Phase Context:**
|
|
168
|
+
IMPORTANT: If context exists below, it contains USER DECISIONS from /qualia:discuss-phase.
|
|
169
|
+
- **Decisions** = LOCKED — honor exactly, do not revisit
|
|
170
|
+
- **Claude's Discretion** = Freedom — make implementation choices
|
|
171
|
+
- **Deferred Ideas** = Out of scope — do NOT include
|
|
172
|
+
|
|
173
|
+
{context_content}
|
|
174
|
+
|
|
175
|
+
**Research:** {research_content}
|
|
176
|
+
**Gap Closure (if --gaps):** {verification_content} {uat_content}
|
|
177
|
+
</planning_context>
|
|
178
|
+
|
|
179
|
+
<downstream_consumer>
|
|
180
|
+
Output consumed by /qualia:execute-phase. Plans need:
|
|
181
|
+
- Frontmatter (wave, depends_on, files_modified, autonomous)
|
|
182
|
+
- Tasks in XML format
|
|
183
|
+
- Verification criteria
|
|
184
|
+
- must_haves for goal-backward verification
|
|
185
|
+
</downstream_consumer>
|
|
186
|
+
|
|
187
|
+
<quality_gate>
|
|
188
|
+
- [ ] PLAN.md files created in phase directory
|
|
189
|
+
- [ ] Each plan has valid frontmatter
|
|
190
|
+
- [ ] Tasks are specific and actionable
|
|
191
|
+
- [ ] Dependencies correctly identified
|
|
192
|
+
- [ ] Waves assigned for parallel execution
|
|
193
|
+
- [ ] must_haves derived from phase goal
|
|
194
|
+
</quality_gate>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
Task(
|
|
199
|
+
prompt="First, read /home/qualia/.claude/agents/qualia-planner.md for your role and instructions.\n\n" + filled_prompt,
|
|
200
|
+
subagent_type="general-purpose",
|
|
201
|
+
model="{planner_model}",
|
|
202
|
+
description="Plan Phase {phase}"
|
|
203
|
+
)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 9. Handle Planner Return
|
|
207
|
+
|
|
208
|
+
- **`## PLANNING COMPLETE`:** Display plan count. If `--skip-verify` or `plan_checker_enabled` is false (from init): skip to step 13. Otherwise: step 10.
|
|
209
|
+
- **`## CHECKPOINT REACHED`:** Present to user, get response, spawn continuation (step 12)
|
|
210
|
+
- **`## PLANNING INCONCLUSIVE`:** Show attempts, offer: Add context / Retry / Manual
|
|
211
|
+
|
|
212
|
+
## 9.5. Check files_modified Overlap
|
|
213
|
+
|
|
214
|
+
Before running the plan-checker, scan ALL existing PLAN files across the project for `files_modified` overlap with the new plan(s).
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Collect files_modified from the NEW plans in this phase
|
|
218
|
+
NEW_FILES=$(grep -h '^files_modified:' "${PHASE_DIR}"/*-PLAN.md 2>/dev/null | sed 's/^files_modified:\s*//' | tr -d '[]"' | tr ',' '\n' | sed 's/^ *//;s/ *$//' | sort -u)
|
|
219
|
+
|
|
220
|
+
# Collect files_modified from ALL OTHER phase plans
|
|
221
|
+
OTHER_FILES=$(find .planning/phases -maxdepth 3 -name '*-PLAN.md' -not -path "${PHASE_DIR}/*" 2>/dev/null | while read f; do
|
|
222
|
+
grep -h '^files_modified:' "$f" 2>/dev/null | sed 's/^files_modified:\s*//' | tr -d '[]"' | tr ',' '\n' | sed 's/^ *//;s/ *$//' | while read file; do
|
|
223
|
+
echo "$file|$(basename "$(dirname "$f")")|$(basename "$f")"
|
|
224
|
+
done
|
|
225
|
+
done | sort)
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Compare overlaps:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# For each file in the new plan, check if it appears in other plans
|
|
232
|
+
OVERLAPS=""
|
|
233
|
+
while IFS= read -r new_file; do
|
|
234
|
+
[ -z "$new_file" ] && continue
|
|
235
|
+
MATCHES=$(echo "$OTHER_FILES" | grep "^${new_file}|" || true)
|
|
236
|
+
if [ -n "$MATCHES" ]; then
|
|
237
|
+
OVERLAPS="${OVERLAPS}\n- \`${new_file}\` also modified in: $(echo "$MATCHES" | cut -d'|' -f2-3 | tr '\n' ', ')"
|
|
238
|
+
fi
|
|
239
|
+
done <<< "$NEW_FILES"
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**If overlaps found:** Present warning and require user acknowledgment before continuing:
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
## ⚠ files_modified Overlap Detected
|
|
246
|
+
|
|
247
|
+
The following files appear in plans from BOTH this phase and other phases:
|
|
248
|
+
|
|
249
|
+
{OVERLAPS}
|
|
250
|
+
|
|
251
|
+
This may cause merge conflicts or unintended overwrites during execution.
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Use AskUserQuestion:
|
|
255
|
+
- "Acknowledged — proceed to plan verification" (continue to step 10)
|
|
256
|
+
- "Review plans first" (display conflicting plans, then re-ask)
|
|
257
|
+
- "Abort — fix plans manually" (exit)
|
|
258
|
+
|
|
259
|
+
**If no overlaps:** Continue silently to step 10.
|
|
260
|
+
|
|
261
|
+
## 10. Spawn qualia-plan-checker Agent
|
|
262
|
+
|
|
263
|
+
Display banner:
|
|
264
|
+
```
|
|
265
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
266
|
+
Qualia ► VERIFYING PLANS
|
|
267
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
268
|
+
|
|
269
|
+
◆ Spawning plan checker...
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Checker prompt:
|
|
277
|
+
|
|
278
|
+
```markdown
|
|
279
|
+
<verification_context>
|
|
280
|
+
**Phase:** {phase_number}
|
|
281
|
+
**Phase Goal:** {goal from ROADMAP}
|
|
282
|
+
|
|
283
|
+
**Plans to verify:** {plans_content}
|
|
284
|
+
**Requirements:** {requirements_content}
|
|
285
|
+
|
|
286
|
+
**Phase Context:**
|
|
287
|
+
IMPORTANT: Plans MUST honor user decisions. Flag as issue if plans contradict.
|
|
288
|
+
- **Decisions** = LOCKED — plans must implement exactly
|
|
289
|
+
- **Claude's Discretion** = Freedom areas — plans can choose approach
|
|
290
|
+
- **Deferred Ideas** = Out of scope — plans must NOT include
|
|
291
|
+
|
|
292
|
+
{context_content}
|
|
293
|
+
</verification_context>
|
|
294
|
+
|
|
295
|
+
<expected_output>
|
|
296
|
+
- ## VERIFICATION PASSED — all checks pass
|
|
297
|
+
- ## ISSUES FOUND — structured issue list
|
|
298
|
+
</expected_output>
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
Task(
|
|
303
|
+
prompt=checker_prompt,
|
|
304
|
+
subagent_type="qualia-plan-checker",
|
|
305
|
+
model="{checker_model}",
|
|
306
|
+
description="Verify Phase {phase} plans"
|
|
307
|
+
)
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## 11. Handle Checker Return
|
|
311
|
+
|
|
312
|
+
- **`## VERIFICATION PASSED`:** Display confirmation, proceed to step 13.
|
|
313
|
+
- **`## ISSUES FOUND`:** Display issues, check iteration count, proceed to step 12.
|
|
314
|
+
|
|
315
|
+
## 12. Revision Loop (Max 3 Iterations)
|
|
316
|
+
|
|
317
|
+
Track `iteration_count` (starts at 1 after initial plan + check).
|
|
318
|
+
|
|
319
|
+
**If iteration_count < 3:**
|
|
320
|
+
|
|
321
|
+
Display: `Sending back to planner for revision... (iteration {N}/3)`
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
Revision prompt:
|
|
328
|
+
|
|
329
|
+
```markdown
|
|
330
|
+
<revision_context>
|
|
331
|
+
**Phase:** {phase_number}
|
|
332
|
+
**Mode:** revision
|
|
333
|
+
|
|
334
|
+
**Existing plans:** {plans_content}
|
|
335
|
+
**Checker issues:** {structured_issues_from_checker}
|
|
336
|
+
|
|
337
|
+
**Phase Context:**
|
|
338
|
+
Revisions MUST still honor user decisions.
|
|
339
|
+
{context_content}
|
|
340
|
+
</revision_context>
|
|
341
|
+
|
|
342
|
+
<instructions>
|
|
343
|
+
Make targeted updates to address checker issues.
|
|
344
|
+
Do NOT replan from scratch unless issues are fundamental.
|
|
345
|
+
Return what changed.
|
|
346
|
+
</instructions>
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
Task(
|
|
351
|
+
prompt="First, read /home/qualia/.claude/agents/qualia-planner.md for your role and instructions.\n\n" + revision_prompt,
|
|
352
|
+
subagent_type="general-purpose",
|
|
353
|
+
model="{planner_model}",
|
|
354
|
+
description="Revise Phase {phase} plans"
|
|
355
|
+
)
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
After planner returns -> spawn checker again (step 10), increment iteration_count.
|
|
359
|
+
|
|
360
|
+
**If iteration_count >= 3:**
|
|
361
|
+
|
|
362
|
+
Display: `Max iterations reached. {N} issues remain:` + issue list
|
|
363
|
+
|
|
364
|
+
Offer: 1) Force proceed, 2) Provide guidance and retry, 3) Abandon
|
|
365
|
+
|
|
366
|
+
## 13. Present Final Status
|
|
367
|
+
|
|
368
|
+
Route to `<offer_next>`.
|
|
369
|
+
|
|
370
|
+
</process>
|
|
371
|
+
|
|
372
|
+
<offer_next>
|
|
373
|
+
Output this markdown directly (not as a code block):
|
|
374
|
+
|
|
375
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
376
|
+
Qualia ► PHASE {X} PLANNED ✓
|
|
377
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
378
|
+
|
|
379
|
+
**Phase {X}: {Name}** — {N} plan(s) in {M} wave(s)
|
|
380
|
+
|
|
381
|
+
| Wave | Plans | What it builds |
|
|
382
|
+
|------|-------|----------------|
|
|
383
|
+
| 1 | 01, 02 | [objectives] |
|
|
384
|
+
| 2 | 03 | [objective] |
|
|
385
|
+
|
|
386
|
+
Research: {Completed | Used existing | Skipped}
|
|
387
|
+
Verification: {Passed | Passed with override | Skipped}
|
|
388
|
+
|
|
389
|
+
───────────────────────────────────────────────────────────────
|
|
390
|
+
|
|
391
|
+
## ▶ Next Up
|
|
392
|
+
|
|
393
|
+
**Execute Phase {X}** — run all {N} plans
|
|
394
|
+
|
|
395
|
+
/qualia:execute-phase {X}
|
|
396
|
+
|
|
397
|
+
<sub>/clear first → fresh context window</sub>
|
|
398
|
+
|
|
399
|
+
───────────────────────────────────────────────────────────────
|
|
400
|
+
|
|
401
|
+
**Also available:**
|
|
402
|
+
- cat .planning/phases/{phase-dir}/*-PLAN.md — review plans
|
|
403
|
+
- /qualia:plan-phase {X} --research — re-research first
|
|
404
|
+
|
|
405
|
+
───────────────────────────────────────────────────────────────
|
|
406
|
+
</offer_next>
|
|
407
|
+
|
|
408
|
+
<success_criteria>
|
|
409
|
+
- [ ] .planning/ directory validated
|
|
410
|
+
- [ ] Phase validated against roadmap
|
|
411
|
+
- [ ] Phase directory created if needed
|
|
412
|
+
- [ ] CONTEXT.md loaded early (step 4) and passed to ALL agents
|
|
413
|
+
- [ ] Research completed (unless --skip-research or --gaps or exists)
|
|
414
|
+
- [ ] qualia-phase-researcher spawned with CONTEXT.md
|
|
415
|
+
- [ ] Existing plans checked
|
|
416
|
+
- [ ] qualia-planner spawned with CONTEXT.md + RESEARCH.md
|
|
417
|
+
- [ ] Plans created (PLANNING COMPLETE or CHECKPOINT handled)
|
|
418
|
+
- [ ] qualia-plan-checker spawned with CONTEXT.md
|
|
419
|
+
- [ ] Verification passed OR user override OR max iterations with user decision
|
|
420
|
+
- [ ] User sees status between agent spawns
|
|
421
|
+
- [ ] User knows next steps
|
|
422
|
+
</success_criteria>
|