From govctl
Writes well-structured RFCs with normative clauses using govctl CLI and RFC 2119 keywords. Useful for creating/editing RFCs or specifying normative requirements.
npx claudepluginhub govctl-org/govctl --plugin govctlThis skill is limited to using the following tools:
Write RFCs that are precise, complete, and follow govctl conventions.
Facilitates Request for Comments (RFC) process for technical proposals and design decisions. Supplies templates, ADR comparisons, best practices, and IETF-adapted guidance.
Guides writing RFCs for features, architecture, processes, deprecations, migrations, and standards with workflow: type selection, git research, required sections (summary, problem, solution, alternatives, risks), review management, decision logging, and git commit to docs/rfcs/. Use for proposals needing team buy-in on large changes.
Fetches IETF RFCs as plain text, stores in spec/ directory, and generates OCamldoc citations for OCaml modules, functions, and types. Use for implementing standards and protocol compliance docs.
Share bugs, ideas, or general feedback.
Write RFCs that are precise, complete, and follow govctl conventions.
This helper skill may be used standalone or by /discuss, /gov, /spec, or /migrate.
It is responsible for RFC content and clause quality, not RFC lifecycle verbs. Use /spec or /gov for govctl rfc finalize, bump, or advance.
RFCs define obligations: what behavior, invariants, interfaces, and compatibility rules MUST be true. They are normative artifacts, not design diaries, code sketches, or task plans.
govctl rfc new "<title>"
govctl clause new <RFC-ID>:C-<NAME> "<title>" -s "<section>" -k <kind>
govctl clause edit <RFC-ID>:C-<NAME> --stdin <<'EOF'
clause text
EOF
Every RFC should have:
govctl clause new <RFC-ID>:C-SUMMARY "Summary" -s "Summary" -k informative
govctl clause edit <RFC-ID>:C-SUMMARY --stdin <<'EOF'
Brief overview of what this RFC specifies and why.
**Scope:** What is covered and what is not.
**Rationale:** Why this specification is needed.
EOF
govctl clause new <RFC-ID>:C-<NAME> "<Title>" -s "Specification" -k normative
govctl clause edit <RFC-ID>:C-<NAME> --stdin <<'EOF'
The system MUST ...
The system SHOULD ...
The system MAY ...
**Rationale:**
Why this requirement exists.
EOF
Use these keywords in ALL CAPS in normative clauses:
| Keyword | Meaning |
|---|---|
| MUST | Absolute requirement |
| MUST NOT | Absolute prohibition |
| SHOULD | Recommended but not required |
| SHOULD NOT | Discouraged but not prohibited |
| MAY | Optional |
[[RFC-NNNN]] or [[ADR-NNNN]] syntax.Only include representation details when they are themselves the external contract.
C- prefix followed by a descriptive uppercase name with hyphensC-VALIDATION, C-ERROR-FORMAT, C-WORK-DEFC-1, C-Misc, C-stuff| Section | Clause Kind | Content |
|---|---|---|
| Summary | informative | Overview, scope, rationale |
| Specification | normative | MUST/SHOULD/MAY requirements |
| Rationale | informative | Extended explanation |
The renderer auto-generates structural elements. Do NOT include these in clause text:
### [RFC-XXXX:C-NAME] Title) — auto-generated from metadata*Since: vX.Y.Z* — auto-generated from the since JSON field> **Superseded by:** ... — auto-generated from the superseded_by fieldAmended: ... — does not exist; do not hallucinate thisClause text should contain only the specification prose, rationale, and [[...]] references.
| Mistake | Fix |
|---|---|
| Vague MUST: "MUST handle errors appropriately" | Specific: "MUST return a descriptive validation error to the caller" |
| No rationale | Add **Rationale:** section explaining why |
| Untestable requirement | Rewrite so it can be verified programmatically |
| Missing cross-references | Add [[RFC-NNNN]] or [[ADR-NNNN]] links |
| Rust/TS type layout in the clause | Rewrite it as semantic requirements or an external contract |
| Work-plan language in the clause | Move execution details to a work item |
Including Since: in clause text | Don't — the renderer adds it from the since field automatically |
| Including clause heading in text | Don't — the renderer generates ### [RFC:C-NAME] Title from metadata |
govctl check after substantive RFC editsrfc-reviewer before lifecycle handoff/spec for clarification-only or artifact-only RFC maintenance/gov for implementation-bearing RFC amendments