Skip to content

[Bundle]: Add specassay #4059

Description

@rdryfoos

Bundle ID

specassay

Bundle Name

SpecAssay

Version

0.3.4

Role or Team

developer

Description

Durable-ID promotion for stock Spec Kit: templates, Gate 2 refusal, and trace-manifest emission.

Author

Rik Dryfoos

Repository URL

https://github.com/rdryfoos/specassay

Download URL

https://github.com/rdryfoos/specassay/releases/download/v0.3.4/specassay-0.3.4.zip

Documentation URL

https://github.com/rdryfoos/specassay/blob/main/README.md

License

MIT

Required Spec Kit Version

=0.14.0

Integration Target (optional)

No response

Components Provided

  • extensions: specassay-check@0.3.4
  • presets: specassay@0.3.4

Required Component Catalogs

Tags

traceability, governance, durable-ids, gate, sdd

Key Features

  • Installs the durable-ID contract (preset) and the Gate that enforces it (extension) as one stack
  • Gate 2 refuses silent acceptance-criterion gaps; every run emits trace-manifest.json, including refusals
  • Thread Report: one CI briefing per PR, with restated-intent detection and optional human-ack gates
  • Components pinned to release-tested versions; the artifact is built by specify bundle build in CI through these same catalogs

Testing Checklist

  • Validation succeeds with specify bundle validate --path <bundle-directory>
  • Build succeeds with specify bundle build --path <bundle-directory> and produces the submitted artifact
  • Bundle installs successfully from the built artifact
  • The submitted distribution path was tested end to end, including bundle-ID installation from an install-allowed catalog when a catalog entry is proposed
  • Installation was tested in a clean Spec Kit project
  • Required component catalogs are documented and were included in testing, or no extra catalogs are required
  • Documentation is complete and accurate

Submission Requirements

  • Valid bundle.yml manifest included
  • README.md explains the bundle's intended role, installed components, and installation steps
  • LICENSE file included
  • GitHub release created with a version tag
  • Bundle ID matches the manifest and follows naming conventions
  • Every extension, preset, workflow, and step reference is pinned where the manifest requires a version

Testing Details

Tested on:

  • Linux (containerized), Spec Kit CLI specify 0.16.3.dev0 (installed from main)

Test project: clean specify init project; full transcript in
https://github.com/rdryfoos/specassay/blob/main/docs/submission/test-evidence.md

Test scenarios:

  1. Added the three hosted catalogs (extensions, presets, bundles) as install-allowed
  2. specify bundle validate --path <repo> — valid
  3. specify bundle build --path <repo> — produces the submitted artifact (same command CI runs for releases)
  4. specify bundle install specassay by ID from the catalog stack in the clean project — 2 components installed
  5. Verified with specify bundle list, specify extension list, specify preset list
  6. Ran the installed Gate on a real project (HomesFlow, https://github.com/rdryfoos/HomesFlow) — ~81-row trace-manifest

Example Usage

# Add the component catalogs, then the bundle catalog (all install-allowed)
specify extension catalog add --name specassay --install-allowed \
  https://raw.githubusercontent.com/rdryfoos/specassay/main/catalogs/extensions.json
specify preset catalog add --name specassay --install-allowed \
  https://raw.githubusercontent.com/rdryfoos/specassay/main/catalogs/presets.json
specify bundle catalog add --id specassay --policy install-allowed \
  https://raw.githubusercontent.com/rdryfoos/specassay/main/catalogs/bundles.json

# Install by bundle ID
specify bundle install specassay

# Or install the downloaded artifact directly
curl -L -o specassay-0.3.4.zip https://github.com/rdryfoos/specassay/releases/download/v0.3.4/specassay-0.3.4.zip
specify bundle install ./specassay-0.3.4.zip

Proposed Catalog Entry

{
  "specassay": {
    "name": "SpecAssay",
    "id": "specassay",
    "version": "0.3.4",
    "role": "developer",
    "description": "Durable-ID promotion for stock Spec Kit: templates, Gate 2 refusal, and trace-manifest emission.",
    "author": "Rik Dryfoos",
    "license": "MIT",
    "download_url": "https://github.com/rdryfoos/specassay/releases/download/v0.3.4/specassay-0.3.4.zip",    "repository": "https://github.com/rdryfoos/specassay",
    "requires": {
      "speckit_version": ">=0.14.0"
    },
    "provides": {
      "extensions": 1,
      "presets": 1,
      "steps": 0,
      "workflows": 0
    },
    "tags": ["traceability", "governance", "durable-ids", "gate", "sdd"],
    "verified": false
  }
}

Additional Context

Component submissions for the two bundled components: extension issue #4057 and preset issue #4058.

The emitted trace-manifest is deliberately vendor-neutral (format + schemaVersion are the contract); a v5 interop revision is in beta with a second emitter (docs/trace-manifest-v5.md). The walkthrough site (https://www.specassay.com) shows the Thread Report and intent-PR behavior on live PRs in this repository.

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