Skip to main content
Milestone details show why a release is blocked and what to do next. Data is computed from live GitHub state plus your repository’s sdlc.yaml.

Opening milestone details

  1. Go to lanesync.dev
  2. Open Releases and select View readiness for a release
  3. Inspect the five-stage pipeline and Next action card
  4. Use Readiness, Scope & owners, Quality reports, and Activity to inspect the release

Manage scope and ownership

In Scope & owners, you can add an existing open issue without a milestone, create an issue for the release, assign an owner, assign yourself, or remove one owner. Issues in another release are not silently moved. Remove from release asks for confirmation and removes the milestone link; it does not delete the GitHub issue. Shipped release scope is read-only. Mutations require verified GitHub triage, write, maintain or admin access; unavailable permissions do not grant editing access. Changes are saved to GitHub. If a save succeeds but readiness refresh fails, LaneSync reports the saved change separately from the pending refresh. Check the current issue before repeating a mutation. Use View in GitHub for the original issue, pull request or workflow when you need GitHub-specific detail.

Stage details API

GET /api/milestones/:id/stage-details returns per-stage items. LaneSync fetches live sdlc.yaml from GitHub on every request (60-second cache TTL). Example structure:

Per-stage panels

PLANNING

Lists milestone issues. Blocking when unassigned. Fix: Open Scope & owners in LaneSync and assign an owner. Assign to me selects your GitHub login; Unassign removes a selected owner while retaining the other owners. GitHub remains available through View in GitHub.

DEVELOPMENT

Lists open issues and required check status on the development branch. Blocking when:
  • Issue still open
  • Required check (from sdlc.yaml) has failure conclusion
Only checks listed in required_checks can block development. Other workflow failures are visible but not blocking.

TESTING

Shows release branch name and check results on that branch. Blocking when:
  • Release branch missing (release-branch mode)
  • Required check failed or pending

EVIDENCING

Lists required artifacts and evidence PR approval state. Blocking when:
  • Artifact missing
  • min_approvals not met

DEPLOYMENT

Shows deploy readiness and promotion status. Blocking when:
  • Prior stages incomplete
  • requires_evidence_approval not satisfied

Branch Actions

LaneSync creates branches and pull requests from the dashboard — no repo-side automation workflows required.

Start Work

Click Start work on a milestone issue in the PLANNING panel to:
  1. Create a feature branch from the development branch
  2. Record the branch-to-issue link in LaneSync
When it appears:
  • The issue is open and has an assignee
  • No work branch exists yet for that issue
Branch naming: feature/{issue-number}-{slugified-title} — for example, feature/42-add-login. After Start Work succeeds, a Branch ↗ link appears on the issue row. Open a pull request on that branch in GitHub when you are ready — LaneSync links the PR to the issue and milestone when the PR opens. If a PR already exists for the branch, a PR ↗ link appears instead.

Cut Release Branch

Click Cut release branch in the milestone header to create the release branch from the current development branch tip. When it appears:
  • Release model is release-branch (not trunk-based)
  • All milestone issues are closed
  • No release branch exists yet for this milestone
  • Typically while the milestone is in DEVELOPMENT, ready to enter TESTING
Branch naming: follows your sdlc.yaml testing branch_pattern (configured in the repo wizard as the release branch prefix). For example, with prefix release/ and milestone version v1.2.0, LaneSync creates release/v1.2.0.
Trunk-based repositories test on the development branch directly — Cut release branch is hidden when releaseModel is trunk.

Actions from the dashboard

Edge cases

If GitHub API calls fail, stage details may omit workflow runs. LaneSync logs a warning and returns partial payload.
Returns DB-only payload with extended cache TTL (300s). Install the app for live data.
Push updated sdlc.yaml to refresh required checks and rulesets.