Skip to main content
Status:๐Ÿš€ ACTIVE
Date:๐Ÿ“… unknown
Domain:๐Ÿ“ฆ Tasks.md Fallback for Trackerless Projects

SPEC-0006: Tasks.md Fallback for Trackerless Projects

Overviewโ€‹

When no external issue tracker (Beads, GitHub, Gitea, GitLab, Jira, Linear) is available during sprint planning, the /design:plan skill SHALL generate a tasks.md file as an openspec artifact co-located with spec.md and design.md. This provides durable, machine-parseable task tracking without requiring external tooling. See ๐Ÿ“ ADR-0007 and ๐Ÿ“ ADR-0008.

Requirementsโ€‹

Requirement: Tracker Detection Fallbackโ€‹

The /design:plan skill MUST detect available issue trackers (see references/shared-patterns.md ยง "Tracker Detection"). When no tracker is detected, the skill SHALL generate a tasks.md file instead of printing an ephemeral markdown table to the conversation.

Scenario: No tracker availableโ€‹

  • WHEN sprint planning runs and no issue tracker (Beads, GitHub, Gitea) is detected
  • THEN the skill SHALL generate docs/openspec/specs/{capability-name}/tasks.md with implementation tasks derived from the spec requirements

Scenario: Tracker is availableโ€‹

  • WHEN sprint planning runs and at least one issue tracker is detected
  • THEN the skill SHALL use the detected tracker as before and MUST NOT generate a tasks.md file

Requirement: Tasks.md File Locationโ€‹

The generated tasks.md MUST be placed in the same directory as the spec's spec.md and design.md files, at docs/openspec/specs/{capability-name}/tasks.md.

Scenario: Co-location with spec artifactsโ€‹

  • WHEN tasks.md is generated for a spec in docs/openspec/specs/web-dashboard/
  • THEN the file SHALL be written to docs/openspec/specs/web-dashboard/tasks.md

Requirement: Checkbox Task Formatโ€‹

Every task in tasks.md MUST use the markdown checkbox format - [ ] X.Y Task description where X is the section number and Y is the task number within that section. Tasks not using - [ ] format MUST NOT be considered trackable.

Scenario: Parseable checkbox formatโ€‹

  • WHEN tasks.md is generated
  • THEN every implementation task SHALL be a checkbox item matching the pattern - [ ] X.Y Task description

Scenario: Completed task markingโ€‹

  • WHEN a task is completed by an agent or user
  • THEN the checkbox SHALL be updated from - [ ] to - [x]

Requirement: Section-Grouped Task Structureโ€‹

Tasks in tasks.md MUST be grouped under numbered ## headings (e.g., ## 1. Setup, ## 2. Core Implementation). Tasks within each section MUST be numbered sequentially using the section prefix (e.g., 1.1, 1.2, 2.1).

Scenario: Numbered section headingsโ€‹

  • WHEN tasks.md is generated
  • THEN tasks SHALL be organized under ## N. Section Title headings with sequentially numbered tasks

Scenario: Dependency orderingโ€‹

  • WHEN tasks have dependencies on each other
  • THEN sections SHOULD be ordered so that prerequisite tasks appear in earlier sections

Requirement: Spec-Derived Task Contentโ€‹

Tasks MUST be derived from the spec's ### Requirement: sections and their scenarios. Each requirement SHOULD produce at least one task. Complex requirements with multiple scenarios MAY produce multiple tasks or a dedicated section.

Scenario: Requirement traceabilityโ€‹

  • WHEN tasks are generated from a spec
  • THEN each task SHOULD reference the governing requirement or scenario it implements

Scenario: Task granularityโ€‹

  • WHEN tasks are generated
  • THEN each task SHALL be small enough to complete in one coding session and SHALL have a verifiable completion criterion

Requirement: Progress Tracking Parseabilityโ€‹

An apply phase or downstream tooling MUST be able to parse tasks.md to determine completion status. The parsing rules SHALL be: count lines matching - [x] as completed, count lines matching - [ ] as pending, and compute completion percentage as completed / total * 100.

Scenario: Progress calculationโ€‹

  • WHEN a tasks.md contains 8 total checkbox items and 3 are marked - [x]
  • THEN a parser SHALL report 3 completed, 5 pending, and 37.5% completion

Scenario: Non-checkbox lines ignoredโ€‹

  • WHEN a tasks.md contains section headings, blank lines, or descriptive text
  • THEN a parser SHALL ignore those lines and only count - [ ] and - [x] patterns