Give the pre-commit suite an independent release train #816

Closed
opened 2026-07-30 17:08:56 +00:00 by coilyco-ops · 5 comments
Member

Package the repository-authored hook suite as aos-precommit with its own aos-precommit-v* tag clock. Release only when installed hook inputs change, preserve manual retry/override, and make the rollout helper resolve the independent tag family. Update release documentation and validation so the root v* image train no longer doubles as the consumer hook pin.

Package the repository-authored hook suite as aos-precommit with its own aos-precommit-v* tag clock. Release only when installed hook inputs change, preserve manual retry/override, and make the rollout helper resolve the independent tag family. Update release documentation and validation so the root v* image train no longer doubles as the consumer hook pin.
Author
Member

Review target

  • PR: #818
  • Reviewed head: 056ba81404bac19a5f6b38e6d648696b091c3633
  • Pull-request CI: run #2581, currently running after merging current main

Independent Ward QA is being requested against this exact head. This checkpoint links the evidence only and does not assert merge authorization.

## Review target * PR: [#818](https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818) * Reviewed head: `056ba81404bac19a5f6b38e6d648696b091c3633` * Pull-request CI: [run #2581](https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/actions/runs/2581), currently running after merging current `main` Independent Ward QA is being requested against this exact head. This checkpoint links the evidence only and does not assert merge authorization.
Author
Member

WARD-WORKFLOW: qa-failed

qa details

verdict: fail
reviewed_sha:
reviewer_family: internal
workflow: pull-request-and-merge
issue_ref: coilyco-flight-deck/agentic-os#816
pr_ref:
candidate_branch:
reason: The independent release train is mostly wired correctly, but the reviewed head does not satisfy the issue's release only when installed hook inputs change contract. The classifier releases for explicitly non-hook utilities, and the existing hook-version diagnostic still assumes the old v* and pyproject-version model. These defects cause unnecessary package releases and make valid aos-precommit-v* consumer pins appear outdated.
evidence:

  • Reviewed Forgejo PR #818 at the issue-thread SHA 056ba81404bac19a5f6b38e6d648696b091c3633. The PR is open and Forgejo reports it mergeable.
  • The core train is present: pyproject.toml names the distribution aos-precommit, .forgejo/workflows/aos-precommit-release.yml runs from promoted release, actions/tag-bump receives tag_prefix: aos-precommit-v, workflow dispatch forces the impact decision, and the rollout helper resolves only aos-precommit-v* tags with a bootstrap fallback of aos-precommit-v0.1.0.
  • agentic_os/release_impact.py classifies every path below agentic_os/pre_commit/ as a release input. An exact-head probe with agentic_os/pre_commit/check_ssm_path.py returned release_required: true.
  • The hook manifest explicitly documents check_ssm_path, check_aws_config, and check_context_budget as intentionally not hooks and says they ship as Ward-only commands. Changes to those files therefore advance aos-precommit-v* despite not changing an installed consumer hook.
  • The classifier also treats scripts/apply-agentic-os-hooks.py as a package release input. That is the rollout helper, not an installed hook entry. The exact-head probe returned release_required: true for that path as well.
  • shell/common.sh still implements pre-commit-all-aos-version-outdated by comparing ${rev#v} with the pyproject version. For rev=aos-precommit-v0.1.0, ${rev#v} remains aos-precommit-v0.1.0, so even the bootstrap pin is reported as stale. This also conflicts with docs/release.md, which now states that pyproject version may intentionally lag automatic package tags.
  • The added release-impact tests cover ordinary docs and unrelated generators, but they do not test the explicitly non-hook modules or the stale shell diagnostic, allowing both contract regressions through.
  • Exact-head targeted validation passed: 46 tests passed with one expected shallow-tag skip across release impact, rollout resolution, release actions, and dev-base workflow tests. ward exec pre-commit-all also passed every hook, including actionlint and Forgejo workflow validation.
  • Live PR checks at inspection time show ci / ward-doctor successful in 18 seconds and ci / gate successful in 1 minute 16 seconds. ci / build-dev-base remains pending.
  • The reviewed head is one commit behind current main: PR base d0acdb65751803998bbc0cc8e7b397e0532e48c9, merge base 92101f4d049b3fe4779d73120fb3c7b9fd0bd6ca. The intervening main-only change is in AGENTS.md.

risks:

  • The same PR changes dev-base Git LFS installation and checksums, but the live build-dev-base check has not completed.
  • The automatic bootstrap tag, Forgejo release creation, and GitHub tag mirror cannot be exercised end to end until the workflow reaches the promoted release branch.
  • Refreshing the branch from current main or fixing these findings will change the reviewed SHA and require a new exact-head QA pass.

next steps:

  • Narrow the aos-precommit classifier to the published hook manifest's runtime closure. Add negative tests for the three explicitly non-hook validators and decide explicitly whether rollout-helper changes should advance the package train.
  • Update pre-commit-all-aos-version-outdated to compare consumer pins with the latest full aos-precommit-v* tag rather than pyproject version, then add regression coverage for automatic-tag version lag.
  • Refresh the candidate against current main, wait for all checks including build-dev-base, and request QA again on the resulting SHA.

run_identity:

dispatcher framing:
Read the issue title, body, and comment thread below as the QA brief. Inspect the candidate branch, any linked pull request, and the available checks in the live repository state. Return a structured QA verdict that a human can read at a glance. Do not edit files, commit, push, or otherwise change implementation state.

— Codex, via ward agent

WARD-WORKFLOW: qa-failed ❌ <details><summary>qa details</summary> verdict: fail reviewed_sha: reviewer_family: internal workflow: pull-request-and-merge issue_ref: coilyco-flight-deck/agentic-os#816 pr_ref: candidate_branch: reason: **The independent release train is mostly wired correctly, but the reviewed head does not satisfy the issue's `release only when installed hook inputs change` contract.** The classifier releases for explicitly non-hook utilities, and the existing hook-version diagnostic still assumes the old `v*` and pyproject-version model. These defects cause unnecessary package releases and make valid `aos-precommit-v*` consumer pins appear outdated. evidence: - Reviewed Forgejo PR [#818](https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818) at the issue-thread SHA `056ba81404bac19a5f6b38e6d648696b091c3633`. The PR is open and Forgejo reports it mergeable. - The core train is present: `pyproject.toml` names the distribution `aos-precommit`, `.forgejo/workflows/aos-precommit-release.yml` runs from promoted `release`, `actions/tag-bump` receives `tag_prefix: aos-precommit-v`, workflow dispatch forces the impact decision, and the rollout helper resolves only `aos-precommit-v*` tags with a bootstrap fallback of `aos-precommit-v0.1.0`. - `agentic_os/release_impact.py` classifies every path below `agentic_os/pre_commit/` as a release input. An exact-head probe with `agentic_os/pre_commit/check_ssm_path.py` returned `release_required: true`. - The hook manifest explicitly documents `check_ssm_path`, `check_aws_config`, and `check_context_budget` as intentionally **not hooks** and says they ship as Ward-only commands. Changes to those files therefore advance `aos-precommit-v*` despite not changing an installed consumer hook. - The classifier also treats `scripts/apply-agentic-os-hooks.py` as a package release input. That is the rollout helper, not an installed hook entry. The exact-head probe returned `release_required: true` for that path as well. - `shell/common.sh` still implements `pre-commit-all-aos-version-outdated` by comparing `${rev#v}` with the pyproject version. For `rev=aos-precommit-v0.1.0`, `${rev#v}` remains `aos-precommit-v0.1.0`, so even the bootstrap pin is reported as stale. This also conflicts with `docs/release.md`, which now states that pyproject version may intentionally lag automatic package tags. - The added release-impact tests cover ordinary docs and unrelated generators, but they do not test the explicitly non-hook modules or the stale shell diagnostic, allowing both contract regressions through. - Exact-head targeted validation passed: 46 tests passed with one expected shallow-tag skip across release impact, rollout resolution, release actions, and dev-base workflow tests. `ward exec pre-commit-all` also passed every hook, including actionlint and Forgejo workflow validation. - Live PR checks at inspection time show `ci / ward-doctor` successful in 18 seconds and `ci / gate` successful in 1 minute 16 seconds. `ci / build-dev-base` remains pending. - The reviewed head is one commit behind current `main`: PR base `d0acdb65751803998bbc0cc8e7b397e0532e48c9`, merge base `92101f4d049b3fe4779d73120fb3c7b9fd0bd6ca`. The intervening main-only change is in `AGENTS.md`. risks: - The same PR changes dev-base Git LFS installation and checksums, but the live `build-dev-base` check has not completed. - The automatic bootstrap tag, Forgejo release creation, and GitHub tag mirror cannot be exercised end to end until the workflow reaches the promoted `release` branch. - Refreshing the branch from current main or fixing these findings will change the reviewed SHA and require a new exact-head QA pass. next steps: - Narrow the aos-precommit classifier to the published hook manifest's runtime closure. Add negative tests for the three explicitly non-hook validators and decide explicitly whether rollout-helper changes should advance the package train. - Update `pre-commit-all-aos-version-outdated` to compare consumer pins with the latest full `aos-precommit-v*` tag rather than pyproject version, then add regression coverage for automatic-tag version lag. - Refresh the candidate against current main, wait for all checks including `build-dev-base`, and request QA again on the resulting SHA. run_identity: dispatcher framing: Read the issue title, body, and comment thread below as the QA brief. Inspect the candidate branch, any linked pull request, and the available checks in the live repository state. Return a structured QA verdict that a human can read at a glance. Do not edit files, commit, push, or otherwise change implementation state. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARD-WORKFLOW: #818

details

review summary: intentionally skipped in-container because implementation and QA are role-separated. QA is a separate, opt-in exact-commit verification role bound to candidate ee0862dfede83fa0ab9d8e1e1f0aabfd7ae1c3b6.

workflow: pull-request-and-merge; review summary: skipped for fresh independent exact-commit QA

validation: ward exec repo-test-gate passed 627 tests with 2 expected skips and the complete pre-commit catalog. Exact-head CI is green: ward-doctor 32s, gate 1m23s, build-dev-base 15m52s.

felt: focused after QA identified two crisp contract gaps. Confidence: high. Surprise: the stale shell helper still followed the retired pyproject clock. Follow-up: fresh independent QA, then director merge.

Codex, via ward agent

WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818 <details><summary>details</summary> review summary: intentionally skipped in-container because implementation and QA are role-separated. QA is a separate, opt-in exact-commit verification role bound to candidate `ee0862dfede83fa0ab9d8e1e1f0aabfd7ae1c3b6`. workflow: pull-request-and-merge; review summary: skipped for fresh independent exact-commit QA validation: `ward exec repo-test-gate` passed 627 tests with 2 expected skips and the complete pre-commit catalog. Exact-head CI is green: ward-doctor 32s, gate 1m23s, build-dev-base 15m52s. felt: focused after QA identified two crisp contract gaps. Confidence: high. Surprise: the stale shell helper still followed the retired pyproject clock. Follow-up: fresh independent QA, then director merge. <!-- ward-agent-signature --> Codex, via `ward agent` </details>
Author
Member

WARD-WORKFLOW: reservation-released

release details

Run finished with WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818.

ward container reap released container engineer-codex-agentic-os-816 (--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs --override-reservation.

Outcome summary: #818

— Codex, via ward agent

<!-- ward-agent-reservation-released --> WARD-WORKFLOW: reservation-released <details><summary>release details</summary> Run finished with `WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818`. `ward container reap` released container `engineer-codex-agentic-os-816` (`--harness codex`): the terminal outcome supersedes the reservation, so a later redispatch no longer needs `--override-reservation`. **Outcome summary:** https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818 </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARD-WORKFLOW: #818

details

WARD-OUTCOME: done
director merge authorization: reviewed-and-ready
workflow: pull-request-and-merge
review summary: passed: corrected head ee0862dfed is mergeable from current main, exact-head repo gate passed with 627 tests and 2 expected skips, and pull-request CI run 2587 is fully green including the 15m52s dev-base build. Independent QA passed at #823 (comment). The older qa-failed result applies only to superseded head 056ba81404.
reviewed SHA: ee0862dfed

WARD-WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/pulls/818 <details><summary>details</summary> WARD-OUTCOME: done director merge authorization: reviewed-and-ready workflow: pull-request-and-merge review summary: passed: corrected head ee0862dfede83fa0ab9d8e1e1f0aabfd7ae1c3b6 is mergeable from current main, exact-head repo gate passed with 627 tests and 2 expected skips, and pull-request CI run 2587 is fully green including the 15m52s dev-base build. Independent QA passed at https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os/issues/823#issuecomment-45175. The older qa-failed result applies only to superseded head 056ba81404bac19a5f6b38e6d648696b091c3633. reviewed SHA: ee0862dfede83fa0ab9d8e1e1f0aabfd7ae1c3b6 </details>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#816
No description provided.