PickSkill
← Back

core

prd.json schema and task system - auto-loaded when prd.json exists

SKILL.md
Rendered from GitHub raw
View raw ↗

name: core description: prd.json schema and task system - auto-loaded when prd.json exists allowed-tools: Read, Write, Edit, TaskCreate, TaskUpdate, TaskList, Grep, Glob model: opus user-invocable: false disable-model-invocation: true

Hybrid Task System

Sprint Summary

!node -e "try{const p=require('./prd.json');const sp=p.sprints?p.sprints[p.sprints.length-1]:p;const s=Object.values(sp.stories||p.stories||{});const name=sp.id||sp.name||p.sprint||'unknown';const done=s.filter(x=>x.passes===true).length;const pending=s.filter(x=>x.passes===null||x.passes===false).length;const deferred=s.filter(x=>x.passes==='deferred').length;console.log('Sprint:',name,'| Done:',done,'| Pending:',pending,'| Deferred:',deferred,'| Total:',s.length)}catch(e){console.log('No prd.json')}"

For large prd.json (100+ stories), use Grep to find specific stories. For typical sizes (<50 stories), reading the full file is fine with 1M context.

When to Sprint

  • 5+ related tasks — create a sprint in prd.json
  • < 5 tasks or single fixes — work directly, no sprint or stories needed
  • Design/creative work — iterate freely, skip planning overhead
  • Quick fixes — just fix, verify, done

Sprints are for tracking, not for ceremony. If the work is small, skip the overhead.

Two Layers

Layer Tool Purpose
Long-term prd.json Sprint history, resolutions (Git-tracked)
Short-term Native Tasks Active work (session only)

Work with native Tasks during session, batch-update prd.json at end.

prd.json Story Schema

{
  "id": "S26-001",
  "title": "Fix tooltip clipping",
  "priority": 1,
  "passes": null,
  "type": "fix",
  "category": "components",
  "notes": "",
  "resolution": ""
}
Field Values
passes null (pending), true (done), false (failed), "deferred"
type fix, feature, refactor, qa, perf
priority 0=critical, 1=high, 2=medium, 3=low
resolution HOW it was fixed (learning)

Resolution Learning

When completing bug fixes, document HOW:

[PATTERN]: [SPECIFIC FIX]

Examples:

  • null-check: Added optional chaining at line 45
  • missing-import: Added import for DateRange
  • type-mismatch: Changed Record<string, T> to Partial<Record<K, T>>
  • overflow: Added max-h + overflow-auto

Context Tips

With 1M context, aggressive token saving is unnecessary. Prefer clarity over brevity.

Action Do This
Check status Read prd.json header or use dynamic context injection
Start task Grep specific story
Track progress Native TaskUpdate
Complete work Batch edit prd.json at session end

Archive Trigger

When ANY of these are true, run archive before starting new work:

  • 4+ total sprints exist in prd.json
  • prd.json > 500 lines
  • prd.json > 50KB
  • Starting a new sprint while previous sprint's stories are all complete

Do not ask — just archive. Archive keeps only last 3 sprints active. Completed stories move to .claude/archives/prd-archive-YYYY-MM.json.