From lineup
Use this skill to execute the current At Bat slot in an active lineup. Trigger on phrases like 'do the at-bat', 'run the at-bat', 'play the at-bat', 'step up to the plate', 'next play', 'implement what's at-bat', or whenever the user wants to actually do the work the lineup has already sharpened. Reads the current at-bat file, writes the failing test (red), implements until it passes (green), verifies scope, and moves the file to completed/. Never auto-invokes lineup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lineup:at-batThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Implements the unit of work described in the current At Bat file. Pairs
Implements the unit of work described in the current At Bat file. Pairs
with the lineup skill, which sharpens the next at-bat. This skill does
the work. The two are deliberately separate so the user drives the loop.
This skill is a rigid TDD skill. Red → Green is not negotiable when the at-bat has a Test plan section.
If the at-bat's Test plan section says "No automated test", run the manual verification steps explicitly (or ask the user to) and record the outcome. Do NOT skip verification just because there's no automated test.
lineup. The user calls the next play.Create a task for each item and complete in order:
.spitball.json (or use defaults)
to get saveDir. Scan immediate children of saveDir for folders
that contain lineup.md without a Status: Complete marker.
lineup (or spitball first if no
spitball exists).lineup.md. If the
At Bat slot is empty (no pointer), tell the user to run lineup
first to sharpen one.NNN-<slug>.md referenced
by the At Bat pointer. Confirm it has the required sections: What,
Definition of done, Test plan, Scope boundary, Dependencies.completed/. If a dependency
isn't met, stop and tell the user.## Verification header.completed/. Use git mv so history is preserved.
The filename does not change; only its location.autoCommit is true (default). One commit covering
the implementation, the test, and the file move. Suggested message:
At-bat NNN: <slug>.lineup to sharpen the next one. Do NOT invoke lineup.Before committing, ask yourself:
If yes to any, revert those changes. They are not part of this at-bat. If they're worth doing, surface them to the user — the reviewer can add them as future bullets.
digraph atbat {
"Discover active lineup" [shape=box];
"Has At Bat pointer?" [shape=diamond];
"Tell user to run lineup" [shape=doublecircle];
"Read at-bat file" [shape=box];
"Dependencies met?" [shape=diamond];
"Stop, report missing dep" [shape=doublecircle];
"Test plan?" [shape=diamond];
"Red: write failing test" [shape=box];
"Confirm test fails" [shape=box];
"Green: implement to pass" [shape=box];
"Test passes?" [shape=diamond];
"Iterate implementation" [shape=box];
"Verify scope boundary" [shape=box];
"Manual verification" [shape=box];
"git mv to completed/" [shape=box];
"Commit if autoCommit" [shape=box];
"Hand back to user" [shape=doublecircle];
"Discover active lineup" -> "Has At Bat pointer?";
"Has At Bat pointer?" -> "Tell user to run lineup" [label="no"];
"Has At Bat pointer?" -> "Read at-bat file" [label="yes"];
"Read at-bat file" -> "Dependencies met?";
"Dependencies met?" -> "Stop, report missing dep" [label="no"];
"Dependencies met?" -> "Test plan?" [label="yes"];
"Test plan?" -> "Red: write failing test" [label="red/green"];
"Test plan?" -> "Green: implement to pass" [label="no automated test"];
"Red: write failing test" -> "Confirm test fails";
"Confirm test fails" -> "Green: implement to pass";
"Green: implement to pass" -> "Test passes?";
"Test passes?" -> "Iterate implementation" [label="no"];
"Iterate implementation" -> "Test passes?";
"Test passes?" -> "Verify scope boundary" [label="yes"];
"Verify scope boundary" -> "Manual verification";
"Manual verification" -> "git mv to completed/";
"git mv to completed/" -> "Commit if autoCommit";
"Commit if autoCommit" -> "Hand back to user";
}
Read .spitball.json from the repo root. Use:
saveDir — directory containing spitball folders. Defaults to
docs/spitballs/.autoCommit — whether to commit the work after completion. Defaults
to true.There is no .lineup.json. Lineup and at-bat share spitball's config.
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
npx claudepluginhub robmt/claude-tools --plugin lineup