{"id":41812649,"url":"https://github.com/govctl-org/govctl","last_synced_at":"2026-05-25T03:08:51.077Z","repository":{"id":333198096,"uuid":"1136535021","full_name":"govctl-org/govctl","owner":"govctl-org","description":"Opinionated CLI tool to enforce RFC-driven AI coding","archived":false,"fork":false,"pushed_at":"2026-02-24T08:21:14.000Z","size":801,"stargazers_count":75,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T14:49:03.166Z","etag":null,"topics":["ai-agent","cli","flow","governance"],"latest_commit_sha":null,"homepage":"https://govctl-org.github.io/govctl/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/govctl-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-17T21:34:01.000Z","updated_at":"2026-02-24T08:21:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/govctl-org/govctl","commit_stats":null,"previous_names":["govctl-org/govctl"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/govctl-org/govctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/govctl-org%2Fgovctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/govctl-org%2Fgovctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/govctl-org%2Fgovctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/govctl-org%2Fgovctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/govctl-org","download_url":"https://codeload.github.com/govctl-org/govctl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/govctl-org%2Fgovctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30031981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T03:27:35.548Z","status":"ssl_error","status_checked_at":"2026-03-03T03:27:09.213Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","cli","flow","governance"],"created_at":"2026-01-25T07:06:52.649Z","updated_at":"2026-05-25T03:08:51.070Z","avatar_url":"https://github.com/govctl-org.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.svg\" alt=\"govctl logo\" width=\"120\" height=\"120\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003egovctl\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/govctl-org/govctl/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/govctl-org/govctl/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/govctl-org/govctl\"\u003e\u003cimg src=\"https://codecov.io/gh/govctl-org/govctl/graph/badge.svg\" alt=\"codecov\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/govctl\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/govctl.svg\" alt=\"Crates.io\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/buBB9G8Z6n\"\u003e\u003cimg src=\"https://img.shields.io/discord/1466789912211620066?logo=discord\u0026label=Discord\" alt=\"Discord\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/govctl-org/govctl\"\u003e\u003cimg src=\"https://img.shields.io/badge/governed%20by-govctl-6366F1\" alt=\"governed by govctl\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA governance harness for AI coding.\u003c/strong\u003e\u003cbr\u003e\n  \u003cem\u003eTurn prompts and patches into RFCs, ADRs, work items, and guarded delivery.\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/readme-hero.png\" alt=\"govctl hero illustration showing AI coding workflows flowing through RFCs, ADRs, work items, and guards into reviewed delivery\" width=\"1200\"\u003e\n\u003c/p\u003e\n\n---\n\n`govctl` is a governance-as-code CLI for teams using AI to build software seriously.\n\nIt gives AI-assisted development a control plane that lives in your repo:\n\n- **RFCs** say what must be true\n- **ADRs** record why a design was chosen\n- **Work items** track execution and acceptance criteria\n- **Verification guards** enforce executable completion gates\n\nThe point is not bureaucracy. The point is that AI-generated changes become **reviewable, traceable, and phase-gated**.\n\n## Why govctl\n\nMost AI coding tools optimize for generation. `govctl` optimizes for delivery.\n\nWithout explicit governance, teams drift into the same pattern:\n\n- ideas jump straight into implementation\n- decisions live in chat history instead of artifacts\n- code and specs diverge silently\n- \"done\" means \"the agent stopped typing\", not \"the work passed verification\"\n\n`govctl` closes that gap by making governed artifacts, lifecycle, and verification part of the normal workflow.\n\n```text\nWithout govctl:\n  prompt -\u003e code -\u003e drift -\u003e arguments\n\nWith govctl:\n  RFC / ADR -\u003e work item -\u003e guarded implementation -\u003e stable history\n```\n\n## What Makes It Different\n\n### 1. Spec-first by default\n\n`govctl` is built around the idea that implementation follows governed artifacts.\n\nIn practice, that means:\n\n- RFCs describe externally relevant behavior and constraints\n- ADRs record design choices and trade-offs\n- work items execute against those artifacts\n- verification guards and lifecycle gates decide when work is actually done\n\nInstead of treating prompts as the source of truth, the source of truth becomes governed artifacts in the repository.\n\n### 2. Artifacts are the control plane\n\n`govctl` does not hide governance behind a web app or an MCP server.\n\nArtifacts live in `gov/` as TOML files with schema headers, references, and stable CLI access. That means:\n\n- changes are diffable\n- decisions are reviewable in PRs\n- agents can operate against files and commands you already understand\n\n### 3. One CLI agents can reliably operate\n\nThe CLI is the operating surface for agents:\n\n- `list`, `show`, `get`, `edit`\n- resource-specific lifecycle verbs like `adr accept`, `rfc advance`, `rfc supersede`, and `work move`\n- path-first mutation through `edit`\n- explicit help text designed to act as a reliable command contract\n\nThis matters because agent workflows get better when the interface is stable, local, and inspectable.\n\n### 4. Works in brownfield repositories\n\nThis is not only for greenfield projects.\n\nFor existing repositories, the `/migrate` workflow helps you adopt governance incrementally: discover undocumented decisions, backfill ADRs, and establish governed artifacts without restarting the project.\n\n## Quick Start\n\n### CLI\n\n```bash\n# Install from source\ncargo install govctl\n\n# Or install a prebuilt binary (faster, skips compilation)\ncargo binstall govctl\n\ngovctl init\ngovctl status\n```\n\nTo update an existing installation:\n\n```bash\ngovctl self-update\n```\n\nThen create your first governed artifacts:\n\n```bash\ngovctl rfc new \"Caching Strategy\"\ngovctl adr new \"Choose cache backend\"\ngovctl work new --active \"implement caching\"\n```\n\n### Agent workflow\n\nInitialize governance, then install or load the agent workflows for your tool:\n\n- `/discuss \u003ctopic\u003e` to draft RFCs and ADRs\n- `/gov \u003ctask\u003e` to execute governed implementation\n- `/quick \u003ctask\u003e` for intentionally small changes\n- `/commit` to record work with governance checks\n\nFor Claude Code plugin installation:\n\n```bash\n/plugin marketplace add govctl-org/govctl\n/plugin install govctl@govctl\n/govctl:init\n```\n\nFor a global Codex installation:\n\n```bash\nmkdir -p ~/.codex\ncd ~/.codex\ngovctl init\ngovctl init-skills --format codex --dir .\n```\n\nThis keeps the govctl-managed workspace, generated skills, and generated agents inside `~/.codex` instead of writing governance files into your home directory.\n\n### A concrete example\n\n```bash\ngovctl rfc new \"Verification Guard Policy\"\ngovctl clause new RFC-0015:C-GUARD-REQUIREMENTS \"Required guards\" -s \"Verification\" -k normative\ngovctl adr new \"Require clippy on parser refactors\"\ngovctl work new --active \"add parser lint guard\"\n```\n\n## Core Capabilities\n\n### Canonical artifact operations\n\nAgents and humans work through a stable CLI contract.\n\nRead the exact field you need:\n\n```bash\ngovctl rfc get RFC-0001 status\n```\n\nFor precise artifact mutation, `govctl` provides a canonical path-first interface:\n\n```bash\ngovctl adr edit ADR-0038 content.decision --stdin\ngovctl work edit WI-2026-01-17-001 content.acceptance_criteria[0] --tick done\ngovctl clause edit RFC-0002:C-CRUD-VERBS text --stdin\n```\n\nThis is not the product's identity. It is the low-level tool agents use to update governed artifacts precisely and consistently.\n\n### Verification guards\n\nGuards are executable checks that run when work reaches completion gates.\n\nDefine reusable project defaults in `gov/config.toml`:\n\n```toml\n[verification]\nenabled = true\ndefault_guards = [\"GUARD-GOVCTL-CHECK\", \"GUARD-CARGO-TEST\"]\n```\n\nYou can also require extra guards on a specific work item or waive a guard with an explicit reason. See:\n\n- [Validation \u0026 Rendering](https://github.com/govctl-org/govctl/blob/main/docs/guide/validation.md#per-work-item-guards)\n- [Working with Work Items](https://github.com/govctl-org/govctl/blob/main/docs/guide/work-items.md#per-work-item-guards)\n\n### Brownfield adoption vs format migration\n\nThese are related, but different:\n\n- **`/migrate` workflow** — adopt `govctl` in an existing repository by discovering decisions, backfilling ADRs, and introducing governance incrementally\n- **`govctl migrate` command** — upgrade existing `govctl`-managed artifacts to the current on-disk format and schema\n\nFor format upgrades:\n\n```bash\ngovctl migrate\ngovctl check\n```\n\nAs of the `0.8.x` line, RFC and clause artifacts are written canonically as TOML. Legacy JSON is supported for migration and compatibility on read, not as an ongoing write format.\n\n### Interactive TUI\n\n```bash\ngovctl tui\n```\n\nBrowse RFCs, ADRs, work items, and guards with styled rendering in the terminal.\n\n## Who This Is For\n\n- Teams using Claude Code, Codex, Cursor, or similar agents for real product work\n- Projects that want AI assistance without losing reviewability\n- Brownfield repositories that need governance without a rewrite\n- Engineers who want specs, decisions, and work tracking to live in the repo\n\n## Documentation\n\n- [User Guide](https://govctl-org.github.io/govctl/)\n- [Validation \u0026 Rendering](https://github.com/govctl-org/govctl/blob/main/docs/guide/validation.md)\n- [Working with Work Items](https://github.com/govctl-org/govctl/blob/main/docs/guide/work-items.md)\n- [Changelog](https://github.com/govctl-org/govctl/blob/main/CHANGELOG.md)\n- [Website](https://govctl.org)\n\n## Community\n\n- [Discord](https://discord.gg/buBB9G8Z6n)\n- [GitHub Issues](https://github.com/govctl-org/govctl/issues)\n- [GitHub Discussions](https://github.com/govctl-org/govctl/discussions)\n\n## Contributing\n\n`govctl` is intentionally opinionated:\n\n- features start with governed artifacts, not implementation-first\n- RFCs and ADRs are part of the product, not side documentation\n- verification and lifecycle are core behavior, not optional extras\n\nIf that matches how you want AI-assisted development to work, contributions are welcome.\n\n---\n\n## License\n\nMIT\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#govctl-org/govctl\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=govctl-org/govctl\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=govctl-org/govctl\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=govctl-org/govctl\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n---\n\n\u003e _\"Discipline is not the opposite of creativity. It is the foundation.\"_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovctl-org%2Fgovctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgovctl-org%2Fgovctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovctl-org%2Fgovctl/lists"}