skills/rx-plan/SKILL.md
Generates versioned improvement plans from rx report results. Creates one plan per dimension that scores below A+ (97). Plans are saved to docs/rx-plans/{domain}/{dimension}/v{N}-{date}-plan.md. Use after running any rx skill, or when the user says "create plan from report", "rx plan", "plan improvements", "generate improvement plan", "what should I fix first", "create roadmap", "improvement plan", "plan from audit", or "next steps from rx".
npx skillsauth add acardozzo/rx-suite rx-planInstall 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.
None (uses git for worktrees)
Check all dependencies: bash scripts/rx-deps.sh or bash scripts/rx-deps.sh --install
Reads rx report results and generates actionable, versioned improvement plans for every dimension scoring below A+ (97). Each plan is traceable to a specific report, ordered by impact, and includes measurable acceptance criteria.
Announce at start: "I'm using rx-plan to generate improvement plans from the {domain} report. Creating plans for dimensions below A+ (97)."
Accepts one of:
arch-rx, sec-rx, code-rx) to read the latest report for that domaindocs/audits/2026-03-15-arch-rx-all.md) to use a specific reportdocs/audits//rx-plan arch-rx
/rx-plan docs/audits/2026-03-15-sec-rx-report.md
/rx-plan
docs/rx-plans/{domain}/{dimension}/ for previous versionsv{N}-{date}-report.md alongside the plandocs/rx-plans/{domain}/summary.md with current progressdocs/rx-plans/dashboard.md with global stateSearch for the report in this order:
docs/audits/*-{domain}-*.mddocs/audits/ sorted by date descending and pick the newestExtract from the report:
arch-rx)For each dimension scoring below 97:
docs/rx-plans/{domain}/{dimension-slug}/ existsv{N} from existing plan filenamesv{N+1}v1Dimension slug convention: lowercase, dash-separated, prefixed with dimension number.
Examples: d01-communication, d02-async-event, d03-resilience
For each below-A+ dimension, create docs/rx-plans/{domain}/{dimension-slug}/v{N}-{date}-plan.md:
# Improvement Plan: {Domain} / {Dimension}
**Version**: v{N}
**Date**: {YYYY-MM-DD}
**Domain**: {rx skill name} (e.g., arch-rx)
**Dimension**: {dimension name} (e.g., D2: Async & Event Architecture)
**Current Score**: {score} ({grade})
**Target Score**: 97+ (A+)
**Gap**: {delta} points
## Previous Versions
| Version | Date | Score | Delta | Status |
|---------|------|-------|-------|--------|
| v1 | 2026-03-15 | 40 (F) | -- | Completed |
| v2 | 2026-03-20 | 72 (C-) | +32 | Completed |
| v{N} (this) | {date} | {score} ({grade}) | {delta from prev} | Planning |
> If this is v1, the table has only one row with Delta = "--".
## Gap Analysis
| Sub-Metric | Current | Target | Gap | Key Blocker |
|------------|---------|--------|-----|-------------|
| M{X}.1 {name} | {score} | 97+ | {delta} | {specific blocker} |
| M{X}.2 {name} | {score} | 97+ | {delta} | {specific blocker} |
| M{X}.3 {name} | {score} | 97+ | {delta} | {specific blocker} |
| M{X}.4 {name} | {score} | 97+ | {delta} | {specific blocker} |
## Steps (ordered by impact)
### Step 1: {Action} -> +{N} points on M{X}.{Y}
- **What**: {Concrete action -- what exactly to implement or change}
- **Where**: {File paths -- specific files/directories to modify}
- **Why**: {Framework reference -- POSA/EIP/WCAG/OWASP/12-Factor/etc.}
- **How**:
{Code example, command, or configuration snippet}
- **Acceptance Criteria**:
- [ ] {Measurable criterion 1}
- [ ] {Measurable criterion 2}
- **Effort**: {S/M/L}
- **Depends on**: {Step N or "none"}
### Step 2: {Action} -> +{N} points on M{X}.{Y}
...
> Steps are ordered by point impact descending. If two steps have equal impact,
> order by effort ascending (quick wins first). Include ALL steps needed to reach 97+.
## After Completing This Plan
- Run `/{domain}` to re-evaluate this dimension
- Expected new score: {projected score based on step impacts}
- If score >= 97: dimension is A+, archive this plan
- If score < 97: auto-generate v{N+1} plan with remaining gaps
- Related rx skills to run: {list of complementary rx skills}
## Notes
{Any context from the rx report that's relevant -- detected stack, N/A dimensions,
dependencies on other dimensions, external constraints, etc.}
Copy (or extract) the relevant rx report data to:
docs/rx-plans/{domain}/{dimension-slug}/v{N}-{date}-report.md
This file contains the full rx report (or the relevant dimension section) that generated the plan. This creates an immutable audit trail: every plan version links to the exact report that prompted it.
Create or update docs/rx-plans/{domain}/summary.md:
# {Domain} Progress Tracker
**Last evaluated**: {date}
**Overall score**: {score} ({grade})
| Dimension | Current | Target | Plans | Latest | Status |
|-----------|---------|--------|-------|--------|--------|
| D1 {name} | {score} ({grade}) | 97 (A+) | v{N} | {date} | {In Progress/Planning/Complete} |
| D2 {name} | {score} ({grade}) | 97 (A+) | v{N} | {date} | {status} |
| ... | ... | ... | ... | ... | ... |
> Dimensions at 97+ show Status = "Complete" with no plan version needed.
## Timeline
| Date | Event | Score Change |
|------|-------|-------------|
| {date} | Initial rx report | {score} ({grade}) |
| {date} | v1 plans completed | {score} ({grade}) {+/-delta} |
| ... | ... | ... |
Create or update docs/rx-plans/dashboard.md:
# rx-suite Dashboard
**Last updated**: {date}
## Overall Progress
| Domain | Score | Grade | Dimensions at A+ | Total | Progress |
|--------|-------|-------|-------------------|-------|----------|
| arch-rx | {score} | {grade} | {count}/{total} | {total} | {progress bar} |
| sec-rx | {score} | {grade} | {count}/{total} | {total} | {progress bar} |
| code-rx | {score} | {grade} | {count}/{total} | {total} | {progress bar} |
| ... | ... | ... | ... | ... | ... |
> Progress bar: use filled/empty blocks proportional to A+ percentage.
> Example: 3/11 = 27% -> block chars approximating that percentage
## Active Plans
| Domain | Dimension | Version | Status | Next Action |
|--------|-----------|---------|--------|-------------|
| {domain} | {dimension} | v{N} | {In Progress/Planning} | {Step 1 action summary} |
| ... | ... | ... | ... | ... |
## Completed Dimensions (A+)
| Domain | Dimension | Achieved | Date |
|--------|-----------|----------|------|
| {domain} | {dimension} | {score} (A+) | {date} |
| ... | ... | ... | ... |
## Recommendations
- **Next rx to run**: {domain with stalest report or most active plans}
- **Highest-impact plan**: {domain/dimension with largest gap and smallest effort}
- **Quick wins**: {plans with S effort and significant point gains}
Progress bar rendering:
(dimensions_at_aplus / total_dimensions) * 100{filled}{empty} {percentage}%Plans are always versioned -- never overwrite. Each new plan for the same dimension gets an incremented version number (v1, v2, v3...). Previous versions remain untouched as an audit trail.
Each plan traces to a specific rx report. The report snapshot (v{N}-{date}-report.md)
is saved alongside the plan. This creates full traceability from plan to evidence.
Steps are ordered by point impact. The step that yields the most score improvement comes first. If two steps have equal impact, the one with less effort comes first (quick wins).
Acceptance criteria must be measurable. Every step's acceptance criteria must be verifiable by re-running the rx skill or by checking a concrete artifact (file exists, test passes, config value is set). No subjective criteria like "code is cleaner".
After completing a plan, re-run the rx skill to verify. The plan explicitly states which rx skill to run. The new report feeds into the next plan version if gaps remain.
Auto-increment version when re-planning. When rx-plan runs against a dimension
that already has plans, it reads the previous version's score, computes the delta,
and generates v{N+1} with updated gap analysis.
Dashboard is always updated. Every invocation of rx-plan must update both the
domain summary and the global dashboard. These files are the single source of truth
for progress tracking.
One plan per dimension. Never combine multiple dimensions into a single plan file. Each dimension gets its own directory and its own plan versions.
Preserve previous version history. When generating a new plan, the "Previous Versions" table includes ALL prior versions with their scores and deltas, not just the immediately preceding one.
Score 97+ means complete. Dimensions scoring 97 or above are considered A+ and do not get plans. They appear in the dashboard's "Completed Dimensions" table.
Gap analysis is per-sub-metric. The gap analysis table breaks down the dimension score into its constituent sub-metrics, showing exactly where points are lost.
Steps include file paths. Every step must reference specific files or directories in the project. Generic advice like "add error handling" is not acceptable without pointing to where.
Framework references are mandatory. Every step must cite the framework, standard, or pattern that justifies the recommendation (POSA, EIP, OWASP, 12-Factor, CNCF, etc.).
Effort estimates use S/M/L. Small = less than 2 hours, Medium = 2-8 hours, Large = more than 8 hours. These are rough guides for prioritization.
Dependencies between steps are explicit. If Step 3 requires Step 1 to be done first, the dependency is stated. This prevents wasted effort from out-of-order execution.
Report snapshots are dimension-scoped. The saved report snapshot includes the full report context but highlights the specific dimension being planned. If the full report is very large, extract just the relevant dimension section plus the overall scorecard.
N/A dimensions are skipped. If a dimension is scored N/A (100 by convention) in the rx report, no plan is generated for it.
Cross-domain dependencies are noted. If an improvement in one domain (e.g., arch-rx D9 Security) would also improve another domain (e.g., sec-rx D1 Injection), note this in the plan's Notes section.
Projected scores are conservative. When estimating the score after completing a plan, use the lower bound of the expected improvement range. Overpromising undermines trust in the planning system.
development
Prescriptive UX/UI evaluation producing scored opportunity maps for Next.js + shadcn/ui projects. Evaluates user experience against Nielsen Heuristics, WCAG 2.2, Core Web Vitals, Laws of UX, and Atomic Design. Use when: auditing UX quality, evaluating accessibility, reviewing component usage, identifying missing shadcn components, improving form UX, or when the user says "ux audit", "run ux-rx", "evaluate UX", "accessibility check", "improve user experience", "shadcn review", "how to reach A+ UX", or "UX opportunities". Measures 11 dimensions (44 sub-metrics). Fixed stack: Next.js App Router + shadcn/ui + Tailwind CSS. Leverages shadcn registry to recommend ready-to-use components. Outputs per-page scorecards with before/after Mermaid diagrams.
development
Evaluates testing strategy and completeness across 8 dimensions (32 sub-metrics): test pyramid balance, test effectiveness, contract/API testing, UI/visual testing, performance/load testing, test data management, CI integration, and test organization. Produces a scored diagnostic with actionable improvement plans.
development
Code-level security posture evaluation. Scans for OWASP Top 10 vulnerabilities, authentication flaws, injection vectors, authorization gaps, and data protection issues. Complements arch-rx D9 (architectural security) by inspecting actual source code patterns, dependencies, and security configurations. Produces a scored report across 8 dimensions with 32 sub-metrics mapped to OWASP ASVS and CWE references.
testing
Executes rx improvement plans step by step with verification. Reads versioned plans from docs/rx-plans/{domain}/{dimension}/, implements each step, verifies acceptance criteria, then re-runs the rx skill to confirm score improvement. Auto-generates next version plan if target not reached. Use when the user says "execute rx plan", "implement improvements", "rx execute", "fix dimension", "improve score", or references a specific plan file.