test-loop-bootstrap
Pick the right next skill. The five other skills are pieces of one loop; this skill is the door.
When to use
When a user asks for help with testing, CI, or quality on a project and it is not obvious which of the five concrete skills to start with.
If you already know the user wants, say, drift detection, call drift-check directly. Do not use this meta-skill as an indirection layer.
Inputs
A free-form description of where the project is now. Examples:
- "I just started a new Swift project and I want to set up testing."
- "I have a Python project that already has pytest but no CI."
- "My existing tests pass but I don't trust them — I want to know they actually run."
- "Someone added a public function and I want to know if it broke anything."
Decision tree
Q1: Does the project have at least one of:
- a pre-commit hook calling scripts/check_drift.sh
- a CI workflow calling swift test / pytest / etc.
- a docs/knowledge/ directory
--> If no: start with [init-loop]
--> If yes: continue to Q2
Q2: Did something just change in the public API (a new struct, function,
class, or trait)?
--> If yes: run [drift-check] now
--> If no: continue to Q3
Q3: Did the test suite just run, and did it produce at least one
failure?
--> If yes: run [failure-classify], then [report-render]
--> If no: continue to Q4
Q4: Have you (or anyone on the team) edited the loop tools
(scripts/*.sh, scripts/*.py, .githooks/*, .github/workflows/*)
in the last week?
--> If yes: run [drill] to verify the loop still reacts
--> If no: continue to Q5
Q5: When is the last time [drill] was run?
--> > 30 days: run [drill] as a regression check
--> <= 30 days: stop. The loop is healthy. No skill needed.
Output
One of:
[init-loop][drift-check][failure-classify] + [report-render][drill]- "no skill needed; the loop is healthy"
In addition, the skill should briefly state why it chose what it chose, so the user can override.
Anti-patterns
- Routing every request through this skill. If the user already named a skill, call it. This skill is for undecided situations.
- Adding more branches to the decision tree. The five Q&As already cover the realistic states. Adding a sixth tends to increase router complexity without improving routing accuracy.
- Recommending [drill] on a project that does not yet have the loop. The drill requires the loop to be installed. If the answer to Q1 is "no", go to [init-loop] first.