Phase test rules
Skill zig999/siegard-code/dist/.claude/skills/phase-test-rules
Most AI coding tools help you write code. Siegard Code manages the entire development lifecycle — it writes specifications, plans backlogs, implements features, runs QA, and delivers tested code. All autonomously, all traceable, all through Claude Code.
npx -y skills add zig999/siegard-code --skill phase-test-rulesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Exit criteria checkers and worker routing table for the test (automated testing) phase. Consumed by orchestrator-test.md to dispatch test workers via select_worker.py and evaluate phase transition gates (check_all_test_tasks_terminal, check_all_tests_passed, check_no_critical_failures). DLQ tasks block transition. Not user-invocable — orchestrators call scripts directly.
SKILL.md
4.3 KB, as published. Nobody here has run it
phase-test-rules
Phase rules skill for the test (automated testing) phase.
Provides exit criteria checkers and worker routing table consumed by orchestrator-test.md.
Contract
The orchestrator calls this skill's scripts directly. No inter-skill communication envelope needed. Every script returns a JSON object to stdout and exits 0 on success or 1 on error.
Phase identity
| Field | Value |
|---|---|
phase_name | test |
order | 4 |
required | true |
worker_default | u-test-runner |
Worker routing table
Maps task.type + stack to worker sub-agent.
All stacks route to the same worker — u-test-runner is stack-agnostic.
| task.type | stack | worker subagent_type |
|---|---|---|
test-run | be | u-test-runner |
test-run | fe | u-test-runner |
test-run | fullstack | u-test-runner |
* (default) | any | u-test-runner |
scripts/select_worker.py
Returns the worker sub-agent name for a given task type and optional stack.
Usage
python3 .claude/skills/phase-test-rules/scripts/select_worker.py \
--task-type <type> \
[--stack <be|fe|fullstack>]
Output (exit 0)
{"worker": "u-test-runner", "task_type": "test-run", "stack": "be", "phase": "test"}
Error (exit 1, stderr)
{"status": "error", "reason": "internal_error", "detail": "<message>"}
Exit criteria
All three criteria must be met before the test phase can transition. DLQ tasks block transition — a failed task is not a passing test run.
| Criterion | Script | Description |
|---|---|---|
all_test_tasks_terminal | scripts/check_all_test_tasks_terminal.py | All test tasks in completed; zero DLQ tasks |
all_tests_passed | scripts/check_all_tests_passed.py | Every test report artifact has result: passed |
no_critical_failures | scripts/check_no_critical_failures.py | No test report artifact contains severity: critical failures |
See exit-criteria.json for the machine-readable declaration.
Environment variables
| Variable | Default | Description |
|---|---|---|
ORCH_PROJECT_DIR | . | Project root — used to resolve test report artifact paths |
scripts/check_all_test_tasks_terminal.py
Criterion: every task in the test phase has status completed. DLQ tasks block the criterion.
Not met if there are no test tasks (phase hasn't started).
python3 .claude/skills/phase-test-rules/scripts/check_all_test_tasks_terminal.py
Output schema:
{
"criterion": "all_test_tasks_terminal",
"met": true,
"evidence": {
"total": 5,
"terminal": 5,
"non_terminal": [],
"dlq": [],
"dlq_blocks_criterion": false
}
}
scripts/check_all_tests_passed.py
Criterion: every test report artifact from completed test-phase tasks contains result: passed.
Not met if no test report artifacts are found.
Artifact paths are resolved relative to ORCH_PROJECT_DIR.
python3 .claude/skills/phase-test-rules/scripts/check_all_tests_passed.py
Output schema:
{
"criterion": "all_tests_passed",
"met": true,
"evidence": {
"total": 5,
"passed": 5,
"failed": []
}
}
Accepted result values: passed (case-insensitive).
Any other value (failed, error, skipped) is treated as not passed.
scripts/check_no_critical_failures.py
Criterion: no test report artifact contains a failure entry with severity: critical.
Artifact paths are resolved relative to ORCH_PROJECT_DIR.
python3 .claude/skills/phase-test-rules/scripts/check_no_critical_failures.py
Output schema:
{
"criterion": "no_critical_failures",
"met": true,
"evidence": {
"total": 5,
"clean": 5,
"with_critical": []
}
}