From asi
Detects placeholder tokens like pseudo-, mock-, TODO in agent output and triggers user interview to reject incomplete substitutions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/asi:accept-no-substitutesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Zero tolerance for placeholder tokens **in agent output**. Incompleteness triggers user interview.
Zero tolerance for placeholder tokens in agent output. Incompleteness triggers user interview.
Detect and reject incomplete work tokens generated in agent output. When uncertainty exists, ask the user rather than substitute with placeholders.
This skill validates what agents produce, not existing code:
NOT for scanning existing codebases (use linters for that).
| Pattern | Examples |
|---|---|
pseudo-* | pseudo-code, pseudo-implementation |
mock-* | mock-data, mock-service |
fake-* | fake-response, fake-auth |
stub-* | stub-function, stub-api |
dummy-* | dummy-value, dummy-handler |
| Token | Context |
|---|---|
temporary | "temporary solution" |
placeholder | "placeholder for now" |
TODO | inline TODOs as output |
FIXME | deferred fixes |
TBD/TBA | undetermined items |
WIP | work-in-progress as deliverable |
| Pattern | Context |
|---|---|
later | "we'll add this later" |
eventually | "eventually this will..." |
for now | "for now just use..." |
skeleton | incomplete implementation |
| Pattern | Examples |
|---|---|
example_* | example_config, example_key |
demo_* | demo_mode, demo_data |
foo/bar/baz | metasyntactic placeholders |
xxx/yyy | marker placeholders |
Substitution detected that indicates incomplete work:
- Token: "[detected token]"
- Context: [what was being attempted]
This requires input:
1. What is the ACTUAL implementation needed?
2. What specific details are missing?
3. Should research be conducted before proceeding?
Operates as MINUS (-1) validator in any triad:
accept-no-substitutes(-1) + generator(+1) + coordinator(0) = 0
When generator produces substitution tokens:
def authenticate(user):
# TODO: implement actual auth
return True # temporary bypass
def authenticate(user: User) -> AuthResult:
credentials = vault.get_credentials(user.id)
return verify_signature(user.token, credentials.public_key)
Here's a pseudo-implementation you can adapt...
Clarification needed before implementing:
- Which authentication provider is used?
- What is the expected token format?
Placeholder tokens are technical debt laundering:
The correct response to uncertainty is asking, not substituting.
scripts/detect.py --stdin < output.txt
# Invoke tree-sitter for structural detection
tree-sitter query '(comment) @comment' | grep -iE 'TODO|FIXME|placeholder'
# High compression ratio = likely template/placeholder
from zlib import compress
ratio = len(compress(output.encode())) / len(output)
if ratio < 0.3: # Suspiciously compressible
flag_as_boilerplate()
# On detection, emit MINUS signal
emit_trit(-1, reason="substitution_detected", token=matched)
Add to .claude/settings.json:
{
"hooks": {
"PostToolUse": [{
"matcher": {"toolName": "Write|Edit"},
"command": "~/.claude/skills/accept-no-substitutes/scripts/validate.sh"
}]
}
}
Call via babashka for fast validation:
(require '[babashka.process :refer [shell]])
(defn validate-output [text]
(let [{:keys [exit]} (shell {:in text} "scripts/detect.py" "-")]
(zero? exit)))
npx claudepluginhub plurigrid/asi --plugin asiScans existing files for placeholder tokens like TODOs, FIXMEs, mocks, stubs; classifies by severity and generates remediation plans with tasks.
Detects and auto-fixes AI slop in code (debug leftovers, placeholders, hardcoded credentials) using a three-phase certainty scan, safely applying only deterministic HIGH fixes and verifying with tests.
Validates AI agent claims against evidence trail in coding workflows. Catches unsubstantiated 'done', 'tests pass', 'fixed' without proof like outputs, diffs, or logs. Auto-triggers on completion keywords.