Repository Analysis

Yeachan-Heo/oh-my-claudecode

Teams-first Multi-agent orchestration for Claude Code

4.1 Likely human-written View on GitHub
4.1
Adjusted Score
4.1
Raw Score
100%
Time Factor
2026-05-29
Last Push
35,329
Stars
TypeScript
Language
369,907
Lines of Code
1386
Files
1084
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 3MEDIUM 203LOW 878

Pattern Findings

1084 matches across 15 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers763 hits · 734 pts
SeverityFileLineSnippet
LOWbridge/team.js1373function isLeaderPaneMissingMailboxPersistedOutcome(request, outcome) {
LOWbridge/team.js1376function fallbackTransportForPreference(preference) {
LOWbridge/team.js1385async function markImmediateDispatchFailure(params) {
LOWbridge/team.js5456function assertCleanLeaderWorktree(repoRoot) {
LOWbridge/team.js5464function canonicalPathForComparison(path4) {
LOWbridge/team.js5471function getRegisteredWorktreeBranch(repoRoot, wtPath) {
LOWbridge/team.js15function canTransitionTeamTaskStatus(from, to) {
LOWbridge/team.js115function normalizeTeamTransportPolicy(policy) {
LOWbridge/team.js223function extractDelegationComplianceEvidence(task, terminalData) {
LOWbridge/team.js243function requiresDelegationComplianceEvidence(task) {
LOWbridge/team.js451function canonicalizeTeamConfigWorkers(config) {
LOWbridge/team.js664async function teamUpdateWorkerHeartbeat(teamName, workerName, heartbeat, cwd) {
LOWbridge/team.js818function normalizeLegacyMailboxMessage(raw) {
LOWbridge/team.js1118function resolveDispatchLockTimeoutMs(env = process.env) {
LOWbridge/team.js1178async function readDispatchRequestsFromFile(teamName, cwd) {
LOWbridge/team.js1190async function writeDispatchRequestsToFile(teamName, requests, cwd) {
LOWbridge/team.js1223function equivalentPendingDispatch(existing, input) {
LOWbridge/team.js1235function canTransitionDispatchStatus(from, to) {
LOWbridge/team.js1283async function transitionDispatchRequest(teamName, requestId, from, to, patch = {}, cwd) {
LOWbridge/team.js1311async function markDispatchRequestNotified(teamName, requestId, patch = {}, cwd) {
LOWbridge/team.js1317async function markDispatchRequestDelivered(teamName, requestId, patch = {}, cwd) {
LOWbridge/team.js1356function createSwallowedErrorLogger(context) {
LOWbridge/team.js1406async function markLeaderPaneMissingDeferred(params) {
LOWbridge/team.js1487async function queueDirectMailboxMessage(params) {
LOWbridge/team.js1555async function queueBroadcastMailboxMessage(params) {
LOWbridge/team.js1746function hasUniversalClipboardTerminalFeature(features) {
LOWbridge/team.js1749function configureTmuxClipboardForSession(sessionName2, opts) {
LOWbridge/team.js1761async function configureTmuxClipboardForSessionAsync(sessionName2, opts) {
LOWbridge/team.js1824function detectTeamMultiplexerContext(env = process.env) {
LOWbridge/team.js1926function resolveShellFromCandidates(paths, rcFile) {
LOWbridge/team.js1934function resolveSupportedShellAffinity(shellPath) {
LOWbridge/team.js1961function escapeForPowerShellSingleQuotedString(value) {
LOWbridge/team.js1964function isNativeWindowsPsmuxPowerShellPane() {
LOWbridge/team.js1979function isAbsoluteLaunchBinaryPath(value) {
LOWbridge/team.js2368function paneHasClaudeStartupBanner(captured) {
LOWbridge/team.js2393function paneLineLooksLikeIdlePrompt(line) {
LOWbridge/team.js2423function paneTailContainsLiteralLine(captured, text) {
LOWbridge/team.js2435function shouldAttemptAdaptiveRetry(args) {
LOWbridge/team.js2621async function resolveSplitPaneWorkerPaneIds(sessionName2, recordedPaneIds, leaderPaneId) {
LOWbridge/team.js3173function getProviderDetectionModelEnvValues() {
LOWbridge/team.js3187function getDirectProviderDetectionModelEnvValues() {
LOWbridge/team.js3232function isProviderSpecificModelId(modelId) {
LOWbridge/team.js3718function warnOnDeprecatedDelegationRouting(config) {
LOWbridge/team.js3815function parseTeamRoleOverridesFromEnv() {
LOWbridge/team.js4502function loadSecurityFromConfigFiles() {
LOWbridge/team.js4672function resolveValidatedBinaryPath(agentType) {
LOWbridge/team.js4864function buildTeamStateInstructionPath(teamName, instructionStateRoot, ...teamRelativeParts) {
LOWbridge/team.js4875function generatePromptModeStartupPrompt(teamName, workerName, teamStateRoot3 = DEFAULT_INSTRUCTION_STATE_ROOT, cliOutpu
LOWbridge/team.js4881function generateMailboxTriggerMessage(teamName, workerName, count = 1, teamStateRoot3 = DEFAULT_INSTRUCTION_STATE_ROOT)
LOWbridge/team.js5134function validateWorktreeRemovalTarget(options) {
LOWbridge/team.js5562function installWorktreeRootAgents(teamName, workerName, repoRoot, worktreePath, overlayContent) {
LOWbridge/team.js5586function restoreWorktreeRootAgents(teamName, workerName, repoRoot, worktreePath) {
LOWbridge/team.js5639function listRootAgentsBackupIssues(repoRoot, teamName, entries) {
LOWbridge/team.js5680function assertCompatibleExistingWorktree(repoRoot, wtPath, expectedBranch, mode) {
LOWbridge/team.js5703function normalizeTeamWorktreeMode(value) {
LOWbridge/team.js5762function checkWorkerWorktreeRemovalSafety(teamName, workerName, repoRoot, worktreePath) {
LOWbridge/team.js5791function prepareWorkerWorktreeForRemoval(teamName, workerName, repoRoot, worktreePath) {
LOWbridge/team.js5840function inspectTeamWorktreeCleanupSafety(teamName, repoRoot) {
LOWbridge/team.js6306function buildResolvedRoutingSnapshot(cfg) {
LOWbridge/team.js6559function renderCliWorkerOutputContract(role, output_file) {
703 more matches not shown…
Decorative Section Separators194 hits · 606 pts
SeverityFileLineSnippet
MEDIUMbridge/gyoshu_bridge.py299# =============================================================================
MEDIUMbridge/gyoshu_bridge.py301# =============================================================================
MEDIUMbridge/gyoshu_bridge.py935# =============================================================================
MEDIUMbridge/gyoshu_bridge.py937# =============================================================================
MEDIUMbridge/gyoshu_bridge.py1142# =============================================================================
MEDIUMbridge/gyoshu_bridge.py1144# =============================================================================
MEDIUMbridge/gyoshu_bridge.py40# =============================================================================
MEDIUMbridge/gyoshu_bridge.py42# =============================================================================
MEDIUMbridge/gyoshu_bridge.py97# =============================================================================
MEDIUMbridge/gyoshu_bridge.py99# =============================================================================
MEDIUMbridge/gyoshu_bridge.py195# =============================================================================
MEDIUMbridge/gyoshu_bridge.py197# =============================================================================
MEDIUMbridge/gyoshu_bridge.py240# =============================================================================
MEDIUMbridge/gyoshu_bridge.py242# =============================================================================
MEDIUMbridge/gyoshu_bridge.py520# =============================================================================
MEDIUMbridge/gyoshu_bridge.py522# =============================================================================
MEDIUMbridge/gyoshu_bridge.py595# =============================================================================
MEDIUMbridge/gyoshu_bridge.py597# =============================================================================
MEDIUMbridge/gyoshu_bridge.py704# =============================================================================
MEDIUMbridge/gyoshu_bridge.py706# =============================================================================
MEDIUMbridge/gyoshu_bridge.py821# =============================================================================
MEDIUMbridge/gyoshu_bridge.py823# =============================================================================
MEDIUMscripts/test-pr25.sh95# =============================================================================
MEDIUMscripts/test-pr25.sh97# =============================================================================
MEDIUMscripts/test-pr25.sh126# =============================================================================
MEDIUMscripts/test-pr25.sh128# =============================================================================
MEDIUMscripts/test-pr25.sh142# =============================================================================
MEDIUMscripts/test-pr25.sh144# =============================================================================
MEDIUMscripts/test-pr25.sh177# =============================================================================
MEDIUMscripts/test-pr25.sh179# =============================================================================
MEDIUMscripts/test-pr25.sh220# =============================================================================
MEDIUMscripts/test-pr25.sh222# =============================================================================
MEDIUMscripts/test-pr25.sh265# =============================================================================
MEDIUMscripts/test-pr25.sh267# =============================================================================
MEDIUMscripts/test-pr25.sh322# =============================================================================
MEDIUMscripts/test-pr25.sh324# =============================================================================
MEDIUMscripts/test-pr25.sh360# =============================================================================
MEDIUMscripts/test-pr25.sh362# =============================================================================
MEDIUMscripts/test-pr25.sh427# =============================================================================
MEDIUMscripts/test-pr25.sh429# =============================================================================
MEDIUMscripts/test-pr25.sh475# =============================================================================
MEDIUMscripts/test-pr25.sh477# =============================================================================
MEDIUMscripts/test-pr25.sh510# =============================================================================
MEDIUMscripts/test-pr25.sh512# =============================================================================
MEDIUMscripts/find-node.sh31# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh33# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh46# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh48# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh56# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh58# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh67# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh69# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh85# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh87# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh97# ---------------------------------------------------------------------------
MEDIUMscripts/find-node.sh99# ---------------------------------------------------------------------------
MEDIUMscripts/release.ts43// ── Colors ──────────────────────────────────────────────────────────────────
MEDIUMscripts/release.ts60// ── Types ───────────────────────────────────────────────────────────────────
MEDIUMscripts/release.ts83// ── Version helpers ─────────────────────────────────────────────────────────
MEDIUMscripts/release.ts102// ── Git helpers ─────────────────────────────────────────────────────────────
134 more matches not shown…
Verbosity Indicators45 hits · 76 pts
SeverityFileLineSnippet
LOWbenchmark/quick_test.sh84# Step 1: Run quick vanilla test
LOWbenchmark/quick_test.sh91# Step 2: Run quick OMC test
LOWbenchmark/run_full_comparison.sh115# Step 1: Run vanilla benchmark
LOWbenchmark/run_full_comparison.sh130# Step 2: Run OMC benchmark
LOWbenchmark/run_full_comparison.sh145# Step 3: Evaluate both runs
LOWbenchmark/run_full_comparison.sh186# Step 4: Generate comparison report
LOWsrc/tools/python-repl/tool.ts522 // Step 1: Validate input with Zod
LOWsrc/tools/python-repl/tool.ts544 // Step 2: Validate session ID (path traversal protection)
LOWsrc/tools/python-repl/tool.ts561 // Step 3: Validate action-specific requirements
LOWsrc/tools/python-repl/tool.ts574 // Step 4: Acquire session lock
LOWsrc/tools/python-repl/tool.ts586 // Step 5: Ensure bridge is running
LOWsrc/tools/python-repl/tool.ts603 // Step 6: Dispatch to action handler
LOWsrc/tools/python-repl/tool.ts668 // Step 7: Always release lock
LOWsrc/features/task-decomposer/index.ts41 // Step 1: Analyze the task
LOWsrc/features/task-decomposer/index.ts44 // Step 2: Identify parallelizable components
LOWsrc/features/task-decomposer/index.ts47 // Step 3: Identify shared files
LOWsrc/features/task-decomposer/index.ts50 // Step 4: Generate subtasks with file ownership
LOWsrc/features/task-decomposer/index.ts53 // Step 5: Assign non-overlapping file ownership
LOWsrc/features/task-decomposer/index.ts56 // Step 6: Determine execution order
LOWsrc/features/task-decomposer/index.ts59 // Step 7: Validate decomposition
LOWsrc/cli/index.ts1257 // Step 1: Run installation (which handles hooks, agents, skills)
LOWsrc/cli/index.ts1303 // Step 2: Show summary
LOWsrc/hooks/autopilot/state.ts416 // Step 1: Preserve Ralph progress in autopilot state
LOWsrc/hooks/autopilot/state.ts435 // Step 2: Deactivate Ralph (set active=false) so UltraQA's mutual exclusion
LOWsrc/hooks/autopilot/state.ts444 // Step 3: Transition to QA phase
LOWsrc/hooks/autopilot/state.ts457 // Step 4: Start UltraQA (Ralph is deactivated, mutual exclusion passes)
LOWsrc/hooks/autopilot/state.ts476 // Step 5: UltraQA started — clear Ralph state fully (best-effort)
LOWsrc/hooks/autopilot/prompts.ts47### Step 1: Spawn Analyst for Requirements
LOWsrc/hooks/autopilot/prompts.ts67### Step 2: Spawn Architect for Technical Spec
LOWsrc/hooks/autopilot/prompts.ts99### Step 3: Save Combined Spec
LOWsrc/hooks/autopilot/prompts.ts104### Step 4: Signal Completion
LOWsrc/hooks/autopilot/prompts.ts124### Step 1: Read Spec
LOWsrc/hooks/autopilot/prompts.ts128### Step 2: Create Plan via Architect
LOWsrc/hooks/autopilot/prompts.ts166### Step 3: Validate Plan via Critic
LOWsrc/hooks/subagent-tracker/__tests__/flush-race.test.ts200 // Step 1: Write initial state to disk
LOWsrc/hooks/subagent-tracker/__tests__/flush-race.test.ts216 // Step 2: Queue a pending write with a different agent
LOWsrc/hooks/subagent-tracker/__tests__/flush-race.test.ts231 // Step 3: Simulate another process writing to disk between our read and flush
LOWsrc/hooks/subagent-tracker/__tests__/flush-race.test.ts253 // Step 4: Flush pending writes - should merge, not overwrite
LOWsrc/hooks/subagent-tracker/__tests__/flush-race.test.ts256 // Step 5: Verify all three agents are preserved
LOWsrc/notifications/slack-socket.ts516 // Step 1: Get WebSocket URL via apps.connections.open
LOWsrc/notifications/slack-socket.ts531 // Step 2: Connect via WebSocket with tracked listeners
LOWsrc/hud/sanitize.ts82 // Step 1: Strip terminal control sequences (preserving color/style SGR codes)
LOWsrc/hud/sanitize.ts85 // Step 2: Replace variable-width Unicode with ASCII
LOWsrc/hud/sanitize.ts88 // Step 3: Preserve multi-line output, just trim each line
LOWsrc/hud/sanitize.ts93 // Step 4: Remove leading/trailing empty lines
Redundant / Tautological Comments16 hits · 26 pts
SeverityFileLineSnippet
LOWbenchmark/evaluate.py41 # Check if it's JSONL by looking for newlines and trying to parse first line
LOWbenchmark/evaluate.py45 # Check if file has .jsonl extension
LOWbenchmark/evaluate.py54 # Check if it has instance_id field (JSONL format indicator)
LOWbenchmark/entrypoint.sh26 # Check if OMC source is mounted
LOWscripts/sync-metadata.ts11 * npm run sync-metadata -- --verify # Check if files are in sync
LOWscripts/setup-progress.sh64 # Check if state is stale (older than 24 hours)
LOWskills/project-session-manager/psm.sh493 # Check if tmux session exists
LOWskills/project-session-manager/psm.sh644 # Check if we're in a worktree
LOWskills/project-session-manager/lib/worktree.sh65 # Check if worktree already exists
LOWskills/project-session-manager/lib/worktree.sh106 # Check if worktree already exists
LOWskills/project-session-manager/lib/worktree.sh151 # Check if worktree already exists
LOWskills/project-session-manager/lib/parse.sh147# Check if input matches a configured Jira project
LOWskills/project-session-manager/lib/tmux.sh4# Check if tmux is available
LOWskills/project-session-manager/lib/tmux.sh20 # Check if session already exists
LOWskills/project-session-manager/lib/tmux.sh186# Check if a tmux session exists
LOW…lls/project-session-manager/lib/providers/interface.sh14# Check if a provider is available (CLI installed)
Self-Referential Comments5 hits · 15 pts
SeverityFileLineSnippet
MEDIUMscripts/uninstall.sh103 # Create a backup
MEDIUMskills/project-session-manager/lib/worktree.sh54# Create a worktree for PR review
MEDIUMskills/project-session-manager/lib/worktree.sh93# Create a worktree for issue fix
MEDIUMskills/project-session-manager/lib/worktree.sh138# Create a worktree for feature development
MEDIUMskills/project-session-manager/lib/tmux.sh9# Create a tmux session
Excessive Try-Catch Wrapping15 hits · 14 pts
SeverityFileLineSnippet
LOWbenchmark/setup.sh101except Exception as e:
MEDIUMbenchmark/run_benchmark.py32 print("Error: datasets library not installed. Run: pip install datasets")
LOWbenchmark/run_benchmark.py196 except Exception as e:
LOWbenchmark/run_benchmark.py324 except Exception as e:
LOWbenchmark/run_benchmark.py365 except Exception as e:
LOWbenchmark/run_benchmark.py407 except Exception as e:
LOWbenchmark/run_benchmark.py416 except Exception as e:
LOWbenchmark/run_benchmark.py466 except Exception as e:
LOWbridge/gyoshu_bridge.py289 except Exception:
LOWbridge/gyoshu_bridge.py925 except Exception as e:
LOWbridge/gyoshu_bridge.py1132 except Exception as e:
LOWbridge/gyoshu_bridge.py1138 except Exception:
LOWbridge/gyoshu_bridge.py683 except Exception as e:
LOWbridge/gyoshu_bridge.py1005 except Exception:
LOWbridge/gyoshu_bridge.py1094 except Exception as e:
Over-Commented Block15 hits · 14 pts
SeverityFileLineSnippet
LOWscripts/test-pr25.sh1#!/usr/bin/env bash
LOWscripts/find-node.sh1#!/bin/sh
LOW.github/FUNDING.yml1# GitHub Sponsors configuration
LOWskills/project-session-manager/lib/parse.sh1#!/usr/bin/env bash
LOWsrc/features/delegation-enforcer.ts21
LOWsrc/team/conflict-mailbox.ts1// src/team/conflict-mailbox.ts
LOWsrc/team/worker-commit-cadence.ts1// src/team/worker-commit-cadence.ts
LOWsrc/team/merge-orchestrator.ts1// src/team/merge-orchestrator.ts
LOWsrc/team/merge-orchestrator.ts21// M6: persisted SHA state + restart recovery.
LOWsrc/team/merge-orchestrator.ts41// page the leader. This keeps the leader inbox actionable instead of a
LOWsrc/team/__tests__/worktree-runtime-e2e.test.ts61
LOWsrc/team/__tests__/helpers/git-fixture.ts1// src/team/__tests__/helpers/git-fixture.ts
LOWsrc/hooks/bridge.ts2381 preToolMessages.push(
LOWsrc/hooks/__tests__/bridge-routing.test.ts1901 const result = await processHook('totally-unknown-hook-xyz' as HookType, input);
LOWsrc/hooks/persistent-mode/index.ts941 return null;
Synthetic Comment Markers2 hits · 10 pts
SeverityFileLineSnippet
HIGHsrc/hud/types.ts598 sessionSummary: boolean; // Show AI-generated session summary (<20 chars) - generated every 10 turns via claude -p
HIGHsrc/hud/types.ts729 sessionSummary: false, // Disabled by default - opt-in AI-generated session summary
Deep Nesting10 hits · 9 pts
SeverityFileLineSnippet
LOWbenchmark/run_benchmark.py263
LOWbenchmark/run_benchmark.py369
LOWbenchmark/run_benchmark.py431
LOWbenchmark/analyze_failures.py435
LOWbenchmark/compare_results.py29
LOWbenchmark/compare_results.py127
LOWbenchmark/evaluate.py30
LOWbenchmark/evaluate.py201
LOWbridge/gyoshu_bridge.py245
LOWbridge/gyoshu_bridge.py1012
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMbenchmark/evaluate.py149 # Build command for swebench harness
MEDIUMskills/self-improve/scripts/validate.sh251 # from harness.md). validate.sh only checks structural schema, not taxonomy.
MEDIUMsrc/hooks/keyword-detector/index.ts632 // robust to surrounding whitespace, namespace prefixes (`/omc:`,
Fake / Example Data9 hits · 9 pts
SeverityFileLineSnippet
LOWseminar/demos/demo-2-ultrawork.md126 const user = createUser("John Doe");
LOWsrc/__tests__/resolve-transcript-path.test.ts145 GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com',
LOWsrc/__tests__/resolve-transcript-path.test.ts146 GIT_COMMITTER_NAME: 'test', GIT_COMMITTER_EMAIL: 'test@test.com',
LOWsrc/__tests__/worktree-metadata-locking.test.ts14 execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' });
LOWsrc/team/__tests__/git-worktree.test.ts25 execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' });
LOWsrc/team/__tests__/merge-coordinator.test.ts17 execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' });
LOWsrc/lib/__tests__/worktree-paths.test.ts414 env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test',
LOWsrc/lib/__tests__/worktree-paths.test.ts450 env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test',
LOWsrc/lib/__tests__/worktree-paths.test.ts458 env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test',
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippet
HIGHskills/configure-notifications/SKILL.md882. Visit: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippet
LOWscripts/setup-progress.sh3# Usage:
LOWskills/self-improve/scripts/validate.sh3# Usage:
Unused Imports2 hits · 2 pts
SeverityFileLineSnippet
LOWbenchmark/run_benchmark.py27
LOWbenchmark/evaluate.py16
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippet
LOWexamples/hooks.json89 "message": "REMINDER: Don't forget to write tests for this new file. Use the /tdd command for test-driven deve
LOWsrc/features/model-routing/prompts/haiku.ts47 .replace(/don't forget to\s+/gi, '')