agentsclimarketplace

Jira ticket plan audit

Skill rmerk/crewai-headless-flow/vendor/agent-skills/skills/jira-ticket-plan-audit

Audit a PR diff against a saved Jira implementation plan at .agents/jira-plans/{KEY}.md. Checks file coverage, test strategy, backend escalation scope, and scope creep. Use after jira-ticket-implement or when user says audit AS-12345 against plan.From its SKILL.md

Install
npx -y skills add rmerk/crewai-headless-flow --skill jira-ticket-plan-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 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.

SKILL.md

3.7 KB, 934 tokens by cl100k_base, as published. Nobody here has run it

Jira Ticket Plan Audit

Compare git diff against a saved plan from jira-ticket-plan. Read-only — no code changes.

Plan path: .agents/jira-plans/{ISSUE_KEY}.md

Workspace layout

WORKSPACE_ROOT   = asure/
GIT_ROOT         = asure.ptm.portal.web.ui.new/
PORTAL_PREFIX    = asure.ptm.portal.web.ui.new/assureptmdashboard/
PLAN_DIR         = .agents/jira-plans/

Workflow

- [ ] Step 0: Load plan + parse frontmatter
- [ ] Step 1: Collect git diff (committed + working tree)
- [ ] Step 2: Normalize paths and run checks
- [ ] Step 3: Output audit checklist

Step 0 — Load plan

Read plan; halt if missing. Parse backendEscalation, backendInvestigation, ticketComplexity.


Step 1 — Collect diff

From workspace root:

cd "$WORKSPACE_ROOT" && git rev-parse --show-toplevel
cd "$GIT_ROOT"
git diff develop...HEAD --name-only 2>/dev/null || git diff --name-only
git diff --name-only
git diff --cached --name-only

Union all path lists (dedupe). Tag each path with source:

  • committed — from develop...HEAD (or fallback)
  • unstaged — working tree
  • staged — index

Empty union: report "no changes yet" — not a failure.

Note diff base in output (develop...HEAD or fallback).


Step 2 — Path normalization

Normalize plan and diff paths before compare:

  1. Remove asure.ptm.portal.web.ui.new/ prefix if present
  2. Remove leading ./
  3. If plan path starts with assureptmdashboard/ and diff path does not → strip assureptmdashboard/ from plan path
  4. If diff path starts with assureptmdashboard/ and plan path does not → strip from diff path
  5. Compare case-sensitive

Examples:

Plan pathDiff path (GIT_ROOT)Normalized match
asure.ptm.portal.web.ui.new/assureptmdashboard/src/App.vueassureptmdashboard/src/App.vuesrc/App.vue
asure.ptm.portal.web.ui.new/assureptmdashboard/src/App.vuesrc/App.vuesrc/App.vue

Extract paths from Implementation plan steps and Test strategy spec column.


Step 3 — Checks

CheckPass criteriaSeverity
Plan files touchedIn diff union OR step blocked pending backend / N/Awarn
Test specsIn diff union or N/Awarn
Backend escalationbackendEscalation: true → no asure.ptm.webapi/ in differror
Scope creepExtra diff files not in planinfo (>3 → warn)
Empty diffNo pathsinfo

Blocked steps: marked blocked pending backend → N/A, not missing.


Audit output template

# Plan audit: {ISSUE_KEY}

**Diff base:** develop...HEAD | {fallback}
**Plan generated:** {from frontmatter}

## Checklist

- [ ] Implementation plan files: {N}/{M} touched ({blocked} blocked/N/A)
- [ ] Test specs: {status}
- [ ] Backend escalation scope: {pass/fail}
- [ ] Scope creep: {N} extra files

## Diff sources

- committed: {n} | unstaged: {n} | staged: {n}

## Missing from diff

{list or none}

## Extra in diff (not in plan)

{list or none}

Optional write: .agents/jira-plans/{KEY}-audit.md


Related skills

SkillPath
jira-ticket-plan.agents/skills/jira-ticket-plan/SKILL.md
jira-ticket-implement.agents/skills/jira-ticket-implement/SKILL.md

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,790. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.