mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-10 02:30:39 +01:00
* Add a check that keeps tracker codes and internal jargon out of PR titles and branch names gstack-plain-title checks the readable front of a title, branch name, PR opening or changelog entry against the repository's .gstack/plain-titles.json; one trailing issue code stays allowed. A Plain title workflow runs it on every new pull request, and /ship's push refuses a never-pushed branch whose name fails it. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Move the PR body's machine-read lines into a closing Agent notes section The ship receipt, its runs block and the Plan line now live in one collapsed section at the end of the body, and every reader looks there first while still accepting the old receipt-at-top layout. gstack-post refuses to post a title the plain-title check refuses, and land uses the checked PR title as main's commit title. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Teach /ship to write plain titles, PR openings, commit messages and changelog entries The README now lists what gstack is for, so a PR opening can name the goal it serves. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Keep tests, size budgets and generated files in step with plain titles and Agent notes Copy lists that install result-code modules now include the plain-title codes, the ship goldens and size ledger are refreshed, the new workflow is classified, and the pinned prose tests read the new title and body layout. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Record the test-profile list change as non-behavioral for the shared test harness Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Keep text people add below the PR notes, and fix three smaller review findings The notes section now ends at its own closing tag, so a collapsible added after it survives the next post. The opening check splits the body the same way the notes reader does. Wave PR titles no longer name the area, which the plain-title check could refuse. The Capy line in the PR-body steps now puts Approvals in the notes. Review-Finding: p1/specialist-batched#1 reader=testing Review-Finding: p1/red-team#1 reader=red-team Review-Finding: p1/red-team#2 reader=red-team Review-Finding: p1/red-team#3 reader=red-team Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Mask credentials in refused-title lines and keep older PRs' plan lines readable A refused title's printed match is masked by the secret scanner first. The Plan line reader falls back to the whole body when the Agent notes section has none, so a body written before this change keeps its plan when its first receipt lands. The notes section also ends at its own closing tag when its opener is split or marked open, or when a collapsible inside it is left unclosed. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Print a fixed placeholder when a credential in a refused title cannot be masked Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Keep a plain-title policy edit from scheduling every paid eval Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Record the paid-eval list change as non-behavioral for the shared test harness Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Recheck the PR title on every edit so a base change cannot turn a refused title green Review-Finding: s11/targeted#1 reader=targeted Review-Finding: s11/adversarial-native#1 reader=adversarial-native Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
435 lines
27 KiB
Bash
435 lines
27 KiB
Bash
# shellcheck shell=bash
|
|
# gstack-doctor-components.sh — GENERATED from lib/doctor-components.ts and
|
|
# lib/result-codes.ts by scripts/gen-doctor-components.ts (bun run gen:skill-docs). Do not edit; the
|
|
# freshness test is test/doctor-components.test.ts. Sourced by
|
|
# bin/gstack-doctor-check.sh; Bash 3.2 builtins only.
|
|
|
|
GSTACK_DOCTOR_COMPONENTS="claude codex patch codex-cli browse-bundle browser cso helpers runtime pins state-root privacy cores revision floor wrapper"
|
|
GSTACK_DOCTOR_CORE="runtime pins state-root privacy cores revision floor wrapper"
|
|
GSTACK_DOCTOR_HOSTS="claude codex"
|
|
GSTACK_DOCTOR_OPTIONAL="codex-cli cso"
|
|
GSTACK_DOCTOR_SKILLS="autoplan plan-ceo-review plan-design-review plan-devex-review plan-tune office-hours spec review ship codex cso browse qa qa-only design-review design-consultation design-html design-motion devex-review scrape skillify canary benchmark make-pdf diagram pair-agent open-gstack-browser setup-browser-cookies connect-chrome land-and-deploy benchmark-models captain careful claude-code context-restore context-save design-shotgun deslop-shared-libs document-generate document-release eval-plan freeze gstack-upgrade guard health ios-clean ios-design-review ios-fix ios-qa ios-sync landing-report learn write-skill modernize retro runaway-stopper setup-deploy setup-gbrain sync-gbrain test-audit ubicloud unfreeze verify review-voice"
|
|
GSTACK_BROWSER_LAZY_REASON="lazy; gstack-browser-ensure installs on first use"
|
|
GSTACK_DOCTOR_HELPERS="gstack-pregate gstack-plan-reality gstack-artifact gstack-autoplan"
|
|
GSTACK_DOCTOR_NOT_NEEDED="none"
|
|
GSTACK_DOCTOR_NOT_NEEDED_REVISION="not-needed"
|
|
GSTACK_PROJECT_FLOOR_FILE=".gstack/ship-policy.json"
|
|
GSTACK_PROJECT_FLOOR_FIELD="min_gstack_version"
|
|
|
|
# gstack_doctor_component_title ID — the human title; returns 1 for an unknown id.
|
|
gstack_doctor_component_title() {
|
|
case "$1" in
|
|
claude) printf '%s' 'Claude skills' ;;
|
|
codex) printf '%s' 'Codex skills' ;;
|
|
patch) printf '%s' 'Astra behavioral patch in the Codex render' ;;
|
|
codex-cli) printf '%s' 'Codex CLI (outside voice)' ;;
|
|
browse-bundle) printf '%s' 'browse bundle' ;;
|
|
browser) printf '%s' 'Chromium launch and render' ;;
|
|
cso) printf '%s' 'CSO native helper' ;;
|
|
helpers) printf '%s' 'read-only helpers (gstack-pregate sealed, gstack-plan-reality, gstack-artifact, gstack-autoplan reads)' ;;
|
|
runtime) printf '%s' 'gstack runtime (Bun)' ;;
|
|
pins) printf '%s' 'project pins' ;;
|
|
state-root) printf '%s' 'state root' ;;
|
|
privacy) printf '%s' 'privacy' ;;
|
|
cores) printf '%s' 'cores' ;;
|
|
revision) printf '%s' 'revision' ;;
|
|
floor) printf '%s' 'the project'\''s gstack floor (min_gstack_version in .gstack/ship-policy.json)' ;;
|
|
wrapper) printf '%s' 'Capy skill copy (bootstrapper revision)' ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
# gstack_doctor_component_kind ID — core | host | component | optional; returns 1 for an unknown id.
|
|
gstack_doctor_component_kind() {
|
|
case "$1" in
|
|
claude) printf '%s' 'host' ;;
|
|
codex) printf '%s' 'host' ;;
|
|
patch) printf '%s' 'component' ;;
|
|
codex-cli) printf '%s' 'optional' ;;
|
|
browse-bundle) printf '%s' 'component' ;;
|
|
browser) printf '%s' 'component' ;;
|
|
cso) printf '%s' 'optional' ;;
|
|
helpers) printf '%s' 'component' ;;
|
|
runtime) printf '%s' 'core' ;;
|
|
pins) printf '%s' 'core' ;;
|
|
state-root) printf '%s' 'core' ;;
|
|
privacy) printf '%s' 'core' ;;
|
|
cores) printf '%s' 'core' ;;
|
|
revision) printf '%s' 'core' ;;
|
|
floor) printf '%s' 'core' ;;
|
|
wrapper) printf '%s' 'core' ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
# gstack_doctor_skill_requires SKILL — the non-core ids the skill needs; returns 1 for an unknown skill.
|
|
gstack_doctor_skill_requires() {
|
|
case "$1" in
|
|
autoplan|plan-ceo-review|plan-design-review|plan-devex-review|plan-tune|office-hours|spec|review|ship) printf '%s' 'claude codex patch' ;;
|
|
codex) printf '%s' 'claude codex patch codex-cli' ;;
|
|
cso) printf '%s' 'claude cso' ;;
|
|
browse|qa|qa-only|design-review|design-consultation|design-html|design-motion|devex-review|scrape|skillify|canary|benchmark|make-pdf|diagram|pair-agent|open-gstack-browser|setup-browser-cookies|connect-chrome|land-and-deploy) printf '%s' 'claude codex patch browse-bundle browser' ;;
|
|
benchmark-models|captain|careful|claude-code|context-restore|context-save|design-shotgun|deslop-shared-libs|document-generate|document-release|eval-plan|freeze|gstack-upgrade|guard|health|ios-clean|ios-design-review|ios-fix|ios-qa|ios-sync|landing-report|learn|write-skill|modernize|retro|runaway-stopper|setup-deploy|setup-gbrain|sync-gbrain|test-audit|ubicloud|unfreeze|verify) printf '%s' 'claude' ;;
|
|
review-voice) printf '%s' 'helpers' ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
# gstack_doctor_skill_optional SKILL — ids that SKIP when absent; returns 1 for an unknown skill.
|
|
gstack_doctor_skill_optional() {
|
|
case "$1" in
|
|
autoplan|plan-ceo-review|plan-design-review|plan-devex-review|plan-tune|office-hours|spec|review|ship) printf '%s' 'codex-cli' ;;
|
|
codex) printf '%s' '' ;;
|
|
cso) printf '%s' '' ;;
|
|
browse|qa|qa-only|design-review|design-consultation|design-html|design-motion|devex-review|scrape|skillify|canary|benchmark|make-pdf|diagram|pair-agent|open-gstack-browser|setup-browser-cookies|connect-chrome|land-and-deploy) printf '%s' 'codex-cli' ;;
|
|
benchmark-models|captain|careful|claude-code|context-restore|context-save|design-shotgun|deslop-shared-libs|document-generate|document-release|eval-plan|freeze|gstack-upgrade|guard|health|ios-clean|ios-design-review|ios-fix|ios-qa|ios-sync|landing-report|learn|write-skill|modernize|retro|runaway-stopper|setup-deploy|setup-gbrain|sync-gbrain|test-audit|ubicloud|unfreeze|verify) printf '%s' '' ;;
|
|
review-voice) printf '%s' '' ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
# gstack_doctor_skill_pins_advisory SKILL — true for a planning-only workflow (a repo test-pin mismatch SKIPs pins).
|
|
gstack_doctor_skill_pins_advisory() {
|
|
case "$1" in
|
|
autoplan|plan-ceo-review|plan-design-review|plan-devex-review|office-hours) return 0 ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
# gstack_doctor_install_profile NAME — true for an install profile (helper runtime: no ./setup, no host profiles, project pins not applied).
|
|
gstack_doctor_install_profile() {
|
|
case "$1" in
|
|
review-voice) return 0 ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
# gstack_capy_bootstrap_cmd ROOT [SKILL] — the install command for a machine without the Drive skill (capyBootstrapCommand).
|
|
gstack_capy_bootstrap_cmd() {
|
|
printf 'test -f "%s/setup" || git clone --quiet --single-branch --depth 1 %s "%s" && GSTACK_CAPY_ROOT="%s" bash "%s/capy/skill/gstack/scripts/install.sh"' "$1" 'https://github.com/garrytan/gstack.git' "$1" "$1" "$1"
|
|
[ -z "${2:-}" ] || printf ' --for %s' "$2"
|
|
}
|
|
|
|
# gstack_result_anchor CODE — the docs/troubleshooting.md anchor for a lib/result-codes.ts code; returns 1 for an unknown code.
|
|
gstack_result_anchor() {
|
|
case "$1" in
|
|
ARTIFACT_INVALID_JSON) printf '%s' 'artifact-invalid-json' ;;
|
|
ARTIFACT_UNSUPPORTED_VERSION) printf '%s' 'artifact-unsupported-version' ;;
|
|
ARTIFACT_SCHEMA) printf '%s' 'artifact-schema' ;;
|
|
ARTIFACT_MISSING) printf '%s' 'artifact-missing' ;;
|
|
ARTIFACT_STALE) printf '%s' 'artifact-stale' ;;
|
|
ARTIFACT_PATH_ESCAPE) printf '%s' 'artifact-path-escape' ;;
|
|
ARTIFACT_MALFORMED_JSONL) printf '%s' 'artifact-malformed-jsonl' ;;
|
|
ARTIFACT_DUPLICATE_ID) printf '%s' 'artifact-duplicate-id' ;;
|
|
ARTIFACT_UNBOUND_ID) printf '%s' 'artifact-unbound-id' ;;
|
|
ARTIFACT_DANGLING_REF) printf '%s' 'artifact-dangling-ref' ;;
|
|
ARTIFACT_DEPENDENCY_CYCLE) printf '%s' 'artifact-dependency-cycle' ;;
|
|
ARTIFACT_COUNT_MISMATCH) printf '%s' 'artifact-count-mismatch' ;;
|
|
ARTIFACT_RUN_INTERRUPTED) printf '%s' 'artifact-run-interrupted' ;;
|
|
ARTIFACT_REVIEWER_MISSING) printf '%s' 'artifact-reviewer-missing' ;;
|
|
ARTIFACT_GUARD_LINE_MISSING) printf '%s' 'artifact-guard-line-missing' ;;
|
|
GUARD_NOT_INSTALLED) printf '%s' 'guard-not-installed' ;;
|
|
REVIEW_STATUS_MISMATCH) printf '%s' 'review-status-mismatch' ;;
|
|
GATE_REV_STALE) printf '%s' 'gate-rev-stale' ;;
|
|
GATE_REPLY_UNPARSED) printf '%s' 'gate-reply-unparsed' ;;
|
|
ANSWER_BY_REQUIRED) printf '%s' 'answer-by-required' ;;
|
|
COMPONENT_MISSING) printf '%s' 'doctor-component-missing' ;;
|
|
RUNTIME_BELOW_MINIMUM) printf '%s' 'doctor-runtime-below-minimum' ;;
|
|
PROJECT_PIN_MISMATCH) printf '%s' 'doctor-project-pin-mismatch' ;;
|
|
REVISION_UNMET) printf '%s' 'doctor-revision-unmet' ;;
|
|
RUNTIME_PIN_CONFLICT) printf '%s' 'capy-install-runtime-conflict' ;;
|
|
BROWSER_UNAVAILABLE) printf '%s' 'browser-ensure-failed' ;;
|
|
INSTALL_PREFLIGHT_FAILED) printf '%s' 'capy-install-preflight-failed' ;;
|
|
SETUP_PS1_EMPTY_ARGUMENT) printf '%s' 'setup-ps1-empty-argument' ;;
|
|
SETUP_DEPS_MIGRATE_FAILED) printf '%s' 'setup-deps-migrate-failed' ;;
|
|
POLICY_SOURCE_UNAVAILABLE) printf '%s' 'policy-source-unavailable' ;;
|
|
POLICY_INVALID) printf '%s' 'policy-invalid' ;;
|
|
POLICY_CONTAINMENT) printf '%s' 'policy-containment' ;;
|
|
POLICY_EXISTS) printf '%s' 'policy-exists' ;;
|
|
REPO_COMMANDS_NOT_ALLOWED) printf '%s' 'repo-commands-not-allowed' ;;
|
|
QUEUE_STALE) printf '%s' 'queue-stale' ;;
|
|
RESTAMP_VERSION_SOURCE) printf '%s' 'restamp-version-source' ;;
|
|
RESTAMP_MERGE_CONFLICT) printf '%s' 'restamp-merge-conflict' ;;
|
|
RESTAMP_RELEASE_TOOL_FAILED) printf '%s' 'restamp-release-tool-failed' ;;
|
|
RESTAMP_OUTPUT_OUTSIDE_ALLOWED) printf '%s' 'restamp-output-outside-allowed' ;;
|
|
RESTAMP_CONFLICT) printf '%s' 'restamp-conflict' ;;
|
|
RESTAMP_PREDECESSOR_MOVED) printf '%s' 'restamp-predecessor-moved' ;;
|
|
CHANGELOG_DUPLICATE_HEADING) printf '%s' 'changelog-duplicate-heading' ;;
|
|
CHANGELOG_TOP_MISMATCH) printf '%s' 'changelog-top-mismatch' ;;
|
|
CHANGELOG_SECTION_MISSING) printf '%s' 'changelog-section-missing' ;;
|
|
GATE_REUSE_NOT_ELIGIBLE) printf '%s' 'gate-reuse-not-eligible' ;;
|
|
EVIDENCE_IDENTITY_UNKNOWN) printf '%s' 'evidence-identity-unknown' ;;
|
|
EVIDENCE_BUNDLE_INVALID) printf '%s' 'evidence-bundle-invalid' ;;
|
|
PREREGISTRATION_NOT_ANCESTOR) printf '%s' 'preregistration-not-ancestor' ;;
|
|
HISTORY_POLICY_VIOLATION) printf '%s' 'history-policy-violation' ;;
|
|
RECEIPT_MISSING) printf '%s' 'receipt-missing' ;;
|
|
RECEIPT_INVALID) printf '%s' 'receipt-invalid' ;;
|
|
EXECUTION_UNKNOWN) printf '%s' 'execution-unknown' ;;
|
|
RUN_LOCKED) printf '%s' 'run-locked' ;;
|
|
RUN_NOT_INITIALIZED) printf '%s' 'run-not-initialized' ;;
|
|
PHASE_NOT_AWAITING) printf '%s' 'phase-not-awaiting' ;;
|
|
ATTEMPT_MISMATCH) printf '%s' 'attempt-mismatch' ;;
|
|
RESULT_RECEIPT_MISSING) printf '%s' 'result-receipt-missing' ;;
|
|
RESULT_FINDINGS_MISSING) printf '%s' 'result-findings-missing' ;;
|
|
MODEL_FAMILY_CONFLICT) printf '%s' 'model-family-conflict' ;;
|
|
SPEND_CAP_EXCEEDED) printf '%s' 'spend-cap-exceeded' ;;
|
|
CONSENSUS_MISSING) printf '%s' 'consensus-missing' ;;
|
|
OUTSIDE_RUNNER_UNAVAILABLE) printf '%s' 'outside-runner-unavailable' ;;
|
|
REALITY_ROW_MISSING) printf '%s' 'reality-row-missing' ;;
|
|
REALITY_RECEIPT_MISSING) printf '%s' 'reality-receipt-missing' ;;
|
|
REGEN_REGISTRY_INVALID) printf '%s' 'regen-registry-invalid' ;;
|
|
REGEN_CONTAINMENT) printf '%s' 'regen-containment' ;;
|
|
REGEN_STALE) printf '%s' 'regen-stale' ;;
|
|
REGEN_COMMAND_FAILED) printf '%s' 'regen-command-failed' ;;
|
|
PREGATE_CONFIG_INVALID) printf '%s' 'pregate-config-invalid' ;;
|
|
PREGATE_SECRETS) printf '%s' 'pregate-secrets' ;;
|
|
PREGATE_STRAYS) printf '%s' 'pregate-strays' ;;
|
|
PREGATE_LITERALS) printf '%s' 'pregate-literals' ;;
|
|
PREGATE_NO_LANE) printf '%s' 'pregate-no-lane' ;;
|
|
PREGATE_LANE_FAILED) printf '%s' 'pregate-lane-failed' ;;
|
|
PREGATE_INCOMPLETE) printf '%s' 'pregate-incomplete' ;;
|
|
PREGATE_STALLED) printf '%s' 'pregate-stalled' ;;
|
|
PREGATE_RECEIPT_INVALID) printf '%s' 'pregate-receipt-invalid' ;;
|
|
PREGATE_STALE) printf '%s' 'pregate-stale' ;;
|
|
PREGATE_REMOTE_UNCLEARED) printf '%s' 'pregate-remote-uncleared' ;;
|
|
ISSUE_UNREADABLE) printf '%s' 'issue-unreadable' ;;
|
|
ISSUE_LOOKUP_FAILED) printf '%s' 'issue-lookup-failed' ;;
|
|
ISSUE_LINKS_MISSING) printf '%s' 'issue-links-missing' ;;
|
|
EVAL_PRICE_MISSING) printf '%s' 'eval-price-missing' ;;
|
|
EVAL_DRY_RUN_FAILED) printf '%s' 'eval-dry-run-failed' ;;
|
|
EVAL_ARMS_UNRESOLVED) printf '%s' 'eval-arms-unresolved' ;;
|
|
EVAL_BUDGET_EXHAUSTED) printf '%s' 'eval-budget-exhausted' ;;
|
|
LANE_CONFLICT) printf '%s' 'lane-conflict' ;;
|
|
LANE_REF_UNAVAILABLE) printf '%s' 'lane-ref-unavailable' ;;
|
|
EVIDENCE_UNVERIFIED) printf '%s' 'evidence-unverified' ;;
|
|
BANNED_TERM_FOUND) printf '%s' 'banned-term-found' ;;
|
|
BANNED_TERMS_INVALID) printf '%s' 'banned-terms-invalid' ;;
|
|
CONTRIBUTOR_SOURCE_UNAVAILABLE) printf '%s' 'contributor-source-unavailable' ;;
|
|
BRIEF_INPUT_MISSING) printf '%s' 'brief-input-missing' ;;
|
|
DRAFT_DIRECTION_UNRESOLVED) printf '%s' 'draft-direction-unresolved' ;;
|
|
PREGATE_GUARD_FAILED) printf '%s' 'pregate-guard-failed' ;;
|
|
MIGRATION_COLLISION) printf '%s' 'migration-collision' ;;
|
|
SEALED_OUTPUT_REFUSED) printf '%s' 'sealed-output-refused' ;;
|
|
EVAL_GATE_UNPRICED) printf '%s' 'eval-gate-unpriced' ;;
|
|
EVAL_GATE_OVER_CAP) printf '%s' 'eval-gate-over-cap' ;;
|
|
EVAL_PLAN_STALE) printf '%s' 'eval-plan-stale' ;;
|
|
PLAN_SECTIONS_INVALID) printf '%s' 'plan-sections-invalid' ;;
|
|
PLAN_AMEND_PENDING) printf '%s' 'plan-amend-pending' ;;
|
|
AMENDMENT_UNKNOWN) printf '%s' 'amendment-unknown' ;;
|
|
AMENDMENT_NOT_SETTLEABLE) printf '%s' 'amendment-not-settleable' ;;
|
|
GATE_REC_STALE) printf '%s' 'gate-rec-stale' ;;
|
|
CHECKPOINT_INVALID) printf '%s' 'checkpoint-invalid' ;;
|
|
CHECKPOINT_OVERLAP) printf '%s' 'checkpoint-overlap' ;;
|
|
CHECKPOINT_TARGET_EXISTS) printf '%s' 'checkpoint-target-exists' ;;
|
|
OWNER_REPLY_REQUIRED) printf '%s' 'owner-reply-required' ;;
|
|
GATE_OWNER_REPLY_MISMATCH) printf '%s' 'gate-owner-reply-mismatch' ;;
|
|
GSTACK_VERSION_CHANGED) printf '%s' 'gstack-version-changed' ;;
|
|
ARTIFACT_GATE_UNSETTLED) printf '%s' 'artifact-gate-unsettled' ;;
|
|
UPGRADE_REFUSED) printf '%s' 'upgrade-refused' ;;
|
|
UPGRADE_BUSY) printf '%s' 'upgrade-busy' ;;
|
|
UPGRADE_FETCH_FAILED) printf '%s' 'upgrade-fetch-failed' ;;
|
|
REVISION_BELOW_MINIMUM) printf '%s' 'revision-below-minimum' ;;
|
|
CAPY_WRAPPER_STALE) printf '%s' 'capy-wrapper-stale' ;;
|
|
BUN_RESOLUTION_DRIFT) printf '%s' 'bun-resolution-drift' ;;
|
|
BUN_INSTALL_VERSION_INVALID) printf '%s' 'bun-install-version-invalid' ;;
|
|
INSTALL_UNVERIFIED) printf '%s' 'install-unverified' ;;
|
|
BUN_VERSION_UNREADABLE) printf '%s' 'bun-version-unreadable' ;;
|
|
BASH_UNAVAILABLE) printf '%s' 'bash-unavailable' ;;
|
|
IOS_LAUNCH_ENV_INVALID) printf '%s' 'ios-launch-env-invalid' ;;
|
|
OUTSIDE_VOICE_UNAVAILABLE) printf '%s' 'outside-voice-unavailable' ;;
|
|
ARTIFACT_MACHINE_PATH) printf '%s' 'artifact-machine-path' ;;
|
|
ARTIFACT_PUBLIC_TARGET_EXISTS) printf '%s' 'artifact-public-target-exists' ;;
|
|
EVAL_MODELS_INVALID) printf '%s' 'eval-models-invalid' ;;
|
|
EVAL_MODEL_DENIED) printf '%s' 'eval-model-denied' ;;
|
|
EVAL_MODEL_OLD_GENERATION) printf '%s' 'eval-model-old-generation' ;;
|
|
EVAL_MODEL_GENERATION_UNRESOLVED) printf '%s' 'eval-model-generation-unresolved' ;;
|
|
DX_CAPTURE_USAGE) printf '%s' 'dx-capture-usage' ;;
|
|
DX_CAPTURE_BAD_DEADLINE) printf '%s' 'dx-capture-bad-deadline' ;;
|
|
DX_CAPTURE_BAD_MAX_BYTES) printf '%s' 'dx-capture-bad-max-bytes' ;;
|
|
DX_CAPTURE_BAD_PASS_ENV) printf '%s' 'dx-capture-bad-pass-env' ;;
|
|
DX_CAPTURE_BAD_CWD) printf '%s' 'dx-capture-bad-cwd' ;;
|
|
DX_CAPTURE_APPROVAL_REQUIRED) printf '%s' 'dx-capture-approval-required' ;;
|
|
DX_CAPTURE_CONFIG_REFUSED) printf '%s' 'dx-capture-config-refused' ;;
|
|
DX_CAPTURE_NOT_FOUND) printf '%s' 'dx-capture-not-found' ;;
|
|
DX_CAPTURE_TEMP_DIR) printf '%s' 'dx-capture-temp-dir' ;;
|
|
DX_CAPTURE_CONTAINMENT_UNAVAILABLE) printf '%s' 'dx-capture-containment-unavailable' ;;
|
|
DX_CAPTURE_SUPERVISOR_FAILED) printf '%s' 'dx-capture-supervisor-failed' ;;
|
|
DX_CAPTURE_INTERRUPTED) printf '%s' 'dx-capture-interrupted' ;;
|
|
DX_CAPTURE_REDACTION_FAILED) printf '%s' 'dx-capture-redaction-failed' ;;
|
|
DX_CAPTURE_INTERNAL) printf '%s' 'dx-capture-internal' ;;
|
|
POLICY_GSTACK_TOO_OLD) printf '%s' 'policy-gstack-too-old' ;;
|
|
POLICY_FLOOR_ABOVE_STABLE) printf '%s' 'policy-floor-above-stable' ;;
|
|
STABLE_RELEASE_UNKNOWN) printf '%s' 'stable-release-unknown' ;;
|
|
PREGATE_GSTACK_TOO_OLD) printf '%s' 'pregate-gstack-too-old' ;;
|
|
QUEUE_NOT_READY) printf '%s' 'queue-not-ready' ;;
|
|
QUEUE_PROOF_MISSING) printf '%s' 'queue-proof-missing' ;;
|
|
QUEUE_STAMP_NOT_STAMP_ONLY) printf '%s' 'queue-stamp-not-stamp-only' ;;
|
|
QUEUE_VERIFY_MISMATCH) printf '%s' 'queue-verify-mismatch' ;;
|
|
QUEUE_GATE_MISSING) printf '%s' 'queue-gate-missing' ;;
|
|
GATE_AHEAD_ATTEMPT_INVALID) printf '%s' 'gate-ahead-attempt-invalid' ;;
|
|
QUEUE_TRAIN_OFF) printf '%s' 'queue-train-off' ;;
|
|
QUEUE_TRAIN_UNTRUSTED) printf '%s' 'queue-train-untrusted' ;;
|
|
QUEUE_TRAIN_MOVED) printf '%s' 'queue-train-moved' ;;
|
|
QUEUE_TRAIN_CONFLICT) printf '%s' 'queue-train-conflict' ;;
|
|
QUEUE_TRAIN_FREE_RED) printf '%s' 'queue-train-free-red' ;;
|
|
QUEUE_TRAIN_DISPATCH_UNKNOWN) printf '%s' 'queue-train-dispatch-unknown' ;;
|
|
QUEUE_TRAIN_WAITING) printf '%s' 'queue-train-waiting' ;;
|
|
QUEUE_TRAIN_PENDING) printf '%s' 'queue-train-pending' ;;
|
|
QUEUE_TRAIN_INCOMPLETE) printf '%s' 'queue-train-incomplete' ;;
|
|
QUEUE_TRAIN_RED) printf '%s' 'queue-train-red' ;;
|
|
QUEUE_TRAIN_RED_ON_MAIN) printf '%s' 'queue-train-red-on-main' ;;
|
|
QUEUE_TRAIN_UNATTRIBUTED) printf '%s' 'queue-train-unattributed' ;;
|
|
QUEUE_TRAIN_BISECT_CAPPED) printf '%s' 'queue-train-bisect-capped' ;;
|
|
QUEUE_TRAIN_PREFIX_INVALID) printf '%s' 'queue-train-prefix-invalid' ;;
|
|
QUEUE_TRAIN_REBUILD_REFUSED) printf '%s' 'queue-train-rebuild-refused' ;;
|
|
QUEUE_TRAIN_STAMP_MISMATCH) printf '%s' 'queue-train-stamp-mismatch' ;;
|
|
QUEUE_TRAIN_TREE_MISMATCH) printf '%s' 'queue-train-tree-mismatch' ;;
|
|
QUEUE_TRAIN_STALE) printf '%s' 'queue-train-stale' ;;
|
|
QUEUE_TRAIN_BASE_RED) printf '%s' 'queue-train-base-red' ;;
|
|
QUEUE_TRAIN_SPEND_CAP) printf '%s' 'queue-train-spend-cap' ;;
|
|
QUEUE_TRAIN_LAND_METHOD) printf '%s' 'queue-train-land-method' ;;
|
|
QUEUE_TRAIN_INIT_REFUSED) printf '%s' 'queue-train-init-refused' ;;
|
|
QUEUE_TRAIN_DOCTOR_FINDINGS) printf '%s' 'queue-train-doctor-findings' ;;
|
|
QUEUE_BASE_RED_NO_TRAIN) printf '%s' 'queue-base-red-no-train' ;;
|
|
SHIP_BASE_RED_FIXER) printf '%s' 'ship-base-red-fixer' ;;
|
|
QUEUE_TRAIN_FROZEN) printf '%s' 'queue-train-frozen' ;;
|
|
QUEUE_WAVE_CONFLICT) printf '%s' 'queue-wave-conflict' ;;
|
|
QUEUE_WAVE_MOVED) printf '%s' 'queue-wave-moved' ;;
|
|
QUEUE_WAVE_DUPLICATE) printf '%s' 'queue-wave-duplicate' ;;
|
|
QUEUE_WAVE_SIZE) printf '%s' 'queue-wave-size' ;;
|
|
QUEUE_WAVE_UNKNOWN) printf '%s' 'queue-wave-unknown' ;;
|
|
QUEUE_WAVE_DEPENDENT) printf '%s' 'queue-wave-dependent' ;;
|
|
QUEUE_WAVE_NOT_MERGED) printf '%s' 'queue-wave-not-merged' ;;
|
|
QUEUE_RECEIPT_MISSING) printf '%s' 'queue-receipt-missing' ;;
|
|
QUEUE_RECEIPT_STALE) printf '%s' 'queue-receipt-stale' ;;
|
|
QUEUE_RECEIPT_CONDITIONAL) printf '%s' 'queue-receipt-conditional' ;;
|
|
BASE_RED_UNCONFIGURED) printf '%s' 'base-red-unconfigured' ;;
|
|
BASE_RED_UNNAMED) printf '%s' 'base-red-unnamed' ;;
|
|
BASE_RED_REPRO_ERROR) printf '%s' 'base-red-repro-error' ;;
|
|
BASE_RED_PAUSE_EXPIRED) printf '%s' 'base-red-pause-expired' ;;
|
|
BASE_RED_WAIT_TIMEOUT) printf '%s' 'base-red-wait-timeout' ;;
|
|
BASE_CONTAINS_HEAD) printf '%s' 'base-contains-head' ;;
|
|
QUEUE_RECEIPT_DEPTH_RAISED) printf '%s' 'queue-receipt-depth-raised' ;;
|
|
QUEUE_RECEIPT_EXCEPTION_INVALID) printf '%s' 'queue-receipt-exception-invalid' ;;
|
|
QUEUE_RECEIPT_TARGETED_MISSING) printf '%s' 'queue-receipt-targeted-missing' ;;
|
|
QUEUE_SCREEN_STALE_REF) printf '%s' 'queue-screen-stale-ref' ;;
|
|
QUEUE_SCREEN_NOT_RUN) printf '%s' 'queue-screen-not-run' ;;
|
|
QUEUE_TRAIN_STACK_RED) printf '%s' 'queue-train-stack-red' ;;
|
|
QUEUE_POST_MERGE_RED) printf '%s' 'queue-post-merge-red' ;;
|
|
QUEUE_SCREEN_RED) printf '%s' 'queue-screen-red' ;;
|
|
READY_SCREEN_CHOICE_REQUIRED) printf '%s' 'ready-screen-choice-required' ;;
|
|
PREGATE_TIMING_ASSERTION) printf '%s' 'pregate-timing-assertion' ;;
|
|
PREGATE_NO_POLICY) printf '%s' 'pregate-no-policy' ;;
|
|
PREGATE_ENVIRONMENT) printf '%s' 'pregate-environment' ;;
|
|
APPROVAL_CLASSES_INVALID) printf '%s' 'approval-classes-invalid' ;;
|
|
APPROVAL_CLASS_FOUND) printf '%s' 'approval-class-found' ;;
|
|
APPROVAL_CITATION_MISSING) printf '%s' 'approval-citation-missing' ;;
|
|
APPROVAL_SOURCE_UNAVAILABLE) printf '%s' 'approval-source-unavailable' ;;
|
|
STATE_MATRIX_INCOMPLETE) printf '%s' 'state-matrix-incomplete' ;;
|
|
WTREE_UNAVAILABLE) printf '%s' 'wtree-unavailable' ;;
|
|
REGEN_DEPS_MISSING) printf '%s' 'regen-deps-missing' ;;
|
|
REVIEW_SCOPE_INPUT) printf '%s' 'review-scope-input' ;;
|
|
REVIEW_SCOPE_RANGE) printf '%s' 'review-scope-range' ;;
|
|
REVIEW_SCOPE_LEDGER) printf '%s' 'review-scope-ledger' ;;
|
|
RECEIPT_CARRY_REFUSED) printf '%s' 'receipt-carry-refused' ;;
|
|
PROSE_LINT_FOUND) printf '%s' 'prose-lint-found' ;;
|
|
REVIEW_LOOP_EXCEPTION_INVALID) printf '%s' 'review-loop-exception-invalid' ;;
|
|
RECEIPT_CARRY_TREE_MISMATCH) printf '%s' 'receipt-carry-tree-mismatch' ;;
|
|
RECEIPT_CARRY_PRODUCT_CHANGED) printf '%s' 'receipt-carry-product-changed' ;;
|
|
RECEIPT_CARRY_SCOPED_REVIEW) printf '%s' 'receipt-carry-scoped-review' ;;
|
|
DOCS_AUDIT_BLOCKED) printf '%s' 'docs-audit-blocked' ;;
|
|
DOCS_RESULT_INVALID) printf '%s' 'docs-result-invalid' ;;
|
|
RECEIPT_PROSE_MISMATCH) printf '%s' 'receipt-prose-mismatch' ;;
|
|
RECEIPT_CARRY_PREGATE_STALE) printf '%s' 'receipt-carry-pregate-stale' ;;
|
|
RECEIPT_GIT_TOO_OLD) printf '%s' 'receipt-git-too-old' ;;
|
|
CHANGELOG_FRAGMENT_INVALID) printf '%s' 'changelog-fragment-invalid' ;;
|
|
QUEUE_LAND_LOCKED) printf '%s' 'queue-land-locked' ;;
|
|
QUEUE_TRAIN_UNSTAMPED) printf '%s' 'queue-train-unstamped' ;;
|
|
RESTAMP_NOT_STAGED) printf '%s' 'restamp-not-staged' ;;
|
|
RESTAMP_UNSTAGED_EDITS) printf '%s' 'restamp-unstaged-edits' ;;
|
|
QUEUE_LAND_CONFLICT) printf '%s' 'queue-land-conflict' ;;
|
|
QUEUE_LAND_DRIFT) printf '%s' 'queue-land-drift' ;;
|
|
QUEUE_LAND_BASE_BUSY) printf '%s' 'queue-land-base-busy' ;;
|
|
QUEUE_LAND_STAMPED) printf '%s' 'queue-land-stamped' ;;
|
|
QUEUE_LAND_PIN_MOVED) printf '%s' 'queue-land-pin-moved' ;;
|
|
QUEUE_LAND_CHECKS) printf '%s' 'queue-land-checks' ;;
|
|
QUEUE_LAND_MERGED_CHECKS) printf '%s' 'queue-land-merged-checks' ;;
|
|
QUEUE_LAND_NOT_CLEAN) printf '%s' 'queue-land-not-clean' ;;
|
|
QUEUE_LAND_UNVERIFIED) printf '%s' 'queue-land-unverified' ;;
|
|
RELEASE_STAMP_EMPTY) printf '%s' 'release-stamp-empty' ;;
|
|
RELEASE_STAMP_INVALID) printf '%s' 'release-stamp-invalid' ;;
|
|
PR_WAIT_BLOCKED) printf '%s' 'pr-wait-blocked' ;;
|
|
PR_WAIT_REFUSED) printf '%s' 'pr-wait-refused' ;;
|
|
PREGATE_HEAD_POLICY_LOOSENS) printf '%s' 'pregate-head-policy-loosens' ;;
|
|
REVIEW_DIFF_TOO_LARGE) printf '%s' 'review-diff-too-large' ;;
|
|
REVIEW_DIFF_UNREADABLE) printf '%s' 'review-diff-unreadable' ;;
|
|
REVIEW_PLAN_STOPPED) printf '%s' 'review-plan-stopped' ;;
|
|
REVIEW_EXCLUDE_REFERENCE) printf '%s' 'review-exclude-reference' ;;
|
|
FETCH_VIOLATION) printf '%s' 'fetch-violation' ;;
|
|
FETCH_RERUN_BLOCKED) printf '%s' 'fetch-rerun-blocked' ;;
|
|
FETCH_RERUN_SPENT) printf '%s' 'fetch-rerun-spent' ;;
|
|
APPROVAL_RECORD_INVALID) printf '%s' 'approval-record-invalid' ;;
|
|
APPROVAL_RECORD_SECRET) printf '%s' 'approval-record-secret' ;;
|
|
APPROVAL_RECORD_NO_BRANCH) printf '%s' 'approval-record-no-branch' ;;
|
|
APPROVAL_RECORD_UNAVAILABLE) printf '%s' 'approval-record-unavailable' ;;
|
|
APPROVAL_RECORD_WRITE_FAILED) printf '%s' 'approval-record-write-failed' ;;
|
|
APPROVAL_IMPORT_UNANSWERED) printf '%s' 'approval-import-unanswered' ;;
|
|
CAPTAIN_BRIEF_INCOMPLETE) printf '%s' 'captain-brief-incomplete' ;;
|
|
PR_SHOTS_INPUT_NOT_FOUND) printf '%s' 'pr-shots-input-not-found' ;;
|
|
PR_SHOTS_INPUT_REFUSED) printf '%s' 'pr-shots-input-refused' ;;
|
|
PR_SHOTS_IDENTICAL) printf '%s' 'pr-shots-identical' ;;
|
|
PR_SHOTS_RENDER_FAILED) printf '%s' 'pr-shots-render-failed' ;;
|
|
LAUNCH_FILE_UNWRITABLE) printf '%s' 'capy-install-launch-file-unwritable' ;;
|
|
PROJECT_FLOOR_UNMET) printf '%s' 'project-floor-unmet' ;;
|
|
PROJECT_NODE_PIN_UNMET) printf '%s' 'project-node-pin-unmet' ;;
|
|
PIN_UNREASONED) printf '%s' 'pin-unreasoned' ;;
|
|
UPGRADE_SKIPPED) printf '%s' 'upgrade-skipped' ;;
|
|
PLAN_RECORD_MISSING) printf '%s' 'plan-record-missing' ;;
|
|
PLAN_UNRESOLVED) printf '%s' 'plan-unresolved' ;;
|
|
PLAN_NOT_APPROVED) printf '%s' 'plan-not-approved' ;;
|
|
PLAN_EXEMPT_UNKNOWN) printf '%s' 'plan-exempt-unknown' ;;
|
|
PLAN_STORE_UNAVAILABLE) printf '%s' 'plan-store-unavailable' ;;
|
|
QUEUE_PLAN_MISMATCH) printf '%s' 'queue-plan-mismatch' ;;
|
|
BUDGET_CAP_REACHED) printf '%s' 'budget-cap-reached' ;;
|
|
BUDGET_READING_MISSING) printf '%s' 'budget-reading-missing' ;;
|
|
METER_SCOPE_PARENT) printf '%s' 'meter-scope-parent' ;;
|
|
BUDGET_READING_REJECTED) printf '%s' 'budget-reading-rejected' ;;
|
|
BUDGET_METER_UNAVAILABLE) printf '%s' 'budget-meter-unavailable' ;;
|
|
BUDGET_LEDGER_INVALID) printf '%s' 'budget-ledger-invalid' ;;
|
|
BUDGET_CHECK_SKIPPED) printf '%s' 'budget-check-skipped' ;;
|
|
HANDOFF_PIN_MOVED) printf '%s' 'handoff-pin-moved' ;;
|
|
PREREG_INCOMPLETE) printf '%s' 'prereg-incomplete' ;;
|
|
PREREG_DIAGNOSTIC_UNTESTED) printf '%s' 'prereg-diagnostic-untested' ;;
|
|
PREREG_NO_GSTACK_ARM) printf '%s' 'prereg-no-gstack-arm' ;;
|
|
EVAL_REPORT_NO_GSTACK_ROW) printf '%s' 'eval-report-no-gstack-row' ;;
|
|
EVAL_ARM_DUPLICATE) printf '%s' 'eval-arm-duplicate' ;;
|
|
OFFICE_HOURS_PROBE_REFUSED) printf '%s' 'office-hours-probe-refused' ;;
|
|
TASKS_SUPERSEDE_REFUSED) printf '%s' 'tasks-supersede-refused' ;;
|
|
REALITY_RECEIPT_UNRESOLVED) printf '%s' 'reality-receipt-unresolved' ;;
|
|
CEO_ONLY_CONFLICT) printf '%s' 'ceo-only-conflict' ;;
|
|
CEO_ONLY_AFTER_INIT) printf '%s' 'ceo-only-after-init' ;;
|
|
CEO_ONLY_NO_GATE) printf '%s' 'ceo-only-no-gate' ;;
|
|
SHADOW_BEFORE_ANSWER) printf '%s' 'shadow-before-answer' ;;
|
|
ARTIFACT_OWNER_WORDS) printf '%s' 'artifact-owner-words' ;;
|
|
BROWSE_TAB_UNRECOVERABLE) printf '%s' 'browse-tab-unrecoverable' ;;
|
|
BROWSE_SESSION_INVALID) printf '%s' 'browse-session-invalid' ;;
|
|
BROWSE_SESSION_ROOT_ONLY) printf '%s' 'browse-session-root-only' ;;
|
|
BROWSE_SESSION_TAB_RESET) printf '%s' 'browse-session-tab-reset' ;;
|
|
BROWSE_SESSION_LIMIT) printf '%s' 'browse-session-limit' ;;
|
|
BROWSE_DEVICE_UNKNOWN) printf '%s' 'browse-device-unknown' ;;
|
|
BROWSE_DEVICE_CDP_FAILED) printf '%s' 'browse-device-cdp-failed' ;;
|
|
BROWSE_TOUCH_NO_DEVICE) printf '%s' 'browse-touch-no-device' ;;
|
|
GSTACK_CLEAN_USAGE) printf '%s' 'gstack-clean-usage' ;;
|
|
GSTACK_CLEAN_TARGET_REFUSED) printf '%s' 'gstack-clean-target-refused' ;;
|
|
GSTACK_CLEAN_PARTIAL) printf '%s' 'gstack-clean-partial' ;;
|
|
GSTACK_CLEAN_INTERNAL) printf '%s' 'gstack-clean-internal' ;;
|
|
PLAIN_TITLE_REFUSED) printf '%s' 'plain-title-refused' ;;
|
|
PLAIN_BRANCH_REFUSED) printf '%s' 'plain-branch-refused' ;;
|
|
PLAIN_OPENING_REFUSED) printf '%s' 'plain-opening-refused' ;;
|
|
PLAIN_CHANGELOG_REFUSED) printf '%s' 'plain-changelog-refused' ;;
|
|
PLAIN_COMMIT_REFUSED) printf '%s' 'plain-commit-refused' ;;
|
|
PLAIN_POLICY_INVALID) printf '%s' 'plain-policy-invalid' ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|