ai/claude/skills/analyze-project/SKILL.md
Analyze a project's codebase and populate scaffolded .claude/CLAUDE.md and .claude/rules/ files with project-specific conventions. Run after scaffolding a new project.
npx skillsauth add otto-nation/otto-workbench analyze-projectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reads the codebase and proposes content for scaffolded .claude/CLAUDE.md and .claude/rules/ files.
Run with /analyze-project after otto-workbench ai init scaffolds a new project.
Three sequential phases. Execute in order. Do not skip phases.
DISCOVER --> PROPOSE --> APPLY
Goal: Understand the project structure, conventions, and patterns.
cat .claude/CLAUDE.md
ls .claude/rules/
For each rule file in .claude/rules/, read it and note which sections are empty.
Use Glob and Grep to understand:
Project identity:
go.mod, package.json, build.gradle.kts, etc.)Key paths:
Dev workflow:
.github/workflows/, .gitlab-ci.yml, etc.)Code patterns:
Existing conventions:
.eslintrc, .golangci.yml, etc.) — these encode existing rules.editorconfig, prettier, formatting configs.claude/CLAUDE.md)A structured list of findings organized by target file:
Goal: Present proposed content for each file. Get user confirmation before writing.
For each file that needs content, present a proposal:
## .claude/CLAUDE.md
### Description (proposed)
> <1-2 sentence project description>
### Dev workflow (proposed)
> - Build: `<command>`
> - Test: `<command>`
> - Lint: `<command>`
### Key paths (proposed)
> - Source: <path>
> - Tests: <path>
> - Config: <path>
> - Generated: <path> (do not edit)
### Notes (proposed)
> - <architectural constraint or dependency>
> - <anything that would burn someone unfamiliar>
## .claude/rules/conventions.md (proposed)
> - <convention derived from codebase analysis>
> - <convention derived from linter config>
## .claude/rules/testing.md (proposed)
> - <testing pattern observed>
## .claude/rules/<language>.md (proposed)
> - <language-specific convention>
RunTx for database writes" is useful. "Follow best practices" is not.Present all proposals, then ask the user which to apply. The user may accept all, reject some, or edit before applying.
Goal: Write confirmed content to the scaffolded files.
For each confirmed proposal:
After all writes:
otto-workbench ai init scaffolds a new projectotto-workbench ai init --force re-scaffolds an existing project.claude/CLAUDE.md or .claude/rules/ files have empty sections.claude/CLAUDE.md — project description, workflow, key paths, notes.claude/rules/*.md — project-specific conventionstesting
Analyze PR review comments to identify gaps in coding rules. Fetches comments from all registered repos, classifies them against existing rules, and proposes specific rule additions or refinements.
testing
Address incoming PR review comments: fetch, verify, fix, and reply. Works with human and bot reviewers.
development
Reviews accumulated Claude Code memories for promotion into durable workbench artifacts — lint rules, scripts, coding rules, hooks. Prioritizes mechanical enforcement over prose.
tools
Manage GitHub PR review lifecycle: analyze unanswered threads, update review files, and post replies. Initial posting is handled by the review-post script.