Engineering
plumb avatar

plumb

Keep your technical specifications, test suites, and source code perfectly synchronized during AI-assisted development.

Introduction

Plumb is a developer-focused tool designed to maintain the integrity of the Spec-Driven Development triangle. It addresses the common problem where AI-assisted code evolution leads to drift between design documents, automated tests, and the actual implementation. By acting as a git pre-commit hook, Plumb continuously monitors your staged changes and conversation history to identify architectural and behavioral decisions, ensuring that no change is committed without verified documentation and test coverage.

  • Automatically intercepts git commits to analyze staged diffs and LLM decision history.

  • Surfaces pending decisions for interactive review via the CLI, ensuring human oversight of automated changes.

  • Automates the synchronization of approved decisions into markdown specification files and generates corresponding test cases.

  • Tracks three distinct coverage metrics: code coverage (pytest), spec-to-test mapping, and spec-to-code alignment.

  • Provides a robust workflow for rejecting decisions, which triggers automatic code modifications to revert changes to the codebase.

  • Manages project state within a version-controlled .plumb directory, supporting branch-based decision logging and persistent history.

  • Best suited for developers using AI coding assistants who need a 'source of truth' that remains grounded in the actual codebase.

  • Usage involves initializing the tool in your repository, which sets up hooks, configures .plumbignore patterns, and maps existing specifications.

  • Requires consistent usage of plumb commands: plumb status for health checks, plumb diff for pre-commit previews, and plumb sync to finalize documentation updates.

  • Operates best with explicit human validation; never use auto-approval for architectural changes.

  • Compatible with Python-based workflows, using standard tools like pytest and git for deep integration.

  • Essential for teams where maintaining technical documentation is often secondary to shipping code, effectively automating the 'synchronization debt' normally incurred during rapid feature development.

Repository Stats

Stars
102
Forks
18
Open Issues
6
Language
Python
Default Branch
main
Sync Status
Idle
Last Synced
May 4, 2026, 12:57 AM
View on GitHub