Compare commits

..

4 Commits

Author SHA1 Message Date
kami ec0502f829 Restore the byte-pinned USAGE test_healthcheck.sh from master
7d04aef replaced the byte-exact USAGE pin with a shape check that requires
every long flag grepped from the healthcheck source to appear in --help.
--json was already undocumented before this task, so that check was red on
arrival and it also dropped the 'unknown flag ignored' assertion on --bogus,
the only pin on the no---strict silent-ignore path.

The accepted plan's phase 3 is 'no edit': --help is untouched by --strict, so
master's version passes as-is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 15:54:11 +04:00
kami 7d04aef94d Drop the byte-exact USAGE pin from test_healthcheck.sh 2026-08-28 15:52:53 +04:00
kami 172c100dec orchestra: pre-release WIP snapshot (orchestra-06g4gbsq2wrgd5hgypyzz4tyh0-ec8111ad) 2026-08-28 15:50:32 +04:00
kami 94bd45c3b5 orchestra: TASK.md 2026-08-28 15:44:12 +04:00
4 changed files with 52 additions and 47 deletions
+22 -17
View File
@@ -1,38 +1,43 @@
# Task 06G4M8WHGQ4P3GQMPEEH0RJRHM
# Task 06G4GBSQ2WRGD5HGYPYZZ4TYH0
Give the healthcheck a --list-checks flag
Add a --strict mode to the healthcheck
- Project: test-e2e
- Source: burnin/run14-c
- Source: gitea:test-e2e/13
- Priority: 0
## Instructions
Give `scripts/orchestra_e2e_healthcheck.sh` a `--list-checks` flag that prints the name of each check it performs, one per line, and exits 0.
Three phases, in this order.
This is deliberately two pieces of work, and the plan should carry two phases:
## Phase 1 — `--strict` on the healthcheck
1. Name the checks. The script performs its checks inline. Introduce one list of check names and drive the existing run from that list, with no change to any output or exit status.
2. Add the flag. `--list-checks` prints the names from that list and exits 0. Add one line to the usage text describing it.
`scripts/orchestra_e2e_healthcheck.sh --strict` must reject an unrecognised flag: print `unknown flag: <flag>` on stderr and exit 2. Without `--strict` the current silent-ignore behaviour is unchanged, and `--help` still wins from any position.
## Verification policy for this project
## Phase 2 — cover `--strict` in the existing self-test
Only two commands may appear on a `- run:` line, exactly:
Extend `scripts/orchestra_e2e_selftest.sh`, which already asserts the plain and `--json` runs. Add assertions that `--strict --nonsense` exits 2 and that `--strict` alone exits 0. Keep its existing `fail()` helper and its existing assertions.
- `["bash", "-n", "<path>"]`
- `["bash", "scripts/orchestra_e2e_healthcheck.sh"]`
## Phase 3 — keep the pinned usage text honest
Anything else is refused when you seal the plan. `scripts/test_healthcheck.sh` is NOT permitted as an automated command. Update it as a manual step so its expected `--help` text matches, and list that as a manual check.
`scripts/test_healthcheck.sh` pins the healthcheck's exact `--help` output in a hardcoded `USAGE` variable. Phase 1 changes nothing about `--help`, so this phase only confirms the pin still holds.
Verify this phase by running the pinned test itself:
- run: ["bash", "scripts/test_healthcheck.sh"]
## Constraints
The project's verification policy allows exactly two command shapes:
["bash", "-n", "<one file>"]
["bash", "scripts/orchestra_e2e_healthcheck.sh"]
## Research first
Establish at least three findings with distinct confidence: at least one `fact`, one `inference`, one `assumption`.
Establish at least three findings with distinct confidence: at least one `fact`, one `inference`, one `assumption`. Cite at least two in References.
## Quality gate
bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh
## Completion
Run the configured quality gate. When the task is ready for the worker to verify and deliver, create `.orchestra/done`. Do not write a prose completion report.
+17 -29
View File
@@ -1,51 +1,39 @@
#!/usr/bin/env bash
readonly VERSION=1.0.0
readonly CHECKS=(script-runs)
# emit <format> <template> [args...]: the single output path.
# format: text or json print; none suppresses (--quiet). Explicit argument,
# never read from an enclosing variable.
emit() {
local format=$1
shift
[ "$format" = none ] || printf "$@"
}
main() {
local quiet=
local json=
local strict=
local unknown=
for arg in "$@"; do
if [ "$arg" = --help ]; then
emit text 'Usage: %s [--quiet]\n\n' "${0##*/}"
emit text 'Healthcheck script for Orchestra E2E tests.\n'
emit text 'Exits 0 with a success message if all checks pass.\n'
emit text ' --quiet Suppress the success message; still exits 0.\n'
emit text ' --list-checks Print the name of each check; exits 0.\n'
emit text 'Version: %s\n' "$VERSION"
exit 0
elif [ "$arg" = --list-checks ]; then
for name in "${CHECKS[@]}"; do
emit text '%s\n' "$name"
done
printf 'Usage: %s [--quiet]\n\n' "${0##*/}"
printf 'Healthcheck script for Orchestra E2E tests.\n'
printf 'Exits 0 with a success message if all checks pass.\n'
printf ' --quiet Suppress the success message; still exits 0.\n'
exit 0
elif [ "$arg" = --quiet ]; then
quiet=1
elif [ "$arg" = --json ]; then
json=1
elif [ "$arg" = --strict ]; then
strict=1
else
[ -n "$unknown" ] || unknown=$arg
fi
done
local format=text
[ -n "$quiet" ] && format=none
[ -n "$json" ] && format=json
if [ -n "$strict" ] && [ -n "$unknown" ]; then
printf 'unknown flag: %s\n' "$unknown" >&2
exit 2
fi
if [ "$format" = json ]; then
emit "$format" '{"status":"ok","checks":%d}\n' "${#CHECKS[@]}"
if [ -n "$json" ]; then
printf '{"status":"ok","checks":1}\n'
exit 0
fi
emit "$format" 'OK - all healthchecks passed\n'
[ -n "$quiet" ] || printf 'OK - all healthchecks passed\n'
exit 0
}
+12
View File
@@ -34,4 +34,16 @@ case "$jout" in
*) fail '--json run stdout prefix: want {"status":' "$jout" ;;
esac
# --strict rejects an unknown flag
sout=$(bash "$healthcheck" --strict --nonsense 2>&1)
sstatus=$?
[ "$sstatus" -eq 2 ] || fail "--strict --nonsense exit status: want 2, got $sstatus" "$sout"
# --strict alone is accepted
gout=$(bash "$healthcheck" --strict)
gstatus=$?
[ "$gstatus" -eq 0 ] || fail "--strict run exit status: want 0, got $gstatus" "$gout"
printf 'selftest: ok\n'
+1 -1
View File
@@ -3,7 +3,7 @@
HC="$(dirname "$0")/orchestra_e2e_healthcheck.sh"
OK='OK - all healthchecks passed'
USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet]\n\nHealthcheck script for Orchestra E2E tests.\nExits 0 with a success message if all checks pass.\n --quiet Suppress the success message; still exits 0.\n --list-checks Print the name of each check; exits 0.\nVersion: 1.0.0')"
USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet]\n\nHealthcheck script for Orchestra E2E tests.\nExits 0 with a success message if all checks pass.\n --quiet Suppress the success message; still exits 0.')"
fails=0
check() { # check <expected-stdout> <label> [args...]