Extension ID
keel
Extension Name
Keel Discovery
Version
0.1.1
Description
A Spec Kit extension that puts customer evidence upstream of /speckit.specify, and audits what you shipped against it afterwards.
Author
Keel Discovery
Repository URL
https://github.com/keeldiscovery/spec-kit-keel
Download URL
https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v0.1.1.zip
License
Apache-2.0
Homepage
https://keeldiscovery.com
Documentation URL
https://github.com/keeldiscovery/spec-kit-keel/blob/main/README.md
Changelog URL
https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md
Required Spec Kit Version
=0.15.0
Required Tools
None beyond what Spec Kit itself already requires (bash, git, awk, sed, grep, Python 3.11+). No additional external dependencies.
Number of Commands
5
Number of Hooks
2
Tags
discovery, evidence, customer-research, validation, traceability
Key Features
speckit.keel.init — captures the hypothesis, derives 3–7 assumptions, and writes a non-leading interview guide before any spec exists
speckit.keel.add-evidence — ingests one real interview, extracts attributable claims with provenance, and updates assumption confidence
speckit.keel.check — reports evidence coverage, saturation, contradictions, and one recommended next action
speckit.keel.brief — writes an evidence-backed brief and constitution input for /speckit.specify, with keel: traceability markers back to the assumption/evidence behind each requirement
speckit.keel.audit — round-trip drift check: reads the actual shipped code and diffs it against the original evidence, not just spec-internal consistency (which /speckit.analyze already covers)
keel-gate.sh — phase-precondition script run at the top of every command; blocks /speckit.keel.brief by exit code (not just a prompt) while any high-risk assumption is unvalidated, evidence is thin, or all evidence comes from a single participant role
Testing Checklist
Submission Requirements
Testing Details
Tested on macOS 26.5.2 with Spec Kit CLI 0.16.2.dev0 (installed via uvx --from git+https://github.com/github/spec-kit.git).
Five separate end-to-end scenarios were run against real specify init + specify extension add installs (not simulated), each exercising the full command set and the gate script:
- Full lifecycle (init → add-evidence → check → brief → audit) with a genuine evidence-backed pass, plus a deliberately introduced code drift that the audit correctly caught and explained against the original interview evidence.
- Gate blocking on thin evidence and on single-source evidence, verified via real
keel-gate.sh exit codes and output (not just reading the script).
- A contradicted assumption with a documented risk downgrade, verifying the audit's "unimplemented mitigation reverts to high severity" rule fires correctly.
- The override flow for an unresolved high-risk assumption — confirmed the gate blocks before the override, passes after, and excludes only the overridden ID.
- Edge cases: re-running
init preserves existing assumption IDs, audit's spec-quality-only and marker-fallback modes, and a markdown-table parser robustness test that actually found a real bug (a literal | character inside an assumption's Statement text could silently defeat the high-risk gate) — which was then fixed and re-verified against the original repro.
Separately verified: this exact v0.1.1 release archive installs cleanly via specify extension add keel --from <url>, places every file correctly (including LICENSE/CHANGELOG.md), excludes dev-only files (tests/, .claude/) via .extensionignore, and the installed gate script runs successfully post-install.
Example Usage
specify extension add keel --from https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v0.1.1.zip
/speckit.keel.init "Weekly Slack digest for engineering managers, with mandatory human review before send"
/speckit.keel.add-evidence "Participant: engineering_manager. Q: ... A: ..."
/speckit.keel.check
/speckit.keel.brief
Proposed Catalog Entry
{
"keel": {
"name": "Keel Discovery",
"id": "keel",
"description": "A Spec Kit extension that puts customer evidence upstream of /speckit.specify, and audits what you shipped against it afterwards.",
"author": "Keel Discovery",
"version": "0.1.1",
"download_url": "https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v0.1.1.zip",
"repository": "https://github.com/keeldiscovery/spec-kit-keel",
"homepage": "https://keeldiscovery.com",
"documentation": "https://github.com/keeldiscovery/spec-kit-keel/blob/main/README.md",
"changelog": "https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md",
"license": "Apache-2.0",
"requires": {
"speckit_version": ">=0.15.0"
},
"provides": {
"commands": 5,
"hooks": 2
},
"tags": ["discovery", "evidence", "customer-research", "validation", "traceability"],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-08-09T00:00:00Z",
"updated_at": "2026-08-09T00:00:00Z"
}
}
Additional Context
A short demo/marketing site (with an interactive, click-through walkthrough of one full discovery cycle) is live at https://keeldiscovery.com if useful for review.
Re: naming overlap — a few extensions already in the catalog have adjacent-sounding names (discovery, harness, intake, red-team). None do what this does: discovery is technical/feasibility discovery, not customer research; harness is generic research/evidence curation; intake normalizes existing PRD/design docs rather than gathering original evidence; red-team is adversarial spec review with no evidence layer. Keel's distinguishing mechanism is the evidence gate (a script that mechanically blocks /speckit.keel.brief on thin/unvalidated evidence) plus the round-trip keel.audit that diffs shipped code against the original interview evidence, not just spec-internal consistency.
Extension ID
keel
Extension Name
Keel Discovery
Version
0.1.1
Description
A Spec Kit extension that puts customer evidence upstream of
/speckit.specify, and audits what you shipped against it afterwards.Author
Keel Discovery
Repository URL
https://github.com/keeldiscovery/spec-kit-keel
Download URL
https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v0.1.1.zip
License
Apache-2.0
Homepage
https://keeldiscovery.com
Documentation URL
https://github.com/keeldiscovery/spec-kit-keel/blob/main/README.md
Changelog URL
https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md
Required Spec Kit Version
Required Tools
None beyond what Spec Kit itself already requires (bash, git, awk, sed, grep, Python 3.11+). No additional external dependencies.
Number of Commands
5
Number of Hooks
2
Tags
discovery, evidence, customer-research, validation, traceability
Key Features
speckit.keel.init— captures the hypothesis, derives 3–7 assumptions, and writes a non-leading interview guide before any spec existsspeckit.keel.add-evidence— ingests one real interview, extracts attributable claims with provenance, and updates assumption confidencespeckit.keel.check— reports evidence coverage, saturation, contradictions, and one recommended next actionspeckit.keel.brief— writes an evidence-backed brief and constitution input for/speckit.specify, withkeel:traceability markers back to the assumption/evidence behind each requirementspeckit.keel.audit— round-trip drift check: reads the actual shipped code and diffs it against the original evidence, not just spec-internal consistency (which/speckit.analyzealready covers)keel-gate.sh— phase-precondition script run at the top of every command; blocks/speckit.keel.briefby exit code (not just a prompt) while any high-risk assumption is unvalidated, evidence is thin, or all evidence comes from a single participant roleTesting Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Tested on macOS 26.5.2 with Spec Kit CLI 0.16.2.dev0 (installed via
uvx --from git+https://github.com/github/spec-kit.git).Five separate end-to-end scenarios were run against real
specify init+specify extension addinstalls (not simulated), each exercising the full command set and the gate script:keel-gate.shexit codes and output (not just reading the script).initpreserves existing assumption IDs,audit's spec-quality-only and marker-fallback modes, and a markdown-table parser robustness test that actually found a real bug (a literal|character inside an assumption'sStatementtext could silently defeat the high-risk gate) — which was then fixed and re-verified against the original repro.Separately verified: this exact
v0.1.1release archive installs cleanly viaspecify extension add keel --from <url>, places every file correctly (includingLICENSE/CHANGELOG.md), excludes dev-only files (tests/,.claude/) via.extensionignore, and the installed gate script runs successfully post-install.Example Usage
Proposed Catalog Entry
{ "keel": { "name": "Keel Discovery", "id": "keel", "description": "A Spec Kit extension that puts customer evidence upstream of /speckit.specify, and audits what you shipped against it afterwards.", "author": "Keel Discovery", "version": "0.1.1", "download_url": "https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v0.1.1.zip", "repository": "https://github.com/keeldiscovery/spec-kit-keel", "homepage": "https://keeldiscovery.com", "documentation": "https://github.com/keeldiscovery/spec-kit-keel/blob/main/README.md", "changelog": "https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md", "license": "Apache-2.0", "requires": { "speckit_version": ">=0.15.0" }, "provides": { "commands": 5, "hooks": 2 }, "tags": ["discovery", "evidence", "customer-research", "validation", "traceability"], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-08-09T00:00:00Z", "updated_at": "2026-08-09T00:00:00Z" } }Additional Context
A short demo/marketing site (with an interactive, click-through walkthrough of one full discovery cycle) is live at https://keeldiscovery.com if useful for review.
Re: naming overlap — a few extensions already in the catalog have adjacent-sounding names (
discovery,harness,intake,red-team). None do what this does:discoveryis technical/feasibility discovery, not customer research;harnessis generic research/evidence curation;intakenormalizes existing PRD/design docs rather than gathering original evidence;red-teamis adversarial spec review with no evidence layer. Keel's distinguishing mechanism is the evidence gate (a script that mechanically blocks/speckit.keel.briefon thin/unvalidated evidence) plus the round-tripkeel.auditthat diffs shipped code against the original interview evidence, not just spec-internal consistency.