feat(event): refuse TDT/CHRONOS outputs as state transitions - #50
Conversation
ADR 0016 first slice: evidence-layer admission gates and first-story miss/false-alarm rates on a known story stream. No new crate or migration while 0007 remains on #45.
|
Warning Review limit reached
Next review available in: 9 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (8)
📝 WalkthroughWalkthrough
Changes이벤트 지능 상태 게이트
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: 🔵 Low · up to The PR correctly prevents TDT and CHRONOS outputs from becoming state transitions, but merge should include owner awareness for inconsistent maturity documentation, clarification of zero-denominator metric semantics, and the long-stream performance behavior of story-ID lookup. Sequence Diagram(s)sequenceDiagram
participant Caller
participant classify_tdt_story
participant first_story_detection_rates
participant FirstStoryRates
Caller->>classify_tdt_story: 후보 story ID와 기존 story ID
classify_tdt_story-->>Caller: FirstStory 또는 Track
Caller->>first_story_detection_rates: 정답·예측 이진 스트림
first_story_detection_rates->>FirstStoryRates: 탐지 통계 집계
FirstStoryRates-->>Caller: hits, misses, false alarms 및 비율
Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current headb9de41a21d5509adcbb5cefa78b33d8900eafc69. -
Head SHA:
b9de41a21d5509adcbb5cefa78b33d8900eafc69 -
Workflow run: 31849102619
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (8 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (8 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (5 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (5 files)"]
R3 --> V3["docs review"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage Decision
Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (8 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (8 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (5 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (5 files)"]
R3 --> V3["docs review"]
|
|
@opencode-agent review exact current HEAD b4e0646e7a9583fcd3d75d2b81ed4fa27424f259 (PR #50). The product slice remains event_core evidence-status gates and first-story rates. The completed self-modifying known-identity repair loop was removed: docs-quality no longer mutates the branch, and the one-shot repair workflow/scripts were deleted. Local proof on exact HEAD: cargo fmt --all -- --check; cargo test -p event_core --all-features --offline; cargo clippy -p event_core --all-targets --all-features --offline -- -D warnings; check_docstrings.py; validate_documentation.py; check_workspace_contract.py; actionlint docs-quality.yml. Re-evaluate only this exact HEAD. Do not use COPILOT_GITHUB_TOKEN or bypass protected checks. |
|
Fixed the exact-head branch coverage failure and pushed commit Local evidence on the updated head: nightly workspace branch coverage |
|
Current-head review update for
The historical OpenCode |
|
Current-head documentation repair pushed as 1b12210.
Please review and rerun current-head required checks for 1b12210. |
|
Verified current HEAD |
|
Exact-head review refresh for a189b97. All hosted Checks are terminal-success; event_core tests and doctests pass with Rust 1.97.1, and workspace/docstring/format/diff checks pass. The only CHANGES_REQUESTED review targets old coverage evidence at b9de41a. Re-review current temporal state-transition refusal and TDT/CHRONOS boundary only. @opencode-agent @cwl-noema-review @coderabbitai |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected='a189b97e536648b856cb38ea2c95270196ce3b52'
actual="$(git rev-parse HEAD)"
printf 'checkout=%s\nexpected=%s\n' "$actual" "$expected"
git status --short
git diff --check "$expected^" "$expected"
git diff --stat "$expected^" "$expected"
git diff --name-only "$expected^" "$expected"
echo '--- focused Rust outlines ---'
ast-grep outline crates/event_core/src/intelligence.rs --items all --view expanded
ast-grep outline crates/event_core/src/error.rs --items all --view expanded
ast-grep outline crates/event_core/tests/intelligence_status_contract.rs --items all --view expanded
echo '--- admission and rate implementation ---'
rg -n -C 8 'admit_state_transition|may_admit_state_transition|first_story_detection_rates|classify_tdt_story|enum EventEvidenceLayer|struct FirstStoryRates' \
crates/event_core/src/intelligence.rs crates/event_core/src/error.rs crates/event_core/tests/intelligence_status_contract.rs
echo '--- PR metadata, checks, and reviews ---'
gh pr view 50 --repo ContextualWisdomLab/TEPP --json headRefOid,statusCheckRollup,reviews --jq \
'{headRefOid, checks: [.statusCheckRollup[] | {name, status, conclusion}], reviews: [.reviews[] | {author: .author.login, state, commit: .commit.oid}]}'Length of output: 23809 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '--- intelligence implementation ---'
sed -n '1,230p' crates/event_core/src/intelligence.rs
echo '--- public exports and error variants ---'
sed -n '1,180p' crates/event_core/src/lib.rs
sed -n '1,130p' crates/event_core/src/error.rs
echo '--- transition-related API map ---'
ast-grep outline crates/event_core/src --items all --match 'Event|Transition|State|Graph' --view expanded
rg -n -i -C 4 'state.{0,20}(transition|graph)|transition.{0,20}(state|graph)|forward.{0,20}(state|graph)|PromotedTransition|admit_state_transition' \
crates/event_core/src crates/event_core/tests
echo '--- direct admission call sites ---'
ast-grep run --lang rust --pattern 'admit_state_transition($LAYER)' crates
echo '--- focused PR diff from merge base ---'
base="$(git merge-base origin/main HEAD)"
printf 'merge-base=%s\n' "$base"
git diff --check "$base" HEAD
git diff --unified=40 "$base" HEAD -- \
crates/event_core/src/intelligence.rs \
crates/event_core/src/error.rs \
crates/event_core/src/lib.rs \
crates/event_core/tests/intelligence_status_contract.rs \
docs/adr/0016-tdt-chronos-event-intelligence-boundary.md \
docs/research/event-intelligence-status-gates.mdLength of output: 51760
I found one blocking issue.
Therefore, a production caller can create or promote an Connect the evidence layer to the concrete transition or promotion API. That API must reject every layer except The first-story rate calculation is correct for the reviewed cases. The current PR head matches the requested commit. The completed hosted checks are successful. The old You are interacting with an AI system. |
# Conflicts: # CHANGELOG.md # docs/TRACEABILITY.md # docs/adr/0009-purpose-bound-pii-governance.md # docs/adr/0010-adaptive-llm-orchestration.md
|
Exact-head repair receipt for 314a6db. The promotion boundary now requires and retains PromotedTransition, rejects ObservedMention/TdtDetection/ChronosPrediction/TemporalConsistency with stable errors, and the first-story detector uses a caller-owned HashSet. Local docs/workspace checks, full offline workspace tests, clippy -D warnings, CodeGraph sync, and CodeReviewGraph update passed after merging protected main c45be17. Please rerun independent OpenCode and Noema review for this exact HEAD. |
Maintainer audit — exact head 8f26c2f
|
ADR 0009 still described purpose-bound provider payloads as an active PR after that slice landed on protected main. Align the maturity line with TRACEABILITY and the validation ledger.
|
Pushed TDT/CHRONOS evidence-status gates remain |
Stale predecessor-head coverage-evidence request. Current head d4cd083 and predecessor Checks include coverage-evidence success. Not an approval.
* docs: add live product technical gap baseline * docs: refresh live delivery baseline * docs: record psychometric draft state * docs: refresh temporal and image delivery queue * docs: record Unicode identity PR in gap baseline * docs: refresh buyer gap baseline for psychometric PR * docs: refresh baseline for branch coverage repair * docs: refresh baseline with current PR heads * docs: record validation claim promotion head * docs: refresh live PR baseline * docs: bind baseline to refresh head * docs: refresh gap baseline current heads * docs: refresh live pull request evidence * docs: expand TEPP completion gaps and issue roadmap * docs: add product and technical gap baseline * docs: normalize buyer gap maturity * docs: remove duplicate gap baseline index entry * docs(gap): refresh live queue snapshot * docs(gap): split executable product capabilities * docs(gap): align queue snapshot timestamp * docs(gap): normalize maturity and authority fields * docs: refresh live pull request gap evidence * docs: record hot partition readiness gap * docs: refresh live product gap snapshot * docs: route Strix gap evidence to canonical owner * docs: link exact Strix failure records * docs: bound Strix evidence to public records * docs(gaps): refresh live PR snapshot * docs(gaps): bind snapshot to refreshed head * docs: refresh live buyer-gap baseline * docs: refresh live PR head register * docs: require dated exact-head gap baseline Refresh the live 2026-08-23 GitHub inventory, add a structure validator that rejects queued-Checks-as-shipped claims, and cover it with quality tests. PR #164 remains the single gap-baseline authority. * docs: drop closed duplicate #179 from live register Refresh the exact-head inventory to 93 open PRs after closing the duplicate gap-baseline snapshot. PR #164 remains the single authority. * docs: bind gap heads to the live 95-PR register Refresh the exact-head inventory to 2026-08-23T13:31:34Z and set each buyer-gap current head SHA to that snapshot, including #164, #48, #50, #63, and #157. Queued Checks remain not implemented-main. * fix(docs): honor negated queued-Checks wording in the gap validator The promotion guard treated any same-line 'queued Checks'...'implemented-main' window as a shipped claim, so correct negation failed and a wrapped affirmative claim could evade. Require an un-negated match, including across a line break. * docs: refresh 96-PR exact-head gap register Bind the live 2026-08-23T13:57:34Z inventory, including #49 extra-lag underflow coverage and hourly #180/#164 repairs. Buyer-gap current heads match that snapshot. Queued Checks are not implemented-main. * docs: replace Buyer language in the live gap register TEPP is not a purchase catalog. The gap baseline, validator, and CHANGELOG now name operator-visible gaps and operator-gap closure evidence. * docs: refresh 96-PR exact-head gap register after #49 90b08bb Bind GAP current-head SHA prefixes to the 2026-08-23T14:08:41Z live inventory, including #49 extra-process lag underflow and #164 8b78797. Queued Checks remain not implemented-main. * docs: refresh 98-PR exact-head operator-gap register Snapshot 2026-08-23T14:52:16Z. GAP-015 records this register's prior exact head 33bf824. TEPP remains an operator-gap register, not a purchase catalog. * docs: refresh 97-PR exact-head gap register after stacked #191 Drop closed stacked #191, bind GAP current-head SHAs to the 2026-08-23T15:07:33Z REST inventory, and keep queued Checks off implemented-main. * docs: refresh 97-PR exact-head gap register after #49 1e3e2eb Bind GAP current-head SHAs to the 2026-08-23T15:57:48Z REST inventory, including #49 exp/expm1 overflow rewrites. Queued Checks remain off implemented-main. * docs: refresh 99-PR exact-head gap register after stacked #193/#194 Bind GAP current-head SHAs to the 2026-08-23T16:52:27Z REST inventory. #49 nightly 1701/1702 on 1e3e2eb is logged, not treated as implemented-main. Queued Checks remain off protected-main. * docs: refresh 101-PR exact-head gap register after #49 dd6cf43 Bind GAP current-head SHAs to the 2026-08-23T17:59:26Z REST inventory, including unique-fold coverage on #49 and stacked drafts #195/#196. Queued Checks remain off implemented-main. * fix(docs): require promotion-denial wording for queued-Checks guard An unrelated `not` in `queued Checks are not required; this PR is implemented-main` was treated as negation. Only never/do not/does not/ cannot/must not plus promote/treat/make/mean licenses the span. * docs: refresh 103-PR exact-head gap register after stacked #197/#198 Bind GAP current-head SHAs to the 2026-08-23T18:48:36Z REST inventory. #49 unique-fold nightly is green on dd6cf43 and is not implemented-main. Queued Checks remain off protected-main. * docs: refresh 105-PR exact-head gap register after stacked #199/#200 Bind GAP current-head SHAs to the 2026-08-23T19:48:22Z REST inventory. #49 unique-fold nightly remains green on dd6cf43 and is not implemented-main. Queued Checks remain off protected-main. * docs: refresh 106-PR exact-head gap register after #201 span units Bind GAP-005 to #201 5344729 as a first span-unit slice only, not concept alignment and not implemented-main. Queued Checks remain off protected-main. * docs: refresh 109-PR exact-head gap register after #201 6afd650 Bind GAP-005 to the RFC 5646-once citation head and include stacked drafts #202–#204. Queued Checks remain off implemented-main. * fix(docs): deny queued-Checks promotion by governed negation Replace the fixed-window denial regex with sentence-scoped negation governance: a claim passes only when a negation cue directly governs a promotion verb inside the same sentence and no adversative conjunction separates that pair from the maturity assertion. Honest wordings whose negation precedes the phrase are accepted, while unrelated negated clauses joined by 'but' can no longer license an implemented-main claim. * docs: refresh 117-PR exact-head gap register after #205-#212 Eight new draft PRs opened in the Driver-recovery psychometric series since the last snapshot. Protected-main SHA and non-draft count (70) are unchanged -- no new mergeable work landed, this is a pure register refresh. * docs: refresh live product gap evidence * docs(changelog): align gap-baseline snapshot entry with committed register The Changed entry still described the predecessor 2026-08-23T21:46:37Z snapshot (109 open / 39 drafts) while the committed baseline document records the refreshed 2026-08-24T05:41:54Z snapshot (118 open / 48 drafts). Align the changelog narrative with the register the validator enforces so the exact-head evidence stays internally consistent. --------- Co-authored-by: seonghobae <seonghobae@users.noreply.github.com> Co-authored-by: opencode-agent <agent@contextualwisdomlab.dev>
Summary
#37–#49 were review-blocked (no independent APPROVE). Draft PRs #38–#49 were marked ready so review can proceed. Next no-0008 buyer gap: ADR 0016 evidence-status gates inside existing
event_core(no third crate that would collide with #48/#49).PromotedTransitionmay enter the forward state graphDetectionIsNotTransitionPredictionIsNotFact[10,20,10,30,20](Allan 2002)Test plan
intelligence_status_contractfailed withE0432/E0599cargo test -p event_core --offlinecargo clippy -p event_core --all-targets --offline -- -D warningspython3 scripts/validate_documentation.pyandcheck_docstrings.pyDo not self-approve or merge. Prefer merge #37 then #45 when eligible. Do not allocate 0008.
Summary by CodeRabbit
새 기능
문서