/run-github-project
Use when asked to set up or repair a repository's GitHub Project configuration, reconcile Project epics or human checkpoints, triage Backlog work, plan and execute the next authorized issue, or drain authorized issues through implementation, review, merge, and reconciliation.
$ npx -y skills add chrisbanes/skills --skill run-github-project --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/run-github-project
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when asked to set up or repair a repository's GitHub Project configuration, reconcile Project epics or human checkpoints, triage Backlog work, plan and execute the next authorized issue, or drain authorized issues through implementation, review, merge, and reconciliation.
SKILL.md
run-github-project.SKILL.mdname: run-github-project
description: Use when asked to set up or repair a repository's GitHub Project configuration, reconcile Project epics or human checkpoints, triage Backlog work, plan and execute the next authorized issue, or drain authorized issues through implementation, review, merge, and reconciliation.
Run GitHub Project
Core Principle
Treat the Project as the live control plane. Require the readiness label and a human-authorized Planning transition, preserve that authority through contract-preserving re-plans, and return true human work to Backlog.
Park dependency-blocked Backlog items. After authorized execution is empty, route unblocked `needs-triage` items through the unchanged `triage` approval gate without manufacturing Planning authority.
Treat configured epics and human work as a separate live frontier. Reconcile a bare epic only after its native dependencies close and issue-close authority is present. Surface every currently actionable human step without assigning it or pausing independent work. Return `waiting-for-human` when that frontier is the only work left.
Pair each occupied slot with one warm worktree and one persistent ticket agent. Run independent slot agents concurrently in `drain`. Keep claims, shared Project state, merges, and reconciliation in one controller lane while each ticket agent owns its worktree, branch, and non-merge PR mutations. Preserve context across one ticket's passes; never reuse it for another. After bounded ticket-local required-CI repair fails, park the preserved claim outside implementation capacity, refresh the live control plane, and continue unrelated work.
Select The Mode
Select and record the mode before checking execution preconditions:
- Use `setup` only when the user explicitly asks to set up, configure, validate,
or repair the repository binding without running Project work.
- Use `next` by default for execution and process at most one selected issue.
- Use `drain` only when the user explicitly asks to drain, run all, repeat, or
continue until empty.
In `setup`, follow [Configure The Project](#configure-the-project) plus the read-only retry, pagination, unknown-state, and bounded-failure rules in [Handle GitHub Access Failures](#handle-github-access-failures). Discard a partial logical read and report `configuration-blocked` when a complete live configuration read cannot be established. Never apply mutation-reconciliation rules because setup permits no remote mutation.
Perform the repository, authentication, Project, field, label, branch, automation, and cutover reads needed to produce and validate the configuration. Do not require `tdd`, `to-plan`, `triage`, review providers, merge authority, issue-close authority, an execution-clean worktree, or ticket-agent capacity. Never rank or claim work; assign or transition an issue; mutate a Project item, issue, or PR; create a ticket worktree; plan or implement a ticket; push; or merge. Finish `configuration-valid` only when the verified base contains the live-validated pair. Finish `configuration-ready-to-commit` when the validated pair is not on the verified base, whether it is uncommitted or committed only on another branch. Otherwise finish `configuration-blocked`. Never continue into [Check Preconditions](#check-preconditions).
Configure The Project
Read `docs/agents/run-github-project.md` through the closest trusted `AGENTS.md` or `CLAUDE.md`. Require the trusted instructions to reference that file explicitly. Use [references/project-config.md](references/project-config.md) as its structure. Require:
- repository identity, default and base branches, and issue-closure policy;
- Project owner, number, URL, and node ID;
- Status field name and ID plus Backlog, Planning, Ready to implement, In
progress, and Done option names and IDs;
- the exact repository label mapped to the `needs-triage` role;
- the exact repository label name and ID mapped to the epic work shape;
- the exact repository label name and ID mapped to the human-work role;
- Priority field name and ID plus option names and IDs in descending order;
- execution-approver GitHub logins allowed to authorize Planning;
- an optional trusted Project filter expression;
- the repository merge method or merge-queue policy;
- the expected Done automation and whether it archives the Project item.
Store names beside IDs and verify every pair at startup. Treat a renamed name as repairable drift; stop if an ID resolves to a different object. Never create or rename Project fields or options. Apply the clean-cutover gate in [references/planning-lane.md](references/planning-lane.md) before accepting the new schema. Permit `closing-keyword` only when the configured base is the current default branch; require `close-after-merge` otherwise.
If the file is missing or the trusted instructions do not reference it, discover the repository's linked Projects and their fields, then ask the user unresolved questions one at a time. Present the complete configuration draft and the minimal trusted-instruction reference together. Write both only after confirmation, preserving comments, formatting, and unrelated content. If either already exists, show and apply only the missing or stale portion.
Creating or repairing either file pauses `next` or `drain` until both are committed to the verified base. Do not commit them implicitly. In `setup`, validate the written pair against live state and finish `configuration-ready-to-commit`; if the user explicitly authorizes a dedicated configuration commit, make only that commit and verify whether the base contains both files. Finish `configuration-valid` when it does; otherwise finish `configuration-ready-to-commit` with the exact commit and missing-base evidence. Do not run Project work. In `next` or `drain`, continue the same invocation only after the user commits them or explicitly authorizes a dedicated configuration commit and the base contains both.
Record the
Read more
name: run-github-project description: Use when asked to set up or repair a repository's GitHub Project configuration, reconcile Project epics or human checkpoints, triage Backlog work, plan and execute the next authorized issue, or drain authorized issues through implementation, review, merge, and reconciliation.
Run GitHub Project
Core Principle
Treat the Project as the live control plane. Require the readiness label and a human-authorized Planning transition, preserve that authority through contract-preserving re-plans, and return true human work to Backlog.
Park dependency-blocked Backlog items. After authorized execution is empty, route unblocked `needs-triage` items through the unchanged `triage` approval gate without manufacturing Planning authority.
Treat configured epics and human work as a separate live frontier. Reconcile a bare epic only after its native dependencies close and issue-close authority is present. Surface every currently actionable human step without assigning it or pausing independent work. Return `waiting-for-human` when that frontier is the only work left.
Pair each occupied slot with one warm worktree and one persistent ticket agent. Run independent slot agents concurrently in `drain`. Keep claims, shared Project state, merges, and reconciliation in one controller lane while each ticket agent owns its worktree, branch, and non-merge PR mutations. Preserve context across one ticket's passes; never reuse it for another. After bounded ticket-local required-CI repair fails, park the preserved claim outside implementation capacity, refresh the live control plane, and continue unrelated work.
Select The Mode
Select and record the mode before checking execution preconditions:
- Use `setup` only when the user explicitly asks to set up, configure, validate,
or repair the repository binding without running Project work.
- Use `next` by default for execution and process at most one selected issue.
- Use `drain` only when the user explicitly asks to drain, run all, repeat, or
continue until empty.
In `setup`, follow [Configure The Project](#configure-the-project) plus the read-only retry, pagination, unknown-state, and bounded-failure rules in [Handle GitHub Access Failures](#handle-github-access-failures). Discard a partial logical read and report `configuration-blocked` when a complete live configuration read cannot be established. Never apply mutation-reconciliation rules because setup permits no remote mutation.
Perform the repository, authentication, Project, field, label, branch, automation, and cutover reads needed to produce and validate the configuration. Do not require `tdd`, `to-plan`, `triage`, review providers, merge authority, issue-close authority, an execution-clean worktree, or ticket-agent capacity. Never rank or claim work; assign or transition an issue; mutate a Project item, issue, or PR; create a ticket worktree; plan or implement a ticket; push; or merge. Finish `configuration-valid` only when the verified base contains the live-validated pair. Finish `configuration-ready-to-commit` when the validated pair is not on the verified base, whether it is uncommitted or committed only on another branch. Otherwise finish `configuration-blocked`. Never continue into [Check Preconditions](#check-preconditions).
Configure The Project
Read `docs/agents/run-github-project.md` through the closest trusted `AGENTS.md` or `CLAUDE.md`. Require the trusted instructions to reference that file explicitly. Use [references/project-config.md](references/project-config.md) as its structure. Require:
- repository identity, default and base branches, and issue-closure policy;
- Project owner, number, URL, and node ID;
- Status field name and ID plus Backlog, Planning, Ready to implement, In
progress, and Done option names and IDs;
- the exact repository label mapped to the `needs-triage` role;
- the exact repository label name and ID mapped to the epic work shape;
- the exact repository label name and ID mapped to the human-work role;
- Priority field name and ID plus option names and IDs in descending order;
- execution-approver GitHub logins allowed to authorize Planning;
- an optional trusted Project filter expression;
- the repository merge method or merge-queue policy;
- the expected Done automation and whether it archives the Project item.
Store names beside IDs and verify every pair at startup. Treat a renamed name as repairable drift; stop if an ID resolves to a different object. Never create or rename Project fields or options. Apply the clean-cutover gate in [references/planning-lane.md](references/planning-lane.md) before accepting the new schema. Permit `closing-keyword` only when the configured base is the current default branch; require `close-after-merge` otherwise.
If the file is missing or the trusted instructions do not reference it, discover the repository's linked Projects and their fields, then ask the user unresolved questions one at a time. Present the complete configuration draft and the minimal trusted-instruction reference together. Write both only after confirmation, preserving comments, formatting, and unrelated content. If either already exists, show and apply only the missing or stale portion.
Creating or repairing either file pauses `next` or `drain` until both are committed to the verified base. Do not commit them implicitly. In `setup`, validate the written pair against live state and finish `configuration-ready-to-commit`; if the user explicitly authorizes a dedicated configuration commit, make only that commit and verify whether the base contains both files. Finish `configuration-valid` when it does; otherwise finish `configuration-ready-to-commit` with the exact commit and missing-base evidence. Do not run Project work. In `next` or `drain`, continue the same invocation only after the user commits them or explicitly authorizes a dedicated configuration commit and the base contains both.
Record the
A set of skills for Kotlin, Jetpack Compose, and Android development.
Repo: chrisbanes/skills
Other skills on chrisbanes-skills.
- /compose-animations
Use when writing or reviewing Jetpack Compose motion: visibility enter/exit, animating one property toward a target, color or size transitions, multiple properties from one state, switching composable content, or choosing between AnimatedVisibility, animate*AsState,
Open skill - /compose-component-design
Use when designing or reviewing reusable Jetpack Compose component APIs with modifier parameters, root layout placement, caller-provided variable content, primitive content parameters, optional content, or boolean shape flags.
Open skill - /compose-focus-navigation
Use when writing or reviewing Jetpack Compose UI for TV, keyboard, desktop, accessibility focus, D-pad navigation, FocusRequester, focusProperties, key events, or initial focus behavior.
Open skill - /compose-performance
Use when investigating Jetpack Compose recomposition cost, compiler stability reports, skippability, unstable parameters, frame-rate State reads, cross-phase snapshot back-writing, or @ReadOnlyComposable contracts.
Open skill - /compose-state-and-effects
Use when writing or reviewing Jetpack Compose state ownership, remember state, state hoisting, screen state holders, LaunchedEffect, DisposableEffect, SideEffect, Flow collection, navigation, snackbar, analytics, or focus requests.
Open skill - /compose-ui-testing-patterns
Use when writing or reviewing Jetpack Compose UI tests, screenshot tests, previews, semantics assertions, fake image loading, keyboard input, focus assertions, interaction state (hover/pressed/focused), or tests for plain state-driven UI composables.
Open skill

