Skip to content

Add closed-vocabulary preset to community catalog - #4179

Open
yunusdim wants to merge 3 commits into
github:mainfrom
yunusdim:patch-1
Open

Add closed-vocabulary preset to community catalog#4179
yunusdim wants to merge 3 commits into
github:mainfrom
yunusdim:patch-1

Conversation

@yunusdim

@yunusdim yunusdim commented Aug 17, 2026

Copy link
Copy Markdown

Adds closed-vocabulary to the community catalog. Requested in #4106.

What it does. Appends one pass to /speckit.analyze that flags closed sets of values enumerated more than once with different members, and reports its own coverage on every run.

Preset: https://github.com/yunusdim/spec-kit-preset-closed-vocabulary — MIT, tagged v1.0.1.

Uses strategy: "append", so it carries no copy of templates/commands/analyze.md and does not need to track upstream changes to that file. Requires >=0.8.0 because composition strategies landed there (#2133).

Evidence. Three fixtures ship with the preset under evidence/fixtures/. One must fire, two are negative controls — a formatting-variance control and a declared-subset control. evidence/RESULTS.md separates the reproducible bench from a field measurement taken on a private corpus, and labels the second as not verifiable by anyone else.

Composition was verified on device: the composed file carries the core untouched (lines 1-268) with the pass appended after it, confirmed by direct inspection of the composed file rather than assumed from the append strategy. Detection was verified mechanically: the rules in commands/speckit.analyze.md were implemented as a standalone, read-only instrument and run against the three fixtures shipped in this repository. All three matched — 001-divergent fired, 002-agreeing and 003-declared-subset did not. Building that instrument caught a real bug: an unrecognised set-membership introducer produced a false negative on 001-divergent (coverage 2 of 26 lines). Fixed before tagging; the run in evidence/RESULTS.md is the corrected one. Declared limit: this is composition and mechanical rule verification, not an agentic end-to-end invocation of /speckit.analyze — whether a model reading the composed prose applies the same rules identically is not established by this evidence.

Coverage is reported unconditionally, including when nothing is found. A zero-divergence result without a coverage figure says nothing about the spec — it says something about what the pass managed to read. The reference implementation reported zero across a corpus that had a divergence in plain sight, because it failed to recognise one introducer and one separator, having parsed 4 per cent of what it inspected.

It warns. It never blocks.

Entry inserted alphabetically between claude-ask-questions and command-density. download_url matches the install command in the preset README character for character.

@yunusdim
yunusdim requested a review from mnriem as a code owner August 17, 2026 21:57
@mnriem
mnriem requested a balanced review from Copilot August 17, 2026 23:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the closed-vocabulary preset to the community catalog.

Changes:

  • Registers preset metadata, compatibility requirements, capabilities, and release links.
  • Places the entry alphabetically in the catalog.
Show a summary per file
File Description
presets/catalog.community.json Adds the closed-vocabulary catalog entry.

Review details

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 1/1 changed files
  • Comments generated: 2
  • Review effort level: Balanced

Comment thread presets/catalog.community.json Outdated
Comment thread presets/catalog.community.json
@mnriem

mnriem commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

@yunusdim Can you create a new preset submission issue for this? This will allow us to run our automated agentic workflows. Thanks!

Added a new preset for closed vocabulary checks in the analysis process.
@yunusdim

Copy link
Copy Markdown
Author

@mnriem Done — #4192.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants