Skip to content

Tracker-edge widening (sub-project 5): agreed deferrals + release notes #53

Description

@vnovick

Sub-project 5 (tracker-edge capture widening — spec: `docs/superpowers/specs/2026-08-05-tracker-edge-widening-design.md`) closes the dependency-autonomy decomposition. Deferrals + release-note material, none blocking.

📣 Release notes (operator-visible behavior changes)

  • Previously dispatchable issues may now be blocked: Linear parents with open sub-issues, and GitHub issues whose bodies match the widened phrase set (`blocked by/on`, `depends on/upon`, `requires`, `waiting on/for` + `#N` lists). The Deps tab and `blocked_by:` reasons explain every hold.
  • Parent↔child 2-cycle trap: a Linear board where a parent has a `blocks` relation on its own child ("spec work first") now forms a genuine tracker-kind cycle — both issues held, cycle alert raised. Resolution: remove the relation or restructure. The alert is the correct rendering of a real modeling contradiction, but boards using that pattern go from working to wedged on upgrade.
  • GitHub blocker-state freshness: blocker states are now cached 5 minutes (was per-poll). Worst-case `blockers_resolved` latency via the refresh path ≈ 15 min (was ~10). Fail direction is safe — stale means still-blocked, never falsely unblocked. In exchange, blocker-state traffic drops ~10x (~480 req/hr at 40 refs vs ~4,800 uncached with the widened phrases).

Deferrals

  • Colon-form capture gap: `Depends on: chore(deps): bump codecov/codecov-action from 4 to 5 #3` (the issue-template form, likely the most common) captures nothing — the colon is a list stop-token per the spec grammar. Worth a follow-up widening.
  • Cross-repo ref mid-list silently terminates the list: `depends on chore(deps): bump codecov/codecov-action from 4 to 5 #3, foo/bar#4, chore(deps): bump apexcharts from 4.7.0 to 5.10.4 in /web #5` → only chore(deps): bump codecov/codecov-action from 4 to 5 #3.
  • Linear children are labeled `tracker_relation` in dependency-audit Sources — operators can't distinguish sub-issue gating from a `blocks` relation.
  • `&` works as a list separator but is undocumented in docs/dependency-management.md.
  • `children(first: 50)`: a 51st sub-issue is silently invisible (fails open — parent dispatchable). Matches the inverseRelations(first: 50) precedent.
  • Permanently-dangling GitHub refs (404 forever) are re-fetched every poll with a loud error each time — deliberate (404 ≈ transient permission loss), self-announcing, pathological only at ~40 dangling refs.
  • GitHub native issue dependencies (structured blocked-by API): capture deferred by design decision. Constraints for whoever takes it: NEVER a per-issue fetch loop — piggyback the (now-cached) blocker-state batch path or GraphQL.

Adjudicated at review (recorded rulings)

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions