Requirement risk
Skill cat2000/domain-knowledge-ops/.cursor/skills/requirement-risk
Agent skills for Cursor: Confluence/Jira → domain briefs → story risk & INVEST splits and test case Design. Offline DEMO-1 — no Atlassian needed to try.
npx -y skills add cat2000/domain-knowledge-ops --skill requirement-riskAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 23 days oldThe repository was created 23 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when refining a single Jira story for readiness, risk, or decision blockers before sprint commitment. Triggers: @requirement-risk, Jira key (e.g. PROJ-123), pasted requirement text, stage/focus/brief, pre-sprint or security scan. Reads domain briefs as evidence only; does not write curated.
SKILL.md
7.9 KB, as published. Nobody here has run it
requirement-risk (single-ticket readiness)
First principles
Artifact: sprint decision input — in ~30s the reader knows what to do, whether to commit, and what to decide first. Optimize decision latency, not risk-item count.
Quality: every R-00N needs evidence, stakes, and an actionable disposition (D); counts must match title severities. Never invent product facts from the domain library that Jira does not support; ticket vs brief conflicts are listed side-by-side, not silently resolved.
Wiki @generate-knowledge-from-wiki | @ticket-splitter | This skill | |
|---|---|---|---|
| Cost of error | Pollutes library briefs | Planning backlog churn | Wrong decision order / missed MUST |
| Who stops bad output | Human confirms module cuts | Scripts block fake testability | Scripts block count/structure/jargon drift |
| Loop | Prep → confirm → compose | Draft → gate → fix | Draft → gate → fix (no human gate in the loop) |
Corollaries
- Do not wait for human confirm by default; review happens when reading the report.
- Borrow from wiki “scripts verify explicit form + fail must fix” — not checklist / confirm / continue ritual.
- Scripts do not decide “should this be MUST”; they check countable signals.
- Semantics from
requirement_risk.md; presentation:references/presentation.md.
When to use
- Refinement / pre-sprint readiness for one Jira issue
- Readiness call (ready / risky-but-ok / blocked)
- Domain briefs may exist under
curated/by-root/<root_id>/
When not
| Scenario | Use |
|---|---|
| Refresh wiki / write briefs | @generate-knowledge-from-wiki / @distill-domain-knowledge |
| Sprint bulk into briefs | @add-knowledge-from-jira |
| Split only | @ticket-splitter |
| No library + thin ticket | Still run; mark evidence gaps; do not invent modules |
How to invoke
@requirement-risk DEMO-1 team=demo(offline demo, no.env/ network)@requirement-risk PROJ-123@requirement-risk team=<key> PROJ-123@requirement-risk PROJ-123 stage=pre_sprint focus=security@requirement-risk PROJ-123 brief- Or
@requirement-risk+ pasted requirement text
Offline DEMO-*: follow ../_shared/offline-demo.md; no Jira calls.
| Param | Values | Default |
|---|---|---|
team | any key/alias in team-roots.json | attribution / Agile Team |
stage | intake / refinement / pre_sprint | refinement |
focus | risk / scope / security | full baseline |
brief | message contains brief / short-mode words | full Layer 2 |
Team → root: ../_shared/team-root.md.
Preconditions & failures
- Offline
DEMO-*: no credentials —../_shared/offline-demo.md - Real keys:
.envJIRA_*orATLASSIAN_EMAIL/ATLASSIAN_API_TOKEN - Network: real keys need Jira; attachments via
python3 scripts/jira/attachments/fetch_jira_attachments.py <KEY> - No credentials → paste body or use
DEMO-1 - Attachment fetch fail → mark in
EVIDENCE_COVERAGE; do not guess - No brief → still emit; mark missing library anchors
- Gate fail → fix and re-run; do not claim done without pass
Decision tree
Jira key?
├─ DEMO-* (or offline/fixture) → fixtures/offline-demo; skip network
├─ real key → MCP has attachment bytes?
│ ├─ no → fetch_jira_attachments.py
│ └─ yes → use MCP
├─ Resolve team/root (user team= > attribution > Agile Team > keywords)
├─ Business brief root vs Agile Team root aligned?
│ ├─ yes → read `_deliver/<slug>/` S7 locale brief (`*-domain-brief.md` or `*-领域知识定稿.md` per `deliverable_locale`; use map + locale fallback)
│ └─ no → dual-read; document in EVIDENCE_COVERAGE
├─ primary slug known? → S7 locale brief; else S6 source-brief / work draft (note “not S7”)
├─ focus=security|scope|risk → deepen that axis on full baseline
├─ brief mode? → summary + EVIDENCE_COVERAGE only (still gated)
├─ Draft (requirement_risk + presentation)
│ └─ with KEY → .jira_attachments/<KEY>/risk_draft.md
└─ Gate loop
├─ validate_requirement_risk_report.py [--brief] [--evidence-dir …]
├─ fail → fix failures only → retry (≤3)
└─ pass → deliver in chat
Responsibility
| Layer | Agent | Script |
|---|---|---|
| Evidence | Which briefs / dual-root | Fetch issue & attachments |
| Generate | Classify/severity + presentation | Does not write prose |
| Gate | Fix from report | validate_requirement_risk_report.py |
| Semantic correctness | Agent + human reader | No MUST adjudication |
Gate rules
- Full and
briefmodes must pass the validator before delivery. - Counts in summary/AUDIT_COUNTS must match
#### R-00N · …titles. - Must include Scope; full mode ≥1
R-00Nblock;briefneedsEVIDENCE_COVERAGE. - On fail, fix only reported issues; do not skip the gate.
- Standards:
requirement_risk.md+ presentation; scripts verify only. - Never write
curated/or rundomain_check distill;risk_draft.mdis for gating only.
Handoff to @ticket-splitter / @ticket-test-design
- “Must decide first”
R-00Nitems are preferred splitter inputs. - After readiness is clear, testers may
@ticket-test-design <same KEY>for must/should/later cases. - Do not wait for human confirm on the risk report before splitting or test design.
Presentation & domain library
references/presentation.md· P10:../_shared/presentation-p10.md../../contracts/jira-issue-domain-knowledge-context.md- Prefer S7 locale brief under
_deliver/<slug>/as evidence only (*-domain-brief.md/*-领域知识定稿.mdperdeliverable_locale; fallback: S6*-source-brief.md, else work draft — note inEVIDENCE_COVERAGE); do not writecurated/. - If S7 opens with an Evidence insufficiency banner, treat as non-SSOT in
EVIDENCE_COVERAGE(do not ground MUST items solely on that brief).
Agent checklist
- Load evidence per
requirement_risk.md+ domain-context contract; fetch attachments if needed; dual-read when roots diverge. - Generate substance (
R-00N, coverage, severities); mark conflicts[DOMAIN_KNOWLEDGE]. - Apply presentation (+ P10); write
risk_draft.mdwhen KEY present. - Run validator; fix until pass; then deliver in chat (reader locale; often zh-CN for stakeholders).
- End with copy-paste
@ticket-splitter <same KEY>(keepteam=if any), or continue into splitter if already requested.
Done when
- Validator exit 0 (or explicitly marked failed)
- Summary has Scope + must-decide + counts + readiness; counts reconcile
-
EVIDENCE_COVERAGEpresent (full mode also has risk list) - Conflicts have source tables; MUST items have suggested owner
- Splitter handoff present (or already continued)
Forbidden
- Write
curated// run distill check - Invent facts from the library
- Silently pick Jira vs brief as winner
- Skip gate or wait for confirm unless user asks for ungated draft
- Copy wiki confirm→continue as the risk main flow
Examples
@requirement-risk DEMO-1 team=demo
→ offline fixture → draft → validate → deliver + handoff splitter
@requirement-risk PROJ-123 brief
→ short draft → validate --brief → summary + EVIDENCE_COVERAGE