| name | no-fallbacks-source-fix |
| description | Enforce fail-closed behavior by removing permissive fallbacks and fixing root causes at source, especially for planner/handover/eval validity gates. |
No Fallbacks, Fix At Source
Use this skill when:
- outputs look "successful" but are semantically invalid
- code uses synthetic/default artifacts to pass gates
- status transitions rely on loose string heuristics or permissive fallback paths
- dataset/eval rows must only include solid, spec-valid outputs
Non-negotiable policy
- Do not generate synthetic artifacts to "recover" failed model execution.
- Do not infer success from free-text hints when structured fields exist.
- Invalid or incomplete outputs must fail closed, not progress state.
- Fix the root cause where it is produced, not downstream with compatibility shims.
- Keep strict boundary contracts from
specs/desired_architecture.md and specs/integration-tests.md.
Required implementation pattern
- Validate required artifacts and schema before status transitions.
- Add semantic checks where schema-only checks are insufficient (prompt-intent alignment).
- When removing deprecated fallback behavior, raise an explicit
ValueError with a message such as deprecated functionality removed: <what was removed> or similarly direct wording.
- Record explicit validation errors in logs/metadata for debugging.
- Iterate with targeted debugging and source-level fixes until the issue is actually resolved; do not stop at the first partial mitigation.
- Route invalid outputs to
FAILED (or equivalent), never to "planned/completed".
- Remove legacy/permissive routing branches that bypass structured decisions.
Red flags to remove
- "Fallback bundle" writers that fabricate
benchmark_plan.md / engineering_plan.md / todo.md / YAML outputs.
- String contains checks like
"APPROVED" in feedback when typed decisions exist.
- Defaulting unknown agent types to another agent.
- Silent session-id/default context fallbacks that can leak/isolate incorrectly.
Validation before finishing
- Re-run integration flows through
./scripts/run_integration_tests.sh (targeted then broader marker).
- Confirm invalid outputs now fail and no longer transition to success-like states.
- Confirm valid flows still pass.
- If the first fix does not hold up under debugging or integration validation, continue iterating until the root cause is fixed.
- If invalid data was already generated, clean it from eval datasets/DB artifacts.
NOTE: If I interrupted you during execution with pointing to this skill, it means that I simply spotted a relevant bug in your code. After you are done fixing it, proceed with fixing whatever you were fixing earlier.