Loading...
Loading...
Build a complete agent-readable Obsidian vault for a Tailwind-based web codebase, eight flat top-level domain docs (PRODUCT/RUNTIME/ARCHITECTURE/DATA/AUTH/ENGINEERING/TESTING/DESIGN), folder-level deep specs, bidirectional wikilinks for graph navigation, and a `DESIGN.md` that conforms to the google-labs-code/design.md spec with tokens derived from `tailwind.config.{ts,js}` or the v4 `@theme` block. Use when asked to "set up project docs", "write project documentation", "create an Obsidian vault from this repo", "document this codebase for agents", "add a DESIGN.md", or "make the design system machine-readable".
npx skill4agent add gwitchr/skills docs-vaultdocs/DESIGN.mdStack assumed. TypeScript + Tailwind (v3 or v4). The DESIGN.md token derivation uses(v3) or thetailwind.config.{ts,js}block in@theme(v4). Patterns transfer to non-Tailwind projects but the derivation step changes. Framework can be Next.js, Remix, Vite, TanStack Start, etc., the structure here is framework-agnostic.app.css
Notation.,<project>,docs/,tailwind.config.{ts,js},app.cssare placeholders. Resolve to the project's actual project name, root, Tailwind config location, and ADR numbering scheme. Frontmatter examples (<NNNN>,aliases) follow Obsidian conventions, adjust to whatever tag taxonomy your team prefers.tags
Precedence. Project rules (CLAUDE.md / AGENTS.md / contributing guide) win. This skill produces those files for projects that don't have them; if they already exist, extend rather than replace.
Scope. Skill is about how to write the docs and which docs. The content of any given doc is the project's own; this skill provides the structure, the read order, the link conventions, and the DESIGN.md template.
CLAUDE.md single pointer (3 lines, points at AGENTS.md)
AGENTS.md primary entry for any AI agent
docs/
├── .obsidian/ vault config (committed)
│ ├── app.json
│ ├── core-plugins.json
│ ├── community-plugins.json
│ ├── graph.json color groups by tag
│ ├── appearance.json
│ └── bookmarks.json
├── Home.md Obsidian MOC (alias: Vault Home)
├── README.md GitHub folder index (mermaid map)
│
├── PRODUCT.md ┐
├── RUNTIME.md │
├── ARCHITECTURE.md │ Flat top-level domain docs.
├── DATA.md │ Each is a short summary (~50-150 lines)
├── AUTH.md │ that links into the deeper folder content.
├── ENGINEERING.md │
├── TESTING.md │
├── DESIGN.md ┘ ← spec-compliant (google-labs-code/design.md)
│
├── architecture/ deeper specs per domain
├── conventions/ rules per layer (TS, Tailwind, fetchers, ...)
├── workflows/ step recipes (new-domain, diagnose-bug, ...)
├── quality/ perf, a11y, SEO, sec, design polish
├── decisions/ ADRs (lazy)
└── upgrades/ gap analysis vs skill defaultspackage.jsontsconfig.jsontailwind.config.{ts,js}@themeprisma/schema.prisma_app.tsxapp/layout.tsxmain.tsxsrc/components/src/server/src/queries/src/hooks/src/schemas/src/utils/fetcher.ts.github/workflows/.husky/README.mddocs/.obsidian/docs/app.jsonuseMarkdownLinks: falsecore-plugins.jsongraph.json| File | Covers | Lines target |
|---|---|---|
| Audiences (roles), surfaces (routes), domain glossary, revenue model, open questions | 60-120 |
| Stack, services, env vars, local setup, all | 80-150 |
| Code layout tree, canonical data flow, state boundaries (server cache vs UI state) | 50-100 |
| DB choice, ORM, validation lib, query cache, layers, naming conventions | 70-150 |
| Auth lib, session shape, role gating, server vs client read patterns | 40-80 |
| Daily commands, lint/format rules, TS config, Husky, Git/PR style, CI | 60-110 |
| Test runner, co-location, behavior-over-impl, mocking guidance, coverage | 50-90 |
| Spec-compliant. See DESIGN-MD-TEMPLATE.md. | 200-400 |
---
aliases: [Display Name, Alternative Name]
tags: [moc, architecture] # see tag list below
---architecture/data-layer.mdDATA.mdHome.mdAGENTS.md| Folder | Tag | Up-link target(s) |
|---|---|---|
| | |
| | |
| | |
| | |
| | |
| | Multi (the doc lists the relevant tiers) |
[[file]]../AGENTS.md../package.json↑ up-link## See also
- ↑ [[DATA]] · [[ENGINEERING]]
- (peer wikilinks)
- ↩ [[overview]] (or [[Home]])DESIGN.mdcolorstypographyroundedspacingcomponentstailwind.config.{ts,js}@themeprimaryon-primaryprimaryprimary-container{colors.primary}{rounded.lg}{typography.label-md}components:transparentrgba(...)npx @google/design.md lint docs/DESIGN.md0 errors, 0 warningsaliasestagsCLAUDE.mdAGENTS.mddocs/README.mdAGENTS.mdskills-lock.jsondocs/README.mddocs/Home.mdVault Homedocs/.obsidian/bookmarks.json#moc , index / map-of-content files (Home, README, top-level domain docs)
#architecture , architecture/* + ARCHITECTURE.md
#convention , conventions/* + ENGINEERING.md
#workflow , workflows/*
#quality , quality/* + DESIGN.md (also #moc)
#adr , decisions/*
#upgrade , upgrades/*graph.json🌐 Live skill: [name](.../SKILL.md)SKILL.md`zod-prisma-tanstack`skills-lock.jsonskills-lock.jsonDESIGN.mdtailwind.config.{ts,js}@theme↑ up-linktransition: alltext-tailwind.config.env.env.local.env.exampledocs/INDEX.mdprimaryprimaryprimary-containerREADME.mdVault HomeSkills Index.agents/skills/<name>/SKILL.mddocs/.obsidian/app.jsoncore-plugins.jsongraph.jsonbookmarks.jsondocs/Home.mdaliases: [Vault Home]docs/README.mdaliasestags↑ up-link🌐 Live skill: [...](.../SKILL.md)npx @google/design.md lint docs/DESIGN.md0 errors, 0 warningsCLAUDE.mdAGENTS.mdHome.mdAGENTS.md.obsidian/*.jsontailwind.config.{ts,js}@theme