plugins/nw/skills/nw-buddy-project-reading/SKILL.md
How the nWave buddy agent reads a project to answer questions — detection, order of inspection, and citation discipline.
npx skillsauth add nwave-ai/nwave nw-buddy-project-readingInstall 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.
The buddy agent answers questions about a project by reading it, not by guessing. Every answer must be traceable to a specific file and line. This skill is the reading protocol.
path:line) so the user can verify.Read in this order. Stop as soon as you have enough context for the current question.
README.md — what is this project, for whom.CLAUDE.md (project root) — how Claude-based tools should behave here.pyproject.toml / package.json / Cargo.toml / equivalent — language, dependencies, versions, scripts.VERSION or the version field in the package manifest.These four files tell you the project's name, language, purpose, and roughly how big it is. Skip nothing here.
BACKLOG.md — the single source of truth for planned work (in nWave projects).CHANGELOG.md — recent user-visible changes.git status — what's in flight right now.git log --oneline -20 — recent direction of travel.If the user's question is "what should I work on next" or "what did we just do", these four are usually the answer.
docs/architecture/architecture-design.md (or similar SSOT file).docs/adrs/ — Architecture Decision Records.docs/feature/ — feature specs with wave subdirectories.The architecture doc is authoritative for design intent. If a claim in the architecture doc contradicts the code, the code is what runs — but the mismatch is itself a finding worth reporting.
ls the top-level dirs.ls src/ (or the project's source root).main.py, index.ts, Main.fs, etc.).A project's directory layout tells you 80% of its architecture in a few seconds: domain/, application/, adapters/, ports/, tests/ means hexagonal. src/, views/, controllers/, models/ means MVC. core/, api/, ui/ means layered.
tests/ or equivalent — top-level directories only, initially.conftest.py / test config — tells you how tests are organized and marked.Tests often document behavior more precisely than prose docs.
Once the question is clear, read the specific files it touches. Don't pre-load.
Answer these as you read:
nWave/ directory, framework-catalog.yaml, BACKLOG.md at root, agents/commands/skills layout, mentions of waves in docs.pyproject.toml, package.json, .csproj, build.sbt, etc.git status or git branch --show-current. Branch name often encodes the current focus.CODEOWNERS if present.Record the answers silently; draw on them when answering.
When reading a feature to answer "what's next?", check for these wave artifacts in order:
| Wave | Artifact Path | Existence Check |
|------|---------------|----|
| DIVERGE | docs/feature/{id}/diverge/recommendation.md | Branch point recommendation exists |
| DISCUSS | docs/feature/{id}/discuss/user-stories.md | User stories written |
| DESIGN | docs/feature/{id}/design/wave-decisions.md | Architecture decisions documented |
| DEVOPS | docs/feature/{id}/devops/wave-decisions.md | CI/CD and deployment decisions documented |
| DISTILL | tests/{test-type-path}/{id}/acceptance/*.feature | BDD test scenarios written (the .feature file is the SSOT) |
| DELIVER | docs/feature/{id}/deliver/roadmap.json | All implementation steps at COMMIT/PASS |
Stop at the first missing artifact — that's where the feature currently is. For features using the old flat model (no wave subdirectories), treat as pre-DIVERGE.
Every concrete claim in an answer must point to a source:
src/des/data/workflows/tdd-deliver.yaml:12)"docs/architecture/architecture-design.md section 3"feature/foo (from git status)"If you're paraphrasing, still cite. If you're guessing, say "I don't see this in the files I've read" and stop — don't fabricate.
When a citation would be noise (trivial claims like "this is a Python project"), omit it. When a claim is load-bearing, always cite.
node_modules/, .venv/, build/, dist/, target/, lock files (unless the question is about deps).If the user's question requires reading more than ~15 files, or requires running commands, or touches a part of the codebase you can't reach, say so explicitly. Offer a plan: "to answer this I would need to read X, Y, Z — proceed?"
A well-formed answer:
README.md, pyproject.toml, CLAUDE.md — get the elevator pitch and version.BACKLOG.md — get the current priorities.git status + git log --oneline -10 — get the current branch and recent direction.<name> v<version>, a <one-sentence purpose> written in <language>. The current branch is <branch>. Recent commits focus on <summary>. The backlog's top items are <top 3>. (citations for each claim)"Total reading: 4-5 files, under a minute. That's the standard to aim for.
testing
Runs feature-scoped mutation testing to validate test suite quality. Use after implementation to verify tests catch real bugs (kill rate >= 80%).
development
Canonical AT completeness gate — research-anchored 7-category taxonomy (C1-C7) + 15-item mechanical checklist. Paradigm-neutral. Drives acceptance-designer reviewer verdict deterministically.
development
Canonical AT completeness gate — research-anchored 7-category taxonomy (C1-C7) + 15-item mechanical checklist. Paradigm-neutral. Drives acceptance-designer reviewer verdict deterministically.
testing
Methodology for minimizing test count while maximizing behavioral coverage - behavior definition, anti-pattern catalog, consolidation patterns, stopping criterion, coverage-preserving validation