Extension ID
ears
Extension Name
EARS Requirements Syntax
Version
1.0.0
Description
Author, lint, and convert requirements using EARS (Easy Approach to Requirements Syntax) - the five industry-standard sentence patterns for unambiguous, testable requirements.
Author
dhruv-15-03
Repository URL
https://github.com/dhruv-15-03/spec-kit-ears
Download URL
https://github.com/dhruv-15-03/spec-kit-ears/archive/refs/tags/v1.0.0.zip
License
MIT
Homepage (optional)
https://github.com/dhruv-15-03/spec-kit-ears
Documentation URL (optional)
https://github.com/dhruv-15-03/spec-kit-ears/blob/main/README.md
Changelog URL (optional)
https://github.com/dhruv-15-03/spec-kit-ears/blob/main/CHANGELOG.md
Required Spec Kit Version
=0.9.0
Required Tools (optional)
None - this extension only reads/writes Markdown files under .specify/ears/<slug>/ and has no external tool dependencies.
Number of Commands
3
Number of Hooks (optional)
0
Tags
ears, requirements, specification, quality
Key Features
speckit.ears.author - drafts requirements for a feature directly in EARS format, classified by pattern with stable requirement IDs.
speckit.ears.lint - audits existing requirements for EARS conformance and ambiguity, producing a read-only lint report with suggested rewrites (never modifies source files).
speckit.ears.convert - rewrites free-form requirements into EARS patterns and produces a traceability matrix from originals to EARS statements.
- All commands communicate through Markdown files in a single per-topic directory (
.specify/ears/<slug>/), keeping EARS work self-contained and optional relative to the default Spec Kit workflow.
Testing Checklist
Submission Requirements
Testing Details
Tested on: Windows 11 with a local Spec Kit checkout (specify CLI from this repo's main).
Test project: A scratch Spec Kit project initialized with specify init.
Test scenarios:
- Downloaded the
v1.0.0 release archive and verified its SHA-256 checksum matches the value published in the release.
- Confirmed the archive extracts to a directory containing a valid
extension.yml, README.md, LICENSE, CHANGELOG.md, and all three command files referenced in the manifest.
- Ran
specify extension add --dev against a local checkout of the extension and confirmed the three commands (speckit.ears.author, speckit.ears.lint, speckit.ears.convert) install and register correctly.
- Exercised all three commands end-to-end against a sample feature (drafting EARS requirements, linting an existing spec, and converting free-form requirements), confirming output files are written only under
.specify/ears/<slug>/ as documented.
Example Usage
# Install extension
specify extension add ears --from https://github.com/dhruv-15-03/spec-kit-ears/archive/refs/tags/v1.0.0.zip
# 1. Author EARS requirements from a feature idea
/speckit.ears.author "A kanban task board where users drag tasks between columns" slug=task-board
# 2. Audit an existing spec's requirements for EARS conformance
/speckit.ears.lint .specify/specs/001-task-board/spec.md slug=task-board
# 3. Convert free-form requirements into EARS with traceability
/speckit.ears.convert slug=task-board
Proposed Catalog Entry
{
"ears": {
"name": "EARS Requirements Syntax",
"id": "ears",
"description": "Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements",
"author": "dhruv-15-03",
"version": "1.0.0",
"download_url": "https://github.com/dhruv-15-03/spec-kit-ears/archive/refs/tags/v1.0.0.zip",
"sha256": "182e7234f220e11a1b89b919e46d60ecd208d6ecf8a3d012d97f33e2541d3998",
"repository": "https://github.com/dhruv-15-03/spec-kit-ears",
"homepage": "https://github.com/dhruv-15-03/spec-kit-ears",
"documentation": "https://github.com/dhruv-15-03/spec-kit-ears/blob/main/README.md",
"changelog": "https://github.com/dhruv-15-03/spec-kit-ears/blob/main/CHANGELOG.md",
"license": "MIT",
"requires": {
"speckit_version": ">=0.9.0"
},
"provides": {
"commands": 3,
"hooks": 0
},
"tags": ["ears", "requirements", "specification", "quality"],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-07-07T00:00:00Z",
"updated_at": "2026-07-07T00:00:00Z"
}
}
Additional Context
This supersedes PR #3324 ("feat(extensions): add EARS requirements syntax extension"), which originally proposed bundling this extension directly into the core spec-kit repository. Per maintainer feedback on that PR (#3324 (comment)), the same extension is now delivered as a standalone community extension per the Extension Publishing Guide. PR #3324 is being closed in favor of this submission.
Posted by GitHub Copilot on behalf of @dhruv-15-03.
Extension ID
ears
Extension Name
EARS Requirements Syntax
Version
1.0.0
Description
Author, lint, and convert requirements using EARS (Easy Approach to Requirements Syntax) - the five industry-standard sentence patterns for unambiguous, testable requirements.
Author
dhruv-15-03
Repository URL
https://github.com/dhruv-15-03/spec-kit-ears
Download URL
https://github.com/dhruv-15-03/spec-kit-ears/archive/refs/tags/v1.0.0.zip
License
MIT
Homepage (optional)
https://github.com/dhruv-15-03/spec-kit-ears
Documentation URL (optional)
https://github.com/dhruv-15-03/spec-kit-ears/blob/main/README.md
Changelog URL (optional)
https://github.com/dhruv-15-03/spec-kit-ears/blob/main/CHANGELOG.md
Required Spec Kit Version
Required Tools (optional)
None - this extension only reads/writes Markdown files under
.specify/ears/<slug>/and has no external tool dependencies.Number of Commands
3
Number of Hooks (optional)
0
Tags
ears, requirements, specification, quality
Key Features
speckit.ears.author- drafts requirements for a feature directly in EARS format, classified by pattern with stable requirement IDs.speckit.ears.lint- audits existing requirements for EARS conformance and ambiguity, producing a read-only lint report with suggested rewrites (never modifies source files).speckit.ears.convert- rewrites free-form requirements into EARS patterns and produces a traceability matrix from originals to EARS statements..specify/ears/<slug>/), keeping EARS work self-contained and optional relative to the default Spec Kit workflow.Testing Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Tested on: Windows 11 with a local Spec Kit checkout (
specifyCLI from this repo'smain).Test project: A scratch Spec Kit project initialized with
specify init.Test scenarios:
v1.0.0release archive and verified its SHA-256 checksum matches the value published in the release.extension.yml,README.md,LICENSE,CHANGELOG.md, and all three command files referenced in the manifest.specify extension add --devagainst a local checkout of the extension and confirmed the three commands (speckit.ears.author,speckit.ears.lint,speckit.ears.convert) install and register correctly..specify/ears/<slug>/as documented.Example Usage
Proposed Catalog Entry
{ "ears": { "name": "EARS Requirements Syntax", "id": "ears", "description": "Author, lint, and convert requirements using EARS - the five industry-standard sentence patterns for unambiguous, testable requirements", "author": "dhruv-15-03", "version": "1.0.0", "download_url": "https://github.com/dhruv-15-03/spec-kit-ears/archive/refs/tags/v1.0.0.zip", "sha256": "182e7234f220e11a1b89b919e46d60ecd208d6ecf8a3d012d97f33e2541d3998", "repository": "https://github.com/dhruv-15-03/spec-kit-ears", "homepage": "https://github.com/dhruv-15-03/spec-kit-ears", "documentation": "https://github.com/dhruv-15-03/spec-kit-ears/blob/main/README.md", "changelog": "https://github.com/dhruv-15-03/spec-kit-ears/blob/main/CHANGELOG.md", "license": "MIT", "requires": { "speckit_version": ">=0.9.0" }, "provides": { "commands": 3, "hooks": 0 }, "tags": ["ears", "requirements", "specification", "quality"], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-07-07T00:00:00Z", "updated_at": "2026-07-07T00:00:00Z" } }Additional Context
This supersedes PR #3324 ("feat(extensions): add EARS requirements syntax extension"), which originally proposed bundling this extension directly into the core
spec-kitrepository. Per maintainer feedback on that PR (#3324 (comment)), the same extension is now delivered as a standalone community extension per the Extension Publishing Guide. PR #3324 is being closed in favor of this submission.Posted by GitHub Copilot on behalf of @dhruv-15-03.