Skip to main content
Reference for every field in sdlc.yaml. See Concepts — sdlc.yaml for how config propagates through LaneSync.

Source and syntax

Independent repositories store sdlc.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, or custom.
  • mapping: R1 mirrors the milestone title; R2 adds v; R3 removes a leading v.
  • custom_regex: a valid regular expression when format: custom; otherwise optional and nullable.
Release naming remains organization-controlled for covered repositories. The wizard explicitly reviews migration from older database-only naming settings.

Approval requirements and automation

Development, testing, and evidencing support required_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

Type: string Required: No; defaults to v1 Value: v1 (current schema version)
Type: string Required: No Description: Display name for the repository in LaneSync and reports.
Type: object Required: Yes Keys: planning, development, testing, evidencing, deployment
Type: array Required: No Description: Test file glob patterns mapped to external feature IDs for quality tracking.
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

Development blocking = check in required_checks AND conclusion = failure. Do not expect non-listed workflows to block the stage.

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.