Draw a faithful architecture or structure diagram of a real codebase or project by scanning the actual repo, never guessing. Use for system architecture, request lifecycle, data model, state transitions, type structure, draw the architecture, map this project, 画架构图.
npx skills add https://github.com/lynxlangya/techne --skill anchor-viz
Investigate by diagramming. The diagram is the byproduct; the value is forcing
real investigation before drawing.
diagramKind from the table below. If theuser's intent fits multiple kinds, ask one short clarification instead of
guessing.
architecture, enumerate roots,manifests, workspace/build/native/container/edge/infra/source-only signals.
For other kinds, find the bounded entrypoint, schema, state enum, workflow,
or module/type namespace before drawing.
architecture, state one project shape andcite evidence: single-frontend, single-backend, coupled-fullstack,
monorepo, library, native, native+edge, source-only code, or
non-code. For other kinds, state the bounded scope and the files that prove
it.
are absent. First scan roots; then run a bounded source-extension/code-signal
scan. If both are absent, or docs/vault signals clearly dominate, do not
fabricate a code diagram. Draw the real top-level structure or ask what the
user wants.
primary language: titles, display labels, edge/message labels, shape notes,
and short explanations. Keep code-facing identifiers source-native: Mermaid
IDs, file paths, symbols, package names, class/function/module names, and
established technical terms such as API, SDK, CLI, HTTP, SwiftUI, AppKit, or
React.
selected kind. Every node, participant, entity, state, type, and edge/message
must come from a file read.
architecture at 12-15 top-level nodes bydefault. For other kinds, use the validator's participant/message,
entity/relationship, state/transition, or type/member limits. Split into
drill-down diagrams when needed.
storing:
%% techne:source <elementRef> <path>[#<symbol>] or, for relationship-like
elements only, %% techne:inferred <relationshipRef> <reason>. Entity-like
elements always need verified techne:source; relationship-like elements
need file+symbol proof unless explicitly inferred with sourced endpoints.
Use actor for human sequence participants so the actor path-only allowance
is mechanically scoped. Solid relationships mean read-from-code. Dashed or
labeled relationships mean inference only where the selected Mermaid type
supports it.
source first, validate it, store it with scripts/store_viz.py, always build
the self-contained viewer, and only open it when the session is interactive.
| User intent | diagramKind | Mermaid type | Evidence focus |
| --- | --- | --- | --- |
| Project architecture, module/service/package topology | architecture | flowchart / graph | Manifests, workspaces, imports, services, bindings, infra edges. |
| Request lifecycle, command/job flow, actor conversation | interaction | sequenceDiagram | Entrypoint, ordered calls/messages, handlers, clients, queues. |
| Tables, entities, persistence relationships | data-model | erDiagram | Schema, migrations, ORM/entity declarations, foreign keys, associations. |
| Status/order/task/review lifecycle | state-model | stateDiagram-v2 / stateDiagram | Status constants, state machines, reducers, guards, transition handlers. |
| Classes, interfaces, structs, protocols, bounded type structure | type-structure | classDiagram | Type declarations, inheritance, implementation, composition, public method groups. |
Examples:
architecture.interaction.data-model.state-model.type-structure.node skills/anchor-viz/scripts/validate-mermaid.mjs diagram.md --project /path/to/project --max-nodes 15
python3 skills/anchor-viz/scripts/store_viz.py --project /path/to/project --name login-flow --title "Login flow" --diagram diagram.md --shape monorepo
python3 skills/anchor-viz/scripts/build_viewer.py --project /path/to/project --open
The validator expects [email protected] and jsdom to be installed in one of
these places: TECHNE_VIZ_NODE_MODULES, skills/anchor-viz/scripts/node_modules, the
current working directory, or an ancestor directory.
schema, status lifecycle, or module/type scope.
validation, or a complexity gate.
.techne/ content inside this repository while authoring theskill itself.
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
Take lynxlangya/anchor-viz from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.