Skip to main content

documenting-module

Use when documenting modules (libraries/addons) in create-faster MDX docs - covers standalone module pages with supported stacks, dependencies, env vars, and file structures

Informations de source

Dépôt
plvo/create-faster
Dernière activité de la source
11 février 2026 à 15:52
Langue détectée de SKILL.md
anglais
Étoiles
28
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
documenting-module
description
Use when documenting modules (libraries/addons) in create-faster MDX docs - covers standalone module pages with supported stacks, dependencies, env vars, and file structures
# Documenting Module ## Overview Document what create-faster configures for each module. Focus on technical changes, not library features. **Core principle:** Document OUR additions, link to THEIR docs. Each module gets its own standalone page. ## When to Use Use when: - Adding a new module documentation page - Updating existing module docs after template changes - Extracting module docs from stack pages into standalone pages Do NOT use for: - Stack documentation (use `documenting-stack` skill) - Database/ORM documentation (use `documenting-stack` skill) - General library tutorials (link to official docs) ## Architecture Context **Where things live:** - Module metadata: `META.libraries[name]` in `apps/cli/src/__meta__.ts` - Module templates: `apps/cli/templates/libraries/{library}/` - Documentation pages: `apps/www/content/docs/modules/{category}/{module}.mdx` - Dependencies/scripts: `META.libraries[name].packageJson` (NOT in templates) - Env vars: `META.libraries[name].envs` (NOT in templates) - Supported stacks: `META.libraries[name].support.stacks` - Requirements: `META.libraries[name].require` - Monorepo scope: `META.libraries[name].mono` **Package.json is programmatic.** Dependencies are declared in META, not in template files. **Env vars are programmatic.** Check `envs` fields in META, not template files. ## Structure Template ```markdown --- title: Module Name description: One-line description of what create-faster sets up for this module --- ## Presentation Brief description of what you get (1-2 sentences). [→ Official Documentation](https://...) **Supported stacks:** Next.js, TanStack Start (list from META.support.stacks) **Requirements:** ORM (Drizzle or Prisma) — only if META.require exists ## What create-faster adds **Technical changes:** Files added: \`\`\` src/ ├── path/to/ │ └── file.tsx # Description └── config.json # Description # Turborepo only: packages/name/ └── package.json # Description \`\`\` **Modified files:** - `file.tsx` - What changed and why **Dependencies:** - List from META.libraries[name].packageJson.dependencies - List from META.libraries[name].packageJson.devDependencies (as dev deps) **Environment variables:** (only if META.libraries[name].envs exists) - `VAR_NAME` - Purpose and scope **Turborepo mode:** How it behaves differently in monorepo (package name, imports, scope). **Integration notes:** How it works with ORM/database/other modules (only if relevant). ``` ## Documentation Workflow ### Step 1: Analyze META for Module Metadata **CRITICAL: META is the source of truth for dependencies, env vars, and support.** ```bash # Check module metadata in META grep -A 30 "'modulename'" apps/cli/src/__meta__.ts # Check supported stacks grep -B 2 -A 5 "'modulename'" apps/cli/src/__meta__.ts | grep support # Check requirements grep -A 3 "'modulename'" apps/cli/src/__meta__.ts | grep require # Check mono config grep -A 3 "'modulename'" apps/cli/src/__meta__.ts | grep mono # Check env vars grep -A 10 "'modulename'" apps/cli/src/__meta__.ts | grep -A 5 envs ``` ### Step 2: Analyze Template Files ```bash # Find all template files for module ls -la apps/cli/templates/libraries/{modulename}/ # Check for frontmatter (only/mono filters) grep -l '^---' apps/cli/templates/libraries/{modulename}/*.hbs head -5 apps/cli/templates/libraries/{modulename}/*.hbs # Check for stack-specific templates (.nextjs.hbs, .expo.hbs) ls apps/cli/templates/libraries/{modulename}/*.*.hbs ``` Document EXACTLY what files we create/modify. Cross-reference every claim with actual template files AND META. ### Step 3: Structure Document **Frontmatter (YAML):** - `title`: Module display name (from META.libraries[name].label) - `description`: What create-faster sets up (NOT what the library does) **CRITICAL - Don't add `# Title`:** Title in frontmatter already renders as H1. Adding `# Title` creates duplicate. **Document structure:** 1. `## Presentation` - Brief description + link to official docs 2. Supported stacks list 3. Requirements (if any) 4. `## What create-faster adds` - Technical changes ### Step 4: Focus on Technical Changes **DO document:** - Files we create (verifiable in `apps/cli/templates/libraries/`) - Files we modify (verifiable in templates with conditionals) - Dependencies from META `packageJson.dependencies` - Dev dependencies from META `packageJson.devDependencies` - Env vars from META `envs` fields (with scope) - Turborepo vs single repo differences (check `mono` config and frontmatter `only` filters) - `appPackageJson` dependencies (installed in the app, not the module package) - `exports` from META `packageJson.exports` (package entry points) **DON'T document:** - What the library does (official docs) - Generic "benefits" or "why use" - Basic usage examples (they have tutorials) - Dependencies not in META (verify!) - Configuration that comes from the library itself, not our templates ### Step 5: Verify Every Claim **MANDATORY verification before publishing:** ```bash # Verify dependencies exist in META grep "'modulename'" -A 30 apps/cli/src/__meta__.ts | grep -A 10 packageJson # Verify template files exist ls apps/cli/templates/libraries/{modulename}/ # Verify supported stacks grep "'modulename'" -A 10 apps/cli/src/__meta__.ts | grep stacks # Verify env vars grep "'modulename'" -A 20 apps/cli/src/__meta__.ts | grep -A 5 envs ``` Every dependency, env var, and file reference MUST be verified against the codebase. ## Fumadocs Page Placement Module pages live under `apps/www/content/docs/modules/{category}/`: ``` content/docs/modules/ ├── meta.json # Folder config ├── ui/ │ ├── meta.json │ ├── shadcn.mdx │ ├── next-themes.mdx │ └── nativewind.mdx ├── content/ │ ├── meta.json │ ├── mdx.mdx │ └── pwa.mdx ├── auth/ │ ├── meta.json │ └── better-auth.mdx ├── api/ │ ├── meta.json │ └── trpc.mdx ├── data-fetching/ │ ├── meta.json │ ├── tanstack-query.mdx │ └── tanstack-devtools.mdx ├── forms/ │ ├── meta.json │ ├── react-hook-form.mdx │ └── tanstack-form.mdx └── deploy/ ├── meta.json └── aws-lambda.mdx ``` Each `meta.json` sets the folder title for the sidebar: ```json { "title": "Category Name" } ``` Categories match `META.libraries[name].category` values. ## RED FLAGS - You're Documenting Wrong **STOP if you write:** - `# Module Name` title (title in frontmatter already renders as H1) - "Why use X?" explanations (that's official docs' job) - Generic library features (link to docs instead) - Dependencies not verified in META - Missing supported stacks list - Module page inside a stack folder (modules are standalone) ## Common Mistakes | Mistake | Fix | |---------|-----| | Explaining library features | Link to official docs, focus on our additions | | No file structure | Show tree with files created | | Missing supported stacks | Check META.libraries[name].support.stacks | | Unverified dependencies | Check `META.libraries[name].packageJson` | | Missing turborepo differences | Check META `mono` config and frontmatter `only` filters | | Putting module page in stack folder | Module pages go in `modules/{category}/` | | Forgetting appPackageJson | Some modules install deps in the app too (e.g., tRPC) | ## Rationalization Table | Excuse | Reality | |--------|---------| | "Need to explain what the library does" | Official docs exist. Link to them. | | "Users need usage examples" | Official docs have tutorials. We document setup. | | "Dependencies are obvious" | Verify against META. Old docs had errors. | | "Single file, no tree needed" | Even one file gets a tree for consistency. | | "Turborepo mode is the same" | Check mono config. Package creation differs. | ## Template Checklist **Frontmatter:** - [ ] `title:` in YAML (don't add `# Title` after) - [ ] `description:` describes what create-faster sets up **Document:** - [ ] `## Presentation` with brief description - [ ] Link to official documentation (→ syntax, MANDATORY) - [ ] Supported stacks listed - [ ] Requirements listed (if any from META.require) - [ ] `## What create-faster adds` section - [ ] Files added with tree structure - [ ] Modified files listed - [ ] Dependencies from META - [ ] Env vars from META (if any) - [ ] Turborepo differences noted - [ ] Integration notes (if applicable) **Verification (MANDATORY):** - [ ] Every dependency verified in `META.libraries[name].packageJson` - [ ] Every file reference verified in `apps/cli/templates/libraries/` - [ ] Supported stacks verified in `META.libraries[name].support` - [ ] Env vars verified in META `envs` fields - [ ] Requirements verified in META `require` fields - [ ] Monorepo scope verified in META `mono` config
Voir sur GitHub