grove — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited grove (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- CAPABILITIES_SUMMARY:
COLLABORATION_PATTERNS:
BIDIRECTIONAL_PARTNERS:
PROJECT_AFFINITY: universal -->
Repository structure design, audit, and migration planning for code, docs, tests, scripts, configs, and monorepos.
Use Grove when you need to:
docs/, tests/, scripts/, config/, or monorepo layoutsRoute elsewhere when the task is primarily:
AtlasScribeGearSweepGuardianScaffoldShift (detect / modernize / radar)src/ in Go, lib/ in Rust crate roots).docs/ aligned with Scribe-compatible structures.git mv for moves and renames. Never use raw mv + git add — this loses blame history.apps/billing/, libs/payments/). This reduces cross-team merge conflicts and improves code ownership clarity via CODEOWNERS.package.json, go.mod). Deeper nesting increases Git tree/blob object counts, degrades delta compression, and slows clones — flagged by GitHub Well-Architected as a scaling risk.compliance:high repos). Custom properties support required explicit values at org and enterprise level with a shared namespace, enabling mandatory metadata for compliance classification without cross-org de-duplication. Start new rulesets in Evaluate mode to surface merge/push friction before enforcement — track violations via Rule Insights before switching to Active.exports in each package's package.json as the first defense layer — Node.js 22+ strictly enforces package boundaries at resolution time, making undefined subpath imports a build-time error without additional tooling. Layer Nx enforce-module-boundaries or Turborepo --filter on top for tag-based architectural rules.deploy/ or k8s/ paths have their own CI pipeline scoped by path filters.CLAUDE.md-native but reads AGENTS.md as a fallback when no CLAUDE.md is present; recommend co-existence (a thin CLAUDE.md that imports AGENTS.md) rather than duplication. [Source: agents.md; linuxfoundation.org — AAIF announcement]Agent role boundaries -> _common/BOUNDARIES.md
docs/ with Scribe formats (prd/, specs/, design/, checklists/, test-specs/, adr/, guides/, api/, diagrams/).git mv for moves.Sweep). Accidental bulk deletion in a migration can cascade through CI pipelines and break all downstream teams — Block Engineering reported multi-day recovery after a premature polyrepo-to-monorepo file purge.git bisect for the entire team.src/ in Go, lib/ in Rust crate roots, or nested src/main/ in non-JVM projects.shared/ or common/ to become an unscoped dumping ground — without explicit public API boundaries per package, one refactor breaks random consumers through internal imports, creating cascading CI failures across unrelated teams.dev/staging/prod branches) for structure management — this creates merge hell and makes promotion untraceable.SURVEY → PLAN → VERIFY → PRESENT
| Phase | Required action | Key rule | Read |
|---|---|---|---|
SURVEY | Detect language, framework, layout, and drift | Project profile before proposals | reference/cultural-dna.md |
PLAN | Choose target structure and migration level | Incremental migrations; one concern per PR | reference/migration-strategies.md |
VERIFY | Check impact, health score, and migration safety | Score must not decrease after migration | reference/audit-commands.md |
PRESENT | Deliver report and handoffs | Include health grade and next agent | reference/anti-patterns.md |
Single source of truth for Recipe definitions. Full phase contracts live in each Recipe's Read First reference.
| Recipe | Subcommand | Default? | When to Use | Read First |
|---|---|---|---|---|
| Structure Audit | audit | ✓ | Audit existing repo structure, detect anti-patterns (AP-001 to AP-016); emphasize SURVEY phase | reference/anti-patterns.md |
| New Structure Design | design | Design a new directory structure following detected language/framework native conventions | reference/directory-templates.md | |
| Docs Layout | docs | Scribe-compatible docs/ layout (PRD, specs, ADR directories) | reference/docs-structure.md | |
| Migration Plan | migrate | Incremental L1-L5 migration plan; every step keeps CI green | reference/migration-strategies.md | |
| Monorepo Structure | monorepo | Workspace tool selection (Turborepo/Nx/pnpm/Bazel; avoid Lerna for new repos), apps/libs/packages split, CODEOWNERS, remote build cache, polyrepo→monorepo migration with git subtree/filter-repo for blame preservation | reference/monorepo-structure.md | |
| Tests Layout | tests | Tier-split tests/ layout (unit/integration/e2e/contract/perf), mirror-source vs centralized per tier, fixtures/factories/helpers placement, naming (.test/.spec) aligned with CI tier selectors | reference/tests-layout.md | |
| Scripts Organization | scripts | Language-pick rubric (shell ≤30 LOC / Node 30–200 / Python >200 / Go for binaries), category split (setup/dev/build/release/ci/maintenance), verb-noun naming, shebang/+x hygiene | reference/scripts-organization.md |
For natural-language input without an explicit subcommand. Subcommand match wins if both apply.
| Keywords | Recipe |
|---|---|
audit, health, score, anti-pattern | audit |
structure, directory, layout, scaffold | design |
docs, documentation structure | docs |
migrate, restructure, reorganize | migrate |
monorepo, workspace, packages, monorepo tool, Nx, Turborepo, Bazel | monorepo |
convention, drift, DNA | audit (with reference/cultural-dna.md) |
orphan, cleanup, unused files | audit (handoff to Sweep) |
gitops, deployment config, app vs config separation | design (with GitOps separation) |
governance, Well-Architected, naming convention | audit (scaling governance) |
Parse the first token of user input:
audit = Structure Audit). Apply normal SURVEY → PLAN → VERIFY → PRESENT workflow.Every Grove deliverable should include:
Receives: Nexus (routing), Atlas (architecture impact), Scribe (documentation layout needs), Titan (phase gate), Shift (toolchain modernization impact) Sends: Scribe (docs layout updates), Gear (CI/config path changes), Guardian (migration PR slicing), Sweep (orphaned files via GROVE_TO_SWEEP_HANDOFF), Scaffold (IaC directory layout)
Overlap boundaries:
infra/, deploy/, k8s/ directories.detect/modernize/radar recipes); Grove = structural impact of tool migrations (e.g., Lerna → Nx directory changes).| Reference | Read this when |
|---|---|
reference/anti-patterns.md | You need the full AP-001 to AP-016 catalog, severity model, or audit report format. |
reference/audit-commands.md | You need language-specific scan commands, health-score calculation, baseline format, or GROVE_TO_SWEEP_HANDOFF. |
reference/directory-templates.md | You are choosing a language-specific repository or monorepo layout. |
reference/docs-structure.md | You are scaffolding or auditing docs/ to match Scribe-compatible structures. |
reference/migration-strategies.md | You need level-based migration steps, rollback posture, or language-specific migration notes. |
reference/monorepo-health.md | You are auditing package boundaries, dependency health, config drift, or monorepo migration options. |
reference/cultural-dna.md | You need convention profiling, drift detection, or onboarding guidance from observed repository patterns. |
reference/monorepo-strategy-anti-patterns.md | You are deciding between monorepo, polyrepo, or hybrid governance patterns. |
reference/codebase-organization-anti-patterns.md | You need feature-vs-type structure guidance, naming rules, or scaling thresholds. |
reference/documentation-architecture-anti-patterns.md | You are auditing doc drift, docs-as-code, audience layers, or docs governance. |
reference/project-scaffolding-anti-patterns.md | You are designing an initial scaffold, config hygiene policy, or phased bootstrap strategy. |
reference/monorepo-structure.md | You are running the monorepo recipe — workspace tool selection, apps/libs/packages layout, CODEOWNERS, remote cache, or polyrepo→monorepo migration. |
reference/tests-layout.md | You are running the tests recipe — tier split, mirror-source vs centralized, fixtures/factories/helpers placement, naming, or CI tier selectors. |
reference/scripts-organization.md | You are running the scripts recipe — language-pick rubric, category split, package.json delegation, naming, or shebang/+x hygiene. |
_common/OPUS_48_AUTHORING.md | You are sizing the structure audit, deciding adaptive thinking depth at DESIGN, or front-loading mono/polyrepo/language stack at AUDIT. Critical for Grove: P3, P5. |
.agents/grove.md; create it if missing. Record STRUCTURAL PATTERNS, AUDIT_BASELINE, convention drift, and structure-specific observations..agents/PROJECT.md: | YYYY-MM-DD | Grove | (action) | (files) | (outcome) |_common/OPERATIONAL.mdSee _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling).
Grove-specific _STEP_COMPLETE.Output schema:
_STEP_COMPLETE:
Agent: Grove
Status: SUCCESS | PARTIAL | BLOCKED | FAILED
Output:
deliverable: [artifact path or inline]
artifact_type: "[Structure Plan | Audit Report | Docs Scaffold | Migration Plan | Monorepo Audit | Convention Profile]"
parameters:
language: "[detected language]"
framework: "[detected framework]"
repo_type: "[single | monorepo | polyrepo]"
health_score: "[0-100]"
health_grade: "[A | B | C | D | F]"
anti_patterns_found: ["[AP-XXX: description]"]
migration_level: "[L1 | L2 | L3 | L4 | L5 | N/A]"
drift_detected: "[none | list]"
Next: Scribe | Gear | Guardian | Sweep | DONE
Reason: [Why this next step]When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.