Skill v1.0.1
currentAutomated scan100/100+2 new
version: "1.0.1" name: fo-progress description: Show an app's screen × gate matrix — spec version, plan state and open approvals, generation stages, each gate's result with staleness against the current tree hash, deferred review clusters — and the next command per screen; computed by fo-progress-report. Use any time to see where every screen stands. argument-hint: "[--app <name>] [--screen <id>] [--blocked]" user-invocable: true allowed-tools: Read, Glob, Grep, Bash
fo-progress — where every screen stands
No agent and no writes: fo-progress-report reads progress.json, the manifests, plans, generation state and evidence files, recomputes each screen's tree hash and prints JSON; this skill renders it.
Step 1 — Compute
fo-progress-report --app <app> [--screen <id>]
Under delta legacy tracking (legacySource.tracking: "delta") also run fo-legacy-drift --app <app>. It is read-only and uses the last fetched state of the baseline branch. A drifted screen it reports that the tracker does not yet mark (legacyStale) still belongs in the blocked list, as "V2 source moved since <from> (n commits) → fo-analyze". To refresh and record, the user runs fo-legacy-drift --app <app> --fetch --record; this skill writes nothing.
Step 2 — Render
A table per app, one row per screen (spec version and status · plan version/approved/pending approvals · gen stage · verify · visual · e2e · contract · seo · designer · planning · next), using these marks: ✓ pass, ✗ fail/partial, ○ not run yet, ◌ skipped/not-run with reason, ⟳ stale (evidence recorded against different content — the gate must run again, the earlier result is not wrong). Then:
- Blocked: from
summary.blocked[]— pending approvals (count andplan.firstOpenApproval),
stale plans (against the spec, or behind the legacy analysis), drifted V2 sources, deferred review clusters (review.clustersDeferred), gates skipped/not-run with their reason, stale gates.
- Next: the
nextcommand per screen, grouped (ready forfo-gen, waiting on approval, in gates…). - With
--blocked, only the blocked section.
fo-progress does not advance anything. When the user asks "what should I do next", answer from the next column and name the command; when they ask why a gate is ⟳, explain the tree hash.
Done when the table and the blocked list are shown.