Give the healthcheck a self-test and a machine-readable mode #11

Merged
kami merged 3 commits from orchestra/06G4FT0MB733H2ZCZ237WFHFD8 into master 2026-08-28 12:42:28 +02:00
Owner

Goal

Give the healthcheck a self-test and a machine-readable mode

Three pieces of work, in order. Plan them as exactly three phases in that order. ## Phase 1 — a self-test for the healthcheck New file scripts/orchestra_e2e_selftest.sh, executable, #!/usr/bin/env bash. It runs scripts/orchestra_e2e_healthcheck.sh, then asserts: - exit status is 0 - stdout contains OK On failure it prints which assertion failed and exits 1. On success it prints selftest: ok and exits 0. Verification for this phase is automated only. The one check is: - run: ["bash", "-n", "scripts/orchestra_e2e_selftest.sh"] Do not add a manual step to this phase. ## Phase 2 — --json on the healthcheck scripts/orchestra_e2e_healthcheck.sh --json prints exactly one line: {"status":"ok","checks":1} and exits 0. Without --json the existing human output is unchanged, and --help keeps working. --json and --help together behave as --help. Verification for this phase must include both an automated check and a manual step. The JSON shape is a judgement a human confirms by reading it, so state the manual step as the exact command a human runs and the exact line they should see. ## Phase 3 — teach the self-test about --json Extend scripts/orchestra_e2e_selftest.sh to run the healthcheck twice: once plain and once with --json. Assert the plain run still contains OK, and assert the --json run prints one line beginning with {"status":. Verification for this phase is automated only: - run: ["bash", "-n", "scripts/orchestra_e2e_selftest.sh"] - run: ["bash", "scripts/orchestra_e2e_healthcheck.sh"] ## Constraints The project's verification policy allows exactly two command shapes: ["bash", "-n", ""] ["bash", "scripts/orchestra_e2e_healthcheck.sh"] A run: line outside those is refused when the plan seals, not later. ## Research first Before planning, establish at least three findings and label their confidence honestly: at least one fact, one inference, and one assumption. The plan must cite at least two of them in References.

Acceptance

  • not stated in the task contract

Human decisions

  • correction (operator_instruction): looks good to me, the json line reads fine
  • correction (plan_phase_verification:51afbfa90ad3c22b7b4c2730551d41658458277ba52094b0cbb8f90b49f32147:phase-2): orchestra verify phase-2 Ran it: one line, exactly {"status":"ok","checks":1}.
  • correction (operator_instruction): Please change one thing before this merges: the self-test should print the healthcheck output it saw when an assertion fails, so a red run is diagnosable without rerunning by hand. Everything else is fine.

Verification

  • bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh exited 0
  • commit: ba0e891348
  • independent review of ba0e891348: pass
  • accepted plan: 51afbfa90ad3c22b7b4c2730551d41658458277ba52094b0cbb8f90b49f32147

Behavioural changes

  • none reported

Deviations from plan

  • none reported

Remaining risks

  • none reported

Review hotspots

  • none reported

The sections above are derived from Orchestra state. The reported
changes, deviations, risks, and hotspots are the implementing agent's
own account and are not verified.

## Goal Give the healthcheck a self-test and a machine-readable mode Three pieces of work, in order. Plan them as exactly three phases in that order. ## Phase 1 — a self-test for the healthcheck New file `scripts/orchestra_e2e_selftest.sh`, executable, `#!/usr/bin/env bash`. It runs `scripts/orchestra_e2e_healthcheck.sh`, then asserts: - exit status is 0 - stdout contains `OK` On failure it prints which assertion failed and exits 1. On success it prints `selftest: ok` and exits 0. Verification for this phase is automated only. The one check is: - run: ["bash", "-n", "scripts/orchestra_e2e_selftest.sh"] Do not add a manual step to this phase. ## Phase 2 — `--json` on the healthcheck `scripts/orchestra_e2e_healthcheck.sh --json` prints exactly one line: {"status":"ok","checks":1} and exits 0. Without `--json` the existing human output is unchanged, and `--help` keeps working. `--json` and `--help` together behave as `--help`. Verification for this phase must include both an automated check and a manual step. The JSON shape is a judgement a human confirms by reading it, so state the manual step as the exact command a human runs and the exact line they should see. ## Phase 3 — teach the self-test about `--json` Extend `scripts/orchestra_e2e_selftest.sh` to run the healthcheck twice: once plain and once with `--json`. Assert the plain run still contains `OK`, and assert the `--json` run prints one line beginning with `{"status":`. Verification for this phase is automated only: - run: ["bash", "-n", "scripts/orchestra_e2e_selftest.sh"] - run: ["bash", "scripts/orchestra_e2e_healthcheck.sh"] ## Constraints The project's verification policy allows exactly two command shapes: ["bash", "-n", "<one file>"] ["bash", "scripts/orchestra_e2e_healthcheck.sh"] A `run:` line outside those is refused when the plan seals, not later. ## Research first Before planning, establish at least three findings and label their confidence honestly: at least one `fact`, one `inference`, and one `assumption`. The plan must cite at least two of them in References. ## Acceptance - not stated in the task contract ## Human decisions - correction (operator_instruction): looks good to me, the json line reads fine - correction (plan_phase_verification:51afbfa90ad3c22b7b4c2730551d41658458277ba52094b0cbb8f90b49f32147:phase-2): orchestra verify phase-2 Ran it: one line, exactly {"status":"ok","checks":1}. - correction (operator_instruction): Please change one thing before this merges: the self-test should print the healthcheck output it saw when an assertion fails, so a red run is diagnosable without rerunning by hand. Everything else is fine. ## Verification - `bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh` exited 0 - commit: ba0e891348a5e2961e8b24def5dc6f31a0fda2b0 - independent review of ba0e891348a5e2961e8b24def5dc6f31a0fda2b0: pass - accepted plan: 51afbfa90ad3c22b7b4c2730551d41658458277ba52094b0cbb8f90b49f32147 ## Behavioural changes - none reported ## Deviations from plan - none reported ## Remaining risks - none reported ## Review hotspots - none reported The sections above are derived from Orchestra state. The reported changes, deviations, risks, and hotspots are the implementing agent's own account and are not verified.
kami added 2 commits 2026-08-28 12:33:56 +02:00
Author
Owner

Please change one thing before this merges: the self-test should print the healthcheck output it saw when an assertion fails, so a red run is diagnosable without rerunning by hand. Everything else is fine.

Please change one thing before this merges: the self-test should print the healthcheck output it saw when an assertion fails, so a red run is diagnosable without rerunning by hand. Everything else is fine.
kami added 1 commit 2026-08-28 12:38:31 +02:00
kami merged commit ec320c8240 into master 2026-08-28 12:42:28 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kami/test-e2e#11