M0-01: Prove minimal A/B/C temporal intelligence contract #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-3-temporal-proof"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs #3
Refs #5
Accepted Scope
Issue #3: small deterministic synthetic A/B/C temporal/provenance representation proof, not a service, catalog, live market claim or product GO decision. Issue #5: Adrian explicitly authorized the bounded native Kilo review/remediation workflow to be incorporated into this current PR branch, followed by automatic in-scope issue #3 remediation. No replacement PR or merge is authorized.
Frozen Delivery State
a1c3b8b12c08e54743612a9b74873da42251ae70(develop).d86e9cdfd4daff998b27f59411162a11845906a1.issue-3-temporal-proof,/tmp/kilo/issue-3-temporal-proof.Representation
11 frozen value objects and 7 closed enums; 2 production modules including docstring-only init; 0 runtime dependencies. Three explicit fact families preserve model/provider identity and contextual benchmark/price evidence, bounded conditional public offer rules with IANA daily windows, and versioned execution capabilities with separate advertised/observed/selectable/enforceable assertions. UTC half-open validity is independent of acquisition/freshness/supersession. Snapshots serialize canonically; disagreement is retained without authority winners or a universal score. Conditions are recorded, not executed; no private state or infrastructure.
Fixtures and exact campaign boundaries are explicitly synthetic. No copied upstream code/data. README and fixture references identify the reuse/official-source concepts; no live runtime accuracy or product GO claim is made. Architecture conclusion remains CONTINUE for investigation only, with STOP available if adversarial failures show the representation needs revision.
Native Review Workflow
Added
.kilo/agents/pr-reviewer.mdand/finish-pr; updated/review-pr, AGENTS and applicable rules. The installed Kilo 7.8.3 CLI discovers/parses both commands and the read-only subagent, using verifiedopenai/gpt-6.1-sol/high. Effective deny-by-default permissions block edits, arbitrary interpreters, Git mutation, Forgejo writes, parent recall/board access and delegation, while allowing repository/MCP reads and inspected safe local checks. The foreground native task JSON result is the direct handoff. Each whole-PR reviewer is newly spawned; at most three remediation rounds after the initial review. Terminal outcomes are READY_TO_MERGE, STOP_REVISE, OWNER_DECISION_NEEDED or a finite BLOCKED. Never merge/release/deploy/promote main.Current Remediation and Validation
The independent review of
8da5e13bc48136d97344791187a2b652307a46d9returned REQUEST_CHANGES. Both defects were reproduced first with four failing assertion/subcases. Cessation now matches source reference and observation time in addition to source ID/terms/interval, ignoring retrieval-only refreshes; newly supplied superseded history cannot act as an offer correction. Regression controls cover both fact families, reference/observation versus retrieval changes, unchanged effective terms and genuine bounded expiry.ef0aa62a224f083e6fda8da354f2d5fda07e8661.d86e9cdfd4daff998b27f59411162a11845906a1.uv run --no-sync python -m unittest discover -s tests -p test_temporal_proof.py -v: 59 passed.UV_OFFLINE=1 make check: PASS, 61 total tests; locked sync, Ruff lint/format, basedpyright 0 errors/warnings, staged/unstaged whitespace.kilo debug config/debug agent pr-reviewer: parsing/discovery and model/permission validation PASS.Fresh native whole-PR independent review follows automatically; this description is implementation evidence, not approval. Both issues remain open, PR unmerged, human merge gate preserved.
Review Remediation
All three selected blocking findings remediated on this existing PR/branch; this update supersedes the prior HEAD/validation counts.
Previous independently reviewed HEAD:
5e2c319218b0d0bb66c58aad3b1c29e67ab09944New HEAD:
9b42e984440dfc3b53b20a0bc227bcdd12add154Recorded develop base remains
a1c3b8b12c08e54743612a9b74873da42251ae70. Normal descendant commit, no amend/rebase/force-push.Snapshot.factspreserves all present evidence; newSnapshot.retained()groups non-superseded assertions, including future/expired claims;effective()selects current assertions from that grouping._ceased()requires same-source, same-terms, same-interval retained closure for every previously effective assertion.PROMOTION_ENDEDcannot be manufactured by another historical same-key source or by partial source removal. An explicit retained supersession can establish cessation when no effective replacement applies.MODEL_EVIDENCE_CHANGED, using the same cessation proof. Missing rows do not prove expiry; equivalent effective replacement and retrieval-only refresh remain silent. No new release event, winner selection or replay engine.Tests were added first: the frozen implementation reproduced all three blockers with 8 failing assertions/subcases. Added 10 test methods and strengthened the existing expiry-conflict test: exact partial-source-removal scenario, closure for every prior source, same-source/terms/interval guards, last-model expiry/supersession, equivalent replacement, missing model rows, refreshed expiry, explicit supersession and present/retained/effective distinctions. Conflict checks cover exact earlier end, +1 microsecond, +12 hours, later expiry and explicit supersession.
Executed validation:
uv run --no-sync python -m unittest discover -s tests -p test_temporal_proof.py -v: 48 passed.make check: PASS, 50 tests, locked sync, Ruff lint/format, basedpyright 0 errors/warnings, unstaged/staged whitespace checks.uv build: PASS, wheel and sdist built. Freshuv run --no-cache --isolated --no-project --with ./dist/model_intelligence-0.1.0-py3-none-any.whl python -c ...installed-wheel smoke verified new retained/effective methods,py.typedand zero runtime dependencies. Initial cached smoke loaded the old same-version wheel; bypassing that stale cache resolved it without code/config changes.git diff --check,git diff --cached --check,git diff a1c3b8b12c08e54743612a9b74873da42251ae70 HEAD --check: PASS.Complexity: production
domain.py466 -> 489 LOC, +30/-7 = net +23. One new grouping method (retained) and one private helper (_ceased); 0 new production types/modules, 0 runtime dependencies. Only domain.py and its existing test file changed.CONTINUE remains limited to the small architecture proof. READY_FOR_REVIEW at the new HEAD, not approved. A changed HEAD requires a fresh whole-PR independent review. No merge, new issue/PR, main changes or scope expansion.
Second Review Remediation
Previous reviewed HEAD:
9b42e984440dfc3b53b20a0bc227bcdd12add154New HEAD:
8da5e13bc48136d97344791187a2b652307a46d9Normal commit/push on existing
issue-3-temporal-proof; base remainsa1c3b8b12c08e54743612a9b74873da42251ae70.Offer correction vs cessation: A previously effective source supplying a semantic claim (terms/effective interval) not already present for that offer key/source in N emits
OFFER_CHANGED, even when the supplied claim is expired/future in N+1. This takes deterministic precedence overPROMOTION_ENDEDwhen correction and proven closure coexist. Acquisition-only metadata changes, mere disappearance and already-present historical claims do not qualify as corrections. Without a supplied correction, the existing same-source/terms/interval_ceased()proof still permits normal expiry/explicit supersession and still rejects missing-row inference. One small private_offer_corrected()helper compares present assertions by stable offer/source identity; no winner/replay engine.Evidence history: Removed only
fresh_until/superseded_at >= retrieved_at. Retrieval is acquisition, not renewal/reactivation. Boundaries may predate retrieval; timezone awareness and canonical UTC normalization remain. Stale stays stale, superseded stays superseded, and retrieval-only changes stay semantically silent while snapshot serialization/identity reflects acquisition changes.Regressions added first reproduced the two blockers: 3 offer assertion failures and 2 historical-retrieval constructor errors. Added 8 test methods covering earlier corrected end exactly at comparison time, corrected future start, correction-over-cessation precedence, known same-source history silence, offer/source identity guards, stale/superseded re-retrieval and independent aware/UTC boundaries. The prior same-source changed-claim test now expects
OFFER_CHANGED, not silence, while continuing to reject fabricatedPROMOTION_ENDED. The invalid retrieval-coupling test now enforces naive-boundary rejection instead. Retrieval-identity checks hold snapshot version/time constant to isolate the acquisition timestamp.Validation executed:
uv run --no-sync python -m unittest discover -s tests -p test_temporal_proof.py -v -k 'supplied' -k 'reretrieved' -k 'existing_same_source_history' -k 'evidence_boundaries': 9 passed.uv run --no-sync python -m unittest discover -s tests -p test_temporal_proof.py -v: 56 passed; all prior review regressions preserved.make check: PASS / 58 tests, locked sync, Ruff lint/format, basedpyright 0 errors/warnings, unstaged/staged whitespace checks.uv build: PASS, wheel/sdist. Fresh installed-wheel smoke withuv run --no-cache --isolated --no-project --with ./dist/model_intelligence-0.1.0-py3-none-any.whl ...accepts historical boundaries predating acquisition and retains stale/superseded states; zero runtime dependencies confirmed.git diff --check,git diff --cached --check, complete base-to-HEAD--check: PASS.Complexity delta from reviewed HEAD: production +19/-3 = net +16 LOC, domain 489 -> 505. One private helper; 0 new public domain types/modules/runtime dependencies. Only domain.py and existing temporal tests changed. Existing architecture-only
CONTINUEconclusion remains limited to representation proof.READY_FOR_REVIEW at the new HEAD, requiring a fresh independent whole-PR review. No merge, new issue/PR, main/release/deploy or widened M0-01 scope.
Final bounded /finish-pr outcome: STOP_REVISE. Refs #3 and #5. The previous description's delivery SHA/check counts record round 1; current exact HEAD is
303f5fe118, base/merge-basea1c3b8b12c.Initial review
8da5e13bc4and fresh native whole-PR reviews after rounds 1 (d86e9cdfd4), 2 (1782d62e65) and 3 (303f5fe118) all returned REQUEST_CHANGES. Each new native reviewer used GPT-6.1 Sol High, isolated context, exact frozen SHAs, safe validation and direct JSON task handoff. Three remediation rounds are consumed; no fourth fix was attempted.Final remaining P2 domain.py:456-462: a subject-wide prior meaning supplied by source B suppresses source A's explicit correction to that same shorter effective end, producing an empty diff instead of OFFER_CHANGED. This was source-traced by the final reviewer and reproduced by a socket-blocked read-only primary probe. Recurring provenance/correction interactions warrant STOP/REVISE rather than more unbounded patches.
Workflow commit
ef0aa62a22and the three normal remediation commits are pushed under Adrian identity. Native configuration/frontmatter/discovery/permission checks passed. Current UV_OFFLINE=1 make check passes 66 tests, Ruff lint/format, basedpyright 0 errors/warnings, locked sync and whitespace; final reviewer ran it independently. Worktree clean, canonical refs and MCP currentness verified. Issues remain open, PR unmerged; no external services or formal review publication. This comment is reporting only, never orchestration state.Owner decision retained: STOP_REVISE at experimental HEAD
303f5fe118. Do not patch or merge this domain experiment; its history, findings and regression specifications remain evidence. The recurring inferred revision/cessation heuristics are an architectural failure signal.Useful native workflow from
ef0aa62is now extracted independently under existing issue #5 into #6, with the owner's one-normal-checkout/no-git-worktree policy. That workflow-only PR contains none of this PR's failed domain implementation. This PR remains open/unmerged and unchanged.The owner-authorized M0-01R successor direction is explicit observation/claim identity and revision lineage plus baseline/temporary overrides, not another heuristic patch. Its issue is not created during Phase A; creation/implementation is gated on actual canonical develop integration of the issue #5 workflow PR. Reference the successor here when it is created.
Administrative closure WITHOUT MERGE, explicitly authorized by the owner on 2026-10-26.
M0-01 remains STOP_REVISE at
303f5fe118a592f3cf5e7ea47c5955625850ea28(final disposition: comment13489; preserved owner decision: comment13516). Its inferred revision/cessation approach was not accepted. Fresh canonical metadata, all PR/linked issue #3 comments and review records show no later owner decision authorizing integration. The stale implementation details in the PR description do not supersede that disposition.The accepted successor is MI #9 / merged PR #10: #10 (merge
fb7299810fdc4612d4e0559465faef571662c6ef). It delivers the synthetic R2 temporal proof, not completion of the separate real-source A/B/C product-value acceptance or final product GO. This old implementation is therefore being closed as superseded, not merged, repaired or retrospectively approved.Branches, commits, historical review findings/counters and linked issue evidence/dispositions are preserved unchanged. This closure does not restart reviews, change issue #3, or authorize new implementation.
Pull request closed