By Tiltely
Socratic lenses for software engineering: question batteries that examine your work from security, design, usability, test-quality, and operational-recovery perspectives — plus an orchestrator that surfaces caveats, rabbit holes, and blast radius before you build, and a memory loop that grows new lenses from your real sessions.
The Lens of the Adversary — red-teams a PLAN before you commit to it. Tries to refute it, names the weakest decision and the unexamined assumption, re-checks the four excavations against the plan. Runs as the MANDATORY final step of /lens:socratic, or standalone (/lens:adversary) on any plan, diff, or design. A meta-lens — it critiques the plan, not a domain.
The Lens of Interface Design — Socratic battery over UI composition, layout, navigation, states, and platform behavior. Library-agnostic - adapts to the project's design system (shadcn/ui, MUI, Chakra, custom, or none). Use when building or changing anything users see, or to professionally critique an implemented UI. Modes - design (questions to the user) and audit (critique of the built screens).
Scaffold a new lens for this plugin. Use when /lens:retro proposed a lens, or a recurring theme has no lens. Takes a lens name (kebab-case) and a one-line purpose.
The Lens of Observability — Socratic battery over operational recovery and visibility for money flows, state machines, webhooks, and background jobs. Use for anything where a lost external event or a stalled multi-step flow can strand a user (payments, webhooks, onboarding funnels, queues, crons). Modes - design (questions to you) and audit (questions to the code).
The memory loop. Use when closing significant work or weekly — processes queued lens sessions, mines them for patterns, proposes new lenses / lens updates / CLAUDE.md diffs, and writes approved observations to the foundry ledger. Also accepts an explicit transcript path or session_id as argument.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code plugin born from two ideas: the lenses of Jesse Schell's The Art of Game Design — and the Socratic method. Every lens is a battery of questions that examines your work from one perspective; an orchestrator runs the discovery dialogue that surfaces caveats, rabbit holes, and blast radius BEFORE you build; and a memory loop grows new lenses from your real sessions.
/plugin marketplace add Tiltely/lens
/plugin install lens@tiltely
Then /reload-plugins (or restart Claude Code).
Releases are versioned (semver, the version field in plugin.json) and bumped on
each meaningful change — that's what Claude Code and Cowork compare to detect an
update. To receive them automatically on startup, enable auto-update for the
tiltely marketplace in ~/.claude/settings.json:
{
"extraKnownMarketplaces": {
"tiltely": {
"source": { "source": "github", "repo": "Tiltely/lens" },
"autoUpdate": true
}
}
}
(The tiltely entry already exists after the marketplace add — just add
"autoUpdate": true to it.) Without this, update manually whenever you want:
/plugin marketplace update tiltely followed by /plugin update lens@tiltely.
The lenses and /lens:socratic work in Claude Cowork — skills are cross-platform, so
Socratic discovery and the design / usability lenses apply to knowledge work (planning,
prep, reports) just as they do to code. No setup, no config.
Install via Cowork's GUI (not the /plugin CLI, which is Claude Code only): Personal
plugins → + → Create Plugin → Add Marketplace → Add from a repository, then enter
https://github.com/Tiltely/lens and install lens.
The memory loop is Claude Code only. /lens:setup, the SessionEnd hook, /lens:retro
and /lens:new need a foundry and a firing hook — but Cowork runs the CLI with
--setting-sources user, so plugin-provided hooks never fire there, and its VM home is
ephemeral. So on Cowork you get the lenses; the learning loop (foundry, retro, growing
your own lenses) lives on Claude Code. Run /lens:setup on Code to enable it there.
Code-flavored lenses like /lens:tdd still load on Cowork; on non-code work they just
fall back to a generic battery.
| Command | What it does |
|---|---|
/lens:socratic "<goal>" | Socratic discovery → caveats, rabbit holes, blast radius, platform matrix → chains the right lenses, keeping a live mind-map of branches and knowing when to stop. audit re-runs the session's lens plan against the built code and verifies every recorded decision |
/lens:security | Sessions, tokens, authz — design dialogue or code audit with file:line findings |
/lens:design | Interface design, library-agnostic: ranked component candidates in YOUR design system, deep platform questions (PWA pack), and a professional critique of implemented UI (keep/refine/rework) |
/lens:usability | End-user flows, missing states, navigation, i18n |
/lens:tdd | Tests that earn their existence — kills mock-echo, implementation mirrors, and testing-for-testing's-sake |
/lens:observability | Operational recovery + visibility for money flows, state machines, webhooks, and jobs — hunts the orphan (a user/record stuck mid-flow nothing detects); design dialogue or code audit of lost-event reconciliation, durable dedupe, stuck-state sweeps, alerting, traceability |
/lens:adversary | Red-teams a plan before you commit — refutes it, finds the weakest decision and what discovery missed. Runs automatically as /lens:socratic's final step; also standalone on any plan/diff |
/lens:retro | Mine your queued sessions; propose new lenses and CLAUDE.md updates |
/lens:new | Scaffold a new lens — global (your foundry) or project (<repo>/.lens/); used via /lens:socratic, read-inline. (Inside the plugin repo it also offers the bundled set — auto-detected, never asked.) |
/lens:setup | Create YOUR personal memory loop, once per machine (optional) |
Every lens — bundled or one you create — is used the same way: through
/lens:socratic, which discovers and applies all of them. There is no "personal vs
plugin" lens; there are just lenses, and where each is registered decides only its
reach (nearest-wins, like a nearer CLAUDE.md). The bundled lenses additionally get a
/lens:<name> shortcut — that's a Claude Code namespace convenience, not a different
class of lens.
You grow your own collection with /lens:new, choosing a scope:
<foundry>/lenses/<name>/ — applies everywhere on this machine.<repo>/.lens/lenses/<name>/ — applies only in that repo, and
overrides a bundled lens of the same name there.npx claudepluginhub tiltely/lens --plugin lensComplete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques