github not analyzable

Q00/ouroboros

github

Agent OS: Stop prompting. Start specifying.

maintainer
Q00
license
MIT
first seen
2026-06-01
last seen
2026-06-03
releases · 30d
4
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×2 in Q00/ouroboros
capabilities 0 tools
transport stdio · streamable-http · sse counts 0 tools · 0 res · 0 prompts permission surface via code analysis

no tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed analyzer v18 · 10h ago

skills & prompt files 45

code evidence vv0.40.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

last analysis: fetch-failed · showing evidence from the last successful analysis (3d ago)

filesystem 129

  • fs Q00-ouroboros-f6697da/scripts/check-auto-boundary.py :78 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/check-auto-perf-budget.py :35 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/check-max-turns-envelope.py :48 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/drift-monitor.py :14 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/keyword-detector.py :16 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/ralph.py :20 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/session-start.py :10 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/sync-plugin-version.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/scripts/version-check.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/agents/loader.py :19 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/adapters.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/checkpoint_commits.py :6 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/domain_profile.py :22 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/profiles/coding.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/profiles/research.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/repo_context.py :5 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/auto/state.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/backends/model_catalog.py :25 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/brownfield.py :19 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/explore.py :17 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/interview.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/pm_document.py :15 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/pm_interview.py :21 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/seed_generator.py :15 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/auto.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/codex.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/config.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/detect.py :17 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/dispatch.py :7 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/init.py :10 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp_doctor.py :18 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/plugin.py :22 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/plugin_dispatch.py :29 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/pm.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/qa.py :10 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/resume.py :17 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/run.py :10 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/setup.py :20 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/status.py :9 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/tui.py :10 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/uninstall.py :18 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/workflow_ir.py :6 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/cli/opencode_config.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/codex/artifacts.py :10 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/codex/cli_policy.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/config/loader.py :39 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/config/models.py :24 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/copilot/cli_policy.py :14 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/copilot/model_discovery.py :29 import shutil
  • fs Q00-ouroboros-f6697da/src/ouroboros/core/file_lock.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/core/git_workflow.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/core/initial_context.py :5 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/core/project_paths.py :6 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/core/security.py :14 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/core/worktree.py :9 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/artifact_collector.py :332 with open(file_path, encoding="utf-8", errors="replace") as f:
  • fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/detector.py :25 from pathlib import Path, PureWindowsPath
  • fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/languages.py :21 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/mechanical.py :16 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/verification_artifacts.py :14 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/hermes/artifacts.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/kiro/cli_policy.py :14 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/bridge/bridge.py :6 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/bridge/config.py :7 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/bridge/factory.py :5 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/resources/handlers.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/server/adapter.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/server/security.py :510 "open(",
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/authoring_handlers.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/auto_handler.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/brownfield_handler.py :20 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/evaluation_handlers.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/evolution_handlers.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/execution_handlers.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/pm_handler.py :24 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/observability/logging.py :47 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/adapter.py :26 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/backend_limits.py :36 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/capabilities.py :11 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/codex_cli_runtime.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/command_dispatcher.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/copilot_cli_runtime.py :25 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/gemini_cli_runtime.py :20 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/gjc_runtime.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/goose_runtime.py :16 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/heartbeat.py :20 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/hermes_runtime.py :17 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/kiro_adapter.py :15 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/level_context.py :76 with open(resolved) as f:
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/mcp_config.py :32 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/opencode_runtime.py :28 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/parallel_executor.py :35 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/pi_runtime.py :17 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/profile_loader.py :22 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/runtime_evidence.py :35 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/runtime_factory.py :5 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/skill_intercept.py :27 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/skill_tool_mapping.py :15 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/persistence/brownfield.py :12 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/persistence/checkpoint.py :19 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/persistence/event_store.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/persistence/migrations/runner.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/agents/registry.py :24 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/digest.py :34 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/firewall.py :39 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/lockfile.py :24 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/manifest.py :30 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/skills/registry.py :18 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/plugin/trust_store.py :30 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/pm/handoff.py :5 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/claude_code_adapter.py :37 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/codex_cli_adapter.py :15 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/copilot_cli_adapter.py :28 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/factory.py :6 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/gemini_cli_adapter.py :33 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/gjc_llm_adapter.py :9 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/goose_cli_adapter.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/hermes_cli_adapter.py :7 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/kiro_adapter.py :13 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/opencode_adapter.py :39 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/providers/pi_llm_adapter.py :7 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/router/dispatch.py :22 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/router/registry.py :15 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/router/types.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/runtime/controls.py :18 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/runtime_instruction_artifacts.py :7 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/skills/artifacts.py :8 from pathlib import Path
  • fs Q00-ouroboros-f6697da/src/ouroboros/verification/verifier.py :262 with open(file_path, encoding="utf-8", errors="replace") as f:

shell / exec 25

  • shell Q00-ouroboros-f6697da/scripts/check-auto-perf-budget.py :37 import subprocess
  • shell Q00-ouroboros-f6697da/scripts/ralph-rewind.py :20 import subprocess
  • shell Q00-ouroboros-f6697da/scripts/ralph.py :60 import subprocess
  • shell Q00-ouroboros-f6697da/scripts/sync-plugin-version.py :14 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/auto/checkpoint_commits.py :8 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/backends/model_catalog.py :27 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/bigbang/brownfield.py :20 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp.py :15 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp_doctor.py :347 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/plugin.py :25 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/setup.py :22 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/tui.py :97 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/cli/opencode_config.py :13 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/copilot/model_discovery.py :30 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/core/git_workflow.py :126 import subprocess # noqa: S404
  • shell Q00-ouroboros-f6697da/src/ouroboros/core/worktree.py :12 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/mcp/server/adapter.py :1569 import subprocess # noqa: S404 # nosec
  • shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/heartbeat.py :42 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/kiro_adapter.py :71 # Session ids flow from subprocess output into argv on the next resume turn;
  • shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/opencode_runtime.py :31 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/parallel_executor.py :39 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/runtime_evidence.py :37 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/verifier.py :38 import subprocess
  • shell Q00-ouroboros-f6697da/src/ouroboros/plugin/firewall.py :42 import subprocess
  • shell Q00-ouroboros-f6697da/tools/sync_github_project.py :18 import subprocess

network 8

  • net Q00-ouroboros-f6697da/scripts/version-check.py :63 import urllib.request
  • net Q00-ouroboros-f6697da/src/ouroboros/bigbang/brownfield.py :21 from urllib.parse import urlparse
  • net Q00-ouroboros-f6697da/src/ouroboros/config_tui/launcher.py :16 import socket
  • net Q00-ouroboros-f6697da/src/ouroboros/copilot/model_discovery.py :32 import urllib.error
  • net Q00-ouroboros-f6697da/src/ouroboros/core/worktree.py :11 import socket
  • net Q00-ouroboros-f6697da/src/ouroboros/mcp/client/adapter.py :259 import httpx
  • net Q00-ouroboros-f6697da/src/ouroboros/mcp/types.py :13 import socket
  • net Q00-ouroboros-f6697da/tools/sync_github_project.py :20 import urllib.error

secrets 7

  • secrets Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp.py :284 if os.environ.get("ANTHROPIC_API_KEY"):
  • secrets Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp_doctor.py :247 openai_key_present = bool(os.environ.get("OPENAI_API_KEY", "").strip())
  • secrets Q00-ouroboros-f6697da/src/ouroboros/cli/commands/status.py :489 if os.environ.get("OPENAI_API_KEY", "").strip():
  • secrets Q00-ouroboros-f6697da/src/ouroboros/evaluation/consensus.py :89 key = os.environ.get("OPENROUTER_API_KEY", "")
  • secrets Q00-ouroboros-f6697da/src/ouroboros/providers/anthropic_adapter.py :109 self._api_key = api_key or os.environ.get("ANTHROPIC_API_KEY")
  • secrets Q00-ouroboros-f6697da/src/ouroboros/providers/codex_cli_adapter.py :564 "openai_api_key_present": cls._redact_env_presence(os.environ.get("OPENAI_API_KEY")),
  • secrets Q00-ouroboros-f6697da/src/ouroboros/providers/litellm_adapter.py :205 env_key = self._normalize_api_key(os.environ.get("OPENROUTER_API_KEY"))

database 4

  • db Q00-ouroboros-f6697da/src/ouroboros/persistence/brownfield.py :15 from sqlalchemy import delete, literal_column, select, update
  • db Q00-ouroboros-f6697da/src/ouroboros/persistence/event_store.py :16 from sqlalchemy import and_, event, func, or_, select, text
  • db Q00-ouroboros-f6697da/src/ouroboros/persistence/migrations/runner.py :10 from sqlalchemy import text
  • db Q00-ouroboros-f6697da/src/ouroboros/persistence/schema.py :15 from sqlalchemy import (

declared dependencies 8

  • aiosqlite@>=0.20.0,<1.0.0
  • anyio@>=4.0.0,<5.0.0
  • click@>=8.1.0,<9.0.0
  • jsonschema@>=4.21.0,<5.0.0
  • pydantic@>=2.0.0,<3.0.0
  • prompt-toolkit@>=3.0.0,<4.0.0
  • pyyaml@>=6.0.0,<7.0.0
  • rich@>=13.0.0,<16.0.0