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 14: Tests pass, govctl rfc advance RFC-0015 stable
Quick Start
That's it. govctl init creates the governance structure and installs AI agent skills.
For complete documentation, see the User Guide.
AI Agent Integration
govctl is built for AI-native development. govctl init installs 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) |
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.
What govctl Does
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.
Who This Is For
- 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.
TUI Dashboard
Keymap: 1/2/3 to switch lists, j/k to move, Enter to open, / to filter, ? for help.
Community
- Discord -- Questions, discussions, feedback
- GitHub Issues -- Bug reports and feature requests
- GitHub Discussions -- Design conversations
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."