소스 정보
- 저장소
- joshsymonds/gambit
- 최근 소스 활동
- 2026년 8월 19일 16:54
- 감지된 SKILL.md 언어
- 영어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/joshsymonds/gambit --skill refactoring명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Turns a rough idea into an approved epic contract with immutable requirements, anti-patterns, and a first wave of executable tasks.
Turns a rough idea into an approved epic contract with immutable requirements, anti-patterns, and a first wave of executable tasks.
Executes an approved epic one wave at a time, dispatching a worker per task and stopping at a checkpoint after each wave. Use when an approved epic contract and native wave plan exist in the current root session, when resuming work after a previous checkpoint, or when iteratively building a feature and execution learnings require a later wave. User phrases like "continue the plan", "next wave", "resume where we left off", "pick up the epic".
| name | refactoring |
| description | Restructures code that already has a green test suite, without changing behavior. |
| when_to_use | Use this implementation mechanic to restructure covered code without changing behavior only when explicitly invoked by name or called by an active Gambit workflow owner; do not select it implicitly as a peer workflow. |
Freedom: MEDIUM — adapt refactoring patterns to the language and codebase. Fixed: the change→test→commit cycle, and never proceed with failing tests.
Refactoring changes code structure without changing behavior. Tests must stay green throughout, or you're rewriting, not refactoring.
Core principle: Change → Test → Commit. Repeat until complete. Tests green at every step.
Iron Law: NO changes without passing tests BEFORE and AFTER. Tests fail? STOP. Undo. Make a smaller change. "I'll test at the end" = you're not refactoring. No exceptions.
| Step | Action | STOP If |
|---|---|---|
| 1 | Verify tests pass BEFORE starting | Any test fails |
| 2 | Create refactoring Task | - |
| 3 | Make ONE small change | Doesn't compile |
| 4 | Run tests immediately | Any test fails |
| 5 | Commit with descriptive message | - |
| 6 | Repeat 3-5 until complete | Tests fail → undo |
| 7 | Final verification | - |
| 8 | Mandatory review | Review fails |
| 9 | Close Task | - |
Core cycle: Change → Test → Commit (repeat)
If tests fail: STOP. Undo change. Make smaller change. Try again.
Don't use for:
gambit:executing-plans)gambit:debugging)gambit:test-driven-development)Before the first test dispatch, Resolve the test-runner role through contracts/models.md to its
rung, and retain that rung for every test-runner call in this refactoring. A model rung uses the
general-purpose dispatch examples below with model: set to the rung's alias; an agent rung uses
the rung's agent and passes no model: at all. The command, the report requirement, and the
no-edits rule are the same on either shape.
BEFORE any refactoring:
Agent
subagent_type: "general-purpose" # model rung; an agent rung uses the rung's agent
model: "<test-runner rung alias — contracts/models.md>" # omit entirely on an agent rung
description: "Run test suite"
prompt: "Run: [test command for this project]. Report pass/fail counts and any failures. Make no edits."
ALL tests must pass.
Failing tests mean you can't detect if refactoring breaks things.
TaskCreate
subject: "Refactor: [specific goal]"
description: |
## Goal
[What structure change you're making]
## Why
- [Reason: duplication, complexity, etc.]
## Approach
1. [Transformation 1]
2. [Transformation 2]
3. [Transformation 3]
## Success Criteria
- [ ] All existing tests still pass
- [ ] No behavior changes
- [ ] Code is cleaner/simpler
- [ ] Each commit is small and safe
activeForm: "Refactoring code"
Then: TaskUpdate taskId: "[id]" status: "in_progress"
The smallest transformation that compiles.
Examples of "small":
NOT small:
The test: If you can't describe the change in one sentence, it's too big. Split it.
After EVERY small change:
Agent
subagent_type: "general-purpose" # model rung; an agent rung uses the rung's agent
model: "<test-runner rung alias — contracts/models.md>" # omit entirely on an agent rung
description: "Run test suite"
prompt: "Run: [test command for this project]. Report pass/fail counts and any failures. Make no edits."
ALL tests must still pass.
If tests fail: undo only what this step changed, never the whole tree.
This only works from a clean baseline. Step 1 requires green tests and Step 5 commits after every
green change, so at the start of each step HEAD matches the worktree and is your floor. If the
tree was already dirty when the step began, stop and report — you cannot separate your edits
from the pre-existing ones.
HEAD):
git restore --source=HEAD --worktree -- path/one path/twoHEAD entry, so restore will not remove
them and will fail the whole command if you list one. Delete them individually instead.Name every path explicitly. git checkout -- . and git restore . discard every uncommitted
change in the worktree — including a concurrent worker's output when this refactoring runs inside
an executing-plans wave — and are unrecoverable.
Then:
Never proceed with failing tests.
Commit each safe transformation:
git add [changed files]
git commit -m "refactor: [one-sentence description of transformation]"
Why commit so often:
Repeat steps 3-5 for each small transformation. Track progress:
1. Extract validateEmail() → test → commit ✓
2. Extract validateName() → test → commit ✓
3. Move validations to new file → test → commit ✓
Pattern: change → test → commit (repeat)
After all transformations complete:
Agent
subagent_type: "general-purpose" # model rung; an agent rung uses the rung's agent
model: "<test-runner rung alias — contracts/models.md>" # omit entirely on an agent rung
description: "Run full test suite and linter"
prompt: "Run: [test command] && [lint command]. Report all results. Make no edits."
Checklist:
Review the changes:
git log --oneline | head -10
git diff [start-sha]..HEAD
After final verification passes, invoke gambit:review:
Skill skill="gambit:review"
Do not skip review for "simple" refactorings. Do not tell the user to run it manually — invoke it and follow its process immediately. Review validates the refactoring didn't introduce regressions, security issues, or quality problems.
After review passes:
TaskUpdate
taskId: "[task-id]"
description: |
## Completed
- [List of transformations made]
- All tests pass (verified)
- No behavior changes
- N small transformations, each tested
- Review: APPROVED
status: "completed"
Rule: If you need to change test assertions (not just add tests), you're rewriting, not refactoring.
If the user explicitly asks to batch changes or skip steps:
See REFERENCE.md for detailed good/bad examples including:
This skill requires:
gambit:test-driven-development to write tests first if none exist)gambit:verification (for final verification)contracts/models.md) for running testsCalled by:
Calls:
gambit:test-driven-development (if tests need writing first)gambit:verification (final check)gambit:review (mandatory, after final verification passes)Workflow:
Want to improve code structure
↓
Step 1: Verify tests pass
↓
Step 2: Create Task
↓
Steps 3-6: Change → Test → Commit (repeat)
↓
Step 7: Final verification
↓
Step 8: Mandatory review
↓
Step 9: Close Task