nWave/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
Acceptance test creation methodology for the DISTILL wave. Domain knowledge for the acceptance designer agent: port-to-port principle, prior wave reading, wave-decision reconciliation, graceful degradation, and document back-propagation.
development
Cross-agent collaboration protocols, workflow handoff patterns, and commit message formats for TDD/Mikado/refactoring workflows
development
Creates a phased roadmap.json for a feature goal with acceptance criteria and TDD steps. Use when planning implementation steps before execution.
testing
Acceptance test creation methodology for the DISTILL wave. Domain knowledge for the acceptance designer agent: port-to-port principle, prior wave reading, wave-decision reconciliation, graceful degradation, and document back-propagation.