# Generate Docs

> Generate configuration reference documentation from conclaude-schema.json using src/bin/generate-docs.rs. USE WHEN the schema file changes, configuration options are added/modified, or documentation needs to be regenerated for the website.

- Skill: `majiayu000/generate-docs` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/generate-docs`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/generate-docs/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/generate-docs

---


# Generate Documentation

This skill helps you generate the configuration reference documentation for conclaude. The documentation is generated from `conclaude-schema.json` and output as Markdown files ready for the Starlight-based documentation site.

## USE WHEN

**Use this skill when:**

- The `conclaude-schema.json` file has been updated
- New configuration sections or properties have been added
- Configuration descriptions or examples have been modified in the schema
- Documentation is out of sync with the configuration schema
- Preparing documentation updates for a release
- Setting up or rebuilding the documentation site
- Schema descriptions, types, or default values have changed
- Adding new configuration examples to the schema

**Do NOT use this skill when:**

- Just viewing or reading the existing documentation
- Making changes unrelated to configuration
- Working on non-documentation features
- The schema hasn't changed since last doc generation

## How It Works

The documentation generator (`src/bin/generate-docs.rs`) processes the JSON Schema file to create structured documentation:

1. **Reads** `conclaude-schema.json` from the workspace root
2. **Parses** the schema to extract:
   - Configuration sections and their properties
   - Type information and default values
   - Descriptions and documentation strings
   - YAML examples embedded in descriptions
   - Nested type definitions
3. **Generates** Markdown files with Starlight frontmatter:
   - Overview page with quick reference table
   - Individual section pages with detailed properties
   - Nested type documentation
   - Complete configuration examples
4. **Outputs** to `docs/src/content/docs/reference/config/` by default

The generated documentation integrates seamlessly with the Starlight documentation site.

## Instructions

### Step 1: Ensure Schema is Up-to-Date

First, make sure your schema file reflects the current configuration:

```bash
# If you've made config changes, regenerate schema first
cargo run --bin generate-schema
```

### Step 2: Generate Documentation

Run the documentation generator:

```bash
cargo run --bin generate-docs
```

This will:
- Read the schema from `conclaude-schema.json`
- Generate an overview page at `docs/src/content/docs/reference/config/configuration.md`
- Create individual section pages (e.g., `hooks.md`, `files.md`, etc.)
- Extract and format YAML examples from schema descriptions
- Document nested types used by configuration properties

### Step 3: Custom Output Directory (Optional)

To generate docs to a different location:

```bash
cargo run --bin generate-docs -- --output path/to/output/dir
```

### Step 4: Verify Generated Documentation

Check the generated files:

```bash
ls -l docs/src/content/docs/reference/config/
cat docs/src/content/docs/reference/config/configuration.md
```

Look for:
- Overview page with all configuration sections listed
- Individual section pages with property tables
- Properly formatted YAML examples
- Nested type definitions where applicable
- Starlight frontmatter with title and description

### Step 5: Review in the Documentation Site

If you have the docs site running locally:

```bash
cd docs
npm run dev
```

Navigate to `/reference/config/configuration` to review the generated documentation in context.

### Step 6: Commit the Documentation

Include the generated docs in your commit:

```bash
git add docs/src/content/docs/reference/config/
git commit -m "Update configuration reference documentation"
```

## Expected Output

When successful, you'll see:

```
Conclaude Documentation Generator
==================================

Reading schema from conclaude-schema.json...
Parsing JSON schema...
Creating output directory: docs/src/content/docs/reference/config
Generating configuration overview page...
Generating documentation for section: files
Generating documentation for section: hooks
Generating documentation for section: preventGeneratedFileEdits
Generating documentation for section: sessionStart

Documentation generation complete!
Generated files in: docs/src/content/docs/reference/config
```

Generated files include:
- `configuration.md` - Overview page with quick reference
- `hooks.md` - Hooks configuration documentation
- `files.md` - File protection rules documentation
- `session-start.md` - Session startup configuration
- Additional section pages as needed

## Common Issues

### Schema File Not Found

If the generator can't find the schema:
- Ensure `conclaude-schema.json` exists in the workspace root
- Run from the workspace root directory
- Regenerate the schema: `cargo run --bin generate-schema`

### Build Errors

If the generator fails to build:
- Ensure Rust toolchain is installed: `cargo --version`
- Check that all dependencies are available: `cargo build`
- Verify `src/bin/generate-docs.rs` compiles

### Output Directory Creation Failed

If it fails to create the output directory:
- Check file system permissions
- Ensure parent directories exist
- Try specifying an absolute path with `--output`

### Missing Examples or Descriptions

If generated docs lack examples or seem incomplete:
- Check that schema descriptions include YAML examples in ` ```yaml ` code blocks
- Verify schema descriptions are properly formatted
- Ensure nested types are defined in the `definitions` section

### Incorrect Markdown Formatting

If the output has formatting issues:
- Review the schema descriptions for special characters
- Check that YAML examples are properly escaped
- Verify Starlight frontmatter is correctly formatted

## Output File Structure

The generator creates the following structure:

```
docs/src/content/docs/reference/config/
├── configuration.md          # Overview with quick reference table
├── hooks.md                  # Hooks configuration section
├── files.md                  # File protection rules section
├── session-start.md          # Session startup configuration
└── [other-sections].md       # Additional configuration sections
```

Each section page includes:
- Starlight frontmatter (title, description)
- Section overview
- Configuration properties table with types and defaults
- Nested type definitions (if applicable)
- Complete YAML examples
- Navigation links back to overview

## Related Files

- `src/bin/generate-docs.rs` - The documentation generator binary
- `conclaude-schema.json` - Input JSON Schema file
- `docs/src/content/docs/reference/config/` - Output directory for generated docs
- `src/bin/generate-schema.rs` - Schema generator (run before this)

## Schema Description Format

For best documentation output, schema descriptions should follow this format:

```rust
/// Main description of the configuration section.
/// This part appears in the overview and section introduction.
///
/// # Examples
///
/// ```yaml
/// sectionName:
///   property: value
///   anotherProperty: "example"
/// ```
///
/// Additional context or notes can go here.
```

The generator will:
- Extract the main description (before `# Examples`)
- Parse and format YAML code blocks as separate examples
- Include type information from the schema
- Document nested types automatically

## Tips for Maintaining Documentation

1. **Always regenerate after schema changes**: Documentation should stay in sync with the schema
2. **Keep schema descriptions clear**: They become user-facing documentation
3. **Include practical examples**: YAML examples in schema descriptions are extracted and displayed
4. **Document nested types**: Complex configuration structures are automatically documented
5. **Use consistent terminology**: Match the language used in configuration files
6. **Review generated output**: Always verify the generated docs render correctly in Starlight

## Command Reference

```bash
# Basic usage (default output directory)
cargo run --bin generate-docs

# Custom output directory
cargo run --bin generate-docs -- --output path/to/docs

# Show help
cargo run --bin generate-docs -- --help

# Complete workflow: schema + docs
cargo run --bin generate-schema && cargo run --bin generate-docs
```

## Notes

- Documentation is automatically generated from the schema, so manual edits to generated files will be overwritten
- Always regenerate documentation after updating the schema
- The generator creates deterministic output (sorted sections/properties)
- Generated files include Starlight frontmatter for proper site integration
- YAML examples are extracted from schema description fields
- Nested types are automatically detected and documented
- The documentation site must be rebuilt to see changes: `cd docs && npm run build`

