Imported from zernie/vigiles (
.claude/skills/audit-feedback-loop/SKILL.md) via skills.sh. Install upstream withnpx skills add zernie/vigiles --skill audit-feedback-loop. Copyright stays with the author.
Scan the current repository and score its feedback loop maturity for AI-assisted development.
Instructions
Analyze this repository and score its feedback loop maturity using the levels below. Check for each signal, then output a summary report.
Maturity Levels
Level 0 — Vibes No CI config, no linter rules, no CLAUDE.md. The AI agent is flying blind.
Level 1 — Guardrails Has CI + standard linters, but no custom rules. The agent gets basic feedback but can't learn project-specific conventions.
Level 2 — Architecture as Code Has custom lint rules, CLAUDE.md rules have enforcement annotations. The agent gets rich, project-specific feedback.
Level 3 — The Organism Has CI + custom rules + screenshot/visual tests + observability + scheduled agent tasks. The entire development loop is instrumented.
Signals to Check
Scan the repository for the following and note which exist:
- CI Configuration: Look for
.github/workflows/,.circleci/,Jenkinsfile,.gitlab-ci.yml,bitbucket-pipelines.yml,.travis.yml, etc. - Linter Config (language-aware):
- JS/TS:
eslint.config.*,.eslintrc*,biome.json,.prettierrc*,deno.json - Python:
pyproject.toml(look for[tool.ruff],[tool.pylint],[tool.flake8]),setup.cfg,.flake8,ruff.toml - Rust:
clippy.toml,.clippy.toml,rustfmt.toml - Go:
.golangci.yml,.golangci.yaml - Ruby:
.rubocop.yml - Java/Kotlin:
checkstyle.xml,pmd.xml,detekt.yml
- JS/TS:
- Custom Lint Rules: Look for custom plugins, rule directories, or inline rule definitions in linter configs
- JS/TS:
eslint-plugin-*,eslint-rules/directories - Python: custom Ruff/Pylint plugins, AST-based checks
- Rust: custom Clippy lints
- Go: custom analyzers
- JS/TS:
- CLAUDE.md: Check if
CLAUDE.mdexists at the repo root - CLAUDE.md Enforcement: Check if using vigiles v2 specs (
CLAUDE.md.spec.tsexists) or v1 annotations (**Enforced by:**in CLAUDE.md). v2 specs = higher maturity. - Type-Safe Specs: Check for
CLAUDE.md.spec.tsor*.spec.tsfiles — indicates typed spec compilation via vigiles v2 - Generated Types: Check for
.vigiles/generated.d.ts— indicates linter rules are type-checked at authoring time - Screenshot/Visual Tests: Look for Playwright (
playwright.config.*), Cypress (cypress.config.*), Chromatic, Percy, BackstopJS configs - Observability: Search for imports/usage of
@sentry/,dd-trace,@datadog/,newrelic,@opentelemetry/,sentry_sdk,structlog,tracing(Rust),opentelemetryin source files - Scheduled Agent Tasks: Look for cron patterns in CI configs,
.github/workflows/withschedule:triggers, or references to scheduled Claude Code tasks
Output Format
## Feedback Loop Audit
**Repository:** <repo name>
**Primary language(s):** <detected languages>
**Score: Level X — <Name>**
### Signals Found
- [x] CI Configuration: <details>
- [ ] Custom Lint Rules: not found
- [x] CLAUDE.md: found, 5 enforced / 2 guidance / 1 missing
...
### Recommendations
1. <Most impactful next step to level up>
2. <Second recommendation>
3. <Third recommendation>
### How to Level Up
<Specific, actionable advice for reaching the next maturity level>
Be specific about file paths and what you found. Give actionable recommendations tailored to the project's language and toolchain.
