From qe-framework
Plans any task from a single bug fix to a full project by automatically assessing scope and creating the right level of plan. Hands off to /Qgs for spec generation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qe-framework:QplanThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the planner. Your job is to understand what the user wants to do, create an appropriately-sized plan, and hand off to the next step. A bug fix gets a one-line plan. A new project gets a full roadmap. Match the plan to the task, not the other way around.
You are the planner. Your job is to understand what the user wants to do, create an appropriately-sized plan, and hand off to the next step. A bug fix gets a one-line plan. A new project gets a full roadmap. Match the plan to the task, not the other way around.
The QE framework enforces a strict chain. Each skill handles ONE step and guides the user to the next:
/Qplan (PLAN) → /Qgs (SPEC) → /Qatomic-run (EXECUTE) → /Qcode-run-task (VERIFY)
Your responsibility is PLAN only. You MUST NOT write code, invoke /Qgs, or invoke /Qatomic-run.
Before starting planning, verify that the QE framework is set up:
CLAUDE.md exists in the project root..qe/ directory exists.If either is missing, the project has not been initialized:
⚠️ QE framework is not initialized.
Please run /Qinit first to set up the project.
/Qinit handles project info collection, auto-analysis, and SIVS engine configuration in one step.
/Qinit first.If both exist, proceed to Step 0.5.
If .qe/sivs-config.json exists and any stage uses "codex", call getCodexPluginInfo() from scripts/lib/codex_bridge.mjs:
/QCodexUpdate to install, or stages will fallback to Claude."/QCodexUpdate to check for updates."If no sivs-config.json or all stages are Claude, skip this check entirely.
Before any planning writes, derive a plan slug — the identifier that scopes all files under .qe/planning/plans/{slug}/. The slug is the 1st-class name of this plan; Phase numbers are plan-local, never part of the global address. This lets multiple terminals run /Qplan in parallel without clobbering each other's state.
Derivation rules (do NOT ask the user):
-, keep only [a-z0-9-], strip leading/trailing dashes. Max 40 chars..qe/planning/plans/{slug}/ already exists, append -2, -3, …fix-{4-char-hex} via openssl rand -hex 2.Examples: "인증 모듈 리팩터링" → auth-refactor · "JPA Audit 걸어줘" → jpa-audit · "Dashboard v2 기획" → dashboard-v2 · "로그인 버튼 정렬 버그" → login-button-align/fix-b4c2.
Record the chosen slug internally; it appears in the handoff Next Command so the user sees it but is not asked to approve.
Determine the task scale:
| Signal | Scale | Workflow |
|---|---|---|
| Single bug fix, small refactor, one function | Micro | Skip to Micro Plan |
| One feature, one component, a few files | Small | Skip to Small Plan |
| Multi-feature, multi-phase, new project | Full | Full Planning |
| Massive refactor, 10+ files, adversarial verification needed | Workflow | Suggest /workflows |
Workflow (dynamic workflow escalation):
Micro Plan (estimated < 30 min of work):
Next Command: /Qgs {slug}: {task}.Small Plan (one feature / one component):
.qe/planning/plans/{slug}/ (ROADMAP.md optional, no Wave Model).Full Planning (multi-phase project): Continue to Step 1 below.
ask_user tool (choice/text) to gather initial requirements and constraints. Do not guess; present options.ask_user to let the user select the priority (P0/P1/P2) for each core feature..qe/planning/research/ (global — shared across all plans).command X --help or command --version via Bash[UNVERIFIED]. Never build phases around unverified external capabilities. This prevents the class of failure where research hallucinations propagate through the entire PSE chain unchecked.Design a phased roadmap in .qe/planning/plans/{slug}/ROADMAP.md:
plans/{slug}/REQUIREMENTS.md..qe/planning/plans/{slug}/STATE.md with the active phase line - **Active Phase**: Phase {N} — {PhaseName}.node hooks/scripts/lib/ledger.mjs create-goals --slug {slug} then … render-state --slug {slug}. This derives an append-only goals.json + ledger.jsonl from the ROADMAP Waves and regenerates STATE.md's ## Phase Progress from them — never hand-maintain that block.Next Command: block. Without it, the user has no way to proceed.Bind this plan to the current terminal session so the HUD and consumer skills (Qgs/Qrun-task/Qcode-run-task/Qatomic-run) resolve to the right plan automatically.
{slug}\n into .qe/planning/ACTIVE_PLAN..qe/state/current-session.json written by the session-start hook. If it parses and has a session_id, write .qe/planning/.sessions/{session_id}.json:
{ "activePlanSlug": "{slug}", "updatedAt": "{ISO-8601}" }
If the session file is missing or unreadable, skip silently — the pointer in step 1 is enough for the HUD fallback.mkdir -p .qe/planning/plans/{slug}/phases and mkdir -p .qe/planning/.sessions.For tasks assessed as Workflow scale, display the following instead of the standard handoff:
This task may benefit from a dynamic workflow.
Try: "Create a workflow for {task description}"
Or use ultracode effort level for automatic workflow creation.
See: docs/CLAUDE_CODE_FEATURES.md
If the user confirms they want to proceed with PSE, continue to Step 4 and display the standard Handoff section.
After execution is complete (by /Qatomic-run + /Qcode-run-task), review the results:
.qe/planning/plans/{slug}/phases/{X}/RETROSPECTIVE.md.Per-plan (under .qe/planning/plans/{slug}/):
| File / Folder | Purpose |
|---|---|
ROADMAP.md | Phased waves, success criteria, and requirement traceability for this plan. |
STATE.md | Active phase + ## Phase Progress (auto-derived from the ledger; do not hand-edit). |
goals.json | Ordered microgoals (id/objective/status/attempts), derived from ROADMAP Waves. |
ledger.jsonl | Append-only audit trail of goal events (created/started/checkpoint/blocker/failed). |
REQUIREMENTS.md | Functional and non-functional requirements (P0/P1/P2) for this plan. |
phases/{X}/ | Phase artifacts (summaries, retros) for this plan. |
Global (under .qe/planning/, shared across all plans):
| File / Folder | Purpose |
|---|---|
PROJECT.md | High-level project vision, core pillars, and milestone history. |
DECISION_LOG.md | Persistent record of architectural and strategic decisions. Decisions usually cut across plans. |
research/ | Deep technical research reports and domain analysis. |
ACTIVE_PLAN | Single-line pointer to the most-recently-activated plan slug. HUD fallback. |
.sessions/{session_id}.json | Per-session binding { activePlanSlug, updatedAt }. HUD primary source. |
Backward compatibility: If an existing project has flat .qe/planning/ROADMAP.md / STATE.md (pre-Named-Plan era), leave them untouched. New /Qplan invocations always use the plans/{slug}/ layout. Consumer skills fall back to the flat files only when no plan is resolvable.
CRITICAL: After completing planning, you MUST display this structured output as the LAST thing in your response. No matter how long the planning or research was, the response MUST end with this handoff. If the handoff is missing, the user cannot proceed to the next step. Fill in the {...} placeholders from the actual plan.
Plan: {slug}
Roadmap: 👉 Phase 1 → ○ Phase 2 → ○ Phase 3
{Name1} {Name2} {Name3}
PSE Chain: ✅ /Qplan → 👉 /Qgs → /Qatomic-run → /Qcode-run-task
## Plan Summary — {slug}
{N} Phases · {M} Waves · ~{T} Tasks
| Phase | Goal | Key Deliverables |
|-------|------|-----------------|
| {Phase1Name} | {1-line goal} | {comma-separated deliverables} |
| {Phase2Name} | {1-line goal} | {comma-separated deliverables} |
| ... | ... | ... |
## Key Decisions
| ID | Decision | Rationale |
|----|----------|-----------|
| D001 | {decision title} | {1-line rationale} |
| ... | ... | ... |
{Phase 한 줄 요약 — 사용자 입력 언어로}
{다음 명령 라벨 — 사용자 입력 언어로, 예: "다음 명령:" / "Next Command:" / "次のコマンド:"}
/Qgs {slug}: {짧은 별칭}
Rules:
{slug}는 Step 0.6에서 자동 생성한 이 plan의 식별자다. Phase 번호가 아니라 slug가 1차 ID — Qgs/Qrun-task는 slug로 plan을 resolve한다.{짧은 별칭}: 현재 Phase의 짧은 이름만 쓴다 (예: "인증 모듈", "JPA Audit"). Phase의 전체 설명/요구사항/긴 문장을 복사하지 않는다. 최대 6단어.If that doesn't work: /Qgenerate-spec ...)은 쓰지 않는다 — /Qgs는 /Qgenerate-spec의 공식 alias이므로 중복이다.Next Command 블록 없이 응답이 끝나면 handoff 실패다.Next Command: block — this is a hard failure.npx claudepluginhub inho-team/qe-framework --plugin qe-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.