socratic

socratic is a skill for Claude Code from Tiltely/lens. It costs 111 tokens per session (2,168 once invoked), scanned A, original, MIT.

A discovery and review process that asks structured questions before designing or coding a significant feature, issue, or objective, then audits the result afterward. It records decisions and selects relevant review areas.

In plain words
What is it for?
Use it before non-trivial development work to clarify requirements, constraints, and knock-on effects, and after implementation to check whether the result matches the decisions made.
Why use it?
Starting with an incomplete understanding of the requirements can lead to rework, missed dependencies, or changes that affect unrelated parts of an application. The process brings those risks to the surface early.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: reads .claude/ paths; mentions CLAUDE.md.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the lens plugin — 11 skills, 1 hook shipped together

Good fit Use it before non-trivial development work to clarify requirements, constraints, and knock-on effects, and after implementation to check whether the result matches the decisions made.

Compare 6 skills from other repositories ↓
View source ↗ Tiltely/lens
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add Tiltely/lens
Claude Code
/plugin install lens

Made for: Claude Code.

Or install lens, the plugin that ships this one along with the rest of its 11 skills, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for socratic

README.md
[![agentmods](https://agentmods.dev/badge/skills/tiltely/lens/socratic/github.svg)](https://agentmods.dev/skills/tiltely/lens/socratic)
Your own site
<a href="https://agentmods.dev/skills/tiltely/lens/socratic"><img src="https://agentmods.dev/badge/skills/tiltely/lens/socratic/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for socratic

Your own site · 80×15
<a href="https://agentmods.dev/skills/tiltely/lens/socratic"><img src="https://agentmods.dev/badge/skills/tiltely/lens/socratic.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 111 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,168 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00111 $0.02168
Opus 5.5 $0.00044 $0.00867
Sonnet 5.5 $0.00022 $0.00434
Haiku 4.5 $0.00011 $0.00217

Measured 1mo ago against content hash f254fcdc9d6d, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

socratic scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/socratic/SKILL.md · 124 lines

How it starts

The opening of the file, as written. The whole thing — 124 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Socratic Discovery Orchestrator

Read first:

  • ${CLAUDE_PLUGIN_ROOT}/core/protocol.md (how to ask; the four excavations)
  • ${CLAUDE_PLUGIN_ROOT}/core/dossier.md (dossier lifecycle — you own creation/reset)
  • ${CLAUDE_PLUGIN_ROOT}/core/registry.md (available lenses for the plan)

Mode: explicit argument wins ("audit"). Otherwise: starting new work → design; reviewing something already built → audit (confirm your inference in one line).

Flow — design mode

  1. Dossier: per dossier.md. FIRST run the branch gate (dossier.md "Branch gate") — if on a base branch (main/master/develop/trunk), STOP and offer to create lens/<goal-slug>, stay, or use a worktree, and WAIT; if already on a feature branch, proceed silently. THEN create the branch-scoped dossier at <toplevel>/.lens/dossiers/<branch-slug>--<hash>.md (goal + date + branch: header; .lens/ git exclusion). No global reset — only this branch's file is written, so a concurrent session on another branch is untouched; if the legacy .lens-dossier.md exists, offer the one-time migration (dossier.md). Run stack detection (core/stack-detection.md); record stack:.
  2. Socratic rounds (protocol.md rules — ONE question at a time; classify each as fact vs intent first: fact questions get the five-rung evidence ladder (protocol.md "Evidence before questions") — dossier, repo, org prior art, the project's reachable knowledge systems, runtime truth — and arrive as confirmations when evidence exists. Name the reachable knowledge-system roles ONCE here, before Round A, so the rest of the dialogue knows which rungs exist):
    • Round A — the goal: what does success look like? for whom? what is explicitly out of scope?
    • Round B — caveats: what must be true for this to work? what constraints bound it?
    • Round C — rabbit holes: which sub-problems look small but are not? Name each.
    • Round D — blast radius: which systems/repos/platforms/people does this touch? (API, web, mobile, DB, infra, third parties, docs, team.) These four are SEEDS for the frontier (protocol.md "The frontier"), not a fixed script: each answer may spawn new branches — add them to the ## frontier mind-map (a tree, tagged [status][stakes]) and work it DOWN by stakes, not by round order. Discovery ends per protocol.md "When discovery is done": drain by stakes (drop no-consequence, default LOW, defer real-but-later), and PROPOSE synthesis (showing the mind-map) once only LOW/deferred branches remain or answers stop spawning branches. The user can say "enough, synthesize" at any step — honor it. Append everything to the dossier as you go.
  3. Lens plan (build it once the frontier is empty or deferred). Every lens — bundled or user-created — is a candidate; union the lens rows from all sources, nearest-wins on lens name (project > global > bundled — a nearer definition overrides a farther one, like a nearer CLAUDE.md):
    • bundled core/registry.md;
    • your global registry: resolve the foundry from the lens config (first-readable-wins: $LENS_CONFIG → ~/.claude/lens.json → ~/lens/lens.json; read its foundry key), then read <foundry>/registry.md and the lens bodies in <foundry>/lenses/<name>/SKILL.md. Skip silently if no config/registry exists.
    • project <repo>/.lens/registry.md (+ <repo>/.lens/lenses/) — if cwd is in a git repo (root via git rev-parse --show-toplevel) and it exists. A lens is the (registry row + its SKILL.md); nearest-wins selects BOTH from the level that defines the name. Pick the lenses whose triggers match what the rounds surfaced; for transparency tag each by origin — (bundled) / (yours) / (project). Present an ordered plan: lens → one-line reason. Let the user prune or reorder.
  4. Execute the chain in this session, dispatching per lens:
    • a BUNDLED lens → invoke its skill (/lens:<name>);
    • a lens you created (global <foundry>/lenses/<name>/SKILL.md or project <repo>/.lens/lenses/<name>/SKILL.md) → READ its SKILL.md inline and run its battery here (same as how this orchestrator reads core/*.md). Single-writer rule holds: you write the dossier. Each lens reads the dossier and skips answered questions (printing skip lines).
  5. Synthesis: render the final mind-map (the frontier tree — every node resolved or deferred); decisions made; open risks; the four excavations as a compact map; concrete action list. This is the DRAFT plan.
  6. Red-team the plan (MANDATORY): run the adversary lens on the draft — read-inline ${CLAUDE_PLUGIN_ROOT}/skills/adversary/SKILL.md (or invoke /lens:adversary). It first SUGGESTS plan mode and waits for the user, then attacks the plan (refutation, weakest decision, what discovery missed, reversibility, "first thing that worked"). Disposition every finding: revise a decision / reopen a frontier branch (→ back to step 2) / accept as explicit risk. The plan is FINAL only after it survives. Then write the final dossier state. (This step is not pruned — the adversarial pass reliably finds what discovery missed.)
  7. Close: remind the user — after the implementation lands, run /lens:socratic audit to verify it against this dossier, and /lens:retro after that (the SessionEnd hook has already queued this session if any lens ran).

Read the full file on GitHub · 124 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 124 lines · 111 tokens per session scan A f254fcdc9d6d

Subscribe to this mod's changes

socratic is a skill published in the GitHub repository Tiltely/lens (5 stars, last pushed 2mo ago), licensed MIT. It adds 111 tokens to every session and 2,168 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

chronicle

Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…

microsoft/vscode · 72 tokens

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

component-fixtures

Use when creating or updating component fixtures for screenshot testing or their shared infrastructure, or when designing UI components to be fixture-friendly. Covers fixture file structure, theming, service setup, CSS scoping, async rendering, validation, and common pitfalls.

microsoft/vscode · 53 tokens