feat(analysis): bind simulation method-effect labels to an analysis-run profile - #415
feat(analysis): bind simulation method-effect labels to an analysis-run profile#415seonghobae wants to merge 7 commits into
Conversation
…un profile GAP-004 leftover / ADR 0057. Bind existing tepp_simulation::generate and refuse_unavailable_document to cutoff-safe method_effects_v1. Census of original/revision/translation/template_copy labels, not an estimator-side method model, not GPU, not MCMC, and not topic birth/split/merge.
📝 WalkthroughWalkthrough
Changes메서드 효과 분석 실행 프로필
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant AnalysisRunRequest
participant execute_method_effects_run
participant tepp_simulation
participant MethodEffectsArtifact
participant AnalysisRunTerminalResult
AnalysisRunRequest->>execute_method_effects_run: 요청 및 접수 identity 전달
execute_method_effects_run->>tepp_simulation: cutoff-safe simulation manifest 생성
tepp_simulation-->>execute_method_effects_run: 사용 가능한 문서와 method effects 반환
execute_method_effects_run->>MethodEffectsArtifact: 문서 집계와 digest 생성
MethodEffectsArtifact-->>execute_method_effects_run: 검증된 artifact 반환
execute_method_effects_run->>AnalysisRunTerminalResult: 성공 상태와 artifact digest 연결
Merge Risk: 🔵 Low · up to This change adds a versioned method-effects analysis artifact and execution result. Invalid digest metadata can pass validation, and tenant authorization is not visibly bound to the accepted run if the execution boundary is reachable by an untrusted caller. The PR is mergeable with explicit owner awareness and follow-up on digest validation and authorization binding. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 52.63% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 19 functions across 3 files. (7 skipped: 7 unsupported.)
✨ Finishing Touches 💡 1📝 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 |
Resolve the CHANGELOG.md append conflict by keeping both entries. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Restack on protected main (a243f18)Non-force merge of Local evidence on the pushed head (toolchain 1.98.0): 🤖 Generated with Claude Code |
Consolidation status
fold_childfor the surviving Validation / Analysis Run landing vehicle #416.method_effects_v1is an analysis-run profile over existingtepp_simulationtruth labels, not a new bounded context or independent protected-main landing authority.Current exact child head:
b20ed27f065ddec9c6f05cfe531ece546c3f4d2e; protected base:main@a243f18da4a4ca8a8d068c39922537f1f8ed6ad0. Current #416 head:03f8de2ed0a0fb842d2022d411814e440df7cfb4. Fresh comparison is diverged with protected main as merge base: this child has 7 unique commits and is 81 #416 commits behind. Keep Draft and preserve all unique source/test/ADR/doctoring delta until an ordinary non-force conflict-resolving fold verifies inheritance.Scientific / temporal contract
The profile invokes existing
tepp_simulation::generatemethod-effect labels (original,revision,translation,template_copy) and reports a digest-bound cutoff-admitted census. It does not implement an estimator-side method model, GPU/MCMC execution, topic birth/split/merge, or scientific acceptance.The earlier implementation compared
request.knowledge_cutoffto the executor cutoff as RFC 3339 text and reused the domain inference label as terminal provider validation status. Those are distinct contract defects: legal textual representations of the same instant must not change historical admission, andAnalysisResultSummary.validation_statusis provider-authored execution state rather than a domain inference claim.Repair lineage:
861d6a720f89068691e82932873f093c90c1511badds a realistic equivalent-instant cutoff contract (2026-08-01T01:00:00+01:00vs2026-08-01T00:00:00Z) and requires terminalvalidation_status == "validated"while the artifact retainssimulation_method_effect_labels_not_estimator_modelas its inference boundary.6d7db6d89ac76f7cde69dd1b5c877ef8cbc362f6parses the request cutoff and comparesKnowledgeCutoff::instant()values; snapshot/model/profile gates remain fail closed. The terminal provider status is separated from artifact inference status.cd76c7262d1e7e3743890003950f299d29b1d0f3changes ADR 0057 from premature branch-localAcceptedauthority toProposedand records the typed-instant/provider-status decision.b20ed27f065ddec9c6f05cfe531ece546c3f4d2eproves the maximal valid artifact shape (256-byte bounded identifiers, fixed digests/schema/claim strings, maximal validu64counts) remains belowMETHOD_EFFECTS_ARTIFACT_BYTE_LIMITand round-trips through the inbound parser. The 256 KiB check remains an untrusted-input admission boundary; no unreachable output-side size branch was added.Previously repaired findings remain preserved: lowercase SHA-256 validation for config/content digests, admitted-population rather than full-corpus content digest, duplicate production/dev dependency removal, and conservative pre-allocation generated-row admission.
Review and authority state
All current inline threads are resolved after verification; thread resolution is not approval. Submitted reviews are COMMENTED only, so there is no qualifying current-head APPROVE. Live ruleset
18156473requires one qualifying current-head approval, dismisses stale reviews after pushes, requires review-thread resolution, and enforces the central required workflows. The old body requirement for two approvals was stale and is removed here.ADR 0057 body is now
Proposed, but the shareddocs/adr/README.mdrow still saysAccepted. That index mismatch is real and must survive as a repair finding into the #416/docs consolidation; do not replace the large shared index wholesale merely to change one row.Exact-head evidence
Fresh workflows admitted for
b20ed27f...are Rust Foundation CI34786927610, Documentation Quality34786927603, Security Scan34786927657, SAST Semgrep34786927717, and CodeQL PR34786927590. They are currently queued. No predecessor check, coverage receipt, or review transfers to this head; this PR does not claim GREEN, 100% coverage, Ready, or merge authorization.Fold gate
Before successor-based Close, verify on the surviving #416/successor head that the method-effect source, admitted-population digest, generation budget, exact temporal-instant binding, provider/domain status separation, maximal-wire proof, tests, ADR 0057 Proposed semantics, doctoring and TRACEABILITY all survived the ordinary conflict-resolving fold. Then reacquire exact-head line/branch coverage, required security/CodeQL/docs workflows, resolved threads and the qualifying independent approval on the unchanged survivor.
No self-approval, force push, destructive rebase, skip/xfail, coverage-denominator change, scanner suppression, no-op rerun, mutable dependency consumption, or predecessor evidence transfer is authorized.