Skip to content
Development
Skill

/get-it-done

Pursue an agreed goal to a working outcome without waiting: decompose it, re-prioritise as evidence arrives, branch, gate, get an independent review (a different model or a fresh reviewer subagent — the writer never approves), merge, prune, and bank the operator's decisions in

From plugin
join-the-team
1325 skills3 commands1 hook

Claude Code

$ npx -y skills add jpantsjoha/ai-native-developer-experience --skill get-it-done --agent claude-code

SKILL.md

get-it-done.SKILL.md
name: get-it-done
description: "Pursue an agreed goal to a working outcome without waiting: decompose it, re-prioritise as evidence arrives, branch, gate, get an independent review (a different model or a fresh reviewer subagent — the writer never approves), merge, prune, and bank the operator's decisions in STATUS.md instead of blocking on them. Trigger on \"get it done\", \"don't wait for me\", \"proceed autonomously\", or when an epic or roadmap objective is handed over. Not a close-out: this work set is expected to grow."

Get it done

**The planning, the talking, the debating are over. The plan is agreed — execute it.** Do not re-open scope, do not re-surface options already ruled on, do not ask for reassurance. The only reason to interrupt is a decision from the short "Theirs, always" list below; everything else is action.

The operator has left. **Finish the phase.** Do not stall on anything you can decide, evidence, or work around — and do not silently decide anything that is genuinely theirs.

The whole skill is one judgement: **what is mine to call, and what is theirs?** Get that wrong in the timid direction and the work sits idle for hours. Get it wrong in the reckless direction and you spend their money, their credibility, or their consent on a call they never made.

The boundary — this pursues a goal, it does not close a queue

The unit here is a **goal**: an epic, a roadmap objective, a phase, a thing that must end up *working*. The work set is derived from that goal and **is expected to grow** — you decompose, you discover, you re-prioritise as evidence arrives, and you update the delivery tracker as you go rather than at the end. Done means the goal is functional, not that a list is empty.

A close-out is the opposite shape: its work set is **frozen** at invocation and never grows, and it ends in a release advisory. If the operator asked you to close out what is in flight, do that job, not this one. Running this skill against a closing set is how a close-out quietly turns into a new sprint.

The contract

1. **Do not wait.** No "shall I proceed?", no "let me know". If you can act, act. 2. **Bank, don't block.** A decision that is genuinely theirs goes into `STATUS.md` with a recommendation — not into a message that stops the work. 3. **Land it.** A phase is not done because the code is written. It is done when it is merged to `main`, the branch and worktree are pruned, and the tracked documents match reality. 4. **Never fabricate authority.** Blanket "go" covers ordinary work. It does not convert into permission for the four things below.

Theirs, always — bank these, never assume them

Even under an explicit "don't wait for me":

  • **Money.** Raising a spending limit, a plan, a paid tier, a metered vendor.
  • **Consent, credentials, retention, permissions.** Anything a user agreed to,

anything that reads or keeps their data, anything holding a secret.

  • **One-way doors.** Tags, releases, published artefacts, external submissions,

force-pushes, deleting a ref whose commits are not reachable from the trunk.

  • **Self-approval of a governance record.** An ADR is never accepted by the

agent that wrote it. Draft it, evidence it, and flag it.

Everything else — ordinary code, tests, docs, refactors, issue filing, branch hygiene — is yours. Do it.

When a dependency is missing, route around it and say so

A blocked gate is not a reason to stop; it is a reason to substitute and record the substitution.

| Unavailable | Substitute | Record | |---|---|---| | Hosted CI (quota, outage, no runner) | Run the local equivalent of **each** required check | Name each check and its local equivalent, with exit codes | | Hosted code review (quota) | An independent reviewer: a different model or a fresh reviewer subagent | Which reviewer, what verdict, what it found | | The first reviewer unavailable | An alternative only within the project's authorised review policy; otherwise stop the affected gate | Availability, authority and unresolved evidence | | A required check that *cannot execute* | Merge on the local evidence if the repo permits it | **Say "past checks that could not run", never "past checks"** |

The distinction in that last row is the whole point. A check that failed and a check that could not start are different facts, and conflating them is how an unreviewed merge gets laundered into a reviewed one.

**Never route around a guard that exists to stop you.** A denied push, a protected branch, a consent gate — those are the operator's intent expressed in config. Routing around them is permission laundering, not resourcefulness.

The loop

For each unit of work:

1. **Branch.** Never commit to the trunk. 2. **Build**, with the project's own gates run as you go — not saved for the end. 3. **Prove it bites.** Break the source deliberately and confirm the test fails. A green suite you have not seen go red is a hypothesis. 4. **Review independently.** A fresh reviewer context running `pr-reviewer`, with optional provider diversity under local policy; `adversarial-gate` for design. Follow the [Council contract](../pr-reviewer/references/independent-council.md) for bounded loops. **The writer never approves the work.** If the candidate changes after review, the review is void — re-run it. 5. **Merge** using the project's authorised merge strategy after exact-candidate gates. 6. **Prune** only this lane's clean worktree and merged local/remote branch after verifying merged PR state and integration on main. Squash/rebase changes commit IDs; ancestry alone is insufficient. Run the read-only [lane hygiene report](../../scripts/lane_hygiene.py) (`--pr-state` where `gh` is available) and act only on this lane's `remove-candidate` rows. If integration or ownership is uncertain, preserve the work and explain why. Fetch and fast-forward clean main safely; never reset another lane's checkout or discard uncommitted/uninteg

Read more
@jpantsjoha
Ships withjoin-the-team

**Shared ways of working for you, your team and your AI agents — from a new idea to a change running live.** join-the-team brings planning, delivery and ticket management, model selection, testing, independent review and release practices into one reusable

Stars on GitHub

Momentum

stars in total
13
Star history of jpantsjoha/ai-native-developer-experience on GitHub, a chart by star-history.com

Other skills on join-the-team.

adk-expert

adk-expert

Google ADK (Agent Development Kit) orchestration patterns — boundaries, agent composition, and tool seams. Trigger when designing…

cloud-checkup

cloud-checkup

Read-only SRE checkup of any GCP project: deterministic probes of the edge, Cloud Run services, 7-day error logs, Cloud…

cloud-expert

cloud-expert

Cloud guardrails for any vendor workload — Google Cloud (GCP, Vertex AI, GKE), AWS (IAM, EKS, Bedrock), Azure (Entra ID, Policy,…

cost-guardrail

cost-guardrail

LLM and cloud cost awareness — model tiering, token budgets, right-sizing, and when a cheaper model suffices. Trigger before…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about get-it-done.

Which coding agents can use get-it-done?
get-it-done installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.