agentsclimarketplace

Phase dev rules

Skill zig999/siegard-code/dist/.claude/skills/phase-dev-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.

Install
npx -y skills add zig999/siegard-code --skill phase-dev-rules

Assembled 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 dev (implementation) phase. Consumed by orchestrator-dev.md to dispatch workers via select_worker.py and evaluate phase transition gates (check_all_impl_tasks_terminal, check_all_deliveries_qa_ready, check_no_open_prohibitions). Not user-invocable — orchestrators call scripts directly.

SKILL.md

6.0 KB, as published. Nobody here has run it

phase-dev-rules

Phase rules skill for the dev (implementation) phase. Provides exit criteria checkers and worker routing table consumed by orchestrator-dev.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

FieldValue
phase_namedev
order2
requiredtrue
worker_defaultu-be-developer

Worker routing table

Maps task.type + stack to worker sub-agent. Stack is resolved by orchestrator-dev from handoff-manifest.yaml before calling this script (Decision D2).

For fullstack projects, orchestrator-dev spawns two planning tasks with explicit split stacks (fullstack_be and fullstack_fe) so both planners run in parallel.

task.typestackworker subagent_type
planningbeu-be-planner
planningfeu-fe-planner
planningfullstack_beu-be-planner
planningfullstack_feu-fe-planner
planningfullstacku-be-planner (legacy fallback)
implbeu-be-developer
implfeu-fe-developer
implfullstacku-be-developer
specbeu-be-developer
specfeu-fe-spec-writer
specfullstacku-fe-spec-writer
* (default)anyu-be-developer

scripts/select_worker.py

Returns the worker sub-agent name for a given task type and stack.

Usage

python3 .claude/skills/phase-dev-rules/scripts/select_worker.py \
  --task-type <type> \
  --stack <be|fe|fullstack|fullstack_be|fullstack_fe>

Output (exit 0)

{"worker": "u-be-developer", "task_type": "impl", "stack": "be", "phase": "dev"}

Error (exit 1, stderr)

{"status": "error", "reason": "internal_error", "detail": "<message>"}

Exit criteria

All three criteria must be met before the dev phase can transition. DLQ tasks block transition — a task in DLQ represents a failure, not a completed deliverable.

CriterionScriptDescription
all_impl_tasks_terminalscripts/check_all_impl_tasks_terminal.pyAll dev tasks in completed; zero DLQ tasks
all_deliveries_qa_readyscripts/check_all_deliveries_qa_ready.pyEvery delivery.md has qa_ready: true
no_open_prohibitionsscripts/check_no_open_prohibitions.pyNo delivery.md has a non-empty prohibition_violations list

See exit-criteria.json for the machine-readable declaration.

Environment variables

VariableDefaultDescription
ORCH_PROJECT_DIR.Project root — used to resolve delivery.md artifact paths

scripts/check_backlog_scope.py

Post-planner backlog scope guard (L4) — NOT an exit criterion: orchestrator-dev runs it in Step 4.0, after the planning task completes and BEFORE creating any impl task. Derives the change scope from triage (lib/spec_scope.py, the same single source as the SDD gates) and scans each Task Contract file for domains/<slug>/ references. Blocks when any TC references ONLY out-of-scope domains — an /u-improve must not be re-broadened by planning. Conservative: scope None (u-spec/greenfield) passes trivially; a TC with no domain references is allowed (cannot attribute); ≥1 in-scope reference is allowed.

python3 .claude/skills/phase-dev-rules/scripts/check_backlog_scope.py \
  --backlog <session_dir>/backlog/backlog.json --workflow-id <wid>

Output (exit 0 ok / exit 1 blocked):

{"status": "ok", "check": "backlog_scope", "scoped": true,
 "scope_domains": ["billing"], "tcs_checked": 4, "violations": [], "unreadable": []}

Blocked flow (orchestrator-dev Step 4.0): one planner revision with the violations injected into the prompt → still blocked → E22_backlog_scope_violation.


scripts/check_all_impl_tasks_terminal.py

Criterion: every task in the dev phase has status completed. DLQ tasks block the criterion (a failed task is not a deliverable). Not met if there are no dev tasks.

python3 .claude/skills/phase-dev-rules/scripts/check_all_impl_tasks_terminal.py

Output schema:

{
  "criterion": "all_impl_tasks_terminal",
  "met": true,
  "evidence": {
    "total": 10,
    "terminal": 10,
    "non_terminal": [],
    "dlq": [],
    "dlq_blocks_criterion": false
  }
}

scripts/check_all_deliveries_qa_ready.py

Criterion: every delivery.md artifact path listed in task_completed events for the dev phase contains the pattern qa_ready: true.

python3 .claude/skills/phase-dev-rules/scripts/check_all_deliveries_qa_ready.py

Output schema:

{
  "criterion": "all_deliveries_qa_ready",
  "met": true,
  "evidence": {
    "total": 5,
    "ready": 5,
    "not_ready": []
  }
}

met is false if no delivery artifacts are found (tasks completed with no artifacts).


scripts/check_no_open_prohibitions.py

Criterion: no delivery.md artifact contains a non-empty prohibition_violations list.

A prohibition violation is detected when the file contains the pattern: prohibition_violations: followed by at least one list item (- on the next non-blank line).

python3 .claude/skills/phase-dev-rules/scripts/check_no_open_prohibitions.py

Output schema:

{
  "criterion": "no_open_prohibitions",
  "met": true,
  "evidence": {
    "total": 5,
    "clean": 5,
    "violations": []
  }
}

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.