Arkhe-claude-plugins rfc
install
source · Clone the upstream repo
git clone https://github.com/joaquimscosta/arkhe-claude-plugins
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/joaquimscosta/arkhe-claude-plugins "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/doc/skills/rfc" ~/.claude/skills/joaquimscosta-arkhe-claude-plugins-rfc && rm -rf "$T"
manifest:
plugins/doc/skills/rfc/SKILL.mdsource content
RFC Manager
Manage architecture RFCs with 5 operations: create, review, list, update, status.
Argument Parsing
Parse
$ARGUMENTS to determine the action:
| First word | Remaining args | Operation |
|---|---|---|
| | Draft a new RFC |
| | Review an existing RFC |
| (none) | List all RFCs |
| | Update specific RFC sections |
| | Transition RFC status with validation and side effects |
| (empty) | Ask the user which action to perform |
If the first word does not match any action, treat the entire
$ARGUMENTS as a topic and default to create.
RFC Directory Discovery
Used by all operations. Search for RFC files across all convention paths (exclude
*.spec.md companion files):
docs/rfcs/*.md
(jd-docs — detected viadocs/20-architecture/rfcs/*.md
or.jd-config.json
directory)docs/20-architecture/
(arkhe convention).arkhe/rfcs/*.mdarkhe/rfcs/*.md
For create and update, resolve a write directory:
- If jd-docs detected →
docs/20-architecture/rfcs/ - Else if
exists →docs/rfcs/docs/rfcs/ - Else → create
as defaultdocs/rfcs/
Operation: create
Draft a populated RFC — NOT a blank template. Gather context, write a spec, then write a real first draft with honest self-assessment.
- Determine topic from args after
(or ask if empty)create - Gather context — search conversation, research artifacts (
,docs/30-research/
,docs/50-research/
), memory files, relevant source code, and ADRs (docs/research/
,docs/20-architecture/22-adr/
,docs/20-architecture/adr/
). See WORKFLOW.md for detail.docs/adr/ - Confirm scope with user before drafting — present what you found and proposed scope. Use
for meaningful alternatives.AskUserQuestion - Resolve number and slug — discover write directory, glob all convention paths for highest existing number, assign next (zero-padded 4 digits). Confirm title with user, generate kebab-case slug. Both spec and RFC will use
.NNNN-<slug> - Write spec file — read spec template at
. Fill Problem Statement, Key Constraints, Success Criteria, and Scope Boundaries with concrete content. Write to${CLAUDE_SKILL_DIR}/templates/rfc-spec-template.md
. Present to user for confirmation via<dir>/NNNN-<slug>.spec.md
. See WORKFLOW.md for spec guidance.AskUserQuestion - Read RFC template at
for section structure${CLAUDE_SKILL_DIR}/templates/rfc-template.md - Draft populated RFC filling every section with substantive content. See WORKFLOW.md for per-section guidance. Set Author to git user name, Status to
, Date to today.Draft - Append Author's Notes — below Open Questions, record: shortcuts taken, unverified assumptions, areas of uncertainty, low-confidence sections. Aim for 3-8 items. Be specific — these feed the adversarial review. See WORKFLOW.md for confession guidelines.
- Write RFC to
<dir>/NNNN-<slug>.md - Suggest next steps:
for adversarial design review (uses rfc-critic agent)/rfc review <path>
Operation: review
Adversarial review of the RFC using the
rfc-critic agent — a dedicated red-team reviewer that reads the Author's Notes as attack vectors and checks spec alignment.
- Read RFC at the given path (if empty, ask — suggest globbing
anddocs/rfcs/*.md
)docs/20-architecture/rfcs/*.md - Load spec file — check for a companion
alongside the RFC. If found, read it.NNNN-<slug>.spec.md - Discover architecture standards (check in order, use first found):
(arkhe convention).arkhe/roadmap/architecture.md
directory (jd-docs convention)docs/20-architecture/
ordocs/architecture.md
(generic)docs/architecture/- Fall back to general best practices
- Spawn rfc-critic agent — use the Agent tool (subagent_type:
). Pass: the RFC content, spec content (if found), architecture standards (if found). See WORKFLOW.md for delegation details.doc:rfc-critic - Present review output — the agent returns a structured review with confidence score, verdict, concerns by severity (each with evidence citations), and improvements. Display to user.
- Verdict criteria:
- Approve: No critical concerns, minor issues only
- Approve with changes: No critical concerns, has major concerns with clear fixes
- Needs redesign: Has critical concerns or fundamental architecture issues
- Flag missing RFC template sections as Minor concerns
- Suggest next steps:
to address findings/rfc update <path>
Operation: list
List all architecture RFCs with their current status.
- Search all convention paths (see RFC Directory Discovery)
- For each RFC, extract from headers: Number/Filename, Title (from
or first# RFC: [Title]
heading), Status (#
/Draft
/Review
/Approved
/Rejected
— default "Unknown"), Author (default "—"), Date (default "—")Superseded - Output markdown table sorted by number descending (newest first):
# Architecture RFCs | # | Title | Status | Author | Date | |---|-------|--------|--------|------| **Summary**: X total — Y Draft, Z Review, W Approved
- If no RFCs found, suggest
/rfc create <topic>
Operation: update
Re-draft specific sections of an existing RFC based on new context or feedback.
- Read RFC at the given path (if empty, ask for path)
- Identify sections to update:
- If user specified sections in conversation, update those
- If invoked after a
, use review findings to identify sections needing changes/rfc review - Otherwise, ask the user which sections to revise
- Gather fresh context from conversation, research, and codebase for the sections being updated
- Re-draft sections — rewrite identified sections with improved content. Preserve all unchanged sections exactly as-is.
- Update Date to today. Keep Status unchanged unless user requests a transition.
- Handle Author's Notes — if status transitions to Approved, strip the Author's Notes section entirely. If major sections were re-drafted, refresh the confessions. See WORKFLOW.md for lifecycle rules.
- Check spec alignment — if a companion
file exists and the update touches Goals, Non-Goals, or Architecture Overview, verify the RFC still aligns with the spec. Flag drift to the user..spec.md - Show diff summary — list which sections were changed and a brief description of each change
- Suggest next steps:
to verify the updates/rfc review <path>
Operation: status
Transition RFC status with validation, warnings, and side effects.
- Find RFC — resolve number to file path by globbing all convention paths for
. Read current status fromNNNN-*.md
field.**Status**: - Validate transition — check against valid transitions. Warn (but allow) on unusual paths:
- Valid: Draft → Review → Approved/Rejected, any → Superseded
- Warn: Draft → Approved (skipping Review), Approved → Draft (going backwards)
- On warning, use
to confirmAskUserQuestion
- Apply status change — update
field in the RFC**Status**: - Side effects:
- → Approved: Strip
section entirely## Author's Notes
- → Approved: Strip
- Confirm — show old status → new status, side effects applied
Valid statuses: Draft | Review | Approved | Rejected | Superseded
Note: The
update operation still handles inline status changes during content updates. Use /rfc status for dedicated status transitions with validation.
Quality Standards
- Every section must contain real content, not placeholder text like
[describe here] - Reference specific files, packages, and patterns from the codebase
- If a section doesn't apply, state that explicitly with a one-line rationale
- Drafts should be good enough to review immediately, not skeletons to fill in later
Progressive Disclosure
- WORKFLOW.md — detailed per-operation workflows
- EXAMPLES.md — usage examples for all operations
- TROUBLESHOOTING.md — common issues and solutions