1## MODIFIED Requirements23### Requirement: Source initialization4The dashboard API SHALL initialize a registered source that exists but lacks an `openspec/` directory and SHALL normalize the resulting OpenSpec layout to include all directory roots used by the plugin.56#### Scenario: OpenSpec CLI available7- **GIVEN** the OpenSpec CLI binary is available8- **WHEN** the dashboard initializes an uninitialized source9- **THEN** the API runs `openspec init <repo-root> --tools none`, ensures `openspec/changes`, `openspec/changes/archive`, `openspec/specs`, and `openspec/ideas` all exist, and returns the refreshed source payload1011#### Scenario: OpenSpec CLI unavailable12- **GIVEN** the OpenSpec CLI binary is unavailable13- **WHEN** the dashboard initializes an uninitialized source14- **THEN** the API creates `openspec/changes`, `openspec/changes/archive`, `openspec/specs`, and `openspec/ideas` and returns the refreshed source payload1516#### Scenario: Already initialized source17- **GIVEN** the source already has an `openspec/` directory18- **WHEN** the dashboard initializes the source19- **THEN** the API returns success with an `Already initialized` message and does not modify existing artifacts2021#### Scenario: CLI-listable initialized source22- **GIVEN** a source has been initialized through the dashboard API23- **WHEN** an agent or maintainer runs OpenSpec list commands in that source24- **THEN** the required OpenSpec directories exist so list operations are not blocked by a missing `changes` root