Skip to content

feat(talent): add governed candidate offer response evidence - #80

Open
seonghobae wants to merge 30 commits into
developfrom
feat/candidate-offer-response-evidence
Open

feat(talent): add governed candidate offer response evidence#80
seonghobae wants to merge 30 commits into
developfrom
feat/candidate-offer-response-evidence

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Current exact state

This Orgmetra-only PR adds value-minimized candidate offer acceptance/decline evidence without granting hire authority or mutating Keyverse. Exact current head: a72463a431ee5fb90cc7956a8e2bdd1df4bcf702; live base: develop@9e3e4847510e1e612b48474ba42b177b8ed824df.

The current branch closes checked-versus-emitted evidence races, makes copied/deserialized packets without governed issuance seals fail closed, normalizes timezone-overflow failures, and requires authoritative identity-boundary re-resolution before consequential use. Current review threads are resolved/outdated or informational; no current thread identifies an actionable authorization/privacy/data-integrity defect. Keyverse remains read-only and PR #108 remains a dependency-first descendant.

All applicable exact-head Orgmetra workflows are terminal GREEN: Candidate Offer Response 32850711828, Foundation 32850711823, Recovery 32850711818, SAST 32850711806, Security 32850711868. No qualifying independent non-author APPROVE or CHANGES_REQUESTED exists.

Merge governance

This exact head is technically ready for qualifying independent review, not merge-authorized. Fresh effective organization ruleset 18156473 — CWL Central required workflows is active on ~DEFAULT_BRANCH, but its current live policy is weaker than Orgmetra's acquisition-grade acceptance: it requires 1 approving review, dismisses stale reviews on push, does not require last-push approval, requires review-thread resolution and central required workflows, blocks deletion/non-fast-forward updates, and permits OrganizationAdmin bypass_mode=always / current-user always-bypass.

Issue #89 owns that commercial-control gap. Orgmetra acceptance remains at least 2 qualifying independent non-author approvals, approval after the last push, all applicable exact-current-head local/central gates terminal GREEN, resolved conversations, and no routine administrator bypass. Keep unmerged until those stricter controls are satisfied on the unchanged head. Do not self-approve, use routine administrator bypass, transfer predecessor evidence, or mutate a dedicated-writer dependency.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

후보 오퍼 응답을 불변 증거 패킷으로 생성하고 검증하는 Python 패키지를 추가했다. canonical JSON, SHA-256 다이제스트, 생성 seal, UTC 시간 및 민감정보 제한을 적용한다. wheel 설치와 100% 커버리지를 검증하는 GitHub Actions 워크플로와 관련 문서도 추가했다.

Changes

후보 오퍼 응답 증거

Layer / File(s) Summary
패킷 계약과 생성 경로
packages/candidate-offer-response/src/..., packages/candidate-offer-response/tests/test_response.py, packages/candidate-offer-response/tests/test_external_identity_reference_contract.py
CandidateOfferResponsePacketbuild_candidate_offer_response를 추가했다. 식별자, 참조, 다이제스트, 응답 코드, 시간, 버전 및 고정 거버넌스 필드를 검증한다.
정규화와 생성 무결성 봉인
packages/candidate-offer-response/src/..., packages/candidate-offer-response/tests/test_checked_snapshot_integrity.py, packages/candidate-offer-response/tests/test_creation_seal_integrity.py
검증된 스냅샷을 canonical JSON으로 직렬화한다. 생성 seal과 현재 다이제스트가 다르면 오류를 발생시킨다.
패키지 빌드와 격리 실행
packages/candidate-offer-response/pyproject.toml, packages/candidate-offer-response/tests/test_artifact_execution.py, .github/workflows/candidate-offer-response-quality.yml
Python 패키지와 테스트 설정을 추가했다. 해시 고정 wheel을 별도 가상환경에 설치하고 컴파일, 의존성, 경로, pytest 및 100% 커버리지를 검증한다.
계약 추적성과 운영 문서
packages/candidate-offer-response/README.md, packages/candidate-offer-response/CHANGELOG.md, docs/traceability/candidate-offer-response.md, docs/doctoring/candidate-offer-response-references.md
패킷의 입력, 제한, 신뢰 경계, 외부 신원 참조, 후속 고용 검증 및 변경 사항을 문서화했다.

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

Merge Risk: 🟡 Moderate · up to 5070f

The PR adds bounded candidate offer acceptance and decline evidence, but merge readiness remains affected by an incorrect failure mode for copied or deserialized packets and documentation that could imply candidate-origin authentication without authoritative identity verification. These are bounded runtime and downstream security/correctness risks requiring owner follow-up before merge.

Sequence Diagram(s)

sequenceDiagram
  participant Builder as build_candidate_offer_response
  participant Packet as CandidateOfferResponsePacket
  participant Serializer as canonical_json
  Builder->>Packet: 검증된 응답 필드 전달
  Packet->>Serializer: 검증된 스냅샷 직렬화 요청
  Serializer-->>Packet: canonical JSON과 SHA-256 다이제스트 반환
  Packet->>Packet: 생성 seal과 현재 상태 비교
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring check was indeterminate for this PR — some files could not be analyzed in time. Not blocking.
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 PR 제목은 후보자 오퍼 응답 증거 계약과 거버넌스 기능 추가라는 주요 변경을 정확하고 간결하게 설명합니다.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/candidate-offer-response-evidence

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.

github-code-quality[bot]

This comment was marked as resolved.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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 22, 2026 10:13
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

1 similar comment
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 22, 2026 12:08
@seonghobae
seonghobae marked this pull request as ready for review August 22, 2026 12:11
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 22, 2026 19:12
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 24, 2026 08:37
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as ready for review August 24, 2026 11:00
devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 24, 2026 15:39
@seonghobae
seonghobae marked this pull request as ready for review August 24, 2026 15:39
@seonghobae seonghobae closed this Aug 24, 2026
@seonghobae seonghobae reopened this Aug 24, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

UTC detachment in _freeze_timestamp now catches OverflowError near
datetime.min/max and raises the contract ValueError instead of leaking
an implementation detail. Parametrized regressions cover both governed
timestamps; package suite stays at 100% statement+branch coverage
(60 tests). Addresses Devin review observation on PR #80.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

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