Skip to content

docs: reconcile architecture documentation fitness - #44

Merged
opencode-agent[bot] merged 150 commits into
mainfrom
docs/reconcile-conversation-architecture-20260810
Aug 13, 2026
Merged

docs: reconcile architecture documentation fitness#44
opencode-agent[bot] merged 150 commits into
mainfrom
docs/reconcile-conversation-architecture-20260810

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Problem

OriginWeave already had a broad PRD/TRD/Architecture/ADR/UML/ERD/security/operability/traceability graph, but protected-main documentation had semantic drift: incomplete ADR discovery, historical implementation lineage presented too prominently, active-PR behavior that could be mistaken for shipped truth, and authority boundaries that lacked machine-checkable reconciliation.

Current semantic verdict

DESIGN-SUFFICIENT / PROTECTED-MAIN-PARTIAL.

The design graph is sufficiently broad to reconstruct product intent, trust boundaries, conceptual data model, operational/release expectations and accepted/planned capability boundaries without chat history. It is not protected-main/as-built closure: active implementation branches remain non-shipped evidence until dependency-ordered integration and fresh protected-main acceptance.

Current exact branch scope

Current exact head is 548e13ab74e05416bd5b4d6f54908e2401ea95b9 against unchanged protected main 67af7c87589edc2039545af335c95064d9b8391c.

The canonical closure at docs/evidence/2026-08-11-active-pr-maturity-closure.md records the larger volatile active graph through PR #106. The dated extension docs/evidence/2026-08-12-browser-protocol-active-pr-evidence.md reconciles browser-protocol/lifetime work through PR #117: #107#114 establish explicit capabilities, exact OriginWeave generation, canonical version parsing, pinned runtime revisions, atomic validation, runtime protocol family, credential-safe validation evidence and exact adapter-version binding; #115 binds validated protocol metadata to one same-call callback; #116 additionally requires current OriginWeave session/context ownership and document epoch; and #117 establishes canonical context origin before semantic-node discovery while preserving same-epoch origin-change rejection. All remain IMPLEMENTED_ON_ACTIVE_PR, not protected-main truth.

PR #117 has since reached exact-green on unchanged head 4f5e9b0f81df48fb178eaafb7cf68a925071ce39: CI 31588082784, Rust contracts 94086457133, exact Production coverage 94086457260, and Manifest V3 Compatibility 31588082643 all succeeded. Its preceding compile failure was a test-harness error-conversion defect (OriginError does not implement std::error::Error), not a production rejection. The dated evidence row remains volatile branch evidence: its earlier queued wording is historical under the file's explicit invalidation rule until a later documentation mutation refreshes that volatile row.

The reconciliation preserves Proposed ADR 0107 lifecycle status and the conceptual ERD because these browser-protocol metadata/validation/evidence/session-context/origin lanes introduce neither a deployed trust domain nor an accepted OriginWeave-owned durable persistence schema. Any moved recorded head or prerequisite invalidates the corresponding branch-local evidence immediately.

Documentation fitness finding

  • ADR: sufficient breadth and lifecycle discipline; Proposed ADRs remain Proposed until an explicit lifecycle transition exists on protected main. PRs feat(core): fail closed on unsupported browser protocol capabilities #107feat(core): bind browser context origin before observation #117 refine Proposed ADR 0107 and existing browser-lifetime authority without accepting an ADR by implementation or merge proximity.
  • PRD/TRD: sufficient design/control contracts, with protected-main implementation state separated from volatile active evidence.
  • Architecture: sufficient for current trust domains and authority-bearing control plane.
  • UML: sufficient for current material authority flows. A detailed real-Chromium adapter → exact OriginWeave generation/runtime protocol family/adapter version/runtime revision/capability → current session/context/canonical-origin/document/node authority as applicable → semantic observation/discovery → policy authorization → immediate exact semantic-state revalidation → real input → exact-node structured post-condition/provenance/recovery/resource-evidence sequence remains mandatory when that executable composition boundary stabilizes.
  • ERD/data model: the conceptual model remains truthful; in-memory policy/value primitives, fixtures and ephemeral browser/resource/model evidence do not justify physical tables.
  • Security/Test/Operability/Release/Traceability/Doctoring: remain distinct from branch-local implementation proof. Active feature evidence is never substituted for protected-main or release evidence.

Exact-head evidence

On unchanged exact documentation head 548e13ab74e05416bd5b4d6f54908e2401ea95b9:

  • CI run 31588205034: success;
  • Manifest V3 Compatibility run 31588205072: success;
  • SAST Semgrep run 31588204943: success;
  • Security Scan run 31588204978: success;
  • every currently returned inline review thread is resolved; and
  • GitHub reports the PR mergeable and Ready for review.

No predecessor-head check or review is transferred to this exact head.

Truth boundary

This PR does not claim the browser/runtime product is complete, any active feature branch is shipped, a Proposed ADR is Accepted, a trusted sensitive-data broker exists, a controlled fixture or compatibility runner is the production browser adapter, one browser-root PID or /proc lineage snapshot equals trusted whole-task resource attribution, extension/native-host/profile admission is an Agent action grant, absence of known extension influence proves high assurance, semantic policy authorization/current-state validation is browser execution, browser-protocol/session-context/origin metadata is authenticated transport or browser-attested state, model-policy metadata equals protected-value disclosure/provider execution, fresh resolution equals trusted DNS/clock provenance, or a documentation branch equals release readiness. PROTECTED-MAIN-SUFFICIENT remains unavailable until the feature heads that actually integrate are reconciled against fresh protected-main acceptance.

@coderabbitai

coderabbitai Bot commented Aug 10, 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

문서 적합성 평가와 ADR 거버넌스 규칙을 확장했습니다. PRD, TRD, 추적성 문서에서 protected-main과 active-PR 상태를 분리했습니다. MV3 권한, 프로토콜, freshness 요구사항을 문서화했습니다. 문서 계약 테스트를 추가·확장했습니다.

Changes

문서 거버넌스 정합성

Layer / File(s) Summary
문서 적합성 평가와 제품·기술 상태
docs/DOCUMENTATION_FITNESS.md, docs/PRD.md, docs/TRD.md
문서군별 상태와 protected-main 및 active-PR 증거를 구분했습니다. HTTP, 민감 데이터, 브라우저, MV3, 리소스 및 릴리스 상태를 갱신했습니다.
추적성 및 freshness 권한
docs/traceability/*
capability maturity, ADR lifecycle, HTTP 근거와 resolution 및 TLS freshness 권한의 상태와 완료 조건을 정의했습니다.
확장 권한 및 프로토콜 경계
docs/adr/0013-manifest-v3-extension-authority.md, docs/doctoring/browser-agent-protocols.md, docs/uml/extension-authority.md, docs/uml/README.md
MV3 호환성 권한과 OriginWeave Agent 권한을 분리했습니다. 브라우저 프로토콜, 민감정보 승인, 실행 후 검증 및 증거 경계를 문서화했습니다.
ADR 및 문서 인덱스 거버넌스
docs/README.md, docs/adr/README.md, docs/adr/0014-architecture-decision-governance.md
Accepted와 Proposed ADR을 분리했습니다. protected-main 거버넌스, 상태 메타데이터, provenance 및 인덱스 완전성 규칙을 추가했습니다.
문서 계약 검증
tests/test_documentation_fitness_contract.py, tests/test_product_documentation_contract.py, tests/test_freshness_traceability_contract.py, tests/test_documentation_discoverability_followup.py
문서 링크, ADR 상태, protected-main 증거 경계, 추적성 라벨, freshness 문서 및 UML 구분을 검증하는 테스트를 추가·갱신했습니다.

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

Possibly related issues

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 제목은 보호된 main 증거와 문서 적합성을 기준으로 아키텍처 문서를 조정하는 PR의 핵심 변경을 정확히 요약합니다.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/reconcile-conversation-architecture-20260810

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 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: 3

🧹 Nitpick comments (1)
docs/adr/README.md (1)

13-15: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

ADR 수락 거버넌스를 전용 ADR에 기록하세요.

docs/adr/README.mdAccepted 독립 승인 요구 조건과 solo-maintainer 예외는 새로운 구속력 있는 거버넌스 결정입니다. 지침에 따라 이 결정, 근거, 취소 조건을 기존 ADR 0002 또는 전용 ADR에 기록하고 해당 ADR을 인덱스에 연결하지 않고 여기서만 정의하지 마세요.

🤖 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/adr/README.md` around lines 13 - 15, Move the binding Accepted-ADR
governance rules from docs/adr/README.md into an existing ADR 0002 or a new
dedicated ADR, including the independent non-author approval requirement,
solo-maintainer exception, supporting rationale, and reversal conditions. Link
the selected ADR from the README index and retain only a concise reference here;
do not define these rules solely in the README.

Source: Coding guidelines

🤖 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`:
- Line 47: Synchronize the ADR 0109 title between the index entry and the H1 in
0109-hourly-automation-operational-closure.md. Update either the index title or
the ADR header so both use the same wording, while preserving the existing ADR
0109 link and status.

In `@docs/DOCUMENTATION_FITNESS.md`:
- Line 34: Update the standards-evidence documentation referenced by
DOCUMENTATION_FITNESS, especially the WARC/PROV, WebDriver BiDi, CDP, WebMCP,
MCP, and Manifest V3 claims, by linking each to primary specifications or
official documentation and corresponding APA 7 references in docs/doctoring.md.
If any source is missing, add it there while preserving the explicit separation
between experimental browser interfaces and final normative standards.

In `@tests/test_documentation_fitness_contract.py`:
- Around line 36-51: Update the documentation fitness test around accepted_paths
and proposed_paths to derive the ADR file set from ADR_ROOT instead of fixed
lists. Parse both docs_index and adr_index into path-to-status mappings, reject
duplicates and missing entries in either index, and compare each index’s status
against the ADR file metadata, including accepted ADRs; preserve the documented
accepted/proposed status requirements from docs/README.md and
docs/adr/README.md.

---

Nitpick comments:
In `@docs/adr/README.md`:
- Around line 13-15: Move the binding Accepted-ADR governance rules from
docs/adr/README.md into an existing ADR 0002 or a new dedicated ADR, including
the independent non-author approval requirement, solo-maintainer exception,
supporting rationale, and reversal conditions. Link the selected ADR from the
README index and retain only a concise reference here; do not define these rules
solely in the README.
🪄 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: f03ac9cb-b23a-48d5-8ada-ecd6f3f00bbc

📥 Commits

Reviewing files that changed from the base of the PR and between 67af7c8 and acf7ce0.

📒 Files selected for processing (4)
  • docs/DOCUMENTATION_FITNESS.md
  • docs/README.md
  • docs/adr/README.md
  • tests/test_documentation_fitness_contract.py

Comment thread docs/adr/README.md Outdated
Comment thread docs/DOCUMENTATION_FITNESS.md Outdated
Comment thread tests/test_documentation_fitness_contract.py Outdated
@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 620e29bbe84aab281a83c63cce2f9cb3893ababc
  • Workflow run: 31665828716
  • Workflow attempt: 1
  • Gate result: APPROVE (exit 0)
B[\"docs/adr/0013 + 0014\"]\n A --> C[\"docs/traceability + evidence + uml lanes\"]\n B --> D[\"test_documentation_discoverability_followup.py\"]\n C --> E[\"test_documentation_fitness_contract.py + mv3 matrix contract\"]\n D --> F[\"Coverage gate: supported suites PASS\"]\n E --> F\n F --> G[\"No failed checks at head 620e29b\"]\n```\n\nPoC/execution: no trusted OPENCODE_EXECUTION_RECEIPT tool=... lines exist for browser/Playwright tools, and none apply \u2014 this is a non-web docs/tests PR; the Coverage execution evidence is the execution record. DDD/domain: no domain code changed; ADR lifecycle states (Proposed vs Accepted) remain explicit and are never silently promoted. CDD/context: no context code changed; docs keep protected-main vs active-PR contexts distinct (e.g., \u00a73.1 HTTP lineage, \u00a73.3 MV3 compatibility). Similar issues: no numerical/formula/estimator surface, so no similar-issue or paper parity evidence is required. Claim/concept check: doc claims are enforced by the new contract tests and consistent with inlined hunks \u2014 the MV3 matrix separates PROTECTED_MAIN/ACTIVE_PR/PLANNED/security-gated/out-of-scope, the ERD stays conceptual, and the trusted broker remains Planned under issue #10. Standards search: docs cite RFC 9325/APA 7 and pinned browser-protocol evidence paths; no new normative claim is introduced in changed code. Compatibility/convention: no schema/API/DB/config objects changed; new doc and test identifiers are descriptive multi-word snake_case (e.g., test_documentation_fitness_contract.py), and ADR numbering 0013/0014 avoids collision with active reservations. Breaking-change/backcompat: docs-only plus additive tests; no public contract broken. Implementation completeness: new contract tests are executable unittest classes with real assertions (not pass/NotImplementedError stubs); no placeholder bodies in the changed test surface. Performance: no runtime path changed. Developer experience: DX surface classified is review/CI output \u2014 the new contract tests make documentation governance machine-checkable and failures surface as precise unittest assertions instead of prose review. User experience: UX surface classified is the docs/CI/review-comment output; no user-facing UI change. Visual/DOM: non-web change; no DOM surface reviewed (no Playwright/DOM receipts claimed). Accessibility/i18n: no interactive UI changed; not applicable to the docs/CI surface. Supply-chain/license: no dependency, manifest, or lockfile changes. Packaging: no new package contract required \u2014 unpackaged_source_surfaces flags the new Python tests, but the repository norm is manifest-free Python unittest contract tests (CodeGraph indexes 29 python files including pre-existing tests/test_tls_governance.py and tests/test_data_governance_documentation_contract.py with the identical pattern), and Coverage execution evidence reports PASS. Security/privacy: no auth/secrets/data-plane changes; docs explicitly state the audience string is not authentication, extension-proposal authority cannot widen Agent/secret approval, and no sequential-id exposure or identifier-enumeration surface is introduced.\n\nApproval sufficiency: bounded evidence supplied affirmative approval evidence for changed files, coverage/docstring posture, risk surfaces, and current-head verification; approval is not based merely on the absence of known blockers.\nVerification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including docs/DOCUMENTATION_FITNESS.md, docs/PRD.md, docs/README.md, docs/TRD.md, docs/adr/0013-manifest-v3-extension-authority.md, and 23 more.\nLinter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.\nTDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.\nCoverage: coverage execution evidence reports supported repository test suites passed.\nDocstring coverage: coverage execution evidence reports configured repository docstring gates passed or docstring coverage was advisory.\nDAG: CodeGraph/source-backed behavior map connects docs/DOCUMENTATION_FITNESS.md to the affected review, runtime, or workflow path and required checks.\nPoC/execution: coverage-evidence job executed on the current head and reported PASS.\nDDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.\nCDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.\nSimilar issues: changed-file history evidence was reviewed for comparable local precedents.\nClaim/concept check: bounded evidence, repository source, current-head workflow evidence, and, where numeric, scientific, statistical, or literature-backed claims are affected, original-paper/formula evidence and parameter-recovery expectations were used for claims.\nStandards search: standards and external-source claims require trusted bounded source evidence prepared outside the isolated model process; no evidence-backed standards blocker is present in bounded evidence.\nCompatibility/convention: changed workflow/script conventions, object naming, and reserved-word safety for schema/API/config/code surfaces were checked in bounded evidence.\nBreaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.\nPerformance: changed surfaces were checked for performance risk in bounded evidence.\nDeveloper experience: changed automation, review, test, setup, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.\nUser experience: connected user, operator, API, CLI, documentation, review-comment, status-check, rendering, and workflow-reader behavior was checked for contradictions against code, docs, and tests in bounded evidence.\nVisual/DOM: deterministic repair does not infer browser runtime execution; source-backed DOM/UI evidence and trusted workflow receipts were reviewed when present, and non-web surfaces used API/CLI/log/docs/workflow evidence instead.\nAccessibility/i18n: accessibility, localization, and human-readable text surfaces were checked where UI, CLI, API message, docs, logs, or review text changed.\nSupply-chain/license: dependency, package, model, container, and external-tool changes were checked in bounded evidence.\nPackaging: package, build, test, lint, and security contracts were checked in bounded evidence.\nSecurity/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.\n","adversarial_validation":{"status":"passed","probes":[{"path":"docs/adr/README.md","line":134,"hypothesis":"The branch-added Proposed ADRs 0013/0014 could break the ADR lifecycle/discoverability contract (unknown lifecycle state or index rows missing the new files) and leave the head red.","attack_or_counterexample":"Treat the new ADR files as malformed lifecycle metadata: feed a lifecycle value outside the supported set, or an index that omits 0013/0014, and check whether the discoverability contract rejects it.","evidence":"Trusted Changed docs repository tree evidence lists A docs/adr/0013-manifest-v3-extension-authority.md and A docs/adr/0014-architecture-decision-governance.md plus M docs/adr/README.md at head 620e29b; the inlined DOCUMENTATION_FITNESS.md hunk states the branch 'indexes every ADR by lifecycle' and \u00a73.5/\u00a73.6 describe the parser accepting leading supported lifecycle states while rejecting unknown states; the new tests/test_documentation_discoverability_followup.py enforces index coverage; Coverage execution evidence reports Result PASS (supported repository test suites passed) and Failed GitHub Check evidence reports no completed failed checks at head \u2014 the lifecycle/discoverability break hypothesis was falsified at docs/adr/README.md:134. source-line-sha256=e619e0b06e7e6de5b0e9cc2b7f04f98b7b93b5dd19177939d8d81bec48f2fc43","outcome":"falsified"},{"path":"docs/doctoring/mv3-compatibility.md","line":4,"hypothesis":"The MV3 supported-capability matrix could overclaim active-PR browser capability (e.g., #59/#60/#61 isolated-world or extension-update results) as PROTECTED_MAIN shipped truth, defeating the PR's core purpose.","attack_or_counterexample":"Classify an ACTIVE_PR-only capability row (update migration or isolated-world sentinel evidence) as PROTECTED_MAIN and check whether the matrix contract and fitness assessment catch the promotion.","evidence":"Trusted inlined hunk of docs/DOCUMENTATION_FITNESS.md \u00a73.3 states the matrix 'separates PROTECTED_MAIN, ACTIVE_PR, PLANNED, security-gated and out-of-scope claims', keeps update migration intentionally distinct from restart persistence, and isolated-world behavior distinct from injection alone; the new tests/test_mv3_supported_capability_matrix_contract.py (97 lines) and tests/test_documentation_active_pr_evidence_contract.py (196 lines) enforce the separation; Coverage execution evidence reports Result PASS and Failed GitHub Check evidence reports no failed checks at head 620e29b \u2014 the overclaiming hypothesis was falsified at docs/doctoring/mv3-compatibility.md:4. source-line-sha256=5232a0f8e1d3e5be449164f428a38baaeec37cf5fdd3f6f05e3d910821fdea6b","outcome":"falsified"},{"path":"docs/DOCUMENTATION_FITNESS.md","line":1,"hypothesis":"The fitness assessment could fabricate architecture truth by inventing a persistence owner, physical database entity, or trusted-broker deployment that does not exist, contradicting the data-governance contract.","attack_or_counterexample":"Search the assessment for a concrete production database table or broker-process deployment claim and verify it against the contract tests that forbid such fabricated entities.","evidence":"Trusted inlined hunk \u00a72 ERD row states 'The ERD remains explicitly conceptual until a real persistence owner/schema exists' and 'Manufacturing tables for in-memory state, value objects, browser fixtures or process samples would be false architecture'; \u00a73.2 states the complete broker 'remains Planned under issue #10' and 'does not justify a fictitious broker process, KMS path, database table, transaction manager...'; existing tests/test_data_governance_documentation_contract.py and modified tests/test_product_documentation_contract.py enforce 'does not claim a production application database'; Coverage execution evidence reports Result PASS and Failed GitHub Check evidence reports no failed checks at head 620e29b \u2014 the fabricated-architecture hypothesis was falsified at docs/DOCUMENTATION_FITNESS.md:1. source-line-sha256=2fe6dae27f885ac51a311332ce6426b9a985cdb3a7e667148a0fb96e5f780b08","outcome":"falsified"}],"residual_risk":"Docs/test-only PR: capability-matrix and maturity claims are self-descriptive and are guarded by contract tests plus the head PASS coverage gate rather than by runtime execution; referenced external PR/issue identifiers (#27/#28/#10/#37/#40-#66) are cited from branch documentation and were not independently verified against the live GitHub tracker. Focused changed hunks for the remaining 20+ doc files were truncated in the trusted evidence packet, so those files were reviewed via the changed-file list, docs tree evidence, and the contract tests that cover them."},"findings":[]}

-->

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Docs (21 files)"]
  S1 --> I1["operator or user guidance"]
  I1 --> R1["Review risk: Docs (21 files)"]
  R1 --> V1["docs review"]
  Evidence --> S2["Test (7 files)"]
  S2 --> I2["regression suite"]
  I2 --> R2["Review risk: Test (7 files)"]
  R2 --> V2["targeted test run"]
Loading

@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 reviewed the current-head bounded evidence and found no blocking issues.

Findings

No blocking findings.

Summary

APPROVE PR #44 (docs: reconcile architecture documentation fitness). Changed-file evidence inspected: docs/DOCUMENTATION_FITNESS.md (new 276-line fitness assessment, hunk inlined), docs/adr/0013-manifest-v3-extension-authority.md and docs/adr/0014-architecture-decision-governance.md (new Proposed ADRs), docs/doctoring/mv3-compatibility.md, docs/traceability/, docs/evidence/, docs/uml/extension-authority.md, plus new contract tests tests/test_documentation_fitness_contract.py, tests/test_documentation_active_pr_evidence_contract.py, tests/test_documentation_discoverability_followup.py, tests/test_mv3_supported_capability_matrix_contract.py, tests/test_extension_authority_traceability_contract.py, tests/test_freshness_traceability_contract.py and modified tests/test_product_documentation_contract.py.

Approval sufficiency: evidence affirmatively supports PR intent — the branch separates protected-main shipped truth from volatile active-PR evidence, reserves non-colliding ADR identifiers 0013/0014 (active #37 already reserves 0011/0012), indexes every ADR by lifecycle, and adds deterministic doc-contract tests (6 new files plus a 302-line update to tests/test_product_documentation_contract.py). Verification posture: Coverage execution evidence Result PASS (supported repository test suites passed); docstring gates passed or advisory; Failed GitHub Check evidence: no completed failed checks at head 620e29b; mergeStateStatus clean, mergeable true.

Linter/static: no Rust sources changed; cargo clippy contract exists for the Rust workspace; the new Python tests follow the repository's manifest-free unittest convention. TDD/regression: the new contract tests encode RED->GREEN doc governance (e.g., lifecycle-state parser accepts leading supported states and rejects unknown ones per DOCUMENTATION_FITNESS.md §3.6). Coverage: supported repository test suites passed per Coverage execution evidence. Docstring coverage: configured repository docstring gates passed or advisory per Coverage execution evidence.

DAG: CodeGraph head tree (82 files, 1,580 nodes) plus source-backed base-to-head flowchart:

flowchart LR
 A["docs/DOCUMENTATION_FITNESS.md"] --> B["docs/adr/0013 + 0014"]
 A --> C["docs/traceability + evidence + uml lanes"]
 B --> D["test_documentation_discoverability_followup.py"]
 C --> E["test_documentation_fitness_contract.py + mv3 matrix contract"]
 D --> F["Coverage gate: supported suites PASS"]
 E --> F
 F --> G["No failed checks at head 620e29bb"]
Loading

PoC/execution: no trusted OPENCODE_EXECUTION_RECEIPT tool=... lines exist for browser/Playwright tools, and none apply — this is a non-web docs/tests PR; the Coverage execution evidence is the execution record. DDD/domain: no domain code changed; ADR lifecycle states (Proposed vs Accepted) remain explicit and are never silently promoted. CDD/context: no context code changed; docs keep protected-main vs active-PR contexts distinct (e.g., §3.1 HTTP lineage, §3.3 MV3 compatibility). Similar issues: no numerical/formula/estimator surface, so no similar-issue or paper parity evidence is required. Claim/concept check: doc claims are enforced by the new contract tests and consistent with inlined hunks — the MV3 matrix separates PROTECTED_MAIN/ACTIVE_PR/PLANNED/security-gated/out-of-scope, the ERD stays conceptual, and the trusted broker remains Planned under issue #10. Standards search: docs cite RFC 9325/APA 7 and pinned browser-protocol evidence paths; no new normative claim is introduced in changed code. Compatibility/convention: no schema/API/DB/config objects changed; new doc and test identifiers are descriptive multi-word snake_case (e.g., test_documentation_fitness_contract.py), and ADR numbering 0013/0014 avoids collision with active reservations. Breaking-change/backcompat: docs-only plus additive tests; no public contract broken. Implementation completeness: new contract tests are executable unittest classes with real assertions (not pass/NotImplementedError stubs); no placeholder bodies in the changed test surface. Performance: no runtime path changed. Developer experience: DX surface classified is review/CI output — the new contract tests make documentation governance machine-checkable and failures surface as precise unittest assertions instead of prose review. User experience: UX surface classified is the docs/CI/review-comment output; no user-facing UI change. Visual/DOM: non-web change; no DOM surface reviewed (no Playwright/DOM receipts claimed). Accessibility/i18n: no interactive UI changed; not applicable to the docs/CI surface. Supply-chain/license: no dependency, manifest, or lockfile changes. Packaging: no new package contract required — unpackaged_source_surfaces flags the new Python tests, but the repository norm is manifest-free Python unittest contract tests (CodeGraph indexes 29 python files including pre-existing tests/test_tls_governance.py and tests/test_data_governance_documentation_contract.py with the identical pattern), and Coverage execution evidence reports PASS. Security/privacy: no auth/secrets/data-plane changes; docs explicitly state the audience string is not authentication, extension-proposal authority cannot widen Agent/secret approval, and no sequential-id exposure or identifier-enumeration surface is introduced.

Approval sufficiency: bounded evidence supplied affirmative approval evidence for changed files, coverage/docstring posture, risk surfaces, and current-head verification; approval is not based merely on the absence of known blockers.
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including docs/DOCUMENTATION_FITNESS.md, docs/PRD.md, docs/README.md, docs/TRD.md, docs/adr/0013-manifest-v3-extension-authority.md, and 23 more.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence reports supported repository test suites passed.
Docstring coverage: coverage execution evidence reports configured repository docstring gates passed or docstring coverage was advisory.
DAG: CodeGraph/source-backed behavior map connects docs/DOCUMENTATION_FITNESS.md to the affected review, runtime, or workflow path and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, current-head workflow evidence, and, where numeric, scientific, statistical, or literature-backed claims are affected, original-paper/formula evidence and parameter-recovery expectations were used for claims.
Standards search: standards and external-source claims require trusted bounded source evidence prepared outside the isolated model process; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions, object naming, and reserved-word safety for schema/API/config/code surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, test, setup, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: connected user, operator, API, CLI, documentation, review-comment, status-check, rendering, and workflow-reader behavior was checked for contradictions against code, docs, and tests in bounded evidence.
Visual/DOM: deterministic repair does not infer browser runtime execution; source-backed DOM/UI evidence and trusted workflow receipts were reviewed when present, and non-web surfaces used API/CLI/log/docs/workflow evidence instead.
Accessibility/i18n: accessibility, localization, and human-readable text surfaces were checked where UI, CLI, API message, docs, logs, or review text changed.
Supply-chain/license: dependency, package, model, container, and external-tool changes were checked in bounded evidence.
Packaging: package, build, test, lint, and security contracts were checked in bounded evidence.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.

Adversarial validation

{"status":"passed","probes":[{"path":"docs/adr/README.md","line":134,"hypothesis":"The branch-added Proposed ADRs 0013/0014 could break the ADR lifecycle/discoverability contract (unknown lifecycle state or index rows missing the new files) and leave the head red.","attack_or_counterexample":"Treat the new ADR files as malformed lifecycle metadata: feed a lifecycle value outside the supported set, or an index that omits 0013/0014, and check whether the discoverability contract rejects it.","evidence":"Trusted Changed docs repository tree evidence lists A docs/adr/0013-manifest-v3-extension-authority.md and A docs/adr/0014-architecture-decision-governance.md plus M docs/adr/README.md at head 620e29bb; the inlined DOCUMENTATION_FITNESS.md hunk states the branch 'indexes every ADR by lifecycle' and §3.5/§3.6 describe the parser accepting leading supported lifecycle states while rejecting unknown states; the new tests/test_documentation_discoverability_followup.py enforces index coverage; Coverage execution evidence reports Result PASS (supported repository test suites passed) and Failed GitHub Check evidence reports no completed failed checks at head — the lifecycle/discoverability break hypothesis was falsified at docs/adr/README.md:134. source-line-sha256=e619e0b06e7e6de5b0e9cc2b7f04f98b7b93b5dd19177939d8d81bec48f2fc43","outcome":"falsified"},{"path":"docs/doctoring/mv3-compatibility.md","line":4,"hypothesis":"The MV3 supported-capability matrix could overclaim active-PR browser capability (e.g., #59/#60/#61 isolated-world or extension-update results) as PROTECTED_MAIN shipped truth, defeating the PR's core purpose.","attack_or_counterexample":"Classify an ACTIVE_PR-only capability row (update migration or isolated-world sentinel evidence) as PROTECTED_MAIN and check whether the matrix contract and fitness assessment catch the promotion.","evidence":"Trusted inlined hunk of docs/DOCUMENTATION_FITNESS.md §3.3 states the matrix 'separates PROTECTED_MAIN, ACTIVE_PR, PLANNED, security-gated and out-of-scope claims', keeps update migration intentionally distinct from restart persistence, and isolated-world behavior distinct from injection alone; the new tests/test_mv3_supported_capability_matrix_contract.py (97 lines) and tests/test_documentation_active_pr_evidence_contract.py (196 lines) enforce the separation; Coverage execution evidence reports Result PASS and Failed GitHub Check evidence reports no failed checks at head 620e29bb — the overclaiming hypothesis was falsified at docs/doctoring/mv3-compatibility.md:4. source-line-sha256=5232a0f8e1d3e5be449164f428a38baaeec37cf5fdd3f6f05e3d910821fdea6b","outcome":"falsified"},{"path":"docs/DOCUMENTATION_FITNESS.md","line":1,"hypothesis":"The fitness assessment could fabricate architecture truth by inventing a persistence owner, physical database entity, or trusted-broker deployment that does not exist, contradicting the data-governance contract.","attack_or_counterexample":"Search the assessment for a concrete production database table or broker-process deployment claim and verify it against the contract tests that forbid such fabricated entities.","evidence":"Trusted inlined hunk §2 ERD row states 'The ERD remains explicitly conceptual until a real persistence owner/schema exists' and 'Manufacturing tables for in-memory state, value objects, browser fixtures or process samples would be false architecture'; §3.2 states the complete broker 'remains Planned under issue #10' and 'does not justify a fictitious broker process, KMS path, database table, transaction manager...'; existing tests/test_data_governance_documentation_contract.py and modified tests/test_product_documentation_contract.py enforce 'does not claim a production application database'; Coverage execution evidence reports Result PASS and Failed GitHub Check evidence reports no failed checks at head 620e29bb — the fabricated-architecture hypothesis was falsified at docs/DOCUMENTATION_FITNESS.md:1. source-line-sha256=2fe6dae27f885ac51a311332ce6426b9a985cdb3a7e667148a0fb96e5f780b08","outcome":"falsified"}],"residual_risk":"Docs/test-only PR: capability-matrix and maturity claims are self-descriptive and are guarded by contract tests plus the head PASS coverage gate rather than by runtime execution; referenced external PR/issue identifiers (#27/#28/#10/#37/#40-#66) are cited from branch documentation and were not independently verified against the live GitHub tracker. Focused changed hunks for the remaining 20+ doc files were truncated in the trusted evidence packet, so those files were reviewed via the changed-file list, docs tree evidence, and the contract tests that cover them."}
  • Result: APPROVE
  • Reason: Docs/test-only reconciliation PR (#44); trusted current-head evidence affirmatively supports the intent (protected-main vs active-PR separation, ADR 0013/0014 reservation, machine-checkable doc contracts), supported repository test suites passed, no failed GitHub checks, no unresolved review threads, and all three adversarial probes were falsified.
  • Head SHA: 620e29bbe84aab281a83c63cce2f9cb3893ababc
  • Workflow run: 31665828716
  • Workflow attempt: 1

@opencode-agent
opencode-agent Bot merged commit 0c376ac into main Aug 13, 2026
30 checks passed
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