← 返回 Skills 市场
iliaal

ia-planning

作者 Ilia Alshanetsky · GitHub ↗ · v3.0.4 · MIT-0
cross-platform ⚠ suspicious
306
总下载
0
收藏
0
当前安装
11
版本数
在 OpenClaw 中安装
/install compound-eng-planning
功能描述
Software implementation planning with file-based persistence (.plan/). Use when asked to plan, break down a feature, or when a task touches 3+ files, has amb...
使用说明 (SKILL.md)

Planning

Core Principle

Context window = RAM (volatile, limited)
Filesystem     = Disk (persistent, unlimited)
→ Anything important gets written to disk.

Planning tokens are cheaper than implementation tokens. Front-load thinking; scale effort to complexity.

When to Plan

  • Full plan (.plan/ directory): multi-file changes, new features, refactors, >5 tool calls
  • Flat list (inline checklist): 3-5 file changes, clear scope, no research needed -- write a numbered task list in the conversation or a single progress.md, skip .plan/ scaffolding
  • Skip planning: single-file edits, quick lookups, simple questions

Planning Files

Scaffold the .plan/ directory with pre-populated templates using init-plan.sh:

bash init-plan.sh "Feature Name"

This creates .plan/ with task_plan.md, findings.md, and progress.md -- each pre-populated with the correct structure. Also adds .plan/ to .gitignore.

Planning files are ephemeral working state -- do not commit them. When starting a new feature, old .plan/ files are overwritten. Within a multi-phase feature, use numbered intermediate files (01-setup.md, 02-phase1-complete.md) to preserve state across phases.

Note: .plan/ is for ephemeral working state during implementation (scratch notes, progress tracking). docs/plans/ is for the formal plan document produced by a structured planning workflow (committed, living documents). Both coexist -- .plan/ supports the work session, docs/plans/ stores the committed plan.

File Purpose Update When
.plan/task_plan.md Phases, tasks, decisions, errors After each phase
.plan/findings.md Research, discoveries, code analysis After any discovery
.plan/progress.md Session log, test results, files changed Throughout session

Test Discovery (Existing Projects)

For projects with existing code (not greenfield), discover the test landscape before planning:

  1. Search for test/spec files related to the feature area: Glob("**/*test*") and Grep("\x3Cfeature-keyword>", glob="**/*.{ts,php,py}")
  2. Check test config for the canonical test command (package.json scripts, pytest.ini, phpunit.xml, CI config)
  3. Note which modules have coverage and which don't -- plan should extend existing test patterns, not introduce new frameworks

Skip for greenfield projects where no tests exist yet.

Plan Template

# Plan: [Feature/Task Name]

## Approach
[1-3 sentences: what and why]

## Scope
- **In**: [what's included]
- **Out**: [what's explicitly excluded]

## File Structure
[Map ALL files that will be created or modified, with one-line responsibility for each. Lock in decomposition decisions before defining tasks. Write for a zero-context engineer.]

| File | Action | Responsibility |
|------|--------|---------------|
| `path/to/file.ts` | Create | [what this file does] |
| `path/to/existing.ts` | Modify | [what changes and why] |

## Phase 1: [Name]
**Files**: [specific files, max 5-8 per phase]
**Posture**: [test-first | characterization-first | external-delegate]
**Tasks**:
- [ ] [Verb-first atomic task] -- `path/to/file.ts`
- [ ] [Next task]
**Verify**: [specific test: "POST /api/users → 201", not "test feature"]
**Exit**: [clear done definition]

## Phase 2: [Name]
...

## Execution Posture
- [Optional per-phase signals that shape implementation sequencing]
  - `test-first`: write failing test before implementation
  - `characterization-first`: capture existing behavior before changing it
  - `external-delegate`: mark units suitable for parallel/external execution

## Deferred to Implementation
- [Things intentionally left unspecified -- details that depend on what you find in the code]

## Open Questions
- [Max 3, only truly blocking unknowns]

Plan Quality Rules

No placeholders in tasks. Every task must contain actual code patterns, commands, or file paths -- not vague directives. Forbid: "TBD", "TODO", "handle errors appropriately", "add validation", "implement as needed", "similar to above", "Similar to Task N", "See above." Each task must be self-contained -- repeat the spec, code pattern, or file path in every task that needs it. The implementer may read tasks out of order, and vague tasks produce vague implementations. If a step cannot be specified concretely, it needs further breakdown before it belongs in a plan.

Type-consistency check. After writing all tasks, scan for naming drift. If Task 3 says clearLayers() but Task 7 says clearFullLayers(), that's a bug in the plan. Function names, variable names, and file paths must be consistent across all tasks.

Numbered outputs for long sessions. For multi-phase implementations, write numbered intermediate files to .plan/ (e.g., 01-setup.md, 02-phase1-complete.md) so state survives context compaction. Read from files, not conversation memory, when resuming work after compaction or across sessions.

Session continuity. At session start or after compaction: read .plan/progress.md → check which tasks are complete → review the current phase. At session end: update progress with what was done, note blockers, commit in-progress work. Mark interrupted tasks with a stopping-point note so the next session resumes without re-discovery.

SHA recording. When a task completes and is committed, note the commit SHA inline: - [x] Task 1.1 \abc1234``. Creates traceability from plan to code.

Deviation documentation. When the implementation deviates from the plan, document why inline: **Deviation**: [what changed and why] under the affected task. Silent deviation breaks trust -- the orchestrator assumes the plan was followed.

No gold-plating. Build exactly what the spec requires. If a feature, enhancement, or "nice-to-have" isn't in the requirements, don't add it. Quote the exact spec requirements in the plan and flag any additions explicitly as scope expansion needing approval. Basic first implementations are acceptable -- most need 2-3 revision cycles anyway.

Phase Sizing Rules

Every phase must be context-safe:

  • Max 5-8 files touched
  • Max 2 dependencies on other phases
  • No single task exceeds ~2 hours of focused work -- if it would, split further
  • Fits in one focused session for a developer without external blockers
  • If a phase violates these → split it
  • Scope challenge: if the overall plan touches 8+ files or introduces 2+ new classes/services, challenge the scope. Ask: can this be split into smaller, independently shippable increments?

Task Decomposition

Vertical slicing

Decompose by user-visible capability, not by technical layer. "User can log in" is a vertical slice -- it touches UI, API, and DB, and delivers a working feature when done. "Build the auth database schema" is a horizontal slice that delivers zero value until other slices complete.

Vertical slices are independently demonstrable and testable. Each slice should produce something a stakeholder can see, try, or verify. When a phase in a plan delivers only one layer (all models, all controllers, all views), restructure it into slices that cut through all layers for one capability at a time.

Checkpoint system

After every 2-3 completed tasks, pause and verify: are the completed pieces actually working together? Run tests, check integration points, confirm that data flows end-to-end. This catches drift early instead of discovering at the end that pieces don't fit.

Checkpoints are lightweight -- run the test suite, hit the endpoint, render the component. Not a formal review. The goal is a fast feedback signal: "everything built so far integrates correctly." Document checkpoint results in .plan/progress.md.

Decision Authority

Not every decision needs user input. Apply this principle:

Claude decides (technical implementation): language, framework, architecture, libraries, file structure, naming conventions, test strategy, error handling approach, database schema details, API design patterns. Make the call, document the rationale in the plan.

User decides (experience-affecting): scope tradeoffs ("cut X to hit deadline?"), UX choices that change what users see or do, data model decisions that constrain future product options, anything where two valid paths lead to meaningfully different user outcomes.

Heuristic: If the decision changes what the user experiences, ask. If it changes how the code works, decide.

Clarifying Questions

Scale to complexity:

  • Small task: 0-1 questions, assume reasonable defaults
  • Medium feature: 1-2 questions on critical unknowns
  • Large project: 3-5 questions (auth, data model, integrations, scope)

Only ask about decisions that fall in the "user decides" category above. Make reasonable assumptions for everything else.

Task Rules

Write every task as if the implementer has zero context and questionable taste. They cannot infer intent from conversation history -- everything must be in the plan.

  • Atomic: one action, 2-5 minutes to complete. "Write the failing test" is a step. "Implement the feature" is not.
  • Verb-first: "Add...", "Create...", "Refactor...", "Verify..."
  • Concrete: name specific files, endpoints, components. Include exact commands with expected output, code snippets (not "add validation"), and file paths with line ranges for modifications.
  • Ordered: respect dependencies, sequential when needed
  • Verifiable: include at least one validation task per phase
  • Complete: do not defer test coverage, skip edge cases, or omit error handling to save time. The marginal cost of completeness during initial implementation is near-zero compared to retrofitting later.

Operational Patterns

Context management rules, error protocol (3-attempt escalation), iterative plan refinement, and the 5-question context check are in operational-patterns.md. Read when starting a multi-phase plan or resuming after a gap.

Execution Posture Signals

Plans can carry lightweight metadata per phase that shapes how /ia-work sequences implementation. These are optional annotations, not requirements.

Default: tests-after — /ia-work writes tests alongside implementation for new features. No posture signal needed in this case.

Opt-in postures for phases that need different sequencing:

  • test-first: Write failing tests before implementation. Use when behavior is well-defined and testable upfront (bug fixes always qualify; new features qualify when the contract is clear before coding).
  • characterization-first: Capture existing behavior with tests before changing it. Use when modifying code without existing test coverage.
  • external-delegate: Mark self-contained units suitable for parallel execution (separate worktree, separate agent). Use when a phase has no dependencies on other phases.

Add posture signals in the phase header: ## Phase 2: Auth middleware [test-first]. The executor inherits these silently without interrupting questions — they shape sequencing, not scope.

Plan Deepening

When asked to "deepen" or "strengthen" an existing plan, load plan-deepening.md — targeted research workflow (additive, not restructuring), per-section enhancement format, and Enhancement Summary block at the plan head. Orchestrated by the /ia-deepen-plan command.

Execution Handoff

When a plan is complete and ready to execute, offer the user an explicit choice rather than drifting into implementation. Present two options:

  1. Subagent-driven (recommended for multi-phase plans, independent slices, or worktree-isolated work): dispatch each phase to a focused subagent with a self-contained task prompt (Objective / Owned Files / Interface Contracts / Acceptance Criteria / Out of Scope). Orchestrator integrates results and verifies between phases. See ia-orchestrating-swarms for dispatch discipline.
  2. Inline execution: main session runs the plan phase by phase. Use when phases are tightly coupled, require shared context that would be expensive to rehydrate, or the total work fits in one session without compaction risk.

State the recommendation with a one-sentence reason, then wait for the user to pick. Do not auto-start either path — drifting from "plan approved" to "plan in progress" without the user picking a handoff mode is how orchestration discipline silently decays.

Verify

  • Plan file exists at .plan/task_plan.md (or docs/plans/ for formal plans)
  • All tasks are verb-first and atomic (2-5 minutes each)
  • File structure table is complete with action and responsibility columns
  • Phase sizing respects 5-8 file limit
  • No placeholder tasks ("implement feature", "add tests") -- every task names specific files and patterns
  • Each phase delivers end-to-end functionality (not a single horizontal layer)
  • Open questions limited to 3 or fewer genuinely blocking unknowns

Integration

  • This skill is methodology (file persistence, phase sizing, context management). For full feature plans, the structured planning workflow handles research agents, issue templates, and formal output to docs/plans/. Apply this skill's principles whenever planning is required; reach for the full workflow when the task spans multiple files or requires architectural decisions.
  • Architecture decisions: when the plan involves significant trade-offs (choosing between approaches, accepting constraints), use /ia-adr to document the decision and what was given up. ADRs outlive the plan.
  • Threat modeling: when the plan introduces auth flows, payment handling, external API surfaces, or new trust boundaries, dispatch the ia-security-sentinel agent in threat-model mode before implementation. Architectural security gaps are cheaper to fix in the plan than in the code.
  • Predecessor: ia-brainstorming -- use first when requirements are ambiguous. When a brainstorm spec exists (docs/brainstorms/), use it as input and skip idea refinement
  • Prose quality: ia-writing -- use to humanize plan language and remove AI slop from plan documents
  • Execution handoff: after the plan is approved, proceed to /ia-work or execute inline
安全使用建议
This skill otherwise appears coherent for local, file-based planning. Before installing or enabling autonomous invocation: 1) Manually inspect SKILL.md and other files for invisible/ control characters (use hexdump -C, cat -v, or an editor showing control characters). 2) Confirm there are no hidden instructions, external endpoints, or obfuscated directives. 3) Review init-plan.sh (it’s small and only scaffolds files and appends .plan/ to .gitignore); run it in a disposable test repo first. 4) If you enable the skill, prefer user-invocable only and test in a sandboxed repository to ensure it only writes .plan/ and .gitignore. 5) If you’re unsure about hidden content, ask the publisher for a signed/clean copy or decline until the injection finding is resolved.
功能分析
Type: OpenClaw Skill Name: compound-eng-planning Version: 3.0.4 The skill bundle provides a structured workflow for software implementation planning, utilizing a shell script (scripts/init-plan.sh) to scaffold a .plan/ directory for persistent state. The instructions in SKILL.md and the associated references (operational-patterns.md, plan-deepening.md) focus on task decomposition, context management, and documentation best practices. No indicators of data exfiltration, malicious execution, or harmful prompt injection were found; the code and instructions are well-aligned with the stated purpose of engineering planning.
能力标签
cryptocan-make-purchases
能力评估
Purpose & Capability
Name and description match the included assets and actions. The only bundled code is a small init-plan.sh that scaffolds a .plan/ directory and appends .plan/ to .gitignore — behavior consistent with a planning workflow. No unrelated cloud creds, binaries, or external services are requested.
Instruction Scope
SKILL.md instructs the agent to read/write repository files (.plan/*), run git commands (git diff --stat, record commit SHAs), and orchestrate subagents for plan-deepening. Those actions fit the stated purpose, but the pre-scan detected unicode-control-chars inside SKILL.md (possible prompt-injection/obfuscation). Hidden control characters in runtime instructions can be used to manipulate an agent or hide content, so the instruction text needs a careful manual review for invisible/obfuscated directives.
Install Mechanism
No install spec; instruction-only skill with a small included shell script (init-plan.sh). The script's behavior is limited to creating .plan/, populating three markdown templates, and adding .plan/ to .gitignore — no network downloads or archive extraction. Low install risk.
Credentials
Skill requests no environment variables, credentials, or config paths. The only file-system writes are to the repo working tree (.plan/ and .gitignore), which are consistent with the stated function.
Persistence & Privilege
always:false and no special privileges requested. The skill writes only to its local .plan/ workspace and .gitignore; it does not modify other skills or global agent configuration. Autonomous invocation remains at the platform default.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install compound-eng-planning
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /compound-eng-planning 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v3.0.4
v3.0.4
v3.0.3
v3.0.3
v3.0.2
v3.0.2
v3.0.1
v3.0.1
v3.0.0
v3.0.0
v2.56.1
v2.56.1
v2.56.0
v2.56.0
v2.55.1
v2.55.1
v2.55.0
v2.55.0
v2.53.2
v2.53.2
v2.53.0
v2.53.0
元数据
Slug compound-eng-planning
版本 3.0.4
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 11
常见问题

ia-planning 是什么?

Software implementation planning with file-based persistence (.plan/). Use when asked to plan, break down a feature, or when a task touches 3+ files, has amb... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 306 次。

如何安装 ia-planning?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install compound-eng-planning」即可一键安装,无需额外配置。

ia-planning 是免费的吗?

是的,ia-planning 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

ia-planning 支持哪些平台?

ia-planning 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 ia-planning?

由 Ilia Alshanetsky(@iliaal)开发并维护,当前版本 v3.0.4。

💬 留言讨论