← ClaudeAtlas

goalforge-plan-indexlisted

goalforge-internal — use entry commands; do not auto-trigger Generate plans/INDEX.md -- a DERIVED feature register + cross-feature dependency DAG + topological build-order tiers + cycle/orphan detection -- by harvesting each feature overview's `relationships:` frontmatter. The frontmatter is the single source of truth; the index is regenerated, never hand-synced. Use to (re)build or refresh a plans portfolio index after adding/changing features, to see the build order, or to find dependency cycles and orphaned features. TRIGGER: 'generate the plan index', 'rebuild plans/INDEX.md', 'show the feature dependency graph', 'what is the build order', 'find plan cycles/orphans'. Pairs with goalforge-archive's reference-gate (idea: goalforge-plan-index-and-portfolio-housekeeping).
Truncuso/cogwright · ★ 0 · AI & Automation · score 75
Install: claude install-skill Truncuso/cogwright
# goalforge-plan-index Derives `plans/INDEX.md` from feature-overview frontmatter so the portfolio index and the per-feature `relationships:` edges never drift apart. The index is a build artifact -- regenerate it; do not hand-edit it. **Scope:** this is **feature-level portfolio navigation**, regenerated on demand — it is **not** part of the per-WP execute → verify → commit loop and never gates a transition. It answers "what features exist, in what build order, with which cross-feature dependencies", orthogonal to a WP's goal/verify/commit cycle. ## Mechanical core ```bash python3 ${CLAUDE_PLUGIN_ROOT}/scripts/goalforge-plan-index.py \ [--plans-root <root>] [--include-archived] [-o <file|->] ``` - **Plans root** resolves like the rest of the SDD chain: `--plans-root` -> env `SDD_PLANS_DIR` -> git-root `plans/` -> CWD `plans/` -> `~/.claude/plans/`. - **Output**: default writes `<PLANS_ROOT>/INDEX.md` — which project-track-sweep's `backfill_wps.py` also generates (see the header line in an existing INDEX.md); pass `-o` to avoid clobbering a sweep-generated index. `-o -` streams to stdout (preview without touching disk); `-o <file>` writes elsewhere. - `--include-archived` is **render-only**: it folds `_archived/` features in as `status: archived` rows/tier slots. Archived features are **always** loaded for edge RESOLUTION regardless of the flag (see "Archived features" below). ## What it derives - **Feature register** -- one row per `<feature>/overview.