Dark Architecture Diagram Builder
Cocoon-AI/architecture-diagram-generator
Creates dark-themed system, cloud, security and network architecture diagrams as self-contained HTML files with inline SVG and CSS.
Updates or creates DOCS.md files for Shift subsystems, recording the architecture invariants and constraints that cannot be learned from reading the source.
$ npx skills add shift-editor/shift --skill docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install shift-editor/shift docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/shift-editor/shift.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/docs .claude/skills/docs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "docs" agent skill from https://github.com/shift-editor/shift/tree/main/.claude/skills/docs into .claude/skills/docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/shift-editor/shift/tree/main/.claude/skills/docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add shift-editor/shift --skill docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install shift-editor/shift docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shift-editor/shift.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/docs .agents/skills/docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "docs" agent skill from https://github.com/shift-editor/shift/tree/main/.claude/skills/docs into .agents/skills/docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add shift-editor/shift --skill docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install shift-editor/shift docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shift-editor/shift.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/docs .cursor/skills/docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "docs" agent skill from https://github.com/shift-editor/shift/tree/main/.claude/skills/docs into .cursor/skills/docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/shift-editor/shift.git --path .claude/skills/docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add shift-editor/shift --skill docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install shift-editor/shift docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shift-editor/shift.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/docs .gemini/skills/docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "docs" agent skill from https://github.com/shift-editor/shift/tree/main/.claude/skills/docs into .gemini/skills/docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install shift-editor/shift docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add shift-editor/shift --skill docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/shift-editor/shift.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/docs .github/skills/docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "docs" agent skill from https://github.com/shift-editor/shift/tree/main/.claude/skills/docs into .github/skills/docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add shift-editor/shift --skill docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install shift-editor/shift docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shift-editor/shift.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/docs .opencode/skills/docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "docs" agent skill from https://github.com/shift-editor/shift/tree/main/.claude/skills/docs into .opencode/skills/docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
docsUpdates or creates DOCS.md files for Shift subsystems, recording the architecture invariants and constraints that cannot be learned from reading the source.
Before writing, the agent reads docs/architecture/index.md to find the canonical doc for the subsystem, the current DOCS.md if there is one, and the module source to see what changed. It defaults to updating existing files and confirms with you before creating a new DOCS.md. Every file follows a fixed section order, with empty sections left out but the order kept.
The most valued section is Architecture Invariants, where each entry states a rule and why it exists. Good ones describe what never happens, performance-driven choices and semantic distinctions invisible in types, and bad ones merely restate what the code does. CRITICAL labels are reserved for rules that silently break things. A Codemap section is a short tree of key files with one-line purposes, skipping fixtures, generated files and barrel re-exports. The excerpt ends at Key Types.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e7dacfa. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Shift Subsystem Docs loads about 1.9k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 903 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from shift-editor/shift at commit e7dacfa, republished under its Apache-2.0 licence (© shift-editor). 903 words, ~1,875 tokens.
.claude/skills/docs/SKILL.md (or your agent's skills folder).The goal is documentation that helps agents and contributors understand constraints they cannot discover by reading source code.
docs/architecture/index.md to find the canonical doc for the subsystemEvery DOCS.md follows this structure. Omit empty sections but preserve the order.
# Module Name
One-sentence purpose.
## Architecture Invariants
## Codemap
## Key Types
## How it works
## Workflow recipes
## Gotchas
## Verification
## RelatedThis is the most valuable section because it captures knowledge that is invisible in code. A contributor can read every line of source and still violate an invariant, because invariants describe absences, performance motivations, and semantic distinctions that only make sense with historical context.
Each invariant states a rule and explains why it exists:
Architecture Invariant: Rust is never touched during the draft preview hot path.
SourceEditDraft.previewPositionPatch()applies a sparse patch to local reactive geometry only. Rust sees the final sparse patch once whencommit()callsGlyphSource.commitPositionPatch(). This exists because round-tripping full glyph values for thousands of points per frame causes long frames and GC pressure.
Good invariants describe:
$glyph fires on identity changes, not data changes")Bad invariants just restate what the code does ("X calls Y", "X extends Z"). If you can see it by reading the source, it does not belong here.
Use **CRITICAL**: labels sparingly — only for rules that will silently break things or waste hours if violated. These are not style preferences; they are landmines.
A tree showing key files with one-line purposes. Skip test fixtures, generated files, and barrel re-exports. The point is orientation, not an exhaustive listing.
module/
├── Foo.ts — one-line purpose
├── Bar.ts — one-line purpose
└── types.ts — one-line purposeOnly types that matter for understanding the module's contract. Reference by symbol name (EditSession, BaseTool), not file path. Symbol names survive refactors; paths break.
Brief narrative explaining data flow and lifecycle. Focus on design rationale for non-obvious choices — "we do X because Y, not because Z." This is not an API dump listing every method signature.
Step-by-step instructions for common modifications. Include which symbols to touch and what verification to run. Be specific enough that someone unfamiliar with the module can follow along:
### Adding a new tool
1. Create a class extending `BaseTool` in `lib/tools/`
2. Define `behaviors` array — first `canHandle` match wins
3. Implement `activate()` to enter a reactive state (e.g. `"ready"`)
4. Register in `ToolRegistry`
5. Verify: `pnpm typecheck && pnpm test`Things that have bitten people. Performance traps. Known edge cases. These are experiential — the kind of thing someone would tell a new teammate over coffee.
What to run after changing this module. Be specific about which commands and what they check.
Other modules this one connects to, referenced by symbol name with a brief note on the relationship.
These patterns weaken documentation and cause maintenance burden:
docs/architecture/, not in one module's DOCS.md.Every DOCS.md carries, within its first five lines:
<!-- reviewed: 2026-08-18 review-every: 90d -->Bump the reviewed date ONLY after actually re-verifying the doc's claims against source — it is an attestation, not a timestamp. The checker flags docs whose review is overdue or whose source moved after the last review; committing the doc without bumping the date deliberately does NOT clear staleness.
When an invariant is structurally enforceable (dependency bans, import surfaces), prefer adding a rule to scripts/check-invariants.py and citing it from the doc: "Enforced by scripts/check-invariants.py (rule-id)". Prose stays for the WHY; the rule owns the WHAT. Unenforceable motivation (performance rationale, temporal claims) stays prose — don't fake precision.
ts/typescript fences are type-checked in CI against the module's tsconfig (node scripts/check-docs-fences.mjs). Make examples self-contained: real imports plus declare const preambles for free variables. A deliberately non-compiling fragment opts out with ```typescript illustrative.python3 scripts/context-drift-check.py --codemap <doc> prints the module's real tree as ground truth to curate from (curate; don't paste it wholesale).PascalCase symbol in the docpython3 scripts/context-drift-check.py to validate the full docs system (it auto-discovers every DOCS.md), plus node scripts/check-docs-fences.mjs if you touched ts fences and python3 scripts/check-invariants.py if you touched an enforced invariantreviewed: date — you just verified itClaude.md — it is manually curatedCONTEXT.md files — banned by Claude.mddocs/architecture/, not module DOCS.md© shift-editor, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/docs of shift-editor/shift.
Open the folder on GitHubat commit e7dacfa
Shift Subsystem Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Shift Subsystem Docs this skillshift-editor/shift | 343 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Dark Architecture Diagram BuilderCocoon-AI/architecture-diagram-generator | 7.4k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Deepwiki Rssopaco/deepwiki-rs | 3.1k | — | ~748 | Automated safety check: Pass | MIT | |
| Mermaid Diagramsjjmartres/opencode | 133 | 6 repos | ~1.9k | Automated safety check: Pass | MIT | |
| C4 Architecture Diagramslexler/skill-factory | 239 | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MVP Technical DesignKhazP/vibe-coding-prompt-template | 3.1k | — | ~512 | Automated safety check: Pass | MIT |
Cocoon-AI/architecture-diagram-generator
Creates dark-themed system, cloud, security and network architecture diagrams as self-contained HTML files with inline SVG and CSS.
sopaco/deepwiki-rs
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation.
jjmartres/opencode
Helps an agent pick the right Mermaid diagram type and write the syntax for class, sequence, flow, ER, C4, state and other software diagrams.
lexler/skill-factory
Creates C4 model diagrams at every zoom level, from system landscape to code, in ASCII, Mermaid or Structurizr, for designing or documenting software architecture.
KhazP/vibe-coding-prompt-template
Writes an MVP technical design from agreed requirements, covering architecture, data ownership, integration contracts, deployment and tradeoffs, then hands off to the next stage.
prime-radiant-inc/greenfield
Master methodology for reverse-engineering a codebase into behavioral specs with cited evidence, reading every line across source, binaries, docs, runtime and git history.
shift-editor/shift
Rules for writing git commits in the Shift font editor repo: Conventional Commits subjects, user-facing changelog wording, concise subjects and logical commit boundaries.
shift-editor/shift
Finds unused files, exports and class members with Knip, then verifies each candidate through reference tracing before removing anything, never using knip --fix.
shift-editor/shift
Fact-checks DOCS.md files against the source code, testing each concrete claim and sorting it as true, false, stale or unverifiable.
shift-editor/shift
Sets the rules for finding, writing and updating Shift GitHub issues: search for duplicates first, use outcome-focused titles and testable acceptance criteria.
shift-editor/shift
Guides writing JSDoc for Shift exported APIs as a stable caller contract, covering ownership, lifetime, side effects and nullability that TypeScript types cannot express.
shift-editor/shift
Rules for preparing, opening and updating pull requests in the Shift repository: Conventional Commit titles, Release Please effects, evidence-based bodies and UI screenshots.
Categories
Updates or creates DOCS.md files for Shift subsystems, recording the architecture invariants and constraints that cannot be learned from reading the source. md if there is one, and the module source to see what changed.md.
Shift Subsystem Docs fits situations like: refreshing a subsystem's DOCS.md after a large feature lands; creating a DOCS.md for a module that has none; writing architecture invariants that explain why a rule exists.
Run `npx skills add shift-editor/shift --skill docs -a claude-code`. Or copy the skill folder (.claude/skills/docs in shift-editor/shift) into .claude/skills/docs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add shift-editor/shift --skill docs -a codex`. Or copy the skill folder (.claude/skills/docs in shift-editor/shift) into .agents/skills/docs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add shift-editor/shift --skill docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/docs, .gemini/skills/docs, .github/skills/docs and .opencode/skills/docs in your project.
Going by SKILL.md and its folder, Shift Subsystem Docs needs the command-line tools its instructions call (python3 and node). Our summary lists: A checkout of the Shift repository with its docs/architecture index.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Shift Subsystem Docs is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Shift Subsystem Docs: Dark Architecture Diagram Builder (Cocoon-AI/architecture-diagram-generator, 7.4k stars), Deepwiki Rs (sopaco/deepwiki-rs, 3.1k stars), Mermaid Diagrams (jjmartres/opencode, 133 stars) and C4 Architecture Diagrams (lexler/skill-factory, 239 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
shift-editor (a GitHub organization) maintains it in shift-editor/shift, which has 343 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 6, 2026.
Source: shift-editor/shift on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.