From dx-core
Validate Definition of Ready — fetch wiki checklist, evaluate story, post ADO comment. Use standalone at sprint start, in batch, or as part of /dx-req.
npx claudepluginhub easingthemes/dx-aem-flow --plugin dx-coreThis skill is limited to using the following tools:
Validate one or more work items against the project's Definition of Ready checklist. Fetches the DoR wiki page, evaluates each criterion against the story content, generates a scorecard, and posts an interactive ADO/Jira comment with checkboxes for BA collaboration. Supports three modes: first post (Mode A), update after changes (Mode B), and reuse when nothing changed (Mode C). Supports `manda...
Grooms backlog items by fact-checking claims against sources, running RT-ICA analysis per item, spawning groomer agents, and writing updates via MCP tools. Use before planning or execution.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Validate one or more work items against the project's Definition of Ready checklist. Fetches the DoR wiki page, evaluates each criterion against the story content, generates a scorecard, and posts an interactive ADO/Jira comment with checkboxes for BA collaboration. Supports three modes: first post (Mode A), update after changes (Mode B), and reuse when nothing changed (Mode C). Supports mandatory tag for hard-gate checks that block regardless of overall score.
digraph dx_dor {
"Parse argument(s)" [shape=box];
"Single or batch?" [shape=diamond];
"Fetch story" [shape=box];
"Fetch DoR wiki" [shape=box];
"Existing [DoRAgent] comment?" [shape=diamond];
"Read checkbox state + compare story" [shape=box];
"Changes detected?" [shape=diamond];
"Re-fetch story + re-validate" [shape=box];
"Materialize comment → dor-report.md (Mode C)" [shape=box];
"Parse wiki → build criteria" [shape=box];
"Evaluate story against criteria" [shape=box];
"Generate dor-report.md" [shape=box];
"Post ADO comment" [shape=box];
"Done" [shape=doublecircle];
"Spawn parallel subagents" [shape=box];
"Parse argument(s)" -> "Single or batch?";
"Single or batch?" -> "Fetch story" [label="single"];
"Single or batch?" -> "Spawn parallel subagents" [label="multiple IDs"];
"Spawn parallel subagents" -> "Done";
"Fetch story" -> "Fetch DoR wiki";
"Fetch DoR wiki" -> "Existing [DoRAgent] comment?";
"Existing [DoRAgent] comment?" -> "Read checkbox state + compare story" [label="yes"];
"Existing [DoRAgent] comment?" -> "Parse wiki → build criteria" [label="no"];
"Read checkbox state + compare story" -> "Changes detected?";
"Changes detected?" -> "Re-fetch story + re-validate" [label="yes"];
"Changes detected?" -> "Materialize comment → dor-report.md (Mode C)" [label="no"];
"Re-fetch story + re-validate" -> "Generate dor-report.md";
"Materialize comment → dor-report.md (Mode C)" -> "Done";
"Parse wiki → build criteria" -> "Evaluate story against criteria";
"Evaluate story against criteria" -> "Generate dor-report.md";
"Generate dor-report.md" -> "Post ADO comment";
"Post ADO comment" -> "Done";
}
shared/provider-config.md, shared/external-content-safety.md.ai/config.yaml for provider, project, repoRun /dx-dor <id>.ai/specs/<id>-*/ exists, reuse it as $SPEC_DIR. Otherwise fetch title via MCP, slugify, create mkdir -p .ai/specs/<id>-<slug>/mcp__ado__wit_get_work_item, Jira: mcp__atlassian__jira_get_issue)mcp__ado__wit_list_work_item_comments, Jira: comments included in issue response)raw-story.md doesn't exist, convert HTML to markdown per shared/external-content-safety.md and write it. If it exists and is current, reuse.references/wiki-parsing.md for the full parsing and fallback chain logicscm.wiki-dor-url) or Confluence (confluence.dor-page-title)[DoRAgent] Definition of Ready CheckTwo change checks — either one triggers re-validation:
- [x] and - [ ] lines from the existing comment. Compare against the original post state to detect BA checkbox updates.$SPEC_DIR/raw-story.md (if it exists). Check title, description, acceptance criteria, and comment count. If ANY differ, the ticket was updated since the last DoR run.[ ] to [x] since original post: yes → print: BA checked <N> items: <list>. Re-validating...Ticket updated since last DoR check (changed: <fields>). Re-validating...$SPEC_DIR/raw-story.md with fresh content$SPEC_DIR/dor-report.mdDoR comment already posted to ADO #<id> — no changes — reusing.references/wiki-parsing.mdmandatory: Pass or Fail (HARD GATE — a Fail here overrides the final verdict)required: Pass or Failrecommended: Pass or Warnhuman: Warn always (needs human judgment)references/wiki-parsing.mdrules/pragmatism.md)required criteria## Scoring sectionmandatory-tagged criterion has status Fail. If yes, override verdict to "Needs more detail — MANDATORY criteria not met: " regardless of the count-based score. This gate fires AFTER evaluation but BEFORE writing the report.$SPEC_DIR/dor-report.md per output format in references/wiki-parsing.mdreferences/comment-format.md for Mode A/B posting logicDoR: <verdict> (<score>/<total>)/dx-dor 2416553
Fetches story #2416553, evaluates against DoR checklist, writes dor-report.md, posts ADO comment.
/dx-dor 2416553 2416554 2416555
Spawns parallel subagents, each validating one item. Prints summary table at the end.
/dx-dor 2416553
Detects existing [DoRAgent] comment. Checks for BA checkbox changes AND ticket content changes (description, AC, new comments). If either changed → re-fetches story, re-validates, posts Mode B update. If neither changed → Mode C reuse.
.ai/config.yaml.- [ ] checkboxes so BAs can mark items resolved directly in ADO.[DoRAgent] text signature — never use HTML comments like <!-- ai:role:dor-agent --> for detection.This skill uses Agent() for batch mode and MCP tools for ADO/Jira, which work on both Claude Code and Copilot CLI.