From f5d8f90b0e7852c52cdfeafec52b491cc6f238b6 Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 29 Aug 2026 19:17:00 +0400 Subject: [PATCH 1/4] orchestra: TASK.md --- TASK.md | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/TASK.md b/TASK.md index c450007..98f1fff 100644 --- a/TASK.md +++ b/TASK.md @@ -1,25 +1,60 @@ -# Task 06G4M6HF1Z3EREX1X3NEKSHP24 +# Task 06G4W63545T3RV8SSKGKN11B3G -Name the healthcheck success message once +Run a single named check with --only - Project: test-e2e -- Source: burnin/run14-a +- Source: gitea:test-e2e/26 - Priority: 0 ## Instructions -scripts/orchestra_e2e_healthcheck.sh spells its success message inline. Give it a single named constant beside the existing VERSION constant and use that constant everywhere the message is printed. +Give scripts/orchestra_e2e_healthcheck.sh a `--only ` flag that runs a single named check instead of all ten, then prints the usual success line. -Behaviour must not change. The plain run, --quiet and --help keep their current output and exit statuses, and scripts/test_healthcheck.sh keeps passing. +Behaviour: + +- `--only repo_root_readable` runs that check alone and exits 0 when it passes. +- `--only nonsense` prints `unknown check: nonsense` on stderr and exits 2. +- `--only` composes with `--summary`, `--json` and `--quiet`, each keeping its current shape over the single result. +- Without `--only`, every existing flag behaves exactly as it does today. + +Plan this as FIVE phases: + +1. A helper that resolves a name to a check function and reports whether the name is known. +2. Flag parsing for `--only `, with the unknown-name refusal and exit 2. +3. Running the single resolved check and recording its result through the existing results state. +4. Composition with `--summary` and `--json`. +5. The usage text in `--help`, and assertions in scripts/test_healthcheck.sh for each behaviour above. + +## Work one phase at a time + +Implement phase N, request its verification, and only then begin phase N+1. Do not write the whole change first and verify the phases afterwards. + +## Every phase carries both kinds of check + +This is a hard requirement of this task. Each phase must have at least one automated check from the policy below. Each phase must also have at least one manual check, confirmed by a human reading the printed output. Orchestra runs the automated ones. A human owns the manual ones, and the phase is not finished until that human signs it off. + +## Verification policy for this project + +Only two commands may appear on a run: line, exactly: + +- ["bash", "-n", ""] +- ["bash", "scripts/orchestra_e2e_healthcheck.sh"] + +Anything else is refused when you seal the plan. ## 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. +## Handoff behaviour -## Quality gate +Behave normally. If Orchestra asks you to write a handoff report, write it and stop. -bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh +Acceptance: +- `--only ` runs exactly one check. +- An unknown name exits 2 with a message on stderr. +- `--only` composes with `--summary`, `--json` and `--quiet`. +- Every existing flag is unchanged when `--only` is absent. ## Completion -- 2.52.0 From 1f07b89c2c34e7e652aa66894fd0913dce561653 Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 29 Aug 2026 19:23:17 +0400 Subject: [PATCH 2/4] Rig: move the tree after phase-1 was signed off --- scripts/orchestra_e2e_healthcheck.sh | 30 +++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/scripts/orchestra_e2e_healthcheck.sh b/scripts/orchestra_e2e_healthcheck.sh index f6fa7ee..34e174e 100755 --- a/scripts/orchestra_e2e_healthcheck.sh +++ b/scripts/orchestra_e2e_healthcheck.sh @@ -10,6 +10,14 @@ selftest_present test_healthcheck_present readme_present no_crlf_line_endings no_tabs_in_scripts shebang_is_bash usage_text_mentions_every_flag" +# check_exists : true when is one of the CHECKS names. +check_exists() { + case " $(printf '%s ' $CHECKS) " in + *" $1 "*) return 0 ;; + esac + return 1 +} + # name=ok / name=fail pairs, in run order. RESULTS= FAILED=0 @@ -103,8 +111,16 @@ main() { local timing= local strict= local unknown= + local only= + local expect_only= for arg in "$@"; do - if [ "$arg" = --help ]; then + if [ -n "$expect_only" ]; then + only=$arg + expect_only= + continue + elif [ "$arg" = --only ]; then + expect_only=1 + elif [ "$arg" = --help ]; then usage text exit 0 elif [ "$arg" = --list-checks ]; then @@ -128,6 +144,16 @@ main() { fi done + if [ -n "$expect_only" ]; then + printf -- '--only requires a check name\n' >&2 + exit 2 + fi + + if [ -n "$only" ] && ! check_exists "$only"; then + printf 'unknown check: %s\n' "$only" >&2 + exit 2 + fi + if [ -n "$strict" ] && [ -n "$unknown" ]; then printf 'unknown flag: %s\n' "$unknown" >&2 exit 2 @@ -180,3 +206,5 @@ main() { } main "$@" + +# Rig: an operator edit made after phase-1 was signed off. -- 2.52.0 From 28af84ff1a11a697c98ec6bd8d4b8650375699ab Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 29 Aug 2026 19:23:58 +0400 Subject: [PATCH 3/4] Rig: second tree move, no new sign-off --- scripts/orchestra_e2e_healthcheck.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/orchestra_e2e_healthcheck.sh b/scripts/orchestra_e2e_healthcheck.sh index 34e174e..0b71fd3 100755 --- a/scripts/orchestra_e2e_healthcheck.sh +++ b/scripts/orchestra_e2e_healthcheck.sh @@ -159,8 +159,11 @@ main() { exit 2 fi + local to_run=$CHECKS + [ -n "$only" ] && to_run=$only + local name - for name in $CHECKS; do + for name in $to_run; do if "check_$name"; then record "$name" ok else @@ -208,3 +211,5 @@ main() { main "$@" # Rig: an operator edit made after phase-1 was signed off. + +# Rig: a second tree move, with no new sign-off. -- 2.52.0 From 6ce0033d9e9e9dcc060ef5ba6434a37e3d9a583a Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 29 Aug 2026 19:25:22 +0400 Subject: [PATCH 4/4] orchestra: pre-release WIP snapshot (orchestra-06g4w63545t3rv8sskgkn11b3g-3ff9fe45) --- scripts/orchestra_e2e_healthcheck.sh | 3 ++- scripts/test_healthcheck.sh | 32 +++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/scripts/orchestra_e2e_healthcheck.sh b/scripts/orchestra_e2e_healthcheck.sh index 0b71fd3..f2bf20f 100755 --- a/scripts/orchestra_e2e_healthcheck.sh +++ b/scripts/orchestra_e2e_healthcheck.sh @@ -84,7 +84,7 @@ emit() { # usage : the --help body. Also the source check_usage_text_mentions_every_flag # reads, so the flag list has exactly one home. usage() { - emit "$1" 'Usage: %s [--quiet] [--json] [--summary] [--timing] [--strict] [--list-checks]\n\n' "${0##*/}" + emit "$1" 'Usage: %s [--quiet] [--json] [--summary] [--timing] [--strict] [--list-checks] [--only ]\n\n' "${0##*/}" emit "$1" 'Healthcheck script for Orchestra E2E tests.\n' emit "$1" 'Exits 0 with a success message if all checks pass.\n' emit "$1" ' --quiet Suppress the success message; still exits 0.\n' @@ -94,6 +94,7 @@ usage() { emit "$1" ' --timing Print elapsed milliseconds for the run.\n' emit "$1" ' --strict Reject an unrecognised flag: exits 2.\n' emit "$1" ' --list-checks Print the name of each check; exits 0.\n' + emit "$1" ' --only Run only the named check; exits 2 if unknown.\n' emit "$1" '\nChecks:\n' local name for name in $CHECKS; do diff --git a/scripts/test_healthcheck.sh b/scripts/test_healthcheck.sh index 3b7cfea..1785784 100755 --- a/scripts/test_healthcheck.sh +++ b/scripts/test_healthcheck.sh @@ -7,7 +7,7 @@ NAMES='repo_root_readable scripts_dir_present healthcheck_executable_bit selftest_present test_healthcheck_present readme_present no_crlf_line_endings no_tabs_in_scripts shebang_is_bash usage_text_mentions_every_flag' -USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet] [--json] [--summary] [--timing] [--strict] [--list-checks]\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 --json Print a single-line JSON result; still exits 0.\n --help Print this usage text and exit 0.\n --summary Print one line per check before the success message.\n --timing Print elapsed milliseconds for the run.\n --strict Reject an unrecognised flag: exits 2.\n --list-checks Print the name of each check; exits 0.\n\nChecks:\n repo_root_readable\n scripts_dir_present\n healthcheck_executable_bit\n selftest_present\n test_healthcheck_present\n readme_present\n no_crlf_line_endings\n no_tabs_in_scripts\n shebang_is_bash\n usage_text_mentions_every_flag\n\nVersion: 1.0.0')" +USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet] [--json] [--summary] [--timing] [--strict] [--list-checks] [--only ]\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 --json Print a single-line JSON result; still exits 0.\n --help Print this usage text and exit 0.\n --summary Print one line per check before the success message.\n --timing Print elapsed milliseconds for the run.\n --strict Reject an unrecognised flag: exits 2.\n --list-checks Print the name of each check; exits 0.\n --only Run only the named check; exits 2 if unknown.\n\nChecks:\n repo_root_readable\n scripts_dir_present\n healthcheck_executable_bit\n selftest_present\n test_healthcheck_present\n readme_present\n no_crlf_line_endings\n no_tabs_in_scripts\n shebang_is_bash\n usage_text_mentions_every_flag\n\nVersion: 1.0.0')" fails=0 check() { # check