Skip to content

feat: add governed performance review packet - #44

Draft
seonghobae wants to merge 112 commits into
developfrom
feat/governed-performance-review
Draft

feat: add governed performance review packet#44
seonghobae wants to merge 112 commits into
developfrom
feat/governed-performance-review

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Buyer-visible outcome

Adds a governed, value-minimized performance-review evidence packet for accountable human review workflows. It correlates authoritative-lookup references for Person, Employment, Job, cycle, criteria, goals, criterion observations, optional development planning, reviewer, purpose/reason, evidence version, and business review period without carrying rating values, free-form feedback, or model-generated decision text. Independently supplied UUIDv4-shaped references are not treated as proof of opacity: until authoritative provenance resolves them, the packet conservatively records that direct person identifiers may be present and requires purpose-bound handling plus authoritative scope resolution before rating.

Latest Orgmetra-owned integrity repair

The newly verified defect was a seal-loss lifecycle reset. The prior single-use defense correctly rejected a second __post_init__() while _PACKET_SEALS[id(packet)] still existed, but _PACKET_SEALS also acted as the only "already issued" marker. If the process-local seal bytes were lost or discarded while the same packet remained live, a low-level caller could rewrite a field to another otherwise-valid value and invoke __post_init__() to install replacement evidence, minting a second canonical truth for one live packet identity.

A realistic regression landed first on test-only head 721f13e7d432c1c96fb4aadd88226f1038891769. Performance Review Quality run 33299443351, job 99224652811 checked out that exact head and failed test_seal_loss_cannot_reset_live_issuance_lifecycle with 1 failed / 87 passed and DID NOT RAISE ValueError, proving that seal loss reset issuance eligibility.

The root repair on exact head dbe465daad3c4ec60a2328046d09a93b1b9e67ec separates current seal bytes from issuance lifecycle. A weak live-issued-identity registry records that the exact live packet has already issued even when current seal bytes are absent; _register_packet_seal() therefore fails closed on reinitialization of that same live object. Seal loss continues to make canonical export unavailable, but it no longer grants permission to issue again. Weak identity tracking releases with object lifetime rather than becoming durable process state. README, ADR 0018, traceability, package CHANGELOG, and regression tests describe the same boundary.

This mechanism remains in-process mutation defense-in-depth only. It is not a hostile-interpreter capability boundary, portable/durable digital signature or attestation, distributed uniqueness service, authorization record, immutable audit/outbox, persistence proof, or rehydration credential.

Exact-current-head evidence

  • exact head: dbe465daad3c4ec60a2328046d09a93b1b9e67ec
  • independently resolved live base: develop@9e3e4847510e1e612b48474ba42b177b8ed824df
  • state: open · Draft · GitHub currently mergeable; Draft/mergeability is not merge permission
  • Performance Review Quality run 33299568467, job 99224997471: terminal SUCCESS; exact checkout; 88/88 tests passed; owned package production 194/194 statements and 58/58 branches = 100.00%; compile and clean-checkout evidence are GREEN
  • Foundation CI run 33299568500: terminal SUCCESS
  • Recovery Rehearsal Quality run 33299568464: terminal SUCCESS
  • SAST Semgrep run 33299568495: terminal SUCCESS
  • Security Scan run 33299568489: OSV, Trivy, and Scorecard are GREEN, but dependency-review job 99224997764 is terminal FAILURE. Exact checkout succeeds; the exact dependency-graph comparison for base 9e3e484… and head dbe465d… returns HTTP 403, so the pinned Dependency Review action is skipped and no dependency-review verdict exists. Existing dedicated-owner handoff ContextualWisdomLab/.github#810 owns that support/configuration boundary.
  • Required OpenCode run 33299567506, job 99225037358: terminal FAILURE because no authenticated opencode-agent/opencode-agent[bot] formal APPROVED or CHANGES_REQUESTED review exists for this exact head. The required check correctly refuses to stand in for the review. Existing owner handoff ContextualWisdomLab/.github#624 owns the review-plane boundary.
  • Required Noema run 33299567503, job 99224995232: terminal FAILURE before an authoritative verdict. Trusted .github@359fc21c406f042190278f600cb2c8a522c445cd materialization, repository-scoped reviewer credential, public-target resolution, and 5/5 provider-secret checks succeed. The shared sidecar vendors contextual-orchestrator@5f2753ace756ddd81049a5221d55e8977572a416, observes 413 request_too_large, falls back to the live OpenRouter ZDR feed, starts locally, then exits before /healthz with review sidecar discovered no eligible models; the actual Noema review/verdict step is skipped. Existing owner handoff ContextualWisdomLab/.github#1399 already carries this current causal class and unchanged-head GREEN acceptance.
  • Required Strix run 33299567491, job 99225287701: terminal FAILURE before actual vulnerability analysis. Trusted .github@359fc21c406f042190278f600cb2c8a522c445cd resolves the exact target/base, target token/visibility, required-workflow smoke, model policy, and 5/5 provider-secret gate; the shared sidecar vendors contextual-orchestrator@5f2753ace756ddd81049a5221d55e8977572a416, receives 413 request_too_large, falls back to the live OpenRouter ZDR endpoint feed, starts on 127.0.0.1:18080, then exits status 1 before /healthz with sidecar emitted an unexpected exception while 14 unstructured diagnostic lines are suppressed. Strix installation and Run Strix (quick) are skipped, so no authoritative vulnerability finding/no-finding exists. Diagnostic artifact 9728572568 (3,805 bytes), SHA-256 90449eb0871452c347088cb33cc359b3128566ffa45cdefcedf78fb36ba4fd38, is diagnostic-only. Existing owner handoff ContextualWisdomLab/.github#1327 already carries this exact central bootstrap failure class and unchanged-head GREEN acceptance; the consumer does not duplicate that handoff.
  • all current inline review threads are resolved after current-source verification
  • no qualifying independent current-head non-author APPROVED review exists

Remaining merge gates

This PR is not merge-ready. It remains Draft and must not merge until the unchanged exact head, or a fresh successor revalidated from zero, has terminal passing evidence for every applicable Orgmetra and central required gate—including Dependency Review/Security, OpenCode, Noema, and Strix—and qualifying independent non-author approval. Queued, pending, skipped-required, cancelled, absent, neutral, failed, stale, predecessor, status-only, fallback-only, and model-only evidence is non-passing.

The remaining required-gate failures are foreign-owner control-plane/runtime boundaries. No Orgmetra shim, route override, no-op retrigger commit, gate weakening, predecessor evidence transfer, self-approval, routine administrator bypass, or foreign source/ref/workflow/settings mutation is permitted.

Scope / non-claims

This slice does not persist the authoritative final rating, free-form reviewer feedback, compensation action, Employment/Job records, or authoritative reference-resolution result. It does not autonomously determine a rating or employment action, and it does not replace accountable human confirmation. It does not claim that an immutable audit/outbox, external signing service, legal-compliance determination, certification, or commercial release is already deployed.

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7812c53c-4d62-4ec1-88e8-328c03f77e4e

📥 Commits

Reviewing files that changed from the base of the PR and between 73fc01f and f6856cc.

📒 Files selected for processing (10)
  • docs/adr/0018-governed-performance-review.md
  • docs/traceability/performance-review.md
  • packages/performance-review/CHANGELOG.md
  • packages/performance-review/README.md
  • packages/performance-review/src/orgmetra_performance_review/packet.py
  • packages/performance-review/tests/test_issuance_integrity.py
  • packages/performance-review/tests/test_packet.py
  • packages/performance-review/tests/test_string_runtime_evidence_integrity.py
  • packages/performance-review/tests/test_temporal_evidence_integrity.py
  • packages/performance-review/tests/test_tenant_identity_privacy.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

orgmetra-performance-review 패키지에 불변 성과 검토 증거 패킷과 공개 API를 추가했습니다. 패킷은 참조, 다이제스트, 버전, 시간 및 거버넌스 필드를 검증하고 canonical JSON과 HMAC 발행 무결성을 제공합니다. 테스트, 100% 커버리지 CI, 추적성 문서 및 참고자료를 추가했습니다.

Changes

성과 검토 증거 패킷

Layer / File(s) Summary
패킷 계약과 발행 무결성
packages/performance-review/src/orgmetra_performance_review/packet.py, packages/performance-review/src/orgmetra_performance_review/__init__.py
PerformanceReviewPacketbuild_performance_review_packet을 공개 API로 제공합니다. 참조, SHA-256 다이제스트, reason_code, evidence_version, 날짜와 UTC 시각을 검증합니다. canonical JSON과 SHA-256 다이제스트를 제공하고 발행 후 변경을 거부합니다.
패킷 계약 회귀 검증과 품질 게이트
packages/performance-review/pyproject.toml, packages/performance-review/tests/*, .github/workflows/performance-review-quality.yml
패키지 빌드, 테스트, 브랜치 포함 100% 커버리지 검증을 구성합니다. 개인정보 비공개, UUID, 문자열·시간 위조 방지, 거버넌스 필드, 발행 무결성 및 repr 동작을 테스트합니다.
거버넌스와 추적성 문서
docs/adr/0018-governed-performance-review.md, docs/traceability/performance-review.md, docs/doctoring/performance-review-references.md, packages/performance-review/README.md, packages/performance-review/CHANGELOG.md
UUID 계약, 증거 버전, 시간 정규화, HMAC 발행 증거, 인간 검토 조건, 책임 범위, 참고자료 및 변경 사항을 문서화합니다.

Estimated code review effort: 4 (Complex) | ~60 minutes

Merge Risk: 🟡 Moderate · up to f6856

The governed performance review packet and digest validation pass the supplied package and security checks, but the PR is not merge-ready because the required Strix check has not produced a terminal successful result and qualifying independent approval is missing.

Sequence Diagram(s)

sequenceDiagram
  participant Builder as build_performance_review_packet
  participant Packet as PerformanceReviewPacket
  participant Export as canonical_json
  participant Digest as sha256_digest
  Builder->>Packet: 검증된 입력으로 패킷 생성
  Packet->>Packet: UTC 시각 고정 및 HMAC 봉인 등록
  Export->>Packet: 발행 봉인과 현재 페이로드 검증
  Packet-->>Export: 검증된 canonical JSON 반환
  Digest->>Export: canonical UTF-8 JSON 요청
  Export-->>Digest: canonical JSON 반환
  Digest-->>Builder: SHA-256 다이제스트 반환
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.89% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 76 functions across 7 files. (4 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 governed performance review packet 추가라는 주요 변경 사항을 정확히 설명하며, 짧고 명확합니다.
Full details: Docstring Coverage

Explanation

Docstring coverage is 57.89% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 76 functions across 7 files. (4 skipped: 4 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/governed-performance-review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as ready for review August 18, 2026 22:07

Copy link
Copy Markdown
Contributor Author

@opencode-agent Please independently review exact current head 780a65844a3dd2bfd94cfb8d619a3ca99461f5ad against protected develop f815feedcb0bac264d9814b2932338c512276110. Re-read the full current diff and verify the fixed performance_review purpose invariant, authoritative-scope-resolution boundary, PII/value minimization, exact 100% owned statement/branch coverage, and current review-thread state rather than predecessor evidence. If this unchanged head satisfies the repository review standard, submit a formal qualifying APPROVE; otherwise leave only exact, reproducible source-backed findings. Do not modify the branch, rerun/cancel workflows, weaken gates, or merge.

@seonghobae
seonghobae marked this pull request as draft August 19, 2026 03:21
@seonghobae
seonghobae marked this pull request as ready for review August 19, 2026 06:12

Copy link
Copy Markdown
Contributor Author

@opencode-agent Please independently review the current exact head 73fc01f6db7675f193a4b85a8fcf66f33825d208 against protected develop 93f86ad6ab5083f4d82422d517d9352d7384d3be. Fresh exact-head Performance Review Quality 32221996898, Foundation CI 32221996959, Security Scan 32221996937, SAST Semgrep 32221996873, and Recovery Rehearsal Quality 32221997163 are terminal GREEN; fresh thread inspection is empty. Please verify the bounded PII-minimized pre-rating contract, immutable requires_authoritative_resolution, fixed-purpose fail-closed invariant, deterministic evidence digest, reviewer/human-authority boundary, and that this packet cannot authorize rating mutation. Submit a formal APPROVE or REQUEST_CHANGES on this exact head; do not reuse predecessor-head evidence.

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 19, 2026 06:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant