Install
$ agentstack add skill-graysurf-agent-kit-tracking-issue-closeout ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Tracking Issue Closeout
Contract
Prereqs:
- Run inside the target GitHub-backed git repository, or pass
--repo. ghis available onPATH, andgh auth statussucceeds for live mode.python3is available onPATH.- The target issue was created by
plan-tracking-issueor has equivalent source and plan snapshot comments. - Issue-backed execution has already completed through
execute-from-tracking-issue. - The user explicitly approved issue closure, or project policy explicitly says this tracking issue closes after successful execution.
Inputs:
- GitHub issue number or URL via
--issue. - Optional repository override via
--repo. - Required close authorization via
--review-approvedor--review-comment-url. - Optional offline fixture via
--issue-jsonfor audit/render dry runs without live GitHub reads. - Optional output paths for rendered dashboard, closeout comment, and JSON report.
- Optional
--skip-pr-checksonly when PR merge state has already been verified externally and recorded in the issue. - Optional
--repair-closedfor an already closed issue whose final dashboard drifted after execution. This mode is explicit and never
closes the issue again.
- Optional
--finalize-closedwith--repair-closedto append one missing `` comment for an already
closed, otherwise complete issue. Existing closeout markers are never duplicated.
Outputs:
- Final issue body dashboard with status, durable record links, validation summary, linked PRs, blockers, and next action.
- Append-only `` closeout comment summarizing checks, outcome, and approval basis.
- Closed GitHub issue with reason
completedin live mode. - In
--repair-closedmode, updated final dashboard body and JSON report only by default. - In
--repair-closed --finalize-closedmode, one missing closeout marker may be appended before the dashboard repair; existing markers are
left untouched.
- Machine-readable JSON closeout report when
--report-outis supplied. - Concise stdout summary with issue URL, close status, rendered files, and check result.
Exit codes:
0: success1: readiness, validation, GitHub mutation, or close gate failure2: usage error
Failure modes:
- Target issue is unreadable, already closed without
--repair-closed, open while--repair-closedis selected, or not associated with the
selected repository.
- Missing source snapshot, plan snapshot, execution-state comment, or completed session/final summary.
- Latest execution state is not
complete, lacks the canonical task ledger, or contains task rows not markeddoneordeferred. - Closure is not explicitly approved by the user or by supplied project-policy evidence.
- Validation evidence is absent from execution comments.
- Linked PRs are not merged when live PR checks are enabled.
- Body/comment mutation or issue close fails, leaving the issue open with the failing command reported.
Scripts (only entrypoints)
$AGENT_HOME/skills/workflows/issue/tracking-issue-closeout/scripts/tracking-issue-closeout.sh
Workflow
- Read the tracking issue:
- Live mode:
gh issue view --json number,title,state,body,comments,labels,url. - Fixture mode: load
--issue-jsonand require--dry-run.
- Verify closeout readiness:
- `` exists.
- `` exists.
- `` exists.
- The execution-state marker and status fields are outside any collapsed `` block when the state comment uses the default
collapsed-ledger format.
- Latest execution state has
Status: complete. - Every latest execution-state task row is
doneor explicitlydeferred. - At least one `` comment exists and the latest session indicates completion.
- Validation evidence exists in a validation comment or execution session.
- The user supplied
--review-approvedor--review-comment-url. - Explicit linked PR references are merged unless
--skip-pr-checksis used. The parser acceptsPR #,
pull request #, and GitHub /pull/ links; generic issue, decision, task, and bare # references are not PR evidence.
- Render final issue body as a compact current dashboard. Do not copy the full source, plan, or sprint logs into the body; link the
durable snapshot/session comments instead.
- Render one append-only closeout comment with marker ``.
- In dry-run mode, write requested body/comment/report artifacts and print the planned actions without mutating GitHub.
- In
--repair-closedmode:
- Require the issue to already be closed and all other closeout gates to pass.
- Render and update only the final dashboard body.
- Do not post a new closeout comment unless
--finalize-closedis also supplied and no closeout marker exists. - With
--finalize-closed, append exactly one missing closeout marker before repairing the dashboard; if a marker already exists, do not
duplicate it.
- Do not call
gh issue close. - Report
mode=repair-closed/repair_only=true, ormode=repair-closed-finalize/finalized_closed_issue=true, in stdout and JSON.
- In normal live mode:
- Post the closeout comment first.
- Update the issue body dashboard, including the closeout comment URL when available.
- Close the issue with reason
completed.
- Report the final state, issue URL, linked PRs, validation summary, and any accepted caveats.
Relationship To Nearby Skills
plan-tracking-issue: creates the tracking issue and source/plan snapshot comments.execute-from-tracking-issue: executes the issue-backed plan and appends state/session/validation comments; it does not close by default.
Execution-state creation remains owned by execute-from-tracking-issue, not by closeout or repair mode.
issue-follow-up: use for generic GitHub issue timelines that are not tied to plan snapshot markers.- Shared issue lifecycle tool (
skills/workflows/issue/_shared/lib/manage_issue_lifecycle.sh): lower-level generic open/update/comment/close
operations.
dispatch-issue-closeout: use for heavyweight dispatch or plan-issue runtimes with task-lane close gates, approvals, and merged PR checks.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: graysurf
- Source: graysurf/agent-kit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.