8a0e10f03b
The guard added in the previous commit passed locally and would have been
invisible in CI: this repo does not auto-discover tests/, it lists them one
step at a time in test-identity-fallback.yml, and the new one was not listed.
Rungs 1-2 of the ladder (the guard exists, the guard matches) prove nothing
without rungs 3-4.
Verified all four:
1. exists tests/test_concierge_identity_clauses.sh
2. matches 9 clauses x 2 files; 12/12 mutants killed
3. runs in CI step wired into test-identity-fallback.yml
4. fails the build mutant -> step exit 1; clean -> exit 0; no
continue-on-error on the step or the job, and main is
status_check_contexts ["*"], so the red context blocks
Placed next to the orchestrator-only guardrail step deliberately: that step
checks system-prompt.md only, and prompts/concierge.md is the file core
actually delivers.
53 lines
1.6 KiB
YAML
53 lines
1.6 KiB
YAML
name: test-identity-fallback
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
identity-fallback:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Run identity-fallback end-to-end test
|
|
run: |
|
|
set -euo pipefail
|
|
bash tests/test_identity_fallback.sh
|
|
|
|
- name: Reference drift gate — platform MCP server name
|
|
run: |
|
|
set -euo pipefail
|
|
bash tests/test_mcp_server_name.sh
|
|
|
|
- name: Current Core integration guidance
|
|
run: |
|
|
set -euo pipefail
|
|
bash tests/test_current_integration_guidance.sh
|
|
|
|
- name: Guardrail gate — concierge is orchestrator-only (never self-executes)
|
|
run: |
|
|
set -euo pipefail
|
|
bash tests/test_orchestrator_only_guardrail.sh
|
|
|
|
# Identity gate. Sibling to the orchestrator-only guardrail above, but it
|
|
# asserts on BOTH prompt files: the guardrail step checks system-prompt.md
|
|
# only, while prompts/concierge.md is the file core actually delivers as
|
|
# prompt_files[0] to a non-claude-code concierge. The two have already
|
|
# drifted, so a clause present in one proves nothing about the other.
|
|
- name: Identity gate — concierge states its own name, org and role
|
|
run: |
|
|
set -euo pipefail
|
|
bash tests/test_concierge_identity_clauses.sh
|
|
|
|
- name: Default concierge schedules — runtime-native schema gate
|
|
run: |
|
|
set -euo pipefail
|
|
python3 -m pip install --break-system-packages -q pyyaml
|
|
python3 tests/test_default_schedules.py
|