agentsclimarketplace

Rfc

Skill mirkobozzetto/arsenal/plugins/rfc/skills/rfc

Mirko Bozzetto's curated skills for AI coding agents (Claude Code, Codex, Cursor, ...)

Install
npx -y skills add mirkobozzetto/arsenal --skill rfc

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Multi-step RFC (Request For Comments) workflow for Claude Code. Forces reasoning before action: problem → alternatives → tradeoffs → design → risks → recommendation → impl plan. Use when user says "RFC", "write an RFC", "design doc", "propose a", "before implementing", or when decision crosses a boundary (system/team/version). Integrates GitNexus codebase context, Exa research, adversarial review subagent.

SKILL.md

5.6 KB, as published. Nobody here has run it

<objective> Produce a complete RFC document via 10 disciplined micro-steps. Each step focuses on one phase, persists state in frontmatter, and never converges to a plan before alternatives + tradeoffs are explicit. </objective>

<when_to_use>

  • Decision crosses a boundary: between systems, teams, versions, or expectations
  • Architecture choice, migration, system-wide refactor, new pattern
  • Multiple valid solutions exist → wrong direction = expensive rework
  • User wants reasoning preserved, not only the final plan

Don't use for: trivial refactors, single-file fixes, doc-only changes. Use ship or direct edit instead. </when_to_use>

<parameters> - `<short title>`: RFC title (required). Used to generate slug. - `--auto`: skip AskUserQuestion confirmations between steps - `--scope <path>`: limit codebase context gathering to a path (default: repo root) - `--no-review`: skip step-08 adversarial review - `--out <dir>`: output dir (default: `docs/rfcs/` if git repo, else `~/.claude/rfcs/`) </parameters>

<state_variables>

  • rfc_id: 4-digit zero-padded (0001, 0002, ...)
  • rfc_slug: kebab-case from title
  • rfc_dir: absolute path <out>/NNNN-slug/
  • rfc_path: <rfc_dir>/RFC.md
  • auto_mode: boolean
  • scope_path: path for codebase exploration
  • skip_review: boolean
  • status: Draft | Review | Accepted | Rejected
  • context_collected: object (symbols, files, prior art from GitNexus/grep)
  • problem, motivation: strings
  • alternatives: array of {name, summary, pros, cons}
  • design: object (architecture, data model, API, modules touched)
  • drawbacks, risks, open_questions: arrays
  • recommendation: string + rationale
  • impl_plan: ordered task list
  • review_findings: array (from step-08)
  • stepsCompleted: array (tracks progress in frontmatter) </state_variables>

<entry_point> Load steps/step-00-init.md </entry_point>

<step_files>

StepFilePurpose
00steps/step-00-init.mdParse args, create RFC dir, init frontmatter
01steps/step-01-context.mdGather codebase context (GitNexus + grep)
02steps/step-02-problem.mdDefine problem statement + motivation (interview)
03steps/step-03-alternatives.mdSurface alternatives + tradeoffs
04steps/step-04-design.mdProposed design: modules, data, API
05steps/step-05-risks.mdDrawbacks, risks, unknowns
06steps/step-06-recommendation.mdRecommendation + rationale
07steps/step-07-impl-plan.mdImplementation plan (ordered tasks)
08steps/step-08-review.mdAdversarial review via subagent (optional)
09steps/step-09-finalize.mdFinalize, set status, summarize
</step_files>
<references> | File | Content | |------|---------| | references/rfc-template.md | Markdown template: 11 sections | | references/interview-questions.md | Question bank per step (problem, alternatives, design) | </references> <integrations> - **GitNexus**: `mcp__gitnexus__query`, `mcp__gitnexus__context`, `mcp__gitnexus__impact` for codebase exploration - **Exa**: `mcp__exa__web_search_exa`, `mcp__exa__get_code_context_exa` for prior art / industry patterns - **Subagents**: `Agent(subagent_type=general-purpose)` for adversarial review (step-08) - **brain skill**: optional save to Obsidian vault after acceptance </integrations> <interaction> - **Default is interactive. Ask, do not infer.** Without `--auto`, the real input questions (problem, scope, goals/non-goals, alternatives direction, design choices) MUST be asked via AskUserQuestion. NEVER infer or assume an answer the user can give. Inference is allowed ONLY when `auto_mode` is true. "AskUserQuestion or infer" anywhere in the steps means: ask; infer only under `--auto`. - **Input questions vs proceed-confirmations.** Keep asking for INPUT (what the user decides). Do NOT gate the user with empty "continue to the next step?" confirmations between steps - real RFC practice (Rust, Oxide, Google, ADR) has the author write the whole doc then others review; it never asks the author for permission to proceed. Default: flow to the next step and state in one line what was written; the user says "stop" or "revise X" to loop back. The genuine decision points stay: the adversarial review findings (step-08) and the final status (step-09). - **Speak in prose, write markdown to the file.** Talk to the user in short prose, in the conversation language. Do NOT dump the raw section markdown destined for RFC.md into the chat; write it to the file and report one line per section. - **Language.** Converse and write the RFC prose in the conversation language (French if the user writes French). Keep in English: frontmatter keys/values, section numbers and titles, the Implementation Plan table columns, the `graph TD` block, and code identifiers (the structural anchors ship/next parse). </interaction> <critical> RFC ≠ Plan. NEVER converge to implementation before alternatives + tradeoffs are written. Plan mode = biased toward action. RFC slows agent down in the right place. If user says "just plan it", redirect to `ship` skill: RFC is for boundary-crossing decisions only. </critical>

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.