.agents/skills/approachability-audit/SKILL.md
Review code from the perspective of a new TypeScript developer. Use when the user asks whether code feels wrong, too indirect, too clever, hard to follow, or wants a pass focused on unnecessary abstractions, misleading names, layered type tricks, and first-read clarity.
npx skillsauth add epicenterhq/epicenter approachability-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Read the code like a smart but newly onboarded TypeScript developer.
The goal is not "make it shorter" or "make it more abstract." The goal is:
as assertions outside a clear parse or interop boundaryearns its keepprobably inlineablewrong ownership boundarymisleading nametype-system workaroundWhen reporting findings, prioritize:
When editing code:
*Bridge, *Contract, *Parser, *Factory, *Stateexport type SessionContract = { ... };
Portable type, honest name, obvious job.
export type AppAuth = {
options: { plugins: [...] }
};
If this is not the real auth type, do not name it like it is.
export type CustomSessionClientBridge = { ... };
If a library forces a type trick, keep it local and name it as a bridge.
The code should leave a new teammate thinking:
documentation
Yjs CRDT patterns, shared types (Y.Map, Y.Array, Y.Text), conflict resolution, and document storage. Use when the user mentions Yjs, Y.Doc, CRDTs, collaborative editing, or when handling shared types, implementing real-time sync, or optimizing document storage.
tools
Voice and tone rules for all written content—prose, UI text, tooltips, error messages. Use when the user says "fix the tone", "rewrite this", "sounds like AI", "sounds corporate", or when writing any user-facing text, landing pages, product copy, or open-source documentation.
tools
Workspace API patterns for defineTable, defineKv, versioning, migrations, data access (CRUD + observation), withActions, and extension ordering. Use when the user mentions workspace, defineTable, defineKv, createWorkspace, withActions, withExtension, defineQuery, defineMutation, connectWorkspace, or when defining schemas, reading/writing table data, observing changes, writing migrations, chaining extensions, or attaching actions to a workspace client.
documentation
Standard workflow for implementing features with specs and planning documents. Use when the user says "start a new feature", "how should I plan this", "what's the process", or when starting implementation, planning work, or working on any non-trivial task.