CLI command
probierz apphook
Run one built-in application setup, broker, or evaluation capability named by a product manifest.
Invocation#
probierz apphook <CAPABILITY> [ARGS]...Required inputs and options#
- `<capability>` is required. Public capabilities are `oko.seed`, `oko.cleanup`, `oko.ensure-technical-account`, `oko.otp`, `oko.writer-update`, `oko.apply-feedback`, `oko.verify-fixture`, `game-asset-creator.fixtures`, and `game-asset-creator.visual-eval`.
- `oko.otp` requires `--after <RFC3339>` and reads the OTP broker once. `game-asset-creator.visual-eval` accepts `--models <directory>`, `--out <directory>`, `--config <file>`, `--rubric <name>`, and `--threshold <number>`. The rubric is named by `--rubric` or `PROBIERZ_EVAL_RUBRIC` and declared in `apps/game-asset-creator/rubrics/<name>.json` with its `rubric` text and the overall `threshold` an asset must reach; `--threshold` overrides that score for one run. A run naming no rubric, a name declared nowhere, and a declaration without its text or threshold are refused by name. Required credentials and product coordinates come from the environment selected by the application manifest.
Output and state effects#
Executes the same built-in Rust capability used by application lifecycle runs and writes its JSON result. A hook is a named product capability, not a script path.
Exact refusals#
- An unknown name is refused as `unknown application capability: <name>`; invalid capability arguments are refused before execution.
- Missing Oko input starts `missing Oko seed configuration:` and names each absent variable. An unavailable Game Asset Creator checkout reports `game_asset_creator dependency not found: <path>`; a missing Blender module is likewise a prerequisite failure. `oko.otp` without `--after` is refused as `--after <ISO> is required`; a broker that holds no code yet is refused as `OTP broker holds no code for <email> delivered after <instant>` — there is no wait and no timeout.
- If `oko.seed` fails, it still attempts every applicable rollback: the Slack reply, Slack thread, isolated organization and technical account. The original failure is retained; every failed removal appends its resource coordinate and actual provider or transport cause under `rollback could not confirm removal`. A failed deletion is not proof that the resource remains, and a successful deletion of another resource does not erase the failure. The same detail reaches lifecycle run evidence and Desktop failure reasons.
- Real rollback qualification: `node tests/apphooks/oko-rollback.mjs` uses `PROBIERZ`, `PROBIERZ_TEST_SOURCE_REVISION`, `PROBIERZ_TEST_RELEASE_EVIDENCE` and the normal `OKO_E2E_*` environment. Its dependency must be an isolated empty Auth project without the Oko organizations relation, not the operator's project. The real seed creates its technical account, encounters the actual missing-relation refusal, reports the organization rollback failure and still deletes the account; independent Auth reads verify the final empty state. The post-seed Auth observation precedes diagnostic assertions, and each HTTP status and raw response is retained before JSON decoding, so assertion or decoding failures do not discard those observations. Source/binary identity, commands, exit statuses and dependency observations are retained under `probierz-rs/target/real-tests/oko-rollback`. This journey does not qualify Slack deletion refusals or account deletion refusals.
Source snapshot#
Generated from the Rust binaries at https://github.com/wisent-ai/probierz.git revision `f65b755da397f2ec7435eb80ed722aa6017437c1`.
Combined help SHA-256: `4a12655d233812abc29eeebbf3db3065efe3e00288024383f3eef3970d092e94`; binary SHA-256: `d5398832d3ab52c541b1efe979730dea62941ac6197898a20fccfc5d3fca44df`.