agentleFS
ROCmROCm/rocprofiler-systems-skills/skills/planning-base/SKILL.md

planning-base

Skill5 starsChanged 17 days agoMITView on GitHub

Base planning skill with shared rules - do not invoke directly, use specific planning skills instead

The file

Show its rules and text

We split this skill into the rules it gives an agent

21 rules. About 0 are common, 13 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Instead, use the appropriate specialized skill:

    line 10
  2. Distinctive:

    Every plan leads to a Pull Request: Keep PR reviewability in mind from the start.

    line 22
  3. Distinctive:

    Cursor: Use Plan Mode for phases 0-4, then switch to Agent Mode

    line 32
  4. Very specific:

    Claude Code: Use EnterPlanMode tool or simply complete planning before coding

    line 33
  5. Very specific:

    Before creating a new plan, check the planning/ folder in project root:

    line 40
  6. Distinctive:

    Read the existing plan

    line 45
  7. Very specific:

    Check which tasks are already completed (marked with [x])

    line 46
  8. Distinctive:

    Before writing ANY code or making ANY changes:

    line 52
  9. Very specific:

    Before decomposing, assess if this should be ONE PR or MULTIPLE PRs.

    line 62
  10. Distinctive:

    > 800 lines: - Must split into multiple PRs

    line 69
  11. Distinctive:

    Keep steps small enough to track progress meaningfully

    line 98
  12. Distinctive:

    Group steps by PR: if multiple PRs are planned

    line 100
  13. Distinctive:

    Use your platform's task tracking tool to create a structured task list:

    line 104
  14. Very specific:

    Create folder: if it doesn't exist: planning/

    line 131
  15. Distinctive:

    After completing EACH task or solution, you MUST:

    line 152
  16. Very specific:

    Update the plan file - change - [ ] to - [x] for the completed task </IMPORTANT>

    line 154
  17. Very specific:

    Update the plan file in planning/ to reflect current progress

    line 159
  18. Distinctive:

    If a step reveals new requirements, add new tasks AND update the plan file

    line 160
  19. Very specific:

    If a step becomes unnecessary, mark as cancelled

    line 161
  20. Distinctive:

    Do NOT create tasks for:

    line 165
  21. Distinctive:

    Ask user: if they want to create a PR

    line 186

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Base Planning Rules

<IMPORTANT> This is a base skill containing shared planning rules. Do not invoke this skill directly. Instead, use the appropriate specialized skill: - `planning-feature` - for new features - `planning-bugfix` - for bug fixes - `planning-refactor` - for refactoring - `planning-docs` - for documentation - `review-architecture` - for architecture documentation </IMPORTANT>

Core Principles

Planning MUST happen before ANY implementation. A task is non-trivial if it requires more than 2 distinct steps.

Every plan leads to a Pull Request. Keep PR reviewability in mind from the start.

Planning Mode Workflow

<IMPORTANT> Complete all planning phases (0-4) before implementation. After completing the plan: 1. Save the plan to `planning/` folder (Phase 5) 2. Then begin implementation

Platform-specific:

  • Cursor: Use Plan Mode for phases 0-4, then switch to Agent Mode
  • Claude Code: Use EnterPlanMode tool or simply complete planning before coding

This ensures the plan is persisted before any code changes begin. </IMPORTANT>

Phase 0: Check for Existing Plans

Before creating a new plan, check the planning/ folder in project root:

  1. List files in planning/ directory
  2. Look for related plans - similar features, continuation of previous work
  3. If found:
    • Read the existing plan
    • Check which tasks are already completed (marked with [x])
    • Resume from where it left off OR adapt the plan for the new request
  4. If not found: proceed to Phase 1

Phase 1: Analyze

Before writing ANY code or making ANY changes:

  1. Understand the request - What exactly is being asked?
  2. Identify the scope - What files/components are affected?
  3. Find dependencies - What existing code/patterns should be followed?
  4. Spot risks - What could go wrong? What needs extra attention?

Phase 2: Assess PR Scope

<IMPORTANT> Before decomposing, assess if this should be ONE PR or MULTIPLE PRs. Invoke `git-create-pull-request` skill for detailed PR guidelines. </IMPORTANT>

PR Size Guidelines

  • < 400 lines - Ideal, easy to review
  • 400-800 lines - Acceptable for complex work
  • > 800 lines - Must split into multiple PRs

When to Split

  • Changes touch multiple unrelated systems
  • Refactoring can be separated from feature work
  • Infrastructure changes can land independently
  • Tests can be added before implementation

If Splitting Required

Plan each PR separately:

## PR Strategy

### PR 1: [Title]
**Scope:** [What's included]
**Dependencies:** None

### PR 2: [Title]
**Scope:** [What's included]  
**Dependencies:** PR 1

Phase 3: Decompose

Break the task into concrete, actionable steps:

  • Each step should be independently verifiable
  • Steps should be ordered by dependency (what must come first)
  • Keep steps small enough to track progress meaningfully
  • Include validation/testing steps where appropriate
  • Group steps by PR if multiple PRs are planned

Phase 4: Create Task List

Use your platform's task tracking tool to create a structured task list:

  • Claude Code: TaskCreate, TaskUpdate, TaskList tools
  • Cursor: TodoWrite
Example task structure:
1. [pending] Analyze existing code structure
2. [pending] Create/modify necessary files
3. [pending] Implement core logic
4. [pending] Add error handling
5. [pending] Verify changes work correctly

Task Status Rules:

  • pending - Not yet started
  • in_progress - Currently working on (only ONE at a time)
  • completed - Finished and verified
  • cancelled - No longer needed

Phase 5: Persist the Plan

<IMPORTANT> This phase happens **immediately after planning is complete** - before any implementation begins. </IMPORTANT>

Save the plan to the planning/ folder in the project root:

  1. Create folder if it doesn't exist: planning/
  2. Save plan as a markdown file with descriptive name (see specific skill for naming)
  3. Include in the plan file:
    • Original request/goal
    • Analysis summary
    • Todo list with status markers
    • Any relevant context or decisions made

Phase 6: Confirm (Optional)

For complex or risky changes, present the plan to the user:

"Before I begin, here's my plan:

  1. [step 1]
  2. [step 2] ... Should I proceed?"

During Execution

<IMPORTANT> After completing EACH task or solution, you MUST: 1. Mark the task as `completed` using your platform's task tracking tool 2. Update the plan file - change `- [ ]` to `- [x]` for the completed task </IMPORTANT>
  • Mark each task as in_progress when you start working on it
  • Mark as completed immediately after finishing each task
  • Update the plan file in planning/ to reflect current progress
  • If a step reveals new requirements, add new tasks AND update the plan file
  • If a step becomes unnecessary, mark as cancelled

What NOT to Include in Tasks

Do NOT create tasks for:

  • Reading/searching the codebase (this is implicit)
  • Running linters (this is automatic)
  • Basic validation steps that are part of normal workflow

After Execution: Create Test Plan

Once implementation is complete:

  1. Create test plan file: planning/testplan-<feature-name>.md
  2. Invoke testing-testplan skill for the template
  3. Fill in:
    • Automated tests (what tests exist or will be written)
    • Manual verification scenarios (for developer and QA)
    • Regression check (related features to verify)
  4. Verify manually and check off items

After Test Plan: Create Pull Request

Once all tasks are complete and tests are written (if requested):

  1. Ask user if they want to create a PR
  2. Invoke git-create-pull-request skill for PR template
  3. Create PR with required sections:
    • Motivation - Why is this change needed?
    • Technical Details - What changed and how?
    • Test Plan - Reference planning/testplan-<name>.md

PR creation is the final step of every feature/bugfix/refactor workflow.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.