diff --git a/docs/batches/bat-058_20260716_cost-basis-safe-sync-seed/verification.md b/docs/batches/bat-058_20260716_cost-basis-safe-sync-seed/verification.md index 8e00df5..4e7c070 100644 --- a/docs/batches/bat-058_20260716_cost-basis-safe-sync-seed/verification.md +++ b/docs/batches/bat-058_20260716_cost-basis-safe-sync-seed/verification.md @@ -37,6 +37,7 @@ - Lead 판정: 사용자 지시에 따라 QC-7 `PASS-WITH-NOTES`를 수용하여 BAT-058의 `confirm-batch-verification`을 완료하고 `release-candidate`로 승격한다. - Note 해소: REQ-123 AC-10의 release artifact/explicit approval/dry-run evidence/live execution은 **Release 단계의 별도 gate**다. 이 batch confirmation은 release approval, `sync --live`, 배포, credential 접근을 승인하지 않는다. - Ledger note: 이전 QC 반복 횟수 표기는 과거 handoff 사이에 불일치가 있어 이 verification의 판정 근거로 사용하지 않는다. 이번 confirmation의 근거는 QC-7의 독립 verdict와 위 재실행 증적이다. +- Immutable provenance mapping: 구현 payload는 PR #43의 [`81a853a`](https://github.com/fourblocks2020/trex-core/commit/81a853a314391da7a8bc9df5517013c7fd296d61)이다. post-commit PR QC는 docs-only head `81c9259`에서 focused `113 passed`, full `833 passed, 47 skipped`, Ruff/compileall/diff hygiene를 독립 재실행했고, `81a853a..81c9259`의 `trex_core`/`tests` delta가 없음을 확인했다. 그 QC의 initial FAIL은 코드 동작이 아니라 REL-012 source-publication 문서 모순이며, 해당 문서-only remediation과 re-QC가 merge 전 필요하다. ## 실행 커맨드 및 실제 재실행 결과 diff --git a/docs/releases/rel-012_20260717_cost-basis-safe-sync-seed-hotfix.md b/docs/releases/rel-012_20260717_cost-basis-safe-sync-seed-hotfix.md index adab02f..762d290 100644 --- a/docs/releases/rel-012_20260717_cost-basis-safe-sync-seed-hotfix.md +++ b/docs/releases/rel-012_20260717_cost-basis-safe-sync-seed-hotfix.md @@ -19,9 +19,10 @@ portfolio-hub의 기존 cost-basis 응답에서 canonical `cost_basis_per_unit` | --- | --- | --- | | Remote `origin/main` | `18bd8d9f0b7bb76b08303bbf8743e6ddf916de89` (2026-07-17 fetch) | BAT-058 source is **not included** in this remote revision. | | BAT-058 candidate | [`81a853a`](https://github.com/fourblocks2020/trex-core/commit/81a853a314391da7a8bc9df5517013c7fd296d61) on `origin/feat/dcy-038-cost-basis-safe-sync-seed` | Reviewed code + BAT/REL/runbook source is published; target remains subject to production approval. | -| Immutable deploy target | [`81a853a`](https://github.com/fourblocks2020/trex-core/commit/81a853a314391da7a8bc9df5517013c7fd296d61) | Published and remote-ref verified 2026-07-17; operations independently re-verifies before execution. | +| Immutable deploy payload | [`81a853a`](https://github.com/fourblocks2020/trex-core/commit/81a853a314391da7a8bc9df5517013c7fd296d61) | Published and remote-ref verified 2026-07-17; this is the immutable **code/test payload** used for the daemon checkout. | +| Authoritative release manifest | This REL-012/runbook revision on PR #43 | A docs-only successor of `81a853a`; it is **not** the daemon payload. Before execution, operations records both the immutable payload SHA and the exact manifest commit URL used for the approved runbook. | -This document is a release draft and a preflight request only. It does **not** authorize deployment, daemon restart, broker/portfolio access, `sync --live`, database writes, configuration activation, or credential access. +The immutable daemon deploy payload and the release manifest have distinct roles: `81a853a` is the verified code/test payload; the REL-012/runbook document is an immutable docs-only successor on the same PR. Operations must record both revisions in its evidence. This document is a release draft and preflight request only. It does **not** authorize deployment, daemon restart, broker/portfolio access, `sync --live`, database writes, configuration activation, or credential access. ## Included scope @@ -48,14 +49,14 @@ A single-target `sync --live --yes` remains a separately approved post-release a | Focused Ruff | **PASS** | Changed adapter/reconcile/CLI and relevant tests: `All checks passed!`. | | Focused compile check | **PASS** | Six changed source/test paths, `compileall -q`, exit `0`. | | Live broker, live PostgreSQL, production deploy | **NOT EXECUTED** | Outside batch verification and this draft; no claim is made. | -| Source publication | **PENDING** | No immutable remote candidate SHA exists yet. | +| Source publication | **PUBLISHED** | Immutable daemon payload [`81a853a`](https://github.com/fourblocks2020/trex-core/commit/81a853a314391da7a8bc9df5517013c7fd296d61) is remote-ref verified on `origin/feat/dcy-038-cost-basis-safe-sync-seed`; authoritative REL/runbook is a docs-only successor in PR #43. Operations records both revisions before execution. | ## Release approval gates All items must be satisfied before operations executes the runbook: - [x] Git-ops published the reviewed source and initial REL/runbook draft; target `81a853a` is remote-ref verified on `origin/feat/dcy-038-cost-basis-safe-sync-seed`. -- [ ] Operations verifies that exact target SHA contains REL-012 and its runbook, and captures the actual deployed revision as `ROLLBACK_REVISION`. +- [ ] Operations verifies the exact immutable daemon payload SHA **and** records the exact immutable REL/runbook manifest commit URL used for the run; captures the actual deployed revision as `ROLLBACK_REVISION`. - [ ] User/approver explicitly authorizes production execution and the approved off-market window is recorded. - [ ] Operations confirms the source checkout is clean; existing runtime configuration and credential/break-glass modes will not change. - [ ] Operations confirms no dependency or migration delta exists between `ROLLBACK_REVISION` and the exact target SHA. diff --git a/docs/runbooks/rel-012-cost-basis-safe-sync-seed-deployment.md b/docs/runbooks/rel-012-cost-basis-safe-sync-seed-deployment.md index fd8b30e..810ef1a 100644 --- a/docs/runbooks/rel-012-cost-basis-safe-sync-seed-deployment.md +++ b/docs/runbooks/rel-012-cost-basis-safe-sync-seed-deployment.md @@ -99,7 +99,8 @@ Approved by / timestamp: [REDACTED AS NEEDED] Window: [REDACTED] Host / instance key: [REDACTED] Pre-deploy revision (ROLLBACK_REVISION): -Target revision: +Target revision: +Release manifest revision: Configuration/credential mode unchanged: yes/no (values not recorded) Checkout clean: pass/fail Dependency/migration path delta: none / stop