Why
Fresh OpenSpec repositories exposed three maintainer-visible workflow problems:
- Before initialization, OpenSpec list operations fail with
No OpenSpec changes directory found; the plugin should make dashboard initialization create a complete, CLI-listable OpenSpec layout. openspec init --tools nonecreateschanges/andspecs/but not the plugin-supportedideas/directory, and may omitchanges/in fallback paths; the dashboard should normalize the layout after either CLI init or fallback init.archive/ openspec_instructionscan fail in freshly initialized repositories because the OpenSpec CLI requires an existing change, and the tool description advertisedspeceven though the CLI artifact isspecs; the agent tool should accept the natural alias and return useful template guidance when no change exists.
What Changes
- Add layout normalization after dashboard source initialization so initialized sources always contain
openspec/,changes/ openspec/,changes/ archive/ openspec/, andspecs/ openspec/.ideas/ - Add fallback behavior to
openspec_instructionsfor no-change repositories by returning the package template for the requested artifact. - Normalize
artifact="spec"toartifact="specs"for the tool and schema description. - Add regression tests for the initialization layout and fresh-repo instruction fallback.
- Make the plugin package importable under pytest from the repository root so regression tests can run locally.
Capabilities
New Capabilities
- None
Modified Capabilities
dashboard-sources: source initialization must normalize all plugin-supported OpenSpec directories.agent-tools: instructions lookup must tolerate fresh repositories and thespecalias.
Impact
dashboard/plugin_api.py tools.pyschemas.py__init__.pytests/test_openspec_workflow_fixes.py