feat: add fleet capacity dashboard - #5
Merged
purple-phoenix merged 21 commits intoJul 28, 2026
Merged
purple-phoenix merged 21 commits into
purple-phoenix merged 21 commits into
Conversation
…d readiness safety
…cisions, and approval signals
…approval, and aging
…val authority accurately
…e, and output paths
…ing private-root safety
…dential provenance
…ity-build-capacity-pipeline-dashboard-skill-ce
This was referenced Jul 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Create a discoverable captain-invocable /capacity skill for Firstmate that gathers a fresh bounded provenance-aware fleet snapshot across the main and registered secondmate homes using authoritative state owners; classifies meaningful ready-work supply, independent starts, delivery-stage flow, blockers, scope alignment, dispatch/runtime/auth availability, backlog definition health, and aging without inventing quota, busywork, utilization targets, self-scheduling, or unsafe concurrency; and renders a polished accessible responsive self-contained offline HTML dashboard under gitignored data/ with stable CAP action IDs and copyable captain prompts. Keep one complete procedure owner, minimal AGENTS.md trigger and safety stub, README discovery, and exact mechanics in script help or headers. The invocation is read-mostly: no Lavish, secrets, PHI, services, dispatch, merge, teardown, task mutation, or speculative work, and approved actions must re-enter normal Firstmate lifecycles. Follow existing bearings, fleet-state, backlog, secondmate, dispatch-profile, harness/backend, approval, overlap, project-write, merge, security, and teardown contracts; add focused deterministic tests and browser validation; preserve tracked Markdown style; push only to purple-phoenix/firstmate and never merge. Preserve the approved dashboard-output symlink hardening while allowing legitimate system symlink ancestors, bounded secondmate probes, per-home credential/runtime/dispatch attribution for ready and active work, cross-home overlap and unavailable-state semantics, project-registry resolution evidence, ShellCheck-clean tests, and every prior pipeline fix commit. Integrate origin/main d225b87 containing the pre-existing main-suite test fixes. The captain verified the xoxb-shaped privacy fixture is fabricated test data and explicitly approved GitHub push-protection allowance as used-in-tests; do not rewrite history.
What Changed
/capacityskill and producer for provenance-aware fleet classification, stableCAP-NNrecommendations, JSON output, and a private responsive offline dashboard.Risk Assessment
✅ Low: The follow-up removes the premature aggregate snapshot timeout and documents the required bounds, probe mechanics, action meanings, and priority order without introducing a material new risk.
Testing
The previously successful full baseline was supplemented by focused capacity and fleet-snapshot suites, a fresh end-to-end
/capacityproduction run, desktop visual capture, mobile responsive/offline checks, and copy-prompt interaction testing; everything passed and no actionable issues remain./var/folders/g0/z_4x96f92cgfpm7940cqvtt00000gn/T/no-mistakes-evidence/01KYK7YWRRN3X6T8VQZJG9A395/capacity-dashboard-desktop.png)Evidence: Self-contained offline dashboard
Evidence: Fresh fm-capacity.v1 model
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 2 issues found → auto-fixed ✅
bin/fm-capacity.mjs:106- The required “bounded secondmate probes” must gather state “across the main and registered secondmate homes,” but this new 45-second wrapper timeout aborts the entire snapshot. The canonical snapshot probes up to 20 homes sequentially with an 8-second per-home bound, so six slow homes can make/capacityfail without producing unavailable-state records or a dashboard. Use an aggregate strategy that preserves bounded results instead of killing the producer.bin/fm-capacity.mjs:61- The intent requires “exact mechanics in script help or headers,” and the skill explicitly assigns the model schema, probe bounds, bottleneck priority, and stable action identifiers to this help/header. The current help only describes inputs and output; it does not document CAP-01–CAP-10 semantics or priority order, and the header merely claims ownership. Add the promised mechanics to the header or help.🔧 Fix: Captain, harden capacity snapshot bounds and help contract
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
command -v tmux >/dev/null || { echo "tmux is required for e2e tests" >&2; exit 1; }; tmux -V; rc=0; for t in tests/*.test.sh; do echo "== $t =="; bash "$t" || rc=1; done; exit "$rc"Configured baseline:command -v tmux >/dev/null || { echo "tmux is required for e2e tests" >&2; exit 1; }; tmux -V; rc=0; for t in tests/*.test.sh; do echo "== $t =="; bash "$t" || rc=1; done; exit "$rc"(reported successful)bash tests/fm-capacity.test.shbash tests/fm-bearings-snapshot.test.shbin/fm-capacity.mjs --json > /var/folders/g0/z_4x96f92cgfpm7940cqvtt00000gn/T/no-mistakes-evidence/01KYK7YWRRN3X6T8VQZJG9A395/live-capacity-model.jsonOpeneddata/capacity-dashboard.htmldirectly from disk in Chrome at 1440×1100 and captured the rendered dashboardEmulated a 390×844 mobile viewport in Chrome; verifiedscrollWidth == innerWidth, single-column metric/pipeline layouts, and zero remote resourcesClicked the rendered CAP-03 copy control and verified it copied the stable lifecycle prompt and changed toCopied✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.