How the nWave buddy agent reads a project to answer questions — detection, order of inspection, and citation discipline.
npx skills add https://github.com/nWave-ai/nWave --skill nw-buddy-project-reading
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.
Generate clinical trial protocols for medical devices or drugs. This skill should be used when users say "Create a clinical trial protocol", "Generate protocol for [device/drug]", "Help me design a clinical study", "Research similar trials for [intervention]", or when developing FDA submission documentation for investigational products.
Orchestrates end-to-end autonomous AI research projects using a two-loop architecture. The inner loop runs rapid experiment iterations with clear optimization targets. The outer loop synthesizes results, identifies patterns, and steers research direction. Routes to domain-specific skills for execution, supports continuous agent operation via Claude Code /loop and OpenClaw heartbeat, and produces research presentations and papers. Use when starting a research project, running autonomous experiments, or managing a multi-hypothesis research effort.
Multi-agent research skill for parallel research execution (10 agents, battle-tested with real case studies).
Generate and prioritize US equity long-side edge research tickets from EOD observations, then export pipeline-ready candidate specs for trade-strategy-pipeline Phase I. Use when users ask to turn hypotheses/anomalies into reproducible research tickets, convert validated ideas into `strategy.yaml` + `metadata.json`, or preflight-check interface compatibility (`edge-finder-candidate/v1`) before running pipeline backtests.
Use this skill when building or modifying Minecraft server plugins for Paper, Spigot, or Bukkit, including plugin.yml setup, commands, listeners, schedulers, player state, team or arena systems, persistent progression, economy or profile data, configuration files, Adventure text, and version-safe API usage. Trigger for requests like "build a Minecraft plugin", "add a Paper command", "fix a Bukkit listener", "create plugin.yml", "implement a minigame mechanic", "add a perk or quest system", or "debug server plugin behavior".
Internal guidance for composing Codex and GPT-5.4 prompts for coding, review, diagnosis, and research tasks inside the Codex Claude Code plugin
Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, or model upgrade and prompt-upgrade guidance; use OpenAI docs MCP tools for non-Codex docs questions, use the Codex manual helper first for broad Codex self-knowledge, and restrict fallback browsing to official OpenAI domains.
This skill should be used when designing autonomous agent harnesses: research loops, evaluation scaffolds, locked and editable surfaces, durable logs, novelty gates, pruning, rollback, PR preparation, and human approval boundaries.
Take nwave-ai/nw-buddy-project-reading from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.