Skip to content

Configuration

Project settings live in sdlc-studio/.config.yaml. Defaults ship with the skill; you override only what you want changed.

Key Default What changing it does
two_backlog.enforce false The one exception. Deliberately off, so an upgrading project keeps its old flow until it opts in. Set true and sprint plan refuses a discovery item, a CR demands a T-shirt size, and terminal status derives from children. See the two-backlog model
sprint.breakdown enforce enforce: sprint plan refuses a batch holding a unit with no Affects or no Points:, and prints no plan at all. judgement: the lane reports and does not block
review.two_role_after unset The unit id past which Done requires both review records - adversarial evidence and an independent sign-off. Forward-only, so existing units keep today’s behaviour
engagement_floor floor floor: work becomes a sized unit with acceptance criteria before it becomes a diff. judgement: the model decides when the process applies - which is measurably the same as no process at all
lessons.loop enforce enforce: the retro’s content is checked and every finding takes a disposition. judgement: reports, never blocks
Key Default Notes
sprint.split_above 8 The Points: value above which a unit is refused and must be split. A point is a stable unit of cost up to here and breaks beyond it. Tighten to 5 for smaller units
max_points 13 A story is flagged as too large above this
max_ac 10 A story is flagged as too large above this many acceptance criteria
recommended_ac.min / .max 3 / 5 Suggest more criteria below the minimum; the optimal upper bound
coverage.unit 90 Coverage targets the TSD and the status dashboard read
coverage.integration 85
coverage.e2e 100 Feature-file coverage target
lessons.validity_days 90 Days before a lesson must be revalidated or closed
staleness_days 90 Days without a touch before a persona is flagged stale
capacity:
tokens: 500000 # forecast ceiling for the batch - a warning, never a gate
minutes: 240 # wall-clock ceiling for the run
units: 8 # unit-count ceiling
appetite:
minutes: 0 # 0 = inherit capacity.minutes
units: 0 # 0 = inherit capacity.units

The appetite is the circuit breaker. It is resolved once at plan time and stamped on the run, never auto-extended, and zero on an axis means unbounded. See sprint planning.

Key Default Notes
review.policy block carry-forward files a REJECT’s findings and ships instead of holding until clean - every finding must still be filed or explicitly waived
review.repair_plan_gate off on requires a REJECT to be answered by a written plan, reviewed before any code is written
review.repair_design_threshold 2 Failed rounds of one approach before a repeat must change the design rather than propose another instance of it

Opt-in. With routing.enabled, the plan stamps each unit with an advisory tier so cheap units run on your smaller model and hard ones on your bigger one.

Key Default Notes
routing.enabled false
routing.models {} Map abstract tiers (tiny/small/medium/large/xlarge) to your own model identifiers. An undeclared tier degrades upward to the nearest declared larger tier, never downward
routing.floor {bug: small, security: medium} Minimum tier per unit kind
routing.critic_tier match The critic’s tier relative to the author. Never smaller than the author; above puts it one step up
routing.escalation.max_same_tier 2 Failed attempts before escalating a tier, within the unchanged total attempt cap

The skill is gate-and-verify only until you give it a command. Leave these empty and it never deploys anything.

Key Notes
deploy.command your own deploy command. Invoked only after the pre-deploy gate is green, and only on an interactive deploy - never by a sprint
deploy.smoke a post-deploy check as a verify_ac expression. Smoke green marks the deploy rolled out
deploy.soak_minutes minutes a rolled-out deploy must soak before it is verified. Smoke alone never means verified
deploy.rollback a documented rollback procedure. The agent never executes it; deploy surfaces it on a failed smoke
Mode Change gate
solo-dev commit straight to main. The PR ceremony is friction on a single-developer project; review happens through the amigos, verify and check
pr-required the default. gh pr create, review, merge
staged-rollout tag, deploy, soak, promote. The “live” verification depth needs a stable soak before a feature can be Done
Key Default Notes
skill_source_repo unset Path to the sdlc-studio checkout that lessons add --global writes into. Without it, promotion is refused rather than written into a copy the next update deletes
provenance.enforce off Gate on artefacts having been created by the tool, rather than reporting it