sdlc.yaml. See Concepts — sdlc.yaml for how config propagates through LaneSync.
Source and syntax
Independent repositories storesdlc.yaml at their root. Organization setup stores it at <org>/.github/sdlc.yaml; optional local files customize supported fields only when the central setting permits it. See Configure an organization for the exact inheritance rules.
Use YAML 1.2. Duplicate keys, unknown fields, invalid types, unsupported versions, custom tags, aliases, anchors, and YAML merge keys are rejected with source diagnostics. Legacy stage-at-root documents remain supported through an explicit adapter; do not mix root stages with stages:.
Omission and {} inherit. Explicit [], false, 0, and nullable null are preserved. Defaults apply after inheritance. Organization minimums cannot be removed by a local value.
Organization control
organization.allow_repository_customization is a boolean, defaults to false, and may appear only in the central .github configuration. Repository files cannot enable customization or change enrollment scope.
Release naming
release_naming is a mapping with:
format:semver-v-strict,semver-plain,semver-v-prerelease,semver-plain-prerelease,semver-loose-major,calver-YYYY-MM-DD,calver-YYYY-MM,calver-YY-MM,train-YYYY-Qn, orcustom.mapping:R1mirrors the milestone title;R2addsv;R3removes a leadingv.custom_regex: a valid regular expression whenformat: custom; otherwise optional and nullable.
Approval requirements and automation
Development, testing, and evidencing supportrequired_reviewers.min_approvals, an integer from zero to six, defaulting to one. Local values must meet or exceed organization minimums. Eligible required_reviewers.teams are supported for evidence review and remain organization-controlled; development and testing approvals use GitHub’s pull request approval rules.
stages.development.auto_create_branch_on_assign and stages.testing.auto_cut_release_branch are booleans, defaulting to false. Repositories may customize them; enabling automation does not bypass stage gates.
Top level
version
version
Type:
string
Required: No; defaults to v1
Value: v1 (current schema version)name
name
Type:
string
Required: No
Description: Display name for the repository in LaneSync and reports.stages
stages
Type:
object
Required: Yes
Keys: planning, development, testing, evidencing, deploymentfeatures
features
Type:
array
Required: No
Description: Test file glob patterns mapped to external feature IDs for quality tracking.quality_gates
quality_gates
Type:
object
Required: No
Description: Optional thresholds for the Quality scorecard Gate Verdict (GO / NO-GO). LaneSync compares uploaded CI evidence against these values. Omit a field (or the whole block) to skip that comparison — LaneSync never invents defaults.Wizard defaults (pre-filled unless cleared): 80% line coverage; security
0/0/20 (critical/high/medium); SAST 0/0/10. See Configure sdlc.yaml — Quality gates.Configure during the repo setup wizard Quality gates step, or edit manually after bootstrap.stages.planning
stages.development
stages.testing
stages.evidencing
stages.deployment
Canonical example
LaneSync repo example
The LaneSync product repository uses this configuration:Check names are repository-specific. Copy structure, not check names, when configuring your own repo.