fix(lineage): bind dynamic evaluations to substantive criteria - #915
seonghobae wants to merge 55 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
seonghobae
left a comment
There was a problem hiding this comment.
Parent #902 has now moved non-force to c316bfbd… after #899/current-main convergence. This branch’s 12 dynamic-evaluation lineage/evidence files are disjoint from the inherited workflow/contract repair. Keeping the old #902 ancestry is therefore a wrong-base finding, not a reason to close or rewrite history. Preserve the lineage delta exactly, adopt the moved parent’s protected workflow contract, and advance with a two-parent non-force convergence commit; predecessor checks/reviews remain non-transferable.
|
@coderabbitai review Please review the exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected_head='6540acebbb3ecef4736ebeefa6c0c4486b002b79'
expected_base='8b5cc45dbb2d6ef7bb3b49a10c33cdfb93b483cc'
printf '%s\n' '== HEAD =='
git rev-parse HEAD
git status --short
printf '%s\n' '== stated commits =='
git cat-file -t "$expected_head"
git cat-file -t "$expected_base"
printf '%s\n' '== merge-base and ancestry =='
git merge-base HEAD "$expected_base"
git merge-base --is-ancestor "$expected_base" HEAD && echo 'base-is-ancestor=yes'
printf '%s\n' '== changed files from stated base =='
git diff --name-status "$expected_base"...HEAD
printf '%s\n' '== change summary =='
git diff --stat "$expected_base"...HEAD
printf '%s\n' '== glossary outline =='
ast-grep outline docs/ubiquitous-language.md --items all || true
printf '%s\n' '== glossary diff =='
git diff --no-ext-diff --unified=80 "$expected_base"...HEAD -- docs/ubiquitous-language.md
printf '%s\n' '== changed source/test file outlines =='
git diff --name-only "$expected_base"...HEAD | while IFS= read -r f; do
case "$f" in
*.py|*.ts|*.tsx|*.js|*.jsx|*.go|*.rs|*.java)
printf '\n--- %s ---\n' "$f"
ast-grep outline "$f" --items all || true
;;
esac
done
printf '%s\n' '== test and implementation diff =='
git diff --no-ext-diff --unified=30 "$expected_base"...HEAD -- '*.py' '*.ts' '*.tsx' '*.js' '*.jsx' '*.go' '*.rs' '*.java' '*.yml' '*.yaml' ':!docs/ubiquitous-language.md'Length of output: 111964 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== owner/contract references in direct diff =='
git diff --no-ext-diff 8b5cc45dbb2d6ef7bb3b49a10c33cdfb93b483cc...HEAD | \
rg -n -C 3 'fast[_-]mlsirm.*dynamic.*evaluation|synthetic_source_contract|noncharacter|Zl|Zp|opaque reference|source_contract_ref' || true
printf '%s\n' '== criterion reference validator with line numbers =='
nl -ba lineageweave/evaluation_criteria.py | sed -n '85,155p'
printf '%s\n' '== dynamic reference validator with line numbers =='
nl -ba lineageweave/evaluation_lineage.py | sed -n '120,175p'
printf '%s\n' '== affected fixture references with line numbers =='
rg -n -C 3 'fast_mlsirm_dynamic_evaluation_item|synthetic_source_contract' \
tests/test_dynamic_evaluation_criterion_lineage.py \
tests/test_dynamic_evaluation_lineage_admission_budget.py \
tests/test_dynamic_evaluation_lineage.py
printf '%s\n' '== ADR contract and reference-boundary sections =='
rg -n -i -C 8 'fast-mlsirm|synthetic_source_contract|noncharacter|unicode|opaque reference|Zl|Zp|criterion' \
docs/adr/0355-dynamic-evaluation-lineage.md | head -n 400
printf '%s\n' '== glossary final sections with line numbers =='
nl -ba docs/ubiquitous-language.md | sed -n '1,180p'
printf '%s\n' '== full direct-diff search for reference validators =='
rg -n -C 4 'def _reference\(|_is_unicode_noncharacter|unicodedata\.category' \
lineageweave/evaluation_criteria.py lineageweave/evaluation_lineage.pyLength of output: 53787
The glossary convergence is correct. It retains the current measurement policy and I found two issues:
Repository tests were not executed during this static review.
|
|
Stack authority update: parent #902 is now |
Root-cause repair
Dynamic-evaluation lineage preserves what was evaluated and keeps criterion, observation, adjudication, calibration, promotion, linking and supersession provenance auditable without absorbing foreign scoring or provider authority.
Owner boundary
LineageWeave owns the provenance/read-model projection only. contextual-orchestrator owns provider/model execution and invocation evidence; fast-mlsirm owns reusable psychometric calibration/linking arithmetic; TEPP owns temporal/drift semantics. Production integration consumes released/versioned owner artifacts and exact digests. Tests use
synthetic_source_contract/v1; no nonexistent fast-mlsirm source contract is invented. ADR 0355 remains Proposed.Current stack / exact authority — 2026-09-22 KST
414026bc0ddb52f2f43f1e5f153b31b2b336939dba77b336ebc267ad21fb645fad438966657237c1behind_by=0; the same 12 dynamic-evaluation source/tests/docs remain child-ownedAPPROVED: noneThe existing RED→causal-repair history for criterion-set snapshot integrity, criterion-ref type admission, zero-anchor cold start, distinct calibration/promotion/linking/adjudication identities, acyclic supersession, and opaque-provenance Unicode/noncharacter validation remains preserved.
Parent #902 moved only by ordinary convergence on #899's source-neutral live ancestry. Ordinary two-parent/non-force commit
ba77b336...adopts current #902 without altering this PR's 12-file dynamic-evaluation delta. No predecessor checks/reviews transfer, and no canonical psychometric/provider source is copied here.Keep Draft until #902 and #899 integrate normally and this unchanged descendant receives complete repository/security/governance evidence plus qualifying independent review. No self-approval, force push, bypass, fabricated owner contract, source copy, stale evidence transfer or new wake commit.