migrate-claude-md — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited migrate-claude-md (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Purpose: Bring existing CLAUDE.md to current intake standard without losing data. When: After validate-claude-md found issues; on standard change; onboarding old project. Output: Updated CLAUDE.md with added sections and fixed placeholders. Each change confirmed.
CLAUDE.md fullyplan.md already exists in same directory~/.claude/skills/intake/SKILL.md — OUTPUT TEMPLATE section (current standard)## PHASES section exists in CLAUDE.md → must be moved to plan.mdShow plan before any changes:
Найдено несоответствий: N
ПЛАН:
1. Извлечь ## PHASES из CLAUDE.md → создать plan.md (новый формат с YAML frontmatter)
2. Убрать ## PHASES из CLAUDE.md, добавить строку PLAN: → plan.md в QUICK CONTEXT
СТРУКТУРНЫЕ:
3. Добавить SECURITY (первой секцией, с OPERATOR_TOKEN)
4. Добавить QUICK CONTEXT блок (9 строк key-value)
5. Добавить INFRA строку в QUICK CONTEXT
...
ФОРМАТ:
6. Session Log: сжать в однострочный формат S[N] [date]: [summary]
7. ADR таблица: перенести в docs/adr.md если >3 записей
...
Применяю по одному. Начать?For each missing section:
1. Show what you're adding:
── Добавление N/M: [section name] ──────────────
ДОБАВЛЯЮ:
[new section content, filled with data from existing CLAUDE.md]
Куда: [after section X / before section Y]
Данные взяты из: [source]
Добавить? (да / нет / изменить)2. When adding SECURITY:
3. When adding missing sections with data:
4. When updating stale data (⚠):
After all changes — run validate-claude-md:
── Финальная валидация ──────────────────────────
[validate-claude-md output]If ⚠ or ✗ remain — offer to fix manually with hint.
── Migrate CLAUDE.md — Итог ────────────────────
Добавлено секций: N
Обновлено полей: M
Пропущено: K
CLAUDE.md приведён к стандарту intake ✓When: target format already known; 5+ files to migrate with identical rules. Difference from normal mode: no per-file confirmation — applies rules silently, summary at end.
Use Batch Mode when user says:
Step B1 — Confirm rules once:
Batch migration: [N] files
Rules:
1. [rule — e.g. Translate RU prose → EN]
2. [rule — e.g. Keep RU user-facing strings]
3. [rule — e.g. Move heavy tables → docs/]
Apply to all [N] files? (да / нет)One confirmation for all files. Wait for "да".
Step B2 — Process silently: For each file: Read → apply rules → Write. No diff shown per file. On error — log and continue.
Step B3 — Summary:
── Batch Migrate ────────────────────────────
Done: N files
Skipped: M (errors below)
Errors: [file]: [reason]
Files: ✓ [file1] ✓ [file2] ...When converting to current standard:
PHASES → plan.md extraction:
If ## PHASES section exists in CLAUDE.md:
plan.md already exists in same directory: BEFORE (in CLAUDE.md):
## PHASES
> Gate between phases — do NOT proceed without explicit "go"
Phase 1: Foundation — [ ] pending
- [ ] task A
- [ ] Gate: criterion
AFTER (plan.md):
---
project: "[name from CLAUDE.md PROJECT line]"
updated: YYYY-MM-DD
session: [session number from CLAUDE.md SESSION line]
active_phase: [first phase without all [x]]
---
## Phase 1: Foundation — active
- [ ] task A
**Gate:** criterionPhase N: Name — [ ] pending → ## Phase N: Name — pendingPhase N: Name — [x] done → ## Phase N: Name — doneactive, others stay pending/done- [ ] Gate: criterion → **Gate:** criterion (remove checkbox, bold prefix)> Gate between phases... line → drop entirely (redundant)active_phase = N of first phase with status active## PHASES section from CLAUDE.mdPLAN: → plan.md line to QUICK CONTEXT (after IN_PROG line)Language: all new content in English. Existing Russian prose → convert when compressing.
Session Log compression:
BEFORE (multi-line block):
### 2026-03-10 — Session 16
DONE: implemented 3-screen architecture...
NEXT: Stage 13
AFTER (one line):
S16 2026-03-10: 3-screen arch, pos_map pattern | next: Stage 13Keep only last 5 sessions in CLAUDE.md. Others → offer to move to docs/session-log.md.
ADR compression: If ADR table > 3 rows → create docs/adr.md, move there, leave in CLAUDE.md:
ADR: → docs/adr.mdQUICK CONTEXT: Fill from existing CLAUDE.md sections. INFRA line: take from ENV, ENVIRONMENT, or README sections. If INFRA not found anywhere — ask user one question.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.