do-it — Prompts
Verbatim Excerpt 1: do-it-router/SKILL.md (Integrity + Anti-Cover-Up)
Prompting technique: Integrity-first routing; anti-cover-up taxonomy; dimensional analysis before tier
## Integrity
A failure, error, surprising result, or red flag is a clue to investigate — not an obstacle to make disappear. When something does not work:
1. Trace it to a root cause before changing anything.
2. Never make a symptom vanish without explaining it. These are cover-ups, not fixes:
- swallowing an exception or emptying a `catch`;
- weakening, loosening, or deleting an assertion so a check passes;
- deleting, skipping, or `xfail`-ing a failing test instead of fixing the cause;
- commenting out failing code or returning early past it;
- adding a fallback or default that hides why the primary path failed;
- editing the evidence (expected output, snapshot, fixture) instead of the behavior.
3. Report honestly. "I could not verify X" or "this still fails because Y" is a correct, useful answer; a false "done" is a defect.
Verbatim Excerpt 2: do-it-router/SKILL.md (DIM Dimensions)
Prompting technique: Boolean dimensional analysis as router metadata; hook-layer vs agent-layer separation
## Orthogonal Dimensions
In addition to the single tier label, the router writes 5 boolean dimensions into per-session state:
| Dimension | Set when |
|---|---|
| `dim_touches_code` | prompt names a file path, extension, fenced snippet, or curated technical noun |
| `dim_crosses_packages` | ≥ 2 distinct top-level path segments named |
| `dim_breaks_interface` | prompt mentions breaking change, schema/API rewrite, endpoint rename/delete/deprecate |
| `dim_needs_tdd` | prompt names behaviour-modifying intent AND a code object |
| `dim_needs_review_loop` | tier is Heavy OR `dim_breaks_interface=1` |
DIM values live in per-session state written by the router. Two consumption paths:
- **Hook layer**: reads via `do_it_session_state_get "$SESSION_ID" <key>` in hooks/lib/common.sh
- **Agent layer**: agents judge from prompt content, not DIM state files
Verbatim Excerpt 3: hooks.json (Automatic Hook Firing)
Prompting technique: Every prompt automatically routed and truth-checked; every write automatically linted
{
"hooks": {
"UserPromptSubmit": [
{"type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/router.sh", "timeout": 25},
{"type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/grill-prompt.sh", "timeout": 25}
],
"PreToolUse": [
{"matcher": "Edit|Write|MultiEdit",
"hooks": [{"type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/grill-pretool.sh", "timeout": 10}]}
],
"PostToolUse": [
{"matcher": "Edit|Write|MultiEdit|NotebookEdit",
"hooks": [
{"command": "${CLAUDE_PLUGIN_ROOT}/hooks/code-map-refresh.sh"},
{"command": "${CLAUDE_PLUGIN_ROOT}/hooks/comments-lint.sh"},
{"command": "${CLAUDE_PLUGIN_ROOT}/hooks/anti-patterns-lint.sh"}
]}
],
"Stop": [{"hooks": [{"command": "${CLAUDE_PLUGIN_ROOT}/hooks/verification-gate.sh"}]}]
}
}