Skip to content

[Extension]: Add specassay-check #4057

Description

@rdryfoos

Extension ID

specassay-check

Extension Name

SpecAssay Check

Version

0.3.1

Description

Gate 2 refuses silent gaps and emits a trace-manifest (trace-manifest.json).

Author

Rik Dryfoos

Repository URL

https://github.com/rdryfoos/specassay

Download URL

https://github.com/rdryfoos/specassay/releases/download/v0.3.1/specassay-check-0.3.1.zip

License

MIT

Homepage (optional)

https://www.specassay.com

Documentation URL (optional)

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

Changelog URL (optional)

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

Required Spec Kit Version

=0.14.0

Required Tools (optional)

- bash — required (the Gate script)
- python3 (>=3.8, standard library only) — required (manifest emission and Thread Report CI tooling)

Number of Commands

1

Number of Hooks (optional)

1

Tags

traceability, gate, ci, governance, sdd

Key Features

  • Refuses silent acceptance-criterion gaps, invented IDs, and registry/specs/tasks drift
  • Emits trace-manifest.json on every run — including refusals — so the evidence trail survives failure
  • Honest debt (tracked-debt) and planned work (backlog) pass and stay visible
  • Thread Report: one CI briefing per PR — what moved on the thread, the touched story end to end, and changed files that sit off the thread
  • Restated-intent detection with graded re-confirm hints
  • Optional human-tick gates (offthread_ack / intent_ack) enforced via a specassay/ack commit status

Testing Checklist

  • Extension installs successfully via download URL
  • All commands execute without errors
  • Documentation is complete and accurate
  • No security vulnerabilities identified
  • Tested on at least one real project

Submission Requirements

  • Valid extension.yml manifest included
  • README.md with installation and usage instructions
  • LICENSE file included
  • GitHub release created with version tag
  • All command files exist and are properly formatted
  • Extension ID follows naming conventions (lowercase-with-hyphens)

Testing Details

Tested on:

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

Test project:

Test scenarios:

  1. Added the hosted install-allowed catalogs and installed by ID in a clean project
  2. Ran /speckit.specassay-check.gate on a green project (passes, emits manifest)
  3. Ran it on a broken thread (refuses, still emits manifest)
  4. Live CI demos on the repository: PR Add John Lam as contributor and release badge #1 (green Thread Report), PR Fix release workflow to work with repository rules #2 (refusal), PR doco(spec-driven): Fix small typo in spec-driven.md #4 and feat: implement in Japanese #5 (restated intent)

Example Usage

# Install extension
specify extension add specassay-check --from https://github.com/rdryfoos/specassay/releases/download/v0.3.1/specassay-check-0.3.1.zip

# Use the command (in your integration, e.g. Claude)
/speckit.specassay-check.gate
# → refuses silent gaps; writes trace-manifest.json either way

Proposed Catalog Entry

{
  "specassay-check": {
    "name": "SpecAssay Check",
    "id": "specassay-check",
    "version": "0.3.1",
    "description": "Gate 2 refuses silent gaps and emits a trace-manifest (`trace-manifest.json`).",
    "author": "Rik Dryfoos",
    "download_url": "https://github.com/rdryfoos/specassay/releases/download/v0.3.1/specassay-check-0.3.1.zip",
    "repository": "https://github.com/rdryfoos/specassay",
    "homepage": "https://www.specassay.com",
    "documentation": "https://github.com/rdryfoos/specassay/blob/main/extensions/specassay-check/README.md",
    "license": "MIT",
    "category": "visibility",
    "effect": "read-write",
    "requires": {
      "speckit_version": ">=0.14.0"
    },
    "provides": {
      "commands": 1,
      "hooks": 1
    },
    "tags": ["traceability", "gate", "ci", "governance", "sdd"],
    "verified": false
  }
}

Additional Context

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 Gate, the Thread Report, and the intent-PR behavior on live PRs in this repository. Pairs with the specassay preset, which installs the durable-ID contract the Gate enforces.

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