Skip to content

feat: add /vibe-check command and vibe-check-reporter agent - #32

Merged
jflowers merged 3 commits into
mainfrom
opsx/vibe-check-command-and-reporter
Sep 2, 2026
Merged

feat: add /vibe-check command and vibe-check-reporter agent#32
jflowers merged 3 commits into
mainfrom
opsx/vibe-check-command-and-reporter

Conversation

@jflowers

@jflowers jflowers commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a /vibe-check slash command and vibe-check-reporter subagent that interpret coupling metrics from vibe-check analyze in three modes:

  • Summary -- traffic-light health indicator with natural language interpretation
  • Detailed -- per-package metric breakdown with zone classification (Zone of Pain, Zone of Uselessness, Main Sequence)
  • Trending -- longitudinal metric comparison using Dewey snapshot storage/retrieval

The scaffold system (vibe-check init) is extended to deploy both agent and command assets, replacing the single-category agent-only deployment with a multi-category architecture using a deployCategory helper.

Closes #5.

How to Test

# All tests pass with race detection
go test -race -count=1 ./...

# Build the binary
go build ./cmd/vibe-check

# Deploy assets to a test directory
go run ./cmd/vibe-check init /tmp/vibe-test

# Verify both directories created
ls /tmp/vibe-test/.opencode/agents/   # divisor-entropy.md, vibe-check-reporter.md
ls /tmp/vibe-test/.opencode/commands/ # vibe-check.md

# Verify JSON output includes both categories
go run ./cmd/vibe-check init --json --force /tmp/vibe-test

# Force overwrite and verify idempotency
go run ./cmd/vibe-check init --force /tmp/vibe-test

How to Demo

  1. Run go run ./cmd/vibe-check init . in a project with .opencode/
  2. Observe three assets deployed: divisor-entropy.md and vibe-check-reporter.md in .opencode/agents/, vibe-check.md in .opencode/commands/
  3. In OpenCode, use /vibe-check to invoke the reporter agent in summary mode
  4. Use /vibe-check detailed for per-package breakdown
  5. Use /vibe-check trending for historical comparison (requires Dewey)

Key Files Changed

Scaffold system:

  • internal/scaffold/scaffold.go -- deployCategory helper, multi-category Run()
  • internal/scaffold/embed.go -- two //go:embed directives (agents + commands)
  • internal/scaffold/doc.go -- updated package GoDoc

New assets:

  • internal/scaffold/assets/agents/vibe-check-reporter.md -- reporter agent (341 lines)
  • internal/scaffold/assets/commands/vibe-check.md -- slash command definition

Tests (3-file split per AD-007):

  • internal/scaffold/scaffold_test.go -- deployment lifecycle (344 lines)
  • internal/scaffold/security_test.go -- symlink/traversal/containment (152 lines)
  • internal/scaffold/contract_test.go -- embedded asset contracts (280 lines)

CLI:

  • cmd/vibe-check/init.go -- updated output, GoDoc, cobra descriptions
  • cmd/vibe-check/init_test.go -- updated for multi-category deployment

Documentation:

  • README.md, AGENTS.md, CHANGELOG.md -- updated for new capabilities

Spec artifacts:

  • openspec/changes/vibe-check-command-and-reporter/ -- proposal, design, 7 specs, tasks

This PR was generated by /uf.finale (AI-assisted).

Add a /vibe-check slash command with three modes (summary, detailed,
trending) and a vibe-check-reporter agent that interprets coupling
metrics. Both deployed to consuming projects via vibe-check init.

Scaffold system refactored with deployCategory helper to support
both agent and command asset deployment with category-prefixed
Result paths.

Closes #5
- Split scaffold_test.go (761→344 lines) into three files:
  scaffold_test.go (deployment lifecycle), security_test.go
  (symlink/traversal/containment), contract_test.go (asset contracts)
- Update doc.go to describe both agent and command asset categories
- Add Spec: refs to CHANGELOG entries
- Write code-review: passed marker

Addresses code review findings: AD-007 file size threshold,
Guard doc.go/CHANGELOG findings.
- Add Dewey learnings for deployCategory pattern, test file splitting
  gotcha, and spec review patterns from the vibe-check-command-and-
  reporter implementation

Assisted-by: claude-opus
Generated with AI assistance (claude-opus)

@jflowers jflowers left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Council Verdict: APPROVE

Note: Could not post as APPROVE due to self-review prohibition. Posted as COMMENT instead. Original verdict: APPROVE.

Reviewers: Adversary, Architect, Curator, Envoy, Guard, Herald, Scribe, SRE, Tester
Iterations: 1

Adversary (APPROVE)

No findings.

Architect (APPROVE)

3 LOW findings omitted.

Curator (APPROVE)

2 LOW findings omitted.

Envoy (APPROVE)

2 LOW findings omitted.

Guard (APPROVE)

2 LOW findings omitted.

Herald (APPROVE)

2 LOW findings omitted.

Scribe (APPROVE — after fix)

  • [MEDIUM → FIXED] Zone classification thresholds in vibe-check-reporter.md:142-146 contradicted ComputeZone implementation in metrics/compute.go:41-52. All four zone definitions had incorrect thresholds and names (Zone of Pain described as high abstractness instead of low; Zone of Uselessness described as low abstractness instead of high; Main Sequence threshold 0.3 instead of 0.2; "Balanced" zone name instead of "Normal"). Fixed to match actual implementation.

1 LOW finding omitted.

SRE (APPROVE)

2 LOW findings omitted.

Tester (APPROVE)

2 LOW findings omitted.

Linked Issues

  • #5: Create /vibe-check slash command with three modes (summary, detailed, trending) and vibe-check-reporter agent. 7 acceptance criteria identified.

This review was generated by /review-council (AI-assisted).

@jflowers
jflowers merged commit 876844c into main Sep 2, 2026
2 checks passed
@jflowers

jflowers commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

PR Cost Report: #32

Session: Propose changes with artifacts

ID: ses_f9daafee0ffewOSrjFHaHqy5oL
Model: claude-opus-4-6

Metric Value
Cost (parent only) $35.75
Input tokens 310
Output tokens 125,370
Cache read tokens 28,545,715
Cache write tokens 2,953,493

Timeline: 2026-09-02 09:35:33 — 2026-09-02 13:27:35

Child sessions: 15 — additional cost: $13.34
Session tree total: $49.09

Child session breakdown
Session Model Cost Output Tokens
Find OpenCode command loading (@explore subagent) claude-haiku-4-5@20251001 $0.17 2,850
Adversary spec review (@divisor-adversary subagent) claude-opus-4-6 $0.74 6,083
Architect spec review (@divisor-architect subagent) claude-opus-4-6 $1.02 8,008
Guard spec review (@divisor-guard subagent) claude-opus-4-6 $0.70 5,609
Tester spec review (@divisor-testing subagent) claude-opus-4-6 $0.80 5,784
SRE spec review (@divisor-sre subagent) claude-opus-4-6 $1.02 7,135
Curator spec review (@divisor-curator subagent) claude-opus-4-6 $0.76 5,539
Architect spec re-review (@divisor-architect subagent) claude-opus-4-6 $0.70 4,881
Guard spec re-review (@divisor-guard subagent) claude-opus-4-6 $0.70 3,418
Tester spec re-review (@divisor-testing subagent) claude-opus-4-6 $0.63 4,500
Gaze quality report (@gaze-reporter subagent) claude-opus-4-6 $1.15 5,583
Architect code review (@divisor-architect subagent) claude-opus-4-6 $1.12 4,433
Adversary code review (@divisor-adversary subagent) claude-opus-4-6 $0.89 3,642
Guard code review (@divisor-guard subagent) claude-opus-4-6 $1.17 4,203
Tester code review (@divisor-testing subagent) claude-opus-4-6 $1.77 4,505

Session: Code and spec review council

ID: ses_f9cd65ac2fferwpCgJz7F9JcDU
Model: claude-opus-4-6

Metric Value
Cost (parent only) $5.65
Input tokens 64
Output tokens 21,760
Cache read tokens 3,712,695
Cache write tokens 519,421

Timeline: 2026-09-02 13:27:48 — 2026-09-02 14:28:59

Child sessions: 10 — additional cost: $9.97
Session tree total: $15.62

Child session breakdown
Session Model Cost Output Tokens
Gaze quality report (@gaze-reporter subagent) claude-opus-4-6 $1.30 7,776
Adversary code review (@divisor-adversary subagent) claude-opus-4-6 $0.95 4,502
Architect code review (@divisor-architect subagent) claude-opus-4-6 $1.24 4,904
Guard code review (@divisor-guard subagent) claude-opus-4-6 $1.29 4,658
Testing code review (@divisor-testing subagent) claude-opus-4-6 $0.89 4,349
SRE code review (@divisor-sre subagent) claude-opus-4-6 $1.11 5,027
Curator code review (@divisor-curator subagent) claude-opus-4-6 $0.88 5,191
Envoy code review (@divisor-envoy subagent) claude-opus-4-6 $0.74 3,170
Herald code review (@divisor-herald subagent) claude-opus-4-6 $0.57 2,768
Scribe code review (@divisor-scribe subagent) claude-opus-4-6 $1.01 4,161

Grand Total: $64.71 across 2 session tree(s) (27 sessions)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

/vibe-check command and vibe-check-reporter agent

1 participant