init
This commit is contained in:
198
.opencode/skills/ck-plan/SKILL.md
Normal file
198
.opencode/skills/ck-plan/SKILL.md
Normal file
@@ -0,0 +1,198 @@
|
||||
---
|
||||
name: ck:plan
|
||||
description: "Plan implementations, design architectures, create technical roadmaps with detailed phases. Use for feature planning, system design, solution architecture, implementation strategy, phase documentation."
|
||||
argument-hint: "[task] OR [archive|red-team|validate]"
|
||||
license: MIT
|
||||
metadata:
|
||||
author: claudekit
|
||||
version: "1.0.0"
|
||||
---
|
||||
|
||||
# Planning
|
||||
|
||||
Create detailed technical implementation plans through research, codebase analysis, solution design, and comprehensive documentation.
|
||||
|
||||
**IMPORTANT:** Before you start, scan unfinished plans in the current project at `./plans/` directory, read the `plan.md`, if there are relevant plans with your upcoming plan, update them as well. If you're unsure or need more clarifications, use `AskUserQuestion` tool to ask the user.
|
||||
|
||||
### Cross-Plan Dependency Detection
|
||||
|
||||
During the pre-creation scan, detect and mark blocking relationships between plans:
|
||||
|
||||
1. **Scan** — Read `plan.md` frontmatter of each unfinished plan (status != `completed`/`cancelled`)
|
||||
2. **Compare scope** — Check overlapping files, shared dependencies, same feature area
|
||||
3. **Classify relationship:**
|
||||
- New plan needs output of existing plan → new plan `blockedBy: [existing-plan-dir]`
|
||||
- New plan changes something existing plan depends on → existing plan `blockedBy: [new-plan-dir]`, new plan `blocks: [existing-plan-dir]`
|
||||
- Mutual dependency → both plans reference each other in `blockedBy`/`blocks`
|
||||
4. **Bidirectional update** — When relationship detected, update BOTH `plan.md` files' frontmatter
|
||||
5. **Ambiguous?** → Use `AskUserQuestion` with header "Plan Dependency", present detected overlap, ask user to confirm relationship type (blocks/blockedBy/none)
|
||||
|
||||
**Frontmatter fields** (relative plan dir paths):
|
||||
```yaml
|
||||
blockedBy: [260301-1200-auth-system] # This plan waits on these plans
|
||||
blocks: [260228-0900-user-dashboard] # This plan blocks these plans
|
||||
```
|
||||
|
||||
**Status interaction:** A plan with `blockedBy` entries where ANY blocker is not `completed` → plan status should note `blocked` in its overview. When all blockers complete, the blocked plan becomes unblocked automatically on next scan.
|
||||
|
||||
## Default (No Arguments)
|
||||
|
||||
If invoked with a task description, proceed with planning workflow. If invoked WITHOUT arguments or with unclear intent, use `AskUserQuestion` to present available operations:
|
||||
|
||||
| Operation | Description |
|
||||
|-----------|-------------|
|
||||
| `(default)` | Create implementation plan for a task |
|
||||
| `archive` | Write journal entry & archive plans |
|
||||
| `red-team` | Adversarial plan review |
|
||||
| `validate` | Critical questions interview |
|
||||
|
||||
Present as options via `AskUserQuestion` with header "Planning Operation", question "What would you like to do?".
|
||||
|
||||
## Workflow Modes
|
||||
|
||||
Default: `--auto` (analyze task complexity and auto-pick mode).
|
||||
|
||||
| Flag | Mode | Research | Red Team | Validation | Cook Flag |
|
||||
|------|------|----------|----------|------------|-----------|
|
||||
| `--auto` | Auto-detect | Follows mode | Follows mode | Follows mode | Follows mode |
|
||||
| `--fast` | Fast | Skip | Skip | Skip | `--auto` |
|
||||
| `--hard` | Hard | 2 researchers | Yes | Optional | (none) |
|
||||
| `--parallel` | Parallel | 2 researchers | Yes | Optional | `--parallel` |
|
||||
| `--two` | Two approaches | 2+ researchers | After selection | After selection | (none) |
|
||||
|
||||
Add `--no-tasks` to skip task hydration in any mode.
|
||||
|
||||
Load: `references/workflow-modes.md` for auto-detection logic, per-mode workflows, context reminders.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Planning new feature implementations
|
||||
- Architecting system designs
|
||||
- Evaluating technical approaches
|
||||
- Creating implementation roadmaps
|
||||
- Breaking down complex requirements
|
||||
|
||||
## Core Responsibilities & Rules
|
||||
|
||||
Always honoring **YAGNI**, **KISS**, and **DRY** principles.
|
||||
**Be honest, be brutal, straight to the point, and be concise.**
|
||||
|
||||
### 0. Scope Challenge
|
||||
Load: `references/scope-challenge.md`
|
||||
**Skip if:** `--fast` mode or trivial task (single file fix, <20 word description)
|
||||
|
||||
### 1. Research & Analysis
|
||||
Load: `references/research-phase.md`
|
||||
**Skip if:** Fast mode or provided with researcher reports
|
||||
|
||||
### 2. Codebase Understanding
|
||||
Load: `references/codebase-understanding.md`
|
||||
**Skip if:** Provided with scout reports
|
||||
|
||||
### 3. Solution Design
|
||||
Load: `references/solution-design.md`
|
||||
|
||||
### 4. Plan Creation & Organization
|
||||
Load: `references/plan-organization.md`
|
||||
|
||||
### 5. Task Breakdown & Output Standards
|
||||
Load: `references/output-standards.md`
|
||||
|
||||
## Process Flow (Authoritative)
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[Pre-Creation Check] --> B[Cross-Plan Scan]
|
||||
B --> C[Scope Challenge]
|
||||
C --> D[Mode Detection]
|
||||
D -->|fast| E[Skip Research]
|
||||
D -->|hard/parallel/two| F[Spawn Researchers]
|
||||
E --> G[Codebase Analysis]
|
||||
F --> G
|
||||
G --> H[Write Plan via Planner]
|
||||
H --> I{Red Team?}
|
||||
I -->|Yes| J[Red Team Review]
|
||||
I -->|No| K{Validate?}
|
||||
J --> K
|
||||
K -->|Yes| L[Validation Interview]
|
||||
K -->|No| M[Hydrate Tasks]
|
||||
L --> M
|
||||
M --> N[Output Cook Command]
|
||||
N --> O[Journal]
|
||||
```
|
||||
|
||||
**This diagram is the authoritative workflow.** Prose sections below provide detail for each node.
|
||||
|
||||
## Workflow Process
|
||||
|
||||
1. **Pre-Creation Check** → Check Plan Context for active/suggested/none
|
||||
1b. **Cross-Plan Scan** → Scan unfinished plans, detect `blockedBy`/`blocks` relationships, update both plans
|
||||
1c. **Scope Challenge** → Run Step 0 scope questions, select mode (see `references/scope-challenge.md`)
|
||||
**Skip if:** `--fast` mode or trivial task
|
||||
2. **Mode Detection** → Auto-detect or use explicit flag (see `workflow-modes.md`)
|
||||
3. **Research Phase** → Spawn researchers (skip in fast mode)
|
||||
4. **Codebase Analysis** → Read docs, scout if needed
|
||||
5. **Plan Documentation** → Write comprehensive plan via planner subagent
|
||||
6. **Red Team Review** → Run `/ck:plan red-team {plan-path}` (hard/parallel/two modes)
|
||||
7. **Post-Plan Validation** → Run `/ck:plan validate {plan-path}` (hard/parallel/two modes)
|
||||
8. **Hydrate Tasks** → Create Claude Tasks from phases (default on, `--no-tasks` to skip)
|
||||
9. **Context Reminder** → Output cook command with absolute path (MANDATORY)
|
||||
10. **Journal** → Run `/ck:journal` to write a concise technical journal entry upon completion
|
||||
|
||||
## Output Requirements
|
||||
**IMPORTANT:** Invoke "/ck:project-organization" skill to organize the outputs.
|
||||
|
||||
- DO NOT implement code - only create plans
|
||||
- Respond with plan file path and summary
|
||||
- Ensure self-contained plans with necessary context
|
||||
- Include code snippets/pseudocode when clarifying
|
||||
- Fully respect the `./docs/development-rules.md` file
|
||||
|
||||
## Task Management
|
||||
|
||||
Plan files = persistent. Tasks = session-scoped. Hydration bridges the gap.
|
||||
|
||||
**Default:** Auto-hydrate tasks after plan files are written. Skip with `--no-tasks`.
|
||||
**3-Task Rule:** <3 phases → skip task creation.
|
||||
**Fallback:** Task tools (`TaskCreate`/`TaskUpdate`/`TaskGet`/`TaskList`) are CLI-only — unavailable in VSCode extension. If they error, use `TodoWrite` for tracking. Plan files remain the source of truth; hydration is an optimization, not a requirement.
|
||||
|
||||
Load: `references/task-management.md` for hydration pattern, TaskCreate patterns, cook handoff protocol.
|
||||
|
||||
### Hydration Workflow
|
||||
1. Write plan.md + phase files (persistent layer)
|
||||
2. TaskCreate per phase with `addBlockedBy` chain (skip if Task tools unavailable)
|
||||
3. TaskCreate for critical/high-risk steps within phases (skip if Task tools unavailable)
|
||||
4. Metadata: phase, priority, effort, planDir, phaseFile
|
||||
5. Cook picks up via TaskList (same session) or re-hydrates (new session)
|
||||
|
||||
## Active Plan State
|
||||
|
||||
Check `## Plan Context` injected by hooks:
|
||||
- **"Plan: {path}"** → Active plan. Ask "Continue? [Y/n]"
|
||||
- **"Suggested: {path}"** → Branch hint only. Ask if activate or create new.
|
||||
- **"Plan: none"** → Create new using `Plan dir:` from `## Naming`
|
||||
|
||||
After creating plan: `node .opencode/scripts/set-active-plan.cjs {plan-dir}`
|
||||
Reports: Active plans → plan-specific path. Suggested → default path.
|
||||
|
||||
### Important
|
||||
**DO NOT** create plans or reports in USER directory.
|
||||
**MUST** create plans or reports in **THE CURRENT WORKING PROJECT DIRECTORY**.
|
||||
|
||||
## Subcommands
|
||||
|
||||
| Subcommand | Reference | Purpose |
|
||||
|------------|-----------|---------|
|
||||
| `/ck:plan archive` | `references/archive-workflow.md` | Archive plans + write journal entries |
|
||||
| `/ck:plan red-team` | `references/red-team-workflow.md` | Adversarial plan review with hostile reviewers |
|
||||
| `/ck:plan validate` | `references/validate-workflow.md` | Validate plan with critical questions interview |
|
||||
|
||||
## Quality Standards
|
||||
|
||||
- Thorough and specific, consider long-term maintainability
|
||||
- Research thoroughly when uncertain
|
||||
- Address security and performance concerns
|
||||
- Detailed enough for junior developers
|
||||
- Validate against existing codebase patterns
|
||||
|
||||
**Remember:** Plan quality determines implementation success. Be comprehensive and consider all solution aspects.
|
||||
Reference in New Issue
Block a user