Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro and more.
This report summarizes scanner evidence for Q00/ouroboros, a Python project with 6,200 GitHub stars. SynthScan examined 942,927 lines of code across 1921 source files, recording 26593 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 31.3 (High 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? 21210 finding(s).
Are imports declared and package/API names verified? 2321 finding(s).
Are wrappers, guards, and repeated structures necessary? 23035 finding(s).
Which changes need focused human review? 26593 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 26593 distinct pattern matches across 24 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/conftest.py | 87 | def isolate_heartbeat_locks_per_test_worker(tmp_path_factory): | CODE |
| LOW | tests/conftest.py | 114 | def render_logged_exceptions_with_plain_tracebacks(): | CODE |
| LOW | tests/conftest.py | 143 | def _plain_console_processors(mode): | CODE |
| LOW | tests/conftest.py | 155 | def block_runner_real_llm_adapter(monkeypatch): | CODE |
| LOW | tests/conftest.py | 177 | def _blocked_create_llm_adapter(*_args, **_kwargs): | CODE |
| LOW | tests/conftest.py | 188 | def block_interview_answer_refiner_cli_spawn(monkeypatch): | CODE |
| LOW | tests/conftest.py | 214 | def block_setup_probe_cli_spawns(monkeypatch): | CODE |
| LOW | tests/conftest.py | 284 | def reset_ignored_model_warning(): | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 44 | def test_cli_docs_cover_detached_auto_wait_and_retrieve() -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 77 | def test_mcp_docs_cover_detached_auto_jobs() -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 125 | def test_cli_retrieves_stable_completed_detached_auto_result(monkeypatch, tmp_path) -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 139 | async def _persist_completed_auto_job() -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 195 | def test_mcp_retrieves_stable_completed_detached_auto_result(tmp_path) -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 205 | async def _persist_completed_auto_job_and_fetch_result(): | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 296 | def test_completed_detached_auto_result_retrieval_leaves_inspectable_event_trace( | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 304 | async def _run_completed_job_and_verify_trace() -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 362 | def test_mcp_retrieves_stable_failed_detached_auto_result(tmp_path) -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 373 | async def _persist_failed_auto_job_and_fetch_result(): | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 454 | def test_mcp_retrieves_stable_cancelled_detached_auto_result(tmp_path) -> None: | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 465 | async def _persist_cancelled_auto_job_and_fetch_result(): | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 546 | def test_expired_detached_auto_handle_still_returns_persisted_terminal_result( | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 558 | async def _persist_expired_auto_job_and_fetch_result(): | CODE |
| LOW | tests/unit/test_detached_auto_docs.py | 609 | def test_invalid_detached_auto_handle_fails_with_stable_error_contract( | CODE |
| LOW | tests/unit/test_tooling_configuration.py | 31 | def test_pre_commit_config_exists(): | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 76 | def test_resolves_kiro_aliases(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 80 | def test_falls_back_to_kiro_via_ouroboros_runtime( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 87 | def test_ouroboros_runtime_does_not_affect_explicit_backend( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 95 | def _isolated_llm_permission_config(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 119 | def test_kiro_returns_default(self, _isolated_llm_permission_config: None) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 122 | def test_kiro_respects_llm_permission_mode_env(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 127 | def test_kiro_interview_respects_llm_permission_mode_env( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 136 | def test_kiro_interview_returns_config_default_without_override( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 148 | def test_creates_kiro_adapter(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 152 | def test_passes_cwd_to_kiro_adapter(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 157 | def test_passes_timeout_to_kiro_adapter(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 162 | def test_passes_max_retries_to_kiro_adapter(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 167 | def test_passes_tool_envelope_to_kiro_adapter( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 187 | def test_uses_configured_cli_path(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 297 | def test_empty_allowed_tools_forces_text_only_prompt(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 307 | def test_allowed_tools_lists_permitted_tools(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 317 | def test_allowed_tools_none_omits_tool_constraints(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 325 | def test_empty_allowed_tools_sets_empty_trust_tools_flag(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 334 | def test_allowed_tools_maps_to_kiro_trust_tools_flag(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 343 | def test_allowed_tools_filters_mcp_names_from_kiro_trust_tools_flag(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 368 | def test_allowed_tools_none_omits_trust_tools_flag(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 377 | def test_default_permission_mode_sets_empty_trust_tools_flag(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 386 | def test_accept_edits_permission_mode_sets_trust_all_tools_flag(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 394 | def test_bypass_permission_takes_precedence_over_allowed_tools(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 571 | def test_resolves_kiro_aliases(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 577 | def test_falls_back_via_ouroboros_runtime(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 586 | def test_creates_kiro_runtime(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 595 | def test_uses_configured_cli_path(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 616 | def test_declares_translated_system_prompt_and_permission_mode(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 768 | def test_get_llm_backend_uses_runtime_fallback(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 775 | def test_get_llm_backend_uses_kiro_cli_runtime_alias( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 784 | def test_llm_backend_env_takes_priority_over_runtime( | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 793 | def test_no_runtime_env_uses_default(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 802 | def test_get_agent_runtime_uses_runtime_fallback(self, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 809 | def test_kiro_model_defaults_to_sentinel(self) -> None: | CODE |
| LOW⚡ | tests/unit/test_kiro_adapters.py | 822 | def test_public_llm_backend_property_exposes_configured_backend(self) -> None: | CODE |
| 19846 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/ouroboros-tui/src/db.rs | 1111 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/db.rs | 1113 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 8 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 10 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 127 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 129 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 273 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 275 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 689 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 691 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 706 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/state.rs | 708 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/execution.rs | 251 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/execution.rs | 253 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 17 | // ── Left panel: Lineage list ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 61 | // ── Right panel: Detail ─────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 165 | // ── Top: Lineage Info + Generation List ─────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 218 | // ── Middle: Generation List (selectable) ────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 240 | // ── Bottom: Selected Generation Detail ──────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 292 | // ── Double Diamond: Phase Progress ───────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 295 | // ── Header: Status + Score ─────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 316 | // ── Evaluation: AC Results + Drift ──────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ouroboros-tui/src/views/lineage.rs | 364 | // ── Failure Reason ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ouroboros-tui/src/views/lineage.rs | 373 | // ── Summary ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ouroboros-tui/src/views/lineage.rs | 382 | // ── Ontology ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 406 | // ── Ontology Delta ──────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 432 | // ── Wonder Questions ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 445 | // ── Execution Output ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 459 | // ── Timestamp ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 511 | /// ◇━━━━◆━━━━◇ ◇━━━━━━━━━◇ | COMMENT |
| MEDIUM | crates/ouroboros-tui/src/views/lineage.rs | 539 | // Second diamond: Execute ◇━━━━━━━◇ Evaluate | COMMENT |
| MEDIUM | tests/conftest.py | 35 | # ── Hermetic home isolation (before collection) ────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 70 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 72 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 142 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 144 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 194 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 196 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 565 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 567 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 608 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 610 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 762 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 764 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 816 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_kiro_adapters.py | 818 | # =========================================================================== | COMMENT |
| MEDIUM | tests/unit/test_kiro_adapters.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_kiro_adapters.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_kiro_adapters.py | 1173 | # =========================================================================== | COMMENT |
| MEDIUM | tests/unit/test_kiro_adapters.py | 1175 | # =========================================================================== | COMMENT |
| MEDIUM | tests/unit/test_ralph_parser.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_ralph_parser.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_ralph_parser.py | 91 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tests/unit/test_ralph_parser.py | 93 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tests/unit/test_ralph_parser.py | 193 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tests/unit/test_ralph_parser.py | 195 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/unit/pm/test_renderer.py | 91 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/pm/test_renderer.py | 93 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/pm/test_renderer.py | 151 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/pm/test_renderer.py | 153 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| 1386 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/_envelope_wiring.py | 12 | CODE | |
| LOW | tests/unit/test_kiro_adapters.py | 11 | CODE | |
| LOW | tests/unit/test_ralph_loop_budget.py | 12 | CODE | |
| LOW | tests/unit/test_zcode_cli_launcher.py | 3 | CODE | |
| LOW | tests/unit/test_dashboard.py | 3 | CODE | |
| LOW | tests/unit/test_ralph_rewind.py | 3 | CODE | |
| LOW | tests/unit/test_cli_surface_docs_contract.py | 22 | CODE | |
| LOW | tests/unit/test_ralph_parser.py | 3 | CODE | |
| LOW | tests/unit/test_convergence.py | 3 | CODE | |
| LOW | tests/unit/test_home_isolation.py | 10 | CODE | |
| LOW | tests/unit/test_llm_response_fence_robustness.py | 14 | CODE | |
| LOW | tests/unit/test_install_ref_docs_contract.py | 11 | CODE | |
| LOW | tests/unit/test_ralph_shell.py | 3 | CODE | |
| LOW | tests/unit/test_tui_usage_docs_contract.py | 9 | CODE | |
| LOW | tests/unit/test_artifact_collector.py | 3 | CODE | |
| LOW | tests/unit/test_ralph_loop_timeout.py | 11 | CODE | |
| LOW | tests/unit/test_telemetry.py | 3 | CODE | |
| LOW | tests/unit/test_project_map.py | 3 | CODE | |
| LOW | tests/unit/test_evolve_rewind.py | 3 | CODE | |
| LOW | tests/unit/test_regression.py | 3 | CODE | |
| LOW | tests/unit/test_verification.py | 3 | CODE | |
| LOW | tests/unit/test_ralph_loop_progress.py | 8 | CODE | |
| LOW | tests/unit/pm/test_renderer.py | 8 | CODE | |
| LOW | …sts/unit/interview_adapters/test_reference_contrast.py | 1 | CODE | |
| LOW | tests/unit/interview_adapters/test_manifest.py | 1 | CODE | |
| LOW | tests/unit/interview_adapters/test_models.py | 1 | CODE | |
| LOW | tests/unit/interview_adapters/test_trigger_policy.py | 1 | CODE | |
| LOW | tests/unit/core/test_worktree_generation_checkpoint.py | 11 | CODE | |
| LOW | tests/unit/core/test_hitl_contract.py | 1 | CODE | |
| LOW | tests/unit/core/test_retry.py | 3 | CODE | |
| LOW | tests/unit/core/test_filesystem_capability.py | 3 | CODE | |
| LOW | tests/unit/core/test_ttl_cache.py | 3 | CODE | |
| LOW | tests/unit/core/test_text_truncate_with_ellipsis.py | 10 | CODE | |
| LOW | tests/unit/core/test_conductor.py | 3 | CODE | |
| LOW | tests/unit/core/test_file_lock.py | 3 | CODE | |
| LOW | tests/unit/core/test_project_identity.py | 3 | CODE | |
| LOW | tests/unit/core/test_project_env.py | 3 | CODE | |
| LOW | tests/unit/core/test_execution_preferences.py | 1 | CODE | |
| LOW | tests/unit/core/test_hitl_state.py | 1 | CODE | |
| LOW | tests/unit/core/test_hitl_resume.py | 1 | CODE | |
| LOW | tests/unit/core/test_seed_verify_gate.py | 7 | CODE | |
| LOW | tests/unit/core/test_worktree_untracked.py | 1 | CODE | |
| LOW | tests/unit/core/test_runtime_transition.py | 3 | CODE | |
| LOW | tests/unit/core/test_pm_snapshot.py | 3 | CODE | |
| LOW | tests/unit/core/test_seed_project_path_callers.py | 8 | CODE | |
| LOW | tests/unit/core/test_session_signal.py | 3 | CODE | |
| LOW | tests/unit/core/test_project_paths.py | 3 | CODE | |
| LOW | tests/unit/core/test_git_workflow.py | 3 | CODE | |
| LOW | tests/unit/core/test_owner_only.py | 9 | CODE | |
| LOW | tests/unit/core/test_session_signal_projection.py | 3 | CODE | |
| LOW | tests/unit/core/test_worktree.py | 3 | CODE | |
| LOW | tests/unit/copilot/test_model_discovery.py | 3 | CODE | |
| LOW | tests/unit/copilot/test_cli_policy.py | 3 | CODE | |
| LOW | tests/unit/copilot/test_permissions.py | 3 | CODE | |
| LOW | tests/unit/config/test_zcode_model_config.py | 3 | CODE | |
| LOW | tests/unit/config/test_model_selection.py | 3 | CODE | |
| LOW | tests/unit/config/test_loader_env.py | 3 | CODE | |
| LOW | tests/unit/auto/test_seed_preflight.py | 11 | CODE | |
| LOW | tests/unit/auto/test_inverted_interview_intent_guard.py | 1 | CODE | |
| LOW | tests/unit/auto/test_seed_repairer_bounded.py | 10 | CODE | |
| 2064 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/conftest.py | 279 | except Exception: | CODE |
| HIGH | tests/unit/core/test_owner_only.py | 187 | except OSError: | CODE |
| HIGH | tests/unit/core/test_owner_only.py | 312 | except RuntimeError: | CODE |
| HIGH | …ts/unit/auto/test_pipeline_interview_observer_drain.py | 227 | except (asyncio.CancelledError, TimeoutError): | CODE |
| HIGH | tests/unit/boundary/test_process_deadline.py | 68 | except (OSError, ValueError): | CODE |
| HIGH | tests/unit/boundary/test_output_cap.py | 248 | except (OSError, ValueError): | CODE |
| HIGH | tests/unit/runtime/test_exec_sandbox_windows.py | 182 | except OSError: | CODE |
| HIGH | tests/unit/mcp/test_job_manager.py | 1735 | except asyncio.CancelledError: | CODE |
| HIGH | tests/unit/mcp/test_job_manager_drain.py | 250 | except asyncio.CancelledError: | CODE |
| HIGH | tests/unit/mcp/tools/test_run_evaluate_chaining.py | 55 | except TimeoutError: | CODE |
| HIGH | …/unit/mcp/tools/test_start_execute_seed_idempotency.py | 61 | except AttributeError: | CODE |
| HIGH | …/unit/mcp/tools/test_start_execute_seed_idempotency.py | 266 | except AttributeError: | CODE |
| HIGH | tests/unit/mcp/tools/test_job_instance_cancel_keys.py | 43 | except AttributeError: | CODE |
| HIGH | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2323 | except Exception: | CODE |
| HIGH | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2407 | except Exception: | CODE |
| HIGH | tests/unit/mcp/client/test_adapter.py | 124 | except TypeError: | CODE |
| HIGH | tests/unit/cli/test_setup.py | 66 | except Exception: | CODE |
| HIGH | tests/unit/cli/test_pm_runtime_adapter.py | 127 | except typer.Exit: | CODE |
| HIGH | tests/unit/evolution/test_generation_watchdog.py | 250 | except PersistenceError: | CODE |
| HIGH | tests/unit/evolution/test_generation_ownership.py | 836 | except asyncio.CancelledError: | CODE |
| HIGH | tests/unit/events/test_base.py | 22 | except Exception: | CODE |
| HIGH | tests/unit/bigbang/test_seed_generator.py | 152 | except ValueError: | CODE |
| HIGH | tests/unit/orchestrator/test_parallel_executor.py | 1439 | except (RuntimeError, asyncio.CancelledError): | CODE |
| HIGH | tests/unit/orchestrator/test_agent_process.py | 3171 | except asyncio.CancelledError: | CODE |
| HIGH | tests/unit/orchestrator/test_process_local_authority.py | 1519 | except OSError: | CODE |
| HIGH | scripts/version-check.py | 63 | except Exception: | CODE |
| HIGH | scripts/version-check.py | 70 | except Exception: | CODE |
| HIGH | scripts/version-check.py | 200 | except Exception: | CODE |
| HIGH | scripts/version-check.py | 220 | except Exception: | CODE |
| HIGH | scripts/sync-plugin-version.py | 75 | except (FileNotFoundError, subprocess.CalledProcessError): | CODE |
| HIGH | scripts/sync-plugin-version.py | 91 | except (FileNotFoundError, subprocess.CalledProcessError): | CODE |
| HIGH | src/ouroboros/telemetry.py | 897 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 911 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1041 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1135 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1180 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1197 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1212 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1273 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1330 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1353 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1381 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1436 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1465 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1501 | except FileExistsError: | CODE |
| HIGH | src/ouroboros/telemetry.py | 1571 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 808 | except FileExistsError: | CODE |
| HIGH | src/ouroboros/telemetry.py | 828 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 995 | except queue.Empty: | CODE |
| HIGH | src/ouroboros/telemetry.py | 999 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 648 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 878 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 882 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 821 | except FileExistsError: | CODE |
| HIGH | src/ouroboros/telemetry.py | 823 | except Exception: | CODE |
| HIGH | src/ouroboros/telemetry.py | 872 | except Exception: | CODE |
| HIGH | src/ouroboros/core/file_lock.py | 406 | except OSError: | CODE |
| HIGH | src/ouroboros/core/filesystem_capability.py | 286 | except OSError: | CODE |
| HIGH | src/ouroboros/core/filesystem_capability.py | 295 | except OSError: | CODE |
| HIGH | src/ouroboros/core/filesystem_capability.py | 337 | except FileExistsError: | CODE |
| 213 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_llm_response_fence_robustness.py | 1047 | '{"questions": null, "should_continue": false, "reasoning": "done"}', | CODE |
| HIGH | tests/unit/test_llm_response_fence_robustness.py | 1965 | '{"ac_patches": null, "ontology_mutations": []}', | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 769 | ("false && export FOO=bar; sh -uc 'test \"$FOO\" = bar'", False), | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 770 | ("true || export FOO=bar; sh -uc 'test \"$FOO\" = bar'", False), | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 771 | ("false && FOO=bar; export FOO; sh -uc 'test \"$FOO\" = bar'", False), | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 772 | ("true && export FOO=bar; sh -uc 'test \"$FOO\" = bar'", True), | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 773 | ("false || export FOO=bar; sh -uc 'test \"$FOO\" = bar'", True), | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1080 | 'false && FOO=bar; test -n "$FOO"', | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1081 | 'true || FOO=bar; test -n "$FOO"', | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1380 | "cd sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1381 | "cd -- sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1382 | "CDPATH= cd sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1383 | "CDPATH= command cd sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1386 | "sh -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1387 | "sh -eu -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1388 | "bash -O extglob -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1389 | "bash --rcfile /dev/null -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1390 | "cd sub && bash -c 'python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1422 | "cd sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1423 | "cd -- sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1424 | "CDPATH= cd sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1425 | "CDPATH= command cd sub && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1428 | "sh -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1429 | "sh -eu -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1430 | "bash -O extglob -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1431 | "bash --rcfile /dev/null -c 'cd sub && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1432 | "cd sub && bash -c 'python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1464 | r"cd sub\ dir && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1469 | r"sh -c 'cd sub\ dir && python check.py'", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1501 | r"cd sub\ dir && python check.py", | CODE |
| HIGH⚡ | tests/unit/auto/test_seed_preflight.py | 1506 | r"sh -c 'cd sub\ dir && python check.py'", | CODE |
| HIGH | tests/unit/auto/test_seed_preflight.py | 153 | '&& cd "$tmp" && python organize.py && echo OK\'' | CODE |
| HIGH | tests/unit/auto/test_seed_preflight.py | 1588 | verify_command="cd sub && python check.py", | CODE |
| HIGH | tests/unit/auto/test_seed_preflight.py | 1601 | ("cd missing; python check.py", "false && cd sub; python check.py"), | CODE |
| HIGH | tests/unit/auto/test_seed_preflight.py | 1950 | ("python3 check.py && cd sub", "python3 check.py && env -C sub true"), | CODE |
| HIGH | tests/unit/auto/test_seed_preflight.py | 1975 | ("python3 check.py && cd sub", "python3 check.py && env -C sub true"), | CODE |
| HIGH | tests/unit/auto/test_seed_preflight.py | 2014 | command = "cd && python check.py" | CODE |
| HIGH | tests/unit/auto/test_stop_reason_code.py | 384 | envelope omitting ``stop_reason_code``, harness traces writing null) was | STRING |
| HIGH | tests/unit/boundary/test_oracle.py | 26 | '[{"assertion_id":"script_1_1.a1","criterion_key":"ac_1","file":null,"locator":null}],' | CODE |
| HIGH | tests/unit/boundary/test_oracle_frames.py | 155 | assert parse_frame(b'{"a": [1, 2.5, "x", null, true]}') == {"a": [1, 2.5, "x", None, True]} | CODE |
| HIGH⚡ | tests/unit/mcp/server/test_security.py | 255 | "constraints": ["No new dependencies || vendored code"], | CODE |
| HIGH⚡ | tests/unit/mcp/server/test_security.py | 270 | "session_context": {"goal": "x", "acceptance_criteria": ["a && b"]}, | CODE |
| HIGH | tests/unit/scripts/test_install_ps1.py | 82 | "$errors = $null; $tokens = $null; " | CODE |
| HIGH | tests/unit/scripts/test_pr_hygiene_workflow.py | 92 | out=$(api_retry fake 2>/dev/null) | CODE |
| HIGH⚡ | tests/unit/scripts/test_pr_hygiene_workflow.py | 112 | api_retry fake > out.txt 2> err.txt || true | CODE |
| HIGH⚡ | tests/unit/scripts/test_pr_hygiene_workflow.py | 125 | if api_retry fake 2>/dev/null; then echo "unexpected-success"; else echo "failed=$?"; fi | CODE |
| HIGH⚡ | tests/unit/scripts/test_pr_hygiene_workflow.py | 155 | resolve_issue 1777 || status=$? | CODE |
| HIGH | tests/unit/scripts/test_check_module_size.py | 494 | "github.event.pull_request.base.sha || github.event.before }}" | CODE |
| HIGH⚡ | tests/unit/scripts/test_install_runtime_selection.py | 1896 | assert 'setup --runtime "$RUNTIME" --non-interactive || true' not in source | CODE |
| HIGH | tests/unit/scripts/test_install_runtime_selection.py | 240 | if ! grep -q '"notice_shown"[[:space:]]*:[[:space:]]*true' "$state" 2>/dev/null; then | CODE |
| HIGH⚡ | tests/unit/evaluation/test_detector.py | 162 | adapter = _FakeAdapter(response=json.dumps({"test": "npm test && rm -rf /"})) | CODE |
| HIGH⚡ | tests/unit/evaluation/test_languages.py | 174 | self._write_toml(tmp_path, 'test = "npm test && rm -rf /"\n') | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 1190 | for malformed in ("[null]", '[1, "x"]'): | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 1230 | "[null]", | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 1231 | '[null, "x"] stray text', | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 2028 | "true && case y in (y | artifacts:) :;; esac", | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 2029 | "false || case y in (y | artifacts:) :;; esac", | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 3301 | '[{"name": "a", "description": "null weight", "weight": null}]', | CODE |
| HIGH⚡ | tests/unit/bigbang/test_seed_generator.py | 3552 | '[{"name": "x", "description": "d", "weight": null}]' | CODE |
| HIGH | tests/unit/bigbang/test_seed_generator.py | 1176 | '[null, "x"] stray text', # JSON-parseable group + trailing garbage | CODE |
| 129 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | project-context.md | 294 | except Exception: | CODE |
| LOW | tools/sync_github_project.py | 219 | except Exception as e: | STRING |
| MEDIUM | tools/sync_github_project.py | 237 | print("Error: issue_number must be an integer") | CODE |
| MEDIUM | tools/sync_github_project.py | 241 | print("Error: GITHUB_TOKEN environment variable not set") | CODE |
| LOW | tests/conftest.py | 279 | except Exception: | CODE |
| LOW | tests/unit/boundary/test_target_commands.py | 318 | except Exception: | CODE |
| LOW | tests/unit/mcp/tools/test_run_evaluate_chaining.py | 103 | except Exception as exc: # noqa: BLE001 - diagnostics must not mask failures | CODE |
| LOW | tests/unit/mcp/tools/test_run_evaluate_chaining.py | 114 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | tests/unit/mcp/tools/test_run_evaluate_chaining.py | 119 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | tests/unit/mcp/tools/test_run_evaluate_chaining.py | 157 | except Exception as exc: # diagnostics must never mask the real failure | CODE |
| MEDIUM | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2320 | def _run() -> None: | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 1564 | except Exception as exc: # noqa: BLE001 - spy captures the surfaced contract failure. | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 1715 | except Exception as exc: # noqa: BLE001 - spy captures the surfaced contract failure. | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 1872 | except Exception as exc: # noqa: BLE001 - spy captures the surfaced contract failure. | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2024 | except Exception as exc: # noqa: BLE001 - spy captures the surfaced contract failure. | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2188 | except Exception as exc: # noqa: BLE001 - spy captures the surfaced contract failure. | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2323 | except Exception: | CODE |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 2407 | except Exception: | CODE |
| LOW⚡ | tests/unit/cli/test_setup.py | 58 | except Exception: | CODE |
| LOW⚡ | tests/unit/cli/test_setup.py | 66 | except Exception: | CODE |
| LOW | tests/unit/cli/test_setup.py | 6320 | except Exception as error: # pragma: no cover - OS-level cleanup failure | STRING |
| LOW⚡ | tests/unit/events/test_base.py | 22 | except Exception: | CODE |
| LOW⚡ | tests/unit/router/test_not_handled_resolution.py | 20 | except Exception as exc: # pragma: no cover - failure path should be explicit. | CODE |
| LOW | tests/canonical/test_canonical.py | 338 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | tests/canonical/conftest.py | 321 | except Exception as exc: # pragma: no cover - imports always succeed in CI | CODE |
| LOW | tests/canonical/test_issue_1450_quality.py | 324 | except Exception as exc: | CODE |
| LOW | tests/canonical/test_issue_1450_quality.py | 655 | except Exception as exc: # noqa: BLE001 - experiment must persist every failure | CODE |
| LOW | tests/canonical/test_issue_1450_quality.py | 661 | except Exception as exc: # noqa: BLE001 - evidence records corrupt/missing state | CODE |
| LOW | tests/canonical/test_issue_1450_quality.py | 1016 | except Exception as exc: # noqa: BLE001 - preserve costly partial proposal evidence | STRING |
| LOW | tests/integration/mcp/detached_probe_process.py | 321 | except Exception: | CODE |
| LOW | tests/integration/mcp/detached_probe_process.py | 328 | except Exception: | CODE |
| LOW | tests/integration/mcp/detached_probe_process.py | 442 | except Exception as error: | CODE |
| LOW | tests/integration/mcp/detached_probe_process.py | 451 | except Exception as error: | CODE |
| MEDIUM | docs/api/mcp.md | 971 | print(f"Error: {result.error}") # Never raises, returns error | CODE |
| LOW | scripts/version-check.py | 63 | except Exception: | CODE |
| LOW | scripts/version-check.py | 70 | except Exception: | CODE |
| LOW | scripts/version-check.py | 143 | except Exception: | CODE |
| LOW | scripts/version-check.py | 200 | except Exception: | CODE |
| LOW | scripts/version-check.py | 220 | except Exception: | CODE |
| LOW⚡ | scripts/version-check.py | 234 | except Exception: | CODE |
| LOW⚡ | scripts/version-check.py | 237 | except Exception: | CODE |
| LOW⚡ | scripts/version-check.py | 241 | except Exception: | CODE |
| LOW | scripts/version-check.py | 268 | except Exception: | CODE |
| LOW | scripts/version-check.py | 272 | except Exception: | CODE |
| LOW | scripts/ralph.py | 314 | except Exception as exc: | CODE |
| LOW | scripts/session-start.py | 39 | except Exception as e: | CODE |
| MEDIUM | scripts/session-start.py | 24 | def main() -> None: | CODE |
| LOW | scripts/manual-synapse-state-smoke.py | 326 | except Exception as exc: # noqa: BLE001 - manual harness reports exact failure. | CODE |
| MEDIUM | scripts/manual-synapse-state-smoke.py | 323 | def main() -> int: | CODE |
| LOW | scripts/install.sh | 359 | except Exception: | CODE |
| LOW | scripts/install.sh | 366 | except Exception: | CODE |
| LOW | scripts/install.sh | 516 | except Exception: | CODE |
| LOW | scripts/install.sh | 705 | except Exception: | CODE |
| LOW | scripts/install.sh | 744 | except Exception: | CODE |
| LOW | scripts/install.sh | 1132 | except Exception: | CODE |
| LOW | scripts/manual-synapse-smoke.py | 301 | except Exception as exc: # noqa: BLE001 - manual harness reports exact backend failure. | CODE |
| LOW | scripts/ralph-rewind.py | 183 | except Exception as exc: | CODE |
| LOW | scripts/keyword-detector.py | 174 | except Exception: | CODE |
| LOW | scripts/keyword-detector.py | 225 | except Exception: | CODE |
| LOW | scripts/keyword-detector.py | 326 | except Exception: | CODE |
| 738 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/runtime/test_exec_sandbox_windows.py | 95 | def _set_dacl(path: Path, *, null: bool = False) -> None: | CODE |
| LOW | tests/unit/plugin/test_manifest_schema_0_4.py | 424 | def _set_permission_required(payload: dict, scope: str, required: bool) -> None: | CODE |
| LOW | tests/unit/cli/test_mcp_nested_guard.py | 30 | def _set_installed_versions(monkeypatch, versions: dict[str, str]) -> None: | CODE |
| LOW | …/unit/orchestrator/workflow_ir_conformance_fixtures.py | 127 | __all__ = [ | CODE |
| LOW | tests/integration/mcp/detached_probe_process.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/integration/mcp/conftest.py | 514 | def set_data(self, key: str, value: str) -> None: | CODE |
| LOW | tests/conformance/workflow_ir/fixtures.py | 510 | __all__ = [ | CODE |
| LOW | src/ouroboros/copilot_permissions.py | 101 | __all__ = [ | CODE |
| LOW | src/ouroboros/runtime_instruction_artifacts.py | 204 | __all__ = [ | CODE |
| LOW | src/ouroboros/__init__.py | 26 | __all__ = ["__version__", "main"] | CODE |
| LOW | src/ouroboros/telemetry.py | 949 | def set_context(**props: Any) -> None: | CODE |
| LOW | src/ouroboros/telemetry.py | 1584 | __all__ = [ | CODE |
| LOW | src/ouroboros/sandbox.py | 34 | __all__ = ["SandboxClass"] | CODE |
| LOW | src/ouroboros/project_map.py | 463 | __all__ = [ | CODE |
| LOW | src/ouroboros/claude_permissions.py | 55 | __all__ = [ | CODE |
| LOW | src/ouroboros/package_profiles.py | 118 | __all__ = [ | CODE |
| LOW | src/ouroboros/codex_permissions.py | 128 | __all__ = [ | CODE |
| LOW | src/ouroboros/pm/renderer.py | 42 | __all__ = [ | CODE |
| LOW | src/ouroboros/pm/__init__.py | 16 | __all__ = [ | CODE |
| LOW | src/ouroboros/interview_adapters/triggers.py | 131 | __all__ = [ | CODE |
| LOW | src/ouroboros/interview_adapters/manifest.py | 174 | __all__ = [ | CODE |
| LOW | src/ouroboros/interview_adapters/registry.py | 46 | __all__ = ["BUILTIN_PACK_NAMES", "BuiltinGlossaryRegistry", "builtin_registry"] | CODE |
| LOW | src/ouroboros/interview_adapters/__init__.py | 43 | __all__ = [ | CODE |
| LOW | src/ouroboros/interview_adapters/reference_contrast.py | 114 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/project_env.py | 107 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/session_signal.py | 451 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/hitl_resume.py | 241 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/ontology_questions.py | 455 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/session_signal_projection.py | 218 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/seed_contract.py | 86 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/runtime_transition.py | 476 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/retry.py | 234 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/hitl_state.py | 420 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/execution_preferences.py | 127 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/conductor.py | 308 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/disposable_memory.py | 62 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/requirement_candidate.py | 455 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/seed_contract_prompt.py | 174 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/ontology_aspect.py | 443 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/project_identity.py | 1003 | __all__ = [ | CODE |
| LOW | src/ouroboros/core/ac_tree.py | 216 | def update_node(self, node: ACNode) -> None: | CODE |
| LOW | src/ouroboros/copilot/cli_policy.py | 211 | __all__ = [ | CODE |
| LOW | src/ouroboros/copilot/runtime_profile.py | 45 | __all__ = ["RUNTIME_PROFILE_TO_COPILOT_AGENT", "resolve_copilot_agent"] | CODE |
| LOW | src/ouroboros/config/_omp_cli.py | 90 | __all__ = ["get_omp_cli_path", "resolve_omp_cli_path"] | CODE |
| LOW | src/ouroboros/config/model_selection.py | 552 | __all__ = [ | CODE |
| LOW | src/ouroboros/config/__init__.py | 121 | __all__ = [ | CODE |
| LOW | src/ouroboros/config/loader.py | 222 | def _set_secure_permissions(file_path: Path) -> None: | CODE |
| LOW | src/ouroboros/config/exec_sandbox.py | 45 | __all__ = ["EXEC_SANDBOX_ENV_VAR", "exec_sandbox_config_enabled", "exec_sandbox_enabled"] | CODE |
| LOW | src/ouroboros/auto/domain_profile.py | 26 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/handoff_contract.py | 98 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/listeners.py | 328 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/__init__.py | 33 | __all__ = [ | CODE |
| LOW⚡ | src/ouroboros/auto/runtime_routing.py | 112 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/task_classes.py | 54 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/reference_candidate_bridge.py | 227 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/resume_render.py | 87 | __all__ = ["render_resume_lines"] | CODE |
| LOW | src/ouroboros/auto/domain_inference.py | 410 | __all__ = [ | CODE |
| LOW | src/ouroboros/auto/provenance.py | 72 | __all__ = ["PROVENANCE_ENV_VAR", "resolve_provenance"] | CODE |
| LOW | src/ouroboros/auto/blocker_attribution.py | 62 | __all__ = ["authoring_backend_label", "record_authoring_backend"] | CODE |
| LOW | src/ouroboros/auto/seed_preflight.py | 37 | __all__ = [ | CODE |
| 429 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 242 | CODE | |
| LOW | tests/unit/test_cli_surface_docs_contract.py | 51 | CODE | |
| LOW | tests/unit/test_cli_surface_docs_contract.py | 95 | CODE | |
| LOW | tests/unit/test_llm_response_fence_robustness.py | 262 | CODE | |
| LOW | tests/unit/test_llm_response_fence_robustness.py | 360 | CODE | |
| LOW | tests/unit/test_tui_usage_docs_contract.py | 122 | CODE | |
| LOW | tests/unit/test_project_map.py | 56 | CODE | |
| LOW | tests/unit/core/test_project_identity.py | 595 | CODE | |
| LOW | tests/unit/core/test_project_identity.py | 603 | CODE | |
| LOW | tests/unit/auto/test_user_preference_and_floor.py | 949 | CODE | |
| LOW | tests/unit/tui/test_session_selector_replay.py | 43 | CODE | |
| LOW | tests/unit/boundary/test_instance_python_compat.py | 27 | CODE | |
| LOW | tests/unit/boundary/test_controller_isolation.py | 35 | CODE | |
| LOW | tests/unit/boundary/test_persisted_closure.py | 149 | CODE | |
| LOW | tests/unit/runtime/test_exec_sandbox.py | 1269 | CODE | |
| LOW | tests/unit/mcp/test_job_manager.py | 1250 | CODE | |
| LOW | tests/unit/mcp/tools/test_start_auto.py | 837 | CODE | |
| LOW | tests/unit/mcp/tools/test_start_auto.py | 923 | CODE | |
| LOW | tests/unit/mcp/tools/test_job_observer.py | 193 | CODE | |
| LOW | …sts/unit/mcp/tools/test_auto_interview_construction.py | 800 | CODE | |
| LOW | tests/unit/mcp/server/test_adapter.py | 800 | CODE | |
| LOW | …ts/unit/mcp/client/test_adapter_transport_lifecycle.py | 63 | CODE | |
| LOW | tests/unit/cli/test_setup.py | 6234 | CODE | |
| LOW | tests/unit/evolution/test_frugality.py | 1223 | CODE | |
| LOW | tests/unit/persistence/test_picker_indexes.py | 1259 | CODE | |
| LOW | tests/unit/persistence/test_picker_indexes.py | 1447 | CODE | |
| LOW | tests/unit/evaluation/test_json_utils.py | 40 | CODE | |
| LOW | tests/unit/bigbang/test_seed_generator.py | 99 | CODE | |
| LOW | tests/unit/orchestrator/test_capabilities.py | 1052 | CODE | |
| LOW | tests/unit/orchestrator/test_route_escalation_live.py | 1298 | CODE | |
| LOW | tests/unit/orchestrator/test_route_escalation_live.py | 3117 | CODE | |
| LOW | tests/unit/orchestrator/test_route_escalation_live.py | 3184 | CODE | |
| LOW | tests/unit/orchestrator/test_route_escalation_live.py | 1304 | CODE | |
| LOW | tests/unit/orchestrator/test_ac_execution_capsule.py | 933 | CODE | |
| LOW | …it/orchestrator/evidence/test_command_form_mismatch.py | 202 | CODE | |
| LOW | tests/integration/mcp/detached_probe_process.py | 350 | CODE | |
| LOW | tests/integration/mcp/detached_probe_process.py | 184 | CODE | |
| LOW | tests/e2e/test_cli_commands.py | 169 | CODE | |
| LOW | scripts/version-check.py | 168 | CODE | |
| LOW | scripts/version-check.py | 245 | CODE | |
| LOW | scripts/check-module-size.py | 378 | CODE | |
| LOW | scripts/sync-plugin-version.py | 347 | CODE | |
| LOW | scripts/sync-plugin-version.py | 595 | CODE | |
| LOW | scripts/export_interview_latency.py | 180 | CODE | |
| LOW | src/ouroboros/telemetry.py | 697 | CODE | |
| LOW | src/ouroboros/telemetry.py | 774 | CODE | |
| LOW | src/ouroboros/telemetry.py | 840 | CODE | |
| LOW | src/ouroboros/telemetry.py | 1014 | CODE | |
| LOW | src/ouroboros/telemetry.py | 1090 | CODE | |
| LOW | src/ouroboros/interview_adapters/triggers.py | 83 | CODE | |
| LOW | src/ouroboros/core/session_signal_projection.py | 114 | CODE | |
| LOW | src/ouroboros/core/security.py | 302 | CODE | |
| LOW | src/ouroboros/core/security.py | 521 | CODE | |
| LOW | src/ouroboros/core/file_lock.py | 359 | CODE | |
| LOW | src/ouroboros/core/file_lock.py | 485 | CODE | |
| LOW | src/ouroboros/core/hitl_state.py | 82 | CODE | |
| LOW | src/ouroboros/core/seed.py | 949 | CODE | |
| LOW | src/ouroboros/core/requirement_candidate.py | 291 | CODE | |
| LOW | src/ouroboros/core/filesystem_capability.py | 299 | CODE | |
| LOW | src/ouroboros/core/json_utils.py | 466 | CODE | |
| 418 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/integration/mcp/conftest.py | 164 | Call a tool. Args: name: Tool name. arguments: Tool arguments. Returns: | STRING |
| HIGH | tests/integration/mcp/conftest.py | 220 | Read a resource. Args: uri: Resource URI. Returns: Mock resource content. | STRING |
| HIGH | tests/integration/mcp/conftest.py | 271 | Get a filled prompt. Args: name: Prompt name. arguments: Prompt arguments. Ret | STRING |
| HIGH | src/ouroboros/core/lineage.py | 587 | Return lineage truncated to the given generation. The truncated lineage has ACTIVE status, ready for continued | STRING |
| HIGH | src/ouroboros/config/loader.py | 249 | Create default configuration files. Creates config.yaml and credentials.yaml with default templates in the spec | STRING |
| HIGH | src/ouroboros/config/loader.py | 318 | Load configuration from YAML file. Loads and validates configuration from the specified path or the default ~/. | STRING |
| HIGH | src/ouroboros/config/loader.py | 383 | Load credentials from YAML file. Loads and validates credentials from the specified path or the default ~/.ouro | STRING |
| HIGH | src/ouroboros/auto/ledger_seed.py | 232 | Synthesize a degraded but executable Seed from an incomplete ledger. The primary use case is the interview-deadline | STRING |
| HIGH | src/ouroboros/providers/gemini_event_normalizer.py | 131 | Normalize a single raw output line from the Gemini CLI. The function attempts JSON parsing first (when the stri | STRING |
| HIGH | src/ouroboros/providers/gemini_event_normalizer.py | 184 | Parse and normalise a JSON event line. Args: stripped: The stripped version of the line. | STRING |
| HIGH | src/ouroboros/providers/litellm_adapter.py | 1222 | Make the raw completion call. Args: messages: The conversation messages. config: The co | STRING |
| HIGH | src/ouroboros/providers/opencode_adapter.py | 203 | Normalize a model name for the OpenCode CLI. Strips whitespace and rejects the sentinel ``"default"`` value. | STRING |
| HIGH | src/ouroboros/providers/codex_cli_stream.py | 178 | Yield decoded lines from a runtime subprocess stdout/stderr stream. This is the orchestrator-runtime superset of :f | STRING |
| HIGH | src/ouroboros/providers/gemini_cli_adapter.py | 634 | Resolve the path to the ``gemini`` binary. Priority: 1. Explicit *cli_path* constructor argument | STRING |
| HIGH | src/ouroboros/runtime/child_env.py | 47 | Build an isolated environment for a nested backend CLI subprocess. Args: base_env: Environment to derive fr | STRING |
| HIGH | src/ouroboros/plugin/digest.py | 89 | Compute the canonical tree hash for the subtree at `root`. Args: root: Path to the directory whose contents | STRING |
| HIGH | src/ouroboros/plugin/manifest.py | 1105 | Load and validate a plugin manifest from `path`. Args: path: Filesystem path to an `ouroboros.plugin.json` | STRING |
| HIGH | src/ouroboros/plugin/ledger_adapter.py | 111 | Extract the original audit event from a wrapped envelope. Args: envelope: A dict produced by `wrap_plugin_e | STRING |
| HIGH | src/ouroboros/plugin/userlevel_registry.py | 88 | Register a program from its loaded manifest. Args: manifest: The validated `PluginManifest` (from ` | STRING |
| HIGH | src/ouroboros/plugin/agents/registry.py | 450 | Compose a new agent from existing one with overrides. Args: name: Name for the composed agent. | STRING |
| HIGH | src/ouroboros/plugin/agents/pool.py | 417 | Submit a task to the pool. Args: agent_type: Agent name or role to execute the task. pr | STRING |
| HIGH | src/ouroboros/plugin/agents/pool.py | 474 | Wait for and retrieve task result. Args: task_id: Task identifier. timeout: Maximum sec | STRING |
| HIGH | src/ouroboros/plugin/skills/registry.py | 406 | Load a skill from its SKILL.md file. Args: skill_md_path: Path to the SKILL.md file. Retur | STRING |
| HIGH | src/ouroboros/agents/loader.py | 57 | Load the full markdown content for an agent. Args: agent_name: File stem, e.g. ``"socratic-interviewer"``. | STRING |
| HIGH | src/ouroboros/mcp/tools/subagent.py | 660 | Build a SubagentPayload with validation. Args: tool_name: MCP tool name that triggered dispatch (e.g. "ouro | STRING |
| HIGH | src/ouroboros/mcp/tools/subagent.py | 1802 | Wrap a list of SubagentPayloads into a single MCPToolResult for parallel dispatch. The bridge plugin recognizes the | STRING |
| HIGH | src/ouroboros/mcp/tools/subagent.py | 1856 | Build N subagent payloads — one per lateral-thinking persona. Each payload targets a different persona so main LLM | STRING |
| HIGH | src/ouroboros/mcp/tools/subagent.py | 2381 | Build one SubagentPayload per fan-out request spec. This is the generic, request-shaped builder that lets any inter | STRING |
| HIGH | src/ouroboros/mcp/tools/background.py | 163 | Run the shared allocate -> guard -> agent-process -> start_job pipeline. Args: job_manager: The per-server | STRING |
| HIGH | src/ouroboros/mcp/server/auth.py | 319 | Build DNS-rebinding protection settings for a network bind. The SDK only auto-enables this protection for three loo | STRING |
| HIGH | src/ouroboros/mcp/server/auth.py | 426 | Validate a requested bind and build the SDK wiring that protects it. This is the trust boundary for serving: reachi | STRING |
| HIGH | src/ouroboros/mcp/server/adapter.py | 1523 | Create an Ouroboros MCP server with all tools and dependencies wired. This is a composition root that creates all s | STRING |
| HIGH | src/ouroboros/cli/jsonc.py | 42 | Convert JSONC text to strict JSON by removing comments and trailing commas. Unlike a simple regex sweep, this parse | STRING |
| HIGH | src/ouroboros/cli/jsonc.py | 79 | Parse JSONC text into a Python object. Convenience wrapper that strips comments/trailing commas then delegates | STRING |
| HIGH | src/ouroboros/cli/commands/run.py | 162 | Load seed configuration from YAML file. Args: seed_file: Path to the seed YAML file. Returns: | STRING |
| HIGH | src/ouroboros/cli/commands/mcp.py | 1288 | Validate the requested exposure and return the token to enforce. ``MCPServerAdapter.serve`` holds the same boundary | STRING |
| HIGH | src/ouroboros/harness/deliver_gate.py | 258 | Load and normalize EventStore evidence for one AC deliver-gate check. ``execution_id`` is required so the deliver-g | STRING |
| HIGH | src/ouroboros/resilience/stagnation.py | 647 | Create appropriate event for a stagnation detection. Factory function that creates the correct event type based on | STRING |
| HIGH | src/ouroboros/persistence/checkpoint.py | 117 | Reconstruct checkpoint from dict. Args: data: Dict with checkpoint data. Returns: | STRING |
| HIGH | src/ouroboros/persistence/checkpoint.py | 193 | Sanitize seed_id to prevent path traversal attacks. Strips null bytes, removes path separators, Windows-reserve | STRING |
| HIGH | src/ouroboros/persistence/checkpoint.py | 543 | Get file path for checkpoint at specific rollback level. The seed_id is sanitized to prevent path traversal, an | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 53 | Create a BrownfieldRepo from a dict. Accepts the same dict shape as the old ``BrownfieldEntry.from_dict()``. | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 236 | Register a brownfield repository. If a repo with the same path already exists, it is updated (upsert). | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 312 | Bulk-insert scanned repositories (is_default=False, desc=''). Each dict must have ``path`` and ``name`` keys. | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 368 | List registered brownfield repositories with optional pagination. Args: offset: Number of rows to s | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 488 | Set a repository as the sole default brownfield context. Clears the default flag on **all** other repos and set | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 617 | Update the description of a registered repository. Args: path: Absolute filesystem path of the repo | STRING |
| HIGH | src/ouroboros/persistence/brownfield.py | 656 | Remove a brownfield repository registration. Args: path: Absolute filesystem path of the repo to re | STRING |
| HIGH | src/ouroboros/persistence/event_store.py | 787 | Append an event to the store. The operation is wrapped in a transaction for atomicity. If the insert fa | STRING |
| HIGH | src/ouroboros/persistence/event_store.py | 1685 | Replay all events for a specific aggregate. The operation uses a transaction for read consistency. Arg | STRING |
| HIGH | src/ouroboros/persistence/event_store.py | 1882 | Get recent events, optionally filtered by type. Args: event_type: Optional event type to filter by. | STRING |
| HIGH | src/ouroboros/persistence/event_store.py | 3000 | Replay all events for a lineage aggregate. Convenience method for evolutionary loop lineage reconstruction. | STRING |
| HIGH | src/ouroboros/evaluation/checklist.py | 128 | Aggregate per-AC EvaluationResult objects into a checklist. Args: ac_texts: The acceptance criteria, in the | STRING |
| HIGH | src/ouroboros/bigbang/ambiguity.py | 730 | Parse LLM response into ScoreBreakdown. Args: response: Raw LLM response text. is_brown | STRING |
| HIGH | src/ouroboros/bigbang/interview.py | 643 | Deterministically select the best question candidate. Selection rule (no LLM judge): 1. Prefer the candidate t | STRING |
| HIGH | src/ouroboros/bigbang/question_classifier.py | 307 | Parse LLM classification response. Args: response: Raw LLM response text. original_ques | STRING |
| HIGH | src/ouroboros/bigbang/seed_generator.py | 2216 | Parse LLM response into requirements dictionary. Args: response: Raw LLM response text. Re | STRING |
| HIGH | src/ouroboros/bigbang/pm_interview.py | 1496 | Parse LLM response into PMSeed. Args: response: Raw LLM response text. interview_id: So | STRING |
| HIGH | src/ouroboros/orchestrator/adapter.py | 1529 | Execute a task and yield progress messages. This is an async generator that streams messages as Claude works. | STRING |
| HIGH | src/ouroboros/orchestrator/opencode_runtime.py | 476 | Assemble the CLI argument list for ``opencode run``. The prompt is **not** included in argv — it is piped via s | STRING |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 270 | # annotations must use typing generics (boundary/harness.py docstring). | COMMENT |
| MEDIUM⚡ | tests/unit/boundary/test_journal_authority.py | 1259 | # An oracle result is one the harness and oracle_run can write. | COMMENT |
| MEDIUM⚡ | tests/unit/boundary/test_journal_authority.py | 1271 | # The run was handed its binding, yet the harness says it used the default. | COMMENT |
| MEDIUM | tests/unit/boundary/test_journal_authority.py | 547 | # The product hands every bound oracle its binding: the harness says declared. | COMMENT |
| MEDIUM | tests/unit/boundary/test_journal_authority.py | 953 | # claims the check met its role while only c2 passed is one the harness | COMMENT |
| MEDIUM | tests/unit/boundary/test_journal_authority.py | 1287 | # tier A), so the harness reports it as declared. | COMMENT |
| MEDIUM⚡ | tests/unit/boundary/test_built_call_oracle.py | 182 | # The harness forms, one by one | COMMENT |
| MEDIUM | tests/unit/boundary/test_record_projection.py | 323 | # The oracle check with an assertion id the harness check does not have. | COMMENT |
| MEDIUM | tests/unit/boundary/test_oracle_run.py | 206 | # (a) It prints the old harness's "all passed" line and exits 0. | COMMENT |
| MEDIUM | tests/unit/boundary/test_oracle_run.py | 338 | # answer. The comparison runs in the harness process, against frozen | COMMENT |
| MEDIUM | tests/unit/boundary/test_oracle_run.py | 506 | # target. The base run is the target proof now: the harness resolves the | COMMENT |
| MEDIUM | tests/unit/boundary/test_oracle_run.py | 663 | # The harness reports ``unprovable`` where the host cannot prove the | COMMENT |
| MEDIUM⚡ | tests/unit/boundary/test_oracle_frames.py | 174 | # the harness truncates repr to 300 characters; a longer one is | COMMENT |
| MEDIUM | tests/unit/boundary/test_oracle_frames.py | 233 | # Each starts the pinned interpreter (after ``--``) in the harness target role. | COMMENT |
| MEDIUM | tests/unit/boundary/test_ledger.py | 602 | # oracle harness and data files; one without is schema v1 with neither. | COMMENT |
| MEDIUM | tests/unit/mcp/tools/test_definitions.py | 276 | # Verify-by-default: fresh runs enforce fat-harness unless the seed | COMMENT |
| MEDIUM | tests/unit/cli/test_harness.py | 423 | # The bot reproduced: ``harness show <abs-path> --traces-root <root>`` served | COMMENT |
| MEDIUM | tests/unit/scripts/test_install_ps1_python.py | 69 | # Pass paths through the environment and code as UTF-16LE so the harness | STRING |
| MEDIUM⚡ | tests/unit/config_tui/test_launcher.py | 21 | ("1", True, True), # harness env wins even on a TTY | CODE |
| MEDIUM⚡ | tests/unit/orchestrator/test_model_routing.py | 787 | # Cross-harness redispatch swaps in a codex adapter mid-run; a router built | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_frugality_producers.py | 1139 | # No structured facts array → the common non-fat-harness case → skip silently. | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_profile_strategy.py | 139 | # Bot finding on #891 r7: the harness has no structured BLOCKED | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_parallel_executor.py | 6842 | # ``files_touched`` path the agent claims. Every case must fail the fat-harness | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_parallel_executor.py | 13169 | # Isolate the stall→failure conversion: cross-harness redispatch is a | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_parallel_executor.py | 13274 | # same-runtime budget is only 'exhausted' (so alt-harness may run) on | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_parallel_executor.py | 13368 | # counter cap — yet the alternate harness was still consulted exactly once. | COMMENT |
| MEDIUM | …chestrator/test_parallel_executor_verify_by_default.py | 872 | # loop early-stops before the counter cap and reaches the alt-harness hook. | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_antigravity_cli_runtime.py | 26 | # --- Minimal fake subprocess harness (mirrors test_codex_cli_runtime) ------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_phase_wrappers.py | 86 | # merging with the harness instructions below. Every non-empty | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_grok_cli_runtime.py | 23 | # --- Minimal fake subprocess harness (mirrors test_codex_cli_runtime) ------- | COMMENT |
| MEDIUM | …sts/unit/orchestrator/test_baseline_metrics_capture.py | 1 | """Tests for the recorded #961 fat-harness baseline capture artifact.""" | STRING |
| MEDIUM | tests/unit/orchestrator/test_shadow_replay.py | 475 | # -- Layer 2: the harness itself --------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_shadow_replay.py | 1231 | # prompts are an explicit limitation of this experiment harness. | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_shadow_replay.py | 1374 | # Flag off → the harness is never entered: no factory build, no event. | COMMENT |
| MEDIUM | tests/unit/orchestrator/evidence/test_call_citation.py | 204 | # The replay passed, but the harness replay does not report executed lines yet: no evidence, | COMMENT |
| MEDIUM | tests/canonical/test_canonical.py | 428 | # exists in source). The harness must not be subject to the same defect. | COMMENT |
| MEDIUM | tests/canonical/cli-todo/expected.yaml | 22 | # Live product-reality smoke contract (#1452). The live harness executes | COMMENT |
| MEDIUM | tests/conformance/workflow_ir/__init__.py | 1 | # Workflow IR conformance harness — Wave 1 N-2 (parent #956, umbrella #1131). | COMMENT |
| MEDIUM | …nformance/workflow_ir/test_plugin_firewall_contract.py | 165 | This is the load-bearing #1131 contract: when the harness projects | STRING |
| MEDIUM | …nformance/workflow_ir/test_plugin_firewall_contract.py | 181 | # The firewall outcome the harness MUST consume. | COMMENT |
| MEDIUM | integrations/dsh-plugin/cordis.patch.yml | 58 | # The child does NOT inherit the harness environment wholesale: | COMMENT |
| MEDIUM | integrations/dsh-plugin/cordis.patch.yml | 61 | # every DSH_* name removed, precisely so harness credentials never leak | COMMENT |
| MEDIUM | scripts/manual-synapse-state-smoke.py | 326 | except Exception as exc: # noqa: BLE001 - manual harness reports exact failure. | CODE |
| MEDIUM | scripts/manual-synapse-smoke.py | 301 | except Exception as exc: # noqa: BLE001 - manual harness reports exact backend failure. | CODE |
| MEDIUM | src/ouroboros/orchestrator_stage.py | 4 | agreed in #476 assigns a different harness per pipeline stage: | STRING |
| MEDIUM | src/ouroboros/auto/domain_inference.py | 92 | # both more robust and easier to reason about: | COMMENT |
| MEDIUM | src/ouroboros/auto/domain_inference.py | 1405 | # The harness owns what it creates and recycles (#1813 R98): a component | COMMENT |
| MEDIUM | src/ouroboros/auto/web_ownership.py | 157 | # audit", "admin portal documentation", "admin portal test harness"), so | COMMENT |
| MEDIUM | src/ouroboros/boundary/package.py | 410 | # The harness argv, the frozen failure signature, one assertion | COMMENT |
| MEDIUM | src/ouroboros/boundary/oracle_run.py | 156 | # The harness ``cli`` role writes one short frame on stderr, nothing else. | COMMENT |
| MEDIUM | src/ouroboros/boundary/oracle_run.py | 272 | # The harness truncates ``repr`` to MAX_REPR; a longer one is forged and | COMMENT |
| MEDIUM | src/ouroboros/boundary/authority.py | 489 | # An attempt is the whole result handed over (a cross-harness alternate | COMMENT |
| MEDIUM | src/ouroboros/boundary/oracle.py | 99 | # The product harness (``boundary/harness.py``), as the text every oracle | COMMENT |
| MEDIUM | src/ouroboros/boundary/oracle.py | 494 | # Results: closed models of what the harness comparison decided | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/pm_handler.py | 539 | # plugin/project MCP server — under a heavy harness the front-loaded | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/execution_handlers.py | 1358 | # The original seed file may contain harness-owned assertions. | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/execution_handlers.py | 2659 | # The original seed file may contain harness-owned assertions. | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/authoring_handlers.py | 2430 | # dependency-injection / test-harness path into a hard failure. | COMMENT |
| MEDIUM | src/ouroboros/cli/commands/auto.py | 817 | # before printing so the status surface stays robust against | COMMENT |
| MEDIUM | src/ouroboros/config_tui/app.py | 132 | # the robust blank check across widget interactions. | COMMENT |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/pm/test_renderer.py | 0 | create a pmseed with sensible defaults for testing. | STRING |
| HIGH | tests/unit/bigbang/test_pm_document_generator.py | 0 | create a pmseed with sensible defaults for testing. | STRING |
| HIGH | tests/unit/bigbang/test_pm_document_writer.py | 0 | create a pmseed with sensible defaults for testing. | STRING |
| HIGH | tests/unit/mcp/tools/test_ac_tree_hud_footer.py | 0 | provide an initialized in-memory event store and dispose it after each test. | STRING |
| HIGH | tests/unit/mcp/tools/test_ac_tree_hud_max_nodes.py | 0 | provide an initialized in-memory event store and dispose it after each test. | STRING |
| HIGH | tests/unit/mcp/tools/test_definitions.py | 0 | provide an initialized in-memory event store and dispose it after each test. | STRING |
| HIGH | tests/unit/mcp/tools/test_ac_tree_hud_handler.py | 0 | provide an initialized in-memory event store and dispose it after each test. | STRING |
| HIGH | …s/unit/mcp/tools/test_ac_tree_hud_handler_completed.py | 0 | provide an initialized in-memory event store for hud handler tests. | STRING |
| HIGH | …/mcp/tools/test_ac_tree_hud_handler_invalid_session.py | 0 | provide an initialized in-memory event store for hud handler tests. | STRING |
| HIGH | …t/mcp/tools/test_ac_tree_hud_handler_cursor_changed.py | 0 | provide an initialized in-memory event store for hud handler tests. | STRING |
| HIGH | …nit/mcp/tools/test_ac_tree_hud_handler_no_execution.py | 0 | provide an initialized in-memory event store for hud handler tests. | STRING |
| HIGH | …sts/unit/mcp/tools/test_ac_tree_hud_handler_waiting.py | 0 | provide an initialized in-memory event store for hud handler tests. | STRING |
| HIGH | tests/unit/bigbang/test_pm_interview.py | 0 | create a pminterviewengine with mocked dependencies. | STRING |
| HIGH | tests/unit/bigbang/test_pm_interview_brownfield_db.py | 0 | create a pminterviewengine with mocked dependencies. | STRING |
| HIGH | tests/unit/bigbang/test_decide_later_items.py | 0 | create a pminterviewengine with mocked dependencies. | STRING |
| HIGH | tests/unit/bigbang/test_classifier_context.py | 0 | create a pminterviewengine with mocked dependencies. | STRING |
| HIGH | tests/unit/orchestrator/test_codex_cli_runtime.py | 0 | removed local parser helpers should not remain referenced by the runtime. | STRING |
| HIGH | tests/unit/orchestrator/test_opencode_runtime.py | 0 | removed local parser helpers should not remain referenced by the runtime. | STRING |
| HIGH | tests/unit/orchestrator/test_hermes_runtime.py | 0 | removed local parser helpers should not remain referenced by the runtime. | STRING |
| HIGH | tests/unit/orchestrator/test_inflight_cancellation.py | 0 | treat a unit-test tracker as the durable snapshot for mocked stores. | STRING |
| HIGH | tests/unit/orchestrator/test_runner.py | 0 | treat a unit-test tracker as the durable snapshot for mocked stores. | STRING |
| HIGH | …ts/unit/orchestrator/test_runner_execution_guidance.py | 0 | treat a unit-test tracker as the durable snapshot for mocked stores. | STRING |
| HIGH | tests/unit/orchestrator/test_runner_cancellation.py | 0 | treat a unit-test tracker as the durable snapshot for mocked stores. | STRING |
| HIGH | src/ouroboros/tui/screens/execution.py | 0 | initialize debug screen. args: state: initial tui state. name: screen name. id: screen id. classes: css classes. | STRING |
| HIGH | src/ouroboros/tui/screens/logs.py | 0 | initialize debug screen. args: state: initial tui state. name: screen name. id: screen id. classes: css classes. | STRING |
| HIGH | src/ouroboros/tui/screens/debug.py | 0 | initialize debug screen. args: state: initial tui state. name: screen name. id: screen id. classes: css classes. | STRING |
| HIGH | src/ouroboros/tui/screens/execution.py | 0 | update the entire state. args: state: new tui state. | STRING |
| HIGH | src/ouroboros/tui/screens/logs.py | 0 | update the entire state. args: state: new tui state. | STRING |
| HIGH | src/ouroboros/tui/screens/debug.py | 0 | update the entire state. args: state: new tui state. | STRING |
| HIGH | src/ouroboros/providers/pi_llm_adapter.py | 0 | validate extracted json against the requested response_format. | STRING |
| HIGH | src/ouroboros/providers/omp_llm_adapter.py | 0 | validate extracted json against the requested response_format. | STRING |
| HIGH | src/ouroboros/providers/goose_cli_adapter.py | 0 | validate extracted json against the requested response_format. | STRING |
| HIGH | src/ouroboros/providers/ourocode_llm_adapter.py | 0 | validate extracted json against the requested response_format. | STRING |
| HIGH | src/ouroboros/providers/zcode_cli_adapter.py | 0 | validate extracted json against the requested response_format. | STRING |
| HIGH | src/ouroboros/providers/codex_cli_adapter.py | 0 | resolve an explicit cli path from config helpers when available. | STRING |
| HIGH | src/ouroboros/orchestrator/grok_cli_runtime.py | 0 | resolve an explicit cli path from config helpers when available. | STRING |
| HIGH | src/ouroboros/orchestrator/codex_cli_runtime.py | 0 | resolve an explicit cli path from config helpers when available. | STRING |
| HIGH | src/ouroboros/verification/extractor.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/evaluation/semantic.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/bigbang/ambiguity.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/bigbang/question_classifier.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/bigbang/pm_document.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/bigbang/explore.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/bigbang/pm_interview.py | 0 | resolve implicit default model while preserving explicit caller pins. | STRING |
| HIGH | src/ouroboros/orchestrator/hermes_runtime.py | 0 | identify final recoverable intercept failures that should fall through. | STRING |
| HIGH | src/ouroboros/orchestrator/skill_intercept.py | 0 | identify final recoverable intercept failures that should fall through. | STRING |
| HIGH | src/ouroboros/orchestrator/codex_cli_runtime.py | 0 | identify final recoverable intercept failures that should fall through. | STRING |
| HIGH | src/ouroboros/orchestrator/hermes_runtime.py | 0 | preserve runtime-owned warnings for matched skills with bad metadata. | STRING |
| HIGH | src/ouroboros/orchestrator/opencode_runtime.py | 0 | preserve runtime-owned warnings for matched skills with bad metadata. | STRING |
| HIGH | src/ouroboros/orchestrator/codex_cli_runtime.py | 0 | preserve runtime-owned warnings for matched skills with bad metadata. | STRING |
| HIGH | src/ouroboros/orchestrator/hermes_runtime.py | 0 | attach interview session metadata to the runtime handle. | STRING |
| HIGH | src/ouroboros/orchestrator/command_dispatcher.py | 0 | attach interview session metadata to the runtime handle. | STRING |
| HIGH | src/ouroboros/orchestrator/codex_cli_runtime.py | 0 | attach interview session metadata to the runtime handle. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 61 | Repository = "https://github.com/Q00/ouroboros" | COMMENT |
| LOW | pyproject.toml | 141 | COMMENT | |
| LOW | tests/conftest.py | 21 | COMMENT | |
| LOW | tests/conftest.py | 41 | # and dynamically resolved CLI persistence defaults in one move, and | COMMENT |
| LOW | tests/unit/auto/test_seed_repairer_bounded.py | 401 | # Wait for the daemon worker thread to unwind on its own. ``wait_for`` | COMMENT |
| LOW | tests/unit/auto/test_domain_inference.py | 281 | classification is ledger-derived, not goal-text-derived alone.""" | COMMENT |
| LOW | tests/unit/auto/test_domain_inference.py | 381 | COMMENT | |
| LOW | tests/unit/auto/test_domain_inference.py | 461 | a negated CLI mention (e.g. "CLI, not a CLI library") must still | COMMENT |
| LOW | tests/unit/auto/test_stop_reason_code.py | 41 | COMMENT | |
| LOW | tests/unit/auto/test_interview_pipeline.py | 5281 | result = await driver.run(state, ledger) | COMMENT |
| LOW | tests/unit/auto/test_interview_pipeline.py | 5421 | second = await driver.run(state, resumed_ledger) | COMMENT |
| LOW | tests/unit/auto/test_adapters_ralph_poller.py | 81 | result = await poller(job_id="job_ralph_existing") | COMMENT |
| LOW | tests/unit/auto/test_pipeline_lateral.py | 821 | run_artifact=long_artifact, | COMMENT |
| LOW | tests/unit/plugin/test_firewall.py | 1361 | from ouroboros.plugin.digest import canonical_tree_hash | COMMENT |
| LOW | tests/unit/mcp/tools/test_data_context_lane.py | 1101 | # weighed against (see the cross-issuance test above): the server cannot | COMMENT |
| LOW | tests/unit/mcp/tools/test_data_context_lane.py | 1861 | # --------------------------------------------------------------------------- # | COMMENT |
| LOW | tests/unit/cli/test_harness.py | 421 | # run_id path-traversal boundary (security regression, #1582 bot finding) # | COMMENT |
| LOW | tests/unit/cli/test_auto_command.py | 1161 | # A hand-built Ralph handler enqueues a job that dies on its first | COMMENT |
| LOW | tests/unit/bigbang/test_answer_provenance.py | 301 | COMMENT | |
| LOW | tests/unit/orchestrator/test_context_governor.py | 241 | ) | COMMENT |
| LOW | tests/unit/orchestrator/test_zcode_cli_runtime.py | 341 | permission_mode="bypassPermissions", | COMMENT |
| LOW | tests/unit/orchestrator/test_phase_wrappers.py | 61 | COMMENT | |
| LOW | tests/canonical/cli-todo/expected.yaml | 1 | # L0 canonical acceptance scenario — cli-todo | COMMENT |
| LOW | tests/integration/auto/test_dispatch_to_seed_e2e.py | 481 | # | COMMENT |
| LOW | tests/conformance/workflow_ir/__init__.py | 1 | # Workflow IR conformance harness — Wave 1 N-2 (parent #956, umbrella #1131). | COMMENT |
| LOW | docs/guides/evaluation-pipeline.md | 601 | max_tokens=2048, | COMMENT |
| LOW | docs/guides/evaluation-pipeline.zh-CN.md | 561 | ), | COMMENT |
| LOW | docs/examples/mcp-config.yaml | 1 | # Example MCP Client Configuration for Ouroboros | COMMENT |
| LOW | docs/examples/mcp-config.yaml | 41 | # - name: "memory" | COMMENT |
| LOW | docs/examples/mcp-config.yaml | 61 | # transport: "sse" | COMMENT |
| LOW | docs/examples/mcp-config.yaml | 81 | # Example: tool_prefix: "mcp_" makes "read" become "mcp_read" | COMMENT |
| LOW | integrations/dsh-plugin/cordis.patch.yml | 1 | # dsh-ouroboros — mounts Ouroboros as native MCP tools inside DeepSeek Harness. | COMMENT |
| LOW | integrations/dsh-plugin/cordis.patch.yml | 21 | # spawns its own `dsh-acp-demo` child and fails | COMMENT |
| LOW | integrations/dsh-plugin/cordis.patch.yml | 61 | # every DSH_* name removed, precisely so harness credentials never leak | COMMENT |
| LOW | examples/coordinator_test_seed.yaml | 1 | # Coordinator Agent Test Seed | COMMENT |
| LOW | examples/parallel_subac_test_seed.yaml | 1 | # Parallel Sub-AC Test Seed | COMMENT |
| LOW | scripts/check-auto-boundary.py | 101 | COMMENT | |
| LOW | scripts/check-auto-boundary.py | 121 | # PascalCase-composition forms. | COMMENT |
| LOW | scripts/check-auto-boundary.py | 141 | # missed. The case-sensitive uppercase first letter is what | COMMENT |
| LOW | scripts/check-auto-boundary.py | 161 | # ``linearTransform``, or ``LinearOperator`` stay benign even | COMMENT |
| LOW | scripts/check-auto-boundary.py | 241 | # Root-level escape: if SCAN_DIR itself is a symlink whose | COMMENT |
| LOW | scripts/ralph.py | 21 | import re | COMMENT |
| LOW | scripts/check-auto-perf-budget.py | 41 | # bodies wrap multi-line guidance blocks. Bot review on commit dc191d02 | COMMENT |
| LOW | scripts/check-auto-perf-budget.py | 121 | body = _strip_html_comments(body) | COMMENT |
| LOW | scripts/install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/install.sh | 141 | # occurrence. This standalone installer must honor the same telemetry keys | COMMENT |
| LOW | scripts/install.sh | 221 | # A missing closing quote and trailing garbage after a real closing | COMMENT |
| LOW | scripts/install.sh | 241 | case "$trailing" in | COMMENT |
| LOW | scripts/install.sh | 281 | # Unquoted values follow dotenv grammar: an inline ` # comment` is | COMMENT |
| LOW | scripts/install.sh | 321 | _telemetry_config_allows() { | COMMENT |
| LOW | scripts/install.sh | 441 | command -v curl &>/dev/null || return 1 | COMMENT |
| LOW | scripts/install.sh | 461 | # the first of several duplicate top-level keys, and must NOT be trusted | COMMENT |
| LOW | scripts/install.sh | 481 | # this is a documented best-effort gap. | COMMENT |
| LOW | scripts/install.sh | 581 | unset -f _telemetry_extract_uuid _telemetry_read_state _telemetry_canonical_id _telemetry_salvage_candidate | COMMENT |
| LOW | scripts/install.sh | 601 | # Both primitives only check whether *something* already exists at | COMMENT |
| LOW | scripts/install.sh | 641 | # the tiny remaining race. | COMMENT |
| LOW | scripts/install.sh | 681 | _telemetry_enabled || return 0 | COMMENT |
| LOW | scripts/ralph.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/bump-homebrew-formula.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/dependabot.yml | 1 | # Dependabot configuration. | COMMENT |
| 223 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | llms.txt | 88 | plugin/ # Plugin system (skills, agents, orchestration) | CODE |
| MEDIUM | CONTRIBUTING.md | 544 | orchestrator/ # Runtime abstraction and orchestration | CODE |
| MEDIUM⚡ | tests/unit/backends/test_capabilities.py | 146 | # Codex additionally exposes host-driven subagent orchestration guidance so | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_subagent_orchestration.py | 37 | # absent from the name-map → NONE. Its EXTERNAL orchestration is | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_host_dispatch_runtime.py | 77 | # Landmine 3: joining the passive-bridge / leader-driven orchestration | COMMENT |
| MEDIUM | docs/architecture.md | 409 | +-- orchestrator/ # Runtime abstraction and orchestration | CODE |
| MEDIUM | docs/rfc/frugality-control-loop.md | 1 | # RFC — Token frugality as one control loop (attribution + advisory guardrails) | COMMENT |
| MEDIUM | docs/rfc/active-conductor.md | 1 | # RFC — Active conductor: judgment on the event-driven main session | COMMENT |
| MEDIUM | docs/rfc/active-conductor.md | 12 | #1599 made background-job observation event-driven: one read-only child owns the | COMMENT |
| MEDIUM | docs/guides/agent-process-lifecycle.md | 3 | Issue #518 tracks the move from ad-hoc agent/session orchestration toward a | CODE |
| MEDIUM | docs/history/agentos/release-readiness.md | 297 | | AgentOS smoke: long-running runtime and recovery | Start/status/result behavior, recovery/cancel/retry truthfulness, a | CODE |
| MEDIUM | docs/history/agentos/release-readiness.md | 983 | | #924 | Closed/folded | Done/folded | No direct release impact; covered by the canonical multi-agent deliberation RFC. | CODE |
| MEDIUM | docs/history/agentos/release-readiness.md | 988 | | #934 | Closed/folded | Done/folded | No direct release impact; plugin readiness is assessed through #939 tests and doc | CODE |
| MEDIUM | docs/history/agentos/issue-sequencing-graph.md | 217 | | #1258 | B | Regression guardrails landed in #1259; the broader perf policy remains needs-design/needs-approval. | Trea | CODE |
| MEDIUM | src/ouroboros/auto/domain_inference.py | 953 | # only bare noun continuation ("web app scaffolding CLI") re-heads. | COMMENT |
| MEDIUM | src/ouroboros/auto/domain_inference.py | 989 | # scaffolding CLI", "website generator CLI") mean the web phrase | COMMENT |
| MEDIUM | src/ouroboros/auto/domain_inference.py | 1022 | # "to scaffold and deploy a web app") are not product declarations | COMMENT |
| MEDIUM | src/ouroboros/auto/pipeline.py | 426 | # #1509: final-status surfaces must distinguish orchestration state | COMMENT |
| MEDIUM | src/ouroboros/providers/claude_code_adapter.py | 1270 | # *agentic CLI subprocess* and then turns every agent surface | COMMENT |
| MEDIUM | src/ouroboros/backends/capabilities.py | 651 | # it drives the agentic orchestrator runtime but does not back | COMMENT |
| MEDIUM | src/ouroboros/backends/capabilities.py | 666 | # --output-format streaming-json`` drives the agentic orchestrator | COMMENT |
| MEDIUM | src/ouroboros/backends/capabilities.py | 685 | # agentic orchestrator runtime or interview driving. SDK-free and | COMMENT |
| MEDIUM | src/ouroboros/backends/capabilities.py | 700 | # (interview/seed/qa/evaluate) but NOT the agentic orchestrator | COMMENT |
| MEDIUM | src/ouroboros/mcp/job_manager.py | 148 | # Parent execution projections historically stored the orchestration | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/definitions.py | 701 | # needs dependency injection should call ``get_ouroboros_tools(...)`` instead; | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/authoring_handlers.py | 2378 | # agentic explorer, and matches ``PMInterviewHandler._get_engine`` | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/attention_relay.py | 330 | # can absorb another orchestration session's progress. | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/attention_relay.py | 584 | # A linked execution stream may contain multiple orchestration | COMMENT |
| MEDIUM | src/ouroboros/mcp/tools/attention_relay.py | 644 | # orchestration session. Filter before building route/recovery streaks so | COMMENT |
| MEDIUM | src/ouroboros/mcp/server/adapter.py | 2256 | # Create tool registry for dependency injection | COMMENT |
| MEDIUM | src/ouroboros/cli/commands/mcp.py | 924 | # Create server with all tools pre-registered via dependency injection. | COMMENT |
| MEDIUM | src/ouroboros/observability/frugality_retrospective.py | 146 | # parent orchestration session. Retrospective authority follows the latter; | COMMENT |
| MEDIUM | src/ouroboros/persistence/picker_indexes.py | 145 | # used this aggregate as the orchestration session key. | COMMENT |
| MEDIUM | src/ouroboros/evaluation/detector.py | 769 | # lookup would let an LLM hallucination become a phantom Stage 1 failure | COMMENT |
| MEDIUM⚡ | src/ouroboros/bigbang/ambiguity.py | 147 | # Maximum token limit (None = no limit, rely on model's context window) | COMMENT |
| MEDIUM | src/ouroboros/bigbang/brownfield.py | 345 | # ── High-level orchestration ─────────────────────────────────────── | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/adapter.py | 821 | # Canonical backend → sub-agent-orchestration mapping. Single source of truth so | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/host_dispatch.py | 460 | # leader-driven orchestration sets; the host spawns, we wait. | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/pi_runtime.py | 139 | # runtime construction. execute_task() runs on the orchestration | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/frugality_proof.py | 104 | # Acceptance authority is scoped to the orchestration session (and its | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/codex_cli_runtime.py | 445 | # exposes only ``codex`` / ``codex-reply`` — its native multi-agent | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/codex_cli_runtime.py | 447 | # reuse/continue a Codex thread but cannot orchestrate Codex children; | COMMENT |
| MEDIUM | src/ouroboros/orchestrator/execution_authority.py | 1082 | # orchestration session. Query/replay selection must scope those | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/core/test_context.py | 112 | # Create a context with lots of data to exceed token limit (MAX_TOKENS = 100000) | COMMENT |
| MEDIUM | tests/unit/tui/test_screens.py | 109 | # Create a mock message-like object | COMMENT |
| MEDIUM⚡ | tests/unit/plugin/agents/test_registry.py | 456 | # Create a test agent file | COMMENT |
| MEDIUM | tests/unit/plugin/agents/test_registry.py | 496 | # Create an analysis agent | COMMENT |
| MEDIUM | tests/unit/plugin/agents/test_registry.py | 524 | # Create an empty file | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_loader.py | 327 | # Create a custom agent directory with a modified agent file | COMMENT |
| MEDIUM | tests/unit/mcp/tools/test_definitions.py | 3168 | # Create a running session via the repository | COMMENT |
| MEDIUM | tests/unit/cli/test_setup.py | 401 | "# This file is only for the Codex MCP/env registration block.", | CODE |
| MEDIUM | tests/unit/cli/test_setup.py | 476 | "# This file is only for the Codex MCP/env registration block.", | CODE |
| MEDIUM | tests/unit/cli/test_setup.py | 544 | "# This file is only for the Codex MCP/env registration block.", | CODE |
| MEDIUM | tests/unit/cli/test_setup.py | 1118 | "# This file is only for the Codex MCP/env registration block.", | CODE |
| MEDIUM | tests/unit/cli/test_run_qa.py | 1214 | # Create the existing file the reference points at — this is the | COMMENT |
| MEDIUM⚡ | tests/unit/persistence/test_brownfield_store.py | 90 | # Create a second store from the same engine | COMMENT |
| MEDIUM | tests/unit/persistence/test_event_store.py | 3045 | # Create the on-disk schema with a writable store first so the read-only | COMMENT |
| MEDIUM⚡ | tests/unit/bigbang/test_brownfield.py | 114 | # Create a real git repo with a GitHub origin | COMMENT |
| MEDIUM⚡ | tests/unit/bigbang/test_brownfield.py | 199 | # Create a repo with a remote whose name is not "origin". | COMMENT |
| MEDIUM⚡ | tests/unit/bigbang/test_brownfield.py | 510 | # Create a GitHub repo | COMMENT |
| MEDIUM⚡ | tests/unit/bigbang/test_brownfield.py | 992 | # Create a repo inside the skip directory | COMMENT |
| MEDIUM | tests/unit/bigbang/test_brownfield.py | 310 | # Create a repo inside node_modules (should be skipped) | COMMENT |
| MEDIUM | tests/unit/bigbang/test_brownfield.py | 323 | # Create a repo inside a hidden directory | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_level_context.py | 713 | # Create a file outside the workspace | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_level_context.py | 751 | # Create a file outside the workspace | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_n_version_tournament.py | 275 | # Create a brand-new file that is untracked (never staged/committed). | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_n_version_tournament.py | 381 | # Create a binary file in the base repo. | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_n_version_tournament.py | 405 | # Create a new binary file (untracked). | COMMENT |
| MEDIUM⚡ | tests/integration/plugin/test_orchestration.py | 39 | # Create an async iterator that yields mock messages | COMMENT |
| MEDIUM | tests/e2e/test_session_persistence.py | 152 | # Create a sequence with enough messages to trigger progress events | COMMENT |
| MEDIUM | tests/e2e/test_full_workflow.py | 387 | # Create a long sequence of messages | COMMENT |
| MEDIUM | examples/task_manager/cli.py | 15 | # Create the Typer app | COMMENT |
| MEDIUM | src/ouroboros/cli/main.py | 81 | # Create the main Typer app | COMMENT |
| MEDIUM | src/ouroboros/cli/commands/setup.py | 451 | # This file is only for the Codex MCP/env registration block. | COMMENT |
| MEDIUM | src/ouroboros/cli/commands/setup.py | 466 | "# This file is only for the Codex MCP/env registration block.", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/evolution/test_provider_usage.py | 158 | async def execute_task(self, **kwargs): # noqa: ANN201, ARG002 | CODE |
| LOW | tests/unit/orchestrator/test_check_package_hooks.py | 77 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_effort_routed_event.py | 63 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_effort_routed_event.py | 98 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_effort_routed_event.py | 115 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_effort_routed_event.py | 129 | async def execute_task( | CODE |
| LOW | …it/orchestrator/test_synapse_after_turn_integration.py | 55 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | …it/orchestrator/test_synapse_after_turn_integration.py | 96 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | …it/orchestrator/test_synapse_after_turn_integration.py | 129 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | …it/orchestrator/test_synapse_after_turn_integration.py | 151 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | …it/orchestrator/test_synapse_after_turn_integration.py | 160 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | …it/orchestrator/test_synapse_after_turn_integration.py | 191 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_frugality_producers.py | 168 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_frugality_producers.py | 207 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 233 | 'python -c "from pathlib import Path; def helper():\n' | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 3416 | async def execute_task(self, **_kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 4730 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 6454 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 6578 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 6667 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 7366 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 7652 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 7747 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 7887 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 7962 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 8066 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 12079 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 12166 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 12295 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 12400 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 12466 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 12529 | async def execute_task(self, **_kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 13403 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 13511 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 13639 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 13751 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 13907 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14026 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14144 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14290 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14380 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14513 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14659 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 14766 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16105 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16201 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16302 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16380 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16537 | async def execute_task(self, **kwargs: Any): | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16615 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16733 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16787 | async def execute_task(self, **kwargs): # noqa: ANN201, ARG002 | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16836 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_parallel_executor.py | 16887 | async def execute_task( | CODE |
| LOW | …nit/orchestrator/test_parallel_executor_bounce_only.py | 1111 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_model_routing_wiring.py | 122 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_model_routing_wiring.py | 159 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_coordinator.py | 623 | async def execute_task( | CODE |
| LOW | tests/unit/orchestrator/test_route_compat.py | 641 | async def execute_task( | CODE |
| LOW | …orchestrator/test_parallel_executor_atomic_judgment.py | 27 | async def execute_task( | CODE |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/unit/mcp/tools/test_pm_handler_snapshot.py | 105 | # Step 1: start without repos to create the session + pm_meta. | COMMENT |
| LOW | tests/unit/mcp/tools/test_pm_handler_snapshot.py | 116 | # Step 2: select repos — persisted + forwarded paths must be snapshots. | COMMENT |
| LOW⚡ | tests/unit/cli/test_init_pm_seed_detection.py | 531 | # Step 1: Detect | COMMENT |
| LOW⚡ | tests/unit/cli/test_init_pm_seed_detection.py | 536 | # Step 2: Select (single seed → confirm) | COMMENT |
| LOW⚡ | tests/unit/cli/test_init_pm_seed_detection.py | 541 | # Step 3: Load as context | COMMENT |
| LOW⚡ | tests/unit/bigbang/test_brownfield.py | 1334 | # Step 2: Simulate user selecting repo #2 | COMMENT |
| LOW⚡ | tests/unit/bigbang/test_brownfield.py | 1343 | # Step 3: Set default (toggle: /b is not default, so it gets added) | COMMENT |
| LOW | tests/unit/bigbang/test_brownfield.py | 1316 | # Step 1: Scan returns repos | COMMENT |
| LOW | docs/getting-started.md | 363 | ### Step 1: Interview | COMMENT |
| LOW | docs/getting-started.md | 397 | ### Step 2: Execute | COMMENT |
| LOW | docs/getting-started.md | 407 | ### Step 3: Monitor | COMMENT |
| LOW | docs/getting-started.md | 422 | ### Step 4: Review | COMMENT |
| LOW | docs/contributing/findings-registry.md | 12 | # NOTE: The following successor files are planned but not yet created. | COMMENT |
| LOW | skills/pm/SKILL.md | 12 | ### Step 0: Version Check (runs before the PM interview) | COMMENT |
| LOW | skills/pm/SKILL.md | 50 | ### Step 1: Load MCP Tool | COMMENT |
| LOW | skills/pm/SKILL.md | 83 | ### Step 2: Start Interview | COMMENT |
| LOW | skills/pm/SKILL.md | 96 | ### Step 3: Loop | COMMENT |
| LOW | skills/pm/SKILL.md | 431 | ### Step 4: Copy to Clipboard | COMMENT |
| LOW | skills/pm/SKILL.md | 439 | ### Step 5: Show Result & Next Step | COMMENT |
| LOW | skills/setup/SKILL.md | 81 | ### Step 0: Welcome & Motivation (The Hook) | COMMENT |
| LOW | skills/setup/SKILL.md | 154 | ### Step 1: Environment Detection | COMMENT |
| LOW | skills/setup/SKILL.md | 239 | ### Step 2: MCP Profile Boundary | COMMENT |
| LOW | skills/setup/SKILL.md | 272 | ### Step 3: CLAUDE.md Integration (Optional) | COMMENT |
| LOW | skills/setup/SKILL.md | 359 | ### Step 4: Quick Verification | COMMENT |
| LOW | skills/setup/SKILL.md | 386 | ### Step 5: Success Summary | COMMENT |
| LOW | skills/setup/SKILL.md | 580 | ### Step 6: First Project Nudge | COMMENT |
| LOW | skills/qa/SKILL.md | 41 | ### Step 0: Determine execution mode | COMMENT |
| LOW | skills/welcome/SKILL.md | 925 | ### Step 1: Welcome Banner | COMMENT |
| LOW | skills/welcome/SKILL.md | 945 | ### Step 2: Persona Detection | COMMENT |
| LOW | skills/welcome/SKILL.md | 976 | ### Step 3: Advanced Runtime Check | COMMENT |
| LOW | skills/welcome/SKILL.md | 1004 | ### Step 4: Quick Reference | COMMENT |
| LOW | skills/welcome/SKILL.md | 1024 | ### Step 4: First Action | COMMENT |
| LOW | skills/welcome/SKILL.md | 1049 | ### Step 5: GitHub Star (Last Step) | COMMENT |
| LOW | skills/publish/SKILL.md | 23 | ### Step 1: Prerequisite Check | COMMENT |
| LOW | skills/publish/SKILL.md | 50 | ### Step 2: Locate the Seed | COMMENT |
| LOW | skills/publish/SKILL.md | 72 | ### Step 3: Parse the Seed | COMMENT |
| LOW | skills/publish/SKILL.md | 106 | ### Step 4: Detect Repository | COMMENT |
| LOW | skills/publish/SKILL.md | 153 | ### Step 5: Duplicate Check | COMMENT |
| LOW | skills/publish/SKILL.md | 180 | ### Step 6: Plan Issue Structure | COMMENT |
| LOW | skills/publish/SKILL.md | 206 | ### Step 7: Create GitHub Issues | COMMENT |
| LOW | skills/publish/SKILL.md | 326 | ### Step 8: Summary | COMMENT |
| LOW | skills/interview/SKILL.md | 51 | ### Step 0: Version Check (runs before interview) | COMMENT |
| LOW⚡ | src/ouroboros/mcp/tools/pm_handler.py | 1185 | # Step 2: select_repos (AC 4) | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 269 | # Step 1: stage copy. Pass symlinks=True so symlinks are copied as | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 286 | # Step 2: move existing dest aside. | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 290 | # Step 3: promote staging into place. | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 303 | # Step 4: cleanup backup. Failure here is non-fatal — the new install | COMMENT |
| LOW | src/ouroboros/cli/commands/init.py | 690 | # Step 1: Calculate ambiguity score | COMMENT |
| LOW | src/ouroboros/cli/commands/init.py | 780 | # Step 2: Generate Seed | COMMENT |
| LOW | src/ouroboros/cli/commands/init.py | 802 | # Step 3: Save Seed | COMMENT |
| LOW | src/ouroboros/evolution/loop.py | 684 | # Step 1: Replay events to reconstruct state | COMMENT |
| LOW | src/ouroboros/evolution/loop.py | 986 | # Step 3: Emit generation completed event (with seed_json). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/harness/test_deliver_gate.py | 66 | CODE | |
| LOW | tests/unit/evolution/test_frugality.py | 29 | CODE | |
| LOW | tests/unit/bigbang/test_seed_generator.py | 99 | CODE | |
| LOW | tests/unit/orchestrator/test_route_escalation_live.py | 154 | CODE | |
| LOW | tests/unit/orchestrator/test_route_policy.py | 32 | CODE | |
| LOW | src/ouroboros/auto/adapters.py | 321 | CODE | |
| LOW | src/ouroboros/tui/events.py | 343 | CODE | |
| LOW | src/ouroboros/tui/events.py | 396 | CODE | |
| LOW | src/ouroboros/boundary/admission.py | 582 | CODE | |
| LOW | src/ouroboros/boundary/admission.py | 791 | CODE | |
| LOW | src/ouroboros/providers/copilot_cli_adapter.py | 149 | CODE | |
| LOW | src/ouroboros/providers/pi_llm_adapter.py | 38 | CODE | |
| LOW | src/ouroboros/providers/omp_llm_adapter.py | 38 | CODE | |
| LOW | src/ouroboros/providers/gjc_llm_adapter.py | 42 | CODE | |
| LOW | src/ouroboros/providers/opencode_adapter.py | 113 | CODE | |
| LOW | src/ouroboros/providers/goose_cli_adapter.py | 62 | CODE | |
| LOW | src/ouroboros/providers/factory.py | 394 | CODE | |
| LOW | src/ouroboros/providers/codex_cli_adapter.py | 148 | CODE | |
| LOW | src/ouroboros/providers/gemini_cli_adapter.py | 110 | CODE | |
| LOW | src/ouroboros/providers/kiro_adapter.py | 69 | CODE | |
| LOW | src/ouroboros/providers/claude_code_adapter.py | 185 | CODE | |
| LOW | src/ouroboros/providers/hermes_cli_adapter.py | 49 | CODE | |
| LOW | src/ouroboros/mcp/tools/fanout_composition.py | 41 | CODE | |
| LOW | src/ouroboros/mcp/tools/subagent.py | 1556 | CODE | |
| LOW | src/ouroboros/mcp/tools/subagent.py | 1968 | CODE | |
| LOW | src/ouroboros/mcp/tools/subagent.py | 2073 | CODE | |
| LOW | src/ouroboros/mcp/tools/definitions.py | 459 | CODE | |
| LOW | src/ouroboros/mcp/tools/question_advisory.py | 615 | CODE | |
| LOW | src/ouroboros/mcp/tools/background.py | 139 | CODE | |
| LOW | src/ouroboros/mcp/server/adapter.py | 1504 | CODE | |
| LOW | src/ouroboros/cli/commands/run.py | 695 | CODE | |
| LOW | src/ouroboros/cli/commands/run.py | 1118 | CODE | |
| LOW | src/ouroboros/cli/commands/mcp.py | 785 | CODE | |
| LOW | src/ouroboros/cli/commands/mcp.py | 1357 | CODE | |
| LOW | src/ouroboros/cli/commands/init.py | 1022 | CODE | |
| LOW | src/ouroboros/cli/commands/auto.py | 124 | CODE | |
| LOW | src/ouroboros/cli/commands/auto.py | 380 | CODE | |
| LOW | src/ouroboros/evolution/loop.py | 192 | CODE | |
| LOW | src/ouroboros/evolution/loop_support.py | 219 | CODE | |
| LOW | src/ouroboros/events/control.py | 60 | CODE | |
| LOW | src/ouroboros/events/io.py | 270 | CODE | |
| LOW | src/ouroboros/events/io.py | 332 | CODE | |
| LOW | src/ouroboros/events/io.py | 391 | CODE | |
| LOW | src/ouroboros/events/io.py | 452 | CODE | |
| LOW | src/ouroboros/events/lineage.py | 71 | CODE | |
| LOW | src/ouroboros/orchestrator/gjc_runtime.py | 50 | CODE | |
| LOW | src/ouroboros/orchestrator/hermes_runtime.py | 183 | CODE | |
| LOW | src/ouroboros/orchestrator/runner.py | 889 | CODE | |
| LOW | src/ouroboros/orchestrator/copilot_cli_runtime.py | 125 | CODE | |
| LOW | src/ouroboros/orchestrator/grok_cli_runtime.py | 104 | CODE | |
| LOW | src/ouroboros/orchestrator/events.py | 530 | CODE | |
| LOW | src/ouroboros/orchestrator/goose_runtime.py | 72 | CODE | |
| LOW | src/ouroboros/orchestrator/session.py | 813 | CODE | |
| LOW | src/ouroboros/orchestrator/opencode_runtime.py | 195 | CODE | |
| LOW | src/ouroboros/orchestrator/omp_runtime.py | 116 | CODE | |
| LOW | src/ouroboros/orchestrator/pi_runtime.py | 124 | CODE | |
| LOW | src/ouroboros/orchestrator/ac_runtime_handle_manager.py | 589 | CODE | |
| LOW | src/ouroboros/orchestrator/runtime_factory.py | 301 | CODE | |
| LOW | src/ouroboros/orchestrator/parallel_executor.py | 2652 | CODE | |
| LOW | src/ouroboros/orchestrator/parallel_executor.py | 3373 | CODE | |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_graceful_shutdown.py | 475 | # Set evaluator to track if it gets called (it shouldn't) | COMMENT |
| LOW⚡ | tests/integration/plugin/test_orchestration.py | 46 | # Set return_value to the async generator function | COMMENT |
| LOW | src/ouroboros/core/security.py | 446 | # Check if it's a prefixed key | COMMENT |
| LOW | src/ouroboros/core/security.py | 499 | # Check if field name indicates sensitivity | COMMENT |
| LOW | src/ouroboros/core/security.py | 503 | # Check if value looks sensitive | COMMENT |
| LOW | src/ouroboros/core/errors.py | 265 | # Check if field name suggests sensitive data | COMMENT |
| LOW | src/ouroboros/core/errors.py | 271 | # Check if value looks like a secret (starts with common prefixes) | COMMENT |
| LOW | src/ouroboros/config/loader.py | 228 | # Set permissions to owner read/write only (0o600) | COMMENT |
| LOW | src/ouroboros/config/loader.py | 275 | # Check if files exist | COMMENT |
| LOW | src/ouroboros/tui/components/progress.py | 502 | # Check if milestone already exists | COMMENT |
| LOW | src/ouroboros/providers/claude_code_adapter.py | 1025 | # Check if error is retryable | COMMENT |
| LOW | src/ouroboros/plugin/agents/pool.py | 516 | # Return result | COMMENT |
| LOW | src/ouroboros/plugin/skills/executor.py | 348 | # Check if there's an 'instructions' section | COMMENT |
| LOW | src/ouroboros/mcp/tools/job_handlers.py | 710 | # Check if already in a terminal state | COMMENT |
| LOW | src/ouroboros/mcp/tools/qa.py | 260 | # Check if this bullet is a dimension (e.g. "accuracy: 0.9") | COMMENT |
| LOW | src/ouroboros/mcp/server/security.py | 415 | # Check if user has required permissions | COMMENT |
| LOW | src/ouroboros/mcp/server/security.py | 425 | # Check if user has an allowed role (if roles are specified) | COMMENT |
| LOW | src/ouroboros/cli/commands/pm.py | 521 | # Check if this question was classified as skippable — | COMMENT |
| LOW | src/ouroboros/cli/commands/setup.py | 3133 | # Set runtime to Hermes. Do not rewrite llm.backend until Hermes also | COMMENT |
| LOW | src/ouroboros/observability/logging.py | 217 | # Check if field name indicates sensitivity | COMMENT |
| LOW | src/ouroboros/observability/logging.py | 222 | # Check if value looks sensitive | COMMENT |
| LOW | src/ouroboros/resilience/stagnation.py | 378 | # Check if all deltas are below epsilon | COMMENT |
| LOW | src/ouroboros/resilience/stagnation.py | 426 | # Check if all improvements are below threshold | COMMENT |
| LOW | src/ouroboros/persistence/checkpoint.py | 681 | # Check if error is due to no checkpoint (normal for first run) | COMMENT |
| LOW | src/ouroboros/persistence/brownfield.py | 259 | # Check if repo already exists | COMMENT |
| LOW | src/ouroboros/persistence/brownfield.py | 336 | # Check if already exists — preserve metadata | COMMENT |
| LOW | src/ouroboros/orchestrator/runner.py | 10947 | # Check if session can be resumed | COMMENT |
| LOW | src/ouroboros/orchestrator/mcp_config.py | 169 | # Check if world-readable | COMMENT |
| LOW | src/ouroboros/orchestrator/mcp_config.py | 175 | # Check if group-readable (less severe) | COMMENT |
| LOW | src/ouroboros/orchestrator/leaf_dispatcher.py | 910 | # Check if stall was detected (CancelScope ate the Cancelled) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/unit/mcp/tools/test_pm_handler_snapshot.py | 105 | # Step 1: start without repos to create the session + pm_meta. | COMMENT |
| LOW | tests/unit/mcp/tools/test_pm_handler_snapshot.py | 116 | # Step 2: select repos — persisted + forwarded paths must be snapshots. | COMMENT |
| LOW⚡ | tests/unit/cli/test_init_pm_seed_detection.py | 531 | # Step 1: Detect | COMMENT |
| LOW⚡ | tests/unit/cli/test_init_pm_seed_detection.py | 536 | # Step 2: Select (single seed → confirm) | COMMENT |
| LOW⚡ | tests/unit/cli/test_init_pm_seed_detection.py | 541 | # Step 3: Load as context | COMMENT |
| LOW⚡ | tests/unit/bigbang/test_brownfield.py | 1334 | # Step 2: Simulate user selecting repo #2 | COMMENT |
| LOW⚡ | tests/unit/bigbang/test_brownfield.py | 1343 | # Step 3: Set default (toggle: /b is not default, so it gets added) | COMMENT |
| LOW | tests/unit/bigbang/test_brownfield.py | 1316 | # Step 1: Scan returns repos | COMMENT |
| LOW⚡ | src/ouroboros/mcp/tools/pm_handler.py | 1185 | # Step 2: select_repos (AC 4) | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 269 | # Step 1: stage copy. Pass symlinks=True so symlinks are copied as | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 286 | # Step 2: move existing dest aside. | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 290 | # Step 3: promote staging into place. | COMMENT |
| LOW⚡ | src/ouroboros/cli/commands/plugin.py | 303 | # Step 4: cleanup backup. Failure here is non-fatal — the new install | COMMENT |
| LOW | src/ouroboros/cli/commands/init.py | 690 | # Step 1: Calculate ambiguity score | COMMENT |
| LOW | src/ouroboros/cli/commands/init.py | 780 | # Step 2: Generate Seed | COMMENT |
| LOW | src/ouroboros/cli/commands/init.py | 802 | # Step 3: Save Seed | COMMENT |
| LOW | src/ouroboros/evolution/loop.py | 684 | # Step 1: Replay events to reconstruct state | COMMENT |
| LOW | src/ouroboros/evolution/loop.py | 986 | # Step 3: Emit generation completed event (with seed_json). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backlog.md | 90 | | C9 | `core/security.py:418-450` | `validate_api_key_format` accepts any 10-char alphanumeric — `"placeholder"` validat | CODE |
| LOW⚡ | tests/unit/auto/test_safe_defaults_prompt_non_goals.py | 35 | return SeedDraftLedger.from_goal("placeholder") | CODE |
| LOW | tests/unit/auto/test_ledger_grading_answerer.py | 421 | ac=(AcceptanceCriterionSpec(description="placeholder", verify_command="true"),), | CODE |
| LOW | tests/unit/auto/test_ledger_grading_answerer.py | 450 | ac=(AcceptanceCriterionSpec(description="placeholder", verify_command="true"),), | CODE |
| LOW | tests/unit/auto/test_ledger_grading_answerer.py | 522 | ac=(AcceptanceCriterionSpec(description="placeholder", verify_command="true"),), | CODE |
| LOW | tests/unit/runtime/test_exec_sandbox_windows.py | 227 | command = _confine(layout, ("placeholder",)) | CODE |
| LOW⚡ | tests/unit/observability/test_logging.py | 1315 | log.info("user.action", name="John Doe", email="john@example.com") | CODE |
| LOW⚡ | tests/unit/observability/test_logging.py | 1319 | assert data["name"] == "John Doe" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/ouroboros/core/seed.py | 328 | summary: Auto-generated codebase summary from exploration. | STRING |
| HIGH | src/ouroboros/core/seed.py | 333 | summary: str = Field(default="", description="Auto-generated codebase summary") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/orchestrator/test_effort_routed_event.py | 125 | CODE | |
| MEDIUM | tests/unit/orchestrator/test_runner_cancellation.py | 846 | CODE | |
| MEDIUM | tests/unit/orchestrator/test_process_local_authority.py | 2347 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_llm_response_fence_robustness.py | 54 | return f"```json\n{payload}\n```\nLet me know if you need anything else." | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/examples/mcp-config.yaml | 5 | # Usage: | COMMENT |