Skip to content

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

Draft
seonghobae wants to merge 32 commits into
developfrom
feat/candidate-offer-response-evidence
Draft

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

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Buyer-visible scope

This Orgmetra-only PR adds value-minimized candidate offer acceptance/decline evidence without granting hire authority or mutating Keyverse. The packet binds exact approved-offer and offer-terms digests, keeps candidate identity on the released Keyverse-compatible opaque-reference boundary, excludes compensation/PII/free-form decline text, and requires authoritative identity re-resolution before consequential use.

Protected-parent adoption and causal repair

Current exact head is c62dd2c536b8b2e10a4912e34637e8dcf0d8fdf8 on protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f; the PR remains open · Draft.

Predecessor b9d09ba21cdcf7a2c5c321b92a2d13c8c8aeed6c was the ordinary non-force protected-parent adoption. Hosted Foundation 34005884590 exposed the semantic adoption RED: the feature ancestry resurrected .github/workflows/candidate-offer-response-quality.yml with ubuntu-latest, violating protected #161's canonical workflow inventory and exact ubuntu-24.04 runner contract.

c62dd2c... repairs that cause without force update or gate weakening: it retires the leaf, moves the SHA-256-bound built-wheel test, isolated venv, hash-pinned pytest/coverage toolchain and exact 100% statement/branch threshold into canonical Foundation CI, adds a regression that keeps the leaf retired, updates traceability/changelog, and reseals manifest.json against exact Foundation bytes (sha256=f68fecb02c7ebbd6fb4b9d4befa852645e89d32cee8ff7f767dbb97c70f9a4ea, 9936 bytes, 164 lines). No candidate-response production behavior, Keyverse boundary, protected-parent delta, coverage threshold or central gate was weakened.

Current acceptance

Foundation 34009407800 and SAST Semgrep 34009407753 are terminal SUCCESS on exact c62dd2c.... Security Scan 34009407805 is terminal FAILURE only because dependency-review job 101428282920 verifies the exact head and then fails at Check dependency review support; the pinned Dependency Review action is skipped. The OSV and Trivy jobs complete successfully, but they do not substitute for the missing authoritative Dependency Review verdict.

CodeQL PR 34009407818 is also terminal FAILURE, but not from a demonstrated Orgmetra SARIF/source finding. Language detection succeeds; Python job 101428342134 and Actions job 101428342194 both successfully request the current-head CodeQL dispatch and fail only at Release runner or enforce current-head CodeQL verdict. This remains the central verdict-production/authorization handoff. Orgmetra does not synthesize the missing verdict, weaken the gate, or add a no-op retrigger.

Historical a72463a... evidence (60 tests and then-current 100% coverage) and failed b9d09ba... evidence remain predecessor-only. The PR stays Draft while authoritative Dependency Review/CodeQL and the then-applicable review gates remain non-passing.

PR #108 remains dependency-first and must not copy this mutable parent. Required order is: terminal #80 current-head gates and ordinary protected admission → #80 normal protected integration → #108 non-force adoption/retarget preserving its full valid delta → fresh descendant acceptance.

No self-approval, routine administrator bypass, no-op retrigger churn, predecessor-evidence transfer, force-push/destructive rebase, or dedicated-writer dependency mutation.

@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.

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

@seonghobae
seonghobae marked this pull request as draft September 6, 2026 00:08
Preserve the complete governed candidate-offer response evidence delta from a72463a while adopting protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f using GitHub's conflict-free exact merge tree. Preserve #161 repository-workflow consolidation and keep dependency-first child #108 unmerged until this parent integrates normally.

No force-push, gate weakening, foreign-owner source copy, or release claim.
Repair the hosted Foundation RED exposed after protected-parent adoption. Retire the resurrected candidate-offer-response leaf workflow, preserve its SHA-256-bound installed-wheel and isolated-toolchain coverage contract inside canonical one-job Foundation CI, add a regression that keeps the leaf retired, update traceability/changelog, and reseal the exact Foundation manifest.

No production behavior, coverage threshold, protected-parent history, or dependency boundary is weakened.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant