refactor(ci): run repo tasks through just instead of ward exec #1055

Merged
coilysiren merged 3 commits from aos/claude/mg96-ci into main 2026-08-14 07:44:28 +00:00
Member

Part of the coilysiren/inbox#365 teardown. Unblocked by #1049, which put just in the :release dev-base image that CI runs inside.

What changed

  • ci.yml and promote.yml call just aos-test / just agent-terminal-test directly.
  • scripts/ci/aos-cli-release.sh runs its five verbs through just.
  • tests/test_aos_cli_release.py assertions updated to match.

Two shims deleted

Both existed only to satisfy ward's repo-verb gate, which no longer runs:

  • run-workflow-ward.sh - a one-line exec ward exec "$@" behind a pull-request ref preamble.
  • prepare-workflow-ward-pr.sh - built the verified merge evidence that gate consumed. Orphaned once the shim went, with no remaining references to it or WARD_CI_GITHUB_*.

The aos-cli-tests job is now checkout plus two commands.

Ward is not gone from CI

It stays in promote.yml and the ward-doctor job, which run ward doctor to validate its supported YAML contract. install-workflow-ward.sh is still used by both. This removes ward as a task runner, not as flight control.

Deliberate loss

ward exec's argv pre-validation does not carry over, and neither do audit rows for task verbs. Both are intentional: the containment boundary is the container (aos / ward agent), not the task runner. Nothing referenced those audit rows.

Verified

just pre-commit-all clean, and tests/test_aos_cli_release.py plus tests/test_pull_request_ci_workflow.py pass (5 passed).

Note the real proof is this PR's own CI run: it exercises the switched ci.yml against :release, so a missing just would fail here rather than after merge.

Part of the coilysiren/inbox#365 teardown. Unblocked by #1049, which put `just` in the `:release` dev-base image that CI runs inside. ## What changed * `ci.yml` and `promote.yml` call `just aos-test` / `just agent-terminal-test` directly. * `scripts/ci/aos-cli-release.sh` runs its five verbs through `just`. * `tests/test_aos_cli_release.py` assertions updated to match. ## Two shims deleted Both existed only to satisfy ward's repo-verb gate, which no longer runs: * `run-workflow-ward.sh` - a one-line `exec ward exec "$@"` behind a pull-request ref preamble. * `prepare-workflow-ward-pr.sh` - built the verified merge evidence that gate consumed. Orphaned once the shim went, with no remaining references to it or `WARD_CI_GITHUB_*`. The `aos-cli-tests` job is now checkout plus two commands. ## Ward is not gone from CI It stays in `promote.yml` and the `ward-doctor` job, which run `ward doctor` to validate its supported YAML contract. `install-workflow-ward.sh` is still used by both. This removes ward as a *task runner*, not as flight control. ## Deliberate loss `ward exec`'s argv pre-validation does not carry over, and neither do audit rows for task verbs. Both are intentional: the containment boundary is the container (`aos` / `ward agent`), not the task runner. Nothing referenced those audit rows. ## Verified `just pre-commit-all` clean, and `tests/test_aos_cli_release.py` plus `tests/test_pull_request_ci_workflow.py` pass (5 passed). Note the real proof is this PR's own CI run: it exercises the switched `ci.yml` against `:release`, so a missing `just` would fail here rather than after merge.
refactor(ci): run repo tasks through just instead of ward exec
Some checks failed
ci / aos-cli-tests (pull_request) Failing after 10s
ci / ward-doctor (pull_request) Successful in 13s
ci / gate (pull_request) Successful in 53s
6f25fcdded
The dev-base :release image now ships just (#1049), so CI can stop depending
on ward to run this repo's own tasks.

ci.yml and promote.yml call `just aos-test` / `just agent-terminal-test`
directly, and scripts/ci/aos-cli-release.sh runs its five verbs through just.

Deletes two shims that existed only to satisfy ward's repo-verb gate:
run-workflow-ward.sh (a one-line `exec ward exec`) and
prepare-workflow-ward-pr.sh (built merge evidence for that gate). The
aos-cli-tests job is now checkout plus two commands.

Ward stays in promote.yml and the ward-doctor job, which validate its YAML
contract rather than run tasks.

Argv pre-validation does not carry over, which is deliberate: the containment
boundary is the container, not the task runner.

Refs coilysiren/inbox#365

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Merge branch 'main' into aos/claude/mg96-ci
Some checks failed
ci / aos-cli-tests (pull_request) Failing after 23s
ci / ward-doctor (pull_request) Successful in 21s
ci / gate (pull_request) Successful in 1m20s
dev-base-pr / build (pull_request) Successful in 4m17s
ab7c248232
Merge branch 'main' into aos/claude/mg96-ci
All checks were successful
ci / ward-doctor (pull_request) Successful in 17s
ci / aos-cli-tests (pull_request) Successful in 24s
ci / gate (pull_request) Successful in 1m11s
dev-base-pr / build (pull_request) Successful in 12m44s
b5fa1508a3
coilysiren deleted branch aos/claude/mg96-ci 2026-08-14 07:44:28 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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!1055
No description provided.