Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ Read the matching owners and run their applicable guards. The general repository
<!-- ew:route id="long-running-execution" triggers="long-running commands|builds|tests|local processes|polling|terminal sessions" owners="docs/engineering/project_principles.md|docs/development.md" guards="manual_review:verify process completion exit status bounded output and task-owned cleanup" -->
| `long-running-execution` | Long-running command, waiter, or process cleanup | Project principles and development procedures | Completion evidence and bounded output |

<!-- ew:route id="local-ocr-review" triggers="local OCR review|ocr-ci review --local|review artifacts" owners="docs/local.md|docs/development.md" guards="manual_review:verify selected auth mode qualified executable native model reachability supported local flags physical private paths terminal status report and admitted findings" -->
| `local-ocr-review` | Authorized real local OCR review | Local review and development procedures | Mode, binary, flags, private paths, terminal status, report and findings |
<!-- ew:route id="local-ocr-review" triggers="local OCR review|ocr-ci review --local|review artifacts" owners="docs/local.md|docs/development.md" guards="manual_review:verify selected auth mode qualified executable native model reachability supported local flags physical private paths terminal status report and admitted findings|manual_review:inspect failed auxiliary reads for material review gaps" -->
| `local-ocr-review` | Authorized real local OCR review | Local review and development procedures | Mode, binary, flags, private paths, result, findings and failed reads |

<!-- ew:route id="workflow-instructions" triggers="AGENTS.md|docs/engineering/project_principles.md|docs/codex/AGENT_EXECUTION_PITFALLS.md" owners="skill://engineering-workflow/references/instruction_lifecycle.md|docs/engineering/project_principles.md" guards="lint:instruction-contract" -->
| `workflow-instructions` | Instruction owner, route, or incident change | Installed instruction lifecycle and project principles | `lint:instruction-contract` |
Expand All @@ -59,8 +59,8 @@ Read the matching owners and run their applicable guards. The general repository
<!-- ew:route id="release-lifecycle" triggers="docs/release.md|.github/workflows/release.yml|release-required change|release-deferred change|stable publication|release authorization|stable delivery|release closure" owners="docs/release.md" guards="release_gate:.github/workflows/release.yml|manual_review:reconcile current archive and external receipts" -->
| `release-lifecycle` | Release authorization, stable delivery, or closure | Release guide | Protected release gate and external receipt review |

<!-- ew:route id="development-validation" triggers="docs/development.md|status-bearing documents|parser changes|provider changes|subprocess changes" owners="docs/development.md" guards="manual_review:compare status documents with current implementation|test:scripts/quality.sh check" -->
| `development-validation` | Status or changed-boundary validation | Development guide | Status review and Python quality matrix |
<!-- ew:route id="development-validation" triggers="docs/development.md|status-bearing documents|parser changes|provider changes|subprocess changes" owners="docs/development.md" guards="manual_review:compare status documents with current implementation|manual_review:map changed producer-consumer handoffs and failure cleanup|test:scripts/quality.sh check" -->
| `development-validation` | Status or changed-boundary validation | Development guide | Status and handoff review; Python quality matrix |

<!-- ew:route id="dependency-audit" triggers="pre-push|pyproject.toml|uv.lock|.github/workflows/security.yml|scripts/dependency-audit.sh" owners="docs/development.md" guards="test:scripts/dependency-audit.sh" -->
| `dependency-audit` | Every push and dependency or audit-workflow change | Development guide | Shared local and hosted dependency audit |
Expand Down
145 changes: 142 additions & 3 deletions PLANS.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ On a successful rerun, the toolkit replaces untouched OCR-only notes instead of

Suppression uses both the GitLab diff position and a stable finding fingerprint, so ordinary line shifts do not normally bring the same bug back. A materially changed finding can still receive a new discussion. See [GitLab review operations](docs/operations.md) for the complete lifecycle, posting modes, permissions, failure behavior, and Mermaid state diagram.

For a safely separable changed Git submodule pointer under qualified OCR
1.13.3, the toolkit reviews selected ordinary files and labels repository
coverage partial. It leaves the pointer and submodule contents unreviewed,
preserves prior finding threads and cannot automatically approve. A diff with
no selected ordinary files starts no model review and posts an advisory status.

After every current review note publishes, the GitLab adapter can add a conservative approval bound to receipt v11's exact reviewed diff, actual target, policy authority, merge-request author, DLP mode, and reconciled federation use. This write is enabled by default; set `OCR_AUTO_APPROVE=false` when the bot must remain comment-only. DLP-clean metadata, generic discussions, protected same-revision CI outcomes, unused governed services, and successful `review_read` tool use do not independently block approval. An unprotected target, disabled DLP, degraded metadata, a DLP rejection, required context degradation, admitted remediation history, older receipts, publication filtering, used advisory tools, uncertain federation accounting, author movement, or bot self-authorship prevents an approval write. A CI status is review context, never approval authority. GitLab approval rules, Code Owners, and protected-branch policy remain authoritative merge policy. They are not prerequisites for OCR execution. The toolkit only adds an eligible approval; it never removes an existing approval when a later review is ineligible or disabled.

An intentionally absent toolkit receipt retains compatible direct posting outside
Expand Down
7 changes: 4 additions & 3 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,13 @@ flowchart LR
trusted base. Protected stable publication, external readback, and live site
refresh completed on 2026-10-22.

- The v0.13.0 release candidate separates the current GitLab MR diff and actual
- The published v0.13.0 release separates the current GitLab MR diff and actual
target from protected policy authority. The absent protection setting selects
`auto`; an unprotected target can use its same-project protected default policy
for single-MR review while remaining comment-only. Receipt v11 and publication
freshness checks bind these identities. Stable delivery and external readback
are pending. Optional related-MR review remains inactive planning in BL-025.
freshness checks bind these identities. The immutable GitHub Release was
published and #264 closed on 2026-10-23. Optional related-MR review remains
inactive planning in BL-025.

- OCR compatibility and the established common evidence model converge at compact-bootstrap/evidence-MCP integration.
- M3 preserves BL-011's historical characterization. M7 supersedes that runtime path with governed federation; the old direct composition and adapter execution contracts are not current fallback paths.
Expand Down
1 change: 1 addition & 0 deletions changelog.d/268.feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
GitLab and local reviews can now cover selected ordinary files alongside safely separable changed Git submodule pointers with qualified OCR 1.13.3. Reports identify the unreviewed pointers as partial repository coverage; these runs cannot automatically approve or clear earlier finding discussions. A change with no selected ordinary files stops before the model and posts an advisory GitLab status.
4 changes: 2 additions & 2 deletions docs/codex/AGENT_EXECUTION_PITFALLS.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ This is a diagnostic catalogue of recurring incident classes. Current requiremen
- Owner: docs/engineering/project_principles.md#outcome-consistency
- Route: trust-boundary
- Guard: test:scripts/quality.sh check
- Evidence: [0.4.7 final OCR correction](../engineering/execution_history/releases.md#plan-toolkit-0-4-7). Prior control: table-driven result and posting tests cover skipped, clean, warning, error, finding, partial, and zero-value cases through shared contracts. Historical cause: outcomes were assembled independently and tests asserted prose rather than one result invariant.
- Evidence: [0.4.7 final OCR correction](../engineering/execution_history/releases.md#plan-toolkit-0-4-7) and the v0.13.1 gitlink review's safe-plus-filtered finding case in `tests/test_repository_coverage.py`. Prior control: table-driven result and posting tests cover skipped, clean, warning, error, finding, partial, and zero-value cases through shared contracts. Historical cause: outcomes were assembled independently and tests asserted prose rather than one result invariant; the v0.13.1 first review found that producer and consumer tests still missed a transformed handoff.
- Status: guarded
- Retirement: Retire when this historical class no longer improves diagnosis and its owner, route, and guard remain established.

Expand All @@ -180,6 +180,6 @@ This is a diagnostic catalogue of recurring incident classes. Current requiremen
- Owner: docs/local.md#review-preparation
- Route: local-ocr-review
- Guard: manual_review:verify selected auth mode qualified executable native model reachability supported local flags physical private paths terminal status report and admitted findings
- Evidence: The 2026-10-23 v0.13.0 local review attempts rejected absent `OCR_LLM_MODEL` and `--background-file` before model execution; the corrected OCR 1.13.3 invocation completed with 29/29 selected items and an admitted finding. The earlier [v0.12.1 review](../engineering/execution_history/releases.md#plan-toolkit-0-12-1) exposed the symlinked-path report failure. The preparation route now names each check at the launch boundary.
- Evidence: The 2026-10-23 v0.13.0 local review attempts rejected absent `OCR_LLM_MODEL` and `--background-file` before model execution; the corrected OCR 1.13.3 invocation completed with 29/29 selected items and an admitted finding. The [v0.12.1 review](../engineering/execution_history/releases.md#plan-toolkit-0-12-1) and v0.13.1 review both exposed symlinked-path report failures. The v0.13.1 runner now validates the report parent before model execution and the publisher checks again after execution; `docs/local.md` shows physical-path preparation.
- Status: guarded
- Retirement: Retire when the owner, route, and guard remain established and the historical class no longer improves launch diagnosis.
2 changes: 1 addition & 1 deletion docs/codex/ENGINEERING_WORKFLOW_STATE.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ plan_archive_indexes:
- docs/engineering/execution_history/README.md
- docs/engineering/README.md
- docs/README.md
active_plan: null
active_plan: PLANS.md
runtime_agent_config_managed: true
instruction_contract_version: 3
planning_contract_version: 2
Expand Down
7 changes: 7 additions & 0 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,13 @@ There is no toolkit CI adaptation beyond version and checksum pins. The hosted
probe does not claim configured-model review quality. Native ChatGPT remains
local-only; final release review uses the checksum-verified Darwin arm64 binary.

Toolkit 0.13.1 uses this same qualified OCR 1.13.3 as a narrower changed-gitlink
boundary. It verifies process-local Git projection, the full preview selection,
and native manifest/source-artifact fingerprints against the original immutable
range. This does not extend OCR review to submodule contents or qualify a later
OCR version for partial repository coverage; other versions retain the
no-model stop until separately proven.

## Promotion and rollback

Promotion changes `recommended_version`, advances `monitoring_floor`, adds the tested release and evidence, and updates every machine-readable or executable version/checksum pin. Never edit only one copy. Human-qualified candidates must record the compatibility conclusion and release-note impact; an automatic-safe candidate may also record a reviewed conclusion when it is delivered with a human-reviewed chain instead of using the generic machine conclusion. Conclusions may name only versions present in that promotion. A reviewed promotion may cross only one adjacent semantic-version boundary at a time: the next patch, the next minor at `.0`, or the next major at `.0.0`; minor and major transitions always require an explicit human conclusion. Automatic-safe preparation remains limited to adjacent patches in the already-tested major/minor line and retains the same protected review boundary even though the patch itself is mechanical.
Expand Down
Loading