mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-11 11:10:13 +01:00
* ship-policy: refuse a min_gstack_version floor above the newest stable release; doctor floor row compares runningGstackVersion and offers no no-op fast-forward (GST-1637) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(policy-floor-stable): build the expected doctor row from the project path, not a forward-slash join (Windows) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test: keep fixtures off the live stable release (GSTACK_STABLE_REPO in test-setup); pregate-invalidation counts the policy-floor check Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: pre-landing review fixes A vendored gstack copy (no .git of its own, inside a project) no longer resolves the newest stable release from the enclosing project's release tags: newestStableRelease and the doctor's _dc_newest_stable resolve only when the root is the top of its own git checkout, else the floor is not compared (STABLE_RELEASE_UNKNOWN) and the doctor keeps the real upgrade fix. Review-Finding: p1/red-team#1 reader=red-team Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: pre-landing review fixes The newest stable release is the highest release tag at origin's stable commit (a tag a half-way cut left behind no longer counts), and locally the VERSION at the stable ref wins over local tags. The doctor skips the remote lookup where timeout is missing (stock macOS) instead of running it unbounded. Review-Finding: p1/outside-voice#1 reader=outside-voice Review-Finding: p1/outside-voice#2 reader=outside-voice Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * docs: the newest stable release is the tag at origin's stable commit Review-Finding: p3/fix-check#2 reader=fix-check 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>
421 lines
26 KiB
Bash
421 lines
26 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-eng-review plan-design-review plan-devex-review plan-tune office-hours spec review ship investigate 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-eng-review|plan-design-review|plan-devex-review|plan-tune|office-hours|spec|review|ship|investigate) 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-eng-review|plan-design-review|plan-devex-review|plan-tune|office-hours|spec|review|ship|investigate) 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-eng-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' ;;
|
|
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' ;;
|
|
UPGRADE_SKIPPED) printf '%s' 'upgrade-skipped' ;;
|
|
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' ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|