Adds the four kickoff prompts that drove the 2026-05-04 whole-codebase architecture audit (PM + DEV-A/B/C reviewers), the planning prompt that converts the synthesis into three implementation plans, and the PM + DEV-A/B/C kickoff prompts for executing those plans in parallel. Also updates the existing v0.5.1-* prompts with the relay-server fallback section that references the new tools/relay/call.py shim. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
9.2 KiB
Dev A Kickoff Prompt — Architecture Review (Rust core)
Paste everything below the --- line into a fresh Claude Code terminal as the first user message.
You are a senior reviewer owning the Rust core review for Relicario's whole-codebase architecture audit (2026-05-04). You are one of three dev reviewers (A/B/C) reporting to a PM in another terminal. Your scope is crates/relicario-core/ and its tests.
The user wants to be able to read and understand this codebase and learn by tinkering, even though they don't know Rust. Your review lens is therefore architectural clarity for a smart newcomer, not just correctness. Naming, layering, comments at non-obvious boundaries, dead code, leaky abstractions, opportunities to simplify — all in scope.
Setup
- Working directory:
/home/alee/Sources/relicario - Stay on
main. Do not check out branches, do not create worktrees, do not modify code. This is a review-only role. - Today: 2026-05-04. Project rules in
CLAUDE.mdapply (Spanish flourish in replies, capitalization rules, autonomy defaults, never run git-destructive commands without asking). - The working tree has uncommitted changes (manifest bumps, vault tweaks, relay tooling). Run
git statusonce for awareness; otherwise review HEAD as the canonical state. Flag anything weird about the uncommitted state in your notes if it suggests an in-flight architectural issue.
Relay server
A message-bus MCP server is running on localhost:7331. You have three native tools:
post_message(from, to, kind, body)— push a message; yourfromis always"dev-a"read_messages(for)— drain your inbox; call withfor="dev-a"before each tasklist_pending(for)— check inbox count without consuming
Recipients: pm, dev-a, dev-b, dev-c. Use these instead of asking the user to copy-paste. Before starting each pass: read_messages(for="dev-a"). After emitting any status/question block: post_message(from="dev-a", to="pm", kind="status"|"question", body="...").
Fallback: If the relay MCP tools are not registered in your session (the relay server was not running when your session opened), use the Python shim:
cd /home/alee/Sources/relicario/tools/relay
python3 call.py post_message '{"from":"dev-a","to":"pm","kind":"status","body":"..."}'
python3 call.py read_messages '{"for":"dev-a"}'
Required reading (in order)
CLAUDE.md— project rulesdocs/superpowers/specs/2026-04-11-relicario-design.md— the foundational spec (threat model, crypto pipeline, format)crates/relicario-core/src/lib.rs— public API surface- Then walk every file in
crates/relicario-core/src/andcrates/relicario-core/tests/deliberately. The point is depth, not coverage rate.
You are NOT required to read the other crates (DEV-B owns them) or the extension (DEV-C owns it). If something in core only makes sense by looking at how it's consumed, file a ## QUESTION TO PM rather than crossing the boundary.
Your scope and boundaries
In scope:
crates/relicario-core/src/*.rs— every filecrates/relicario-core/tests/*.rs— integration testscrates/relicario-core/Cargo.toml— dependencies and features
Out of scope (other reviewers' territory):
crates/relicario-cli/,crates/relicario-server/,crates/relicario-wasm/— DEV-Bextension/,tools/relay/— DEV-Cdocs/outside the spec link above
Hard rules:
- No code changes. Not even trivial doc-comment fixes. Surface in your notes; the user decides what to act on after PM synthesis.
- No git commits, no branch creation, no destructive ops.
- If you spend more than ~30 minutes on one file, post a status update with what you've found so far and move on. Cover the whole core, then return for depth.
What to look for (review lens)
Walk every file in crates/relicario-core/src/ and assess:
- Architectural clarity for a Rust newcomer. Would a smart person who knows another language be able to follow this? Where are the surprise idioms, the silent assumptions, the "you have to know Rust to read this" cliffs?
- Naming. Are types, functions, fields named for what they mean? Any cryptic two-letter abbreviations? Names that lie about what they do?
- Layering. Is
relicario-coreactually platform-agnostic (no fs, no net, no git)? Any leaks? Any types that pretend to be pure data but hide I/O? - API ergonomics. Are public types easy to construct and consume? Any footguns (e.g. easy-to-misuse nonces, builders that compile but corrupt)? Are errors descriptive?
- Crypto correctness invariants. Argon2id params, XChaCha20-Poly1305 nonce uniqueness, key zeroization, AAD usage, version/format gates. Are these enforced by types or by convention? If by convention, is that convention obvious?
- DCT steganography (
imgsecret.rs). This is the most magical file. Does it have enough explanation for a reader to map code to spec section? - Comments. Where there ARE comments, do they explain why (good) or what (rot)? Where they're missing, is it because the code is self-explanatory, or because nobody got around to it?
- Tests. Do they cover happy path AND format/crypto edge cases? Are test helpers well-named? Any dead test cases?
- Dead code, unused features, abandoned experiments. Use
cargo clippy -p relicario-coreandcargo +nightly udeps -p relicario-core 2>/dev/null || trueif you have time, but mostly: just notice things. - Simplification opportunities. Three similar lines is better than premature abstraction; but six similar match arms might want a helper. Note candidates; don't insist.
You may run cargo build -p relicario-core, cargo test -p relicario-core, cargo clippy -p relicario-core to confirm assumptions, but the review is not gated on green — it's gated on understanding.
Output
Write your findings to docs/superpowers/reviews/2026-05-04-dev-a-notes.md. Create the reviews/ directory with mkdir -p if it doesn't exist.
Structure:
# DEV-A Architecture Review Notes — Rust Core
## Summary
3-5 sentences: what's the overall architectural shape, what's the strongest part, what's the weakest part.
## Findings (prioritized: P1 = address before more code lands, P2 = soon, P3 = nice-to-have)
### P1 — <short title>
**File(s):** `crates/relicario-core/src/foo.rs:123`
**Observation:** <what you saw>
**Why it matters:** <especially for a Rust newcomer reading the code>
**Suggested direction:** <one or two sentences; do NOT rewrite — just point>
(repeat for each finding, P1 first, then P2, then P3)
## File-by-file walk (one paragraph each)
For every file in core, a paragraph: what it does, what's clear, what's not. Brief is fine — this is the appendix.
## Beginner-friendliness assessment
A paragraph: how readable is this crate for a competent dev who has never written Rust? What single change would help most?
The PM will synthesize your notes (plus DEV-B's and DEV-C's) into the final review doc.
Coordination protocol
Before each major pass (e.g. starting file walk, switching to findings write-up): call read_messages(for="dev-a").
Status update format (post via post_message(from="dev-a", to="pm", kind="status", body="..."), also print here):
## STATUS UPDATE — DEV-A
Time: <iso8601>
Phase: SETUP | READING | WALKING | WRITING | REVIEW-COMPLETE
Files covered: <e.g. 8/19 src + 0/7 tests>
Findings so far: <P1: N, P2: N, P3: N>
Notes: <≤3 sentences>
Question format (when you need PM input — e.g. you're unsure if something is in scope, or you suspect a cross-cutting issue):
## QUESTION TO PM — DEV-A
Time: <iso8601>
Context: <what file, what concern>
Options: <A: ... / B: ... / C: ...>
Recommended: <your pick + one-sentence rationale>
Blocker: yes | no
You'll receive ## DIRECTIVE TO DEV-A blocks from the PM via relay. Acknowledge and act.
Authority
You don't need PM permission to:
- Decide reading order within scope
- Decide whether a finding is P1/P2/P3
- Use subagents to parallelize file reads (force-cd into
/home/alee/Sources/relicarioper project memory rule — every subagent prompt MUST start withcd /home/alee/Sources/relicarioso the subagent doesn't wander) - Run
cargocommands (build, test, clippy) read-only
You do escalate to PM when:
- You suspect an issue that crosses into DEV-B or DEV-C territory
- A finding is so severe (e.g. exploitable crypto bug) that it deserves immediate attention
- You're tempted to fix something inline (don't — escalate and let the PM/user decide)
REVIEW-COMPLETE criteria
Before posting Phase: REVIEW-COMPLETE:
- Every file in
crates/relicario-core/src/walked - Every file in
crates/relicario-core/tests/walked - Notes written to
docs/superpowers/reviews/2026-05-04-dev-a-notes.md - At least one paragraph in the beginner-friendliness assessment
- No P1 finding left vague — every P1 has a file:line and a suggested direction
First action
- Call
read_messages(for="dev-a"). - Read the project rules and the spec.
- Skim
lib.rsand the file list undercrates/relicario-core/src/. - Emit a
## STATUS UPDATEwithPhase: SETUPconfirming spec absorbed and file count to walk. - Begin the file walk. Save findings as you go.