requirement-parser·authoring·active
Requirement Parser
Reads ambiguous user stories, Jira tickets, or PRDs. Extracts actors, contracts, side effects, and constraints into a normalized intent graph.
Requirement Parser
Reads ambiguous natural-language requirements and extracts a normalized intent graph that downstream skills can act on without re-interpreting.
When this skill fires
·A user pastes a Jira ticket, PRD excerpt, or one-paragraph user story into TARA
·TARA pulls a story directly from a sprint via the Jira MCP
·An upstream agent passes a free-form acceptance criterion that needs structuring
What it reads
·The raw requirement text (any length, any format)
·Any inline data examples, sample payloads, or constraints embedded in the prose
·Linked PRD/Confluence content if a URL is present and the Confluence MCP is connected
What it produces
A normalized intent graph with:
·Actors — every party that interacts with the system (user, admin, third-party API, scheduler)
·Contracts — the input/output shape each actor expects
·Side effects — emails, audit logs, downstream events, persistent state changes
·Constraints — timing, rate limits, data formats, ordering guarantees
How it works
→Actor extraction runs first. Pronouns ("the user", "they") are resolved against named entities defined elsewhere in the text.
→Contract extraction looks for verbs that imply state transitions ("submits", "is locked", "is dispatched") and pairs each with its observable consequence.
→Side-effect extraction is intentionally aggressive — TARA prefers false positives here becauseScenario Decomposer discards anything that doesn't decompose into a testable scenario.
→Constraint extraction picks up explicit numbers ("under 400ms", "5 attempts in 15 minutes")and implicit ones ("immediately", "eventually consistent").
Example
Input:"When a user fails to log in 5 times in 15 minutes, the account is locked for 30 minutes and an email is sent."
Output:
·Actor:
user, Actor: auth-service, Actor: email-dispatcher·Contract:
POST /login → 401 on invalid credentials·Side effect:
failed_attempts++, account.locked_until = now + 30m, email.send(account_locked)·Constraint: window=
15m, threshold=5, lockout=30mRelated · authoring
Scenario Decomposer
scenario-decomposer
Breaks a normalized requirement into happy paths, edge cases, and negative paths. Anchors edge cases on real boundaries — timing, encoding, concurrency, exhaustion.
Edge Case Generator
edge-case-generator
Synthesizes non-obvious edge cases — Unicode, off-by-one, race conditions, replay attacks. Uses a curated catalog of past production incidents as priors.
Gherkin Formatter
gherkin-formatter
Renders scenarios as Cucumber-compliant Gherkin with realistic data. Tags scenarios with [EDGE] / [NEGATIVE] for downstream agents.