Skip to content

[Preset]: Add Closed Vocabulary Check #4192

Description

@yunusdim

Preset ID

closed-vocabulary

Preset Name

Closed Vocabulary Check

Version

1.0.1

Description

Adds a pass to /speckit.analyze that flags closed sets of values enumerated more than once with different members, and reports its own coverage.

Author

Diego Gabriel Impieri

Repository URL

https://github.com/yunusdim/spec-kit-preset-closed-vocabulary

Download URL

https://github.com/yunusdim/spec-kit-preset-closed-vocabulary/archive/refs/tags/v1.0.1.zip

Documentation URL

https://github.com/yunusdim/spec-kit-preset-closed-vocabulary/blob/main/README.md

License

MIT

Required Spec Kit Version

=0.8.0

Required Extensions (optional)

No response

Templates Provided

None

Commands Provided

  • speckit.analyze.md — appends a closed-set divergence pass via the append composition strategy (core untouched); reports on divergent enumerations of the same named set and its own coverage (declarations inspected vs. recognised); warning only, never blocks

Number of Scripts (optional)

No response

Tags

analysis, consistency, vocabulary, verification

Key Features

  • Flags closed sets of values (statuses, categories, admissible kinds) that are enumerated more than once across a spec with different members
  • Groups declarations by the name preceding the introducer, not by content similarity, to avoid false matches
  • Reports the difference in both directions for every divergent group — what each side omits
  • Reports its own coverage on every run (declarations inspected vs. recognised), so a zero-divergence result is never silently read as "clean"
  • Runs as a warning only — it never blocks the analyze pass
  • Uses strategy: append, so it carries no copy of the core analyze.md and does not need to track upstream changes to it
  • Ships with 3 fixtures: one positive control (must fire) and two negative controls — formatting variance and a declared-subset relation — verifying the check stays quiet when it should

Testing Checklist

  • Preset installs successfully via specify preset add
  • Template resolution works correctly after installation
  • Documentation is complete and accurate
  • Tested on at least one real project

Submission Requirements

  • Valid preset.yml manifest included
  • Linked README (Documentation URL) explains how to use this preset and includes a valid specify preset add ... command (preferably specify preset add --from <download-url> using the exact download URL)
  • LICENSE file included
  • GitHub release created with version tag
  • Preset ID follows naming conventions (lowercase-with-hyphens)

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions