Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/ouroboros/issues.md or /mcp/ouroboros/issues.json, or Pod over MCP.

Reported issues for Ouroboros

Pod holds 24 of 174 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to Ouroboros.

Most discussed

[Feature] Add multilingual keyword matching for Codex App skill auto-invocation

Problem

Ouroboros skills are currently described with English-only SKILL.md metadata. For example, core packaged skills use descriptions such as:

---
name: interview
description: "Socratic interview to crystallize vague requirements"
---

Codex documents that skills are available in the Codex CLI, IDE extension, and Codex App. It also documents two activation paths: explicit invocation and implicit invocation. The implicit path depends on matching the user's task against the ski

Read the thread · 2026-06-04 · closed · external user · 8 comments

[Bug] bug(adapter): claude_code_adapter default max_turns=1 makes ouroboros_interview unusable

Summary

ouroboros.providers.claude_code_adapter.ClaudeCodeAdapter initialises with max_turns: int = 1 (line 125). The ouroboros_interview MCP tool uses the same adapter to drive a Socratic question generator, but generating a question requires the LLM to read context, optionally call a tool, and respond — which cannot fit in a single SDK turn. The very first call therefore returns an SDK error and no question is produced.

Impact

Read the thread · 2026-05-21 · closed · external user · 14 comments

[Feature] Let ooo pm record uncertainty without forcing speculative answers

Problem

ooo pm is intended to produce a human-readable PM/PRD handoff before the dev-oriented interview/Seed workflow. In practice, some PM interview questions can be broad, premature, or outside the current user's authority to answer.

When that happens, users may feel pressured to invent an answer just to keep the interview moving. That creates fake clarity: the generated PM document may look complete, while some fields are actually assumptions, stakeholder questions, or unresolved decis

Read the thread · 2026-05-20 · closed · outside contributor · 9 comments

[Bug] Codex에서 official auto skill이 요구하는 ouroboros_auto MCP tool이 노출되지 않음

요약

Codex CLI 환경에서 Ouroboros MCP 서버는 ouroboros_auto와 ouroboros_start_auto를 등록하지만, Codex 세션에 서는 official auto skill이 요구하는 ouroboros_auto 도구를 사용할 수 없습니다.

그 결과 ooo auto ... 명령이 official auto pipeline으로 dispatch되지 못하고, 필수 MCP tool을 찾지 못해 중 단됩니다.

무엇이 고장났나요?

Ouroboros Codex 통합에서 official auto skill과 실제 Codex MCP tool 노출 사이가 일치하지 않습니다.

서버 측에서는 ouroboros_auto가 등록됩니다.

ouroboros mcp info → ouroboros_auto → ouroboros_start_auto → ouroboros_interview → ouroboros_generate_s

Read the thread · 2026-05-16 · closed · external user · 13 comments

[Bug] ouroboros_interview: "Reached maximum number of turns (1)" raised as unhandled Exception (v0.36.0 + main HEAD)

Summary

After applying PR #754 (strict_mcp_config fix) on top of v0.36.0, the recursion bug is gone but ouroboros_interview immediately fails with Reached maximum number of turns (1) raised as an unhandled Exception from claude_agent_sdk._internal.query.receive_messages:852.

The existing error_max_turns ResultMessage handling in claude_code_adapter.py:854-886 / _is_usable_max_turns_partial:1029 cannot catch this because the SDK raises the error as a generic Exception BEFOR

Read the thread · 2026-05-11 · closed · external user · 7 comments

ouroboros_evaluate: trigger_consensus ignored when Stage 2 < 0.80 + ArtifactCollector fails without pyproject.toml

Summary

Two bugs in ouroboros_evaluate that prevent APPROVED verdicts for non-standard projects (e.g., Odoo CLI scripts that don't use pyproject.toml).

Bug 1: trigger_consensus silently ignored when Stage 2 < 0.80

Expected: When trigger_consensus=true is passed, Stage 3 (advocate + contrarian + judge) runs regardless of Stage 2 score.

Actual: Stage 3 is gated behind Stage 2's 0.80 threshold. If Stage 2 scores below 0.80, trigger_consensus=true has no effect — Stage 3 ne

Read the thread · 2026-03-26 · closed · external user · 8 comments

파이썬 무한 증식 버그

환경

증상

Ouroboros 플러그인이 활성화된 상태에서 터미널에 claude를 입력하면:

  1. kernel_task CPU 사용량이 400% 이상으로 치솟음
  2. Python 프로세스가 수백 개 무한 생성됨
  3. 시스템 전체가 먹통이 되어 강제 재부팅 외에 방법이 없음 (pkill로 겨우 잡을 수 있긴 함)
  4. claude 실행 직후 즉시 발생하며, 아무런 명령어 입력 없이도 재현됨

재현 방법

  1. ~/.claude/settings.json에 아래 설정 추가:
{
  "extraKnownMarketplaces": {
    "ouroboros": {
   

[Read the thread](https://github.com/Q00/ouroboros/issues/195) · 2026-03-24 · closed · external user · 8 comments

### Enhancement: Inherit parent MCP tools in direct MCP-initiated ooo run executions

## Summary

Follow-up to #176 and the excellent fix in PR #180. The nested delegation inheritance works perfectly — child `ooo run` executions inherit parent MCP tools via `PreToolUse` hook injection and session forking. However, **direct** MCP-initiated executions (calling `ouroboros_execute_seed` / `ouroboros_start_execute_seed` from the main Claude session) do not inherit the parent session's MCP tools.

## Current Behavior

When a user calls `ooo run` from their Claude Code session (which ha

[Read the thread](https://github.com/Q00/ouroboros/issues/181) · 2026-03-23 · closed · external user · 8 comments

## Most recent

### verify_command mutation-digest ignore list omits Flutter/Dart build artifacts (build/, .dart_tool/) — deterministic false FABRICATION_SUSPECTED, .gitignore has no effect

## Summary

`ParallelACExecutor`'s workspace no-mutation digest (the same check fixed for
Python's `__pycache__` in #1736) still hardcodes a Python/Node-only ignore
list. For any Flutter/Dart project, running the toolchain at all
(`flutter build web`, `flutter test`, ...) always touches `build/` and
`.dart_tool/`, neither of which is excluded, so the acceptance digest
computed before/after `verify_command` never matches. Every AC whose
`verify_command` invokes the Flutter/Dart toolchain is rejec

[Read the thread](https://github.com/Q00/ouroboros/issues/2304) · 2026-08-29 · closed · external user · 1 comment

### Execute-stage LLM roles inherit evaluation.semantic_model verbatim — heterogeneous runtime_profile.stages backends can receive a model id they cannot run

### Ouroboros version

0.51.17 (`ouroboros-ai` from PyPI)

### Summary

EXECUTE-stage LLM roles (`decomposition`, `atomicity`, `agent_runtime_implementation`) have no dedicated model field, so `get_llm_model_for_role()` falls through to `evaluation.semantic_model` (docstring: *"model resolution falls through to the evaluate model"*). The role's **backend**, however, comes from the EXECUTE-stage routing (`runtime_profile.stages.execute`, or the `llm.backend` fallback). When stages are routed to *

[Read the thread](https://github.com/Q00/ouroboros/issues/2300) · 2026-08-28 · open · external user · 2 comments

### [Feature] Add OMP (Oh My Pi) as a runtime + LLM backend

### Problem

Ouroboros supports Pi (`pi`) as a runtime + LLM backend, but users of OMP (Oh My Pi, the `omp` CLI) — a Pi-family coding agent speaking the same JSON event protocol — cannot select their installed CLI as an execution or LLM backend. `ouroboros setup --runtime omp` and `ouroboros config backend omp` do not exist, and omp users must install a second agent CLI (pi) just to drive Ouroboros workflows.

### Why now

OMP v18 exposes a stable headless JSON surface (`omp --mode json`) with t

[Read the thread](https://github.com/Q00/ouroboros/issues/2298) · 2026-08-28 · open · external user · 1 comment

### Codex artifact lifecycle: shared ownership, replay, and parent authority across publish/prune/uninstall

## Summary

Review of #2274 surfaced a class of findings that are real but sit outside that PR's declared boundary: they are properties of how `codex/artifacts.py` manages artifacts in shared directories, present on `main` today with #2274 reverted, and several of them live in files #2274 does not open. Per [CONTRIBUTING.md#five-question-review-rubric](https://github.com/Q00/ouroboros/blob/main/CONTRIBUTING.md#five-question-review-rubric) (Q3 and Q4 yes, Q5 no) they belong in an owned follow-up 

[Read the thread](https://github.com/Q00/ouroboros/issues/2294) · 2026-08-28 · open · external user · 1 comment

### Make local environment diagnostics sanitize and probe the effective MCP launcher

## Problem\n\nThe local environment diagnostic harness must distinguish runtime failure from installation/configuration drift without copying credential-bearing MCP environment values into durable reports. It must resolve the effective Codex configuration from `CODEX_HOME` or the default Codex home and probe that configured launcher rather than a checkout-local fallback.\n\n## Acceptance criteria\n\n- Secret-valued configuration fields are redacted before Markdown or JSON serialization.\n- Effec

[Read the thread](https://github.com/Q00/ouroboros/issues/2292) · 2026-08-28 · open · outside contributor · 1 comment

### Codex setup does not preserve telemetry opt-out in generated configuration

## Environment

- Ouroboros 0.51.15
- Codex CLI 0.149.1
- Linux

## Reproduction

1. Run setup with DO_NOT_TRACK=1 and OUROBOROS_TELEMETRY=0 in the process environment.
2. Use the Codex non-interactive setup path.
3. Inspect the generated Ouroboros config and MCP environment.

## Actual result

The generated config contains telemetry.enabled: true, and the initially generated Codex MCP entry does not carry the telemetry opt-out variables. Subsequent MCP launches can therefore enable telemetry de

[Read the thread](https://github.com/Q00/ouroboros/issues/2281) · 2026-08-26 · open · external user · 1 comment

### Codex setup registers an unpinned ouroboros-ai MCP package

## Environment

- Ouroboros 0.51.15
- Codex CLI 0.149.1
- Linux

## Reproduction

1. Install the Ouroboros Codex plugin from the v0.51.15 marketplace tag.
2. Run: uvx --isolated --python '>=3.12' --from 'ouroboros-ai[mcp]==0.51.15' ouroboros setup --runtime codex --non-interactive
3. Inspect the generated Ouroboros MCP registration with: codex mcp get ouroboros --json

## Actual result

The generated MCP command uses --from ouroboros-ai[mcp] without a version constraint. A later Codex session ca

[Read the thread](https://github.com/Q00/ouroboros/issues/2280) · 2026-08-26 · open · external user · 1 comment

### Give one-shot onboarding skills (setup/tutorial/welcome/ooo) a lifecycle: user-configurable tier or auto-demote after first run

## Problem

`setup`, `tutorial`, `welcome` (and `ooo`, which is just a pointer into `welcome`) are **one-shot onboarding skills**. Once a user has run them, they are never useful again — but their entries stay in the skill listing for every session, forever.

Today Ouroboros ships ~20 skills. Every one of them contributes a `- ouroboros:<name>: <description>` line to the eagerly-loaded skill listing in every single session. For a returning user, 4 of those lines are permanently dead weight, and 

[Read the thread](https://github.com/Q00/ouroboros/issues/2279) · 2026-08-26 · open · external user · 2 comments

### bug(worktree): native Windows misdecodes non-ASCII Git paths

## Summary

On native Windows with a non-UTF-8 ANSI code page, worktree Git commands can fail when the repository path contains non-ASCII characters.

## Impact

A workflow can fail before worktree provisioning even though Git succeeds. Python decodes Git for Windows output with the process ANSI code page; a decoder failure can leave CompletedProcess.stdout as None, and the later strip call then raises instead of returning the repository path.

## Steps to reproduce

1. Use native Windows with a

[Read the thread](https://github.com/Q00/ouroboros/issues/2246) · 2026-08-23 · closed · outside contributor · 1 comment

### bug(codex): Desktop .system skill refresh invalidates active runtime

## Summary

Codex Desktop refreshes its bundled skills under CODEX_HOME/skills/.system in place. A background Ouroboros run can fingerprint that app-managed subtree during the refresh and later abort with Codex configuration changed even though no user configuration changed.

## Impact

Long-running workflows can be rejected because of an app update or bundled-skill refresh unrelated to the user's rules, skills, model profile, or runtime configuration.

## Steps to reproduce

1. Start a Codex-ba

[Read the thread](https://github.com/Q00/ouroboros/issues/2247) · 2026-08-23 · closed · outside contributor · 1 comment

### RFC: deterministic pre-execution guardrails on the command-exec loop (Grimdall)

### Summary

Propose an opt-in guard on Ouroboros' command-execution loop that adds deterministic, below-the-model policy: block destructive shell commands, deny reads of secret paths, and enforce an egress allowlist. Shadow-mode (log-only) by default — zero behavior change unless enabled.

### Why Ouroboros

Ouroboros runs real shell commands in the user's workspace as part of its self-improving grading loop. I can see this surface is already on your radar (the `fix(security):` PRs on retry/con

[Read the thread](https://github.com/Q00/ouroboros/issues/2244) · 2026-08-23 · open · external user · 2 comments

### docs: broken and inaccurate link/prose in auto-runtime-semantics.md

`docs/auto-runtime-semantics.md` has two documentation defects around operational-goal path selection:

1. The sentence at line 26 linked to `src/ouroboros/auto/operational_task.py`, which was removed from the codebase. The link 404s.
2. The prose also claims path selection "lives in `auto/task_classes.py`", but that file is only the reference catalog. Actual task-class inference is `derive_domain_from_ledger()` in `auto/domain_inference.py`, invoked after Seed generation in `auto/pipeline.py:23

[Read the thread](https://github.com/Q00/ouroboros/issues/2228) · 2026-08-22 · closed · outside contributor · 2 comments

### bug(seed): reference-aware generation can return Ok with an empty contract

## Summary

In `v0.51.13`, registering a reference activates the deterministic reference-aware Seed path. That path can discard canonical `[from-user][refined]` interview answers and still return `Result.ok(Seed(...))` with:

- `goal` copied from `initial_context`
- empty `constraints`
- empty `acceptance_criteria`
- no ontology fields

I reproduced this with synthetic data only. The same behavior is present on current `main` at `a8f3cf89a29ada8fbd29727198f6b9b12035dbed`.

This report is not ask

[Read the thread](https://github.com/Q00/ouroboros/issues/2216) · 2026-08-20 · closed · external user · 0 comments

### [Bug] Cross-harness redispatch treats installed Claude CLI as SDK-capable and makes optional fallback authoritative

## Summary

`execution.cross_harness_redispatch` defaults to `true`, but alternative-runtime availability is inferred from CLI presence rather than the transport/profile that the runtime factory can actually execute. In an isolated `ouroboros-ai[mcp]` environment, a Codex run sees an installed `claude` CLI, selects canonical backend `claude`, and then enters the SDK-backed adapter even though `claude-agent-sdk` is intentionally absent from the MCP 2 profile.

The missing optional SDK is then sur

[Read the thread](https://github.com/Q00/ouroboros/issues/2202) · 2026-08-19 · closed · outside contributor · 2 comments

### SessionStart update check imports undeclared packaging only when versions differ, then fails open

## Summary

The Claude plugin’s `SessionStart` update check appears healthy while `current == latest`, but when the strings differ it imports `packaging.version.Version` outside the comparison `try`. The hook-selected Python may not contain `packaging`, so the update notice is lost and the error is swallowed by the fail-open wrapper.

## Environment

- Ouroboros 0.51.13, release commit `9e24652e184d2ef8fd6ea96745031993afc3b9cd`
- Public `main` inspected at `74a1b0206b009f4c9e4bf8e55d6593b2921a38

[Read the thread](https://github.com/Q00/ouroboros/issues/2201) · 2026-08-19 · closed · external user · 1 comment

### bug(doctor): report non-UTF-8 installation JSON instead of crashing

## Problem

`ouroboros doctor install` is intended to report corrupt installation surfaces as structured failures, but `_read_json()` catches only `OSError` around `Path.read_text(encoding="utf-8")`. A present manifest or MCP config containing invalid UTF-8 raises `UnicodeDecodeError` and aborts the entire doctor command.

This was identified as a follow-up finding during review of #2034 and remains present on current `main`.

## Expected behavior

- A non-UTF-8 installation JSON file produces a

[Read the thread](https://github.com/Q00/ouroboros/issues/2198) · 2026-08-19 · closed · outside contributor · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/Q00/ouroboros/issues).