agentleFS
simscalsimscal/sapiens-dtj/.claude/skills/github/SKILL.md

github

Skill0 starsChanged 4 months agoMITView on GitHub

Use for GitHub issue and project-board operations. Owns the issue + project-board surface — issues (create/read/update/close), comments, labels, the board (status, type, sprint, drafts), sprint-context loading, and completion notifications. Confirms before mutating ops.

166 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use taskflow-inbox-triage, BlueBubbles and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AtomicBot-aiSkill

    taskflow-inbox-triage

    Also in 6 projects that use this

  • jiulingyunSkill

    BlueBubbles

    为Clawdbot构建或更新BlueBubbles外部通道插件(扩展包,REST发送/探测,webhook入站)。

    Also in 20 projects that use this

  • hkyutongSkill

    node-connect

    Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.

    Also in 18 projects that use this

  • molt-botSkill

    discord-e2e

    Test Discord with Convex-leased QA bots: check credentials without a Gateway, exercise owned messages, or prove OpenClaw replies, files, threads, reactions, streaming, and typing. Distinguish API and Gateway evidence from manual user interactions.

    Also in 10 projects that use this

  • molt-botSkill

    openclaw-repair-sweep

    Run scoped OpenClaw issue/PR repair campaigns: coordinate workers, prove root causes, and land or close verified work under the requested authority.

    Also in 10 projects that use this

  • clawdbotSkill

    openclaw-performance

    Performance work in OpenClaw: a slow or heavy flow (latency, CPU, memory, SQL, RPC, renders), writing or reviewing a perf PR, or adding a cache. Count the work, delete waste first, cache last.

    Also in 7 projects that use this

  • +2 more from molt-bot

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 151 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before any mutating op: summarise all planned mutations in one block, ask once "Proceed?

    line 20
  2. Distinctive:

    Skip: read-only ops (read issue, list issues, board reads — list sprint, list drafts, resolve active sprint).

    line 22
  3. Distinctive:

    Always confirm: create issue, update issue body, update labels, post comment, close issue, update comment, board mutations (set status / …

    line 23
  4. Distinctive:

    Read the issue first (Fetch Issue), modify, then write.

    line 39
  5. Distinctive:

    After creating an issue, add it and set its fields (Sprint for sprint-scoped work — stories, TDD, requirement, in-sprint bugs, in-sprint …

    line 83

“Common” is measured: kept by at least 6 in 10 of the 151 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Repo Derivation

Derive at runtime, never hardcode; hold for the session. Run from the relevant repo root:

  • Issues/board/stories/TDD/design -> orchestration repo.
  • PRs/branches -> codebase directory (path from the Codebases table).
gh repo view --json owner,name --jq '[.owner.login,.name]|join("/")'

Confirmation Protocol

Before any mutating op: summarise all planned mutations in one block, ask once "Proceed? (y/n)", proceed only if confirmed.

  • Skip: read-only ops (read issue, list issues, board reads — list sprint, list drafts, resolve active sprint).
  • Always confirm: create issue, update issue body, update labels, post comment, close issue, update comment, board mutations (set status / type / sprint, add issue to board, create draft, delete item).
  • Exception: board status transitions and self-assignment (Assign Issue) that a command performs as a documented side effect of an already-confirmed mutation (e.g. Notify Implementation Complete) need no second confirmation.

Operations

Link Reference

Format: #id (e.g. #17) — use in issue bodies and comments.

Fetch Issue

  • gh issue view {id} --repo {owner}/{repo} --json title,body,labels,comments

Create Issue

  • gh issue create --repo {owner}/{repo} --title "{title}" --body "{body}" --label {label} — returns new issue URL.
  • Sprint membership and lifecycle state live on the project board, not the issue — after creating, register the issue on the board (see Project Board).

Update Issue Body

  • Read the issue first (Fetch Issue), modify, then write.
  • gh issue edit {id} --repo {owner}/{repo} --body "{body}"

Update Labels

  • gh issue edit {id} --repo {owner}/{repo} --add-label {add} --remove-label {remove} — no read needed; omit either flag to skip that side.

Assign Issue

  • gh issue edit {id} --repo {owner}/{repo} --add-assignee @me — assigns the authenticated user; @me resolves at runtime, never hardcode a login.

Post Comment

  • gh issue comment {id} --repo {owner}/{repo} --body "{body}"

Update Comment

  • gh api repos/{owner}/{repo}/issues/comments/{comment_id} --method PATCH -f body="{body}"

List Open Issues

  • gh issue list --repo {owner}/{repo} --state open --label {label} --json number,title,labels

Close Issue

  • gh issue close {id} --repo {owner}/{repo}

Project Board (Projects v2)

Board = single tracking surface:

  • Status replaces lifecycle labels.
  • Sprint (single-select) replaces milestones.
  • Type (Feature / Refactor / Bug) classifies items.

All board ops -> .claude/scripts/board.sh. Resolves project by title + field/option IDs by name at runtime, caching to gitignored .claude/state/board.json (auto-refreshed on lookup miss + after sprint-option mutations — never edit or commit it). Needs project token scope; scope failure → surface gh auth refresh -s project --hostname github.com. No board → surface that the project board isn't provisioned yet.

Status lifecycle: Backlog (captured draft) → Todo (issue filed) → In Progress (implement start) → Implemented (PRs open, awaiting merge) → Done (released + closed).

Resolve Active Sprint

  • bash .claude/scripts/board.sh current-sprint — prints the highest Sprint N that still has active (non-Done) work → $SPRINT_N from its number.
  • Script halts if none: ⛔ No active sprint on the board.

Next Sprint Number

  • bash .claude/scripts/board.sh next-sprint-number — prints max(N)+1.

Ensure Sprint

  • bash .claude/scripts/board.sh ensure-sprint {N} — appends the Sprint N option if missing. Idempotent.

Register Issue on Board

After creating an issue, add it and set its fields (Sprint for sprint-scoped work — stories, TDD, requirement, in-sprint bugs, in-sprint refactors; standalone refactors and production bugs get none):

  • bash .claude/scripts/board.sh add-issue {id}
  • bash .claude/scripts/board.sh set-type {id} {Feature|Refactor|Bug}
  • bash .claude/scripts/board.sh set-status {id} Todo
  • bash .claude/scripts/board.sh set-sprint {id} "Sprint N" (sprint-scoped work only)

Set Board Status

  • bash .claude/scripts/board.sh set-status {id} {Backlog|Todo|In Progress|Implemented|Done} — self-healing: adds the issue to the board first if absent.

List Sprint Items

  • bash .claude/scripts/board.sh list-sprint "Sprint N" [--open-only] — JSON [{number, title, labels, status, type, state}].

Create Backlog Draft

  • bash .claude/scripts/board.sh set-draft "{title}" "{body}" {Type} — draft item, Status=Backlog. Prints item ID.

List Backlog Drafts

  • bash .claude/scripts/board.sh list-drafts — JSON [{id, title, body, type, status}].

Delete Board Item

  • bash .claude/scripts/board.sh delete-item {item-id} — used after promoting a draft.

Load Sprint Snapshot

Resolve Active Sprint → list-sprint "Sprint N" --open-only once (closed issues = out of sprint scope) → partition in memory → read all present partitions in parallel:

  • $STORIES — open issues labelled user-story. Read each in full.
  • $REQUIREMENT — single open issue labelled requirement. May be absent.
  • $TDD — single open issue whose title contains Technical Design Document. Read in full. May be absent.
  • $DESIGN — design hub comment on $REQUIREMENT (body starts ## Design Navigation); its Surfaces table links each surface's Storybook story file. Resolve via $REQUIREMENT's comments — design is a comment, never a labelled issue. May be absent. Callers read the linked story files for surfaces they need.

Notify Implementation Complete

Two mandatory mutations on issue #ISSUE_NUMBER — run both, never stop after the comment.

Step 1 — Post or update completion comment

Fetch comments (gh issue view {id} --repo {owner}/{repo} --json comments). One starts with ## Refactor Complete, ## Implementation Complete, or ## Revert Ready → update via Update Comment (don't post new). Else → Post Comment.

Pick mode (refactor / revert / implementation) + variant:

  • Single-PR — one PR.
  • Multi-PR — one bullet per PR, labelled by codebase name from the Codebases table (e.g. api, web, infrastructure) — never hardcode Backend/Frontend.

Substitute every <pr-url> with the actual URL.

Refactor — single-PR:

## Refactor Complete

- PR: <pr-url>

---
> ⏸ Human gate: Review the PR diff. When approved, merge the PR into its base — `main` for a standalone refactor, or the sprint branch for an in-sprint refactor.

Refactor — multi-PR (one bullet per codebase):

## Refactor Complete

- <codebase-name>: <pr-url>
- <codebase-name>: <pr-url>

---
> ⏸ Human gate: Review all PR diffs. When approved, merge the PRs into their base — `main` for a standalone refactor, or the sprint branch for an in-sprint refactor.

Revert — single-PR:

## Revert Ready

Story #<ISSUE_NUMBER> was removed from scope. Implementation has been reversed.

- Revert PR: <revert-pr-url>

---
> ⏸ Human gate: Review the revert PR diff. When approved, merge into the sprint branch.

Revert — multi-PR:

## Revert Ready

Story #<ISSUE_NUMBER> was removed from scope. Implementation has been reversed across all codebases.

- <codebase-name> revert PR: <revert-pr-url>
- <codebase-name> revert PR: <revert-pr-url>

---
> ⏸ Human gate: Review all revert PR diffs. When approved, merge into the sprint branch.

Implementation — single-PR:

## Implementation Complete

- PR: <pr-url>

---
> ⏸ Human gate: Review the PR diff. When approved, merge into the staging branch.

Implementation — multi-PR:

## Implementation Complete

- <codebase-name>: <pr-url>
- <codebase-name>: <pr-url>

---
> ⏸ Human gate: Review all PR diffs. When approved, merge into the staging branch.

Step 2 — Update board status

Via Set Board Status (implementation and refactor modes; skip for revert):

bash .claude/scripts/board.sh set-status {ISSUE_NUMBER} Implemented

Step 3 — Confirm

Output a single line listing the PR URL(s) for the orchestrator's summary.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.