Core Concepts
- Every subdirectory under
./superRAwith atask.mdfile is a task. A leaf task is a directory withtask.mdbut no subdirectories containingtask.md. - The filesystem hierarchy is the task hierarchy.
walk_plan()discovers children by scanning subdirectories. - Dependencies are sibling-only.
depends_onvalues are sibling directory names within the same parent. - Parent task status rolls up from children automatically — a parent is
approvedonly when all active (non-parked) children areapproved;archivedandpostponedchildren are excluded from the rollup computation. - DAG-derived ordering vs. display order. The dependency DAG controls execution order. Numeric prefixes on directory names (e.g.
01-load,02-merge) control display order only — these are independent.
CLI Setup
In a fresh project, bootstrap the wrapper with the loaded skill directory (<skill-dir> = the directory containing this SKILL.md; substitute the real path), then use the wrapper for everything after:
uv run --script <skill-dir>/scripts/cli.py wrapper init # writes superRA/superra (planner/main bootstrap)
./superRA/superra wrapper init # refresh an existing wrapper; idempotent
Reading the Tree
Run the committed ./superRA/superra wrapper (created above; contributors in the superRA checkout substitute uv run --script skills/task-tree/scripts/cli.py). Every superra … example below and in the references denotes this wrapper:
./superRA/superra task tree # tree with status badges
./superRA/superra task frontier # dispatchable leaf tasks
./superRA/superra task dag 01-data # dependency DAG for a subtree (Mermaid)
./superRA/superra task tree --json # JSON output
./superRA/superra dashboard --no-open # idempotent; reuses a running server or starts one, prints http://localhost:<port>
Deep-linking a task in the dashboard: http://localhost:<port>/?wt=<worktree-basename>#/<task-path>. <task-path> is the same locator as task read (no superRA/ prefix, empty for the tree root). Always include ?wt=<worktree-basename> (the worktree root's directory name) — one dashboard server serves every worktree of the repo, keyed by this param.
Task File Format
---
title: "Merge with Fund Characteristics"
status: not-started
depends_on:
- 01-load-raw-data
---
## Objective
Left join holdings with fund characteristics on fund_id x date.
Use CRSP-style merge conventions. Validate row counts post-merge.
## Results
### Key Findings
- Merge preserved all 4.7M rows
### Notes
- Used fuzzy date matching for quarterly vs monthly frequency mismatch
## Review Notes
> [MAJOR] Inner join used instead of left join
Field-by-field anatomy and body-section ownership live in references/task-file-contract.md §Task Anatomy.
Routing — operate on the tree
| To do X | See |
|---|---|
| Create / rename / link / move tasks; bulk status propagation; append results programmatically | references/commands.md |
Read or resolve task comments (the read/resolve loop; comments also surface via superra task read) |
references/commands.md §Comments |
Validate tree structure, fix status inconsistencies, diagnose orphaned depends_on entries |
references/commands.md §Diagnostics |
| Task-file anatomy, fields, status/dependencies, inherited context, results shape, stale-content, figure embedding | references/task-file-contract.md |
| Objective writing, task splitting, placement, durable homes, update-task lifecycle, retroactive task-tree creation | ../superplan/references/task-tree-design.md |
Migrate legacy PLAN.md + RESULTS.md, or upgrade superRA/ v1 → v2 |
references/internals.md §Migration |
| Dashboard server mechanics (idempotent ensure-running, task URLs, artifact export) | references/internals.md §Dashboard |
| Modify the skill itself (data layer, hooks, scripts) | references/internals.md; hook coverage details live in §Hook Architecture |
Intentional task path changes go through superra task move (or task rename for same-parent compatibility), not raw mv / git mv. It resolves the move's fallout for you — relative Markdown links across the tree and sibling-only depends_on edges — so run the move directly; do not rewrite links or rewire dependencies by hand first. Mechanics and the cross-parent dependency rules are in references/commands.md §Move / rename a task.