Governance-as-code for AI-assisted software development.
Enforce spec-first discipline. Every feature starts with an RFC, not a prompt.
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.
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
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 14: Tests pass, govctl rfc advance RFC-0015 stable
/plugin marketplace add govctl-org/govctl
/plugin install govctl@govctl
/govctl:init
The plugin provides workflow skills, reviewer agents, and enforcement hooks out of the box.
cargo install govctl
govctl initgovctl init creates the governance structure and installs AI agent skills into .claude/.
For complete documentation, see the User Guide.
govctl is built for AI-native development. Install the Claude Code plugin or run govctl init to get workflow skills that any Claude Code / Cursor / Codex agent can invoke:
| Skill | Purpose |
|---|---|
/gov <task> |
Complete governed workflow: work item, RFC/ADR, implement, test, done |
/migrate |
Adopt govctl in an existing project: discover decisions, backfill ADRs, annotate source |
/discuss <topic> |
Design discussion: explore options, draft RFC or ADR |
/commit |
Smart commit: VCS detection, govctl checks, work item journal updates |
/quick <task> |
Fast path for trivial changes (skip governance ceremony) |
The plugin also includes enforcement hooks: govctl status runs at session start for context, govctl check runs at session end as a gate.
Every govctl operation is a single CLI call. No MCP server needed -- the CLI is the universal interface. Every shell-capable agent already speaks it.
govctl enforces phase discipline on software development:
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ SPEC │ ──► │ IMPL │ ──► │ TEST │ ──► │ STABLE │
└─────────┘ └──────────┘ └──────────┘ └──────────┘
│ │ │ │
▼ ▼ ▼ ▼
RFC must Code must Tests must Bug fixes
be normative match spec pass gates only
Three artifact types, one lifecycle:
- RFCs -- Specifications that must exist before implementation
- ADRs -- Architectural decisions with explicit trade-offs
- Work Items -- Tracked tasks tied to governance artifacts
govctl governs itself by its own rules. This repository is the first proof.
- Teams frustrated by AI "code now, think later" patterns
- Existing projects that need to retroactively establish governance (
/migrate) - 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.
cargo install govctl --features tui
govctl tuiKeymap: 1/2/3 to switch lists, j/k to move, Enter to open, / to filter, ? for help.
- Discord -- Questions, discussions, feedback
- GitHub Issues -- Bug reports and feature requests
- GitHub Discussions -- Design conversations
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.
MIT
"Discipline is not the opposite of creativity. It is the foundation."