self-audit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited self-audit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
"검증 없이 완료 선언하지 않는다." A pre-commit meta-gate. Audits Claude's own actions in the current session, not external code.
polish / ralphi / audit loop) completesIf invoked bare on a quiet diff, ask: "Anything in this session you want me to scrutinise specifically? e.g. a scope decision you weren't sure about, a refactor you want double-checked."
Collect the audit surface for this session:
git status --short
git diff --stat
git branch --show-current
git log -1 --pretty=%H # baseline SHA for comparisonsDo not read full file contents — only the diff and stat. The point is to check what changed in this session, not to review the whole codebase.
| Check | Pattern (rg over git diff) | |
|---|---|---|
ROP — no withTimeout or defensive {timeout: N} introduced | `rg -nP 'withTimeout\ | timeout:\s*\d+'` |
| ROP — no silent try/catch wrappers added | rg -nP 'catch\s*\([^)]*\)\s*\{[^}]*$' | |
| SSOT — no hardcoded version-specific field names | `rg -nP 'v\d+\.\w+\ | schema_v\d'` |
| "compress" preserved structure (no H2 / step removal) | manual diff inspection | |
| Locale separation — en / ko / jp content in correct file | rg -l '[가-힣]' diff filtered by .md$ (not .ko.md/.jp.md) |
testid constants are UPPER_SNAKE_CASE — rg 'data-testid="[a-z]' over diffpx / hex values outside design-token filesdocs/reports/ or tmp/)?sleep loop instead of diagnosing the root cause?Output exactly this table — one row per check, ✓ or ✗ only. Evidence is a path / line / rg pattern, never a quoted block.
| Check | Status | Evidence | Fix |
|----------------------------------------------------|--------|--------------------------------|--------------------------------|
| ROP — no withTimeout / defensive timeout | ✓/✗ | file:line | revert + use Result type |
| ROP — no silent try/catch | ✓/✗ | file:line | rethrow or convert to Result |
| SSOT — no hardcoded version field names | ✓/✗ | file:line | parse-don't-validate |
| Compress preserved structure | ✓/✗ | section diff stat | restore deleted section |
| Locale separation respected | ✓/✗ | file:line | move content to correct file |
| Scope confirmed before ambiguous affirmative | ✓/✗ | conversation turn | revert action, re-confirm |
| No invented tooling | ✓/✗ | file path | remove invented helper |
| Bulk modify proposed before applying | ✓/✗ | files changed count | revert + propose list |
| testid UPPER_SNAKE_CASE | ✓/✗ | file:line | rename constant |
| No raw px / hex outside tokens | ✓/✗ | file:line | use design token |
| No deep imports bypassing public API | ✓/✗ | file:line | use public re-export |
| Chat output ≤ 30 lines | ✓/✗ | last report length | move to docs/reports/ |
| No entire-file quoting in verifier output | ✓/✗ | output line range | summarize + link |
| One cycle = one commit | ✓/✗ | `git log` last N commits | split commit |
| No sleep-loop retry of failing command | ✓/✗ | shell history | diagnose root cause |self-audit clean, proceed to commit.tmp/self-audit-<ts>.md and emit only a one-line summary + path to chat.galmuri:skill-audit)galmuri:polish (which gates UI/code-completion claims) or galmuri:ralphi (which budgets quality loops)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.