Skip to content

Commit b07d1e9

Browse files
committed
feat: add roadmap and repo fleet audit
1 parent 935a90e commit b07d1e9

15 files changed

Lines changed: 2162 additions & 6 deletions

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7878
- `brigade work verify plan/run/runs/show` and `brigade work closeout <session-id-or-latest>` for local verification receipts and work closeout records that collect task acceptance, test command results, scanner sweep status, code review closeout state, handoff draft status, and session evidence without CI or remote mutation.
7979
- `brigade release plan/doctor/run/runs/show` for local release-readiness receipts that collect work closeout, verification, review closeout, scanner sweep, security, handoff, content-guard, docs, changelog, roadmap, and git-state evidence without pushing, tagging, or mutating remotes.
8080
- `brigade release candidate plan/build/list/show/archive` for local release candidate bundles with readiness evidence, release notes drafts, manual-only publish plans, changed file lists, blockers, warnings, and content-guard summaries without pushing, tagging, or creating releases.
81+
- `brigade roadmap audit` and `brigade roadmap patterns` for roadmap closure checks, stale phase warnings, documented command drift, neutral pattern-family coverage, and source-pattern decisions.
82+
- `brigade repos init/list/show/scan/doctor/import-issues` for gitignored local repo-fleet readiness checks, safe setup metadata, fallback guidance detection, and `repo-fleet` work inbox imports.
83+
- `brigade work sweep closeout <sweep-id|latest>` for reviewable sweep closeout records that block unresolved pending imports, support explicit deferrals, and surface unclosed sweeps through inbox hygiene.
8184
- `brigade work backup init/status/doctor/import-issues` for read-only local backup health summaries and `backup-health` inbox imports.
8285
- Backup health checks for stale snapshots, failed or stale checks, failed or stale prunes, missing summaries, overdue restore rehearsals, and unsafe private summary fields.
8386
- `brigade tools init/list/show/search/describe/contracts/call plan/call queue/call list/call show/call approve/call reject/call hold/call run/runtime/policy/plan/apply/doctor/import-issues`, plus `brigade tools run list/show/latest/replay` and `brigade tools checkpoint list/show/approve/reject/resume`, for portable tool, slash command, skill, superpower, script, and MCP catalog discovery plus explicit projection writes, read-only call planning, local call approval review, explicit approved script and local MCP execution, run history inspection, replay review, checkpointed resume, runtime supervision, and host-local execution policy.

README.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,10 @@ Start-of-day commands:
387387
- `brigade work scanners run --due` explicitly runs due enabled scanner producers, writes local receipts, and leaves promotion to the operator.
388388
- `brigade work sweep` explicitly runs due scanner producers, ingests configured JSONL outputs by default, and writes one local sweep report for review.
389389
- `brigade work sweep-review latest` shows created imports, skipped or dismissed fingerprints, grouping, and next commands for the latest sweep.
390+
- `brigade work sweep closeout latest` records that all actionable sweep imports were promoted, dismissed, archived, or explicitly deferred.
391+
- `brigade roadmap audit` reports roadmap status, stale phase sections, documented command drift, and optional roadmap-audit work imports.
392+
- `brigade roadmap patterns` shows neutral inspiration pattern coverage and source-pattern decisions without naming private references.
393+
- `brigade repos scan` inspects configured local repos for safe setup metadata, and `brigade repos import-issues` routes repo-fleet gaps into the work inbox.
390394
- `brigade chat sweep import-issues <surface-id>` converts a local chat export sweep into public-safe scanner inbox imports.
391395
- `brigade tools doctor` inspects the local portable tool catalog and reports source, projection, schema, MCP, auth-field, and command-shape issues without invoking tools.
392396
- `brigade work next` prints only the next task. Add `--json` for wrappers.
@@ -425,7 +429,7 @@ Import inbox commands:
425429
- `brigade work import promote-handoff <import-id>` promotes one reviewed durable import into a linted Memory Handoff draft.
426430
- `brigade work import promote --run <import-id>` promotes exactly one task import, then immediately runs that task through the normal work-session loop.
427431
- `brigade work import promote --all --source memory-care --kind task` batch-promotes filtered imports; metadata filters also work for scanner-specific fields such as `handoff_issue_category=route-skip`.
428-
- `brigade work inbox doctor` reports missing scanner provenance, stale pending imports, broken promoted task links, changed dismissed fingerprints, noisy sources, and scanner runs that produced no imports.
432+
- `brigade work inbox doctor` reports missing scanner provenance, stale pending imports, broken promoted task links, changed dismissed fingerprints, noisy sources, scanner runs that produced no imports, missing sweep references, and unclosed sweeps.
429433
- `brigade work inbox archive` moves old promoted, dismissed, and superseded imports into `.brigade/work/imports/archive.jsonl` while preserving pending imports.
430434

431435
Imports are stored under `.brigade/work/imports/inbox.jsonl`, stay gitignored, and do not write memory directly.
@@ -455,9 +459,20 @@ Scanner registry commands:
455459
- `brigade work sweep` is the daily operator action for scanner review. It runs due scanners by default, or `--all` / `--scanner <id>` when selected, ingests configured JSONL outputs unless `--no-ingest` is present, and writes one report under `.brigade/scanners/sweeps/`.
456460
- `brigade work sweeps` and `brigade work sweep-show <sweep-id>` review sweep reports, including scanner run receipt paths, import counts, inbox hygiene, and suggested next commands.
457461
- `brigade work sweep-review <sweep-id>` and `sweep-review latest` triage one sweep by grouping created imports by source, kind, priority, acceptance coverage, provenance completeness, and status. Pending imports show exact plan, promote, dismiss, promote-run, plan-handoff, or promote-handoff commands as appropriate.
462+
- `brigade work sweep closeout <sweep-id|latest>` marks a sweep reviewed only after all actionable imports are no longer pending, or after the operator records explicit deferrals with `--defer <import-id>` or `--defer-all`.
458463
- `brigade work scanners doctor --import-issues` reports missing config, disabled required producers, bad commands, missing or stale output paths, schedule conflicts, failed or timed-out runs, malformed receipts, missing logs, and due scanners, then can import those health issues as local task imports.
459464

460-
The scanner registry is explicit and local. Brigade does not install cron jobs, start a daemon, run scanners from `brief` or `doctor`, promote scanner output automatically, or mutate scanner output beyond the configured command's own behavior. `brigade work sweep` is still explicit foreground execution, not a scheduler, and `sweep-review` is read-only.
465+
The scanner registry is explicit and local. Brigade does not install cron jobs, start a daemon, run scanners from `brief` or `doctor`, promote scanner output automatically, or mutate scanner output beyond the configured command's own behavior. `brigade work sweep` is still explicit foreground execution, not a scheduler, `sweep-review` is read-only, and sweep closeout records review state only.
466+
467+
Roadmap and repo-fleet commands:
468+
469+
- `brigade roadmap audit` parses `ROADMAP.md`, classifies roadmap bullets, detects stale current or next phase sections, compares documented commands with the CLI, and can import roadmap hygiene issues with `--import-issues`.
470+
- `brigade roadmap patterns` shows neutral pattern-family coverage and local source-pattern decisions: `bake-in`, `integrate`, `catalog-only`, `move-candidate`, and `leave-alone`.
471+
- `brigade repos init` writes gitignored `.brigade/repos.toml`.
472+
- `brigade repos list`, `show <repo-id>`, and `scan` report safe repo metadata only: repo labels, branch, dirty counts, guidance-file presence, docs presence, test hints, handoff inboxes, publish-guard hook presence, Brigade config presence, and local receipt references.
473+
- `brigade repos doctor` reports setup gaps, and `brigade repos import-issues` creates `source: repo-fleet` task imports with stable source fingerprints.
474+
475+
Repo fleet and pattern registry output is local and privacy preserving. It records presence, counts, labels, fingerprints, and receipt references, but does not copy repo guidance files, private paths, raw logs, scanner output, private config, owner names, exact private repo names, or raw evidence into public artifacts.
461476

462477
Code review producer commands:
463478

@@ -860,6 +875,8 @@ Each subsystem has a companion doc under [`docs/`](docs/) with the full local co
860875
- [`docs/backup-health.md`](docs/backup-health.md) - read-only backup health summaries and issue routing
861876
- [`docs/memory-care.md`](docs/memory-care.md) - memory card decay scanning and refresh imports
862877
- [`docs/security.md`](docs/security.md) - the agent workspace security scanner and evidence bundles
878+
- [`docs/inspiration-patterns.md`](docs/inspiration-patterns.md) - neutral pattern families and source-pattern decisions
879+
- [`docs/roadmap-completion-plan.md`](docs/roadmap-completion-plan.md) - the large-roadmap completion plan and phase boundaries
863880

864881
## Related
865882

ROADMAP.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ Goal: make Brigade a safe target for local automations that discover useful work
4545
- Close out completed work against local verification evidence. Status: implemented with `brigade work verify plan/run/runs/show` and `brigade work closeout`, collecting task acceptance, test command receipts, scanner sweep state, code review closeout state, handoff draft status, and session evidence without CI or remote mutation.
4646
- Check local release readiness before publish operations. Status: implemented with `brigade release plan`, `doctor`, `run`, `runs`, and `show`, collecting work closeout, verification, review, scanner, security, handoff, content-guard, docs, changelog, roadmap, and git-state evidence without pushing, tagging, or mutating remotes.
4747
- Build local release candidate packets before manual publish steps. Status: implemented with `brigade release candidate plan/build/list/show/archive`, local candidate bundles, evidence JSON, release notes drafts, manual-only publish plans, candidate health warnings, and no remote mutation.
48+
- Audit roadmap closure and neutral pattern coverage. Status: started with `brigade roadmap audit`, `brigade roadmap patterns`, stale phase warnings, documented command drift checks, roadmap-audit imports, and source-pattern decision records without public reference names.
49+
- Inspect local repo fleet readiness without copying private repo contents. Status: started with gitignored `.brigade/repos.toml`, `brigade repos init/list/show/scan/doctor/import-issues`, safe metadata summaries, AGENTS and fallback guidance detection, repo-fleet imports, and daily-loop health surfacing.
50+
- Close out scanner sweeps after review. Status: started with `brigade work sweep closeout <sweep-id|latest>`, deferred import recording, missing-reference blocking, and inbox hygiene warnings for unclosed sweeps.
4851

4952
## Later Phase: Chat Surface Scanners
5053

docs/import-schema.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,13 @@ Scanner run provenance metadata is added by `brigade work scanners run --ingest-
8888
- `scanner_import_path`: configured JSONL import output path when present.
8989
- `source_fingerprint`: producer fingerprint or Brigade-computed fingerprint for dedupe and dismissed-change checks.
9090

91+
Roadmap and repo-fleet producers use the same import contract:
92+
93+
- `source: roadmap-audit` records roadmap hygiene issues such as stale phase sections or documented command drift. Metadata includes `issue_type`, `safe_summary`, `source_item_key`, and `source_fingerprint`.
94+
- `source: repo-fleet` records local repository readiness gaps from `brigade repos import-issues`. Metadata includes `repo_id`, `issue_type`, `safe_summary`, `source_item_key`, and `source_fingerprint`.
95+
96+
Repo-fleet imports must use safe labels only. Do not copy full local paths, guidance file contents, private config values, raw logs, scanner output, owner names, exact private repo names, or raw evidence into import text or metadata.
97+
9198
## Privacy Rules
9299

93100
- Keep raw chat exports, message bodies, and third-party personal details out of public docs and public repos.

docs/inspiration-patterns.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Inspiration Pattern Registry
2+
3+
Brigade keeps public inspiration records at the pattern-family level. Public docs describe the workflow shape Brigade is adopting, not the exact private repos, owners, organizations, raw examples, or local evidence that inspired the work.
4+
5+
Use:
6+
7+
```bash
8+
brigade roadmap patterns
9+
brigade roadmap patterns --json
10+
```
11+
12+
## Pattern Families
13+
14+
- `command-harness-patterns`: command surfaces, subcommands, project settings, permission boundaries, and local command discovery.
15+
- `delivery-loop-patterns`: think, plan, implement, review, verify, release, and learn loops with receipts.
16+
- `durable-memory-eval-patterns`: markdown-backed handoffs, memory repair candidates, replayable eval records, and bounded learning cycles.
17+
- `portable-skill-patterns`: small composable skills, portable source files, projection planning, and conflict-safe apply.
18+
- `agent-security-guardrails`: local security scans, prompt and instruction risk checks, tool permission findings, and redacted evidence bundles.
19+
- `context-engineering-packs`: planned context pack creation, freshness checks, and harness-specific export receipts.
20+
- `cross-harness-skill-plugin-sync`: explicit sync plans, managed metadata, add-only defaults, dry-run output, and no silent deletes.
21+
- `local-side-project-categories`: safe fleet metadata, disposition planning, and reviewed local work imports.
22+
- `mcp-tooling`: local server metadata, tool listing, call planning, runtime checks, and receipts.
23+
- `portable-tools`: catalog, projection, contract, approval, policy, runtime, execution, history, replay, checkpoint, and local MCP execution flows.
24+
- `security-gates`: publish readiness checks, introduced-content checks, suppressions, accepted-risk records, and release blockers.
25+
- `self-learning`: learning output becomes reviewed tasks, handoffs, suppressions, or receipts, not unbounded self-mutation.
26+
- `release-gates`: verification, closeout, review, scanner, security, docs, changelog, roadmap, candidate bundle, and manual publish-plan checks.
27+
28+
## Decision Types
29+
30+
- `bake-in`: the pattern is small and belongs directly in Brigade.
31+
- `integrate`: the pattern should stay in its own tool but report into Brigade through receipts or imports.
32+
- `catalog-only`: Brigade should inspect and track it, not own execution or projection.
33+
- `move-candidate`: the repo or tool may need a reviewed migration or consolidation plan.
34+
- `leave-alone`: the reference is useful context but not Brigade scope.
35+
36+
## Public Boundary
37+
38+
Do not put exact private reference repo names, side-project names, owner names, organization names, private paths, raw logs, private config, tokens, or raw evidence in this file, public fixtures, handoffs, imports, release evidence, or committed diffs. Exact local source names belong only in gitignored host-local config when the operator needs them.

0 commit comments

Comments
 (0)