Skip to main content

grove-audit

Unified codebase audit that launches 10 parallel micro-lane subagents to check compliance, security, and quality. Auto-fixes deterministic issues, reports everything else inline. Three modes — quick (branch diff), standard (changed packages), full (entire codebase).

Zur Installation springen

Quellinformationen

Repository
AutumnsGrove/Lattice
Letzte Quellaktivität
19. Mai 2026 um 23:12
Erkannte Sprache von SKILL.md
Englisch
Sterne
6
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
11 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
grove-audit
description
Unified codebase audit that launches 10 parallel micro-lane subagents to check compliance, security, and quality. Auto-fixes deterministic issues, reports everything else inline. Three modes — quick (branch diff), standard (changed packages), full (entire codebase).
# Grove Audit A fleet of 10 narrow-scoped subagents, each checking one thing well. Deterministic violations get auto-fixed and committed. Judgment calls get reported inline with `file:line` evidence. ## When to Activate - User says `/grove-audit`, `/grove-audit quick`, `/grove-audit standard`, or `/grove-audit full` - User asks for a comprehensive code review, compliance check, or codebase sweep - Before major merges or releases - After large refactors to catch regressions - During active development to sweep for legacy violations ## Modes | Mode | Scope | When to Use | |------|-------|-------------| | `quick` | Branch diff vs main | Iterative development, pre-commit check | | `standard` | Changed packages (git diff + affected deps) | Pre-merge, after refactors | | `full` | Entire codebase via Lumen + grep | Periodic sweeps, post-refactor cleanup, first-time audit | Default when no mode specified: infer from context. On a feature branch with changes → `standard`. On main with no changes → `full`. User specified a scope → use that. --- ## Protocol ``` SCOPE → DISCOVER → DISPATCH → COLLECT → FIX → REPORT ↓ ↓ ↓ ↓ ↓ ↓ Mode Files 10 agents Results Commit Inline ``` ### Phase 1: SCOPE Determine the audit mode and file set. **Quick mode:** ```bash git diff main...HEAD --name-only ``` **Standard mode:** ```bash git diff main...HEAD --name-only # Plus: identify affected packages from changed files # Include downstream consumers of changed libs ``` **Full mode:** - No file filtering — each lane agent discovers its own targets via Lumen semantic search + grep/glob - Each agent gets the full codebase as its search space ### Phase 2: DISCOVER For quick/standard modes, build the file list and pass it to each agent. For full mode, each agent does its own discovery — this is the key advantage of full sweeps. **Lumen is the primary discovery tool.** Each agent should query Lumen first to find files related to its concern, then use grep/glob to verify and catch stragglers. Agents have full access to all search tools — Lumen, grep, glob, find. No handicaps. ### Phase 3: DISPATCH Launch all 10 lane agents **in parallel** using the Agent tool. Each agent gets: 1. Its lane reference doc (from `references/`) 2. The mode and file scope (for quick/standard) or "full sweep" instruction 3. Clear output format expectations **The 10 Lanes:** | # | Lane | Agent Type | Reference | Auto-Fix? | |---|------|------------|-----------|-----------| | 1 | Barrel Imports | sonnet-coder | `references/barrel-imports.md` | Yes | | 2 | Icon Gateway | sonnet-coder | `references/icon-gateway.md` | Yes | | 3 | CSRF / Fetch Safety | sonnet-coder | `references/csrf-fetch.md` | Yes | | 4 | Accent Tokens | sonnet-coder | `references/accent-tokens.md` | Yes | | 5 | Signpost Compliance | sonnet-coder | `references/signpost.md` | No | | 6 | SDK Boundaries | sonnet-coder | `references/sdk-boundaries.md` | No | | 7 | Data Primacy | sonnet-coder | `references/data-primacy.md` | No | | 8 | Type Safety | sonnet-coder | `references/type-safety.md` | No | | 9 | Security (STRIDE) | opus-coder | `references/security.md` | No | | 10 | Test Coverage | sonnet-coder | `references/test-coverage.md` | No | **Why opus for security only:** STRIDE threat modeling requires deeper reasoning about attack surfaces and trust boundaries. The other lanes are pattern-matching tasks where sonnet excels. **Agent prompt template:** Each agent receives: 1. The full content of its reference doc (read it and include it in the prompt) 2. Mode + file scope 3. Instructions to use Lumen (`mcp__lumen__semantic_search`) as primary discovery, supplemented by grep/glob 4. Output format: structured findings list with `file:line`, severity, and fix description 5. For auto-fix lanes (1-4): instructions to make the fixes directly 6. For report lanes (5-10): read-only — return findings only ### Phase 4: COLLECT Wait for all 10 agents to complete. Gather their results. ### Phase 5: FIX For auto-fix lanes (1-4) that made changes: 1. Review the changes each agent made (verify they're correct) 2. Stage the fixed files 3. Commit with a descriptive message: ```bash git commit -m "$(cat <<'EOF' fix(audit): auto-fix [barrel imports|icon gateway|CSRF fetch|accent tokens] [Summary of what was fixed, e.g., "12 barrel imports converted to direct imports"] Co-Authored-By: Claude (Grove Agent) EOF )" ``` Group related fixes into logical commits — one per auto-fix lane that had changes. ### Phase 6: REPORT Compile the inline report from all 10 lanes. Format: ``` ================================================================================ GROVE AUDIT REPORT Mode: [quick|standard|full] | Files scanned: N | Date: YYYY-MM-DD ================================================================================ AUTO-FIXED (committed) -------------------------------------------------------------------------------- Lane 1 — Barrel Imports: N fixes applied Lane 2 — Icon Gateway: N fixes applied Lane 3 — CSRF / Fetch: N fixes applied Lane 4 — Accent Tokens: N fixes applied FINDINGS (requires manual attention) -------------------------------------------------------------------------------- [CRITICAL] ────────────────────────────────────── 1. [SDK Boundaries] libs/engine/src/lib/foo.ts:42 Raw env.DB.prepare() — use GroveDatabase from @autumnsgrove/infra ... [HIGH] ────────────────────────────────────────── ... [MEDIUM] ──────────────────────────────────────── ... [LOW] ─────────────────────────────────────────── ... SUMMARY -------------------------------------------------------------------------------- ┌──────────────────────────┬────────┬───────┬──────────────┐ │ Lane │ Status │ Found │ Fixed │ ├──────────────────────────┼────────┼───────┼──────────────┤ │ 1. Barrel Imports │ ✓ FIXED│ 12 │ 12 auto-fix │ │ 2. Icon Gateway │ ✓ CLEAN│ 0 │ — │ │ 3. CSRF / Fetch │ ✓ FIXED│ 3 │ 3 auto-fix │ │ 4. Accent Tokens │ ✓ CLEAN│ 0 │ — │ │ 5. Signpost Compliance │ ⚠ WARN │ 5 │ manual │ │ 6. SDK Boundaries │ ✗ FAIL │ 8 │ manual │ │ 7. Data Primacy │ ✓ PASS │ 0 │ — │ │ 8. Type Safety │ ⚠ WARN │ 2 │ manual │ │ 9. Security (STRIDE) │ ✓ PASS │ 0 │ — │ │ 10. Test Coverage │ ⚠ WARN │ 4 │ manual │ └──────────────────────────┴────────┴───────┴──────────────┘ Total: 34 findings | 15 auto-fixed | 19 manual | 0 critical ================================================================================ ``` --- ## Severity Classification | Severity | Meaning | Examples | |----------|---------|---------| | CRITICAL | Exploitable vulnerability or data leak | Raw env.DB without tenant scoping, adminMessage in client response, timing-unsafe secret comparison | | HIGH | Architectural violation that compounds | Raw SDK bypass (env.DB, env.BUCKET), duplicated data sources, missing rate limiting on auth | | MEDIUM | Pattern violation, not dangerous | Barrel imports, bare Lucide icons, hardcoded accent colors, missing Signpost errors | | LOW | Style/hygiene, no functional impact | Missing tests for utilities, Svelte 5 store usage, stale TODO comments | --- ## Agent Prompting Guide When dispatching each lane agent, read the corresponding reference file and include its full content in the agent prompt. Structure each prompt as: ``` You are a focused code auditor for the Grove/Lattice monorepo. Your ONLY job is: [lane description]. MODE: [quick|standard|full] SCOPE: [file list for quick/standard, or "full codebase" for full] RULES (from reference doc): [paste full reference content] DISCOVERY: - Use mcp__lumen__semantic_search as your primary discovery tool - Supplement with grep and glob for exact pattern matching - For full mode: discover your own targets, don't wait for a file list OUTPUT FORMAT: Return a structured list of findings: - file_path:line_number - severity: CRITICAL | HIGH | MEDIUM | LOW - description: what's wrong - fix: what to do instead (or "auto-fixed" for lanes 1-4) [For auto-fix lanes 1-4 only:] AUTO-FIX: You MUST fix deterministic violations directly using Edit. After fixing, report what you changed. [For report lanes 5-10:] READ-ONLY: Do NOT edit any files. Report findings only. ``` --- ## Suppression Comments Each lane respects specific suppression comments. These are documented in the lane references: | Lane | Suppression | Effect | |------|-------------|--------| | Barrel Imports | `// barrel-ok` | Skip this import | | Icon Gateway | `// prism-ok` | Allow bare Lucide import | | CSRF / Fetch | `// csrf-ok` | Allow bare fetch() | | Accent Tokens | `// accent-ok` | Allow hardcoded color | | SDK Boundaries | `// boundary-ok` | Allow raw binding | | Signpost | `// error-ok` | Allow bare throw/console | --- ## What Grove Audit Does NOT Do - **Run tests or type checks** — use `gw ci` for that - **Review prose or documentation** — code patterns only - **Judge style preferences** — "I'd name this differently" is not a finding - **Audit dependencies** — use `pnpm audit` for that - **Replace targeted skills** — hawk-survey for deep security, deer-sense for a11y, etc. --- ## Integration **Before audit:** Ensure Lumen index is fresh (`mcp__lumen__index_status`) **After audit:** Use the report to prioritize manual fixes **For auto-fixes:** Review the committed changes with `git diff HEAD~1` if desired
Auf GitHub ansehen