diff --git a/.nexus/anchors/backlog-stub.md b/.nexus/anchors/backlog-stub.md new file mode 100644 index 0000000..f354e72 --- /dev/null +++ b/.nexus/anchors/backlog-stub.md @@ -0,0 +1,26 @@ +--- +concept: backlog-stub +source_sha: 9d42385a3585858bf599987598a214d4daa37968 +generated: 2026-08-02 +--- + + + +# Code Anchors: Backlog Stub + +- `.claude/skills/nxs-gh-shared/delivery_config.py` — resolves the unplanned label through the shared precedence chain, exposes the cross-feature backlog as one query in its three forms (listing, search fragment, negated filter), and carries the label preflight that upserts every label a filing run will apply and reports the ones it can neither create nor find. +- `.claude/skills/nxs-gh-create-story/scripts/create_gh_issues.py` — the one batch filing path: takes its canonical classification from the caller instead of stamping every issue a story, upserts every declared label before creating anything, refuses a work-item that is both a stub and a sub-issue, and resolves a literal issue-number dependency edge that points outside the batch. +- `.claude/skills/nxs-gh-create-epic/scripts/nxs_gh_create_epic.py` — the promotion path: reads the target's labels, refuses to promote an issue that is not an unplanned epic, and populates that same issue in place while clearing the unplanned label, so no second issue is created and nothing is closed. +- `libs/epic-resolve/src/classify.ts` — resolves the unplanned label across the process seam and answers whether an epic issue still carries it. +- `libs/epic-resolve/src/resolve.ts` — refuses to materialize an unplanned epic by name rather than emitting one with an empty story set. +- `libs/epic-resolve/src/resolve.spec.ts` — pins the refusal and the label resolution against the resolver's fixtures. +- `.claude/commands/nxs.epic.md` — the decomposition writer: files one stub issue per functional goal behind the right-size gate's consent, and promotes by issue number with no slug lookup. +- `.claude/commands/nxs.close.md` — the deferred-scope writer: files stub issues as the first step after the closure checkpoint, before the close record naming their numbers is committed. +- `.claude/skills/nxs-gh-shared/test_backlog_stubs.py` — covers stub filing through the batch path: classification from the caller, the unplanned label, and the no-parent refusal. +- `.claude/skills/nxs-gh-shared/test_backlog_query.py` — covers the three query forms and the quoting of a multi-word label. +- `.claude/skills/nxs-gh-shared/test_stub_promotion.py` — covers promotion legality and populating the issue in place. +- `.claude/skills/nxs-gh-shared/test_deferred_scope_stubs.py` — covers the close-side writer and the record naming the filed numbers. +- `.claude/skills/nxs-gh-shared/test_literal_dependency_refs.py` — covers the literal issue-number dependency edge. +- `.claude/skills/nxs-gh-shared/test_migration_dry_run.py` — covers the one-batch migration of the retired committed backlogs. +- `docs/features/README.md` — the features index carrying the single link to the cross-feature backlog query. diff --git a/.nexus/anchors/epic-approval-gate.md b/.nexus/anchors/epic-approval-gate.md index f957c11..9c9fe8a 100644 --- a/.nexus/anchors/epic-approval-gate.md +++ b/.nexus/anchors/epic-approval-gate.md @@ -1,7 +1,7 @@ --- concept: epic-approval-gate -source_sha: 1e0c90b776f0bd12a70388cb4643cd2bd7831766 -generated: 2026-07-26 +source_sha: 9d42385a3585858bf599987598a214d4daa37968 +generated: 2026-08-02 ---