socratic — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited socratic (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.
caller passes 3 inputs:
{file} (single-mode gate); {NEW, DISTILL, BACKPROP, AMEND} (multi-mode dispatch).mode → required facts. e.g. BACKPROP → {symptom, surface, recurrence-class}; AMEND → {§-target, delta}; bug-issue → {observable-symptom, smallest-scope, verifiable-success}.$ARGUMENTS).skill returns (converged-mode, facts-collected) to caller. caller drafts artifact (issue body, §V/§T row, etc.) from facts.
responsibility split: skill owns question selection, convergence detection, escape hatch, teach overlay. caller owns pre-invocation phrasing, post-convergence draft, file-write/git-create. skill not know caller's artifact shape.
(mode, facts) to callerevery turn: 1 question. not batched. not checklist tone.
|category|fires when|shape| |clarify|symptom is vague|"what specifically — input → observed vs expected?"| |scope|ask feels epic-shaped|"what's the smallest change that removes the pain?"| |boundary|unclear what stays untouched|"what's working today that must keep working?"| |success|no acceptance criterion|"how do we know it's fixed without re-asking you?"| |frame|user names a fix, not a problem|"is that the problem, or your current guess at the solution?"| |first-principle|mode == NEW and not foundational claim stated|"name ≥ 1 foundational claim from which other invariants derive — what is this artifact, fundamentally?"|
pick by what's most missing. not re-ask what user already supplied.
NEW-mode override: first-principle probe ! fired explicitly, not buried under clarify. ask once; user may decline → NEW converges on derived facts per caller-passed triple. caller records first-principle-asked fact in returned facts regardless of answer.
interrogate problem, not user. questions assume user is right and probe _statement_, not judgment. not "are you sure?" → "what would falsify this?"
read code reactively, not preemptively.
file:line or symbol or path → read that target. user claims behavior is broken w/o data → spot-check to verify claim before next question.shape: "looking at <file>:<line>, [observable fact] — given that, [next question]". not "I think the bug is X". model verifies, user diagnoses.
scope cap: ≤ 2 reads per turn. broader sweep needed → stop dialogue, return control to caller for codebase investigation.
education is overlay, not separate phase. when answer reveals gap, surface distinction in 1–2 sentences, then ask next question. not lecture, not tangent.
teach when:
|trigger|distinction to surface| |user names a fix as the problem|symptom vs cause vs solution| |user offers an unfalsifiable success crit|what makes a criterion verifiable (observable + bounded)| |user conflates scope w/ ambition|smallest-change seam vs total redesign| |user assumes a behavior is broken w/o data|observed vs expected vs assumed|
shape: "[concept in 1 line] — given that, [next question]". user learns by using distinction on their own problem, not by being told.
ready iff caller-passed convergence triple satisfied for exists mode in mode-decision space.
skill not know what facts mean — only checks presence per caller spec. e.g. caller passes BACKPROP → {symptom, surface, recurrence-class}; skill marks BACKPROP converged when all 3 facts present in dialogue history.
precision in caller-passed triples → less downstream rework — caller's artifact draft consumes facts directly.
≥3 turns w/o convergence → offer escape: "I have enough for a rough draft — return now and refine downstream, or keep going?"
"just file it" or "skip the questions" or "I know what I want" → stop dialogue. not bypass the convergence gate — audit current state vs caller-passed criteria; gaps unmet → either ask once for missing piece or return (mode, partial-facts) w/ explicit unmet-criteria list so caller can surface gaps in artifact (e.g. ## Unresolved callout). preserves the validity bar (gaps visible) while honoring user's "done thinking" signal.
skill stops at framing-question / collecting-facts → return (converged-mode, facts-collected). data-only — skill not file, not commit, not write artifact. caller owns root-cause analysis, draft, apply.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.