Skip to content

docs: establish canonical product documentation authority - #93

Closed
seonghobae wants to merge 318 commits into
mainfrom
docs/canonical-documentation-authority
Closed

docs: establish canonical product documentation authority#93
seonghobae wants to merge 318 commits into
mainfrom
docs/canonical-documentation-authority

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Purpose

Establish the canonical repository documentation authority for pg-llm-batch: PRD/TRD, root architecture, UML/ERD, threat/data-governance/test/operability/release/licensing contracts, traceability, ADRs, and machine-checkable documentation fitness. Canonical files own durable product/architecture truth; this PR body records transient integration evidence only.

Fresh topology — 2026-08-14

  • protected main: d0a4b30be1f46536e352443309f3a35533156767;
  • historical source head: 04be89420673e3f499301ba54f4613813d6323fe on docs/canonical-documentation-authority;
  • live comparison remains 318 ahead / 157 behind, merge base bf2cc2e140dc3ff4a56c3203f80f41bb9fed5d10;
  • GitHub reports this PR Draft and not mergeable on its current ancestry;
  • protected main still does not contain docs/product/PRD.md, docs/product/TRD.md, docs/DOCUMENTATION_FITNESS.md, or docs/TRACEABILITY.md, so the canonical documentation gap remains real;
  • every returned inline review thread is resolved; historical review/check evidence on intermediate heads does not transfer to this exact historical source or a future current-main reconstruction.

Protected-main status correction

The next documentation reconstruction must classify shipped behavior from the exact protected tree rather than preserving old PR overlays:

The merged checkpoint store provides durable checkpoint/CAS and optional same-PostgreSQL-transaction coupling; the docs must not turn that into a distributed exactly-once claim. The merged #189 primitive provides bounded host-selected reconciliation only. Durable candidate discovery and transient single-flight are active review surfaces, while package-owned scheduling, durable result application/checkpoint coupling, terminal retirement, and complete crash/restart worker semantics remain residual capabilities until integrated.

#190 has two current exact-head CHANGES_REQUESTED reviews from the same authenticated central OpenCode dispatch after attempts 1 and 2 failed in read-only .github coverage-evidence while materializing the trusted uv archive (HTTPError). Its repository-owned exact-head quality/security/release checks are not a substitute for that formal review state. #191 has terminal-success exact-head repository quality/security/release evidence after promotion to Ready, but currently has no formal review submission or review thread. The live organization ruleset requires one approving review on the unchanged last push and review-thread resolution. Neither active PR is protected-main product truth merely because its source checks are green.

Current documentation writer boundary

This PR remains the explicit broad canonical-documentation owner. Retained docs/canonical-documentation-current-main* refs remain on the same broad surfaces and are active-writer evidence under the repository contract, so a competing broad documentation branch must not be created or treated as authoritative without ownership reconciliation.

Do not merge this historical source merely to make documents appear on main, and do not directly update protected-main documentation outside a current-main-compatible PR.

Reconstruction requirement

Rebuild the canonical graph non-destructively from an exact freshly read protected-main commit after the active product/security queue is sufficiently stable. Preserve only current durable semantics and classify every target as IMPLEMENTED-ON-PROTECTED-MAIN, ACTIVE-PR, PLANNED, PARTIAL, or SUPERSEDED.

The reconstruction must reconcile current protected-main resumable/provider lifecycle behavior, observability boundaries, /healthz privacy, durable checkpoint storage, integrated bounded reconciliation, active durable candidate discovery, active single-flight, legacy-extension retirement, packaging work, provider-file lifecycle/retention, tenant/privacy boundaries, PostgreSQL transport/timeout policy, and current release evidence. Do not transfer stale PR numbers, SHAs, checks, reviews, approvals, synthetic merge evidence, or release-readiness claims.

Integration boundary

Keep Draft. Do not merge the diverged historical graph wholesale. Promote only a current-main-compatible unchanged final documentation source after exact-head CI/security/coverage/docstring/package/provenance/release evidence, live ruleset verification, zero valid unresolved findings, and every approval requirement actually imposed by policy.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

제품, 아키텍처, 운영, 보안, 릴리스 및 문서 거버넌스 문서를 추가했다. 보호된 main과 ACTIVE-PR 상태를 구분했다. 필수 문서, 공개 색인, 시크릿 처리 및 라이선스 계약을 검증하는 테스트도 추가했다.

Changes

정식 문서 권위 체계

Layer / File(s) Summary
제품 및 아키텍처 계약
ARCHITECTURE.md, docs/product/*, docs/superpowers/plans/...
제품 목적, 공개 계약, 기술 요구사항, 시스템 경계, 자원 제한, 배포 형태 및 보호된 main과 ACTIVE-PR의 구분을 정의했다.
데이터 및 런타임 모델
docs/architecture/*, docs/adr/foundation-*
PostgreSQL 영속 모델과 provider lifecycle, 배치 준비, 결과 처리, health 및 배포 흐름을 ERD, UML 및 ADR로 문서화했다.
운영, 보안 및 릴리스 계약
docs/OPERABILITY.md, docs/THREAT_MODEL.md, docs/RELEASE_ACCEPTANCE.md, docs/TEST_STRATEGY.md, docs/LICENSING_AND_IP.md
readiness, 실패 처리, 개인정보 제한, 위협 통제, 테스트 증거, 라이선스 검증, 릴리스 승인, 복구 및 롤백 조건을 정의했다.
문서 거버넌스와 증거 권위
docs/DOCUMENTATION_FITNESS.md, docs/TRACEABILITY.md, docs/adr/README.md, docs/automation/*
문서 상태, 요구사항 추적성, ADR 권위, work-conserving 유지보수, writer lease 및 리뷰 증거 분리를 정의했다.
계약 검증 및 공개 고지
README.md, tests/*, CHANGELOG.md, NOTICE
문서 링크, 공개 API 및 CLI 계약, 시크릿 입력, 데이터 거버넌스, ADR, 라이선스 및 SBOM 고지를 검증했다.

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

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 제목은 제품 문서의 정식 권위 체계를 수립하는 변경사항을 정확하고 간결하게 요약합니다.
✨ 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 docs/canonical-documentation-authority

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 9, 2026 14:08

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

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/adr/README.md`:
- Around line 26-30: Reconcile the checkpoint replacement chain across all
authority documents using the verified live PR graph: update docs/adr/README.md
lines 26-30 with the canonical current implementation owner, replacement, and
stale predecessor; update ARCHITECTURE.md lines 173-180 to show only current
owners in the ACTIVE-PR overlay and separate superseded PRs; update
docs/product/PRD.md lines 138-144 so PRD-T5 and PRD-T6 reference the confirmed
replacement chain; and update docs/product/TRD.md lines 150-156 so TRD-REL4
points to the confirmed audit, pagination, and manifest owners.

In `@docs/architecture/ERD.md`:
- Around line 76-96: Update the llm_remote_batch_jobs entity definition to
include input_file_id, batch_endpoint, output_file_id, error_file_id,
total_requests, completed_requests, failed_requests, first_seen_at,
last_observed_at, terminal_at, and updated_at, matching
persist_remote_batch_state(). Also document the composite unique key
(endpoint_alias, remote_batch_id) in the ERD legend or schema description so the
provider identity and idempotency contract are explicit.

In `@docs/architecture/UML.md`:
- Around line 32-38: 배치 준비 순서를 구현과 일치하도록
PostgresBatchOrchestrator.prepare_batches 및 관련 canonical 문서와 contract test를
수정하십시오. 요청 데이터 읽기 후 token counting과 partitioning을 수행하고, _persist_payloads()에서
payload 파일을 먼저 저장한 뒤 requests와 JSONL lines를 저장하는 순서를 docs/OPERABILITY.md와 UML에
반영하십시오. 각 단계 실패 시 이미 영속화된 durable state 설명도 이 순서에 맞게 갱신하십시오.

In `@docs/OPERABILITY.md`:
- Line 90: Update the checkpoint migration status statement in OPERABILITY.md to
mark PR `#80` as SUPERSEDED and reference the current ACTIVE-PR `#95` replacement,
keeping the documentation consistent with DOCUMENTATION_FITNESS.md and
TRACEABILITY.md.

In `@docs/superpowers/plans/2026-08-09-canonical-documentation-authority.md`:
- Around line 33-37: Update the checklist in the canonical documentation plan to
mark only completed deliverables as [x], including the added documentation and
contract test when their creation is confirmed. Keep steps requiring RED/GREEN
execution evidence, exact-head validation, or still-missing documents as [ ].

In `@tests/test_documentation_fitness_contract.py`:
- Around line 60-117: Strengthen
test_architecture_graphs_are_machine_readable_and_status_aware and
test_api_contract_separates_current_surface_from_active_targets beyond substring
checks: parse structured protected-main and active-PR sections and assert each
ERD entity is classified in the correct section. Compare documented package-root
exports and CLI commands against the source or a source-generated manifest,
failing on missing, extra, or mismatched public surfaces.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 75048b9f-ca43-4a36-8fe3-9c67a79fd82c

📥 Commits

Reviewing files that changed from the base of the PR and between bf2cc2e and 02dd4f0.

📒 Files selected for processing (17)
  • ARCHITECTURE.md
  • docs/DOCUMENTATION_FITNESS.md
  • docs/OPERABILITY.md
  • docs/RELEASE_ACCEPTANCE.md
  • docs/TEST_STRATEGY.md
  • docs/THREAT_MODEL.md
  • docs/TRACEABILITY.md
  • docs/adr/README.md
  • docs/architecture/ERD.md
  • docs/architecture/UML.md
  • docs/automation/ADR-0001-work-conserving-maintenance.md
  • docs/automation/ADR-0002-evidence-identity-and-writer-lease.md
  • docs/product/API_CONTRACT.md
  • docs/product/PRD.md
  • docs/product/TRD.md
  • docs/superpowers/plans/2026-08-09-canonical-documentation-authority.md
  • tests/test_documentation_fitness_contract.py

Comment thread docs/adr/README.md Outdated
Comment thread docs/architecture/ERD.md Outdated
Comment thread docs/architecture/UML.md
Comment thread docs/OPERABILITY.md Outdated
Comment thread docs/superpowers/plans/2026-08-09-canonical-documentation-authority.md Outdated
Comment thread tests/test_documentation_fitness_contract.py

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/architecture/UML.md (2)

119-127: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

UML의 merge readiness 흐름을 실제 merge/protected-main 계약과 맞추십시오.

GATE --> MAIN 화살표는 모든 정책 게이트 충족 후 바로 protected main에 도달하는 것처럼 보입니다. 실제 merge에는 merge 작업, open PR queue 재검증, finding 해결 확인, 보호 브랜치/라이브 graph 재검증이 필요합니다. GATE 뒤에 명시적인 merge 단계와 protected-main post-check 단계를 추가하거나 docs/RELEASE_ACCEPTANCE.md 계약과 직접 연결하십시오. Synthetic merge ref의 비권위 표기는 유지하십시오.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture/UML.md` around lines 119 - 127, Update the UML
merge-readiness flow around GATE and MAIN to show explicit merge execution and
protected-main post-check/revalidation steps, including open-PR queue, finding
resolution, branch protection, and live-graph checks, or link these steps
directly to the docs/RELEASE_ACCEPTANCE.md contract. Preserve the existing
Synthetic merge ref/status-only evidence annotation as non-authoritative for
source identity.

95-98: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

UML 체크포인트 교체 체인에 #92#97 전체 순서를 넣으십시오.

현재 docs/architecture/UML.md#92/#94 successors만 표기하지만, 문서 체계는 현재 교체 체인을 #92#94#95#96#97로 정의합니다. CP#92 #94 #95 #96 #97``의 현재 선형 교체 순서로 명시하고, 기존 구현이 SUPERSEDED 상태를 받는지 DRAFT/#97의 snapshot-manifest successor 역할을 명확히 표시하십시오.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture/UML.md` around lines 95 - 98, Update the UML checkpoint
replacement chain around CP in docs/architecture/UML.md to show the complete
ordered sequence `#92` → `#94` → `#95` → `#96` → `#97` instead of only `#92/`#94 successors.
Clarify that the existing implementation accepts the SUPERSEDED state, and
identify the DRAFT/#97 snapshot-manifest successor role in the diagram.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/test_documentation_fitness_contract.py`:
- Around line 237-238: Update the UML assertion around `_assert_text_order` to
first extract the `sequenceDiagram` Mermaid code-block body from `uml` using a
DOTALL regex, assert the sequence diagram exists, and apply the expected-order
check only to `sequence_match.group("body").lower()` rather than the entire UML
section; keep the operability assertion unchanged.

---

Outside diff comments:
In `@docs/architecture/UML.md`:
- Around line 119-127: Update the UML merge-readiness flow around GATE and MAIN
to show explicit merge execution and protected-main post-check/revalidation
steps, including open-PR queue, finding resolution, branch protection, and
live-graph checks, or link these steps directly to the
docs/RELEASE_ACCEPTANCE.md contract. Preserve the existing Synthetic merge
ref/status-only evidence annotation as non-authoritative for source identity.
- Around line 95-98: Update the UML checkpoint replacement chain around CP in
docs/architecture/UML.md to show the complete ordered sequence `#92` → `#94` → `#95` →
`#96` → `#97` instead of only `#92/`#94 successors. Clarify that the existing
implementation accepts the SUPERSEDED state, and identify the DRAFT/#97
snapshot-manifest successor role in the diagram.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6da38763-debf-4b21-9e46-08d16234ec91

📥 Commits

Reviewing files that changed from the base of the PR and between 02dd4f0 and 0cbbdb5.

📒 Files selected for processing (9)
  • ARCHITECTURE.md
  • docs/OPERABILITY.md
  • docs/adr/README.md
  • docs/architecture/ERD.md
  • docs/architecture/UML.md
  • docs/product/PRD.md
  • docs/product/TRD.md
  • docs/superpowers/plans/2026-08-09-canonical-documentation-authority.md
  • tests/test_documentation_fitness_contract.py
🚧 Files skipped from review as they are similar to previous changes (7)
  • docs/adr/README.md
  • docs/product/PRD.md
  • ARCHITECTURE.md
  • docs/superpowers/plans/2026-08-09-canonical-documentation-authority.md
  • docs/OPERABILITY.md
  • docs/product/TRD.md
  • docs/architecture/ERD.md

Comment thread tests/test_documentation_fitness_contract.py Outdated

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

Actionable comments posted: 6

🧹 Nitpick comments (1)
tests/test_bootstrap_secret_documentation_contract.py (1)

14-19: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

보안 계약을 문자열 존재 검사보다 강하게 고정하세요.

현재 검사는 fernet keysensitive bootstrap가 문서의 어느 위치에든 있으면 통과합니다. PG_LLM_BATCH_SECRET_KEY가 제거되거나, Fernet key가 provider credential과 구분되지 않아도 테스트가 통과할 수 있습니다. 실제 문구 관계를 같은 섹션 또는 정규식으로 검증하세요.

근거: README.md Lines 17-21과 docs/THREAT_MODEL.md Lines 26-30의 보안 구분입니다.

검증 범위를 강화하는 예
     assert "provider credentials stay out of the environment" in readme
-    assert "fernet key" in readme
-    assert "sensitive bootstrap" in readme
+    assert "pg_llm_batch_secret_key" in readme
+    assert "fernet key is sensitive bootstrap secret material" in readme
     assert "bootstrap fernet key" in threat_model
-    assert "secret material" in threat_model
+    assert "distinct from database-backed provider credentials" in threat_model
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/test_bootstrap_secret_documentation_contract.py` around lines 14 - 19,
테스트의 단순 문자열 존재 검사를 README와 위협 모델의 보안 문구 관계를 검증하도록 강화하세요.
`test_bootstrap_secret_documentation_contract`에서 `PG_LLM_BATCH_SECRET_KEY`가 문서에서
제거되었는지 확인하고, Fernet key가 provider credential과 구분되어 같은 섹션 또는 정규식으로 함께 명시되는지
검증하세요. 기존의 무관한 위치에서의 `fernet key` 및 `sensitive bootstrap` 단독 검사는 해당 관계 검증으로
대체하세요.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/TRACEABILITY.md`:
- Around line 23-27: Update the checkpoint replacement status rows in
TRACEABILITY.md so they match the current exact head
1d503703b8a7eff9249521f2317af8aa67313bab: record CI, SAST, and security checks
as pending/required until fresh exact-head gates complete, and attribute
existing successful results only to the specific staged replacement or revision
that produced them. Ensure the table does not claim exact-head CI or Release
Acceptance success without current exact-head evidence.
- Line 68: Update the line beginning with `#84` in the traceability documentation
by wrapping the PR reference in inline code formatting, while preserving the
rest of the statement unchanged.

In `@README.md`:
- Around line 91-96: Replace the provider API key examples in README.md around
config set-secret with a protected-main-supported stdin, prompt, or
secret-manager input path that avoids exposing the key through argv, shell
history, or process inspection. Document that safe input method as the canonical
production procedure, and do not present the command as canonical until such a
path is available; keep the existing com_secrets storage guidance intact.
- Around line 234-241: Update the README index section around “Canonical product
and acquisition-readiness authority” to distinguish ACTIVE-PR documentation from
protected-main/shipped authority. Add a clear status notice stating that
ACTIVE-PR documents are proposals and must not be treated as shipped behavior,
and explicitly designate docs/DOCUMENTATION_FITNESS.md as the reference for
documentation maturity.
- Around line 17-22: Update the provider-credentials statement in the README’s
configuration overview to scope it explicitly to the standalone/default setup,
rather than presenting it as universal. Preserve the existing Postgres KV, DSN,
and Fernet-key details while acknowledging that host applications may supply
credentials through the documented Callable[[str], GatewayCredentials]
integration.

In `@tests/test_documentation_authority_adr_contract.py`:
- Around line 15-16: Update the ADR index assertion in the documentation
authority test to verify the actual Markdown link target, specifically the
relative target ../automation/ADR-0003-canonical-documentation-authority.md,
rather than only checking ADR_PATH text appears in the index. Preserve the
existing file-loading setup and assert that this target is present as a link
destination in the README content.

---

Nitpick comments:
In `@tests/test_bootstrap_secret_documentation_contract.py`:
- Around line 14-19: 테스트의 단순 문자열 존재 검사를 README와 위협 모델의 보안 문구 관계를 검증하도록 강화하세요.
`test_bootstrap_secret_documentation_contract`에서 `PG_LLM_BATCH_SECRET_KEY`가 문서에서
제거되었는지 확인하고, Fernet key가 provider credential과 구분되어 같은 섹션 또는 정규식으로 함께 명시되는지
검증하세요. 기존의 무관한 위치에서의 `fernet key` 및 `sensitive bootstrap` 단독 검사는 해당 관계 검증으로
대체하세요.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9b3eea5e-ba62-41d1-9592-ef95c8c067c1

📥 Commits

Reviewing files that changed from the base of the PR and between 0cbbdb5 and fd38d3d.

📒 Files selected for processing (12)
  • ARCHITECTURE.md
  • README.md
  • docs/DOCUMENTATION_FITNESS.md
  • docs/THREAT_MODEL.md
  • docs/TRACEABILITY.md
  • docs/adr/README.md
  • docs/architecture/UML.md
  • docs/automation/ADR-0003-canonical-documentation-authority.md
  • tests/test_bootstrap_secret_documentation_contract.py
  • tests/test_documentation_authority_adr_contract.py
  • tests/test_documentation_fitness_contract.py
  • tests/test_readme_documentation_index.py
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/DOCUMENTATION_FITNESS.md
  • ARCHITECTURE.md
  • docs/THREAT_MODEL.md
  • docs/adr/README.md
  • docs/architecture/UML.md
  • tests/test_documentation_fitness_contract.py

Comment thread docs/TRACEABILITY.md Outdated
Comment thread docs/TRACEABILITY.md Outdated
Comment thread README.md Outdated
Comment thread README.md
Comment thread README.md Outdated
Comment thread tests/test_documentation_authority_adr_contract.py Outdated

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 119-124: README.md의 prompt 기반 SecretStore 절차보다 먼저
PG_LLM_BATCH_SECRET_KEY Fernet 키 설정 블록을 배치하세요. export 방식을 유지하는 경우 절차 완료 후 환경 변수를
해제하는 unset 단계도 추가하고, SecretStore 생성 이후에 키가 설정되는 실행 순서는 제거하세요.
- Around line 85-109: Update the README’s getpass-based credential example so
terminal echo failures fail closed: promote getpass.GetPassWarning to an
exception and stop secret input when echo cannot be disabled. Emit the exact
message “cannot disable terminal echo; refusing secret input” instead of
allowing the stdin fallback, while preserving normal prompt behavior when echo
protection succeeds.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: dacc856f-1778-4ffd-a199-f6fe43f37992

📥 Commits

Reviewing files that changed from the base of the PR and between fd38d3d and 0db0c03.

📒 Files selected for processing (4)
  • README.md
  • docs/TRACEABILITY.md
  • tests/test_bootstrap_secret_documentation_contract.py
  • tests/test_documentation_authority_adr_contract.py
🚧 Files skipped from review as they are similar to previous changes (3)
  • tests/test_documentation_authority_adr_contract.py
  • tests/test_bootstrap_secret_documentation_contract.py
  • docs/TRACEABILITY.md

Comment thread README.md
Comment thread README.md Outdated

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head cfcb149cb8e2018e78e310ae07127c14744df9b8.

  • Head SHA: cfcb149cb8e2018e78e310ae07127c14744df9b8

  • Workflow run: 31327573966

  • Workflow attempt: 1

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (2 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (2 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs (20 files)"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs (20 files)"]
  R2 --> V2["docs review"]
  Evidence --> S3["Test (6 files)"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test (6 files)"]
  R3 --> V3["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: b57fd334a7d37d206db1942d7bb6dbe74d9c8418
  • Workflow run: 31345985649
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head b57fd334a7d37d206db1942d7bb6dbe74d9c8418.

  • Head SHA: b57fd334a7d37d206db1942d7bb6dbe74d9c8418

  • Workflow run: 31345985649

  • Workflow attempt: 1

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (4 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (4 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs (25 files)"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs (25 files)"]
  R2 --> V2["docs review"]
  Evidence --> S3["Test (12 files)"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test (12 files)"]
  R3 --> V3["targeted test run"]
Loading

Copy link
Copy Markdown
Contributor Author

This historical documentation graph is being retired rather than merged. Its current ancestry is materially diverged from protected main, and transferring its broad factual overlays would reintroduce superseded product and PR state. Canonical documentation ownership is released here so the live feature queue can add narrowly scoped operator truth on exact current main; a later canonical documentation reconstruction must be built from protected-main source evidence rather than this branch history.

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