Teams-first Multi-agent orchestration for Claude Code
This report summarizes scanner evidence for Yeachan-Heo/oh-my-claudecode, a TypeScript project with 39,773 GitHub stars. SynthScan examined 569,316 lines of code across 1823 source files, recording 1821 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 4.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1557 finding(s).
Are imports declared and package/API names verified? 29 finding(s).
Are wrappers, guards, and repeated structures necessary? 1538 finding(s).
Which changes need focused human review? 1821 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1821 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/lint/issue-4154-windows-claude-invocation.test.ts | 113 | expect(source).toContain('export function runAutoresearchSetupSession('); | CODE |
| LOW | tests/lint/issue-4154-windows-claude-invocation.test.ts | 116 | const functionStart = source.indexOf('export function runAutoresearchSetupSession('); | CODE |
| LOW | tests/lint/issue-4154-windows-claude-invocation.test.ts | 192 | const functionStart = source.indexOf('export function runAutoresearchSetupSession('); | CODE |
| LOW | tests/lint/issue-4147-processStart-encoding.test.ts | 29 | expect(content).toContain('function encodeProcessStartForFilename(processStart)'); | CODE |
| LOW | tests/lint/issue-4147-processStart-encoding.test.ts | 33 | expect(content).toContain('function decodeProcessStartFromFilename(encoded)'); | CODE |
| LOW | …s/integration/workflow-profile-stop-transition.test.ts | 133 | function expectStateExceptLiveness(actual, expected) { | CODE |
| LOW | benchmarks/harsh-critic/scoring/parser.ts | 88 | function lineMatchesAnyHeadingAlias(line: string, aliases: RegExp[]): boolean { | CODE |
| LOW | benchmarks/harsh-critic/scoring/parser.ts | 120 | function extractListItemsFromSection(sectionLines: string[]): string[] { | CODE |
| LOW | benchmarks/shared/scorer.ts | 113 | export function validateSharedGroundTruth(value: unknown): GroundTruth { | CODE |
| LOW | benchmarks/shared/scorer.ts | 149 | export function normalizeForSharedScoring( | CODE |
| LOW | benchmarks/shared/scorer.ts | 213 | export function aggregateScoresUnknownCapable( | CODE |
| LOW | benchmarks/shared/runner.ts | 97 | export function fixtureDomainFromDirectory(directory: string): Domain { | CODE |
| LOW | scripts/test-notepad-integration.ts | 159 | function testMultipleWorkingMemoryEntries(): void { | CODE |
| LOW | scripts/test-notepad-integration.ts | 195 | function testPriorityContextOversize(): void { | CODE |
| LOW | scripts/test-notepad-integration.ts | 205 | function testPriorityContextReplacement(): void { | CODE |
| LOW | scripts/test-notepad-integration.ts | 231 | function testFormatNotepadContextEmpty(): void { | CODE |
| LOW | scripts/test-notepad-integration.ts | 313 | function testRememberTagProcessing(): void { | CODE |
| LOW | scripts/test-notepad-integration.ts | 356 | function testRememberTagWithMultipleMatches(): void { | CODE |
| LOW | scripts/test-notepad-integration.ts | 390 | function testRememberTagIgnoresNonTaskTools(): void { | CODE |
| LOW | scripts/release.ts | 115 | function getNonMergeCommitLinesSinceTag(tag: string): string[] { | CODE |
| LOW | scripts/release.ts | 148 | function toReleaseNoteEntryFromCommit(commit: ParsedCommit): ReleaseNoteEntry { | CODE |
| LOW | scripts/release.ts | 209 | async function fetchCompareCommitAuthors(prevTag: string): Promise<string[]> { | CODE |
| LOW | scripts/release.ts | 286 | function buildFallbackPullRequests(prNumbers: string[], subjects: string[]): ReleasePullRequest[] { | CODE |
| LOW | src/ultragoal/artifacts.ts | 263 | function textMentionsUltragoalPlanArtifact(value: string | undefined): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 274 | function textHasCompletionValidationEvidence(value: string | undefined): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 283 | async function snapshotObjectiveMapsToUltragoalPlan(cwd: string, snapshotObjective: string, planId?: string): Promise<bo | CODE |
| LOW | src/ultragoal/artifacts.ts | 296 | async function canReconcileCompletedTaskScopedAggregateSnapshot( | CODE |
| LOW | src/ultragoal/artifacts.ts | 311 | function assertActiveInProgressCheckpoint(plan: UltragoalPlan, goal: UltragoalItem, checkpointKind: string): void { | CODE |
| LOW | src/ultragoal/artifacts.ts | 317 | function buildCompletedLegacyGoalRemediation(goal: UltragoalItem): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 354 | export function isFinalRunCompletionCandidate(plan: UltragoalPlan, goal: UltragoalItem): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 755 | export async function recordFinalReviewBlockers(cwd: string, options: RecordFinalReviewBlockersOptions): Promise<{ plan: | CODE |
| LOW | src/ultragoal/artifacts.ts | 825 | export function buildClaudeGoalInstruction(goal: UltragoalItem, plan: UltragoalPlan): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 830 | function buildPerStoryClaudeGoalInstruction(goal: UltragoalItem, plan: UltragoalPlan): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 876 | function buildAggregateClaudeGoalInstruction(goal: UltragoalItem, plan: UltragoalPlan): string { | CODE |
| LOW | src/autoresearch/contracts.ts | 86 | function parseSimpleYamlFrontmatter(frontmatter: string): Record<string, unknown> { | CODE |
| LOW | src/autoresearch/contracts.ts | 204 | export async function loadAutoresearchMissionContract(missionDirArg: string): Promise<AutoresearchMissionContract> { | CODE |
| LOW | src/autoresearch/runtime.ts | 157 | export function getAutoresearchMissionArtifactLayout( | CODE |
| LOW | src/autoresearch/runtime.ts | 285 | async function ensureAutoresearchWorktreeDependencies(repoRoot: string, worktreePath: string): Promise<void> { | CODE |
| LOW | src/autoresearch/runtime.ts | 333 | function isAllowedRuntimeDirtyPath(path: string): boolean { | CODE |
| LOW | src/autoresearch/runtime.ts | 339 | function allowedBootstrapDirtyPaths( | CODE |
| LOW | src/autoresearch/runtime.ts | 356 | function isAllowedRuntimeDirtyLine( | CODE |
| LOW | src/autoresearch/runtime.ts | 398 | async function assertAutoresearchLockAvailable(projectRoot: string): Promise<void> { | CODE |
| LOW | src/autoresearch/runtime.ts | 431 | async function deactivateAutoresearchRun(manifest: AutoresearchRunManifest): Promise<void> { | CODE |
| LOW | src/autoresearch/runtime.ts | 494 | async function initializeAutoresearchResultsFile(resultsFile: string): Promise<void> { | CODE |
| LOW | src/autoresearch/runtime.ts | 500 | async function appendAutoresearchResultsRow( | CODE |
| LOW | src/autoresearch/runtime.ts | 521 | async function appendAutoresearchLedgerEntry(ledgerFile: string, entry: AutoresearchLedgerEntry): Promise<void> { | CODE |
| LOW | src/autoresearch/runtime.ts | 542 | async function readAutoresearchLedgerEntries(ledgerFile: string): Promise<AutoresearchLedgerEntry[]> { | CODE |
| LOW | src/autoresearch/runtime.ts | 548 | export async function countTrailingAutoresearchNoops(ledgerFile: string): Promise<number> { | CODE |
| LOW | src/autoresearch/runtime.ts | 559 | function formatAutoresearchInstructionSummary( | CODE |
| LOW | src/autoresearch/runtime.ts | 577 | async function buildAutoresearchInstructionContext(manifest: AutoresearchRunManifest): Promise<{ | CODE |
| LOW | src/autoresearch/runtime.ts | 670 | export function decideAutoresearchOutcome( | CODE |
| LOW | src/autoresearch/runtime.ts | 770 | export function buildAutoresearchInstructions( | CODE |
| LOW | src/autoresearch/runtime.ts | 852 | export async function materializeAutoresearchMissionToWorktree( | CODE |
| LOW | src/autoresearch/runtime.ts | 872 | export async function loadAutoresearchRunManifest(projectRoot: string, runId: string): Promise<AutoresearchRunManifest> | CODE |
| LOW | src/autoresearch/runtime.ts | 950 | export async function prepareAutoresearchRuntime( | CODE |
| LOW | src/autoresearch/runtime.ts | 1108 | export async function resumeAutoresearchRuntime(projectRoot: string, runId: string): Promise<PreparedAutoresearchRuntime | CODE |
| LOW | src/autoresearch/runtime.ts | 1161 | export function parseAutoresearchCandidateArtifact(raw: string): AutoresearchCandidateArtifact { | CODE |
| LOW | src/autoresearch/runtime.ts | 1231 | function validateAutoresearchCandidate( | CODE |
| LOW | src/autoresearch/runtime.ts | 1283 | async function failAutoresearchIteration( | CODE |
| LOW | src/autoresearch/runtime.ts | 1330 | export async function processAutoresearchCandidate( | CODE |
| 1243 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | bridge/gyoshu_bridge.py | 299 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | bridge/gyoshu_bridge.py | 301 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | bridge/gyoshu_bridge.py | 935 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | bridge/gyoshu_bridge.py | 937 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | bridge/gyoshu_bridge.py | 1142 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | bridge/gyoshu_bridge.py | 1144 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 40 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 42 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 97 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 99 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 195 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 197 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 240 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 242 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 520 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 522 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 595 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 597 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 704 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 706 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 821 | # ============================================================================= | COMMENT |
| MEDIUM | bridge/gyoshu_bridge.py | 823 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 95 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 97 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 126 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 128 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 142 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 144 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 177 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 179 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 220 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 222 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 265 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 267 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 322 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 324 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 360 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 362 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 427 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 429 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 475 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 477 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 510 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/test-pr25.sh | 512 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/find-node.sh | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/find-node.sh | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/find-node.sh | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/find-node.sh | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 72 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 74 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/find-node.sh | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/find-node.sh | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 132 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 134 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/find-node.sh | 146 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/release.ts | 43 | // ── Colors ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/release.ts | 60 | // ── Types ─────────────────────────────────────────────────────────────────── | COMMENT |
| 145 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | benchmark/quick_test.sh | 84 | # Step 1: Run quick vanilla test | COMMENT |
| LOW⚡ | benchmark/quick_test.sh | 91 | # Step 2: Run quick OMC test | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 115 | # Step 1: Run vanilla benchmark | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 130 | # Step 2: Run OMC benchmark | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 145 | # Step 3: Evaluate both runs | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 186 | # Step 4: Generate comparison report | COMMENT |
| LOW⚡ | docs/SYNC-SYSTEM.md | 472 | ### Step 1: Audit Current State | COMMENT |
| LOW⚡ | docs/SYNC-SYSTEM.md | 479 | ### Step 2: Standardize Format | COMMENT |
| LOW⚡ | docs/SYNC-SYSTEM.md | 488 | ### Step 3: Run Initial Sync | COMMENT |
| LOW⚡ | docs/SYNC-SYSTEM.md | 496 | ### Step 4: Add to Workflow | COMMENT |
| LOW⚡ | docs/SYNC-SYSTEM.md | 500 | ### Step 5: Document for Team | COMMENT |
| LOW | docs/REFERENCE.md | 39 | # Step 1: Add the marketplace | COMMENT |
| LOW | docs/REFERENCE.md | 42 | # Step 2: Install the plugin | COMMENT |
| LOW | docs/GETTING-STARTED.md | 37 | ### Step 1: Add the marketplace source | COMMENT |
| LOW | docs/GETTING-STARTED.md | 45 | ### Step 2: Install the plugin | COMMENT |
| LOW | docs/GETTING-STARTED.md | 70 | ### Step 3: Run initial setup | COMMENT |
| LOW⚡ | seminar/notes.md | 616 | # Step 1: Install OMC | COMMENT |
| LOW⚡ | seminar/notes.md | 619 | # Step 2: Run setup wizard | COMMENT |
| LOW⚡ | seminar/notes.md | 622 | # Step 3: Start using it | COMMENT |
| LOW | skills/skill/SKILL.md | 367 | #### Step 1: Directory Check and Setup | COMMENT |
| LOW | skills/skill/SKILL.md | 391 | #### Step 2: Skill Scan and Inventory | COMMENT |
| LOW | skills/skill/SKILL.md | 450 | #### Step 3: Quick Actions Menu | COMMENT |
| LOW | skills/deepinit/SKILL.md | 105 | ### Step 1: Map Directory Structure | COMMENT |
| LOW | skills/deepinit/SKILL.md | 112 | ### Step 2: Create Work Plan | COMMENT |
| LOW | skills/deepinit/SKILL.md | 123 | ### Step 3: Generate Level by Level | COMMENT |
| LOW | skills/deepinit/SKILL.md | 133 | ### Step 4: Compare and Update (if exists) | COMMENT |
| LOW | skills/deepinit/SKILL.md | 150 | ### Step 5: Validate Hierarchy | COMMENT |
| LOW | skills/omc-doctor/SKILL.md | 15 | ### Step 1: Check Plugin Version | COMMENT |
| LOW⚡ | skills/omc-doctor/SKILL.md | 28 | ### Step 2: Check for Legacy Hooks in settings.json | COMMENT |
| LOW⚡ | skills/omc-doctor/SKILL.md | 38 | ### Step 3: Check for Legacy Bash Hook Scripts | COMMENT |
| LOW⚡ | skills/omc-doctor/SKILL.md | 47 | ### Step 4: Check CLAUDE.md | COMMENT |
| LOW | skills/omc-doctor/SKILL.md | 77 | ### Step 5: Check Ralph Runtime Prerequisites | COMMENT |
| LOW | skills/omc-doctor/SKILL.md | 92 | ### Step 6: Check for Stale Plugin Cache | COMMENT |
| LOW | skills/omc-doctor/SKILL.md | 102 | ### Step 7: Check for Legacy Curl-Installed Content | COMMENT |
| LOW | skills/external-context/SKILL.md | 28 | ### Step 1: Facet Decomposition | COMMENT |
| LOW | skills/external-context/SKILL.md | 45 | ### Step 2: Parallel Agent Invocation | COMMENT |
| LOW | skills/external-context/SKILL.md | 57 | ### Step 3: Synthesis Output Format | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 48 | ### Step 1: Detect Existing Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 72 | ### Step 2: Create a Telegram Bot | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 94 | ### Step 3: Collect Bot Token | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 106 | ### Step 4: Collect Chat ID | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 125 | ### Step 5: Choose Parse Mode | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 135 | ### Step 6: Configure Events | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 149 | ### Step 7: Write Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 189 | ### Step 8: Test the Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 230 | ### Step 9: Confirm | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 274 | ### Step 1: Detect Existing Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 302 | ### Step 2: Choose Discord Method | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 335 | ### Step 4: Configure Mention (User Ping) | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 358 | ### Step 5: Configure Events | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 372 | ### Step 6: Optional Username Override | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 383 | ### Step 7: Write Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 448 | ### Step 8: Test the Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 472 | ### Step 9: Confirm | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 524 | ### Step 1: Detect Existing Configuration | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 550 | ### Step 2: Create a Slack Incoming Webhook | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 568 | ### Step 3: Collect Webhook URL | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 580 | ### Step 4: Configure Mention (User/Group Ping) | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 606 | ### Step 5: Configure Events | COMMENT |
| LOW | skills/configure-notifications/SKILL.md | 620 | ### Step 6: Optional Channel Override | COMMENT |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | benchmark/quick_test.sh | 84 | # Step 1: Run quick vanilla test | COMMENT |
| LOW⚡ | benchmark/quick_test.sh | 91 | # Step 2: Run quick OMC test | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 115 | # Step 1: Run vanilla benchmark | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 130 | # Step 2: Run OMC benchmark | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 145 | # Step 3: Evaluate both runs | COMMENT |
| LOW | benchmark/run_full_comparison.sh | 186 | # Step 4: Generate comparison report | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 523 | // Step 1: Validate input with Zod | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 545 | // Step 2: Validate session ID (path traversal protection) | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 562 | // Step 3: Validate action-specific requirements | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 575 | // Step 4: Acquire session lock | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 587 | // Step 5: Ensure bridge is running | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 603 | // Step 6: Dispatch to action handler | COMMENT |
| LOW | src/tools/python-repl/tool.ts | 668 | // Step 7: Always release lock | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 41 | // Step 1: Analyze the task | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 44 | // Step 2: Identify parallelizable components | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 47 | // Step 3: Identify shared files | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 50 | // Step 4: Generate subtasks with file ownership | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 53 | // Step 5: Assign non-overlapping file ownership | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 56 | // Step 6: Determine execution order | COMMENT |
| LOW⚡ | src/features/task-decomposer/index.ts | 59 | // Step 7: Validate decomposition | COMMENT |
| LOW | src/cli/index.ts | 1323 | // Step 1: Run installation (which handles hooks, agents, skills) | COMMENT |
| LOW | src/cli/index.ts | 1369 | // Step 2: Show summary | COMMENT |
| LOW | src/hooks/autopilot/state.ts | 553 | // Step 1: Preserve Ralph progress in autopilot state | COMMENT |
| LOW⚡ | src/hooks/autopilot/state.ts | 571 | // Step 2: Deactivate Ralph, keeping the state file on disk for rollback. | COMMENT |
| LOW⚡ | src/hooks/autopilot/state.ts | 575 | // Step 3: Transition to QA phase | COMMENT |
| LOW | src/hooks/autopilot/state.ts | 588 | // Step 4: QA phase owns its own cycling; clear Ralph state (best-effort). | COMMENT |
| LOW | src/hooks/autopilot/prompts.ts | 48 | ### Step 1: Spawn Analyst for Requirements | COMMENT |
| LOW | src/hooks/autopilot/prompts.ts | 68 | ### Step 2: Spawn Architect for Technical Spec | COMMENT |
| LOW⚡ | src/hooks/autopilot/prompts.ts | 100 | ### Step 3: Save Combined Spec | COMMENT |
| LOW⚡ | src/hooks/autopilot/prompts.ts | 105 | ${includeLegacyCompletion ? `### Step 4: Signal Completion | CODE |
| LOW⚡ | src/hooks/autopilot/prompts.ts | 125 | ### Step 1: Read Spec | COMMENT |
| LOW⚡ | src/hooks/autopilot/prompts.ts | 129 | ### Step 2: Create Plan via Architect | COMMENT |
| LOW | src/hooks/autopilot/prompts.ts | 167 | ### Step 3: Validate Plan via Critic | COMMENT |
| LOW | src/hooks/subagent-tracker/__tests__/flush-race.test.ts | 210 | // Step 1: Write initial state to disk | COMMENT |
| LOW | src/hooks/subagent-tracker/__tests__/flush-race.test.ts | 226 | // Step 2: Queue a pending write with a different agent | COMMENT |
| LOW | src/hooks/subagent-tracker/__tests__/flush-race.test.ts | 241 | // Step 3: Simulate another process writing to disk between our read and flush | COMMENT |
| LOW⚡ | src/hooks/subagent-tracker/__tests__/flush-race.test.ts | 263 | // Step 4: Flush pending writes - should merge, not overwrite | COMMENT |
| LOW⚡ | src/hooks/subagent-tracker/__tests__/flush-race.test.ts | 266 | // Step 5: Verify all three agents are preserved | COMMENT |
| LOW | src/notifications/slack-socket.ts | 521 | // Step 1: Get WebSocket URL via apps.connections.open | COMMENT |
| LOW | src/notifications/slack-socket.ts | 536 | // Step 2: Connect via WebSocket with tracked listeners | COMMENT |
| LOW⚡ | src/hud/sanitize.ts | 82 | // Step 1: Strip terminal control sequences (preserving color/style SGR codes) | COMMENT |
| LOW⚡ | src/hud/sanitize.ts | 85 | // Step 2: Replace variable-width Unicode with ASCII | COMMENT |
| LOW⚡ | src/hud/sanitize.ts | 88 | // Step 3: Preserve multi-line output, just trim each line | COMMENT |
| LOW⚡ | src/hud/sanitize.ts | 93 | // Step 4: Remove leading/trailing empty lines | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | benchmark/compare_results.py | 82 | except json.JSONDecodeError: | CODE |
| HIGH | benchmark/evaluate.py | 296 | except (json.JSONDecodeError, KeyError): | CODE |
| HIGH | benchmark/evaluate.py | 57 | except json.JSONDecodeError: | CODE |
| HIGH | benchmark/evaluate.py | 273 | except ValueError: | CODE |
| HIGH | benchmark/evaluate.py | 278 | except ValueError: | CODE |
| HIGH | bridge/gyoshu_bridge.py | 956 | except FileNotFoundError: | CODE |
| HIGH | bridge/gyoshu_bridge.py | 958 | except OSError: | CODE |
| HIGH | bridge/gyoshu_bridge.py | 949 | except OSError: | CODE |
| HIGH | bridge/gyoshu_bridge.py | 1056 | except OSError: | CODE |
| HIGH | bridge/gyoshu_bridge.py | 1138 | except Exception: | CODE |
| HIGH | bridge/gyoshu_bridge.py | 1105 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skills/harbor/SKILL.md | 129 | > 🤖 Generated by AI during harbor intake. **Decision status: Pending maintainer decision.** | CODE |
| HIGH | src/__tests__/shipyard-skills.test.ts | 305 | expect(HARBOR).toContain('🤖 Generated by AI during harbor intake. **Decision status: Pending maintainer decision.**' | CODE |
| HIGH⚡ | src/hooks/merge-readiness/runtime.ts | 854 | // Only treat as a fallback answer when no AI-generated MCQs are pending; | COMMENT |
| HIGH | src/hooks/merge-readiness/types.ts | 85 | // AI-generated explanation narrative (5 sections). Populated by setMergeReadinessContent. | COMMENT |
| HIGH | src/hooks/merge-readiness/types.ts | 114 | // AI-generated explanation narrative (5 sections), captured so a retained | COMMENT |
| HIGH | src/hud/types.ts | 659 | sessionSummary: boolean; // Show AI-generated session summary (<20 chars) - generated every 10 turns via claude -p | CODE |
| HIGH | src/hud/types.ts | 790 | sessionSummary: false, // Disabled by default - opt-in AI-generated session summary | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.fr.md | 112 | ### Modes d'orchestration | COMMENT |
| MEDIUM | CHANGELOG.md | 26 | - **fix(#4221): parse before mode lookup, drop lossy substring skip; cover git-guardrails worker path** (#4221) | CODE |
| MEDIUM | docs/REFERENCE.md | 1239 | # Stop active orchestration | COMMENT |
| MEDIUM | docs/HOOKS.md | 336 | #### Git Guardrails (`git-guardrails.mjs`) | COMMENT |
| MEDIUM | .github/release-body.md | 26 | - **fix(#4221): parse before mode lookup, drop lossy substring skip; cover git-guardrails worker path** (#4221) | CODE |
| MEDIUM | skills/trace/SKILL.md | 85 | ## Team-mode orchestration shape | COMMENT |
| MEDIUM | src/cli/index.ts | 942 | console.log(' /omc <task> # Activate OMC orchestration mode'); | CODE |
| MEDIUM | src/__tests__/ralph-prd-mandatory.test.ts | 514 | // Auto-generate scaffold | COMMENT |
| MEDIUM | src/__tests__/context-bloat-2577.test.ts | 2 | * Regression tests for issue #2577: context window bloat | COMMENT |
| MEDIUM | src/__tests__/tier0-docs-consistency.test.ts | 66 | it('keeps issue #3316 failure-mode guardrails in the installed CLAUDE.md template', () => { | CODE |
| MEDIUM | src/hooks/ralph/prd.ts | 596 | // scaffold. The exclusive lock below owns directory creation so a | COMMENT |
| MEDIUM | src/hooks/task-size-detector/index.ts | 6 | * Issue #790: OMC orchestration modes (ralph, autopilot, team) are overkill for small tasks. | COMMENT |
| MEDIUM | src/hooks/__tests__/bridge-routing.test.ts | 461 | 'ralph fix the regression in src/hooks/bridge.ts after issue #1795 by tracing keyword-detector into persiste | CODE |
| MEDIUM | src/hooks/__tests__/bridge-routing.test.ts | 633 | const prompt = 'autopilot implement issue #2623 on this branch by tracing the bridge-side keyword producer, seed | CODE |
| MEDIUM | src/hooks/__tests__/bridge-routing.test.ts | 684 | prompt: 'ralplan implement issue #2623 by tracing the keyword-routed planning entrypoint, seeding deterministi | CODE |
| MEDIUM | src/factory/map-run.ts | 159 | // ensure may have created a scaffold or found an older PRD; the map run owns | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | native/contained-fs.c | 1 | /* Node-API 8: descriptor-relative filesystem operations for the graph store. */ | COMMENT |
| LOW | scripts/test-pr25.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/find-node.sh | 1 | #!/bin/sh | COMMENT |
| LOW | .github/FUNDING.yml | 1 | # GitHub Sponsors configuration | COMMENT |
| LOW | .github/workflows/upgrade-test.yml | 41 | # Keep Claude Code installed in CI so the upgrade path still runs in a | COMMENT |
| LOW | .github/workflows/upgrade-test.yml | 101 | # Establishes the "old version" baseline before `omc update` is run. | COMMENT |
| LOW | .github/workflows/upgrade-test.yml | 161 | echo "Expected version 4.9.3, got: $INSTALLED_VERSION" | COMMENT |
| LOW | .github/workflows/ci.yml | 81 | # better-sqlite3 12.10+ no longer ships a Node 20 Windows prebuild. | COMMENT |
| LOW | skills/project-session-manager/lib/parse.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/graph/runtime/fence.ts | 221 | operations.rename(lockPath, tombstone); | COMMENT |
| LOW | src/graph/runtime/runner.ts | 61 | SchedulerTransitionIdentities, | COMMENT |
| LOW | src/__tests__/hud/stdin.test.ts | 441 | const stateDir = join(tmpRoot, '.omc', 'state'); | COMMENT |
| LOW | src/team/conflict-mailbox.ts | 1 | // src/team/conflict-mailbox.ts | COMMENT |
| LOW | src/team/worker-commit-cadence.ts | 1 | // src/team/worker-commit-cadence.ts | COMMENT |
| LOW | src/team/model-contract.ts | 301 | cursor: { | COMMENT |
| LOW | src/team/merge-orchestrator.ts | 1 | // src/team/merge-orchestrator.ts | COMMENT |
| LOW | src/team/merge-orchestrator.ts | 21 | // M6: persisted SHA state + restart recovery. | COMMENT |
| LOW | src/team/merge-orchestrator.ts | 41 | // page the leader. This keeps the leader inbox actionable instead of a | COMMENT |
| LOW | src/team/worker-launch-ack.ts | 2121 | let resolveWindowsTerminal!: (verified: boolean) => void; | COMMENT |
| LOW | src/team/tmux-session.ts | 2161 | ); | COMMENT |
| LOW | src/team/__tests__/worktree-runtime-e2e.test.ts | 61 | COMMENT | |
| LOW | src/team/__tests__/helpers/git-fixture.ts | 1 | // src/team/__tests__/helpers/git-fixture.ts | COMMENT |
| LOW | src/hooks/bridge.ts | 2481 | // only via `processHook('pre-tool-use', ...)` which is called from tests under | COMMENT |
| LOW | src/hooks/__tests__/bridge-routing.test.ts | 2241 | }); | COMMENT |
| LOW | src/hooks/keyword-detector/index.ts | 641 | // But a quoted keyword paired with a nearby execution directive OR | COMMENT |
| LOW | src/hooks/keyword-detector/index.ts | 1021 | /\b[a-z]+(?:[A-Z][a-z]+)+\b/, | COMMENT |
| LOW | src/hooks/persistent-mode/index.ts | 1161 | // so by the time we get here, the state file is either explicitly bound | COMMENT |
| LOW | src/hooks/subagent-tracker/index.ts | 921 | agentIndex !== -1 ? state.agents[agentIndex] : undefined; | COMMENT |
| LOW | src/hooks/subagent-tracker/index.ts | 961 | // the evidence still only in memory. | COMMENT |
| LOW | src/hooks/subagent-tracker/__tests__/index.test.ts | 1801 | COMMENT | |
| LOW | src/alias-retirement/__tests__/registry.test.ts | 61 | const allAliases = new Set(ALIAS_REGISTRY.map((r) => r.alias.toLowerCase())); | COMMENT |
| LOW | src/alias-retirement/__tests__/registry.test.ts | 81 | // Raised 38 -> 39 canonical when agent-doc-discipline shipped as a real | COMMENT |
| LOW | src/hud/transcript.ts | 461 | result.sessionStart = timestamp; | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | benchmark/evaluate.py | 41 | # Check if it's JSONL by looking for newlines and trying to parse first line | COMMENT |
| LOW⚡ | benchmark/evaluate.py | 45 | # Check if file has .jsonl extension | COMMENT |
| LOW⚡ | benchmark/evaluate.py | 54 | # Check if it has instance_id field (JSONL format indicator) | COMMENT |
| LOW | benchmark/entrypoint.sh | 26 | # Check if OMC source is mounted | COMMENT |
| LOW | scripts/sync-metadata.ts | 11 | * npm run sync-metadata -- --verify # Check if files are in sync | COMMENT |
| LOW | scripts/setup-progress.sh | 69 | # Check if state is stale (older than 24 hours) | COMMENT |
| LOW | skills/project-session-manager/psm.sh | 573 | # Check if tmux session exists | COMMENT |
| LOW | skills/project-session-manager/psm.sh | 724 | # Check if we're in a worktree | COMMENT |
| LOW | skills/project-session-manager/lib/worktree.sh | 65 | # Check if worktree already exists | COMMENT |
| LOW | skills/project-session-manager/lib/worktree.sh | 106 | # Check if worktree already exists | COMMENT |
| LOW | skills/project-session-manager/lib/worktree.sh | 151 | # Check if worktree already exists | COMMENT |
| LOW | skills/project-session-manager/lib/parse.sh | 147 | # Check if input matches a configured Jira project | COMMENT |
| LOW | skills/project-session-manager/lib/tmux.sh | 4 | # Check if tmux is available | COMMENT |
| LOW | skills/project-session-manager/lib/tmux.sh | 40 | # Check if session already exists | COMMENT |
| LOW | skills/project-session-manager/lib/tmux.sh | 218 | # Check if a tmux session exists | COMMENT |
| LOW | …lls/project-session-manager/lib/providers/interface.sh | 14 | # Check if a provider is available (CLI installed) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seminar/demos/demo-2-ultrawork.md | 126 | const user = createUser("John Doe"); | CODE |
| LOW | …s/python-repl/__tests__/bridge-manager-cleanup.test.ts | 81 | fs.writeFileSync(getBridgeSocketPath(sessionId), 'placeholder', 'utf-8'); | CODE |
| LOW | …s/python-repl/__tests__/bridge-manager-cleanup.test.ts | 103 | fs.writeFileSync(getBridgeSocketPath(sessionId), 'placeholder', 'utf-8'); | CODE |
| LOW | …s/python-repl/__tests__/bridge-manager-cleanup.test.ts | 128 | fs.writeFileSync(getBridgeSocketPath(sessionId), 'placeholder', 'utf-8'); | CODE |
| LOW | src/__tests__/resolve-transcript-path.test.ts | 186 | GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', | CODE |
| LOW | src/__tests__/resolve-transcript-path.test.ts | 187 | GIT_COMMITTER_NAME: 'test', GIT_COMMITTER_EMAIL: 'test@test.com', | CODE |
| LOW | src/__tests__/worktree-metadata-locking.test.ts | 14 | execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' }); | CODE |
| LOW | src/team/__tests__/multirepo-workspace-team.test.ts | 45 | execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: api, stdio: 'pipe' }); | CODE |
| LOW | src/team/__tests__/git-worktree.test.ts | 25 | execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' }); | CODE |
| LOW | src/team/__tests__/merge-coordinator.test.ts | 17 | execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' }); | CODE |
| LOW | src/team/__tests__/merge-coordinator.test.ts | 148 | execFileSync('git', ['config', 'user.email', 'test@test.com'], { cwd: repoDir, stdio: 'pipe' }); | CODE |
| LOW | src/hooks/subagent-tracker/__tests__/index.test.ts | 1346 | GIT_AUTHOR_EMAIL: "test@test.com", | CODE |
| LOW | src/hooks/subagent-tracker/__tests__/index.test.ts | 1348 | GIT_COMMITTER_EMAIL: "test@test.com", | CODE |
| LOW | src/hooks/subagent-tracker/__tests__/index.test.ts | 1359 | git(repoDir, ["config", "user.email", "test@test.com"]); | CODE |
| LOW⚡ | …s/subagent-tracker/__tests__/worktree-evidence.test.ts | 30 | GIT_AUTHOR_EMAIL: "test@test.com", | CODE |
| LOW⚡ | …s/subagent-tracker/__tests__/worktree-evidence.test.ts | 32 | GIT_COMMITTER_EMAIL: "test@test.com", | CODE |
| LOW⚡ | …s/subagent-tracker/__tests__/worktree-evidence.test.ts | 41 | git(dir, ["config", "user.email", "test@test.com"]); | CODE |
| LOW | src/lib/__tests__/mode-state-io.test.ts | 248 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| LOW | src/lib/__tests__/mode-state-io.test.ts | 254 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| LOW | src/lib/__tests__/worktree-paths.test.ts | 323 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| LOW | src/lib/__tests__/worktree-paths.test.ts | 329 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| LOW | src/lib/__tests__/worktree-paths.test.ts | 514 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| LOW | src/lib/__tests__/worktree-paths.test.ts | 550 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| LOW | src/lib/__tests__/worktree-paths.test.ts | 558 | env: { ...process.env, GIT_AUTHOR_NAME: 'test', GIT_AUTHOR_EMAIL: 'test@test.com', GIT_COMMITTER_NAME: 'test', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/uninstall.sh | 103 | # Create a backup | COMMENT |
| MEDIUM | skills/project-session-manager/lib/worktree.sh | 54 | # Create a worktree for PR review | COMMENT |
| MEDIUM | skills/project-session-manager/lib/worktree.sh | 93 | # Create a worktree for issue fix | COMMENT |
| MEDIUM | skills/project-session-manager/lib/worktree.sh | 138 | # Create a worktree for feature development | COMMENT |
| MEDIUM | skills/project-session-manager/lib/tmux.sh | 28 | # Create a tmux session | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmark/setup.sh | 101 | except Exception as e: | CODE |
| MEDIUM | benchmark/run_benchmark.py | 32 | print("Error: datasets library not installed. Run: pip install datasets") | CODE |
| LOW | benchmark/run_benchmark.py | 196 | except Exception as e: | CODE |
| LOW | benchmark/run_benchmark.py | 324 | except Exception as e: | CODE |
| LOW | benchmark/run_benchmark.py | 365 | except Exception as e: | CODE |
| LOW | benchmark/run_benchmark.py | 407 | except Exception as e: | CODE |
| LOW | benchmark/run_benchmark.py | 416 | except Exception as e: | CODE |
| LOW | benchmark/run_benchmark.py | 466 | except Exception as e: | CODE |
| LOW⚡ | bridge/gyoshu_bridge.py | 289 | except Exception: | CODE |
| LOW⚡ | bridge/gyoshu_bridge.py | 925 | except Exception as e: | CODE |
| LOW⚡ | bridge/gyoshu_bridge.py | 1132 | except Exception as e: | CODE |
| LOW⚡ | bridge/gyoshu_bridge.py | 1138 | except Exception: | CODE |
| LOW | bridge/gyoshu_bridge.py | 683 | except Exception as e: | CODE |
| LOW | bridge/gyoshu_bridge.py | 1005 | except Exception: | CODE |
| LOW | bridge/gyoshu_bridge.py | 1094 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | benchmark/evaluate.py | 149 | # Build command for swebench harness | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 371 | # (The addon itself is darwin-only; its build is exercised by the macOS harness.) | COMMENT |
| MEDIUM | skills/self-improve/scripts/validate.sh | 251 | # from harness.md). validate.sh only checks structural schema, not taxonomy. | COMMENT |
| MEDIUM | src/hooks/keyword-detector/index.ts | 819 | // robust to surrounding whitespace, namespace prefixes (`/omc:`, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/HOOKS.md | 568 | export TYPESAFE_API_KEY="your-api-key" | CODE |
| HIGH | skills/configure-notifications/SKILL.md | 88 | 2. Visit: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/__tests__/hud/usage-api-user-agent.test.ts | 233 | const requests = httpsModule.default.request.mock.calls.map((call) => call[0].headers); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmark/run_benchmark.py | 263 | CODE | |
| LOW | benchmark/run_benchmark.py | 369 | CODE | |
| LOW | benchmark/run_benchmark.py | 431 | CODE | |
| LOW | benchmark/analyze_failures.py | 435 | CODE | |
| LOW | benchmark/compare_results.py | 29 | CODE | |
| LOW | benchmark/compare_results.py | 127 | CODE | |
| LOW | benchmark/evaluate.py | 30 | CODE | |
| LOW | benchmark/evaluate.py | 201 | CODE | |
| LOW | bridge/gyoshu_bridge.py | 245 | CODE | |
| LOW | bridge/gyoshu_bridge.py | 1012 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmark/run_benchmark.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | benchmark/analyze_failures.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | benchmark/compare_results.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | benchmark/evaluate.py | 27 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/hooks/__tests__/workflow-drift-guard-script.test.ts | 357 | writeFileSync(join(cwd, 'index.ts'), 'export function next() {\n // TODO: implement follow-up\n return 1;\n}\n'); | CODE |
| LOW | src/hooks/__tests__/workflow-drift-guard-script.test.ts | 374 | ' // TODO: implement blocker', | CODE |
| LOW | src/hooks/__tests__/workflow-drift-guard-script.test.ts | 386 | writeFileSync(join(cwd, 'index.ts'), 'export function next() {\n // TODO: implement follow-up\n return 1;\n}\n'); | CODE |
| LOW | src/hooks/__tests__/workflow-drift-guard-script.test.ts | 399 | 'const sampleTodo = "// TODO: implement fixture";', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/hooks.json | 89 | "message": "REMINDER: Don't forget to write tests for this new file. Use the /tdd command for test-driven deve | CODE |
| LOW | src/features/lookout/__tests__/lookout.test.ts | 634 | for (const brief of ["Don't forget to git push --force origin feature", "Don't hesitate to rm -rf build"]) { | CODE |
| LOW | src/features/model-routing/prompts/haiku.ts | 47 | .replace(/don't forget to\s+/gi, '') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/setup-progress.sh | 3 | # Usage: | COMMENT |
| LOW | skills/self-improve/scripts/validate.sh | 3 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmark/run_benchmark.py | 27 | CODE | |
| LOW | benchmark/evaluate.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/factory/listener.ts | 326 | async function handleRequest(req: IncomingMessage, res: ServerResponse, config: ListenerConfig, deps: ListenerDeps, star | CODE |