feat: add earsyntax toolkit monorepo - #1
Open
omermorad wants to merge 20 commits into
Open
Conversation
Deterministic EARS requirements toolkit: @earsyntax/core (parser, linter, diagnostics), @earsyntax/extract (.ears, Markdown, YAML, JSON extraction), @earsyntax/cli-contract (JSON and SARIF report contracts), and @earsyntax/cli (the earsyntax facade with the agentic spec-to-EARS loop). Includes the golden fixture corpus, ears-lint-go parity fixtures, facade contracts, and docs.
… hardening Registry with EARS-E/W ids and alias resolution, findings model v1 with effective severity, profile schema v1 with five builtins, parser crash fixes (recursion depth, span merge), catalog canonical precedence, span coverage for not/group expressions. Go deviations documented.
EARS-E014 keyword_case, EARS-E015 missing_leading_comma, EARS-E016 prohibition_not_allowed, all strict errors. Additive DialectOptions, Options.dialect, EarsAst.prohibition for profile-driven parsing.
…tures ES-D rulings: leading comma, then discriminator, single When, system form, keyword casing, prohibition, frame metadata, one shall per sentence. Dialect knobs relax per profile; Go parity suite pinned to a loose dialect. Fixture sets for strict, ears-x, kiro, speckit, and openspec with candidates and expected-diagnostics sidecars.
Candidate model with locate, extract, parse, lint stages; fence-aware markdown scanning; BOM handling; line-offset index; verified profile fixture sidecars.
requirementId field with fixed key order, bold ID labels stripped and lifted, ears-x frame prefix retained with position fidelity, Gherkin scenario steps excluded from block candidates.
Dispatcher for the eight facade commands, global flags, exit codes 0/1/2, envelope responses, pipeline-backed validate with notice mapping, extract with profile snapshot coverage, workspace concepts fully removed.
Instructions command with author, convert, repair, review modes and the --from source flow; init renderers for six agents and three hosts with idempotent managed sections; stateless doctor with host and agent detection; explain rendered from the diagnostic registry with alias resolution; profiles command as a drift-proof projection; SARIF 2.1.0 emitter projected from the findings model.
Guest-mode quick start, full command reference with executed examples, agent rules mirroring the instructions payload, host-native agentic loop, pipeline and profile documentation, public API surface.
Orphaned command stub, dead demo fixtures, unused pretty projection cluster in cli-contract, stale contract and README references.
Delete cli-contract diagnostic descriptions duplicate, legacy extractors and table path, dead exports and fields across the CLI. Wire validate exit codes to the shared contract, reject values on boolean flags, apply quiet uniformly, document idFormat as reserved, clean dist before packing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.