Use when sweeping all recursive-spine-conforming repos for tracking health — aging deferrals (oldest first), stalled milestones, in-flight by lane, assigned-but-untouched issues, and debts named in closing comments but never filed, plus seedling pollen that never transplanted (hive repos). Reports honest denominators; includes the recursive-spine repo itself in every sweep.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add slopstopper/recursive-spine --skill recursive-spine-digest --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Recursive Spine Digest?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/slopstopper-recursive-spine-digest)More formats (shields.io, HTML) on the badges page.
---
name: recursive-spine-digest
description: Use when sweeping all recursive-spine-conforming repos for tracking health — aging deferrals (oldest first), stalled milestones, in-flight by lane, assigned-but-untouched issues, and debts named in closing comments but never filed, plus seedling pollen that never transplanted (hive repos). Reports honest denominators; includes the recursive-spine repo itself in every sweep.
---
# recursive-spine: digest
The board is the live view; this digest is the push signal.
## Repo set
Read the board owner and number from the invoking context (or the invoking
repo's dialect note — `docs/tracking-dialect.md` or equivalent), then read
the repo list from the Spine board (`gh project item-list <N> --owner
<BOARD_OWNER>`), falling back to the repo set recorded in the dialect note
of the repo you were invoked from; the author's founding set
(recursive-spine, plumb-line, tokenomics) is the documented default for
this installation, with private repos read from the private hive's
dialect note rather than named here. recursive-spine ITSELF is always in the
sweep — a digest that exempts its own repo is lying about its coverage.
## The sweep (per repo, via gh)
- **Aging deferrals:** open issues with the repo's deferral label
(`deferred` or its alias — read the repo's dialect note / tracking
section), sorted oldest-first, each with age in days.
- **Stalled milestones:** open milestones with open issues and no issue
activity in 21+ days.
- **In-flight by lane:** open assigned issues grouped by `lane:*` label
(omit section if the repo has no lane module).
- **Assigned-but-untouched:** assigned open issues with no events in 14+ days.
- **Unfiled debts (best effort):** recently closed issues whose closing
comment contains "debt", "deferred", "follow-up", or "left behind" with no
issue reference (#N) in the same comment. Flag for human eyes; do not
auto-file.
- **Seedling pollen (hive repos only):** open `pollen`-labeled issues whose
record still says `stage: seedling`, sorted oldest-first with age in
days — pollen that never transplanted is a signal, same as an aging
deferral. Omit the section for repos that are not a configured hive.
- **Stale constraints pins (repos with a constraints file):** docs whose
`constraints-copy:` provenance line pins a sha older than the current
head of `docs/constraints.md`, where the doc belongs to a still-open
issue — aged like deferrals. (Merged/closed docs stay green by design;
`recursive-spine-handover` pins the constraints sha in each closing
record, which is what makes staleness measurable.) Omit for repos
without the connective-tissue part.
## Spine health (repos that carry the scripts)
If the swept repo has `scripts/spine-audit.sh` (convention adherence:
closed units without handover records, merged PRs citing no issue,
branches off the naming convention) and/or `scripts/spine-doctor.sh`
(installation integrity: labels vs the dialect note's record, board
membership staleness, stamped parts still present and wired), run them
from the repo root and fold their WARN/NOTE lines into that repo's
section. Both are report-only and always exit 0 — findings are digest
material, never CI failures. If the scripts are absent, say so:
"installation predates the health scripts" is a line in the report, not
a silent skip.
## Depth (macro/micro parents)
When a swept issue has sub-issues (`parent`/`subIssues` — mechanics in
`${CLAUDE_PLUGIN_ROOT}/reference/sub-issues.md`, Read a tree), **roll it
up and leak by age**:
- A parent reports as one line with progress and head:
`#249 Phase 1 — 3/6 children closed, head: #242`.
- Healthy children stay folded — they do not appear as separate lines.
- Any child that individually crosses an aging or stall threshold
**leaks**: it surfaces as its own indented line directly under its
parent's, so folding never hides rot.
- A child issue encountered in the sweep folds under its parent rather
than appearing twice.
- If the tree cannot be read, degrade loudly per the reference: report
the issues flat and say why.
## The report — briefing voice
The report reads like a briefing a colleague wrote: plain language first,
evidence after. The data, formats, and honest denominators are unchanged —
only the framing is specified here.
**Open with "The week at a glance":** two to four declarative sentences,
in this order — deltas first (newly aging since the last digest, resolved
since, crossed a threshold), then the single most attention-worthy item
if any, then end with the swept/failed denominator — name the failures if any. A quiet week
says so plainly ("Quiet week; nothing newly aging.").
**Delta rule:** before writing, read the previous digest comment on the
tracking issue (one read, no other state). If none exists or it cannot be
read as a digest, open with "No previous digest to compare" — never fake
a delta.
**Every repo section leads with a status** from exactly this vocabulary —
`healthy`, `aging`, `needs eyes`, `sweep failed` — in the heading, plus
one sentence saying why. A reader who reads only the leads has an
accurate picture. The full tables follow each lead as evidence, format
unchanged. Then the cross-repo "oldest five deferrals anywhere" table,
and the closing honest denominator: repos swept / repos failed (auth,
missing label, API error) — a failed repo is a line in the report, never
a silent omission. Note that 21/14-day thresholds are defaults, not
doctrine. A child issue rolled up under its parent per the Depth section appears
only there — never duplicated as a standalone line in the raw lists.
**The digest never asks.** Question-shaped sentences are the nudge
skill's monopoly; every briefing sentence is declarative. Informing is
not nudging.
**Worked example — delta week:**
> **The week at a glance:** #38 aged past a week as a deferral, and #57 resolved since the last digest. One thing needs eyes:
> Veska_Index_App's Phase-1 milestone has been silent 21 days. Swept 4/4.
>
> ### plumb-line — healthy
> Nothing aging; v0.8.0 has fresh activity.
> *(full deferral/milestone tables follow)*
>
> ### Veska_Index_App — needs eyes
> Milestone Phase-1 stalled 21d; #242 assigned but untouched 14d.
> *(tables follow)*
**Worked example — first run:**
> **The week at a glance:** No previous digest to compare. The oldest
> deferral anywhere is rs#21 (5d); nothing has crossed a stall threshold.
> Swept 4/4.
## Delivery
Channel is configuration, not doctrine: post as an issue comment on a
designated tracking issue, write to a file, or send to Slack — whatever the
user (or the scheduled runner's config) specifies. Never hardcode.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!