Skip to content

clock-weather-widgets: the clock and weather requirements share two scenario titles, collapsing four scenarios to two addressable slugs #112

Description

@rubenvdlinde

Summary

Two gate-19 refs in openspec/specs/clock-weather-widgets/spec.md are addressable by only one anchor each while describing two different widgets. Same defect class as doriath#215 / .github#354; also confirmed in larpingapp today.

The collision

 6: ### Requirement: REQ-CLOCK-001 Register client-side clock widget
10: #### Scenario: Widget appears in discovery
17: #### Scenario: Registration via IManager
...
68: ### Requirement: REQ-WEATHER-001 Register weather widget with server-side fetch
72: #### Scenario: Widget appears in discovery
78: #### Scenario: Registration via IManager

The clock widget and the weather widget declare the same two scenario titles, so both collapse to:

clock-weather-widgets::widget-appears-in-discovery
clock-weather-widgets::registration-via-imanager

These are not near-duplicates — the weather widget has a server-side fetch and an API key that must never reach the browser, the clock widget has no backend endpoint at all (REQ-CLOCK-001 says so explicitly). One anchor covering both is a materially wrong credit.

How it surfaced

--mode report does not de-duplicate; --mode gate does. On development @ 5c7fde7:

mode uncovered
--mode report 130 rows
--mode gate (and CI) 128 distinct

The 2-row gap is the collision.

Fix

Rename so each scenario names its widget (e.g. "Clock widget appears in discovery" / "Weather widget appears in discovery").

⚠️ A rename changes the slug. Any @e2e / @spec anchor pointing at the old ref must move in the same change — a dangling anchor is not reported as an error by gate-19.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions