
Vibe
Run language-scoped cyclomatic and maintainability checks on only the files you changed so agent council reviews do not hang full-repo Go scans.
Overview
Vibe is an agent skill most often used in Ship review (also Operate iterate) that runs radon and gocyclo complexity analysis only on languages present in the current diff.
Install
npx skills add https://github.com/boshu2/agentops --skill vibeWhat is this skill?
- Preflights diff file list to set HAS_GO and HAS_PY before any analyzer runs
- Skips gocyclo on entire cli/ trees when the epic is docs/shell/BATS-only—avoids known hang scenarios
- Python path: radon cc and radon mi with head limits when radon is installed
- Go path: gocyclo only when .go files appear in the change set
- Writes structured preflight logs under .agents/council for council workflows
- Step 2 in AgentOps complexity analysis chain
- Python analyzers capped with head -30 output lines
Adoption & trust: 833 installs on skills.sh; 384 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent review step runs heavy complexity tools against the whole repo and stalls—or scores languages you did not even touch.
Who is it for?
Solo maintainers of Go/Python repos using AgentOps council flows who need diff-scoped complexity signals before merge.
Skip if: Pure frontend TypeScript-only changes, teams without shell/git diff context, or shops that want full-repo audits every time regardless of cost.
When should I use this skill?
Running council or PR review on a change set that may include Go or Python and you need complexity metrics without whole-repo scans.
What do I get? / Deliverables
Council preflight produces bounded radon or gocyclo summaries for the changed Python or Go files with clear skip messages when tools or languages are absent.
- Preflight log under .agents/council
- Truncated radon or gocyclo complexity tables for touched files
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Ship because the skill is a pre-review complexity gate on diffs before merge or council sign-off. Review fits: radon/gocyclo output feeds human or agent quality review, not greenfield implementation.
Where it fits
Council Step 2 runs radon cc/mi on three changed .py modules before merge.
A BATS-only epic skips gocyclo entirely with an logged HAS_GO=false preflight.
Post-incident patch triggers Go-only gocyclo on two files in hotfix branch.
Mid-feature checkpoint uses diff listing to confirm complexity budget before opening PR.
How it compares
Use instead of unscoped gocyclo/radon invocations that treat every epic like a full-language regression audit.
Common Questions / FAQ
Who is vibe for?
Developers using boshu2/agentops council automation who want Step 2 complexity metrics tied to the actual PR diff, especially on Go and Python codebases.
When should I use vibe?
During Ship review before council approval; when iterating on Operate after a hotfix PR; and any time an agent epic touches .go or .py files and you need maintainability indexes without scanning the entire tree.
Is vibe safe to install?
It runs local shell analyzers and writes under .agents/council; review the Security Audits panel on this Prism page and treat pip-installed radon/gocyclo as supply-chain dependencies you control.
SKILL.md
READMESKILL.md - Vibe
# Complexity Analysis (Step 2) **Filter by language present in the change set first.** Run only the analyzers whose language actually appears in the diff. A docs/shell/BATS-only epic must NOT trigger `gocyclo` against the entire `cli/` tree (it has hung in past runs); a Python-free epic must NOT trigger `radon`. ```bash # Detect which languages are present in the diff (or in <path> for full audits). # Use `git diff --name-only <base>...HEAD` for a PR; fall back to listing # files under <path> when no diff base is available. mkdir -p .agents/council HAS_GO=false; HAS_PY=false DIFF_FILES="$(git diff --name-only "${BASE:-HEAD~1}"...HEAD 2>/dev/null || find <path> -type f)" echo "$DIFF_FILES" | grep -q '\.go$' && HAS_GO=true echo "$DIFF_FILES" | grep -q '\.py$' && HAS_PY=true echo "$(date -Iseconds) preflight: HAS_GO=$HAS_GO HAS_PY=$HAS_PY" >> .agents/council/preflight.log ``` **For Python (only when `HAS_PY=true`):** ```bash if [ "$HAS_PY" = "true" ]; then echo "$(date -Iseconds) preflight: checking radon" >> .agents/council/preflight.log if ! which radon >> .agents/council/preflight.log 2>&1; then echo "⚠️ COMPLEXITY SKIPPED: radon not installed (pip install radon)" else radon cc <path> -a -s 2>/dev/null | head -30 radon mi <path> -s 2>/dev/null | head -30 fi else echo "ℹ️ COMPLEXITY SKIPPED: no .py files in diff" fi ``` **For Go (only when `HAS_GO=true`):** ```bash if [ "$HAS_GO" = "true" ]; then echo "$(date -Iseconds) preflight: checking gocyclo" >> .agents/council/preflight.log if ! which gocyclo >> .agents/council/preflight.log 2>&1; then echo "⚠️ COMPLEXITY SKIPPED: gocyclo not installed (go install github.com/fzipp/gocyclo/cmd/gocyclo@latest)" else gocyclo -over 10 <path> 2>/dev/null | head -30 fi else echo "ℹ️ COMPLEXITY SKIPPED: no .go files in diff" fi ``` **For other languages:** Skip complexity with explicit note: "⚠️ COMPLEXITY SKIPPED: No analyzer for <language>" **Interpret results:** | Score | Rating | Action | |-------|--------|--------| | A (1-5) | Simple | Good | | B (6-10) | Moderate | OK | | C (11-20) | Complex | Flag for council | | D (21-30) | Very complex | Recommend refactor | | F (31+) | Untestable | Must refactor | **Include complexity findings in council context.** # Deep Audit Protocol > Used by `/vibe --deep`, `/vibe --sweep`, and `/post-mortem` (unless `--skip-sweep`). Two-phase architecture: cheap per-file explorer sweep (discovery) followed by council judges (adjudication). All reporting caps removed. ``` Files -> chunk into batches of 3-5 -> [up to 8 Explore agents in parallel, 8-category checklist per file] -> raw findings -> sweep manifest (ALL findings merged) -> [council judges] adjudicate + add cross-cutting findings -> ALL findings reported ``` --- ## Phase 1: Explorer Sweep ### File Chunking Rules Sort target files by line count (largest first), then chunk: | File Size | Batch Size | Rationale | |-----------|-----------|-----------| | <= 100 lines | 5 per batch | Small files — explorers can handle many | | 101–300 lines | 3 per batch | Medium files — moderate depth needed | | > 300 lines | 1 per batch (solo) | Large files — full attention required | **Max 8 batches.** If chunking produces more than 8 batches, merge the smallest batches until you have 8. If fewer than 8 batches, use fewer explorers. ### Explorer Prompt Template Each explorer receives this prompt with its assigned file batch: ``` You are a Deep Audit Explorer. Your job is DISCOVERY — find every concrete issue in the assigned files. You are NOT a judge; you do not decide severity thresholds or ship-readiness. Find problems. Be thorough. Be specific. ## Assigned Files {FILE_LIST} ## Mandatory 8-Category Checklist For EACH file, you MUST check all 8 categories. Do not skip any category for any file. 1. **Resource Leaks** — Unclosed files/connections/handles, missing defer/finally/cleanup, goroutine leaks, listener leaks, temp file accumulation 2. **S