Skip to content

fix(auto): preserve explicit document Seed task type - #2102

Open
lightofjeju wants to merge 64 commits into
Q00:mainfrom
lightofjeju:fix/document-seed-task-type
Open

fix(auto): preserve explicit document Seed task type#2102
lightofjeju wants to merge 64 commits into
Q00:mainfrom
lightofjeju:fix/document-seed-task-type

Conversation

@lightofjeju

@lightofjeju lightofjeju commented Aug 12, 2026

Copy link
Copy Markdown

Summary

Preserve an explicitly requested Seed task_type across Big Bang extraction, ledger fallback synthesis, and bounded Seed-QA repair. This prevents document goals from silently defaulting to code, which previously misrouted execution and left resumable auto sessions blocked at seed_qa_feedback_unmapped.

The change also keeps explicit parent-Seed lineage during QA repair and moves the new contracts into focused modules so the grandfathered module-size budgets remain green.

Test plan

  • uv run pytest tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green tests/unit/core/test_seed.py tests/unit/bigbang/test_seed_generator.py tests/unit/auto/test_pipeline_lateral.py tests/unit/auto/test_interview_pipeline.py tests/unit/auto/test_ledger_seed.py tests/unit/auto/test_ledger_seed_brownfield.py -q — 739 passed
  • uv run ruff check on all changed Python files — clean
  • uv run ruff format --check on all changed Python files — clean
  • uv run mypy on all changed source modules — clean
  • Built wheel and sdist, installed the wheel, and smoke-tested English/Korean document task-type contracts
  • Resumed the reproducing auto session with --skip-run; it completed at Seed grade A with task_type: document, correct parent lineage, zero workflow executions, and zero repository deliverables
  • Full uv run pytest -q: 18,518 passed, 94 skipped, 1 xfailed before the module-size gate reported the two touched grandfathered modules had grown. The code was then split into focused modules; the module-size gate and the 739-test affected suite pass after that split. The full 18k suite was not rerun end-to-end after the mechanical split.

R-run comparison (required for src/ouroboros/auto/ changes)

Metric Baseline This PR Ratio
Rounds completed N/A N/A n/a
Per-round wall-clock N/A N/A n/a
Terminal reason N/A N/A n/a
EventStore event count N/A N/A n/a

Budget compliance: [x] N/A — data-contract-only change; no per-round calls, waits, retries, or EventStore writes.

Related issues

None.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked f4c75553310e3eaf661ee7e98ad8195415dda7d2
Request ID req_1786573700_1738
Review record d3087d3d-20b6-4436-a60b-1ab9497e5dda

What Improved

  • Adds a shared task_type extraction contract and includes TASK_TYPE in Big Bang Seed prompts.
  • Preserves explicit document task types in ledger synthesis and bounded Seed-QA repair.
  • Preserves explicitly named parent Seed lineage during QA repair attempts.
  • Moves extraction and QA-repair contracts into focused modules with targeted regression tests.

Issue Requirements

Requirement Status
Preserve an explicitly requested Seed task_type across Big Bang extraction Partially met — the extraction prompt and override were added, but transcript-wide first-match parsing can override the user’s final answer or correction.
Preserve an explicitly requested Seed task_type across ledger fallback synthesis Met for direct, unambiguous goal contracts; shared parsing remains vulnerable to the same first-match semantics where applicable.
Preserve an explicitly requested Seed task_type across bounded Seed-QA repair Partially met — direct mismatch repair works, but task-type authority is derived from the same unsafe parser.
Keep explicit parent-Seed lineage during QA repair Partially met — a single unambiguous ID is preserved, but multiple IDs or negated/reference mentions can rewrite lineage incorrectly.
Move contracts into focused modules and keep module-size budgets green Met based on the targeted module-size test and affected test suites.
Related issue No linked issue requirement captured | N/A

Prior Findings Status

No prior ouroboros-agent[bot] review rounds were recorded for this PR; no previous concerns to maintain, modify, or withdraw.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:27 BLOCKING explicit_task_type_from_goal() treats interviewer questions and superseded statements as binding contracts, and returns the first match. Because seed_generator.py:1837 applies this result to the entire rendered Q/A transcript, a prompt such as Q: Should task_type be code or document? is parsed as code even when the user answers document; likewise, a later correction (task_type must be document) loses to an earlier task_type must be code. This can silently misclassify document/research Seeds and route them through the wrong execution strategy. Restrict extraction to authoritative answer/goal content or resolve the final explicit contract deterministically, with tests for question wording and later corrections.
2 src/ouroboros/auto/seed_qa_contract.py:85 BLOCKING inherited_parent_seed_id() selects the first seed_<id> token anywhere in the goal rather than the Seed ID explicitly identified as the parent. _seed_with_seed_qa_feedback() and _seed_with_seed_qa_lateral_feedback() then overwrite metadata.parent_seed_id with that token at src/ouroboros/auto/pipeline.py:4965 and src/ouroboros/auto/pipeline.py:4935. A goal containing an old/reference Seed before the actual inherited parent, or a negated reference such as Do not inherit seed_old; inherit seed_parent, produces incorrect lineage metadata. This corrupts provenance and can misrepresent the resume/evolution parent after QA repair. Parse an explicit inheritance clause or preserve the existing metadata parent unless the parent relationship is unambiguous, and add multi-ID/negation tests.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None. |

Test Coverage Notes

  • Reviewed the changed source, affected callers, persistence metadata, execution strategy selection, and all listed tests.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest tests/unit/auto/test_ledger_seed.py tests/unit/auto/test_pipeline_lateral.py tests/unit/bigbang/test_seed_generator.py -q: 450 passed.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green tests/unit/core/test_seed.py tests/unit/auto/test_interview_pipeline.py tests/unit/auto/test_ledger_seed_brownfield.py -q: 289 passed.
  • Direct probes reproduced the first-match task-type misclassification and first-Seed-ID lineage selection.
  • The PR body states the full 18k test suite was not rerun after the mechanical module split; no full-suite evidence was available in this snapshot.

Design Notes

The extraction-contract split is directionally sound and keeps task-type and QA-repair rules centralized. However, both new heuristics infer authoritative identity from unstructured goal/transcript text, which is unsafe at a persistence and execution-routing boundary.

Design / Roadmap Gate

The changed boundary feeds Seed.task_type into execution strategy selection and writes metadata.parent_seed_id into successor Seeds. These are durable, downstream-facing contracts, so question text, corrections, references, negation, and multiple Seed IDs must not be interpreted as authoritative by incidental regex order. The targeted tests pass, but they cover only positive single-contract examples and do not establish safety for the critical ambiguous-input paths.

Directional Notes

Review focus followed the PR’s runtime boundary: explicit user intent must survive extraction, repair, and persistence without being replaced by defaults or stale context. Advisory maintainer memory also emphasized truthful parent lineage and replay-safe durable state; the blockers above are independently reproduced from the current source and are not based on memory alone.

Test Coverage

  • Reviewed the changed source, affected callers, persistence metadata, execution strategy selection, and all listed tests.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest tests/unit/auto/test_ledger_seed.py tests/unit/auto/test_pipeline_lateral.py tests/unit/bigbang/test_seed_generator.py -q: 450 passed.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green tests/unit/core/test_seed.py tests/unit/auto/test_interview_pipeline.py tests/unit/auto/test_ledger_seed_brownfield.py -q: 289 passed.
  • Direct probes reproduced the first-match task-type misclassification and first-Seed-ID lineage selection.
  • The PR body states the full 18k test suite was not rerun after the mechanical module split; no full-suite evidence was available in this snapshot.

Merge Recommendation

Request changes. The targeted suites pass and the module extraction is clean, but current-source probes demonstrate incorrect task-type routing and possible parent-lineage corruption on realistic transcript/goal inputs.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: f4c7555
request_id: req_1786573700_1738
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Addressed both blocking findings in 863837e. Task-type extraction now ignores interviewer questions/superseded clauses and uses the final authoritative contract; inheritance parsing now requires explicit semantics, ignores negated references, and supports the existing Korean contract. Added focused regressions for question-vs-answer wording, corrections, multi-ID/negation lineage, and non-inheritance references. Targeted tests, Ruff, and format checks pass. Requesting exact-head re-review.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 863837ef14845b18b5b0f122376537fab8a29b8f
Request ID req_1786809175_1858
Review record 663520a0-2083-4c5e-ac64-ef554ce192fd

What Improved

  • Adds an explicit TASK_TYPE extraction field and preserves positive document contracts through Big Bang generation, complete/partial ledger synthesis, and bounded Seed-QA repair.
  • Moves task-type extraction and Seed-QA mapping into focused modules while keeping the repository module-size gate green.
  • Adds focused coverage for corrections, interviewer question lines, basic negated lineage references, Korean contracts, and document task-type propagation.

Issue Requirements

Requirement Status
Preserve an explicitly requested Seed task_type through Big Bang extraction Partially met — affirmative tested contracts work, but non-binding questions, examples, and negations can override structured extraction.
Preserve explicit task_type through complete and partial ledger fallback synthesis Partially met — positive document contracts propagate, but both paths use the same false-positive-prone parser.
Preserve explicit task_type through bounded Seed-QA repair Partially met — the reproducing positive contract is repaired, but negative/example goal text can trigger an incorrect repair.
Prevent document goals from silently routing to code Partially met — the reported positive path is fixed, but incidental task_type text can still silently select an incorrect strategy in either direction.
Keep explicit parent-Seed lineage during QA repair Partially met — positive English/Korean inheritance works, but ordinary adverb-qualified negation can persist a rejected parent ID.
Keep new contracts in focused modules and satisfy module-size budgets Met.
Add no per-round calls, waits, retries, or EventStore writes Met for the inspected diff.

Prior Findings Status

The prior concerns are modified but not fully withdrawn. Current head addresses the specifically tested question/correction and simple negation forms, but fresh evidence shows the same authoritative-contract boundary still fails for trailing-question punctuation, quoted/example text, task-type negation, and adverb-qualified lineage negation.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:41 BLOCKING explicit_task_type_from_goal() still treats non-binding text as authoritative. Current-head probes return document for Should task_type: document?, code for Document the literal example \task_type: code` for users., and documentforDo not use task_type: document.The question check stops atmatch.end()and therefore misses a trailing?; stripping quotation markers makes examples indistinguishable from contracts; and the prefix filter does not reject negation. Because SeedGenerator.generate()unconditionally replaces the structured extraction result with this value atsrc/ouroboros/bigbang/seed_generator.py:1837`, and the same helper drives ledger fallback and QA repair, ordinary questions, examples, or negative requirements can silently select the wrong execution strategy. Require genuinely affirmative contract semantics and add end-to-end regressions proving these cases preserve the extracted/default task type.
2 src/ouroboros/auto/seed_qa_contract.py:102 BLOCKING The lineage negation guard only recognizes do not, don't, or never when immediately adjacent to inherit. Current-head probes return seed_bad for both Do not ever inherit seed_bad. and Never directly inherit seed_bad. During either QA repair path, pipeline.py:4935/pipeline.py:4965 then writes that explicitly rejected ID into durable metadata.parent_seed_id. The new test covers only the adjacent Do not inherit form, so lineage remains corruptible by normal adverb-qualified negation. Parse the inheritance clause semantically—or at minimum reject negation across the full local clause—and add repair-level tests demonstrating that negated IDs are never persisted.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the PR’s affected suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest ... -q: 739 passed in 16.07s.
  • Ran focused changed-boundary tests for task-type parsing, QA contracts, QA repair, ledger synthesis, and Big Bang generation: 457 passed in 9.48s.
  • Direct current-head probes reproduced both blockers using the production parser functions.
  • The PR body reports Ruff, formatting, mypy, package smoke tests, and a resumed document session; the full 18k-test suite was not rerun after the final module split.

Design Notes

Extracting shared task-type and QA contracts into focused modules is directionally sound. However, these helpers now act as authoritative parsers at multiple durable boundaries, so regex matches must fail closed unless text is unambiguously affirmative.

Design / Roadmap Gate

Seed.task_type directly selects the orchestrator execution strategy, while metadata.parent_seed_id is serialized lineage consumed by later execution and projection paths. The positive reproduction is covered, but caller-controlled natural language can still overwrite both contracts through false-positive parsing. These critical input and repair paths therefore do not yet have sufficient compatibility or replay-safety evidence.

Directional Notes

Review focus followed end-to-end contract continuity and truthful durable lineage. Maintainer memory was used only to prioritize these boundaries; both blockers are independently demonstrated by current-source probes and downstream assignments.

Test Coverage

  • Ran the PR’s affected suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest ... -q: 739 passed in 16.07s.
  • Ran focused changed-boundary tests for task-type parsing, QA contracts, QA repair, ledger synthesis, and Big Bang generation: 457 passed in 9.48s.
  • Direct current-head probes reproduced both blockers using the production parser functions.
  • The PR body reports Ruff, formatting, mypy, package smoke tests, and a resumed document session; the full 18k-test suite was not rerun after the final module split.

Merge Recommendation

Request changes. The intended document contract now survives the tested happy paths and all targeted tests pass, but current head still misclassifies realistic non-binding task-type text and can persist explicitly negated parent lineage. Both affect durable execution semantics and require fail-closed parsing plus regression coverage before merge.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 863837e
request_id: req_1786809175_1858
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Pushed HEAD for exact-head re-review. Task-type parsing now rejects trailing-question contracts, literal/example mentions, and negated requirements; full SeedGenerator regressions prove the extracted/default code type is preserved. Parent inheritance now evaluates negation across the whole clause, including adverb-qualified do not ever / never directly; repair-level tests prove rejected IDs never reach durable parent_seed_id.

Validation: 447 focused tests passed; Ruff/format/diff checks passed.

…-resolution

# Conflicts:
#	src/ouroboros/auto/pipeline.py
@Q00 Q00 added the no-issue PR intentionally has no associated issue; exempts it from the PR Hygiene issue-link gate label Aug 15, 2026
@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Resolved the conflict in ee041e8 by preserving current pipeline behavior and reapplying only this PR's Seed QA contract changes. The affected auto pipeline suite passes (193 tests), module-size is green, and the PR body now uses the current required R-run comparison schema. Requesting exact-head re-review.

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact head ee041e8 and emit a fresh exact-head final_review.v1 verdict.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked ee041e8f5332044b0ff7c71c7f13dbdeb8515d16
Request ID req_1786814561_1883-retry-1
Review record 4f85c7d6-0f57-41ec-83f7-e04a171555bc

What Improved

  • Preserves explicit positive task_type contracts across Big Bang extraction, ledger fallback synthesis, and Seed QA repair.
  • Adds focused task-type and parent-lineage contract modules with targeted regressions.
  • Preserves explicit Korean inheritance syntax and avoids copying QA/lateral diagnostics into repaired constraints.

Issue Requirements

Requirement Status
Preserve an explicitly requested Seed task_type across Big Bang extraction Partially met — positive contracts are preserved, but exclusionary wording can still be treated as authoritative
Preserve an explicitly requested Seed task_type across ledger fallback synthesis Partially met — fallback uses the shared parser, so the same false-positive task-type cases remain
Preserve an explicitly requested Seed task_type across bounded Seed QA repair Partially met — positive mismatch repair works, but it relies on the same incomplete parser
Prevent document goals from silently defaulting to code Partially met — the documented positive path is fixed, but contradictory natural-language contracts can still route to document
Keep explicit parent-Seed lineage during QA repair Partially met — positive English/Korean inheritance works, but rejected IDs can still be persisted and valid corrected IDs can be discarded
Move new contracts into focused modules while keeping module-size budgets green Met — the module-size test passes
Related issue requirement No linked issue requirement captured | N/A

Prior Findings Status

The exact prior examples for question text, literal/example mentions, do not ever, and never directly were addressed and their corresponding regressions are present. However, the same two durable contract boundaries still have unhandled negation variants: task-type extraction remains vulnerable to cannot/without, and parent-lineage extraction remains vulnerable to modal negation plus clause-wide suppression of a later positive reference. These are fresh current-head findings, not carried over solely from prior review text.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:66 BLOCKING explicit_task_type_from_goal() still treats negated or exclusionary wording as an authoritative task-type contract. The negation filter only recognizes ignore, discard, superseded, obsolete, example, literal, do not, don't, never, and avoid; it misses forms such as We cannot use task_type: document. and Without using task_type: document, ..., both of which currently return document. This value is then trusted by Big Bang generation at src/ouroboros/bigbang/seed_generator.py:1837 and can overwrite the extracted type, changing the execution strategy for a caller whose wording explicitly rejects that type. Add fail-closed handling and regressions for cannot, can't, without, not allowed, and equivalent correction/scoping forms.
2 src/ouroboros/auto/seed_qa_contract.py:105 BLOCKING inherited_parent_seed_id() still misinterprets negated lineage references. Its filter recognizes only do not, don't, and never, so The Seed must not inherit seed_bad. and Cannot inherit seed_bad. currently return seed_bad; QA repair then persists that rejected ID through src/ouroboros/auto/pipeline.py:4932-4935. The matching also scopes negation to the entire clause prefix: Do not inherit seed_bad, instead inherit seed_good. suppresses the valid seed_good match and falls back to the generated repair Seed. Because metadata.parent_seed_id is durable lineage, parse negation per reference/clause and add regressions for modal negation, without, and negated-reference-plus-positive-correction forms.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Reviewed the changed tests, surrounding Seed/execution contracts, and the prior review context.
  • The affected test plan passed locally: 761 passed across Seed, task-type, Big Bang, auto-pipeline, ledger, brownfield, QA-contract, and module-size tests.
  • Ruff and format checks passed for all changed files.
  • Additional direct probes reproduced the two remaining negation failures described above; those cases are not covered by the current regressions.
  • The PR body states the full 18k suite was not rerun after the mechanical module split.

Design Notes

The modular split and shared task-type contract are directionally sound, and the boundary remains understandable. However, both helpers feed durable execution and lineage state, so natural-language parsing must fail closed for negation and scope before merge.

Design / Roadmap Gate

Seed.task_type directly selects the orchestrator strategy, while metadata.parent_seed_id is serialized lineage consumed by later execution and projection paths. The positive-path tests establish the intended behavior, but they do not establish fail-closed behavior for caller-controlled natural-language negation. Until the parser distinguishes rejected references from binding contracts and scopes negation to the specific candidate rather than an entire clause, both execution routing and repair lineage remain vulnerable to silent contract drift.

Directional Notes

Review focus followed the PR’s contract-continuity claim: user intent must remain authoritative through extraction, fallback synthesis, QA repair, and durable persistence. Advisory maintainer memory reinforced inspecting replay-safe state and truthful lineage, but the blockers above are independently reproduced from the current source and direct runtime probes.

Test Coverage

  • Reviewed the changed tests, surrounding Seed/execution contracts, and the prior review context.
  • The affected test plan passed locally: 761 passed across Seed, task-type, Big Bang, auto-pipeline, ledger, brownfield, QA-contract, and module-size tests.
  • Ruff and format checks passed for all changed files.
  • Additional direct probes reproduced the two remaining negation failures described above; those cases are not covered by the current regressions.
  • The PR body states the full 18k suite was not rerun after the mechanical module split.

Merge Recommendation

Request changes. The targeted suites, lint, formatting, and module-size checks pass, but current-head probes still demonstrate incorrect durable task routing and parent-lineage persistence for realistic negated inputs.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: ee041e8
request_id: req_1786814561_1883-retry-1
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 4742c144cf369b72e086a2f842658beeac47bba3
Request ID req_1786816866_1895-retry-1
Review record 862f1b02-f52e-46d5-91b0-26a67f97bb85

What Improved

  • Adds structured TASK_TYPE extraction and validation for all supported execution strategies.
  • Preserves explicit document task types through tested Big Bang, ledger synthesis, partial recovery, and Seed-QA happy paths.
  • Extracts task-type and QA-repair contracts into focused modules while keeping module-size checks green.
  • Improves parent-lineage handling for tested positive, negated, Korean, and comma-separated correction forms.

Issue Requirements

Requirement Status
Preserve explicit Seed task_type through Big Bang extraction Partially met — tested standalone contracts work, but conjunction and unrelated-negation forms still silently retain the extracted default
Preserve explicit Seed task_type through complete and partial ledger fallback synthesis Partially met — both paths use the same parser and still default to code for valid same-segment contracts
Repair explicit task-type contradictions through bounded Seed QA without seed_qa_feedback_unmapped Partially met — the happy path repairs correctly, but current-source input can still raise SeedQaRepairMappingError
Preserve explicit parent-Seed lineage during QA repair Partially met — tested punctuation-separated cases work, but same-segment positive inheritance is discarded when any negation is present
Move the new contracts into focused modules and keep module-size budgets green Met
Linked issue requirement N/A — the PR states there is no related issue

Prior Findings Status

Prior concerns are maintained in modified form. The exact punctuation-separated and standalone-negation cases discussed by the contributor are addressed, but fresh current-snapshot evidence shows the same candidate-scoping failure remains when positive and negative semantics share one comma-or-sentence segment. Both blockers are independently reproduced here rather than inferred from prior reviews.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:75 BLOCKING _NON_BINDING_CONTRACT_PATTERN is applied to the entire punctuation-bounded segment, so an unrelated negation or a conjunction-based correction suppresses an otherwise explicit positive task type. Current-source probes return None for both Use task_type: document and do not modify source code. and Do not use task_type: code and instead use task_type: document. Consequently Big Bang does not override an extracted code value, ledger synthesis defaults to code, and Seed-QA repair raises SeedQaRepairMappingError for the task-type mismatch—reproducing the seed_qa_feedback_unmapped failure this PR intends to fix. Scope non-binding language to each candidate and add end-to-end regressions without punctuation separating the negative and positive clauses.
2 src/ouroboros/auto/seed_qa_contract.py:112 BLOCKING Parent inheritance has the same segment-wide negation bug. Inherit seed_good and do not copy its obsolete constraints. and Do not inherit seed_bad and instead inherit seed_good. both return no inherited parent. A production repair probe therefore persisted seed_current as parent_seed_id instead of the explicitly requested seed_good. Because this metadata is durable lineage consumed by later execution and projection paths, negation must be associated with the affected inheritance candidate rather than rejecting every candidate in the segment; add repair-level conjunction and unrelated-negation regressions.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the changed-contract suites, including test_task_type.py, test_seed_qa_contract.py, pipeline lateral, ledger, and SeedGenerator tests: 470 passed.
  • Ran the PR-body affected suite plus the real-repository module-size gate: 756 passed.
  • Ran Ruff across every changed Python file: clean.
  • Added focused runtime probes independently demonstrate the two failures above despite the authored tests passing.
  • The full 18k suite was not rerun after the mechanical module split, consistent with the PR body’s stated limitation.

Design Notes

The focused-module extraction is directionally sound, but both modules still interpret caller-controlled natural language using segment-wide exclusion rules. That makes durable execution and lineage contracts depend on incidental punctuation rather than candidate-local semantics.

Design / Roadmap Gate

Seed.task_type selects the execution strategy and is included in executable Seed semantics, while metadata.parent_seed_id is serialized and propagated through lineage events and projections. Positive contracts must therefore survive realistic corrections and adjacent negative constraints without silently reverting to code, blocking repair, or recording the generated Seed as the wrong parent. The current punctuation-sensitive behavior does not satisfy that boundary.

Directional Notes

Review focus followed end-to-end contract preservation and replay-safe durable lineage. Maintainer memory was used only to prioritize those boundaries; both findings are proven by current source, affected call paths, and focused runtime probes.

Test Coverage

  • Ran the changed-contract suites, including test_task_type.py, test_seed_qa_contract.py, pipeline lateral, ledger, and SeedGenerator tests: 470 passed.
  • Ran the PR-body affected suite plus the real-repository module-size gate: 756 passed.
  • Ran Ruff across every changed Python file: clean.
  • Added focused runtime probes independently demonstrate the two failures above despite the authored tests passing.
  • The full 18k suite was not rerun after the mechanical module split, consistent with the PR body’s stated limitation.

Merge Recommendation

Request changes. The intended happy paths, affected suites, lint, and module-size checks pass, but current HEAD still loses explicit task type and parent lineage for ordinary conjunction-based language, producing incorrect durable execution semantics and recreating the blocked Seed-QA recovery mode.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 4742c14
request_id: req_1786816866_1895-retry-1
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact head 4593734 and emit a fresh exact-head final_review.v1 verdict. Conjunction-scoped task-type and lineage negation regressions now pass; latest main is merged; 553 affected tests and module-size/Ruff are green.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 45937348dfa784a66419d0ffc48aeb96e22d130e
Request ID req_1786818806_1897
Review record 627e983b-dff0-4a49-94cc-c251f8078573

What Improved

  • Adds structured TASK_TYPE extraction and validation for Big Bang Seed generation.
  • Preserves straightforward explicit document task types through complete and partial ledger synthesis and bounded Seed-QA repair.
  • Preserves explicit parent lineage for the covered positive, negated, correction, conjunction, and Korean forms.
  • Moves shared extraction and QA contracts into focused modules while keeping module-size checks green.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type across Big Bang extraction Partially met — straightforward and covered correction forms work, but explicit positive contracts with adjacent negative constraints are discarded.
Preserve explicitly requested Seed task_type during complete and partial ledger fallback synthesis Partially met — both paths use the new parser, but affected clauses silently default to code.
Preserve explicit task type during bounded Seed-QA repair and avoid seed_qa_feedback_unmapped blocking Partially met — covered happy paths repair correctly, but valid clauses can still produce an unmapped repair error.
Preserve explicit parent-Seed lineage during QA repair Partially met — covered positive and negated forms work, but positive inheritance followed by an unrelated negative constraint is not persisted.
Keep grandfathered module-size budgets green through focused module extraction Met.

Prior Findings Status

Prior task-type and lineage concerns are maintained in narrowed form. The current revision fixes the previously tested punctuation, explicit correction, and and-conjunction cases, but fresh current-source probes show that equivalent without, although, and causal clauses still lose positive contracts. No prior claim is relied upon without current-head reproduction.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:79 BLOCKING The segment-wide non-binding check still discards an explicit positive task type whenever an unrelated negative constraint occurs later in the same clause. For example, task_type must be document without changing repository files, Use task_type: document although we must not produce code, and Use task_type: document because source code must not change all return None. Complete and partial ledger synthesis consequently default these contracts to code, while Big Bang cannot override an extracted code result. A direct QA-repair probe with the first goal also raised SeedQaRepairMappingError rather than repairing the type, recreating the advertised seed_qa_feedback_unmapped failure. Negation must be scoped to the task-type predicate rather than rejecting the entire conjunction/causal segment, with end-to-end regressions for extraction, both ledger paths, and QA repair.
2 src/ouroboros/auto/seed_qa_contract.py:104 BLOCKING Parent-lineage extraction applies the same whole-segment negation rule and loses clear positive lineage when a separate negative constraint follows it. Inherit seed_good without copying obsolete constraints and Derive from seed_good although we must not reuse its runtime settings both return no inherited parent. _seed_with_seed_qa_feedback then persists the generated Seed’s current ID as parent_seed_id instead of seed_good, producing incorrect durable lineage. Scope negation to the inheritance predicate and add repair-level regressions proving the intended parent reaches metadata for these forms.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Reviewed the changed tests and affected call paths.
  • Ran 737 affected tests across task-type parsing, Seed QA contracts and repair, Big Bang generation, ledger synthesis, interview pipeline, core Seed behavior, and module-size enforcement; all passed.
  • Ran Ruff against every changed Python file; all checks passed.
  • Additional direct runtime probes exposed the two clause-scoping failures above, which the current punctuation/and-focused regressions do not cover.
  • The PR reports that the full suite was not rerun after the final mechanical module split.

Design Notes

Centralizing task-type and QA contract parsing is directionally sound, but lexical segment-wide negation is not precise enough for durable execution and lineage contracts.

Design / Roadmap Gate

Seed.task_type directly selects the runtime execution strategy, while metadata.parent_seed_id is serialized lineage propagated through later runtime and projection paths. Positive contracts must survive adjacent, unrelated negative constraints regardless of whether punctuation or the specific conjunction and separates them. The current segment-level rejection can silently substitute code, strand QA repair, or persist the wrong lineage parent, so the affected boundary is not yet safe.

Directional Notes

Review focus followed end-to-end contract continuity and truthful durable lineage. Maintainer memory was used only to prioritize conjunction and negation scoping; both blockers are independently demonstrated by current source, affected call sites, and direct runtime probes.

Test Coverage

  • Reviewed the changed tests and affected call paths.
  • Ran 737 affected tests across task-type parsing, Seed QA contracts and repair, Big Bang generation, ledger synthesis, interview pipeline, core Seed behavior, and module-size enforcement; all passed.
  • Ran Ruff against every changed Python file; all checks passed.
  • Additional direct runtime probes exposed the two clause-scoping failures above, which the current punctuation/and-focused regressions do not cover.
  • The PR reports that the full suite was not rerun after the final mechanical module split.

Merge Recommendation

Request changes. The affected tests, lint, and module-size checks pass, and several prior edge cases are fixed, but current HEAD still loses explicit task type and parent lineage for ordinary clause constructions, producing incorrect durable execution semantics.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 4593734
request_id: req_1786818806_1897
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true

Recovery Notes

First recoverable review artifact generated from codex analysis log.


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Addressed the exact-head blockers at e202cf0: clause boundaries now preserve positive task-type and lineage contracts before adjacent without/although/because constraints while still rejecting leading negation. Added parser, complete/partial ledger, QA repair, and durable lineage regressions; 444 affected tests pass. Please review the current HEAD.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked e202cf07ff4c53912169c971c4da85b1e4be6b49
Request ID req_1786819454_1903
Review record b9de12ec-f3cc-46e8-a9ca-c2b6fbf7c69f

What Improved

  • Preserves explicit document task types across the primary extraction, complete-ledger, partial-ledger, and bounded QA-repair paths.
  • Moves task-type and Seed-QA contract logic into focused modules while keeping module-size checks green.
  • Improves handling of questions, corrections, common English negation, conjunctions, and Korean inheritance syntax.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type during Big Bang extraction Partially met — positive covered cases work, but non-binding historical mentions can override extraction and leading causal constraints can hide valid contracts.
Preserve explicit task_type during complete and partial ledger fallback synthesis Partially met — covered document goals work, but causal ordering defaults valid document goals to code, while rejected historical mentions can incorrectly select document.
Preserve explicit task_type during bounded Seed-QA repair and avoid seed_qa_feedback_unmapped Partially met — covered repairs succeed, but a positive contract following a causal negative constraint remains unmapped.
Preserve explicit parent-Seed lineage during QA repair Partially met — covered positive and negated cases work, but quoted/example and rejected historical references can be persisted as durable parents, while some causal positive contracts are lost.
Keep grandfathered module-size budgets green through focused modules Met.
Avoid new round calls, waits, retries, or EventStore writes Met — the changed boundary remains deterministic parsing and Seed mutation.

Prior Findings Status

Prior concerns are modified but maintained. Current HEAD fixes the previously demonstrated punctuation and selected conjunction cases, but independent current-source probes show the same contract-scoping class remains for leading causal clauses and non-binding historical/quoted text. The blockers above are based on the present snapshot and actual synthesis/repair results, not prior review claims.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:59 BLOCKING _candidate_segment deliberately ignores every leading because/while boundary, so an unrelated negative constraint before a positive contract still invalidates that contract. For example, Do not modify source code because task_type must be document. returns None; a code Seed then remains uncorrected, and QA feedback mentioning exit_conditions raises SeedQaRepairMappingError, recreating the blocked recovery mode this PR targets. The same shared segmentation also loses lineage in Do not copy obsolete constraints because this Seed should inherit seed_good.. Clause direction must be distinguished rather than always retaining these leading conjunctions, with regressions through ledger synthesis and durable QA repair.
2 src/ouroboros/core/task_type.py:38 BLOCKING The “binding contract” detector still treats historical or rejected prose as authoritative unless it contains one of the narrow listed keywords. We discussed task_type: document in the rejected proposal. Build a CLI. is parsed as document; complete ledger synthesis consequently persists task_type=document at src/ouroboros/auto/ledger_seed.py:143, and the Big Bang override at src/ouroboros/bigbang/seed_generator.py:1837 can likewise replace the structured extraction result. This silently misroutes execution from non-binding caller text. Add fail-closed handling and end-to-end tests for rejected, prior, quoted, and merely discussed contracts.
3 src/ouroboros/auto/seed_qa_contract.py:104 BLOCKING Parent-lineage parsing only filters negation and therefore accepts quoted examples and historical references as inheritance contracts. Both The phrase "inherit seed_bad" is an example, not a requirement. and We discussed inherit seed_bad in the rejected proposal. return seed_bad; _seed_with_seed_qa_feedback then durably writes that value as metadata.parent_seed_id at src/ouroboros/auto/pipeline.py:2963. This corrupts serialized lineage despite the goal explicitly describing a non-contract. Parent parsing needs the same non-binding/reference protections promised for task type, plus repair-level persistence tests.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the five directly affected suites: 444 tests passed.
  • Ran test_real_repository_is_green and the auto interview pipeline suite: 185 tests passed.
  • Ruff passed on every changed Python file.
  • Direct current-snapshot runtime probes reproduced incorrect complete-ledger task routing, unmapped causal-clause QA repair, and durable false parent lineage.
  • The PR body reports that the full 18k suite was not rerun after the final module split; targeted mechanical coverage is green, but end-to-end full-suite evidence remains absent.

Design Notes

Extracting shared contract logic into focused modules is directionally sound, but regex-based natural-language authority detection remains insufficiently scoped for fields that directly control execution strategy and durable lineage.

Design / Roadmap Gate

Seed.task_type selects downstream execution behavior, while metadata.parent_seed_id is serialized into lineage events and projections. These are durable runtime contracts, so parsing must fail closed for non-binding prose and preserve positive contracts regardless of adjacent constraint ordering. Current HEAD can still default or overwrite task routing, strand bounded QA repair, and persist an unrelated Seed as the parent. The boundary is therefore not yet replay-safe or compatible with realistic caller-controlled language.

Directional Notes

Review focus followed end-to-end contract stabilization: explicit task type and parent lineage must retain one authoritative meaning across extraction, fallback, repair, persistence, resume, and execution. Maintainer memory only guided adversarial clause and negation probes; every blocker was independently reproduced against the current snapshot.

Test Coverage

  • Ran the five directly affected suites: 444 tests passed.
  • Ran test_real_repository_is_green and the auto interview pipeline suite: 185 tests passed.
  • Ruff passed on every changed Python file.
  • Direct current-snapshot runtime probes reproduced incorrect complete-ledger task routing, unmapped causal-clause QA repair, and durable false parent lineage.
  • The PR body reports that the full 18k suite was not rerun after the final module split; targeted mechanical coverage is green, but end-to-end full-suite evidence remains absent.

Merge Recommendation

Request changes. The intended happy paths, focused suites, lint, and module-size checks pass, but current HEAD still produces incorrect durable execution and lineage semantics for realistic causal, historical, and quoted inputs.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: e202cf0
request_id: req_1786819454_1903
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Addressed the latest semantic blockers at HEAD: causal prefixes now delimit earlier negative constraints from later positive contracts; quoted, discussed, rejected, prior, and historical task-type/lineage references fail closed. Added parser, complete/partial ledger, QA repair, and durable lineage regressions. 450 affected tests pass; Ruff/format pass. Please review exact HEAD.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 1d3c52669c717e08b74b6f030159407ba8687676
Request ID req_1786821341_1911
Review record 2f2f50bf-9e79-44a6-b04e-2abe4399ea6f

What Improved

  • Adds explicit task_type extraction and validation to Big Bang Seed generation.
  • Preserves recognized task-type contracts through complete and partial ledger synthesis and bounded QA repair.
  • Extracts Seed-QA contract logic into focused modules while keeping module-size, lint, and affected test gates green.
  • Adds regression coverage for questions, corrections, negation, conjunctions, Korean contracts, and parent lineage.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type across Big Bang extraction Partially met — covered happy paths work, but ordinary contractions/domain wording lose valid contracts and separated historical prose can create false contracts.
Preserve explicitly requested Seed task_type through complete and partial ledger fallback synthesis Partially met — both paths use the shared parser, so the reproduced false positives and false negatives propagate into synthesized Seeds.
Preserve explicitly requested Seed task_type during bounded Seed-QA repair Partially met — repair handles recognized contracts but cannot repair contracts rejected by the parser and can apply false historical contracts.
Prevent document goals from silently defaulting to code Not met — "We'll use task_type: document..." and "Use task_type: document for the historical archive." still return no explicit type and default ledger Seeds to code.
Preserve explicit parent-Seed lineage during QA repair Partially met — tested contracts work, but ordinary possessives lose valid lineage and separated historical prose can persist a rejected Seed ID.
Keep grandfathered module-size budgets green Met.
Maintain affected lint and test coverage Met for the executed affected suites, but adversarial semantic-scope coverage remains incomplete.

Prior Findings Status

Prior concerns are maintained with updated current-head evidence. The latest changes fix several previously targeted conjunction, causal, negation, quotation, and historical examples, but the same durable-contract standard still fails when clause segmentation removes historical governors or the broad non-binding guard rejects ordinary positive prose.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:62 BLOCKING _candidate_segment() discards all governing context before punctuation or conjunctions such as but, while, and because. Consequently, current-head probes classify "The previous proposal was rejected, but its task_type: document should be recorded for audit." as a binding document contract and "The previous proposal was rejected, but it said inherit seed_bad for reference." as binding lineage to seed_bad. These false positives propagate through Big Bang override, ledger synthesis, and QA repair, silently changing execution routing or durable parent_seed_id from explicitly historical/non-binding prose. Preserve the semantic governor across clause boundaries and add end-to-end regressions for historical/rejected clauses separated from the candidate by punctuation or conjunctions.
2 src/ouroboros/core/task_type.py:38 BLOCKING The non-binding guard rejects a candidate when its entire segment contains any quote character or generic word such as historical, rather than determining whether the candidate itself is quoted or historical. Current-head probes return no task contract for "We'll use task_type: document for the final plan." and "Use task_type: document for the historical archive.", and no lineage for "Inherit seed_good for John's project.". Complete/partial ledger synthesis therefore defaults valid document work to code, while QA repair fails to restore the explicitly requested task type or lineage. Scope quote/reference detection to the matched contract instead of rejecting ordinary contractions, possessives, or domain descriptions, with extraction, ledger, and repair regressions.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the five directly affected suites: 450 passed.
  • Ran tests/unit/auto/test_interview_pipeline.py: 184 passed.
  • Ran the real-repository module-size gate: 1 passed.
  • Ran Ruff over all changed Python source and test files: clean.
  • Direct current-head runtime probes exposed the two semantic-scope failures above; the authored tests do not cover those realistic clause and possessive/domain-word cases.
  • The PR body reports that the full suite was not rerun after the final mechanical split.

Design Notes

Centralizing task-type and lineage interpretation is directionally sound, but the shared clause heuristic is now a critical semantic authority used across extraction, fallback, repair, persistence, and execution routing. It must distinguish binding contracts from contextual prose without relying on lossy token boundaries or segment-wide keyword rejection.

Design / Roadmap Gate

Seed.task_type selects downstream execution strategy, and metadata.parent_seed_id is durable lineage propagated through runtime and projection paths. The PR improves recognized happy paths, but caller-controlled natural language can still either fabricate these contracts from historical prose or erase explicit positive contracts. The boundary therefore remains unsafe across Big Bang generation, complete/partial fallback, QA repair, persistence, and resumed execution.

Directional Notes

Review focus followed contract stabilization and replay-safe durable lineage. Maintainer memory was used only to prioritize mixed-clause, historical, and unrelated-word probes; both blockers are independently reproduced from the current source snapshot.

Test Coverage

  • Ran the five directly affected suites: 450 passed.
  • Ran tests/unit/auto/test_interview_pipeline.py: 184 passed.
  • Ran the real-repository module-size gate: 1 passed.
  • Ran Ruff over all changed Python source and test files: clean.
  • Direct current-head runtime probes exposed the two semantic-scope failures above; the authored tests do not cover those realistic clause and possessive/domain-word cases.
  • The PR body reports that the full suite was not rerun after the final mechanical split.

Merge Recommendation

Request changes. The affected suites, pipeline tests, lint, and module-size gate pass, but current-head probes still demonstrate silent task-routing drift and incorrect durable lineage on realistic inputs. The shared parser needs contract-local semantic scoping and end-to-end regressions before merge.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 1d3c526
request_id: req_1786821341_1911
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Addressed both exact-head blockers at 7a187f9. Contract-local quote detection now rejects only a contract actually enclosed in quotes, preserving ordinary contractions, possessives, and domain wording. Historical/rejected governors are preserved across punctuation and conjunction boundaries for both task type and parent lineage without treating words after a positive contract as non-binding. Added parser, complete/partial ledger, QA repair, lineage, and stale brownfield extraction regressions. 466 affected tests pass; Ruff/format/diff checks pass. @ouroboros-agent please re-review exact head 7a187f9 and emit a fresh exact-head verdict.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 7a187f985ea04a42f904cea271eabf2a752dc6e4
Request ID req_1786822891_1916
Review record 848c52d8-ca4a-4433-9377-7abbb743898d

What Improved

  • Adds an explicit TASK_TYPE extraction contract and validates supported values.
  • Preserves recognized task-type intent across Big Bang generation, complete/partial ledger synthesis, and bounded Seed-QA repair.
  • Preserves recognized parent-Seed lineage during deterministic and lateral QA repair.
  • Extracts shared task-type and QA-contract logic into focused modules with substantial regression coverage.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type through Big Bang extraction Partially met — recognized positive forms work, but non-binding historical or rejected forms can override the extracted type.
Preserve explicit task_type through complete and partial ledger fallback synthesis Partially met — propagation exists, but false-positive parsing can durably select the wrong type.
Preserve explicit task_type through bounded Seed-QA repair Partially met — valid corrections work, but unrelated QA repair can apply a rejected task-type statement.
Prevent document goals from silently defaulting to code and blocking QA recovery Partially met — covered positive document contracts are repaired, but semantic classification remains unsafe in the opposite direction.
Preserve explicit parent-Seed lineage during QA repair Partially met — positive lineage is retained, but negative non-inheritance statements can be persisted as ancestry.
Keep touched modules within module-size budgets using focused modules Met.

Prior Findings Status

Prior concerns are modified but maintained. The current revision fixes the previously demonstrated question, punctuation, quoted-contract, conjunction, and several historical-governor cases. Fresh current-head evidence nevertheless shows the same contract-boundary class remains for post-contract rejection and other ordinary negative constructions; no prior finding was assumed without reproduction.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:38 BLOCKING The non-binding filter still accepts explicitly rejected or superseded task-type requirements when the rejection follows the contract. Current-head probes return document for both The task_type: document requirement was rejected. and Use the default code task instead of task_type: document. because rejected, rather than, no longer, and post-match instead of semantics are not covered by the candidate segment. This value overrides model extraction at seed_generator.py:1837, becomes the durable fallback type at ledger_seed.py:143 and ledger_seed.py:366, and can change an existing code Seed to document during unrelated QA repair through requested_seed_qa_task_type. A direct repair probe with only an ambiguity-score diagnostic changed task_type from code to document. This can silently select the wrong execution strategy.
2 src/ouroboros/auto/seed_qa_contract.py:91 BLOCKING Parent-lineage extraction has the same semantic hole for explicit non-inheritance statements. Current-head probes return seed_bad for It is false that we inherit seed_bad., Start fresh instead of inheriting seed_bad., Rather than inherit seed_bad, start fresh., and We no longer inherit seed_bad. During _seed_with_seed_qa_feedback, this result overwrites the normal repair parent at pipeline.py:2963; a direct probe persisted metadata.parent_seed_id == "seed_bad" from the first sentence. Because this metadata is later serialized into lineage events, ordinary negative caller language can create false durable ancestry.

Follow-up Findings

# File:Line Priority Confidence Suggestion
1 tests/unit/core/test_task_type.py:22 Medium High Add end-to-end regressions for post-contract rejection, instead of/rather than, no longer, and explicit falsity across Big Bang generation, complete/partial ledger synthesis, QA repair, and durable parent metadata—not only parser-level tests.

Non-blocking Suggestions

| 1 | /tmp/pr_body_Q00_ouroboros_2102.md:23 | Testing | The PR reports that the full 18k-test suite was not rerun after the final module split. Rerunning it before merge would improve confidence after the blockers are fixed. |

Test Coverage Notes

  • Reviewed the changed parser, Big Bang extraction/build path, complete and partial ledger synthesis, deterministic/lateral QA repair, execution-strategy selection, and lineage event propagation.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest tests/unit/core/test_task_type.py tests/unit/auto/test_seed_qa_contract.py tests/unit/auto/test_ledger_seed.py tests/unit/auto/test_pipeline_lateral.py tests/unit/bigbang/test_seed_generator.py tests/unit/bigbang/test_seed_generator_brownfield.py -q: 466 passed.
  • Ran focused current-source probes demonstrating both blocking failures through the parser and actual _seed_with_seed_qa_feedback repair path.
  • Full-suite post-split evidence remains unavailable.

Design Notes

Centralizing task-type and QA-contract parsing is directionally sound, but a regex heuristic over unrestricted goal prose is now authoritative for execution routing and durable lineage. That boundary must reject common non-binding language reliably before it is safe.

Design / Roadmap Gate

Seed.task_type selects the downstream execution strategy, while metadata.parent_seed_id is persisted into lineage events and projections. The PR correctly propagates parsed contracts through extraction, fallback, and repair, but this increases the impact of parser false positives: rejected task requirements can reroute execution, and explicit non-inheritance language can fabricate ancestry. These caller-controlled contracts remain unsafe across generation, fallback, repair, persistence, and resume.

Directional Notes

Review focus followed end-to-end semantic continuity and replay-safe durable lineage. Maintainer memory guided probes involving adjacent negation and historical language only; both blockers are independently reproduced from the current snapshot and runtime paths.

Test Coverage

  • Reviewed the changed parser, Big Bang extraction/build path, complete and partial ledger synthesis, deterministic/lateral QA repair, execution-strategy selection, and lineage event propagation.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest tests/unit/core/test_task_type.py tests/unit/auto/test_seed_qa_contract.py tests/unit/auto/test_ledger_seed.py tests/unit/auto/test_pipeline_lateral.py tests/unit/bigbang/test_seed_generator.py tests/unit/bigbang/test_seed_generator_brownfield.py -q: 466 passed.
  • Ran focused current-source probes demonstrating both blocking failures through the parser and actual _seed_with_seed_qa_feedback repair path.
  • Full-suite post-split evidence remains unavailable.

Merge Recommendation

Request changes. The affected 466-test suite passes and several earlier edge cases are fixed, but current-head probes still demonstrate incorrect durable task routing and parent-lineage persistence for ordinary negative language. The shared contract parser and end-to-end regressions need another semantic-scoping correction before merge.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 7a187f9
request_id: req_1786822891_1916
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Addressed the new negative-language blockers at 05b33cd. The shared parser now rejects prefix governors (instead of, rather than, explicit falsity, no longer) and post-contract rejection/supersession, while preserving positive task_type: document rather than code. The same scoped checks protect parent lineage. Added parser, Big Bang, complete/partial ledger, unrelated QA repair, and durable parent regressions for every reported form. 480 affected tests pass; Ruff/format/diff checks pass. @ouroboros-agent please re-review exact head 05b33cd.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 05b33cdf313c69efc0edc661c4e2d6c1e1891d05
Request ID req_1786823824_1921
Review record 053e21c0-60a2-4ded-9729-bfb2f9f9ec51

What Improved

  • Preserves explicit document task types through Big Bang extraction, complete and partial ledger synthesis, and bounded QA repair for covered positive contracts.
  • Extracts Seed-QA contract logic into focused modules while keeping the module-size gate green.
  • Preserves explicitly recognized parent-Seed lineage when producing a repaired Seed.
  • Adds broad regression coverage for corrections, conjunction-scoped negation, Korean contracts, historical language, and rejected references.

Issue Requirements

Requirement Status
Preserve an explicitly requested Seed task_type through Big Bang extraction Partially met — covered positive inputs work, but brownfield reference context and common non-binding prose can overwrite the extracted type.
Preserve explicit task_type through complete ledger fallback synthesis Partially met — positive contracts work, but the shared parser can promote historical or negated text.
Preserve explicit task_type through partial ledger fallback synthesis Partially met — positive contracts work, but the shared parser can promote historical or negated text.
Preserve explicit task_type through bounded Seed-QA repair Partially met — recognized positive contracts are repaired, but non-binding goal text can incorrectly change the task type.
Prevent document goals from silently defaulting or routing to code Partially met — the reported positive document path is fixed, but inverse false positives can silently route code goals as document work.
Preserve explicit parent-Seed lineage during QA repair Partially met — positive lineage is retained, but historical and negated references can be persisted as false ancestry.
Keep focused modules within repository size budgets Met.
Linked issue requirement N/A — the PR body states there is no related issue.

Prior Findings Status

The prior review’s classification standard is maintained: task type and parent lineage are durable execution contracts, so caller-controlled non-authoritative text must fail closed across extraction, repair, and persistence. Several previously described forms are now covered and no longer serve as blockers, but current-head evidence demonstrates related authority and semantic-scoping failures that still violate that standard.

Blockers

# File:Line Severity Finding
1 src/ouroboros/bigbang/seed_generator.py:1837 BLOCKING The task-type override scans the complete _build_interview_context(state), which includes generated brownfield codebase_context at line 2145, rather than only authoritative user requirements. A brownfield goal of Extend the CLI implementation with codebase context containing a legacy/example line TASK_TYPE: document makes explicit_task_type_from_goal(...) return document, and this assignment overwrites the extractor’s valid code result. Because Seed.task_type selects the runtime execution strategy, repository documentation or source summaries can now silently reroute execution. Restrict override extraction to authoritative user answer/goal surfaces, or carry structured provenance so codebase/reference text cannot become a binding contract, and add a brownfield end-to-end regression.
2 src/ouroboros/core/task_type.py:38 BLOCKING The shared non-binding guards still accept ordinary historical and negative statements as binding contracts. Current-head probes return document for In the previous proposal, task_type: document., It is not true that task_type: document., and We are not using task_type: document. The same guards are reused by inherited_parent_seed_id, which returns seed_bad for In the previous proposal, inherit seed_bad. and It is not true that we inherit seed_bad.; _seed_with_seed_qa_feedback then persists that ID as the new Seed’s durable parent_seed_id. The historical-governor regex requires a later conjunction and the negative patterns cover selected phrases rather than these common forms, so caller-controlled non-binding prose can still misroute execution or fabricate lineage. Make candidate classification fail closed for these scoped historical/negative forms and add parser plus Big Bang, ledger, QA-repair, and durable-lineage regressions.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the changed-boundary suites covering task-type parsing, QA contracts, QA repair, ledger synthesis, Big Bang generation, and brownfield generation: 480 passed.
  • Ran tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green: passed.
  • Ran Ruff against all changed source modules: passed.
  • Direct runtime probes reproduced both findings, including the brownfield context override and persisted false parent lineage.
  • The full 18k-test suite and changed-module mypy checks were not rerun during this review.

Design Notes

Centralizing task-type and QA-repair contracts is directionally sound, but the implementation still infers durable structured contracts from mixed-provenance free text. The parser needs a clearer authoritative-input boundary or reliably fail-closed semantic scoping.

Design / Roadmap Gate

Seed.task_type selects downstream execution strategy, and metadata.parent_seed_id is serialized lineage consumed by runtime and projection paths. The changed Big Bang path currently mixes user requirements with codebase reference material before parsing, while the shared parser still promotes common historical and negative language. Those authority failures propagate through generation, complete/partial fallback, QA repair, persistence, and resume, so the affected boundary is not yet compatible or replay-safe.

Directional Notes

Review focus followed end-to-end contract preservation and replay-safe durable lineage. Maintainer memory was used only to prioritize mixed-clause, fallback, brownfield, and persistence probes; both blockers are independently established by the current source and runtime probes.

Test Coverage

  • Ran the changed-boundary suites covering task-type parsing, QA contracts, QA repair, ledger synthesis, Big Bang generation, and brownfield generation: 480 passed.
  • Ran tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green: passed.
  • Ran Ruff against all changed source modules: passed.
  • Direct runtime probes reproduced both findings, including the brownfield context override and persisted false parent lineage.
  • The full 18k-test suite and changed-module mypy checks were not rerun during this review.

Merge Recommendation

Request changes. The intended positive document workflow, affected test suites, lint, and module-size checks are green, but current HEAD can still derive executable task routing from brownfield reference text and persist lineage from explicitly non-binding language. Both durable contract failures require correction and end-to-end regressions before merge.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 05b33cd
request_id: req_1786823824_1921
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Re-review requested for exact HEAD b879be190.

Closed the remaining data-plane/control-plane collision for persistence and configuration prose. Persist/Store/Expose/Record/Log clauses and database, session-state, CLI-output, logging, and config-field subjects can no longer promote incidental task_type or parent_seed_id values into execution routing or durable lineage.

Added all reviewer probes across the shared resolvers, Big Bang, complete/degraded ledgers, and deterministic/lateral repair. Verification: 721 affected tests passed; Ruff, format, and diff checks pass.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked b879be1902da02e93c04c694d2c010cd78fab2a5
Request ID req_1786880945_2111
Review record 8811713e-d184-4e8e-9384-4e5bc29acd40

What Improved

  • Preserves straightforward explicit document task_type contracts across Big Bang generation, complete/degraded ledger synthesis, and Seed-QA repair.
  • Centralizes task-type and lineage parsing in focused modules, documents all supported task types, and keeps the module-size gate green.
  • Adds broad regression coverage for corrections, negations, retractions, references, ambiguity, Korean wording, and parent lineage.

Issue Requirements

Requirement Status
Preserve an explicitly requested Seed task_type during Big Bang extraction Partially met — direct positive forms are preserved, but descriptive field values can incorrectly override extracted routing.
Preserve explicit task_type during complete and degraded ledger fallback synthesis Partially met — positive contracts survive, but both paths also promote non-binding implementation prose to document.
Preserve explicit task_type during bounded Seed-QA repair Partially met — valid corrections work, but unrelated QA failures can trigger a false task-type repair and reroute execution.
Prevent document goals from silently defaulting to code or becoming blocked at seed_qa_feedback_unmapped Partially met — the reported positive path is repaired, but the broader mapping now accepts unrelated QA feedback when a descriptive task-type mention is misclassified.
Preserve explicit parent-Seed lineage during QA repair Partially met — binding inheritance forms survive, but descriptive parent_seed_id values can fabricate ancestry.
Keep touched grandfathered modules within module-size budgets by extracting focused contracts Met — the repository module-size test passed.
Document all supported Seed task types Met.

Prior Findings Status

Prior concerns are maintained in modified form. The contributor addressed many previously exercised negation, correction, reference, persistence, and configuration phrases, and those focused regressions now pass. Fresh current-head evidence nevertheless shows the same underlying data-plane/control-plane authority boundary remains open for realistic conditional and “handle this field value” requirements.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:281 BLOCKING explicit_task_type_from_goal() still promotes ordinary data-plane requirements into execution authority. Current-head probes return document for both When task_type: document, render Markdown output in the existing Python service. and Handle task_type: document by rendering Markdown while keeping this Python CLI implementation. Complete and degraded ledger synthesis consequently produce document Seeds, and _seed_with_seed_qa_feedback() changes an existing code Seed to document even when QA reports only an unrelated retention-policy issue. Because this value selects the orchestrator strategy, realistic code work is silently routed through ArtifactStrategy. The authority check must reject conditional/descriptive field-value clauses without relying on a finite verb/noun blacklist, with end-to-end Big Bang, ledger, and repair regressions for these forms.
2 src/ouroboros/auto/seed_qa_contract.py:102 BLOCKING inherited_parent_seed_id() has the same authority-boundary gap for lineage. For Handle parent_seed_id: seed_historical during migration while preserving current repair lineage., it returns seed_historical; _seed_with_seed_qa_feedback() then replaces the expected immediate repair parent seed_current with that descriptive field value. This fabricates durable, replay-visible ancestry from ordinary implementation prose. Conditional/descriptive parent_seed_id clauses must fail closed, with deterministic and lateral repair tests proving they cannot overwrite the current Seed lineage.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

| — | — | — | None. |

Test Coverage Notes

  • Ran the affected source and regression suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest ... -q: 1,030 tests passed, including module size, Seed core, task-type parser, Big Bang, brownfield, ledger, interview pipeline, lateral repair, and Seed-QA contract tests.
  • Direct current-head runtime probes confirmed the two blockers through complete/degraded ledger synthesis and durable Seed-QA repair.
  • The full repository suite was not rerun; the PR body also states it was not rerun after the final mechanical split.

Design Notes

Centralizing the parsing contracts is directionally sound, but execution routing and lineage are durable control-plane fields. A growing natural-language blacklist is not a safe authority boundary when ordinary implementation requirements can still set those fields.

Design / Roadmap Gate

Seed.task_type selects the downstream execution strategy, while metadata.parent_seed_id is persisted through repair and later runtime events. The changed resolvers feed Big Bang extraction, complete/degraded fallback synthesis, and deterministic/lateral repair from caller-controlled natural language. Since realistic conditional and implementation prose still becomes control-plane state, execution compatibility and replay-safe lineage are not yet established.

Directional Notes

Review focus followed end-to-end preservation of explicit execution routing and replay-visible ancestry. Prior review history and maintainer memory were used only to select adversarial data-plane/control-plane probes; both blockers are independently reproduced from the current source snapshot.

Test Coverage

  • Ran the affected source and regression suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest ... -q: 1,030 tests passed, including module size, Seed core, task-type parser, Big Bang, brownfield, ledger, interview pipeline, lateral repair, and Seed-QA contract tests.
  • Direct current-head runtime probes confirmed the two blockers through complete/degraded ledger synthesis and durable Seed-QA repair.
  • The full repository suite was not rerun; the PR body also states it was not rerun after the final mechanical split.

Merge Recommendation

Request changes. The intended positive-path preservation, modularization, documentation, and focused test results are strong, but current HEAD still silently misroutes realistic code work and fabricates durable ancestry from non-binding field-value prose.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: b879be1
request_id: req_1786880945_2111
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review the current exact HEAD dfeb612. This round adds regressions and handling for When task_type: document, Handle task_type: document by ..., and Handle parent_seed_id: ... during ...; 723 focused tests plus Ruff/format/diff checks pass.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked dfeb6123d8b4684253bc9d243bbe7bb3ab8eb6a6
Request ID req_1786881969_2114
Review record a8f880bd-b211-4cff-a965-a6da388c3ec3

What Improved

  • Preserves explicit positive document task_type contracts through Big Bang extraction, complete/partial ledger synthesis, and deterministic/lateral Seed-QA repair.
  • Preserves explicitly parsed parent lineage during repair and separates the new parsing/repair contracts into focused modules.
  • Expands the Seed authoring guide to document all supported task types.

Issue Requirements

Requirement Status
Preserve an explicitly requested Seed task_type through Big Bang extraction Partially met — positive contracts are preserved, but non-binding implementation prose can override extraction and misroute the current Seed.
Preserve explicit task_type through complete and partial ledger fallback synthesis Partially met — propagation works, but both paths consume the unsafe resolver result.
Preserve explicit task_type through bounded Seed-QA repair and avoid seed_qa_feedback_unmapped for document goals Partially met — valid document contracts repair correctly, but false-positive contracts can rewrite code Seeds to document routing.
Preserve explicit parent-Seed lineage during QA repair Partially met — valid inheritance is retained, but ordinary result-field prose can fabricate a durable parent.
Keep touched grandfathered modules within module-size budgets by extracting focused modules Met.
Document all supported Seed task types Met.
Linked issue N/A — the PR states no related issue.

Prior Findings Status

The prior review’s semantic authority-boundary concerns remain applicable, but were re-established independently from the current snapshot. Current-head source and runtime probes still show non-binding implementation prose becoming execution routing and durable ancestry; previously addressed negation, correction, reference, and payload examples were not re-raised.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:298 BLOCKING The task-type resolver still promotes conditional implementation prose into the current Seed’s execution contract. A current-head probe with When the user asks for a document, set task_type: document in the generated Seed. returns document; complete ledger synthesis consequently produces a document Seed, and _seed_with_seed_qa_feedback rewrites an existing code Seed to document. This is a realistic code task describing how generated Seeds should behave, not an instruction to route the current task as a document. Because the result overrides model extraction at src/ouroboros/bigbang/seed_generator.py:1844, feeds ledger defaults at src/ouroboros/auto/ledger_seed.py:143, and selects the downstream execution strategy, this silently misroutes caller-controlled code work. The authority boundary needs to reject conditional/data-plane field assignment prose and add end-to-end Big Bang, complete/partial ledger, and repair regressions for it.
2 src/ouroboros/auto/seed_qa_contract.py:128 BLOCKING Parent parsing has the equivalent control-plane injection gap. When parent_seed_id is provided, set parent_seed_id: seed_fake in the result. currently resolves to seed_fake; running deterministic Seed-QA repair then writes that value into durable metadata.parent_seed_id through src/ouroboros/auto/pipeline.py:2963. This sentence describes result-field behavior and does not request inheritance by the current Seed, so the repair fabricates ancestry that later lineage events and replay projections will treat as real. Parent authority must fail closed for conditional implementation/result-field prose, with deterministic and lateral repair regressions proving the mentioned value never reaches durable metadata.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Executed tests/unit/core/test_task_type.py, tests/unit/auto/test_seed_qa_contract.py, tests/unit/auto/test_ledger_seed.py, and tests/unit/bigbang/test_seed_generator.py: 517 passed.
  • Executed the repository module-size gate: 1 passed.
  • Ruff check passed for all changed source modules.
  • Direct runtime probes reproduced both blockers through the parser and deterministic repair boundary; the PR’s authored tests do not cover these conditional implementation/result-field forms.
  • The PR body reports broader affected-suite, formatting, mypy, package, and smoke verification, but the full suite was not rerun after the final module split.

Design Notes

The extraction and repair modules are reasonably separated, but natural-language heuristics are being used as authority for execution routing and persistent lineage. That boundary must distinguish instructions for the current Seed from requirements describing fields handled by the product being built.

Design / Roadmap Gate

Seed.task_type selects tools, prompts, evaluation behavior, and deliverable expectations, while metadata.parent_seed_id becomes serialized ancestry consumed by repair, lineage events, and replay projections. The changed code propagates parsed values consistently, but caller-controlled conditional implementation prose can still cross both authority boundaries. Therefore execution compatibility, persistence truthfulness, and replay safety are not established despite the green focused and mechanical tests.

Directional Notes

Review focus followed end-to-end preservation of explicit execution intent and replay-visible lineage. Prior review history and maintainer memory were used only to target conditional data-plane/control-plane probes; both blockers are independently demonstrated by the current source and runtime results.

Test Coverage

  • Executed tests/unit/core/test_task_type.py, tests/unit/auto/test_seed_qa_contract.py, tests/unit/auto/test_ledger_seed.py, and tests/unit/bigbang/test_seed_generator.py: 517 passed.
  • Executed the repository module-size gate: 1 passed.
  • Ruff check passed for all changed source modules.
  • Direct runtime probes reproduced both blockers through the parser and deterministic repair boundary; the PR’s authored tests do not cover these conditional implementation/result-field forms.
  • The PR body reports broader affected-suite, formatting, mypy, package, and smoke verification, but the full suite was not rerun after the final module split.

Merge Recommendation

Request changes. The intended positive document path, modularization, documentation, and focused verification are strong, but current HEAD still silently misroutes realistic code work and persists fabricated ancestry from non-binding implementation prose.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: dfeb612
request_id: req_1786881969_2114
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD ed3ea89. Conditional governor scope now survives comma-delimited clauses, so generated/result-field behavior cannot set the current Seed task type or lineage. Added exact Big Bang, complete/partial ledger, deterministic/lateral repair regressions; 724 focused tests and Ruff/format/diff pass.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked ed3ea8999891e1109fbe8abc4f5c2450d5dc1571
Request ID req_1786882973_2116
Review record 82dcf565-5797-4e4a-9dea-097e2ce75f04

What Improved

  • Preserves explicit document task_type contracts across Big Bang extraction, complete/partial ledger synthesis, and deterministic/lateral Seed-QA repair for many positive, corrected, negated, quoted, and historical forms.
  • Preserves explicitly requested parent-Seed lineage through QA repair for the covered authoritative forms.
  • Centralizes task-type and QA-repair contract parsing into focused modules, keeps the module-size gate green, expands regression coverage, and documents all supported task types.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type across Big Bang extraction Partially met — covered authoritative document forms survive, but ordinary implementation prose can also become authoritative and misroute execution.
Preserve explicitly requested Seed task_type across complete and partial ledger fallback synthesis Partially met — positive contracts survive, but both paths consume the false-positive resolver; partial synthesis was directly reproduced as document for a code-routing goal.
Preserve explicit task_type during bounded Seed-QA repair and avoid seed_qa_feedback_unmapped blockage Partially met — intended repairs are mapped, but false-positive goal text can trigger an incorrect task-type rewrite and deterministic-repair bypass.
Preserve explicit parent-Seed lineage during QA repair Partially met — binding inheritance forms survive, but non-binding parent_seed_id implementation prose can overwrite the real repair parent.
Keep touched grandfathered modules within module-size budgets through focused modules Met — the repository module-size test passes.
Document supported task types Met — the authoring guide lists all seven supported values and their execution behavior.

Prior Findings Status

The prior authority-boundary concerns remain in modified current-head form. Current HEAD resolves many previously discussed negation, correction, reference, conditional, and artifact-content cases, so those specific forms are not re-raised. Independent current-source probes still show ordinary routing/configuration prose becoming execution task_type and durable parent lineage, so the same conservative classification standard remains applicable.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:312 BLOCKING The artifact/data-plane guard still treats ordinary implementation prose as a binding Seed routing contract. For example, explicit_task_type_from_goal("Route task_type: document requests to artifact workers."), "Map PDFs to task_type: document in the routing table.", and "Read task_type: document from the config." all return document. The first phrase also makes partial_seed_from_evidence(...) synthesize a document Seed, even though the goal is code work implementing routing. Big Bang generation, both ledger fallbacks, and QA repair all consume this resolver, so realistic schema/configuration requirements can silently select ArtifactStrategy instead of CodeStrategy. Require affirmative Seed-level routing semantics rather than relying on an incomplete blacklist, and add end-to-end regressions for these ordinary data-plane forms.
2 src/ouroboros/auto/seed_qa_contract.py:128 BLOCKING Parent-lineage extraction has the same remaining authority leak. inherited_parent_seed_id() returns seed_demo for ordinary implementation goals such as Route records with parent_seed_id: seed_demo to replay., Treat parent_seed_id: seed_demo as an opaque string., and Read parent_seed_id: seed_demo from the config. A focused runtime probe then showed _seed_with_seed_qa_feedback() replacing the actual current parent seed_current with seed_demo. This fabricates durable ancestry during normal or lateral repair and makes replay/projection state untruthful. Field-value prose must remain non-binding unless the goal explicitly requests Seed inheritance, with durable repair regressions covering these forms.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Independently ran the changed and affected unit suites, including module-size, Seed, task-type, Big Bang, requirement-distillation, auto pipeline, ledger, brownfield, and QA-contract tests: 1033 passed in 20.10s.
  • Independently ran focused runtime probes through explicit_task_type_from_goal, partial ledger synthesis, inherited_parent_seed_id, and deterministic QA repair; these reproduced both blocking failures.
  • The full 18k-test suite was not rerun after the PR’s mechanical module split, but the blockers are direct current-source runtime failures rather than inferred coverage concerns.

Design Notes

Centralizing contract parsing is directionally useful, but blacklist-based natural-language authority detection remains unsafe for fields that control execution routing and persisted ancestry. These values need a narrower affirmative authority grammar or an explicitly structured source of truth.

Design / Roadmap Gate

Seed.task_type selects tools, prompts, evaluation behavior, and deliverable expectations, while metadata.parent_seed_id is serialized ancestry used by repair and later runtime projections. The changed resolvers feed Big Bang extraction, complete/degraded fallback synthesis, and deterministic/lateral repair from caller-controlled natural language. Since ordinary routing and configuration requirements still cross both authority boundaries, execution compatibility, persistence truthfulness, and replay safety are not established despite the green focused suites.

Directional Notes

Review focus followed end-to-end preservation of explicit execution intent and replay-visible lineage. Prior review history and maintainer memory only guided hostile data-plane/control-plane probes; both blockers are independently demonstrated by the current source snapshot and runtime results.

Test Coverage

  • Independently ran the changed and affected unit suites, including module-size, Seed, task-type, Big Bang, requirement-distillation, auto pipeline, ledger, brownfield, and QA-contract tests: 1033 passed in 20.10s.
  • Independently ran focused runtime probes through explicit_task_type_from_goal, partial ledger synthesis, inherited_parent_seed_id, and deterministic QA repair; these reproduced both blocking failures.
  • The full 18k-test suite was not rerun after the PR’s mechanical module split, but the blockers are direct current-source runtime failures rather than inferred coverage concerns.

Merge Recommendation

Request changes. The intended document path, modularization, documentation, and affected test results are strong, but current HEAD still silently reroutes realistic code work and persists fabricated ancestry from non-binding implementation prose.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: ed3ea89
request_id: req_1786882973_2116
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD 4ecd611. Field-shaped task type and parent values now require affirmative current-Seed authority; ordinary Route/Map/Read/Treat routing/config prose remains data-plane across Big Bang, complete/partial ledger, and deterministic/lateral repair. Existing positive Set/Use/Inherit/correction forms remain covered. 727 focused tests plus Ruff/format/diff pass.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 4ecd611dd4c73d1a7105cf6b0091575190956cb1
Request ID req_1786883912_2119-retry-1
Review record 020805a1-7ba6-4c44-8e25-64b0ec8c7c4a

What Improved

  • Preserves affirmative document task_type contracts across Big Bang extraction, complete/degraded ledger synthesis, and deterministic/lateral Seed-QA repair.
  • Preserves explicitly requested parent-Seed lineage during QA repair.
  • Centralizes semantic parsing and QA-repair contracts into focused modules while keeping the module-size gate green.
  • Documents all currently supported execution task types.

Issue Requirements

Requirement Status
Preserve explicit document task_type through Big Bang extraction Partially met — affirmative contracts are preserved, but a plainly negated contract is treated as affirmative and overrides extracted/default routing.
Preserve explicit document task_type through complete ledger fallback synthesis Partially met — positive paths work, but the reproduced negative requirement synthesizes a document Seed.
Preserve explicit document task_type through degraded/partial ledger synthesis Partially met — positive paths work, but the same negative requirement synthesizes a document Seed.
Preserve explicit task type during bounded deterministic and lateral Seed-QA repair Partially met — affirmative repair works, but the shared parser can restore a task type that the goal says is not required.
Preserve explicit parent-Seed lineage during QA repair Partially met — positive inheritance is preserved, but negated “not required” inheritance fabricates durable parent lineage.
Prevent document goals from silently defaulting to code and blocking resumable auto sessions Met for the intended affirmative document contracts covered by the PR tests.
Keep touched grandfathered modules within module-size budgets Met — the repository module-size test passed.
Document supported task types Met.
Linked issue requirement N/A — the PR body states there is no related issue.

Prior Findings Status

Prior concerns are maintained in narrowed, current-head form. The contributor has addressed many previously identified question, quotation, historical, conditional, correction, conjunction, cancellation, and data-plane wording cases. Fresh source probes nevertheless show that ordinary “is not required” language still crosses both the execution-routing and durable-lineage authority boundaries; no prior finding is assumed without this current snapshot evidence.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:133 BLOCKING Plain negative requirement wording still becomes an affirmative execution-routing contract. explicit_task_type_from_goal("Build a Python CLI; task_type: document is not required for this Seed.") returns document; both synthesize_seed_from_ledger and partial_seed_from_evidence consequently emit document Seeds instead of retaining the default code route. The rejection grammar covers “is no longer required” and “does not need to be,” but not the ordinary “is not required” form. Because the same parser overrides model extraction in Big Bang and drives Seed-QA repair, this can silently select artifact tools, prompts, evaluation behavior, and deliverables contrary to user intent. Reject this negative form and add parser plus complete/degraded ledger and repair regressions.
2 src/ouroboros/auto/seed_qa_contract.py:166 BLOCKING The parent-lineage parser has the same fail-open negative tail. inherited_parent_seed_id returns seed_external for “Inheriting from seed_external is not required,” and _seed_with_seed_qa_feedback then persists seed_external as metadata.parent_seed_id instead of the current Seed ID. This fabricates durable ancestry from an explicitly rejected requirement, affecting later lineage events and replay projections. Reject plain “not required” inheritance clauses and cover both deterministic and lateral repair paths.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the broader affected suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run pytest ... -q: 1,010 passed, including module-size, Seed, task-type, Big Bang, ledger, interview, lateral, and QA-contract tests.
  • Ran focused current-source probes demonstrating that complete and degraded ledger synthesis produce task_type=document from “task_type: document is not required,” and deterministic QA repair persists parent_seed_id=seed_external from “inherit seed_external is not required.”
  • Existing negative-language tests cover nearby forms such as “is no longer required,” “does not need to be,” and “there is no requirement,” but omit the reproduced plain “is not required” form.
  • The PR body reports that the full 18k suite was not rerun after the final mechanical module split.

Design Notes

Centralizing task-type and lineage interpretation is directionally sound, and the affirmative contracts now propagate consistently. However, these regex resolvers are authority-boundary parsers: a false positive is more dangerous than a missed inference because it silently rewrites execution strategy or persisted ancestry.

Design / Roadmap Gate

Seed.task_type selects downstream tools, prompts, evaluation behavior, and expected deliverables. metadata.parent_seed_id is durable ancestry consumed by repair, events, and replay-visible projections. The changed parsers feed Big Bang extraction, complete/degraded fallback synthesis, and deterministic/lateral repair from caller-controlled prose. Since a normal negative requirement can still become either control value, execution compatibility and persistence truthfulness are not yet safe. The modularization and supported-value alignment fit the architecture, but the authority gate must fail closed consistently.

Directional Notes

Review focus followed the maintainer’s contract-stability posture and the advisory memory emphasis on preserving explicit execution intent and parent lineage end to end. Prior review history guided inspection toward contrastive and negative natural-language forms only; both blockers are independently reproduced from the current source snapshot.

Test Coverage

  • Ran the broader affected suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run pytest ... -q: 1,010 passed, including module-size, Seed, task-type, Big Bang, ledger, interview, lateral, and QA-contract tests.
  • Ran focused current-source probes demonstrating that complete and degraded ledger synthesis produce task_type=document from “task_type: document is not required,” and deterministic QA repair persists parent_seed_id=seed_external from “inherit seed_external is not required.”
  • Existing negative-language tests cover nearby forms such as “is no longer required,” “does not need to be,” and “there is no requirement,” but omit the reproduced plain “is not required” form.
  • The PR body reports that the full 18k suite was not rerun after the final mechanical module split.

Merge Recommendation

Request changes. The positive document-routing fix, modularization, documentation, and 1,010-test affected suite are strong, but current HEAD still silently reroutes code work and fabricates durable parent ancestry from ordinary “is not required” language.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 4ecd611
request_id: req_1786883912_2119-retry-1
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD d577e55. Plain “is not required” tails now fail closed for both task_type routing and parent lineage. Added parser, complete/partial ledger, deterministic repair, and lateral repair regressions. Related 297 passed; module-size 33 passed; Ruff/format/diff clean.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked d577e55c0546c39b4daa586b82f5925a82d95b24
Request ID req_1786884884_2123-retry-1-retry-2
Review record 7b68f43b-bfda-4198-97a5-d7d6bbe2b9d5

What Improved

  • Adds explicit TASK_TYPE extraction and validation for all supported execution strategies.
  • Preserves positive document task-type contracts through Big Bang generation, complete/degraded ledger synthesis, and deterministic/lateral Seed-QA repair.
  • Preserves explicitly inherited parent lineage during repair and extracts the shared contract logic into focused modules.
  • Updates Seed authoring documentation and adds extensive positive, correction, negation, reference, and artifact-prose regressions.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type through Big Bang extraction Partially met — positive document contracts are preserved, but ordinary negative forms can be interpreted as positive document authority.
Preserve explicit task_type through complete and degraded ledger fallback synthesis Partially met — positive paths work, but both ledger paths reproduce the negative-contract misrouting.
Preserve explicit task_type during bounded Seed-QA repair Partially met — positive deterministic and lateral repair paths work, but the shared parser can manufacture a document repair from a negative contract.
Preserve explicit parent-Seed lineage during QA repair Partially met — positive inheritance survives, but common negative inheritance language can become durable parent lineage.
Avoid seed_qa_feedback_unmapped for the intended document repair Met for the covered positive document reproduction.
Keep touched modules within module-size budgets Met — the repository module-size gate passed.
Document all supported Seed task types Met in docs/guides/seed-authoring.md.

Prior Findings Status

The prior exact "is not required" task-type and lineage examples are addressed and covered by current tests. Those specific concerns are withdrawn. The authority-boundary concern remains modified rather than repeated: fresh current-source evidence shows equivalent contracted and ordinary negative forms still cross both routing and durable-lineage boundaries.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:133 BLOCKING The task-type authority guard still accepts common negative contracts not covered by _POST_MATCH_REJECTION_PATTERN. Current-source probes show explicit_task_type_from_goal("task_type: document isn't required for this Seed."), "task_type: document is unnecessary...", and "task_type: document need not be used." all return document. Because synthesize_seed_from_ledger() and partial_seed_from_evidence() directly use this result, both complete and degraded Seeds silently route these explicitly negative requests through the document/artifact strategy instead of retaining the default code type. Add fail-closed handling and parser, complete/partial ledger, Big Bang, and deterministic/lateral repair regressions for these ordinary negative forms.
2 src/ouroboros/auto/seed_qa_contract.py:166 BLOCKING Parent-lineage extraction has the equivalent fail-open gap. Current-source probes show "Inheriting from seed_bad isn't required for this Seed.", "Inheriting seed_bad is unnecessary...", and "Inherit seed_bad need not be used." all return seed_bad. Passing the first form through _seed_with_seed_qa_feedback() persists metadata.parent_seed_id == "seed_bad" rather than the actual repaired Seed ID, fabricating durable ancestry from an explicitly rejected relationship. The parent resolver must reject these forms, with deterministic and lateral repair regressions proving that the rejected ID never reaches persisted metadata.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran 729 affected task-type, lineage, ledger, pipeline, Big Bang, and requirement-distillation tests: all passed.
  • Ran 208 additional interview, brownfield, and module-size tests: all passed.
  • Ruff check passed and all 13 changed Python files passed formatting checks.
  • Focused runtime probes independently reproduced both blockers through complete/degraded ledger synthesis and deterministic Seed-QA repair.
  • The full 18k test suite was not rerun after the contributor’s mechanical module split, matching the limitation documented in the PR body.

Design Notes

Centralizing task-type and lineage authority checks is directionally sound, and the supported-value set aligns with the Seed schema and execution-strategy registry. However, both resolvers remain security-like trust boundaries over caller-controlled prose and must fail closed consistently before their results affect execution routing or persisted ancestry.

Design / Roadmap Gate

Seed.task_type selects downstream tools, prompts, evaluation behavior, and expected deliverables. metadata.parent_seed_id is serialized ancestry consumed by repair and replay-visible runtime paths. The changed shared resolvers feed Big Bang extraction, complete/degraded fallback synthesis, and deterministic/lateral repair. Since common explicit negative contracts can still become either control value, execution compatibility and durable lineage truthfulness are not yet established despite green authored tests and mechanical checks.

Directional Notes

Review focus followed end-to-end preservation of explicit execution intent and replay-visible parent lineage. Prior reviews and advisory maintainer memory guided inspection toward adjacent negative language only; both blockers are independently demonstrated by the current source snapshot and runtime probes.

Test Coverage

  • Ran 729 affected task-type, lineage, ledger, pipeline, Big Bang, and requirement-distillation tests: all passed.
  • Ran 208 additional interview, brownfield, and module-size tests: all passed.
  • Ruff check passed and all 13 changed Python files passed formatting checks.
  • Focused runtime probes independently reproduced both blockers through complete/degraded ledger synthesis and deterministic Seed-QA repair.
  • The full 18k test suite was not rerun after the contributor’s mechanical module split, matching the limitation documented in the PR body.

Merge Recommendation

Request changes. The intended positive document-routing fix, modularization, documentation, and affected test suite are strong, but current HEAD still silently misroutes ordinary negative task-type requests and persists explicitly rejected parent ancestry.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: d577e55
request_id: req_1786884884_2123-retry-1-retry-2
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD d96febf. Added fail-closed handling for “isn\x27t required”, “is unnecessary”, and “need not be used” tails across task_type and parent lineage. Added parser, Big Bang, complete/partial ledger, deterministic QA, and lateral repair regressions. 724 related tests, module-size 33, Ruff/format/diff all pass.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked d96febf680cd1aa879064c9182e631c60ed807e2
Request ID req_1786885749_2126-retry-1
Review record 64c2ed7f-1748-4656-a57f-abb468acc4f1

What Improved

  • Preserves clear, unconditional document task_type requests through Big Bang generation, complete/degraded ledger synthesis, and Seed-QA repair.
  • Preserves clear, unconditional parent-Seed lineage through deterministic and lateral QA repair.
  • Centralizes contract parsing and QA mapping in focused modules, documents all supported task types, and keeps module-size checks green.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type through Big Bang extraction Partially met — unconditional contracts are preserved, but unresolved trailing conditions are incorrectly promoted to binding intent.
Preserve explicitly requested Seed task_type through complete and degraded ledger fallback synthesis Partially met — positive paths work, but conditional prose can silently produce the wrong execution type.
Preserve explicitly requested Seed task_type through bounded Seed-QA repair Partially met — valid corrections work, but conditional contracts can incorrectly rewrite the Seed.
Prevent document goals from silently defaulting or misrouting execution Partially met — the original unconditional document case is fixed, but conditional document language can now misroute execution in the opposite direction.
Preserve explicit parent-Seed lineage during QA repair Partially met — unconditional lineage survives, but unresolved conditional lineage is persisted as authoritative ancestry.
Keep grandfathered module-size budgets green through focused modules Met — the repository module-size gate passes.
Document the complete supported task_type set Met.
Linked issue requirement N/A — the PR declares no related issue.

Prior Findings Status

The earlier broad concern about natural-language authority crossing into execution routing and durable lineage remains, but its evidence is modified. The previously reported ordinary negative forms such as is not required now fail closed in current-head probes and are withdrawn. The remaining blockers are independently reproduced trailing-conditional forms that the current tests cover only when the condition precedes the contract.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:188 BLOCKING The tail-ambiguity guard recognizes if/unless/whether only when they immediately begin the suffix, so common conditional contracts such as The task type is document only if requested are treated as binding. Current-head probes show both synthesize_seed_from_ledger and partial_seed_from_evidence producing task_type="document", and deterministic/lateral QA repair also rewriting a code Seed to document. Because task_type selects the execution strategy, this can silently reroute work whose condition was never established. Reject trailing forms such as only if, only when, and equivalent conditional qualifiers, with regressions across Big Bang extraction, complete/partial fallback synthesis, and both repair paths.
2 src/ouroboros/auto/seed_qa_contract.py:167 BLOCKING Parent-lineage extraction has the same trailing-conditional hole: Inherit seed_old only if requested and Use seed_old as the parent seed only when resuming an interrupted run both resolve to seed_old. Current-head probes show deterministic and lateral QA repair persisting that ID as metadata.parent_seed_id, even though the condition is unresolved. This fabricates durable, replay-visible ancestry. The inheritance authority check must fail closed for trailing conditional qualifiers, with parser and durable repair regressions.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran 724 affected unit tests covering task-type parsing, lineage parsing, ledger synthesis, Big Bang generation, and Seed-QA repair; all passed.
  • Ran the real-repository module-size gate; 1 passed.
  • Ran Ruff over the changed source and principal affected tests; clean.
  • Added direct current-head runtime probes demonstrating the two conditional-tail failures through complete/degraded ledger synthesis and deterministic/lateral repair.
  • The full post-split test suite was not rerun in this review; the PR body also states the complete 18k suite was not rerun after the mechanical module split.

Design Notes

The shared parsing module is a sensible architectural direction, and its reuse across extraction, fallback, and repair reduces drift. However, centralization also amplifies authority-classification errors across every execution and persistence path.

Design / Roadmap Gate

Clear positive contracts now propagate consistently and module boundaries remain healthy. Compatibility and replay safety are not yet established because unresolved trailing conditions cross both affected authority boundaries: one changes execution strategy, and the other writes durable ancestry. These paths must fail closed regardless of whether the conditional governor appears before or after the matched contract.

Directional Notes

Review focus followed contract stabilization: task_type controls orchestration, while parent_seed_id is durable lineage. Prior reviews and maintainer memory were used only to target conditional-language probes; both findings are independently established from the current source and runtime results.

Test Coverage

  • Ran 724 affected unit tests covering task-type parsing, lineage parsing, ledger synthesis, Big Bang generation, and Seed-QA repair; all passed.
  • Ran the real-repository module-size gate; 1 passed.
  • Ran Ruff over the changed source and principal affected tests; clean.
  • Added direct current-head runtime probes demonstrating the two conditional-tail failures through complete/degraded ledger synthesis and deterministic/lateral repair.
  • The full post-split test suite was not rerun in this review; the PR body also states the complete 18k suite was not rerun after the mechanical module split.

Merge Recommendation

Request changes. The original document-routing fix, modularization, documentation, and focused test results are strong, but current HEAD still converts ordinary unresolved conditional language into executable routing and persisted parent lineage.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: d96febf
request_id: req_1786885749_2126-retry-1
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD 223f9d6. Trailing unresolved conditionals now fail closed, including only if/when/whenever, unless/whether, provided that, and as long as. Added task_type and parent-lineage regressions across parser, Big Bang, complete/partial ledger, deterministic QA, and lateral repair. 730 related tests, module-size 33, Ruff/format/diff pass.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked 223f9d661fbb61a2d797822618cbd4aafefc3143
Request ID req_1786886523_2129
Review record 249d2a1a-c6cc-4d21-9b30-a4515bf980e3

What Improved

  • Explicit supported task types are centralized and documented consistently.
  • Clear document task-type contracts now propagate through Big Bang extraction, complete/degraded ledger synthesis, and deterministic/lateral QA repair.
  • QA repair preserves clearly expressed parent-Seed lineage instead of always replacing it with the immediately repaired Seed.
  • The extraction and QA contract logic was split into focused modules, and the module-size gate remains green.
  • Existing regressions cover extensive question, correction, negation, quotation, reference, and retraction forms.

Issue Requirements

Requirement Status
Preserve explicit Seed task_type across Big Bang extraction Partially met — covered canonical contracts work, but direct implementation-worded contracts can still be discarded.
Preserve explicit Seed task_type across complete and degraded ledger fallback synthesis Partially met — canonical contracts propagate, but the reproduced positive contract silently defaults both paths to code.
Preserve explicit Seed task_type through bounded deterministic and lateral QA repair Partially met — covered forms are repaired, but positive implementation wording is lost and unresolved conditional wording is treated as binding.
Prevent document goals from silently defaulting to code and misrouting execution Not met — Implement the requested document with task_type: document. still produces code in both ledger paths and repair.
Avoid resumable auto sessions becoming blocked at seed_qa_feedback_unmapped for explicit task-type corrections Partially met — the mapped repair exists for recognized contracts, but recognition remains incomplete.
Preserve explicit parent-Seed lineage during QA repair Partially met — valid covered contracts survive, but unresolved or data-plane inheritance prose can fabricate durable ancestry.
Keep grandfathered module-size budgets green Met — the repository module-size test passed.
Document all supported task-type values Met.
Linked issue requirement N/A — the PR states there is no related issue.

Prior Findings Status

Prior negation, quotation, reference/example, correction, and retraction concerns appear addressed by the current source and green affected suite. The prior unresolved-conditional concern is maintained with fresh current-snapshot evidence. A positive-contract false negative and a separate implementation-prose lineage false positive were also independently found in the current shared resolvers.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:235 BLOCKING The artifact-governor allowlist rejects an unambiguously binding task-type contract when an implementation verb precedes it. For example, Implement the requested document with task_type: document. returns None, so both complete and partial ledger synthesis produce task_type="code" and QA repair also leaves the Seed as code. This recreates the silent execution misrouting the PR intends to fix. The parser needs to distinguish implementation-prose operands from direct current-Seed routing statements rather than rejecting every implement ... task_type clause except the narrow Implement this as ... special case, with end-to-end regressions for complete/partial fallback and repair.
2 src/ouroboros/core/task_type.py:188 BLOCKING The shared ambiguity guard recognizes only a narrow set of trailing conditionals. Unresolved forms such as Use task_type: document pending approval and Inherit seed_bad subject to approval are accepted as authoritative; runtime probes show the former routes complete/partial Seeds and QA repair to document, while the latter is persisted as durable parent_seed_id during repair. Equivalent forms using after approval, once approved, upon approval, assuming ..., and contingent on ... also cross the boundary. Caller-controlled unresolved conditions must fail closed for both task routing and lineage, with regressions through every synthesis and repair path.
3 src/ouroboros/auto/seed_qa_contract.py:147 BLOCKING Inheritance verb matches are not required to demonstrate current-Seed authority, and the shared artifact guard does not cover ordinary implementation clauses containing inherit/inheriting. Consequently, code-task goals such as Implement support for inheriting from seed_demo., Add support for inheriting from seed_demo., and Test inheriting from seed_demo. all resolve to seed_demo; _seed_with_seed_qa_feedback then serializes that fabricated ancestry into metadata.parent_seed_id. Apply the data-plane/control-plane authority gate to inheritance syntax as well as bare parent_seed_id fields, and add durable deterministic/lateral repair regressions.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the expanded affected suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest ... -q: 1,053 passed, including module size, Seed/core parser, Big Bang extraction, requirement distillation, complete/degraded ledger synthesis, interview pipeline, and deterministic/lateral QA repair tests.
  • Ran Ruff against all changed Python files: clean.
  • Ran direct runtime probes through the shared parsers, complete and partial ledger synthesis, and _seed_with_seed_qa_feedback; these reproduced all three blocking findings.
  • The PR reports that the full 18k suite was not rerun after the mechanical module split; targeted coverage is broad, but the authored tests do not cover the reproduced authority forms.

Design Notes

Centralizing task-type and lineage authority parsing is directionally sound, but the current regex authority model remains asymmetric: some direct contracts are treated as artifact content while some ordinary implementation or conditional prose becomes control-plane state.

Design / Roadmap Gate

Seed.task_type selects downstream tools, prompts, evaluation behavior, and expected deliverables. metadata.parent_seed_id is durable ancestry carried into later repair and replay-visible state. Because the changed shared resolvers feed Big Bang extraction, complete/degraded fallback synthesis, and deterministic/lateral QA repair, they must preserve clear positive contracts while failing closed for unresolved or artifact-level prose. Current behavior violates both sides of that boundary, so execution compatibility and persistence truthfulness are not yet established.

Directional Notes

Review focus followed end-to-end preservation of explicit execution routing and replay-visible lineage. Prior review history and maintainer memory were used only to select hostile positive, conditional, and data-plane probes; every blocker above is independently demonstrated by the current source snapshot and runtime output.

Test Coverage

  • Ran the expanded affected suite with SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run python -m pytest ... -q: 1,053 passed, including module size, Seed/core parser, Big Bang extraction, requirement distillation, complete/degraded ledger synthesis, interview pipeline, and deterministic/lateral QA repair tests.
  • Ran Ruff against all changed Python files: clean.
  • Ran direct runtime probes through the shared parsers, complete and partial ledger synthesis, and _seed_with_seed_qa_feedback; these reproduced all three blocking findings.
  • The PR reports that the full 18k suite was not rerun after the mechanical module split; targeted coverage is broad, but the authored tests do not cover the reproduced authority forms.

Merge Recommendation

Request changes. The modularization, documentation, canonical document-routing path, affected suite, and lint results are strong, but current runtime probes still demonstrate silent code fallback, conditional execution routing, and fabricated durable parent ancestry on realistic caller-controlled goals.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: 223f9d6
request_id: req_1786886523_2129
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD f6680a4. Current-Seed implementation wording such as Implement the requested document with task_type: document now remains authoritative; approval-dependent tails (pending/after/once/upon, assuming, contingent on, subject to) fail closed for both routing and lineage; and implementation prose about inheriting no longer fabricates parent lineage. Complete/partial synthesis plus deterministic/lateral QA repair regressions are covered. Related contract and module-size suite: 357 passed; Ruff/format/diff clean.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked f6680a417fad358bfe1ad25cb096a5145a2100be
Request ID req_1786887448_2132
Review record d084fc77-8789-4b32-9e40-99d24667ae05

What Improved

  • Preserves clear, affirmative document and other supported task-type contracts across Big Bang extraction, complete/degraded ledger synthesis, and Seed-QA repair.
  • Preserves explicitly affirmed parent-Seed lineage during deterministic and lateral QA repair.
  • Centralizes task-type and repair-contract parsing in focused modules, expands supported-value documentation, and adds extensive regression coverage.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type during Big Bang extraction Partially met — affirmative contracts work, but ordinary trailing retractions are still treated as binding
Preserve explicitly requested Seed task_type during complete and degraded ledger fallback synthesis Partially met — both paths propagate clear contracts but also propagate withdrawn document contracts
Preserve explicit task_type during bounded Seed-QA repair Partially met — clear mismatches are repaired, but withdrawn contracts can incorrectly overwrite the Seed type
Preserve explicit parent-Seed lineage during QA repair Partially met — affirmative lineage survives, but explicitly withdrawn lineage can be persisted
Keep the refactor within grandfathered module-size constraints Met — the new contract logic is split into focused modules and the reported module-size gate is green

Prior Findings Status

Prior contract-authority concerns are maintained in narrowed form. Current HEAD resolves many previously exercised question, correction, conditional, historical, quoted, artifact-content, and negation cases, but fresh evidence shows that ordinary subjectless trailing retractions still cross both the execution-routing and durable-lineage boundaries.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:495 BLOCKING Post-match rejection parsing does not recognize ordinary subjectless retractions such as task_type: document, but not required, but no longer needed, or but unnecessary. A direct runtime probe returns document for each form. Because explicit_task_type_from_goal() feeds Big Bang overrides and both ledger synthesis paths (src/ouroboros/auto/ledger_seed.py:143 and src/ouroboros/auto/ledger_seed.py:366), these explicitly withdrawn contracts silently reroute execution away from the default code path. Extend the post-match rejection grammar and add end-to-end complete/partial ledger and Big Bang regressions for these forms.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

| — | — | — | None. |

Test Coverage Notes

  • Ran 526 focused tests covering task-type parsing, parent-lineage parsing, ledger synthesis, Big Bang generation, and Seed-QA contracts; all passed.
  • Ran Ruff checking and formatting verification on the principal changed source and test files; all checks passed.
  • Direct runtime probes independently reproduced the two uncovered negative-retraction failures above.
  • The PR reports broader affected-suite, packaging, smoke, and resume validation, but the full 18k suite was not rerun after the final mechanical split.

Design Notes

Centralizing the shared semantic contract is directionally sound, and using it consistently across extraction, fallback, and repair reduces contract drift. However, regex-based authority detection remains unsafe until common retraction language fails closed at both control boundaries.

Design / Roadmap Gate

Seed.task_type controls downstream tools, prompts, evaluation, and expected deliverables, while metadata.parent_seed_id is durable ancestry visible to repair and replay paths. The changed shared parser directly governs Big Bang extraction, complete/degraded synthesis, and deterministic/lateral repair. Positive contracts now propagate well, but withdrawn contracts still become executable routing and persisted state, so compatibility and persistence truthfulness are not yet safe.

Directional Notes

Review focus followed end-to-end preservation of explicit execution intent and replay-visible parent lineage. Prior reviews and maintainer memory were used only to target hostile negative-language probes; both blockers are independently established from the current snapshot and runtime output.

Test Coverage

  • Ran 526 focused tests covering task-type parsing, parent-lineage parsing, ledger synthesis, Big Bang generation, and Seed-QA contracts; all passed.
  • Ran Ruff checking and formatting verification on the principal changed source and test files; all checks passed.
  • Direct runtime probes independently reproduced the two uncovered negative-retraction failures above.
  • The PR reports broader affected-suite, packaging, smoke, and resume validation, but the full 18k suite was not rerun after the final mechanical split.

Merge Recommendation

Request changes. The affirmative document-routing fix, modularization, documentation, and focused suite are strong, but current HEAD still converts common trailing retractions into execution routing and durable parent ancestry.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: f6680a4
request_id: req_1786887448_2132
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD e8997c0. Subjectless trailing retractions (but not required, but no longer needed, but unnecessary) now withdraw both task routing and parent lineage. Added parser, Big Bang, complete/partial ledger, deterministic QA, and lateral QA regressions. Focused affected suite 756 passed; module-size 33 passed; Ruff/format/diff clean.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked e8997c049e80fd94e7a7701011cc47fd4383fc92
Request ID req_1786887974_2134
Review record 9a0023c7-2610-4007-8572-5cf457625d58

What Improved

  • Preserves clear affirmative document task_type contracts across Big Bang extraction, complete/degraded ledger synthesis, and Seed-QA repair.
  • Centralizes task-type and lineage contract parsing into focused modules while keeping module-size, lint, and formatting checks green.
  • Expands the Seed authoring guide to document all supported task types.

Issue Requirements

Requirement Status
Preserve explicitly requested document task_type through Big Bang extraction Partially met — clear affirmative contracts work, but unresolved or later-retracted contracts can still become authoritative
Preserve explicit task_type through complete and degraded ledger fallback synthesis Partially met — positive cases work, but conditional and alternative clauses are silently routed as document
Preserve explicit task_type through bounded Seed-QA repair Partially met — positive cases repair correctly, but unresolved and retracted requests also overwrite routing
Prevent document goals from silently defaulting to code Partially met — explicit positive document goals are fixed, but fail-closed parsing remains incomplete
Preserve explicit parent-Seed lineage during QA repair Partially met — affirmative lineage survives, but conditional and retracted lineage can be persisted as durable ancestry
Keep grandfathered module-size budgets green through focused modules Met
Document all supported Seed task types Met
Avoid new per-round calls, waits, retries, or EventStore writes Met

Prior Findings Status

Prior concerns remain in modified form. The contributor addressed many previously identified negative, conditional, reference, and retraction phrasings, but fresh current-snapshot evidence shows punctuation-separated ambiguity and common standalone retractions still cross the same execution-routing and durable-lineage boundaries. No inline human review comments were present.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:287 BLOCKING _candidate_segment() ends the contract segment at commas and conjunctions before _has_contract_local_ambiguity() examines the tail. Consequently unresolved contracts such as Use task_type: document, pending approval., Use task_type: document, unless the user asks for code., and Use task_type: document, but maybe code. are accepted as binding. The same defect accepts Inherit seed_old, pending approval. and similar conditional lineage. Runtime probes confirmed that complete and partial ledger synthesis both produce task_type=document, deterministic QA repair changes a code Seed to document, and QA repair persists parent_seed_id=seed_old. These execution-routing and durable-lineage fields must fail closed until the condition or alternative is resolved.
2 src/ouroboros/core/task_type.py:161 BLOCKING The standalone-retraction grammar recognizes only selected phrasings such as forget that, I take that back, and cancellation of a named “requirement/contract/value”; ordinary retractions including Forget it., I take it back., and Cancel it. are not associated with the nearest preceding contract. Current runtime probes show Use task_type: document. Forget it. still repairs the Seed to document, while Inherit seed_old. I take it back. still persists seed_old as durable ancestry. Because _resolve_authoritative_matches() is explicitly responsible for later cancellation, these common unambiguous retractions must invalidate the preceding routing or lineage contract.

Follow-up Findings

None.

Non-blocking Suggestions

None.

Test Coverage Notes

  • Ran the seven affected parser, Big Bang, ledger, and QA-repair suites: 782 passed.
  • Ran tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green: 1 passed.
  • Ruff lint and format checks passed for all changed Python files.
  • Added direct runtime probes covering punctuation-separated conditional/alternative clauses and standalone pronoun retractions; these exposed both blocking failures.
  • The full 18k test suite was not rerun after the PR’s mechanical module split, consistent with the PR body.

Design Notes

Centralizing the shared contract resolver is directionally sound, but it makes parser correctness a cross-cutting authority boundary. Clause segmentation currently discards semantic qualifiers before the fail-closed checks can evaluate them.

Design / Roadmap Gate

The changed resolver feeds Big Bang extraction, complete/degraded ledger synthesis, and deterministic/lateral QA repair. Clear positive contracts propagate consistently, but compatibility and replay safety are not established while unresolved qualifiers can select execution strategy and ordinary retractions can persist withdrawn intent. Both authority boundaries must fail closed before merge.

Directional Notes

Review focus followed end-to-end contract stabilization: task_type controls orchestration and deliverable expectations, while parent_seed_id is replay-visible durable lineage. Prior reviews and maintainer memory only directed the hostile-language probes; both blockers are independently demonstrated by the current source and runtime results.

Test Coverage

  • Ran the seven affected parser, Big Bang, ledger, and QA-repair suites: 782 passed.
  • Ran tests/unit/scripts/test_check_module_size.py::test_real_repository_is_green: 1 passed.
  • Ruff lint and format checks passed for all changed Python files.
  • Added direct runtime probes covering punctuation-separated conditional/alternative clauses and standalone pronoun retractions; these exposed both blocking failures.
  • The full 18k test suite was not rerun after the PR’s mechanical module split, consistent with the PR body.

Merge Recommendation

Request changes. The affirmative document-routing fix, modularization, documentation, and focused test results are strong, but current behavior still turns unresolved or withdrawn user language into executable routing and durable parent lineage.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: e8997c0
request_id: req_1786887974_2134
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

@Q00

Q00 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

@ouroboros-agent please re-review exact HEAD c09fdcf. Contract-local ambiguity now scans through the hard sentence boundary, so comma-separated pending/unless and but maybe tails fail closed for both task routing and lineage. Standalone Forget it, I take it back, and Cancel it retract the nearest contract. Parser, Big Bang, complete/partial ledger, deterministic QA, and lateral QA regressions are included. Affected suite 771 passed; module-size 33 passed; Ruff/format/diff clean.

@ouroboros-agent ouroboros-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — ouroboros-agent[bot]

Verdict: REQUEST_CHANGES

Metadata

Field Value
PR #2102
HEAD checked c09fdcff2bf3f2f9107a4b0c4342246ed8a79e3b
Request ID req_1786889160_2136
Review record 967de955-28ef-4345-8673-f445d8cb5f9d

What Improved

  • Centralizes task-type and lineage contract parsing for Big Bang extraction, ledger fallback, and Seed-QA repair.
  • Preserves explicit document task types and parent lineage across the covered affirmative paths.
  • Adds substantial focused regression coverage, supported task-type documentation, and module-size-friendly boundaries.

Issue Requirements

Requirement Status
Preserve explicitly requested Seed task_type through Big Bang extraction Partially met — covered affirmative forms work, but explicit trailing rejection forms are still selected.
Preserve explicitly requested Seed task_type through complete and partial ledger fallback synthesis Partially met — the shared parser propagates valid document contracts but also propagates rejected contracts.
Preserve explicitly requested Seed task_type through bounded Seed-QA repair Partially met — valid mismatches are repaired, but rejected document contracts are incorrectly restored.
Prevent document goals from silently defaulting to code and misrouting execution Partially met — the reported positive reproduction is addressed, but authority parsing remains unsafe for realistic rejection language.
Preserve explicit parent-Seed lineage during QA repair Partially met — explicit IDs survive covered paths, but descriptive references can overwrite lineage with fabricated IDs such as the.
Keep touched grandfathered modules within module-size budgets through focused modules Met — the contracts were extracted into focused modules and the reviewed affected suite passes.

Prior Findings Status

Prior concerns are maintained in modified form under the same authority-boundary standard. Current code substantially improves affirmative, correction, reference, and negation handling, so those resolved cases are not re-raised. Fresh current-head evidence still shows rejected task/lineage contracts becoming authoritative and descriptive lineage references becoming fabricated durable IDs.

Blockers

# File:Line Severity Finding
1 src/ouroboros/core/task_type.py:133 BLOCKING The shared post-match rejection grammar still treats explicitly rejected contracts as authoritative. Current-head probes return document for task_type: document should not be selected. and task_type: document was ruled out., and return seed_bad for equivalent inheritance clauses. Complete/partial ledger synthesis therefore selects the rejected execution strategy, while Seed-QA repair writes the rejected task type or ancestry. Extend the shared rejection handling to cover selection/chosen wording, ruled out, and equivalent unambiguous rejection forms, with regressions across parser, ledger, Big Bang, and deterministic/lateral repair paths.
2 src/ouroboros/auto/seed_qa_contract.py:108 BLOCKING The inheritance pattern accepts any non-whitespace token immediately after inherit from, derive from, or parent_seed_id to as an opaque ID, including determiners. Inherit from the previous Seed. and Set parent_seed_id to the previous value. both resolve to parent ID the; an ordinary ambiguity-only QA repair then replaces the real parent_seed_id with that fabricated value at src/ouroboros/auto/pipeline.py:2963. Require an actual explicit identifier rather than accepting articles or unresolved descriptive references, and add durable repair regressions proving such phrases cannot corrupt lineage.

Follow-up Findings

# File:Line Priority Confidence Suggestion
None.

Non-blocking Suggestions

| None. |

Test Coverage Notes

  • Reviewed the changed parser, Big Bang extraction, complete/partial ledger synthesis, deterministic/lateral QA repair, execution-strategy registry, and associated tests.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run pytest -q tests/unit/core/test_task_type.py tests/unit/auto/test_seed_qa_contract.py tests/unit/auto/test_ledger_seed.py tests/unit/bigbang/test_seed_generator.py tests/unit/bigbang/test_seed_generator_brownfield.py tests/unit/auto/test_pipeline_lateral.py: 783 passed.
  • Focused current-head runtime probes independently reproduced both blockers and confirmed the incorrect repaired Seed state.
  • The full suite was not rerun in this review environment.

Design Notes

Centralizing the parsing contract is directionally sound, but regex-derived natural-language authority must fail closed before it controls execution routing or durable ancestry.

Design / Roadmap Gate

Seed.task_type selects downstream tools, prompts, evaluation behavior, and deliverables, while metadata.parent_seed_id is replay-visible durable lineage. The shared parser now feeds Big Bang extraction, complete/degraded synthesis, and deterministic/lateral repair. Positive-path compatibility is strong, but rejected values still cross the execution boundary and unresolved descriptive references can become persisted ancestry, so fail-closed routing and truthful durable state are not yet established.

Directional Notes

Review focus followed the PR’s end-to-end execution-intent and lineage claims. Prior reviews and maintainer memory were used only to target hostile authority-language and persistence probes; both blockers are independently demonstrated by the current source snapshot and runtime output.

Test Coverage

  • Reviewed the changed parser, Big Bang extraction, complete/partial ledger synthesis, deterministic/lateral QA repair, execution-strategy registry, and associated tests.
  • Ran SETUPTOOLS_SCM_PRETEND_VERSION=0.0.0 /root/.local/bin/uv run pytest -q tests/unit/core/test_task_type.py tests/unit/auto/test_seed_qa_contract.py tests/unit/auto/test_ledger_seed.py tests/unit/bigbang/test_seed_generator.py tests/unit/bigbang/test_seed_generator_brownfield.py tests/unit/auto/test_pipeline_lateral.py: 783 passed.
  • Focused current-head runtime probes independently reproduced both blockers and confirmed the incorrect repaired Seed state.
  • The full suite was not rerun in this review environment.

Merge Recommendation

Request changes. The modularization, documentation, and affected test suite are strong, but current-head probes still demonstrate rejected task routing and fabricated durable parent lineage on realistic caller-controlled goals.

Review-Metadata:
verdict: REQUEST_CHANGES
head_sha: c09fdcf
request_id: req_1786889160_2136
review_profile: memory-aware-zero-trust-v2
advisory_memory_only: true


Reviewed by ouroboros-agent[bot] via Codex deep analysis

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-issue PR intentionally has no associated issue; exempts it from the PR Hygiene issue-link gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants