planning-and-task-breakdown
Break work into ordered, verifiable tasks for `hermes-agent-setup`. Use when you have a spec or clear requirements and need to turn them into implementable slices while preserving current shipped-runt
SKILL.md.claude/skills/planning-and-task-breakdown/SKILL.md
GitHubPlanning and Task Breakdown
Overview
Decompose work into small, verifiable tasks with explicit acceptance criteria. Good task breakdown is the difference between an agent that completes work reliably and one that produces a tangled mess. Every task should be small enough to implement, test, and verify in a single focused session.
For hermes-agent-setup, planning must stay anchored to repository truth:
- this repository ships
npx @gonkagate/hermes-agent-setupas the public onboarding helper - the public installer runtime is implemented
- the current CLI is a shipped entrypoint backed by runtime modules, checked-in launch qualification artifacts, and contract tests
- plans must preserve the current GonkaGate/Hermes product contract unless the task is explicitly about changing that contract
When to Use
- You have a spec and need to break it into implementable units
- A task feels too large or vague to start
- Work needs to be parallelized across multiple agents or sessions
- You need to communicate scope and sequencing to a human
- The implementation order is not obvious
- A change crosses docs, CLI, packaging, tests, or mirrored skills and you need to keep repository truth aligned
When NOT to use: Single-file changes with obvious scope, when the spec
already contains well-defined tasks, when the request is still too ambiguous
and should go through spec-first-brainstorming, or when deep TypeScript/Node
execution sequencing belongs in typescript-coder-plan-spec.
Repository-Specific Anchors
Before writing a plan, read the repository surfaces that define current truth:
AGENTS.mddocs/specs/hermes-agent-setup-prd/spec.mdREADME.mdpackage.json- the relevant files under
docs/,src/,test/,.agents/skills/, and.claude/skills/
Keep these invariants explicit in the plan whenever they matter:
- the intended public entrypoint is
npx @gonkagate/hermes-agent-setup - the installed primary bin is
hermes-agent-setup - the intended integration path is the named custom provider
gonkagate - the canonical GonkaGate base URL is
https://api.gonkagate.com/v1 - secrets belong in
~/.hermes/.env, not in~/.hermes/config.yaml - shell profile mutation and arbitrary custom base URLs are out of scope for the public flow
- public positioning must stay truthful about current GonkaGate availability
boundaries, including the non-U.S. launch positioning captured in
AGENTS.md - mirrored contributor skills under
.agents/skills/and.claude/skills/must stay aligned
If a task changes package metadata, public CLI behavior, contributor skills, or
docs that describe shipped behavior, include npm run ci in the plan.
The Planning Process
Step 1: Enter Plan Mode
Before writing any code, operate in read-only mode:
- Read the spec and relevant codebase sections
- Identify existing patterns and conventions
- Map dependencies between components
- Note risks, scope boundaries, and repository-truth constraints
Do NOT write code during planning. The output is a plan document, not implementation.
Step 2: Identify the Dependency Graph
Map what depends on what:
Repository truth / PRD contract
|
+- package metadata, bins, and CLI contract
| |
| +- runtime seams and constants
| | |
| | +- tests and verification
| |
| +- README, docs, and contributor guidance
|
+- Hermes/GonkaGate security and config invariants
|
+- mirrored contributor skills and contract tests
Implementation order follows the dependency graph bottom-up: lock the contract, then build the behavior, then reconcile docs/tests/skills so they all describe the same truth.
Step 3: Slice Vertically
Instead of updating all docs first, then all code, then all tests, prefer one complete slice at a time when possible.
Bad (horizontal slicing):
Task 1: Rewrite all docs
Task 2: Implement all runtime helpers
Task 3: Update all tests
Task 4: Reconcile package and skill drift later
Good (vertical slicing):
Task 1: Add one Hermes/GonkaGate contract slice and the tests that pin it
Task 2: Implement the CLI behavior for that slice
Task 3: Update README/docs/skills so shipped behavior stays truthful
Task 4: Run npm run ci and fix any drift across package, docs, and mirrors
Each slice should leave the repository in a more truthful, testable state than before.
Step 4: Write Tasks
Each task follows this structure:
## Task [N]: [Short descriptive title]
**Description:** One paragraph explaining what this task accomplishes.
**Acceptance criteria:**
- [ ] [Specific, testable condition]
- [ ] [Specific, testable condition]
**Verification:**
- [ ] Typecheck passes: `npm run typecheck`
- [ ] Tests pass: `npm test`
- [ ] Full repo contract passes when needed: `npm run ci`
- [ ] Manual check: [description of what to verify]
**Dependencies:** [Task numbers this depends on, or "None"]
**Files likely touched:**
- `src/path/to/file.ts`
- `test/path/to/test.ts`
**Estimated scope:** [XS: 1 file | S: 1-2 files | M: 3-5 files | L: 5-8 files]
Use repository-real verification commands. If the task changes public contract
surfaces, packaging, release-facing docs, or mirrored skills, do not stop at
npm test; include npm run ci.
Step 5: Order and Checkpoint
Arrange tasks so that:
- Repository truth and public contract decisions are settled first
- Each task leaves the system in a working state
- Verification checkpoints occur after every
2-3tasks - High-risk or high-reversal-cost work happens early
Add explicit checkpoints:
## Checkpoint: After Tasks 1-3
- [ ] `npm run typecheck` passes
- [ ] `npm test` passes
- [ ] `npm run ci` passes when public contract surfaces changed
- [ ] README, AGENTS, docs, CLI, and tests still describe the same truth
- [ ] Review with a human before proceeding
Task Sizing Guidelines
| Size | Files | Scope | Example |
|---|---|---|---|
| XS | 1 | One targeted doc, constant, or validation change | Tighten one contract literal in a skill or CLI message |
| S | 1-2 | One focused component, test, or skill slice | Adapt one mirrored skill and add its contract test |
| M | 3-5 | One complete feature slice | Add one CLI onboarding step with tests and docs |
| L | 5-8 | Multi-surface feature | Introduce one new Hermes config-management slice across code, docs, and tests |
| XL | 8+ | Too large; break it down further | — |
If a task is L or larger, it should be broken into smaller tasks. An agent
performs best on S and M tasks.
When to break a task down further:
- It would take more than one focused session, roughly
2+hours of agent work - You cannot describe the acceptance criteria in
3or fewer bullet points - It touches two or more independent subsystems
- You find yourself writing
andin the task title
Plan Document Template
# Implementation Plan: [Feature or Project Name]
## Overview
[One paragraph summary of what we are building]
## Architecture Decisions
- [Key decision 1 and rationale]
- [Key decision 2 and rationale]
## Repository Truth To Preserve
- [Current shipped-runtime truth that must stay accurate]
- [Hermes/GonkaGate security or product invariant that constrains the work]
## Task List
### Phase 1: Foundation
- [ ] Task 1: ...
- [ ] Task 2: ...
### Checkpoint: Foundation
- [ ] `npm run typecheck` passes
- [ ] Focused checks pass
### Phase 2: Core Slice
- [ ] Task 3: ...
- [ ] Task 4: ...
### Checkpoint: Core Slice
- [ ] `npm test` passes
- [ ] Core behavior or contract flow works
### Phase 3: Truthfulness and Release Surfaces
- [ ] Task 5: ...
- [ ] Task 6: ...
### Checkpoint: Complete
- [ ] All acceptance criteria met
- [ ] `npm run ci` passes when required
- [ ] Ready for review
## Risks and Mitigations
| Risk | Impact | Mitigation |
| ------ | -------------- | ---------- |
| [Risk] | [High/Med/Low] | [Strategy] |
## Open Questions
- [Question needing human input]
Parallelization Opportunities
When multiple agents or sessions are available:
- Safe to parallelize: Independent documentation slices, tests for already-implemented behavior, and mirrored follow-up updates once the shared contract is fixed
- Must be sequential: Changes to package metadata, public CLI contract, Hermes/GonkaGate config semantics, or any step that redefines repository truth
- Needs coordination: Work that touches the same public files or mirrored skill pair; define the contract first, then parallelize the dependent slices
Common Rationalizations
| Rationalization | Reality |
|---|---|
| "I'll figure it out as I go" | That is how you end up with a tangled mess and rework. Ten minutes of planning saves hours. |
| "The tasks are obvious" | Write them down anyway. Explicit tasks surface hidden dependencies and forgotten edge cases. |
| "Planning is overhead" | Planning is the task. Implementation without a plan is just typing. |
| "The runtime already ships, so planning is optional" | Shipped repos still have contracts, release surfaces, and truthfulness requirements. Planning keeps changes aligned with the helper contract. |
| "I can hold it all in my head" | Context windows are finite. Written plans survive session boundaries and compaction. |
Red Flags
- Starting implementation without a written task list
- Tasks that say
implement the featurewithout acceptance criteria - No verification steps in the plan
- All tasks are
XLsized - No checkpoints between tasks
- Dependency order is not considered
- Planning as if shipped behavior covers unsupported or unqualified scenarios
- Planning that stores GonkaGate secrets in
~/.hermes/config.yamlor quietly changes product invariants without calling it out - Updating only one of
.agents/skills/or.claude/skills/for a mirrored skill change
Verification
Before starting implementation, confirm:
- Every task has acceptance criteria
- Every task has a verification step
- Task dependencies are identified and ordered correctly
- No task touches more than about
5files unless there is a stated reason - Checkpoints exist between major phases
- The plan stays truthful to current
hermes-agent-setupreality - The plan preserves relevant repository invariants such as
gonkagate,https://api.gonkagate.com/v1, and keeping secrets in~/.hermes/.env - Mirrored skill changes update both
.agents/skills/and.claude/skills/when applicable - The human has reviewed and approved the plan