/gaia-nfr
user-facingWhat it does
/gaia-nfr produces a structured non-functional requirements assessment covering four dimensions: performance, security, reliability, and scalability. Each dimension receives a risk rating (high, medium, or low) with mandatory justification explaining why that level was chosen. For brownfield projects, it also assesses migration risks.
When to use it
- You need to assess quality attributes (latency targets, throughput requirements, availability SLAs, security requirements) before or during implementation.
- You want to identify performance-sensitive paths and bottleneck candidates in your architecture.
- You are onboarding a brownfield project and need to assess migration risks alongside standard NFRs.
Prerequisites
- PRD and architecture documents are recommended. The command reads NFRs from
.gaia/artifacts/planning-artifacts/prd.mdand.gaia/artifacts/planning-artifacts/architecture.md. Without them, a generic assessment based on common patterns is produced.
Orchestration mode
When /gaia-nfr starts in subagent mode (Mode A -- the default), the framework emits a one-shot warning to your conversation. The warning text:
────────────────────────────────────────────────────────────────────────────
GAIA orchestration: running in subagent mode (Mode A)
The skill you're invoking belongs to a class (heavy-procedural or
conversational) whose output benefits from cross-step context. Mode A
dispatches each sub-agent in its own forked context, so context may
be lossy between steps — sub-agents return summaries, not full reasoning.
For the full-fidelity experience, enable Mode B (Agent Teams):
1. Set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in your environment.
2. Add orchestration.mode: team to .gaia/config/project-config.yaml.
Mode B uses persistent teammates that preserve in-conversation state
across dispatches.
This warning is shown once per session.
────────────────────────────────────────────────────────────────────────────
Why Mode B is better for this command
The /gaia-nfr skill declares orchestration_class: heavy-procedural in its SKILL.md frontmatter. Heavy-procedural skills produce output that benefits from cross-step context -- under Mode A every sub-agent dispatch runs in its own forked context and can only return a summary back to the orchestrator, losing the full reasoning trace of every prior step. Mode B uses persistent teammates that retain in-conversation state across dispatches, so each agent's contribution can build on what was said before instead of receiving only a summary.
How to enable Mode B
Both steps are required. If either is missing, the framework falls back silently to Mode A and the warning fires again on the next session.
Step 1 -- set the environment variable:
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Add this to your shell rc file to persist across sessions, or set it in Claude Code's settings.json.
Step 2 -- add the YAML block to .gaia/config/project-config.yaml:
orchestration:
mode: team
One-shot semantics
The warning is emitted once per Claude Code session. A marker file at _memory/checkpoints/orchestration-warning-shown.<session-id> suppresses the warning for the rest of the session. Starting a new session re-emits the warning once.
How to invoke
/gaia-nfr
/gaia-nfr E3-S7
What it does step by step
- Load NFRs Reads non-functional requirements from the PRD and architecture document (response time targets, throughput, availability SLAs, security requirements, data protection obligations).
- Performance assessment Evaluates P50/P95/P99 latency, throughput, and resource limits. Rates risk level with justification.
- Security assessment Evaluates authentication, authorization, data protection, and compliance. Rates risk level with justification.
- Reliability assessment Evaluates availability targets, failure recovery, data durability, and monitoring. Rates risk level with justification.
- Scalability assessment Evaluates horizontal/vertical scaling, data growth, and geographic distribution. Rates risk level with justification.
- Migration assessment (conditional) Activated for brownfield projects. Evaluates data migration, API compatibility, and rollback risks.
- Write report Produces the assessment at
.gaia/artifacts/test-artifacts/nfr-assessment.md.
Inputs
| Input | Source | Description |
|---|---|---|
| PRD | .gaia/artifacts/planning-artifacts/prd.md | NFR definitions and targets. |
| Architecture | .gaia/artifacts/planning-artifacts/architecture.md | System design for bottleneck analysis. |
Outputs
| Output | Location | Description |
|---|---|---|
| NFR assessment | .gaia/artifacts/test-artifacts/nfr-assessment.md | Per-dimension risk ratings with justification and recommendations. |
Example session
> /gaia-nfr
Loading NFRs from prd.md and architecture.md...
Performance: MEDIUM -- P95 latency target of 200ms is achievable with current
architecture, but the report aggregation endpoint lacks pagination
and may degrade under load.
Security: HIGH -- Authentication uses JWTs but token rotation is not
implemented. No rate limiting on the login endpoint.
Reliability: LOW -- Single-region deployment with daily backups meets the 99.5%
SLA target.
Scalability: MEDIUM -- Horizontal scaling via container orchestration is
designed but not load-tested.
Written to .gaia/artifacts/test-artifacts/nfr-assessment.md
What to run next
/gaia-test-strategy-- design tests covering the assessed NFRs./gaia-perf-testing-- create a performance test plan for high-risk performance items.
Troubleshooting
Generic assessment produced
Neither PRD nor architecture document was found. Create them with /gaia-create-prd and /gaia-create-arch for a more targeted assessment.
I keep seeing the GAIA orchestration warning every time I start this command
The warning is shown once per session, so if it fires again that's a new session -- not a per-skill repeat. If you want to silence it entirely, enable Mode B (full-fidelity orchestration via Agent Teams). Both of these conditions must be true:
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSreturns1(not empty).gaia/config/project-config.yamlcontains:orchestration: mode: team
If either is missing the framework silently uses Mode A and re-emits the warning each session.