howarewoo/woostack

woostack-change

Use for a small bounded non-bug enhancement or refactor that can ship in one reviewable PR. Invoke via /woostack-change <goal>.

First seen Jul 15, 2026

Installation

$ npx skills add howarewoo/woostack --skill woostack-change

Also in this package

Other skills from howarewoo/woostack · top by installs.

npx skills add howarewoo/woostack

Browse all from howarewoo/woostack

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

License LICENSE
Default branch main
Open issues 24
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,512 B
  • docs SUMMARY.md 150 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 17 installs

SKILL.md

woostack-change

Implement one small, bounded, non-bug enhancement or refactor from the user's request through one isolated worktree and Graphite branch, ending in at most one complete reviewable PR. Change makes no provider call and invokes no other woostack workflow; it owns implementation and delivery directly. The accepted scope is the authority for the run; Git, Graphite, and GitHub are the delivery evidence.

Command

/woostack-change <goal>

Admit the request before mutation

Clarify only what is needed to identify the target, outcome, allowed paths, non-goals, acceptance criteria, and a focused verification plus changed-path smoke scenario. State the interpreted bounded scope and derive one stable task identity. Do not create a branch, worktree, or file change while classifying or clarifying.

Reject or reroute before any mutation:

  • a bug, regression, incident, production fault, or root-cause investigation goes to

[woostack-fix](../woostack-fix/SKILL.md);

  • work that needs multiple PRs, dependency increments, or coordinated phases goes to

[woostack-build](../woostack-build/SKILL.md); and

  • genuinely greenfield creation goes to [woostack-bootstrap](../woostack-bootstrap/SKILL.md).

Proceed only when the complete safe scope is a non-bug change that fits one PR. If the request expands later, stop and reroute rather than silently widening it.

Establish the bounded run

Keep the run contract explicit and current:

  • stable task identity, goal, target, allowed paths, non-goals, and acceptance criteria;
  • focused verification and changed-path smoke scenario;
  • integration base commit and intended Graphite parent; and
  • the current worktree, branch, head, and PR facts.

Keep this contract in the active run only. Do not create hidden workflow state; repository policy may inform safe defaults, but it cannot widen the accepted scope.

Create or resume one isolated workspace

Before changing a repository, resolve and independently read:

  1. the physical repository root, canonical remote, configured integration base, and exact base

commit;

  1. git worktree list --porcelain, local and remote branches and commits, complete status and

diff state, Graphite ancestry, and canonical GitHub PR state; and

  1. the deterministic task path, derived branch, parent, head, and any existing PR.

Require either no task state or one exact recoverable task state. Reject protected-primary edits, detached HEAD, duplicate worktrees or branches, unexplained dirty state, conflicting ancestry, scope drift, and collisions. Never reset, clean, stash, overwrite, or create around unexpected user work.

Create and assert one isolated worktree under the [canonical worktree contract](../woostack-init/references/worktrees.md#5-create-and-assert), with one Graphite-tracked branch whose parent is the verified integration base. When exact task, worktree, branch, parent, and head facts already exist, attach to that workspace and resume it; never create a duplicate.

Implement and verify

In the isolated workspace, implement every change needed for the accepted bounded scope and no other change. When touching new or materially changed inter-application boundaries, route wire/vendor data through app-local adapters, isolate transport errors, validate/narrow untrusted inputs, preserve wire/API compatibility, and provide focused mapping or round-trip tests plus affected boundary error-path coverage per the canonical [application-boundary adapters rule](../woostack-bootstrap/references/patterns.md#3-application-boundary-adapters); do not migrate untouched legacy boundaries or introduce no-op wrappers for shared identity contracts. Inspect the complete diff and changed paths. Run the focused verification and the changed-path smoke scenario, noting the commands and observed results. A failed or incomplete check blocks delivery; it does not authorize a scope expansion or a second workspace.

Deliver one PR

After verification succeeds, use Graphite to commit the complete diff and submit at most one PR. Never merge or force-push. Independently read back the exact repository, branch, parent, commit, changed paths, PR URL, PR head/base, and open state. The success boundary is one complete, reviewable PR with all requested bounded changes represented by the verified commit.

Remove the isolated worktree only after successful delivery and an independently verified clean worktree. Do not remove its branch or any user-owned checkout.

If implementation, verification, commit, submission, read-back, or cleanup fails, is blocked, or has an unknown outcome, retain the worktree. Return exact Git, Graphite, and GitHub resume evidence: repository and base, worktree path, branch and parent, head/commit, status and diff, verification results, and PR URL/state when known. On resume, reread those facts and continue at the first unproved boundary without duplicating a branch, commit, PR, or cleanup.

Return

Return the stable task identity, accepted scope, worktree and branch, base/parent, changed paths, verification and smoke results, commit SHA, canonical PR URL/head/base/state, and cleanup result. For a reroute or retained failure, return the destination or blocker and the exact safe resume boundary. Never claim evidence that was not directly observed.