{"id":"56d8e520-5ed8-4715-9c51-8ae5c74a7b8d","shortId":"dfBsKQ","kind":"skill","title":"document-generate","tagline":"Generate missing documentation from scratch for a feature, module, or entire project.\nUses the Diataxis framework (tutorial / how-to / reference / explanation) to produce\ncomplete, structured documentation. Can be invoked standalone or called by\n/document-release when it finds co","description":"## Preamble\n\n```bash\neval \"$(~/.vibestack/bin/vibe-slug 2>/dev/null)\" 2>/dev/null || SLUG=\"unknown\"\n_LEARN_FILE=\"${VIBESTACK_HOME:-$HOME/.vibestack}/projects/${SLUG:-unknown}/learnings.jsonl\"\nif [ -f \"$_LEARN_FILE\" ]; then\n  _LEARN_COUNT=$(wc -l < \"$_LEARN_FILE\" 2>/dev/null | tr -d ' ')\n  echo \"LEARNINGS: $_LEARN_COUNT entries loaded\"\n  if [ \"$_LEARN_COUNT\" -gt 5 ] 2>/dev/null; then\n    ~/.vibestack/bin/vibe-learnings-search --limit 5 2>/dev/null || true\n  fi\nelse\n  echo \"LEARNINGS: none yet\"\nfi\n```\n\n## Step 0: Detect base branch\n\nDetermine which branch this work targets, or the repo's default branch:\n\n```bash\nBASE=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null \\\n  || git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||' \\\n  || git rev-parse --verify origin/main >/dev/null 2>&1 && echo main \\\n  || git rev-parse --verify origin/master >/dev/null 2>&1 && echo master \\\n  || echo main)\necho \"Base branch: $BASE\"\n```\n\nUse `$BASE` in subsequent `git diff` / `git log` commands.\n\n---\n\n# Document Generate: Diataxis Documentation Writer\n\nYou are running the `/document-generate` workflow. Your job: produce **high-quality,\nstructured documentation** for features, modules, or an entire project. You research\nthe code thoroughly before writing a single line of documentation.\n\nThis skill can be invoked two ways:\n1. **Standalone** — the user points you at a feature, module, or project and says \"document this\"\n2. **From /document-release** — the coverage map identified gaps; you fill them\n\nYou follow the **Diataxis framework** — four quadrants of documentation, each serving a\ndifferent reader need:\n- **Tutorial** — learning-oriented, walks a newcomer through a working example step-by-step\n- **How-to** — task-oriented, shows how to accomplish a specific goal (assumes basic familiarity)\n- **Reference** — information-oriented, complete and accurate technical description\n- **Explanation** — understanding-oriented, explains why things work the way they do\n\n**Philosophy: research the whole, then write the parts.** Like an architect who surveys the\nentire site before drawing a single room, you read the full codebase surface before writing\nany documentation. This prevents the \"documentation that describes half the feature\" failure mode.\n\n---\n\n## Step 0a: Scope & Intent\n\n1. Determine what to document:\n   - **If invoked with a specific target** (feature, module, file, skill): scope is that target\n   - **If invoked for an entire project**: scope is the full project\n   - **If called from /document-release with gaps**: scope is the specific entities from the coverage map\n\n2. Use AskUserQuestion to confirm scope and ask about documentation target:\n\n   - A) Write documentation inline in existing files (README, ARCHITECTURE, etc.)\n   - B) Create standalone documentation files (e.g., `docs/` directory)\n   - C) Both — inline summaries in existing files + deep docs in standalone files\n\n   RECOMMENDATION: Choose C because it maximizes both discoverability and depth.\n\n3. Determine the output format:\n   - If the project already has a `docs/` directory, follow its conventions\n   - If the project uses a doc framework (Nextra, Docusaurus, MkDocs, VitePress), follow its format\n   - Otherwise, use plain Markdown files in `docs/`\n\n---\n\n## Step 1: Codebase Archaeology (Research Phase)\n\n**This is the most important step.** Do not skip or rush it. The quality of your documentation\nis directly proportional to how well you understand the code.\n\n1. **Map the project structure:**\n\n```bash\nfind . -type f -not -path \"./.git/*\" -not -path \"./node_modules/*\" -not -path \"./.vibestack/*\" -not -path \"./dist/*\" -not -path \"./build/*\" -not -path \"./.next/*\" | head -200\n```\n\n2. **Read the entry points.** Identify and read:\n   - README.md, ARCHITECTURE.md, CONTRIBUTING.md, CLAUDE.md / AGENTS.md\n   - package.json / Cargo.toml / pyproject.toml / go.mod (understand the project type)\n   - Main entry files (index.ts, main.rs, app.py, cmd/main.go)\n   - Configuration files and examples\n\n3. **Read the source code for each target entity.** For each feature/module you're documenting:\n   - Read the implementation files end-to-end (not just signatures)\n   - Read the tests — they reveal intended behavior, edge cases, and usage patterns\n   - Read related modules that the target depends on or is depended upon by\n   - Read any existing inline comments, especially `// NOTE:`, `// DESIGN:`, `// WHY:`\n\n4. **Build a concept map.** Before writing, produce an internal outline:\n\n```\nTarget: [feature/module name]\nPurpose: [one sentence — what problem does it solve?]\nKey concepts: [list the 3-5 concepts a reader must understand]\nPublic surface: [commands, functions, config options, API endpoints]\nDependencies: [what it needs from other modules]\nDependents: [what relies on it]\nEdge cases: [from reading tests and code]\nDesign decisions: [any non-obvious \"why\" choices]\n```\n\n5. Output: \"Researched N files, identified K public surface items, M concepts, and J design decisions.\"\n\n---\n\n## Step 2: Diataxis Partitioning\n\nFor each target entity, decide which Diataxis quadrants to produce. Not every entity needs all four.\n\n**Decision matrix:**\n\n| Entity type | Tutorial? | How-to? | Reference? | Explanation? |\n|---|---|---|---|---|\n| New feature a user interacts with | ✅ | ✅ | ✅ | Maybe |\n| CLI command or flag | Maybe | ✅ | ✅ | No |\n| Internal module/architecture | No | No | ✅ | ✅ |\n| Config option | No | ✅ | ✅ | No |\n| Design pattern / philosophy | No | No | No | ✅ |\n| API endpoint | Maybe | ✅ | ✅ | No |\n| Workflow (multi-step process) | ✅ | ✅ | No | Maybe |\n\nOutput the partition plan:\n\n```\nDocumentation plan:\n  [entity]              [tutorial] [how-to] [reference] [explanation]\n  Widget system         ✅ new     ✅ new   ✅ new      ✅ new\n  --verbose flag        ❌        ✅ new   ✅ inline   ❌\n  Bayesian scheduler    ❌        ❌       ✅ new      ✅ new\n```\n\nIf the plan has more than 5 documents to create, use AskUserQuestion to confirm before proceeding.\nFor smaller scopes, proceed directly.\n\n---\n\n## Step 3: Write Reference Documentation First\n\nReference docs are the foundation. They are factual, complete, and derived directly from code.\nWrite these before tutorials or how-tos because they establish the vocabulary.\n\n**Reference doc template:**\n\n```markdown\n# [Entity Name]\n\n[One paragraph: what it is, what it does, when you'd use it.]\n\n## API / Interface\n\n[Complete listing of public surface: functions, commands, config options, parameters.\nInclude types, defaults, and constraints. Pull directly from code — do not paraphrase\nloosely.]\n\n## Options / Configuration\n\n[If applicable: every option with its type, default, and effect.]\n\n## Examples\n\n[2-3 concrete examples showing actual usage. Prefer real command output or code that\nwould actually compile/run.]\n\n## Related\n\n[Links to other reference docs, how-tos, or explanations that provide context.]\n```\n\n**Rules for reference docs:**\n- Accuracy over elegance. Every claim must be traceable to code.\n- Include types, defaults, and constraints. \"Accepts a string\" is insufficient — \"Accepts a\n  string (max 256 chars, must match `^[a-z-]+$`)\" is reference-grade.\n- Show real examples that would actually work if copy-pasted.\n- Do not explain *why* — that belongs in explanation docs.\n\n---\n\n## Step 4: Write Explanation Documentation\n\nExplanation docs answer \"why does this work this way?\" They are the design rationale.\n\n**Explanation doc template:**\n\n```markdown\n# [Concept / Design Decision]\n\n[Opening paragraph: the problem this design solves, stated in terms a smart reader\nwho hasn't seen the code would understand.]\n\n## The problem\n\n[Concrete description of what goes wrong without this design. Real failure modes,\nnot abstract risks.]\n\n## The approach\n\n[How the design solves the problem. Include diagrams (ASCII or Mermaid) for\narchitectural concepts.]\n\n## Trade-offs\n\n[What was given up. Every design decision trades something — name it explicitly.]\n\n## Alternatives considered\n\n[If discoverable from code comments, ADRs, or git history: what was tried or\nrejected and why.]\n```\n\n**Rules for explanation docs:**\n- Lead with the problem, not the solution.\n- Use ASCII diagrams for architecture. They're grep-able, diff-friendly, and render everywhere.\n- Name trade-offs explicitly. \"We chose X over Y because Z\" is the gold standard.\n- Do not repeat reference material — link to it.\n\n---\n\n## Step 5: Write How-To Guides\n\nHow-tos are task-oriented. They assume the reader knows the basics and wants to accomplish\nsomething specific.\n\n**How-to doc template:**\n\n```markdown\n# How to [accomplish specific task]\n\n[One sentence: what you'll accomplish and the end result.]\n\n## Prerequisites\n\n[What the reader needs before starting. Be specific — versions, installed tools,\nconfig state.]\n\n## Steps\n\n1. [Action verb] [specific instruction]\n\n   ```bash\n   [exact command]\n   ```\n\n   [Expected output or result, if non-obvious.]\n\n2. [Next step...]\n\n## Verification\n\n[How to confirm it worked. A command, a URL to visit, a test to run.]\n\n## Troubleshooting\n\n[Common failure modes and their fixes. Pull from tests and error handling code.]\n```\n\n**Rules for how-to docs:**\n- Title starts with \"How to\" — no exceptions. This is the reader's entry point.\n- Every step must be actionable. No \"consider whether...\" — instead \"Run X\" or \"Add Y to Z\".\n- Include verification. The reader should never wonder \"did it work?\"\n- Troubleshooting section is mandatory if the task can fail.\n\n---\n\n## Step 6: Write Tutorials\n\nTutorials are learning-oriented. They take a newcomer from zero to a working example.\nThese are the hardest to write well and the most valuable.\n\n**Tutorial doc template:**\n\n```markdown\n# [Tutorial title — describes what you'll build/learn]\n\n[Opening paragraph: what you'll build, why it's useful, and what you'll understand\nby the end. Keep it concrete — \"You'll build a working X that does Y\" not\n\"This tutorial covers X\".]\n\n## What you'll need\n\n[Prerequisites: tools, versions, prior knowledge. Link to installation guides.]\n\n## Step 1: [Set up the foundation]\n\n[Start from a clean state. Show every command. Explain what each does on first\nencounter — but briefly, not a lecture.]\n\n```bash\n[exact command]\n```\n\n[Brief explanation of what just happened.]\n\n## Step 2: [Build the first working piece]\n\n[Get to a working, visible result as fast as possible. The reader should see\nsomething happen within the first 3 steps.]\n\n...\n\n## Step N: [Final step]\n\n## What you built\n\n[Recap: what the reader now has and what it can do. Link to reference docs\nfor deeper exploration. Suggest next steps.]\n```\n\n**Rules for tutorials:**\n- **Time to first result < 3 steps.** If the reader hasn't seen something work by step 3,\n  the tutorial is too slow.\n- Every step must produce a visible change or output. No \"now configure X\" without showing\n  what changes.\n- Use the exact commands the reader will type. No \"run the appropriate command\" abstractions.\n- Error paths: if a step commonly fails, show the error and the fix inline.\n- End with \"What you built\" — connect the tutorial back to the real use case.\n\n---\n\n## Step 7: Cross-Document Linking & Discoverability\n\nAfter writing all documents:\n\n1. **Add cross-links between quadrants.** Every reference doc should link to its how-to.\n   Every how-to should link to its reference. Tutorials should link to both.\n\n2. **Update entry-point files.** Add references to new docs in:\n   - README.md — add to documentation section or table of contents\n   - CLAUDE.md / AGENTS.md — add to project structure if relevant\n   - Any existing docs index or sidebar config\n\n3. **Verify discoverability.** Every new document must be reachable within 2 clicks from\n   README.md. If a docs framework is in use, add to the sidebar/nav config.\n\n4. **Check for broken links.** Grep for any `](` references that point to files that don't exist.\n\n---\n\n## Step 8: Quality Self-Review\n\nBefore committing, review each document against these criteria:\n\n**Accuracy gate:**\n- [ ] Every code example compiles / runs / passes if copy-pasted\n- [ ] Every API description matches the actual code signature\n- [ ] Every command shown produces the output described\n- [ ] No stale references to renamed/removed entities\n\n**Completeness gate:**\n- [ ] Reference docs cover 100% of public surface\n- [ ] How-tos cover the top 3 tasks a user would attempt\n- [ ] Tutorials get to a working result in ≤3 steps\n- [ ] Explanation docs name trade-offs, not just choices\n\n**Voice gate:**\n- [ ] Written for a smart person who hasn't seen the code\n- [ ] No jargon without brief inline gloss on first use\n- [ ] Active voice, concrete nouns, short sentences\n- [ ] \"You can now...\" not \"The system provides...\"\n\nFix any failures before proceeding.\n\n---\n\n## Step 9: Commit & Output\n\n1. Stage new documentation files by name (never `git add -A` or `git add .`).\n\n2. Create a commit:\n\n```bash\ngit commit -m \"$(cat <<'EOF'\ndocs: generate [scope] documentation (Diataxis)\n\n[One-line summary of what was documented]\n\nQuadrants: [list which quadrants were produced]\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\nEOF\n)\"\n```\n\n3. Push to the current branch:\n\n```bash\ngit push\n```\n\n4. **If a PR exists**, update the PR body with a `## Documentation Generated` section listing\n   every new file with its Diataxis quadrant and a one-line description:\n\n```\n## Documentation Generated\n\n| File | Quadrant | Description |\n|------|----------|-------------|\n| docs/tutorial-getting-started.md | Tutorial | Walk-through from install to first working example |\n| docs/reference-widget-api.md | Reference | Complete widget API with types, defaults, examples |\n| docs/explanation-bayesian-scheduler.md | Explanation | Why the scheduler uses Bayesian inference |\n| docs/howto-custom-widgets.md | How-to | Creating and registering custom widgets |\n```\n\n5. Output a structured summary:\n\n```\nDocumentation generated:\n  Scope: [what was documented]\n  Files: [N] new, [M] updated\n  Coverage:\n    Tutorials:    [count] ([list])\n    How-tos:      [count] ([list])\n    Reference:    [count] ([list])\n    Explanation:  [count] ([list])\n  Quality: [pass/fail on each gate]\n```\n\n---\n\n## Important Rules\n\n- **Research before writing.** Step 1 is not optional. Read the code, read the tests, read the\n  existing docs. Insufficient research produces surface-level documentation.\n- **Accuracy is non-negotiable.** Every code example must work. Every API description must match\n  the actual code. If you're unsure about a detail, read the source again — do not guess.\n- **Diataxis quadrants serve different readers.** Do not mix tutorial content into reference docs\n  or reference content into how-tos. Each quadrant has a specific reader in a specific mode.\n- **Time to first result in tutorials.** If a reader can't see something working by step 3,\n  restructure the tutorial.\n- **Cross-link everything.** Isolated docs are undiscoverable docs.\n- **Voice: friendly, concrete, user-forward.** Write like you're explaining to a smart person\n  who hasn't seen the code. Never corporate, never academic.\n- **Completeness over minimalism.** AI makes comprehensive documentation cheap. Don't write\n  \"minimal viable docs\" — write complete docs. Boil the lake.\n\n## Capture Learnings\n\nIf you discovered a non-obvious documentation pattern, Diataxis pitfall, or source-of-truth\nquirk during this session, log it for future sessions:\n\n```bash\n~/.vibestack/bin/vibe-learnings-log '{\"skill\":\"document-generate\",\"type\":\"TYPE\",\"key\":\"SHORT_KEY\",\"insight\":\"DESCRIPTION\",\"confidence\":N,\"source\":\"SOURCE\",\"files\":[\"path/to/relevant/file\"]}'\n```\n\n**Types:** `pattern` (reusable approach), `pitfall` (what NOT to do), `preference`\n(user stated), `architecture` (structural decision).\n\n**Only log genuine discoveries.** A good test: would this insight save time in a future session?","tags":["document","generate","vibestack","timurgaleev","agent-skills","ai-agents","claude-code","cursor-ide","developer-tools","kiro","mcp","prompt-engineering"],"capabilities":["skill","source-timurgaleev","skill-document-generate","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-cursor-ide","topic-developer-tools","topic-kiro","topic-mcp","topic-prompt-engineering","topic-slash-commands"],"categories":["vibestack"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/timurgaleev/vibestack/document-generate","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add timurgaleev/vibestack","source_repo":"https://github.com/timurgaleev/vibestack","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (15,840 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:21.039Z","embedding":null,"createdAt":"2026-05-18T19:06:21.039Z","updatedAt":"2026-05-18T19:06:21.039Z","lastSeenAt":"2026-05-18T19:06:21.039Z","tsv":"'-200':558 '-3':942 '-5':678 '/.git':541 '/.next':556 '/.vibestack':547 '/.vibestack/bin/vibe-learnings-log':2235 '/.vibestack/bin/vibe-learnings-search':91 '/.vibestack/bin/vibe-slug':46 '/build':553 '/dev/null':48,50,74,89,95,131,138,148,159 '/dist':550 '/document-generate':188 '/document-release':38,242,397 '/learnings.jsonl':61 '/node_modules':544 '/projects':58 '0':105 '0a':361 '1':150,161,224,364,498,530,1258,1452,1637,1877,2050 '100':1799 '2':47,49,73,88,94,130,137,149,160,240,409,559,736,941,1274,1487,1668,1714,1891 '256':1000 '3':460,591,677,852,1512,1549,1561,1704,1809,1822,1929,2149 '4':651,1032,1730,1938 '4.7':1926 '5':87,93,719,836,1196,2008 '6':1363 '7':1627 '8':1748 '9':1874 'a-z':1004 'abl':1164 'abstract':1093,1597 'academ':2186 'accept':991,996 'accomplish':290,1219,1230,1238 'accur':303 'accuraci':976,1761,2071 'action':1259,1331 'activ':1855 'actual':946,956,1016,1778,2087 'add':1339,1638,1674,1681,1691,1725,1886,1890 'adr':1133 'agents.md':571,1690 'ai':2190 'alreadi':468 'altern':1126 'answer':1038 'api':690,792,903,1774,1986,2082 'app.py':585 'applic':931 'approach':1096,2256 'appropri':1595 'archaeolog':500 'architect':328 'architectur':428,1109,1159,2265 'architecture.md':568 'ascii':1105,1156 'ask':416 'askuserquest':411,841 'assum':294,1210 'attempt':1814 'author':1922 'b':430 'back':1620 'base':107,122,167,169,171 'baserefnam':127,129 'bash':44,121,535,1263,1477,1895,1935,2234 'basic':295,1215 'bayesian':826,1997 'behavior':623 'belong':1027 'bodi':1946 'boil':2204 'branch':108,111,120,168,1934 'brief':1480,1849 'briefli':1473 'broken':1733 'build':652,1408,1426,1488 'build/learn':1402 'built':1520,1616 'c':438,452 'call':36,395 'captur':2207 'cargo.toml':573 'case':625,705,1625 'cat':1899 'chang':1573,1583 'char':1001 'cheap':2194 'check':1731 'choic':718,1832 'choos':451 'chose':1177 'claim':980 'claud':1924 'claude.md':570,1689 'clean':1460 'cli':772 'click':1715 'cmd/main.go':586 'co':42,1921 'co-authored-bi':1920 'code':208,529,595,710,870,923,953,985,1075,1131,1306,1764,1779,1845,2056,2077,2088,2182 'codebas':343,499 'command':178,686,773,911,950,1265,1284,1464,1479,1587,1596,1782 'comment':646,1132 'commit':1754,1875,1894,1897 'common':1294,1603 'compil':1766 'compile/run':957 'complet':28,301,865,905,1794,1984,2187,2202 'comprehens':2192 'concept':654,674,679,730,1054,1110 'concret':943,1080,1423,1857,2164 'confid':2247 'config':688,782,912,1255,1703,1729 'configur':587,929,1578 'confirm':413,843,1280 'connect':1617 'consid':1127,1333 'constraint':919,990 'content':1688,2112,2118 'context':971 'contributing.md':569 'convent':475 'copi':1020,1771 'copy-past':1019,1770 'corpor':2184 'count':68,80,85,2026,2031,2034,2037 'cover':1436,1798,1806 'coverag':244,407,2024 'creat':431,839,1892,2003 'criteria':1760 'cross':1629,1640,2154 'cross-docu':1628 'cross-link':1639,2153 'current':1933 'custom':2006 'd':76,900 'decid':743 'decis':712,734,755,1056,1120,2267 'deep':445 'deeper':1537 'default':119,917,937,988,1989 'depend':635,639,692,699 'depth':459 'deriv':867 'describ':354,1398,1787 'descript':305,1081,1775,1965,1970,2083,2246 'design':649,711,733,786,1048,1055,1062,1088,1099,1119 'detail':2095 'detect':106 'determin':109,365,461 'diagram':1104,1157 'diataxi':18,181,254,737,745,1905,1958,2103,2218 'diff':175,1166 'diff-friend':1165 'differ':263,2106 'direct':521,850,868,921 'directori':437,472 'discov':2211 'discover':457,1129,1632,1706 'discoveri':2271 'doc':436,446,471,481,496,858,885,963,975,1030,1037,1051,1147,1225,1312,1393,1535,1646,1678,1699,1720,1797,1825,1901,2063,2115,2158,2161,2200,2203 'docs/explanation-bayesian-scheduler.md':1991 'docs/howto-custom-widgets.md':1999 'docs/reference-widget-api.md':1982 'docs/tutorial-getting-started.md':1971 'document':2,6,30,179,182,197,216,238,259,348,352,368,418,422,433,519,605,807,837,855,1035,1630,1636,1683,1709,1757,1880,1904,1913,1949,1966,2013,2018,2070,2193,2216,2238 'document-gener':1,2237 'docusaurus':484 'draw':335 'e.g':435 'echo':77,99,151,162,164,166 'edg':624,704 'effect':939 'eleg':978 'els':98 'encount':1471 'end':611,613,1241,1420,1612 'end-to-end':610 'endpoint':691,793 'entir':14,203,332,387 'entiti':404,599,742,751,757,809,888,1793 'entri':81,562,581,1325,1671 'entry-point':1670 'eof':1900,1928 'error':1304,1598,1607 'especi':647 'establish':881 'etc':429 'eval':45 'everi':750,932,979,1118,1327,1463,1567,1644,1654,1707,1763,1773,1781,1953,2076,2081 'everyth':2156 'everywher':1170 'exact':1264,1478,1586 'exampl':276,590,940,944,1013,1380,1765,1981,1990,2078 'except':1319 'exist':425,443,644,1698,1746,1942,2062 'expect':1266 'explain':310,1024,1465,2172 'explan':25,306,764,815,968,1029,1034,1036,1050,1146,1481,1824,1992,2036 'explicit':1125,1175 'explor':1538 'f':63,538 'factual':864 'fail':1361,1604 'failur':358,1090,1295,1870 'familiar':296 'fast':1500 'featur':11,199,232,357,375,766 'feature/module':602,663 'fi':97,103 'file':54,65,72,377,426,434,444,449,494,582,588,609,723,1673,1742,1881,1955,1968,2019,2251 'fill':249 'final':1516 'find':41,536 'first':856,1470,1490,1511,1547,1853,1979,2135 'fix':1299,1610,1868 'flag':775,823 'follow':252,473,487 'format':464,489 'forward':2167 'foundat':861,1456 'four':256,754 'framework':19,255,482,1721 'friend':1167,2163 'full':342,392 'function':687,910 'futur':2232,2282 'gap':247,399 'gate':1762,1795,1834,2043 'generat':3,4,180,1902,1950,1967,2014,2239 'genuin':2270 'get':1493,1816 'gh':123 'git':132,142,153,174,176,1135,1885,1889,1896,1936 'given':1116 'gloss':1851 'go.mod':575 'goal':293 'goe':1084 'gold':1185 'good':2273 'grade':1010 'grep':1163,1735 'grep-abl':1162 'gt':86 'guess':2102 'guid':1201,1450 'half':355 'handl':1305 'happen':1485,1508 'hardest':1384 'hasn':1071,1554,1841,2178 'head':557 'high':194 'high-qual':193 'histori':1136 'home':56 'home/.vibestack':57 'how-to':21,281,760,811,876,964,1198,1202,1222,1309,1651,1655,1803,2000,2028,2120 'identifi':246,564,724 'implement':608 'import':507,2044 'includ':915,986,1103,1343 'index':1700 'index.ts':583 'infer':1998 'inform':299 'information-ori':298 'inlin':423,440,645,825,1611,1850 'insight':2245,2277 'instal':1253,1449,1977 'instead':1335 'instruct':1262 'insuffici':995,2064 'intend':622 'intent':363 'interact':769 'interfac':904 'intern':660,778 'invok':33,221,370,384 'isol':2157 'item':728 'j':732 'jargon':1847 'job':191 'json':126 'k':725 'keep':1421 'key':673,2242,2244 'know':1213 'knowledg':1446 'l':70 'lake':2206 'lead':1148 'learn':53,64,67,71,78,79,84,100,268,1369,2208 'learning-ori':267,1368 'lectur':1476 'level':2069 'like':326,2169 'limit':92 'line':214,1908,1964 'link':959,1192,1447,1532,1631,1641,1648,1659,1665,1734,2155 'list':675,906,1915,1952,2027,2032,2035,2038 'll':1237,1401,1407,1416,1425,1440 'load':82 'log':177,2229,2269 'loos':927 'm':729,1898,2022 'main':152,165,580 'main.rs':584 'make':2191 'mandatori':1356 'map':245,408,531,655 'markdown':493,887,1053,1227,1395 'master':163 'match':1003,1776,2085 'materi':1191 'matrix':756 'max':999 'maxim':455 'mayb':771,776,794,802 'mermaid':1107 'minim':2189,2198 'miss':5 'mix':2110 'mkdoc':485 'mode':359,1091,1296,2132 'modul':12,200,233,376,631,698 'module/architecture':779 'multi':798 'multi-step':797 'must':682,981,1002,1329,1569,1710,2079,2084 'n':722,1515,2020,2248 'name':664,889,1123,1171,1826,1883 'need':265,695,752,1247,1441 'negoti':2075 'never':1348,1884,2183,2185 'new':765,818,819,820,821,824,828,829,1677,1708,1879,1954,2021 'newcom':272,1374 'next':1275,1540 'nextra':483 'non':715,1272,2074,2214 'non-negoti':2073 'non-obvi':714,1271,2213 'none':101 'noreply@anthropic.com':1927 'note':648 'noun':1858 'obvious':716,1273,2215 'off':1113,1174,1829 'one':666,890,1233,1907,1963 'one-lin':1906,1962 'open':1057,1403 'option':689,783,913,928,933,2053 'opus':1925 'orient':269,286,300,309,1208,1370 'origin/main':147 'origin/master':158 'otherwis':490 'outlin':661 'output':463,720,803,951,1267,1575,1786,1876,2009 'package.json':572 'paragraph':891,1058,1404 'paramet':914 'paraphras':926 'pars':145,156 'part':325 'partit':738,805 'pass':1768 'pass/fail':2040 'past':1021,1772 'path':540,543,546,549,552,555,1599 'path/to/relevant/file':2252 'pattern':628,787,2217,2254 'person':1839,2176 'phase':502 'philosophi':318,788 'piec':1492 'pitfal':2219,2257 'plain':492 'plan':806,808,832 'point':228,563,1326,1672,1740 'possibl':1502 'pr':124,1941,1945 'preambl':43 'prefer':948,2262 'prerequisit':1243,1442 'prevent':350 'prior':1445 'problem':669,1060,1079,1102,1151 'proceed':845,849,1872 'process':800 'produc':27,192,658,748,1570,1784,1919,2066 'project':15,204,235,388,393,467,478,533,578,1693 'proport':522 'provid':970,1867 'public':684,726,908,1801 'pull':920,1300 'purpos':665 'push':1930,1937 'pyproject.toml':574 'q':128 'quadrant':257,746,1643,1914,1917,1959,1969,2104,2124 'qualiti':195,516,1749,2039 'quirk':2225 'rational':1049 're':604,1161,2091,2171 'reachabl':1712 'read':340,560,566,592,606,617,629,642,707,2054,2057,2060,2096 'reader':264,681,1069,1212,1246,1323,1346,1504,1524,1553,1589,2107,2128,2141 'readm':427 'readme.md':567,1680,1717 'real':949,1012,1089,1623 'recap':1521 'recommend':450 'ref':135 'refer':24,297,763,814,854,857,884,962,974,1009,1190,1534,1645,1662,1675,1738,1790,1796,1983,2033,2114,2117 'reference-grad':1008 'refs/remotes/origin':141 'refs/remotes/origin/head':136 'regist':2005 'reject':1141 'relat':630,958 'relev':1696 'reli':701 'renamed/removed':1792 'render':1169 'repeat':1189 'repo':117 'research':206,319,501,721,2046,2065 'restructur':2150 'result':1242,1269,1498,1548,1820,2136 'reusabl':2255 'rev':144,155 'rev-pars':143,154 'reveal':621 'review':1752,1755 'risk':1094 'room':338 'rule':972,1144,1307,1542,2045 'run':186,1292,1336,1593,1767 'rush':513 'save':2278 'say':237 'schedul':827,1995 'scope':362,379,389,400,414,848,1903,2015 'scratch':8 'section':1354,1684,1951 'sed':139 'see':1506,2144 'seen':1073,1556,1843,2180 'self':1751 'self-review':1750 'sentenc':667,1234,1860 'serv':261,2105 'session':2228,2233,2283 'set':1453 'short':1859,2243 'show':287,945,1011,1462,1581,1605 'shown':1783 'sidebar':1702 'sidebar/nav':1728 'signatur':616,1780 'singl':213,337 'site':333 'skill':218,378,2236 'skill-document-generate' 'skip':511 'slow':1566 'slug':51,59 'smaller':847 'smart':1068,1838,2175 'solut':1154 'solv':672,1063,1100 'someth':1122,1220,1507,1557,2145 'sourc':594,2098,2222,2249,2250 'source-of-truth':2221 'source-timurgaleev' 'specif':292,373,403,1221,1231,1251,1261,2127,2131 'stage':1878 'stale':1789 'standalon':34,225,432,448 'standard':1186 'start':1249,1314,1457 'state':1064,1256,1461,2264 'step':104,278,280,360,497,508,735,799,851,1031,1195,1257,1276,1328,1362,1451,1486,1513,1514,1517,1541,1550,1560,1568,1602,1626,1747,1823,1873,2049,2148 'step-by-step':277 'string':993,998 'structur':29,196,534,1694,2011,2266 'subsequ':173 'suggest':1539 'summari':441,1909,2012 'surfac':344,685,727,909,1802,2068 'surface-level':2067 'survey':330 'symbol':134 'symbolic-ref':133 'system':817,1866 'tabl':1686 'take':1372 'target':114,374,382,419,598,634,662,741 'task':285,1207,1232,1359,1810 'task-ori':284,1206 'technic':304 'templat':886,1052,1226,1394 'term':1066 'test':619,708,1290,1302,2059,2274 'thing':312 'thorough':209 'time':1545,2133,2279 'titl':1313,1397 'tool':1254,1443 'top':1808 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-cursor-ide' 'topic-developer-tools' 'topic-kiro' 'topic-mcp' 'topic-prompt-engineering' 'topic-slash-commands' 'tos':878,966,1204,1805,2030,2122 'tr':75 'traceabl':983 'trade':1112,1121,1173,1828 'trade-off':1111,1172,1827 'tri':1139 'troubleshoot':1293,1353 'true':96 'truth':2224 'tutori':20,266,759,810,874,1365,1366,1392,1396,1435,1544,1563,1619,1663,1815,1972,2025,2111,2138,2152 'two':222 'type':537,579,758,916,936,987,1591,1988,2240,2241,2253 'understand':308,527,576,683,1077,1417 'understanding-ori':307 'undiscover':2160 'unknown':52,60 'unsur':2092 'updat':1669,1943,2023 'upon':640 'url':1286 'usag':627,947 'use':16,170,410,479,491,840,901,1155,1412,1584,1624,1724,1854,1996 'user':227,768,1812,2166,2263 'user-forward':2165 'valuabl':1391 'verb':1260 'verbos':822 'verif':1277,1344 'verifi':146,157,1705 'version':1252,1444 'viabl':2199 'vibestack':55 'view':125 'visibl':1497,1572 'visit':1288 'vitepress':486 'vocabulari':883 'voic':1833,1856,2162 'walk':270,1974 'walk-through':1973 'want':1217 'way':223,315,1044 'wc':69 'well':525,1387 'whether':1334 'whole':321 'widget':816,1985,2007 'within':1509,1713 'without':1086,1580,1848 'wonder':1349 'work':113,275,313,1017,1042,1282,1352,1379,1428,1491,1496,1558,1819,1980,2080,2146 'workflow':189,796 'would':955,1015,1076,1813,2275 'write':211,323,346,421,657,853,871,1033,1197,1364,1386,1634,2048,2168,2197,2201 'writer':183 'written':1835 'wrong':1085 'x':1178,1337,1429,1437,1579 'y':1180,1340,1432 'yet':102 'z':1006,1182,1342 'zero':1376","prices":[{"id":"2dff26b3-0837-437f-a1e4-592649379c41","listingId":"56d8e520-5ed8-4715-9c51-8ae5c74a7b8d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"timurgaleev","category":"vibestack","install_from":"skills.sh"},"createdAt":"2026-05-18T19:06:21.039Z"}],"sources":[{"listingId":"56d8e520-5ed8-4715-9c51-8ae5c74a7b8d","source":"github","sourceId":"timurgaleev/vibestack/document-generate","sourceUrl":"https://github.com/timurgaleev/vibestack/tree/main/skills/document-generate","isPrimary":false,"firstSeenAt":"2026-05-18T19:06:21.039Z","lastSeenAt":"2026-05-18T19:06:21.039Z"}],"details":{"listingId":"56d8e520-5ed8-4715-9c51-8ae5c74a7b8d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"timurgaleev","slug":"document-generate","github":{"repo":"timurgaleev/vibestack","stars":15,"topics":["agent-skills","ai-agents","claude-code","cursor-ide","developer-tools","kiro","mcp","prompt-engineering","slash-commands"],"license":"mit","html_url":"https://github.com/timurgaleev/vibestack","pushed_at":"2026-05-18T18:19:05Z","description":"vibestack is a portable skill pack for AI coding agents. Slash commands like /office-hours, /ship, /investigate, /tdd, /review install once and work across every agent that supports the Agent Skills open standard — Claude Code, Cursor, Kiro, and a growing list of others. ","skill_md_sha":"8fba13f9da2d777dcb9523088598c8f8e86801c9","skill_md_path":"skills/document-generate/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/timurgaleev/vibestack/tree/main/skills/document-generate"},"layout":"multi","source":"github","category":"vibestack","frontmatter":{"name":"document-generate","description":"Generate missing documentation from scratch for a feature, module, or entire project.\nUses the Diataxis framework (tutorial / how-to / reference / explanation) to produce\ncomplete, structured documentation. Can be invoked standalone or called by\n/document-release when it finds coverage gaps. Use when asked to \"write docs\",\n\"generate documentation\", \"document this feature\", \"create a tutorial\", or\n\"explain this module\"."},"skills_sh_url":"https://skills.sh/timurgaleev/vibestack/document-generate"},"updatedAt":"2026-05-18T19:06:21.039Z"}}