Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
The English summary is being prepared. Showing the original description.
Use when adding or editing any script under `scripts/` — `--quiet`, `_lib/script_output`, silent Taskfile wiring, Iron-Law carve-outs; fires on 'add a check script for X'.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
src/scripts/{name}.ts (linters, checks, generators, measure tools — run via ./scripts-run src/scripts/{name})Taskfile.yml or taskfiles/*.ymlDo NOT use this skill when:
scripts/ai_council/one_off_archive/ — those carry an _one_off_ prefix and are exempt from the verbosity convention.mjs / Node script under scripts/cost/ — different runtime; convention covered in agents/settings/contexts/cost-tracking.md| Intent | Artifact |
|---|---|
| "Maintenance script the agent or CI runs" | This skill |
"User types /foo to invoke" | command-writing |
| "Constraint the agent must always honor" | rule-writing |
| "Reference knowledge agents cite" | guideline-writing |
Scripts orchestrate file checks, generators, and validators. They are
neither user-invoked nor agent-routed — task and CI call them.
Creating or materially rewriting a script that joins the linter / check
family must go through Understand → Research → Draft from the
artifact-drafting-protocol rule.
ls src/scripts/check_*.ts src/scripts/lint_*.ts, grep for
overlap, skim 1–2 peer scripts (e.g. lint_handoffs.ts,
check_md_language.ts).--quiet flag — argv checkEvery check_*.ts / lint_*.ts script MUST accept --quiet so the
silent Taskfile layer (§ 4) can suppress success-only output.
Canonical pattern (see e.g. lint_handoffs.ts):
const QUIET = process.argv.slice(2).includes('--quiet');
// ...
if (!QUIET) {
console.log('✅ All clean');
}
Failure output (❌, non-zero exit) is never gated — failures must
always print regardless of --quiet.
_lib/script_output helpers — preferred for new scriptsFor anything richer than a single ✅/❌, import the verbosity-aware
router instead of raw print():
import { info, success, warn, error, flush_summary } from './_lib/script_output.js';
info('Loading manifest'); // drops on silent + minimal
success('Wrote 3 files'); // collected at minimal, printed at verbose
warn('Skipping stale entry'); // stderr unless silent
error('Manifest missing'); // stderr always
flush_summary('Done — 3 entries'); // one-line summary at minimal
Resolution order (first wins, cached for the process):
AGENT_SCRIPT_VERBOSITY env (silent / minimal / verbose)SCRIPT_OUTPUT_VERBOSE=1 alias (== verbose).agent-settings.yml → verbosity.script_outputminimalThe resolved level is exported back into AGENT_SCRIPT_VERBOSITY so
child processes inherit it. Tests reset via reset_level() from the
same module — see tests/lib/script_output.test.ts.
The following surfaces MUST use plain print() and never the
helpers, so verbosity settings cannot suppress them:
taskfiles/release.ymlinstall-anthropic-key, install-openai-key,
setup-evals, install-hooks interactive sectionsruntime-e2e and test-triggers-live_ci-start, _ci-end, root cinon-destructive-by-default — Hard Floor cannot be silencedIf unsure, check src/scripts/ai_council/one_off_archive/2026-05/README.md
for the archived carve-out inventory.
silent: true + {{.QUIET_FLAG}}Every Taskfile task that wraps a --quiet-aware script MUST set
silent: true and pass {{.QUIET_FLAG}} to the script:
# Per-task in taskfiles/*.yml:
tasks:
lint-handoffs:
silent: true
cmd: ./scripts-run src/scripts/lint_handoffs {{.QUIET_FLAG}}
The QUIET_FLAG var is defined once at the root of Taskfile.yml
and resolves to "" only when AGENT_SCRIPT_VERBOSITY=verbose:
# Root Taskfile.yml — already in place, do not duplicate:
vars:
QUIET_FLAG:
sh: '[ "$AGENT_SCRIPT_VERBOSITY" = "verbose" ] && echo "" || echo "--quiet"'
Carve-out tasks (release, install secrets, CI orchestration — see § 3)
do not add silent: true and do not use {{.QUIET_FLAG}}.
./scripts-run src/scripts/skill_linter src/skills/script-writing/SKILL.md → 0 FAIL./scripts-run src/scripts/{your-script} --quiet and the verbose path — exit code 0 on clean, non-zero on failure regardless of flag_lib/script_output, add a test under tests/ patterned on tests/lib/script_output.test.ts — assert silent / minimal / verbose behave per § 2Taskfile.yml in this repo for the script list) — must exit 0 except for tolerated warningssrc/scripts/{name}.ts with --quiet acceptedsilent: true + {{.QUIET_FLAG}} (unless carve-out)tests/ if _lib/script_output is used--quiet — the silent Taskfile layer wraps the script and the call fails with unrecognized arguments: --quiet❌ failures behind --quiet — failures must always printprint() for progress lines — drops on minimal, no inheritancesilent: true to a release / install-keys task — bypasses the Hard Floor confirmationTaskfile.yml's QUIET_FLAG var — single source of truth, do not duplicateimport … from './_lib/script_output.js' resolves relative to the script's own directory — copy the import path from a peer under src/scripts/Apply the Frugality Charter
to every script you author. Phase 10 of the charter (settings hooks
row — verbosity.script_output / verbosity.taskfile_command_echo)
is what this skill exists to teach.
Examples in this artifact:
--quiet so the only thing visible at minimal is the end-of-run
summary or a failure.success() and emit one flush_summary() line.Pre-save self-check:
print("✅ ...") line sit behind --quiet / the helper?silent: true + {{.QUIET_FLAG}} to its
Taskfile entry (unless a carve-out)?❌, exit non-zero) never gated by quiet?print() and not the helper?❌ / failure output behind --quiet_lib/script_output for release confirms or secret promptssilent: true to carve-out tasksprint() for progress in new scripts — use info()dist/agent-src/, .augment/, or .claude/ projectionsOn cloud surfaces (Claude.ai Web, Skills API) the package's task
runner and _lib/script_output are not reachable. The skill still
applies — with prose-only validation:
--quiet accepted, failures never gated, success lines gated, helper imports look syntactically right.src/scripts/{name}.ts, wire the Taskfile entry, and run task lint-skills && task ci locally before committing.task commands yourself — they only run on the user's machine.Good description (trigger-shaped, names domain + symptoms):
"Use when adding or editing any script under
scripts/—--quietflag,_lib/script_outputhelpers, silent Taskfile wiring, Iron-Law carve-outs — even when you just say 'add a check script for X'."
Bad description (vague, no trigger):
"Script conventions"
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
The English summary is being prepared. Showing the original description.
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
The English summary is being prepared. Showing the original description.
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
The English summary is being prepared. Showing the original description.
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
The English summary is being prepared. Showing the original description.
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
The English summary is being prepared. Showing the original description.
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
The English summary is being prepared. Showing the original description.