diff --git a/.claude/skills/panama/SKILL.md b/.claude/skills/panama/SKILL.md index 55db7df..904f09d 100644 --- a/.claude/skills/panama/SKILL.md +++ b/.claude/skills/panama/SKILL.md @@ -60,6 +60,7 @@ Every executable contract under `tests/` is classified in `tests/contracts.manif `panama test --allow live-compositor --allow live-desktop keybinds`. - Each contract has a 180-second outer timeout by default. Override it with a positive `PANAMA_TEST_TIMEOUT_SECONDS` value. Failures print the contract's captured stdout and stderr. + Successful stdout stays quiet. Successful stderr is surfaced as a warning. - Contracts run directly too: `tests/setup/interview-contract`. - After changing `PreferenceSchema.qml` or `services/SettingsRoutes.qml`, regenerate: `config/dot/quickshell/scripts/panama-settings-docs` (writes `docs/settings.md`) and diff --git a/README.md b/README.md index 2dd8492..af73cee 100644 --- a/README.md +++ b/README.md @@ -215,7 +215,8 @@ before it starts any non-hermetic contract. Automation cannot answer that prompt, so it must grant every required capability with a repeatable `--allow`. Each contract has a 180-second outer timeout by default. Set `PANAMA_TEST_TIMEOUT_SECONDS` to a positive integer to override it. When a -contract fails, the runner prints its captured stdout and stderr. +contract fails, the runner prints its captured stdout and stderr. Successful +stdout stays quiet. Successful stderr is surfaced as a warning. They are called contracts rather than unit tests because that is what they are: each one pins a decision that was expensive to get right and is cheap to undo by diff --git a/bin/panama b/bin/panama index 9b0d76c..6b0f18e 100755 --- a/bin/panama +++ b/bin/panama @@ -89,8 +89,10 @@ ${BOLD}Commands:${RESET} pattern to run a subset. --safe selects hermetic contracts only. Plain terminal runs prompt before non-hermetic work. Automation must grant each required capability with a repeatable --allow. - Failures print captured stdout/stderr; the default outer timeout - is 180 seconds. + Failures print captured stdout/stderr. Successful stdout stays + quiet; successful stderr is a warning. The default outer timeout + is 180 seconds. Set PANAMA_TEST_TIMEOUT_SECONDS to a positive + integer to override it. ${GREEN}contracts${RESET} Name the contracts that mention a given file, each labeled with manifest capabilities. A heuristic over the text of tests/, so it answers "what should I run" rather than "what covers this". @@ -491,7 +493,9 @@ is_contract_capability() { # each external capability it skipped. A plain terminal run asks before any # selected non-hermetic work. Automation must grant every required capability # with repeatable --allow flags. Each contract gets an outer timeout, 180 -# seconds by default, and failures include the captured stdout and stderr. +# seconds by default. PANAMA_TEST_TIMEOUT_SECONDS accepts a positive integer +# override. Failures include captured stdout and stderr. Successful stdout stays +# quiet, while successful stderr is surfaced as a warning. cmd_test() { local timeout_seconds="${PANAMA_TEST_TIMEOUT_SECONDS:-180}" [[ "$timeout_seconds" =~ ^[1-9][0-9]*$ ]] || { diff --git a/skills/panama-desktop/SKILL.md b/skills/panama-desktop/SKILL.md index 3da1339..2dd029d 100644 --- a/skills/panama-desktop/SKILL.md +++ b/skills/panama-desktop/SKILL.md @@ -46,7 +46,8 @@ Other tools that beat raw commands: A plain `panama test` prompts in a terminal before it starts non-hermetic contracts. Automation must grant each required capability with a repeatable `--allow`, such as `panama test --allow live-host updates`. Each contract has a 180-second outer timeout by default, -and failures print captured stdout and stderr. +which a positive `PANAMA_TEST_TIMEOUT_SECONDS` value overrides. Failures print captured stdout +and stderr. Successful stdout stays quiet. Successful stderr is surfaced as a warning. ## Settings