NFR Tracker — Operational Readiness Auditor
Purpose
Meta-command that discovers all project documents, checks existence and freshness, and produces a readiness dashboard with prioritized recommendations for what to create or update next.
Process
Step 1: Detect Project Context
Read these files to understand the project:
CLAUDE.local.md— project name, type, architecture, folder structure.sync-watch.json— registered documents and watch directories- Run
ls -Ron the project root to discover all files
Determine the product lifecycle stage from context:
- Ideate/Build — pre-production (DR/IRP not yet required)
- Production — live product (DR/IRP required)
- Mixed — some components live, some building (e.g., ProductA production + ProductB ideate)
Step 2: Scan Document Registry
Check for each document type. For each, record: exists (Y/N), path, last modified date, stale (Y/N based on threshold).
Document registry:
| Document Type | Source Skill | File Pattern | Required When | Staleness |
|---|---|---|---|---|
| PRD | /prd-generator |
PRD/*.html, PRD/*.md |
Always | 30 days |
| Project Memory | (auto) | CLAUDE.local.md |
Always | 7 days |
| Presentation | /project-docs |
Presentations/*.html |
Recommended | 30 days |
| Architecture Map | /project-docs |
Architecture/*.html, *Architecture*.html |
If PRD has architecture section | 60 days |
| Stakeholder Directory | /project-docs |
Data/Stakeholder*.xlsx, Data/Stakeholder*.md |
If >5 stakeholders | 30 days |
| Change Log | /change-log |
Data/Change-Log*.md |
Recommended | 14 days |
| ARB Presentation | /arb-review |
Presentations/ARB-*.html |
Before architecture review | 90 days |
| DR Plan | /dr-plan |
Operational/DR-Plan*.html |
Production | 180 days |
| Incident Response Plan | /irp |
Operational/IRP-*.html |
Production | 180 days |
| Recovery Procedures | /recovery-plan |
Operational/Recovery-*.html |
If DR Plan exists | 180 days |
| Verification Report | /project-docs |
Verification/*.md |
Before milestones | 60 days |
Staleness calculation: Compare file modification date to today. If (today - last_modified) > threshold, mark as STALE.
Search strategy: Use glob patterns first. If the project uses non-standard paths (from CLAUDE.local.md folder structure), adapt the search. Example: Some projects store PRDs in non-default paths like ProductB-Control-Framework/PRD/ not PRD/.
Step 3: Assess Completeness (Optional Deep Check)
If --deep flag or user requests "thorough check":
For each FOUND document, open it and check for key sections:
- PRD: Has executive summary, requirements, timeline, risks? Missing sections = partial.
- DR Plan: Has RTO/RPO targets, scenarios, procedures? Missing = partial.
- IRP: Has severity matrix, escalation contacts, playbooks? Missing = partial.
Without --deep, existence + freshness is sufficient.
Step 4: Generate Recommendations
Prioritize missing/stale documents:
Priority logic:
- CRITICAL — Production product missing DR or IRP
- HIGH — Any required document missing or stale >2x threshold
- MEDIUM — Recommended document missing or stale >1x threshold
- LOW — Optional document missing
Each recommendation includes:
- What to create/update
- Why it matters
- The slash command to run
Step 5: Output Report
Console output (default):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NFR TRACKER ► READINESS REPORT — {Project Name}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Lifecycle: {Production / Ideate / Mixed}
Scanned: {timestamp}
| Document | Status | Path | Updated | Stale? |
|-----------------------|---------|-------------------|------------|--------|
| ... | FOUND | ... | YYYY-MM-DD | No |
| ... | MISSING | — | — | — |
| ... | FOUND | ... | YYYY-MM-DD | STALE |
Coverage: N/M ({pct}%) Stale: N Missing: N
Recommendations:
1. [{priority}] {description}
→ Run: /{command}
...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Markdown file output (with --format md):
Write to Operational/Readiness-Report-{YYYY-MM-DD}.md with the same content plus a header with project metadata.
Modes
/nfr-tracker— Full audit, console output/nfr-tracker --format md— Write report to file/nfr-tracker --deep— Check document completeness, not just existence/nfr-tracker --scope {name}— Filter to a specific product/instance within the project
Critical Rules
- Read-only. This skill never creates or modifies documents. It only reports.
- Adapt paths. Don't assume standard folder structure. Read CLAUDE.local.md for actual paths.
- No false positives. Only mark FOUND if the file has real content (>100 bytes). Empty scaffolds don't count.
- Date accuracy. Use file system modification date, not content parsing, for freshness checks.