woostack
ConfigurationArtifacts

Linear

Reference for Linear artifact mirroring, configuration fields, identities, and lifecycle behavior.

Select Linear artifact mirroring with artifacts.provider: "linear". The local run remains authoritative.

Configuration

{
  "artifacts": {
    "provider": "linear",
    "linear": {
      "repository": "https://github.com/acme/widgets",
      "workspace": "acme",
      "team": "ENG",
      "projectLabels": ["feature"],
      "projectStatuses": {
        "backlog": "Backlog",
        "planned": "Planned",
        "started": "Started",
        "completed": "Completed",
        "canceled": "Canceled"
      },
      "issueStates": {
        "planned": "Backlog",
        "executing": "In Progress",
        "inReview": "In Progress",
        "done": "Done",
        "blocked": "In Progress"
      }
    }
  }
}
FieldTypeConstraint
artifacts.linear.repositorystringCanonical repository URL or repository identity.
artifacts.linear.workspacestringExact Linear workspace.
artifacts.linear.teamstringExact team identifier or name.
artifacts.linear.projectLabelsstring arrayRequired when Linear is selected. May be empty. Labels resolve by exact native identity or exact case-sensitive name.
artifacts.linear.projectStatuses.*stringNative project status identity or exact case-sensitive name. Category checks apply at the lifecycle boundary.
artifacts.linear.issueStates.*stringNative issue state identity or exact case-sensitive name. Category checks apply at the lifecycle boundary.

Credentials belong in the host's authenticated official Linear MCP or OAuth secret store, never in repository configuration.

Identities and hierarchy

Linear uses stable human-facing issue identifiers such as ENG-42 as canonical issue references. Native UUIDs remain separate mutation identities.

Build and project-backed Fix resolve or create the selected canonical Linear project. Bounded Fix does not contact Linear. Standalone Plan persists only to an exact selected project. Plan increments are direct issues with no synthetic parent plan issue.

Lifecycle behavior

Execute may synchronize the exact nonterminal project to the configured started status. Explicit standalone Plan abandonment may use the configured canceled status. Build and Fix handoff, blockage, and local-run abandonment leave the mirrored project unchanged.

woostack-init may discover missing non-secret Linear defaults through authenticated read-only MCP calls. Discovery does not select Linear as the provider and does not authorize later access.

Bootstrap may mirror an approved design after its filesystem barrier when provider persistence is explicitly selected. Commit may verify an exact --issue <id>, add pull-request attribution, and write a delivery note with read-back.

On this page