docs(openspec): populate example-change + 7 EXAMPLE capability specs#22
Open
rubenvdlinde wants to merge 1 commit into
Open
docs(openspec): populate example-change + 7 EXAMPLE capability specs#22rubenvdlinde wants to merge 1 commit into
rubenvdlinde wants to merge 1 commit into
Conversation
Fills in the previously-missing openspec/changes/example-change/ directory that the template's @SPEC docblock tags point at, plus the openspec/specs/ capabilities those tasks implement. All files carry example: true frontmatter and an "EXAMPLE" banner so derived apps can spot the demonstration content instantly. Capabilities added (openspec/specs/): - dashboard-page (DashboardController — SPA entry + catch-all) - settings-management (SettingsController + SettingsService) - deep-linking (DeepLinkRegistrationListener) - item-management (ItemController + ItemService — ADR-005 demo) - configuration-initialization (Repair/InitializeSettings — repair step) - admin-ui (AdminSettings + SettingsSection) - observability (MetricsController + HealthController — ADR-006) Change scaffold (openspec/changes/example-change/): - proposal.md why the example-change exists; lifecycle guidance - tasks.md 9 tasks matching the @SPEC task-N tags in lib/ - design.md design rationale incl. known task-5 scope overlap No lib/*.php files are touched. The existing @SPEC openspec/changes/example-change/tasks.md#task-N annotations now resolve correctly against this content.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fills in the previously-missing⚠️ EXAMPLE SPEC" banner so derived apps can spot the demonstration content instantly.
openspec/changes/example-change/directory that the template's@specdocblock tags point at, plus the 7openspec/specs/capabilities those tasks implement. All files carryexample: truefrontmatter and a prominent "Why
The template's
lib/**/*.phpalready demonstrates the@specannotation convention with 9 tasks referenced across 10 files — butopenspec/changes/example-change/didn't exist, so every tag resolved to a dead link. Running theopenspec-*skills against a fresh clone hit immediate inconsistency. This PR makes the template internally consistent without changing any code.Produced as the second half of a test pass on Wilco's
opsx-reverse-specskill — the first half was #176 (mydash legacy-widget-bridge run). Both runs surfaced learnings that will land in a sibling PR tofeature/skill-improvementafter this one settles.Capabilities added (
openspec/specs/)dashboard-pageDashboardController.phpsettings-managementSettingsController.php+SettingsService.phpdeep-linkingDeepLinkRegistrationListener.phpitem-managementItemController.php+ItemService.phpconfiguration-initializationRepair/InitializeSettings.phpadmin-uiSettings/AdminSettings.php+Sections/SettingsSection.phpobservabilityMetricsController.php+HealthController.phpEach spec has 1–4 REQs with GIVEN/WHEN/THEN scenarios and explicit ADR references (003, 004, 005, 006, 011). Voice matches mydash / openregister conventions ("The system MUST...").
Change scaffold (
openspec/changes/example-change/)proposal.md— why this change exists, lifecycle guidance for apps cloning the templatetasks.md— 9 tasks matching the@spec task-Ntags inlib/design.md— design rationale including the known task-5 scope overlap (Item-auth + repair step share a task number; noted, not silently fixed)What this PR does NOT do
lib/**/*.phpfiles are touched. All existing@spec openspec/changes/example-change/tasks.md#task-Nannotations are left as-is; they now resolve correctly.openspec/specs/and remove the tasks, but the task file is what the code's@spectags point at. Keeping the change in-progress (spirituallyexample) is what keeps the template internally consistent.openspec/architecture/and are out of scope here.specs/delta inside the change directory. End-state specs live directly inopenspec/specs/; duplicating as a delta would add maintenance cost without improving the demonstration.Review focus
example: true+ banner markup communicate "don't copy this as your real spec"? If not, I'm open to stronger markers (a filename suffix, a dedicated CI rule, etc).Test plan
lib/for@spec example-change— all 15 references should match a task intasks.md.Related
opsx-reverse-speclearnings from the mydash run (sibling to this)opsx-coverage-scanlearnings (same)