| name | planning-tracking |
| description | Execution plan with milestone/issue hierarchy, explicit dependencies, and safe parallelism. |
Planning & Tracking Skill
Purpose
Create and maintain an execution plan with milestone/issue hierarchy, explicit dependencies, and safe parallelism.
Use when
- Starting any non-trivial task
- Scope changes during execution
- Multiple files/workstreams must be coordinated
Mandatory Schema
interface Plan { PRD: string; context: string; milestones: Record<string, Milestone>; }
interface Milestone { id: string; description: string; priority: "critical"|"high"|"medium"|"low"; status: "todo"|"in_progress"|"review"|"done"; depends_on: string[]; issues: Record<string, Issue>; }
interface Issue { id: string; task: string; priority: "critical"|"high"|"medium"|"low"; status: "todo"|"in_progress"|"review"|"done"|"blocked"; depends_on: string[]; children: Record<string, Issue>; }
Procedure
- Build plan before implementation.
- Assign unique IDs to milestones/issues.
- Declare dependencies for every issue (
depends_on).
- Execute by dependency order, then priority (
critical โ high โ medium โ low).
- Run independent same-priority milestones in parallel when safe.
- Update statuses continuously and append concise progress summaries.
- If the plan is being materialized into HarnessOS, export it through
harness_orchestrator(action: "plan_issues") using the canonical milestones[] payload.
- Trigger the
github-sync skill after creating/updating the plan or changing status to ensure perfect alignment with GitHub milestones/issues.
Effort Sizing
Assign a T-shirt size to every issue to set expectations:
| Size | Scope | Typical duration |
|---|
| S | Single file, isolated change | < 30 min |
| M | 2โ5 files, one component | 30 min โ 2 h |
| L | Cross-component, multiple integrations | 2 โ 8 h |
| XL | Architectural, multi-milestone | 8 h + (split recommended) |
If an issue is XL, split it into children before starting.
Incremental Execution (Harness Pattern)
When following the harness-lifecycle skill, each issue becomes an incremental unit of work:
- Pick one โ select the highest-priority incomplete issue.
- Implement โ work on that single issue only.
- Test โ run the relevant test suite. The issue is done only if tests pass.
- Commit โ
git commit with a descriptive message referencing the issue ID.
- Update โ mark the issue as
done, update progress.md and feature_list.json.
- Repeat โ pick the next issue.
Rule: never implement multiple issues simultaneously. Complete โ test โ commit โ update โ next.
HarnessOS Canonical Mapping
When the plan is imported into HarnessOS, the queue payload must stay batch-first:
{
"action": "plan_issues",
"projectId": "<project-id>",
"campaignId": "<campaign-id>",
"milestones": [
{
"milestone_key": "runtime-foundations",
"description": "Ship the runtime foundations",
"issues": [
{
"task": "Add the canonical planner",
"priority": "high",
"size": "M"
},
{
"task": "Add regression coverage",
"priority": "high",
"size": "S",
"depends_on_indices": [0]
}
]
},
{
"milestone_key": "capability-discovery",
"description": "Expose agent-readable discoverability",
"depends_on_milestone_keys": ["runtime-foundations"],
"issues": [
{
"task": "Publish the capability catalog",
"priority": "medium",
"size": "M"
}
]
}
]
}
Rules:
- Always use
milestones[], even for a single milestone import.
- Use
depends_on_milestone_keys for edges within the current batch.
- Use
depends_on_milestone_ids only when a milestone depends on already imported work.
- Do not re-encode milestone hierarchy as fake issue dependencies.
Concrete Template
# Plan โ <project/task name>
**PRD**: <one-line goal>
**Context**: <why this is being done now>
## M1 โ <milestone description> (critical)
| Issue | Task | Priority | Size | Depends on | Status |
|-------|------|----------|------|------------|--------|
| M1-I1 | Set up project scaffold | critical | S | โ | todo |
| M1-I2 | Implement core module | high | M | M1-I1 | todo |
| M1-I3 | Add unit tests for core | high | M | M1-I2 | todo |
## M2 โ <milestone description> (high)
| Issue | Task | Priority | Size | Depends on | Status |
|-------|------|----------|------|------------|--------|
| M2-I1 | Build API endpoints | high | L | M1-I2 | todo |
| M2-I2 | Integration tests | medium | M | M2-I1 | todo |
Done Criteria
- Plan exists, is up-to-date, and reflects actual execution state.
- Dependencies are respected and parallel work is safe.
- Every issue has a T-shirt size assigned.
Anti-patterns
- Starting implementation without a plan
- Missing dependency declarations
- Running blocked items in parallel
- XL issues that should be split into children
- Flattening milestone dependencies into artificial issue edges to satisfy the queue importer
- Using the removed top-level
milestoneDescription or issues planning payload