Back to skills
SKILL.md
Ablate
ASecurityハーネスの各要素を 1 つずつ外して走らせ、その要素が結果を動かしているかを判定する。動かしていない要素を削除候補として挙げる。
- 12 stars
- 0 votes
- 0 copies
- 0 views
- Added September 24, 2026
Security analysis
100/100Pro scans all 13 files and shows the line behind each finding
npx -y skills add thkt/dotclaude --skill ablate --agent claude-codeAre you the author of Ablate?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/thkt-ablate)---
name: ablate
description: ハーネスの各要素を 1 つずつ外して走らせ、その要素が結果を動かしているかを判定する。動かしていない要素を削除候補として挙げる。
when_to_use: ablation, 片側アブレーション, ハーネス要素の効果測定, 削除候補の洗い出し, harness ablation, which rules actually matter
allowed-tools: Read Write LS Bash(${CLAUDE_SKILL_DIR}/scripts/*) Bash(skills/_lib/*) Bash(claude:*)
model: opus
argument-hint: "[要素のパス]"
---
# /ablate - ハーネスの片側アブレーション
## Input
`$ARGUMENTS` は測定対象を 1 つに絞る要素のパス。省略したときは Phase 1 が列挙した全要素を対象にする。
## 判定と閾値の所在
アームの一覧、1 アームあたりの実行回数、通過閾値はすべて `${CLAUDE_SKILL_DIR}/scripts/arms.ts` の定数が持つ。分類の基準は `${CLAUDE_SKILL_DIR}/scripts/verdict.ts` が持つ。DR ゲートの基準、未達の記録を表す印、記録を読む先は `${CLAUDE_SKILL_DIR}/scripts/dr_gate.ts` が持つ。計測窓と rare-by-design の集合は `${CLAUDE_SKILL_DIR}/scripts/usage_counts.ts` が持つ。規則ごとの起動タスクと固定タスクセットは `${CLAUDE_SKILL_DIR}/references/measurement-criteria.md` が持つ。この本文に数値を書き写さない (`docs/wiki/deterministic-script-judgment.md`)。
## Phase 1: 列挙
`skills/_lib/harness_elements.ts` の `enumerate_elements(root)` を呼び、ハーネス要素とその分類を得る。`$ARGUMENTS` が要素のパスを指すときは、その 1 件だけを Phase 2 へ渡す。
```bash
node skills/_lib/harness_elements.ts .
```
## Phase 2: アーム実行
Phase 1 が返した要素それぞれについて、`arms.ARMS` の各アームで `arms.arm_command(arm, element)` が返す命令を組み、`arms.RUN_COUNT` 回実行する。その要素の起動タスクは `${CLAUDE_SKILL_DIR}/references/measurement-criteria.md` から取る。各 run の結果から、その要素についての観測 1 件を組む。
| 状況 | 扱い |
| ------------------------------------- | ---------------------------------------------------------------- |
| run 数が `arms.RUN_COUNT` に届かない | `arms.measurement_status(runs)` が `unmeasured` を返すまま進める |
| `wiped+1` に渡す要素が決まらない | `arm_command` が ValueError で止まるので、要素を確定してから呼ぶ |
| 実行が失敗し結果を読めない run がある | その run を数えず、observation に届いた run 数だけを載せる |
## Phase 3: レポート
`report.write_report(root, observations)` を呼ぶ。削除候補がレポートへ届く前に `dr_gate.gate` が `docs/decisions/` を読み、生きている記録が支配する要素を保留するので、Summary はその件数を分けて数える。同時に `usage_counts.ts` も実行し、各要素の発火回数と最終使用日を同じ Harness Elements 表へ組み込む。見る経路は 1 つで、別経路を並走させない。書き出し先の既定は `docs/audit/` で、ファイル名は UTC の `<YYYY-MM-DD>-<HHMMSS>-ablate.md`。節の順は `${CLAUDE_SKILL_DIR}/templates/report-template.md` が持つ。
```bash
node --input-type=module -e 'const { write_report } = await import("./skills/ablate/scripts/report.ts"); let data = ""; for await (const chunk of process.stdin) data += chunk; console.log(write_report(".", JSON.parse(data)));' < <observations.json>
```
## Output
レポートが名指したものを実際に外すのは別の実行。削除候補は `docs/wiki/retire-rename-procedure.md` へ渡す。retire で失われる検出層と、それを復活させる判断トリガーはそちらが持つ。この skill は判定までで止まる。
| 項目 | 内容 |
| -------------- | --------------------------------------------------- |
| レポートのパス | `write_report` が返したパス |
| 削除候補 | レポートの Delete Candidates 節。0 件のときはその旨 |
| 測定できた数 | Verdicts 節のうち `unmeasured` でない行数 |
| Usage | 各要素の発火回数と最終使用日。Harness Elements 内 |
Files in this skill
- SKILL.md
- references/measurement-criteria.md
- scripts/arms.ts
- scripts/dr_gate.ts
- scripts/enforcer_map.ts
- scripts/exposure.ts
- scripts/reference_arm.ts
- scripts/reference_match.ts
- scripts/reference_observation.ts
- scripts/report.ts
- scripts/usage_counts.ts
- scripts/verdict.ts
- templates/report-template.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.