Help us improve
Share bugs, ideas, or general feedback.
From hatch3r
Regenerates a live GitHub board overview dashboard from current state. Scans open issues, computes health metrics, and updates the meta:board-overview issue. Part of the hatch3r delivery pipeline.
npx claudepluginhub hatch3r/hatch3rHow this skill is triggered — by the user, by Claude, or both
Slash command
/hatch3r:hatch3r-board-refreshThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per `agents/shared/user-question-protocol.md` — do not proceed under silent assumption. This is the default...
Refines existing board items: re-prioritizes, reclassifies, re-scopes, archives stale items, decomposes oversized issues, merges duplicates, and refreshes dependencies.
Syncs session work into GitHub issues and queries issue status across repos. Two modes: write (end-of-session sync with parent epic + W-label) and read (status lookup).
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Before any action, scan the user's request and provided context for unresolved questions in scope, acceptance criteria, irreversibility, or constraint conflicts (contradictory inputs, missing target, unknown convention). If any are found, ask the user via the platform-native question tool per agents/shared/user-question-protocol.md — do not proceed under silent assumption. This is the default path, not an exception. Acceptable to proceed without asking ONLY when scope is single-target, single-concern, and the brief alone is testable. Any residual ambiguity discovered mid-workflow invokes the same protocol.
hatch3r's board commands operate as the implementation orchestration layer above GitHub Agentic Workflows. While GitHub's agentic workflows handle continuous automation (triage, testing, documentation), hatch3r's board commands orchestrate the full delivery pipeline:
Board health findings surfaced by board-refresh (missing metadata, stale issues, blocked chains, epic ordering discrepancies) can be acted on via hatch3r-board-groom, which performs the same diagnostics but adds the ability to apply fixes.
GitHub Agentic Workflows and hatch3r are complementary: use agentic workflows for continuous background automation, use hatch3r board commands for structured delivery orchestration.
Read the hatch3r-board-shared skill at the start of the run. It contains Board Configuration, Platform Detection, Platform Context, Board Sync Procedure, and tooling directives. Cache all values for the duration of this run.
Follow the Token-Saving Directives in hatch3r-board-shared.
Execute these steps in order. Do not skip any step.
.hatch3r/hatch.json and cache the full config (top-level owner/repo, platform, and board section).platform from .hatch3r/hatch.json. Default to github if missing.hatch3r-board-shared: use top-level owner/repo first, fall back to board.owner/board.repo if top-level values are empty..hatch3r/hatch.json. Run board-init first."board.projectNumber -- if null, board sync will be skipped later.Perform ONE comprehensive scan and cache everything for subsequent steps.
Platform-specific: Fetch all open items
If platform is github:
gh issue list -R {owner}/{repo} --state open --limit 500 --json number,title,labels,state,createdAt,updatedAt,body. Paginate if necessary. Fall back to list_issues MCP if gh CLI fails.gh pr list -R {owner}/{repo} --state open --json number,title,body. Build a PR-to-issue association map by parsing Closes #N, Fixes #N, and Resolves #N references from PR bodies. Cache as pr_association_map.If platform is azure-devops:
az boards query --org https://dev.azure.com/{namespace} --project {project} --wiql "SELECT [System.Id], [System.Title], [System.State], [System.Tags], [System.CreatedDate], [System.ChangedDate], [System.Description] FROM WorkItems WHERE [System.State] <> 'Closed' AND [System.State] <> 'Removed'". Fall back to list_work_items MCP.az repos pr list --org https://dev.azure.com/{namespace} --project {project} --status active. Build PR-to-work-item association map from linked work items.If platform is gitlab:
Fetch ALL open issues: glab issue list -R {namespace}/{project} --state opened --per-page 100. Paginate if necessary.
Fetch ALL open MRs: glab mr list -R {namespace}/{project} --state opened. Build MR-to-issue association map from Closes #N references in MR descriptions.
For each issue/work item, extract labels/tags from the response.
Check for sub-issues/child work items:
issue_read with method: get_sub_issues.az boards work-item relation list --id N for parent-child relations.glab api projects/{project_id}/issues/{N}/links for related issues.
Cache parent-child relationships.Parse ## Dependencies sections from issue bodies for dependency references. Recognize both hard (Blocked by #N, Depends on #N) and soft (Recommended after #N) dependency types. Track the type for each edge in the dependency graph -- only hard dependencies block pickup and exclude issues from Implementation Lanes.
Exclude any issue labeled meta:board-overview from all analysis and listings.
Classify every open issue (excluding meta:board-overview):
Analyze cached data to produce board health diagnostics.
Count issues per status label:
| Status | Source |
|---|---|
| Backlog / Triage | Issues with status:triage |
| Ready | Issues with status:ready |
| In Progress | Issues with status:in-progress |
| In Review | Issues with status:in-review |
| Externally Blocked | Issues with status:blocked |
For each open issue, check for required labels. Flag issues missing any of:
type:* (at least one type label)priority:* (at least one priority label)executor:* (at least one executor label)Optional but noted: missing area:*, missing risk:*.
## Dependencies sections.has-dependencies label.## Implementation Order levels against the DAG derived from its sub-issues' ## Dependencies sections. Flag epics where the two diverge (e.g., a sub-issue's ## Dependencies lists a blocker not reflected in the epic's level ordering, or the epic lists a level order that contradicts the dependency DAG). Report discrepancies in Board Health.Blocked by #N) where the blocking issue and the dependent issue belong to different epics. Aggregate these into epic-level relationships: "Epic A blocks Epic B via sub-issue #X blocking sub-issue #Y." Collect for the Cross-Epic Dependencies section of the overview.Flag open issues that are potentially stale:
status:triage with no update in 14+ days (based on updatedAt).status:in-progress with no update in 7+ days (may be abandoned).Compute Implementation Lanes and the Waiting on Dependencies list for all status:ready issues using the Lane Computation Algorithm (steps 1-12) from hatch3r-board-shared. Use the dependency graph built in Step 3c as input. The algorithm partitions ready issues into available (all blockers satisfied) and dependency-waiting (unsatisfied blockers), computes lanes from available issues, then computes inter-lane dependency edges, lane phases, and the Lane Dependency Map (steps 10-12).
Using the pr_association_map from Step 2a, identify status:in-progress and status:in-review issues that have no open PR referencing them. These represent active work with no visible code contribution and should be flagged in Board Health.
For each epic, compare the sub-issue references in the epic body (checklist items, > Parent: references) against the native sub-issue list from issue_read with method: get_sub_issues. Flag sub-issues that appear in the body but are not natively linked.
If board.projectNumber is configured, compare label-based status (status:* labels) against board column status via gh project item-list {board.projectNumber} --owner {board.owner} --format json. Flag issues where the label status and board column status diverge (e.g., label says status:ready but board shows "In Progress").
Scan all ## Dependencies sections for Depends on #N references (legacy format). Flag these for normalization to Blocked by #N (canonical format per the Dependency Data Model in hatch3r-board-shared).
Build the dashboard body following the Board Overview Issue Format and Model Selection Heuristic from hatch3r-board-shared.
For each open issue, assign a recommended model using the Model Selection Heuristic (Quality-First) from hatch3r-board-shared. Apply that heuristic as the single source of truth; do not duplicate it here.
Assemble the dashboard using the Board Overview Issue Format template from hatch3r-board-shared. Populate it with:
PR column using pr_association_map from Step 2a — show #{pr_number} if an open PR references the issue, -- if none.> After: prerequisite lines for Phase 2+ lanes, and Cross-Lane Dependencies table.status:ready with unsatisfied hard blockers).status:blocked.status:triage.Search the cached board inventory for an open issue labeled meta:board-overview.
If multiple found: Use the one with the lowest issue number (oldest). Warn: "Multiple board overview issues found (#{N}, #{M}). Updating #{lowest}. Consider closing duplicates."
Platform-specific: Update or create overview issue
If found: Update the issue/work item body:
If platform is github:
gh issue edit {number} -R {owner}/{repo} --body "{generated dashboard body}"
Fall back to issue_write MCP with method: update if gh CLI fails.
If platform is azure-devops:
az boards work-item update --org https://dev.azure.com/{namespace} --id {number} --description "{generated dashboard body}"
If platform is gitlab:
glab issue update {number} -R {namespace}/{project} --description "{generated dashboard body}"
If not found: Create a new board overview issue:
If platform is github:
gh issue create -R {owner}/{repo} --title "[Board Overview] {repo} Project Board" --label "meta:board-overview" --body "{generated dashboard body}"
Fall back to issue_write MCP with method: create if gh CLI fails.
If platform is azure-devops:
az boards work-item create --org https://dev.azure.com/{namespace} --project {project} --type "User Story" --title "[Board Overview] {project} Project Board" --description "{generated dashboard body}" --fields "System.Tags=meta:board-overview"
If platform is gitlab:
glab issue create -R {namespace}/{project} --title "[Board Overview] {project} Project Board" --label "meta:board-overview" --description "{generated dashboard body}"
Then sync the new issue to the board and set its status to Backlog using the Board Sync Procedure from hatch3r-board-shared.
Present a confirmation:
Board Refresh Complete:
Project: {owner}/{repo}
Overview issue: #{number} (updated / created)
Open issues: {total} ({epics} epics, {sub} sub-issues, {standalone} standalone)
Status: {ready} ready ({available} available, {depWaiting} waiting on deps), {inProgress} in progress, {inReview} in review, {blocked} ext. blocked, {triage} triage
Lanes: {laneCount} lanes across {phaseCount} phases ({available} available issues)
Health: {N} missing metadata, {M} stale, {K} blocked chains, {P} PR linkage gaps, {L} unlinked sub-issues, {D} sync drift, {F} dep format issues
This skill delegates per task size:
Source: .claude/rules/fan-out-discipline.md (P8 B2); agents/shared/efficiency-patterns.md.
gh auth login status and repository access."az login status and project access."glab auth login status and project access."meta:board-overview issue. This command is read-only for all other issues.hatch3r-board-shared. Use platform CLI as primary; MCP as fallback.Model column using the quality-first heuristic from hatch3r-board-shared.