Priorities across issues, blockers and the digest. Load when a question spans issues.
Install
npx skillscat add ayeo-io/compass/flow-management Install via the SkillsCat registry.
Flow Management
Compass is issue-centric: every issue carries its own delivery approach, artifacts, and
gates, and the pipeline guarantees a single issue is well-run. Flow management
is the layer above that - the cross-issue view. It is the delivery-management
function expressed as a capability, not a persona. There is no
"delivery manager" role in Compass; there is /compass:flow, which anyone can
run.
This skill is the craft behind that command: how to triage a board of issues,
how to handle a blocker, and how to write the digest.
Why this is a capability, not a role
A delivery-manager agent would own the board and move issues; Compass has none.
Issue state is not a label someone sets; it is inferred
from the artifacts on disk. An issue is in the implement stage because technical-design.md exists andverification-report.md does not - not because someone moved a card. So flow
management has nothing to own and nothing to move. Its entire job is to
read the artifacts, notice what the per-issue pipeline structurally cannot
(because each issue only sees itself), and put the right thing in front of a
human first.
The flow toolkit
Flow management reads artifacts; it also has one CLI command of its own.compass retro aggregates the reassessments log across every issue and
reports whether the assess stage is systematically over- or under-sizing
delivery approaches - the
framework's own feedback loop. It is read-only and never gates. Run it as part
of triage and fold its signal into the digest: "are we right-sizing process?"
is a cross-issue question, and this is the command that answers it.
Board heuristics
Run these against every issue directory under .compass/work/. Order of
severity, worst first:
No
delivery-approach.md- a guardrail violation. Work was started without an assessment.
This outranks everything; an issue with no computed approach is unaccountable.
The fix is to run/compass:assessnow and reconcile.Delivery approach outgrown - the devlog shows the issue outgrowing its delivery approach
(a regular-approach issue that has sprouted a fourth work subtask; a quick-fix
issue still open after days). The fix is/compass:assess --reassess, not
pushing on. A delivery approach quietly outgrown is the failure mode Compass exists to
prevent - flow management is where it gets caught when the issue itself
missed it.Stalled - an in-progress stage with no
devlog.mdmovement for longer
than the delivery approach's expected cadence (quick-fix: hours; regular: a day or two;
the full approach: longer, but each subtask should still show movement). A stall is
almost always a hidden blocker. Name the likely cause from the artifacts.Owed follow-up sitting - an issue past the verify stage with an owed
follow-up or an unbacked marketing claim. The per-issue/compass:status
flags this; flow's job is to make sure it does not sit ignored across the
whole board.Healthy - progressing in line with its delivery approach. Report it briefly; spend
the attention on 1–4.
Blocker protocol
When an issue is blocked or stalled:
- Locate the blocker precisely. Read the devlog and the latest artifact.
"Blocked" is not a state - "blocked on a governance amendment decision",
"blocked on a flaky integration test", "blocked waiting on a human to
confirm the delivery approach override" are states. - Name who or what unblocks it. A human decision, another issue landing
first, an external dependency, a re-assess. - Record it where the issue lives - append a dated line to that issue's
devlog.md. Flow management does not keep a separate blocker list; the
devlog is the issue's history and the blocker belongs in it. - Escalate by surfacing, not by routing. Flow management has no authority
to reassign or reprioritise - it makes the blocker visible at the top of
the flow report and, if a human decision is needed, says so plainly.
The digest format
/compass:flow --digest writes .compass/flow/digest-<date>.md. It is
append-only history - a team reads it on a cadence (a weekly scheduled run is
the natural fit). Keep it short enough to read in two minutes.
# Flow digest - {{DATE}}
## Needs a human
- {{decision or guardrail violation - or "nothing"}}
## Landed since last digest
- {{issue-slug}} ({{route}}) - {{one line: what shipped}}
## In flight
- {{issue-slug}} ({{route}}) - {{phase}} - {{health: healthy | stalled | off-route}}
## Blocked
- {{issue-slug}} - blocked on {{precise blocker}}; needs {{who/what}}
## Outstanding follow-ups
- {{issue-slug}} - {{outstanding hotfix follow-up | unbacked claim | de-scoped artifact}}
## Calibration
- {{`compass retro` signal - re-assessment rate, lean toward over- or
under-sizing, or "balanced" - or "not enough history yet"}}
## Next up
- {{issues triaged but not started, in approach order}}What flow management must not do
- It does not gate. The gates live in the per-issue pipeline, next to the
evidence. Flow adds visibility, never another gate. - It does not set issue state. State is inferred from artifacts. If the
board looks wrong, the artifacts are wrong - fix those, not a label. - It does not own issues. No assignment, no turf. It reads, triages, and
surfaces. The moment flow management starts "managing people" instead of
"surfacing reality", it has become a manager, which Compass does not have.