Repository navigation
Open
Labels
app/pm-stackpm-stack (Pad/Grist) in developing-today/codepm-stack (Pad/Grist) in developing-today/codeeffort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/featureNew feature or capability requestNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/parkedQueue task is parked (waiting on CI, time, or an event)Queue task is parked (waiting on CI, time, or an event)source/agentCreated by an agent workerCreated by an agent workerstatus/parkedDeliberately paused with a recorded resume conditionDeliberately paused with a recorded resume conditionstatus/triagedTriaged and routed (see agent note)Triaged and routed (see agent note)task/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle stateQueue worker lifecycle state
Description
Part of epic #1184; implements the primary ranking recommended by design issue #1257. Design note: doc/2026-11-01T21-05-00Z_design_aggregator_dependency_graph_1257.md (proposed by the linked design PR).
Goal
Rank unresolved blockers per selected epic by the number of distinct open epic items in their transitive blockedBy ancestry. This is downstream reach, not a promise that every counted item becomes immediately unblocked. Preserve the existing longest chain as secondary structural context.
Acceptance criteria
- The primary list is sorted by descending distinct open downstream item count, descending known effort weight as the tie-break, then canonical ref for deterministic order; unsized items are separately reported.
- Each candidate exposes the contributing item links and any additional unresolved blockers, so multi-blocked work is not described as immediately freed. Closed/merged items do not count.
- Shared dependency paths count each downstream item once; out-of-pool blockers stay unresolved and do not disappear from the explanation.
- The longest dependency chain remains visible as a separate diagnostic and is not conflated with the new primary ranking.
- Add focused tests for a shared blocker, a multi-blocked descendant, ties, closed nodes, unknown refs, and deterministic ordering.
Metadata
Metadata
Assignees
Labels
app/pm-stackpm-stack (Pad/Grist) in developing-today/codepm-stack (Pad/Grist) in developing-today/codeeffort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/featureNew feature or capability requestNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/parkedQueue task is parked (waiting on CI, time, or an event)Queue task is parked (waiting on CI, time, or an event)source/agentCreated by an agent workerCreated by an agent workerstatus/parkedDeliberately paused with a recorded resume conditionDeliberately paused with a recorded resume conditionstatus/triagedTriaged and routed (see agent note)Triaged and routed (see agent note)task/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle stateQueue worker lifecycle state
Activity
developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
56 remaining items
dezren39 commentedon Nov 5, 2026
Picked up as task 8060 by lane code-c (repo-queue worker) and handed off to the opencode execution lane per the execution-lane assignment for task 8060. The laptop claimant launches the bound opencode session for task 8060; this lane does not work issue #3974 directly.
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
ses_e5e55c79ba6ffeWWvC6ya12051--worker repo-worker-code; terminal execution records use laneopencodeand this same session ID.feat(pm-stack): rank blockers by downstream open work (#3974)
dezren39 commentedon Nov 5, 2026
agent-note:v1
state: implementation_pr_open
task: 8060 (repo-health-code-pilot; worker repo-worker-code; opencode session ses_e5e55c79ba6ffeWWvC6ya12051)
Implementation
PR #6089 adds blocker-centric per-epic ranking by distinct open downstream items, then known effort weight and canonical ref. Each entry links its contributing items and current additional unresolved blockers; unknown external refs remain unresolved. The existing direct-blocker item summary stays secondary, and the longest-chain diagnostic remains separate.
Verification
bun test test/epic-graph.test.ts— 33 passed, 181 assertions.bun run typecheck— passed..github/workflows/pm-aggregator-tests.ymlcurrently declares onlyworkflow_dispatch;.github/ci-policy.mdhas no aggregator PR-tier entry. Manually dispatched Actions run 41979472119 remains queued after the five-minute CI wait budget.Resume condition
Recheck workflow run 41979472119 after its queue delay. If it passes, finalize task 8060; if it fails, fix and update PR #6089. Do not create another implementation PR.
Links: #6089 · https://github.com/developing-today/code/actions/runs/41979472119