Skip to content

feat: add sub-command router and sprint ceremony workflows to rhdh-jira#18

Merged
schultzp2020 merged 5 commits into
mainfrom
feat/jira-subcommands
May 6, 2026
Merged

feat: add sub-command router and sprint ceremony workflows to rhdh-jira#18
schultzp2020 merged 5 commits into
mainfrom
feat/jira-subcommands

Conversation

@schultzp2020

@schultzp2020 schultzp2020 commented May 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a sub-command router and 5 workflow references to the rhdh-jira skill, covering all applicable Scrum ceremonies for the RHDH team. Also updates the skill-maker skill with patterns learned during development.

rhdh-jira: New sub-commands

Command Ceremony Description
assign Any time 5-layer deep assignee analysis: team roster (GraphQL team.teamV2), expertise profiling, sprint capacity, soft signals (bus factor, growth), context proximity
refine Backlog Refinement 6-check refinement: missing fields per exit criteria, duplicates, hierarchy integrity, unaddressed comments, staleness, sprint readiness
plan Sprint Planning Carryover report, velocity trend, per-member capacity, ready-for-planning queue, sprint fill suggestions, critical customer bugs, retro action items
sprint-report Sprint Review/Demo Committed vs completed, per-member breakdown, epic progress, demo checklist with naming conventions and venue routing
release Feature Refinement + SOS PI funnel states, feature matrix, epic roll-up, cross-team dependency map, blocker bugs, RN readiness, risk assessment. Intended to replace rhdh-release-triage

Architecture

  • Sub-command router with scripts/command-metadata.json as single source of truth
  • API preference order: acli → GraphQL → REST API (skip acli for bulk operations)
  • Cross-cutting conventions centralized in SKILL.md (confirmation flow, error handling, team conventions)
  • Data flow documentation between sub-commands (plan reuses assign capacity, sprint-report shares velocity pattern, release invokes assign)
  • Exit criteria single-sourced in references/workflows.md — refine and release point to it

Key GraphQL discoveries

  • team.teamV2(id, siteId) returns full team roster directly — no REST Teams API needed
  • JiraComponentsField fragment works: components { edges { node { name } } }
  • JiraTeamViewField.selectedTeam.fullTeam.members returns roster via issue context
  • No GraphQL mutation exists for issue assignment — acli/REST for writes
  • "Team[Team]" = {teamId} works in JQL (corrected Gotcha 5)

skill-maker updates

  • Deduplication check with intentional duplication exception (avoid transitive loading)
  • Avoid hardcoded thresholds writing pattern — describe the signal, not an arbitrary number
  • Multi-API preference order pattern for skills wrapping CLI + GraphQL + REST
  • Router evolution guidance — when and how to upgrade from reference files
  • Cross-cutting conventions and data flow documentation patterns

Reviewed by

Two specialized reviewer agents (2 rounds each):

  • Skills expert — spec compliance, architecture, reference independence, description optimization
  • Agile/Scrum expert — ceremony coverage, workflow alignment with RHDH Agile process, output practicality

Files changed

New (6):

  • references/assign.md (269 lines)
  • references/refine.md (298 lines)
  • references/plan.md (219 lines)
  • references/sprint-report.md (207 lines)
  • references/release.md (296 lines)
  • scripts/command-metadata.json

Modified (7):

  • SKILL.md — router, API preference, conventions, workflows, description
  • references/auth.md — GRAPHQL_URL, ORG_ID with discovery
  • references/graphql-queries.md — team roster query, field types, 3-way API table
  • skills/skill-maker/SKILL.md — dedup exception, hardcoded thresholds
  • skills/skill-maker/references/api-skill-patterns.md — multi-API pattern
  • skills/skill-maker/references/architecture-patterns.md — router evolution, conventions, data flow
  • README.md — all 5 sub-commands documented

New sub-commands:
- assign: 5-layer deep assignee analysis (roster, expertise, capacity,
  soft signals, context proximity) via GraphQL team.teamV2 API
- refine: 6-check issue refinement (missing fields, duplicates, hierarchy,
  comments, staleness, sprint readiness) against RHDH exit criteria
- plan: sprint planning prep (carryover, velocity, capacity, ready queue,
  sprint fill suggestions, critical customer bugs, CI retro items)
- sprint-report: sprint review summary (committed vs completed, per-member
  breakdown, epic progress, demo checklist with naming conventions)
- release: release readiness (PI funnel, feature matrix, epic roll-up,
  dependency map, blocker bugs, RN readiness, risk assessment)

Architecture changes:
- Sub-command router table with routing rules in SKILL.md
- scripts/command-metadata.json as single source of truth
- API preference order: acli -> GraphQL -> REST API (skip acli for bulk)
- Cross-cutting conventions centralized (confirmation flow, error handling)
- Data flow documentation between sub-commands

GraphQL discoveries:
- team.teamV2(id, siteId) returns full team roster directly
- JiraComponentsField fragment works for reading components
- JiraTeamViewField.selectedTeam.fullTeam.members returns roster via issues
- No GraphQL mutation exists for issue assignment

rhdh-jira updates:
- Gotcha #5 corrected: Team[Team] JQL syntax works (customfield_10001 doesn't)
- auth.md: added GRAPHQL_URL, ORG_ID with discovery method
- graphql-queries.md: Team Roster Query, updated field types, 3-way API table
- workflows.md remains single source of truth for exit criteria

skill-maker updates:
- Phase 2: deduplication check with intentional duplication exception
- Phase 2: avoid hardcoded thresholds writing pattern
- api-skill-patterns.md: multi-API preference order pattern
- architecture-patterns.md: router evolution, cross-cutting conventions,
  data flow documentation between sub-commands

release sub-command is intended to replace rhdh-release-triage once
feature parity is reached (currently ~70% coverage).
All example output templates, data contracts, and markdown samples now
use fake names (generated via Python Faker, seed 42) instead of real
team members. Operational config (team IDs, org IDs, cloud IDs) remains
unchanged as those are required for the skill to function.

Mapping: Jon Koops -> Allison Hill, Hope Hadfield -> Noah Rhodes,
Frank Kong -> Angie Henderson, Nick Boldt -> Daniel Wagner,
Kashish Mittal -> Cristian Santos, Martin Polasko -> Connie Lawrence.
Removed all references to rhdh-release-triage and rhdh-hygiene-dashboard
skills that exist outside this repo. The rhdh-jira skill is now
self-contained — no dependency on external skills.
Reports now offer to save as markdown files instead of posting to Slack.
Keeps the skill self-contained with no external service dependencies
for output.
Comment thread skills/rhdh-jira/references/refine.md Outdated
When refine closes stale issues or marks duplicates, it now:
- Adds a comment documenting the rationale for the closure
- Sets the resolution field (Won't Do, Duplicate, Done, etc.)

This preserves the decision trail for future reference, matching
the team's current practice.

Addresses PR feedback from Zaperex.
@schultzp2020 schultzp2020 merged commit e3fd47c into main May 6, 2026
4 checks passed
@schultzp2020 schultzp2020 deleted the feat/jira-subcommands branch May 6, 2026 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants