Skip to content

Epic: Vibe-Check — Design Quality & Architectural Metrics Toolkit #20

Description

@jflowers

What Users Get

Vibe-Check gives engineering teams automated, continuous structural quality enforcement for their codebases — starting with Go, then Python and TS/JS.

In concrete terms, when this epic is complete a user can:

  1. Run vibe-check analyze ./... and get a full Martin metrics report: Afferent Coupling (Ca), Efferent Coupling (Ce), Instability (I), Abstractness (A), Distance from Main Sequence (D), LCOM cohesion, circular dependency detection, and code duplication — per package, with zone classifications (main-sequence, zone-of-pain, zone-of-uselessness).

  2. Gate CI on structural quality — PRs that degrade coupling metrics, introduce circular dependencies, or increase code duplication fail the build automatically: vibe-check analyze --regression-base=origin/main --no-new-circular-deps.

  3. Get AI-assisted structural review — the divisor-entropy agent joins the Review Council automatically, computing the structural delta between base and PR and blocking merges that leave the codebase worse than they found it (Boy Scout Rule enforcement).

  4. Query metrics conversationally/vibe-check summary for a health overview, /vibe-check detailed for per-package breakdown, /vibe-check trending for drift over time.

  5. Track architectural drift — metrics are stored as time-series snapshots in Dewey, with an mx-f-architecture-trend agent that alerts on gradual degradation before thresholds are crossed.

  6. Analyze Python projectsrattler implements the ExternalAdapter JSON-RPC 2.0 protocol, so vibe-check analyze --language=python works seamlessly.

  7. Enforce codified design rules — the AD-001 through AD-010 convention pack gives agents (and reviewers) concrete, measurable structural quality constraints: max fan-out, instability limits, no circular deps, file size, DRY, cohesion thresholds.

No single OSS tool currently computes the full Martin metrics suite for Go — or any language — through a unified, language-agnostic model. Vibe-Check fills that gap with a two-layer architecture: a universal metrics model (Layer 1, complete) and language-specific adapters (Layer 2, starting with Go).


Foundation (Complete)


Execution Order

Issues are grouped into waves by priority and dependency. Within a wave, items can run in parallel unless noted.

Wave 1 — P0: Core Engine

The unlock for everything else. Must complete sequentially (#2 then #3).

Wave 2 — P1: Enforcement & Conventions

All items depend on #2 but are independent of each other — can run in parallel.

Wave 3 — P2: Depth & Multi-language

All items depend on #2. Some have additional dependencies noted.

Wave 4 — P3: Future

Housekeeping (No Wave — Anytime)

Gaze-Owned (Separate Project)

These issues live in this tracker but belong to the gaze project — they run on their own timeline:


Dependency Graph

#1 (done) ──► #2 ──┬──► #3 (divisor-entropy)
                    ├──► #4 (convention pack) ◄── #13 (duplication, for AD-008)
                    ├──► #5 (/vibe-check command) ──► #12 (drift tracking)
                    ├──► #8 (regression gates)
                    ├──► #9 (rattler)
                    ├──► #13 (duplication)
                    └──► #14 (P3 consolidated)

Architecture

User
  │
  ├── vibe-check analyze ./...              ← #2 (CLI + Go adapter)
  │     ├── internal/go/                    ← Go-native package analysis
  │     ├── metrics/                        ← Universal model (#1, done)
  │     └── spawns ExternalAdapter          ← rattler (#9), TS/JS (#14)
  │
  ├── vibe-check analyze --regression-base  ← #8 (CI regression gates)
  │
  ├── vibe-check init                       ← Deploys agents + commands
  │     ├── .opencode/agents/divisor-entropy.md        ← #3
  │     ├── .opencode/agents/vibe-check-reporter.md    ← #5
  │     └── .opencode/commands/vibe-check.md           ← #5
  │
  ├── /vibe-check [summary|detailed|trending]          ← #5, #12
  │     └── delegates to vibe-check-reporter agent
  │           └── stores snapshots in Dewey            ← #12
  │
  └── .opencode/uf/packs/agent-design.md               ← #4
        └── AD-001..AD-010 enforced by vibe-check + gaze

RFC

https://github.com/orgs/unbound-force/discussions/483

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicUmbrella issue tracking a group of related work items

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions