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'.
日本語の概要は準備中です。原文の説明を表示しています。
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'.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
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"
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。