govctl
Opinionated governance CLI for RFC-driven AI-assisted software development.
The Problem
AI-assisted coding is powerful but undisciplined:
- Phase skipping: Jumping from idea to implementation without specification
- Documentation drift: Specs and code diverge silently
- No enforceable governance: "Best practices" become optional suggestions
The result: faster typing, slower thinking, unmaintainable systems.
Without govctl
Day 1: "Let's add caching!"
Day 2: AI generates 500 lines of Redis integration
Day 7: "Wait, did we agree on Redis or Memcached?"
Day 14: Half the team implements one, half the other
Day 30: Two incompatible caching layers, no spec, nobody knows why
With govctl
Day 1: govctl rfc new "Caching Strategy"
Day 2: RFC-0015 defines: Redis, TTL policy, invalidation rules
Day 3: govctl rfc advance RFC-0015 impl
Day 7: Implementation complete, traceable to spec
Day 10: govctl rfc advance RFC-0015 test
Day 14: Tests pass, govctl rfc advance RFC-0015 stable
What govctl Is
govctl enforces phase discipline on software development:
- RFC is the source of truth — No implementation without specification
- Phases are enforced — Each phase has explicit gates and invariants
- Governance is executable — Rules are checked, not suggested
- Work is traceable — Tasks link back to the specs that authorized them
govctl manages three artifact types:
- RFCs — Specifications that must exist before implementation
- ADRs — Architectural decisions with explicit consequences
- Work Items — Tracked tasks tied to governance artifacts
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ SPEC │ ──► │ IMPL │ ──► │ TEST │ ──► │ STABLE │
└─────────┘ └──────────┘ └──────────┘ └──────────┘
│ │ │ │
▼ ▼ ▼ ▼
RFC must Code must Tests must Bug fixes
be normative match spec pass gates only
govctl governs itself by its own rules. This repository is the first proof.
Who This Is For
✅ Teams frustrated by AI "code now, think later" patterns ✅ Projects where specifications drift from implementations ✅ Organizations needing audit trails for AI-generated code ✅ Developers who believe discipline enables velocity
❌ Not for "move fast and break things" workflows ❌ Not for projects without review processes
Quick Start
# Install cargo install govctl # Or with TUI dashboard cargo install govctl --features tui # Initialize project govctl init # Create your first RFC govctl rfc new "Feature Title" # Validate govctl check
Optionally, show the project is governed by govctl:
[](https://github.com/govctl-org/govctl)
For complete documentation, see the User Guide.
TUI Dashboard
Run the TUI with govctl tui (requires --features tui when installing from source).
Keymap highlights:
1/r,2/a,3/wto switch lists from the dashboardj/kor arrows to move;Enterto open;Escto go back/to filter lists by ID/title/status;Enterto accept;Escclears filterg/Gjump to top/bottom;n/pstep through matches when filtered?toggles help;qquits
What govctl Is NOT
- Not a code generator — govctl doesn't write code; it ensures code follows specs
- Not a documentation editor — govctl enforces structure, not style
- Not about "faster coding" — govctl is about correct coding
- Not a framework — govctl is a constraint system
- Not a general issue tracker — Work items exist to trace work back to specs, not to replace Jira
Why No MCP?
govctl doesn't need a dedicated MCP (Model Context Protocol) integration because the CLI itself is the tool.
Modern AI coding agents (Claude, Cursor, Codex, etc.) can already invoke shell commands. Every govctl operation is a single CLI call. MCP would add complexity without adding capability.
The CLI is the universal interface. Every shell-capable agent already speaks it.
For Claude/Cursor users: govctl init installs a /gov <task> command — a complete governed workflow in one invocation.
Contributing
govctl has an opinionated workflow. Before contributing:
- Read the governance RFC to understand the model
- All features require an RFC before implementation
- Phase gates are enforced — this is the point, not bureaucracy
This workflow isn't for everyone, and that's okay. If you thrive in structured, spec-driven development, we'd welcome your contributions.
Star History
License
MIT
"Discipline is not the opposite of creativity. It is the foundation."