OmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.
This report summarizes scanner evidence for Yeachan-Heo/oh-my-codex, a TypeScript project with 33,507 GitHub stars. SynthScan examined 496,891 lines of code across 1422 source files, recording 3536 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 6.5 (Moderate 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? 3397 finding(s).
Are imports declared and package/API names verified? 37 finding(s).
Are wrappers, guards, and repeated structures necessary? 3443 finding(s).
Which changes need focused human review? 3536 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 3536 distinct pattern matches across 11 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 | playground/bayesopt_highdim_demo/optimizer.py | 25 | def resolve_active_dimensions(dim: int, raw: Any) -> list[int]: | CODE |
| LOW | playground/adaptive_sort_demo/sort_benchmark.py | 93 | def longest_non_decreasing_run(values: list[int]) -> int: | CODE |
| LOW | docs/pipeline/github-pr-package-identity.md | 146 | async function createPackageIdempotently(issue: Issue, classification: Classification) { | CODE |
| LOW | packages/vscode-extension/src/core.ts | 14 | function extensionBundledCoreModulePath(context: vscode.ExtensionContext): string { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 608 | function unresolvedReviewBlockedGoals(plan: UltragoalPlan): UltragoalItem[] { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 612 | function isDesignatedReviewBlockerResolver(goal: UltragoalItem, parent: UltragoalItem | undefined): boolean { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 619 | function canUseCleanFinalResolverPathForReviewBlockedParent( | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 674 | function buildCompletedLegacyGoalRemediation(goal: UltragoalItem): string { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 682 | function buildUnavailableCodexGoalRemediation(goal: UltragoalItem): string { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 690 | function evidenceDescribesCompletedAggregateMicrogoalLoop(evidence: string | undefined): boolean { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 698 | function isSafeCompletedAggregateBlockerSnapshot( | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 727 | function buildAggregateCodexObjective(statePathPrefix: string): string { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 737 | function isLegacyEnumeratedAggregateObjective(objective: string | undefined): boolean { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 745 | function compatibleCodexObjectives(plan: UltragoalPlan): string[] { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1003 | export async function readUltragoalPlanSnapshot(cwd: string): Promise<UltragoalPlan> { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1007 | function requiresCanonicalStatePathMigration(plan: UltragoalPlan, statePathPrefix: string): boolean { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1011 | function requiresAggregateObjectiveMigration(plan: UltragoalPlan, statePathPrefix: string): boolean { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1018 | async function migrateAggregateObjectiveUnderLock(cwd: string, parsed: UltragoalPlan): Promise<UltragoalPlan> { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1561 | function sourceReferencesAnyArtifact(source: string, artifacts: readonly string[]): boolean { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1565 | function invariantFromInlineDeclaration(line: string): string | undefined { | CODE |
| LOW⚡ | src/ultragoal/artifacts.ts | 1573 | function extractArchitectureInvariantsFromArtifact(text: string, sourceArtifact: string, sourcePrefix?: string): Require | CODE |
| LOW | src/ultragoal/artifacts.ts | 368 | function normalizeIndentedAtxStorySectionLabel(value: string): string | undefined { | CODE |
| LOW | src/ultragoal/artifacts.ts | 449 | function briefLooksPlanLikeHandoff(lines: readonly string[]): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 457 | function assertSafeImplicitMarkdownGoalCount(brief: string, parsedItems: readonly MarkdownListItem[], parentItems: reado | CODE |
| LOW | src/ultragoal/artifacts.ts | 509 | function objectivesHaveConservativeSpecificTokenOverlap(actual: string, brief: string): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 532 | function classifyExternalAuthorizationBlocker(evidence: string | undefined): ExternalAuthorizationBlocker | null { | CODE |
| LOW | src/ultragoal/artifacts.ts | 576 | function textMentionsUltragoalPlanArtifact(value: string | undefined): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 587 | function textHasCompletionValidationEvidence(value: string | undefined): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 596 | async function snapshotObjectiveMapsToUltragoalPlan(cwd: string, snapshotObjective: string): Promise<boolean> { | CODE |
| LOW | src/ultragoal/artifacts.ts | 632 | function hasReciprocalReviewBlockerResolver(goal: UltragoalItem, plan: UltragoalPlan): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 644 | function canPersistNormalFinalAggregateCompletion( | CODE |
| LOW | src/ultragoal/artifacts.ts | 658 | async function canReconcileCompletedTaskScopedAggregateSnapshot( | CODE |
| LOW | src/ultragoal/artifacts.ts | 783 | function isCompletionBlockingForFinalCandidate(candidate: UltragoalItem, finalCandidate: UltragoalItem, plan: UltragoalP | CODE |
| LOW | src/ultragoal/artifacts.ts | 802 | export function isFinalRunCompletionCandidate(plan: UltragoalPlan, goal: UltragoalItem): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 872 | export async function assertUltragoalWritableLifecycleAuthority( | CODE |
| LOW | src/ultragoal/artifacts.ts | 929 | function describeWritableAuthority(authority: UltragoalWritableAuthority): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1042 | async function readUltragoalPlanUnderLock(cwd: string): Promise<UltragoalPlan> { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1134 | export function parseUltragoalSteeringDirective(raw: string): UltragoalSteeringProposal | null { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1207 | function mentionsWeakenedCompletion(...values: Array<string | undefined>): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1213 | function hasProtectedSteeringPayload(value: unknown): boolean { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1262 | function rawChildGoalsFromProposal(proposal: UltragoalSteeringProposal): unknown[] { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1293 | function revisedObjectiveFromProposal(proposal: UltragoalSteeringProposal): string | undefined { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1299 | export function validateUltragoalSteeringProposal(plan: UltragoalPlan, proposal: UltragoalSteeringProposal): UltragoalSt | CODE |
| LOW | src/ultragoal/artifacts.ts | 1364 | async function readSteeringLedgerEntries(cwd: string): Promise<UltragoalLedgerEntry[]> { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1529 | function requiredInvariantSourceKey(invariant: RequiredArchitectureInvariant): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1533 | function uniqueRequiredArchitectureInvariants(invariants: readonly RequiredArchitectureInvariant[]): RequiredArchitectur | CODE |
| LOW | src/ultragoal/artifacts.ts | 1545 | function architectureInvariantSectionSlug(label: string): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1600 | function extractArchitectureInvariantsFromBrief(brief: string): RequiredArchitectureInvariant[] { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1604 | function extractArchitectureInvariantsFromAcceptedSteering(entries: readonly UltragoalLedgerEntry[]): RequiredArchitectu | CODE |
| LOW | src/ultragoal/artifacts.ts | 1624 | async function collectRequiredArchitectureInvariants(cwd: string): Promise<RequiredArchitectureInvariant[]> { | CODE |
| LOW | src/ultragoal/artifacts.ts | 1631 | function validateArchitectureInvariantGate(gate: Partial<UltragoalQualityGate>, requiredInvariants: readonly RequiredArc | CODE |
| LOW | src/ultragoal/artifacts.ts | 2083 | export async function recordFinalReviewBlockers(cwd: string, options: RecordFinalReviewBlockersOptions): Promise<{ plan: | CODE |
| LOW | src/ultragoal/artifacts.ts | 2161 | export function codexGoalConductorGuidance(options: CodexGoalInstructionOptions): string { | CODE |
| LOW | src/ultragoal/artifacts.ts | 2177 | export function buildCodexGoalInstruction( | CODE |
| LOW | src/ultragoal/artifacts.ts | 2186 | function buildPerStoryCodexGoalInstruction(goal: UltragoalItem, plan: UltragoalPlan, options: CodexGoalInstructionOption | CODE |
| LOW | src/ultragoal/artifacts.ts | 2242 | function buildAggregateCodexGoalInstruction(goal: UltragoalItem, plan: UltragoalPlan, options: CodexGoalInstructionOptio | CODE |
| LOW | src/ultragoal/__tests__/artifacts.test.ts | 85 | async function writeAggregateFixturePlan(cwd: string, activeGoalId: string | undefined, goals: Array<Record<string, unkn | CODE |
| LOW⚡ | src/autoresearch/goal.ts | 112 | export function autoresearchGoalMissionPath(cwd: string, slug: string): string { | CODE |
| LOW⚡ | src/autoresearch/goal.ts | 116 | export function autoresearchGoalRubricPath(cwd: string, slug: string): string { | CODE |
| LOW⚡ | src/autoresearch/goal.ts | 120 | export function autoresearchGoalLedgerPath(cwd: string, slug: string): string { | CODE |
| 3281 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/mcp/code-intel-server.ts | 22 | // ── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/code-intel-server.ts | 49 | // ── Diagnostics (tsc --noEmit wrapper) ──────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/code-intel-server.ts | 132 | // ── Symbol extraction (regex-based) ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/code-intel-server.ts | 192 | // ── AST-grep wrapper ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/code-intel-server.ts | 282 | // ── Workspace symbol search ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/code-intel-server.ts | 325 | // ── MCP Server ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/trace-server.ts | 131 | // ── State file readers for mode timeline ──────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/trace-server.ts | 180 | // ── Metrics reader ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/mcp/trace-server.ts | 202 | // ── MCP Server ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/cli/index.ts | 5640 | // ── Phase 0.5: config repair ──────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/tmux-session.ts | 1002 | // ── Async tmux helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/role-router.ts | 13 | // ─── Layer 1: Prompt Loading ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/role-router.ts | 60 | // ─── Layer 2: Heuristic Role Routing ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/team/scaling.ts | 2297 | // ── Helpers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/scaling.ts | 145 | // ── Environment gate ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/scaling.ts | 289 | // ── Result types ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/scaling.ts | 572 | // ── Scale Up ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/scaling.ts | 1487 | // ── Scale Down ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 195 | // ─── resolveTeamApiOperation ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 229 | // ─── buildLegacyTeamDeprecationHint ─────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 249 | // ─── constants ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 275 | // ─── validateCommonFields (via executeTeamApiOperation) ─────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 345 | // ─── send-message ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 521 | // ─── broadcast ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 549 | // ─── mailbox-list ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 588 | // ─── mailbox-mark-delivered ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 769 | // ─── mailbox-mark-notified ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 803 | // ─── create-task ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 848 | // ─── read-task ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 886 | // ─── list-tasks ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1040 | // ─── update-task ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1183 | // ─── claim-task ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1223 | // ─── transition-task-status ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1309 | // ─── release-task-claim ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1320 | // ─── read-config ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1355 | // ─── read-manifest ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1376 | // ─── read-worker-status ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1399 | // ─── read-worker-heartbeat ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1422 | // ─── update-worker-heartbeat ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1445 | // ─── write-worker-inbox ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1468 | // ─── write-worker-identity ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1506 | // ─── append-event ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1537 | // ─── read-events ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1624 | // ─── await-event ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1715 | // ─── read-idle-state ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 1796 | // ─── read-stall-state ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2165 | // ─── get-summary ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2199 | // ─── cleanup ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2388 | // ─── write-shutdown-request ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2411 | // ─── read-shutdown-ack ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2446 | // ─── read-monitor-snapshot ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2467 | // ─── write-monitor-snapshot ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2498 | // ─── read-task-approval ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2522 | // ─── write-task-approval ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/api-interop.test.ts | 2565 | // ─── error envelope (catch block) ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/scaling.test.ts | 483 | // ── isScalingEnabled ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/scaling.test.ts | 538 | // ── scale-down cleanup debt path containment ────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/scaling.test.ts | 604 | // ── WorkerStatus draining state ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/scaling.test.ts | 637 | // ── Monotonic worker index counter ──────────────────────────────────────────── | COMMENT |
| MEDIUM | src/team/__tests__/scaling.test.ts | 682 | // ── File-based scaling lock ─────────────────────────────────────────────────── | COMMENT |
| 42 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/cli/__tests__/launch-fallback.test.ts | 1581 | elif [ "$2" = '-p' ] && [ "$5" = '#{session_name}' ]; then | CODE |
| HIGH | src/cli/__tests__/launch-fallback.test.ts | 1583 | elif [ "$2" = '-p' ] && [ "$5" = '#{session_attached}' ]; then | CODE |
| HIGH | src/cli/__tests__/launch-fallback.test.ts | 1694 | elif [ "$2" = '-p' ] && [ "$5" = '#{session_name}' ]; then | CODE |
| HIGH | src/cli/__tests__/launch-fallback.test.ts | 1696 | elif [ "$2" = '-p' ] && [ "$5" = '#{session_attached}' ]; then | CODE |
| HIGH | src/cli/__tests__/launch-fallback.test.ts | 1794 | elif [ "$2" = '-p' ] && [ "$5" = '#{session_name}' ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 1024 | elif [ -f "$text_sent_file" ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 4819 | elif [ "${scenario.extraWorkerPane ?? ''}" = "foreign" ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 7029 | elif [ -f "${logPath}.worker" ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 7936 | elif [ -f "${logPath}.leader-authorized" ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 8555 | elif [ "$count" -le 2 ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 9235 | elif [ "$count" -le 12 ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 9474 | elif [ "$1" = "show-option" ]; then | CODE |
| HIGH | src/team/__tests__/tmux-session.test.ts | 9494 | elif [ "$1" = "show-option" ]; then | CODE |
| HIGH | src/team/__tests__/scaling.test.ts | 3077 | elif [ "$split_count" -eq 1 ]; then | CODE |
| HIGH | src/team/__tests__/scaling.test.ts | 3089 | elif [ "$split_count" -eq 2 ]; then | CODE |
| HIGH | src/team/__tests__/scaling.test.ts | 4119 | elif [ "$3" = '%13' ]; then | CODE |
| HIGH | src/team/__tests__/runtime.test.ts | 4730 | elif [ -f "${cwd}/startup-ready-check-started" ]; then | CODE |
| HIGH | src/team/__tests__/runtime.test.ts | 9401 | elif [ ! -f "${proofStatePath}.owner-authorized" ]; then | CODE |
| HIGH | src/scripts/smoke-packed-install.ts | 3657 | print("'Pa' + 'th'('src/python-alias-owned.ts').write_text('x')") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 261 | - **Native sidecar and collaboration authority** — native sidecar session authority is scoped during pointer conflicts ( | CODE |
| MEDIUM | artifacts/release-0.21.0/inventory.md | 24 | - #3518 feat(autopilot) restore canonical staged orchestration (8d2adf42) | CODE |
| MEDIUM | docs/release-notes-0.8.7.md | 25 | - [#625](https://github.com/Yeachan-Heo/oh-my-codex/pull/625) — leader-only orchestration boundaries | CODE |
| MEDIUM | docs/release-notes-0.20.1.md | 24 | | `05262a1cb27429c72764dc4ba0b3c96a2e987fa3` | PR #3111 | Stopped seeding legacy multi-agent configuration. | | CODE |
| MEDIUM | docs/release-notes-0.20.4.md | 25 | - **Native sidecar and collaboration authority** — native sidecar session authority is scoped during pointer conflicts ( | CODE |
| MEDIUM | docs/qa/release-readiness-0.20.1.md | 25 | | `05262a1cb27429c72764dc4ba0b3c96a2e987fa3` | PR #3111 | `fix: stop seeding legacy multi-agent config (#3111)`; generat | CODE |
| MEDIUM | docs/architecture/cli-first-mcp-taxonomy.md | 3 | Issue #2214 establishes a runtime-support boundary for OMX: **CLI/JSON is the canonical durable runtime and control-plan | CODE |
| MEDIUM | src/config/__tests__/generator-idempotent.test.ts | 627 | "# OMX Native Agent Roles (Codex multi-agent)", | CODE |
| MEDIUM | src/cli/agents-init.ts | 189 | const body = `${parentReference}# ${title}\n\nThis AGENTS.md scopes guidance to \`${relativeDir}\`. Parent AGENTS guid | CODE |
| MEDIUM⚡ | src/scripts/demo-claude-workers.sh | 5 | # This script demonstrates the tmux-based multi-agent orchestration system | COMMENT |
| MEDIUM⚡ | src/scripts/demo-claude-workers.sh | 5 | # This script demonstrates the tmux-based multi-agent orchestration system | COMMENT |
| MEDIUM⚡ | src/scripts/demo-team-e2e.sh | 5 | # This script demonstrates the tmux-based multi-agent orchestration system | COMMENT |
| MEDIUM⚡ | src/scripts/demo-team-e2e.sh | 5 | # This script demonstrates the tmux-based multi-agent orchestration system | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/cli/uninstall.ts | 2036 | // Step 2: config cleanup is calculated before Step 1 and committed last. | COMMENT |
| LOW | src/cli/uninstall.ts | 2050 | // Step 3: Remove installed prompts | COMMENT |
| LOW | src/cli/uninstall.ts | 2062 | // Step 4: Remove native agent configs | COMMENT |
| LOW | src/cli/uninstall.ts | 2073 | // Step 5: Remove installed skills | COMMENT |
| LOW | src/cli/uninstall.ts | 2085 | // Step 6: Remove AGENTS.md and optionally .omx/ cache directory | COMMENT |
| LOW⚡ | src/cli/setup.ts | 5190 | // Step 7: Set up notify hook | COMMENT |
| LOW⚡ | src/cli/setup.ts | 5199 | // Step 8: Configure HUD | COMMENT |
| LOW | src/cli/setup.ts | 4469 | // Step 1: Ensure directories exist | COMMENT |
| LOW | src/cli/setup.ts | 4528 | // Step 2: Install agent prompts | COMMENT |
| LOW | src/cli/setup.ts | 4582 | // Step 3: Install skills | COMMENT |
| LOW | src/cli/setup.ts | 4633 | // Step 4: Install native agent configs | COMMENT |
| LOW | src/cli/setup.ts | 4673 | // Step 5: Update config.toml | COMMENT |
| LOW | src/cli/setup.ts | 4865 | // Step 6: Generate AGENTS.md | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/cli/uninstall.ts | 2036 | // Step 2: config cleanup is calculated before Step 1 and committed last. | COMMENT |
| LOW | src/cli/uninstall.ts | 2050 | // Step 3: Remove installed prompts | COMMENT |
| LOW | src/cli/uninstall.ts | 2062 | // Step 4: Remove native agent configs | COMMENT |
| LOW | src/cli/uninstall.ts | 2073 | // Step 5: Remove installed skills | COMMENT |
| LOW | src/cli/uninstall.ts | 2085 | // Step 6: Remove AGENTS.md and optionally .omx/ cache directory | COMMENT |
| LOW⚡ | src/cli/setup.ts | 5190 | // Step 7: Set up notify hook | COMMENT |
| LOW⚡ | src/cli/setup.ts | 5199 | // Step 8: Configure HUD | COMMENT |
| LOW | src/cli/setup.ts | 4469 | // Step 1: Ensure directories exist | COMMENT |
| LOW | src/cli/setup.ts | 4528 | // Step 2: Install agent prompts | COMMENT |
| LOW | src/cli/setup.ts | 4582 | // Step 3: Install skills | COMMENT |
| LOW | src/cli/setup.ts | 4633 | // Step 4: Install native agent configs | COMMENT |
| LOW | src/cli/setup.ts | 4673 | // Step 5: Update config.toml | COMMENT |
| LOW | src/cli/setup.ts | 4865 | // Step 6: Generate AGENTS.md | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | playground/bayesopt_highdim_demo/run_search.py | 1 | CODE | |
| LOW | playground/bayesopt_highdim_demo/problem.py | 1 | CODE | |
| LOW | playground/bayesopt_highdim_demo/optimizer.py | 1 | CODE | |
| LOW | playground/adaptive_sort_demo/sort_benchmark.py | 1 | CODE | |
| LOW | playground/adaptive_sort_demo/sort_benchmark.py | 6 | CODE | |
| LOW | playground/bayesopt_latent_discovery_demo/run_search.py | 1 | CODE | |
| LOW | playground/bayesopt_latent_discovery_demo/problem.py | 1 | CODE | |
| LOW | playground/bayesopt_latent_discovery_demo/optimizer.py | 1 | CODE | |
| LOW | playground/ml_kaggle_demo/train.py | 1 | CODE | |
| LOW | playground/ml_kaggle_demo/model_factory.py | 1 | CODE | |
| LOW | src/scripts/eval/eval-ml-kaggle-model-optimization.py | 1 | CODE | |
| LOW | …c/scripts/eval/eval-noisy-latent-subspace-discovery.py | 1 | CODE | |
| LOW | src/scripts/eval/eval-adaptive-sort-optimization.py | 1 | CODE | |
| LOW | src/scripts/eval/eval-noisy-bayesopt-highdim.py | 1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | prompts/ux-researcher.md | 41 | ### Top Usability Risks | COMMENT |
| LOW | prompts/product-manager.md | 61 | ### Persona & JTBD | COMMENT |
| LOW | src/subagents/tracker.ts | 901 | const current = parseStrictSubagentTrackingState(raw); | COMMENT |
| LOW | src/question/renderer.ts | 401 | // the pane command instead. | COMMENT |
| LOW | src/scripts/demo-claude-workers.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/scripts/demo-team-e2e.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/scripts/codex-native-hook.ts | 2201 | const markerChildId = safeString(sessionStartChildMetadata.childSessionId).trim(); | COMMENT |
| LOW | src/scripts/codex-native-hook.ts | 2581 | // UserPromptSubmit `$ultragoal` prompt, which seeds active/planning state | COMMENT |
| LOW | src/scripts/codex-native-hook.ts | 4941 | // Masks redirect metacharacters (`<`/`>`) that appear INSIDE shell quotes so a | COMMENT |
| LOW | src/scripts/codex-native-hook.ts | 6781 | // word-separating blanks. It does NOT split on any other whitespace -- | COMMENT |
| LOW | src/scripts/codex-native-hook.ts | 9561 | // Direct cancellation is recognized from the RAW command string with a | COMMENT |
| LOW | src/scripts/codex-native-hook.ts | 10441 | return directOmxCancelCommandHasTrustedExecutionContext(command, cwd); | COMMENT |
| LOW | src/scripts/codex-native-pre-post.ts | 561 | } | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/cli/__tests__/doctor-warning-copy.test.ts | 1180 | await writeFile(packagedBinary, '#!/bin/sh\necho "stub harness"\n'); | CODE |
| MEDIUM | src/question/renderer.ts | 403 | // Two properties keep this robust: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/scripts/demo-claude-workers.sh | 12 | # Usage: | COMMENT |
| LOW⚡ | src/scripts/demo-team-e2e.sh | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/hooks/__tests__/codebase-map.test.ts | 20 | execSync('git config user.email "test@test.com"', { cwd: dir, stdio: 'ignore' }); | CODE |
| LOW | src/hooks/__tests__/codebase-map.test.ts | 117 | execSync('git config user.email "test@test.com"', { cwd: secDir, stdio: 'ignore' }); | CODE |
| LOW | src/hooks/__tests__/codebase-map.test.ts | 140 | execSync('git config user.email "test@test.com"', { cwd: cacheDir, stdio: 'ignore' }); | CODE |
| LOW | src/hooks/__tests__/codebase-map.test.ts | 164 | execSync('git config user.email "test@test.com"', { cwd: cacheDir, stdio: 'ignore' }); | CODE |