From 80728967dd6e6a36bdb4fa10d4baaaabd41ffeec Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 29 Aug 2026 19:02:45 +0400 Subject: [PATCH 1/2] orchestra: TASK.md --- TASK.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/TASK.md b/TASK.md index c450007..3fc65c7 100644 --- a/TASK.md +++ b/TASK.md @@ -1,25 +1,70 @@ -# Task 06G4M6HF1Z3EREX1X3NEKSHP24 +# Task 06G4W2TMZ9MW9SEBM5MGTM5288 -Name the healthcheck success message once +Describe each healthcheck check in one line - Project: test-e2e -- Source: burnin/run14-a +- Source: gitea:test-e2e/24 - 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. +scripts/orchestra_e2e_healthcheck.sh now runs ten named checks. Give each one a one-line description, and print those descriptions where the names are already printed. -Behaviour must not change. The plain run, --quiet and --help keep their current output and exit statuses, and scripts/test_healthcheck.sh keeps passing. +The descriptions, one per check: + +- repo_root_readable: the repository root exists and is readable +- scripts_dir_present: the scripts directory exists +- healthcheck_executable_bit: this script is executable +- selftest_present: the selftest script is present +- test_healthcheck_present: the healthcheck test is present +- readme_present: README.md is present +- no_crlf_line_endings: no tracked text file uses CRLF endings +- no_tabs_in_scripts: no script indents with tabs +- shebang_is_bash: every script declares the bash shebang +- usage_text_mentions_every_flag: the usage text lists every flag + +Where they appear: + +- `--list-checks` prints `: `, one per line. +- `--help` prints the same description beside each name in its Checks section. +- `--summary` is unchanged and keeps printing `: ok`. + +Plan this as FIVE phases, two checks per phase, in the order listed 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. + +## Behaviour that must not change + +Every existing flag keeps its current behaviour and exit status: --quiet, --json, --summary, --timing, --strict, --help. The success line is unchanged. ## 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: +- Each of the ten checks has a one-line description in exactly one place in the script. +- --list-checks prints name and description for all ten. +- --help lists all ten names with their descriptions. +- --summary, --timing, --strict, --json and --quiet behave exactly as before. ## Completion -- 2.52.0 From c8280c4550505b5c082dd2ad050204b21ea922ce Mon Sep 17 00:00:00 2001 From: kami Date: Sat, 29 Aug 2026 19:10:55 +0400 Subject: [PATCH 2/2] orchestra: pre-release WIP snapshot (orchestra-06g4w2tmz9mw9sebm5mgtm5288-89c1c97d) --- scripts/orchestra_e2e_healthcheck.sh | 33 ++++++++++++++++++++++++++-- scripts/test_healthcheck.sh | 16 ++++++++++++-- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/scripts/orchestra_e2e_healthcheck.sh b/scripts/orchestra_e2e_healthcheck.sh index f6fa7ee..262dd75 100755 --- a/scripts/orchestra_e2e_healthcheck.sh +++ b/scripts/orchestra_e2e_healthcheck.sh @@ -73,6 +73,35 @@ emit() { [ "$format" = none ] || printf "$@" } +# describe : the one-line description of a check. One case branch per +# name; this is the only place a description is written. +describe() { + case "$1" in + repo_root_readable) printf 'the repository root exists and is readable' ;; + scripts_dir_present) printf 'the scripts directory exists' ;; + healthcheck_executable_bit) printf 'this script is executable' ;; + selftest_present) printf 'the selftest script is present' ;; + test_healthcheck_present) printf 'the healthcheck test is present' ;; + readme_present) printf 'README.md is present' ;; + no_crlf_line_endings) printf 'no tracked text file uses CRLF endings' ;; + no_tabs_in_scripts) printf 'no script indents with tabs' ;; + shebang_is_bash) printf 'every script declares the bash shebang' ;; + usage_text_mentions_every_flag) printf 'the usage text lists every flag' ;; + esac +} + +# label : ': ', or bare '' while a name has no +# description yet. +label() { + local text + text=$(describe "$1") + if [ -n "$text" ]; then + printf '%s: %s' "$1" "$text" + else + printf '%s' "$1" + fi +} + # usage : the --help body. Also the source check_usage_text_mentions_every_flag # reads, so the flag list has exactly one home. usage() { @@ -89,7 +118,7 @@ usage() { emit "$1" '\nChecks:\n' local name for name in $CHECKS; do - emit "$1" ' %s\n' "$name" + emit "$1" ' %s\n' "$(label "$name")" done emit "$1" '\nVersion: %s\n' "$VERSION" } @@ -110,7 +139,7 @@ main() { elif [ "$arg" = --list-checks ]; then local listed for listed in $CHECKS; do - emit text '%s\n' "$listed" + emit text '%s\n' "$(label "$listed")" done exit 0 elif [ "$arg" = --quiet ]; then diff --git a/scripts/test_healthcheck.sh b/scripts/test_healthcheck.sh index 3b7cfea..e9cbedc 100755 --- a/scripts/test_healthcheck.sh +++ b/scripts/test_healthcheck.sh @@ -7,7 +7,19 @@ 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')" +LABELS='repo_root_readable: the repository root exists and is readable +scripts_dir_present: the scripts directory exists +healthcheck_executable_bit: this script is executable +selftest_present: the selftest script is present +test_healthcheck_present: the healthcheck test is present +readme_present: README.md is present +no_crlf_line_endings: no tracked text file uses CRLF endings +no_tabs_in_scripts: no script indents with tabs +shebang_is_bash: every script declares the bash shebang +usage_text_mentions_every_flag: the usage text lists 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' + while IFS= read -r line; do printf ' %s\n' "$line"; done <<<"$LABELS" + printf '\nVersion: 1.0.0')" fails=0 check() { # check