Design Documentation Configuration
Manages the design.config.json file that configures the design documentation system, including modules, paths, quality standards, and integrations.
Overview
This skill manages configuration by:
- •Validating against JSON schema
- •Initializing new configuration files
- •Adding/updating module definitions
- •Configuring quality standards
- •Managing skill enablement
- •Setting up integrations
Quick Start
Validate current config:
/design-config validate
Add new module:
/design-config add-module my-package
Update quality standards:
/design-config update-quality --maxLineLength=120
Configuration File
The design.config.json file is located at .claude/design/design.config.json
and follows the JSON schema at:
.claude/skills/design-config/json-schemas/current.json
Top-Level Structure
{
"$schema": "path/to/schema.json",
"version": "1.0.0",
"project": { ... },
"paths": { ... },
"modules": { ... },
"skills": { ... },
"quality": { ... },
"integration": { ... }
}
Core Sections
Project Metadata
"project": {
"name": "spencerbeggs/website",
"type": "monorepo",
"repository": "https://github.com/spencerbeggs/website",
"maintainer": "C. Spencer Beggs"
}
Fields:
- •
name- Project name - •
type- Project type (monorepo, package, application) - •
repository- Git repository URL - •
maintainer- Primary maintainer
Paths
"paths": {
"designDocs": ".claude/design",
"skills": ".claude/skills",
"context": "CLAUDE.md",
"localContext": "CLAUDE.local.md"
}
Fields:
- •
designDocs- Root directory for design documentation - •
skills- Root directory for skills - •
context- Root context file (CLAUDE.md) - •
localContext- Local context file (CLAUDE.local.md)
Modules
"modules": {
"my-package": {
"path": "pkgs/my-package",
"designDocsPath": ".claude/design/my-package",
"categories": ["architecture", "performance"],
"maintainer": "Spencer Beggs",
"userDocs": {
"readme": "pkgs/my-package/README.md",
"repoDocs": null,
"siteDocs": "website/docs/en/packages/my-package"
}
}
}
Module Fields:
- •
path- Relative path to module directory - •
designDocsPath- Path to module's design docs (null if none) - •
categories- Allowed design doc categories - •
maintainer- Module maintainer name - •
userDocs- User documentation paths (Level 1/2/3)
Valid Categories:
- •
architecture- System/component architecture - •
performance- Performance characteristics - •
observability- Logging, metrics, events - •
testing- Testing strategy - •
integration- Integration patterns - •
cross-linking- Cross-linking features - •
import-generation- Import generation - •
source-mapping- Source mapping - •
meta- Meta documentation - •
documentation- Documentation about documentation - •
other- Other categories
Quality Standards
"quality": {
"designDocs": {
"maxLineLength": 120,
"requireFrontmatter": true,
"requireTOC": true,
"minSections": ["Overview", "Current State", "Rationale"]
},
"userDocs": {
"level1": {
"targetWordCount": [200, 500],
"maxLineLength": 80,
"requireSections": ["Features", "Installation", "Usage"]
}
},
"context": {
"rootMaxLines": 500,
"childMaxLines": 300,
"requireDesignDocPointers": true
}
}
Quality Sections:
- •
designDocs- Design documentation standards - •
userDocs- User documentation standards (Level 1/2/3) - •
context- CLAUDE.md context file standards
Skills Configuration
"skills": {
"baseNamespace": "/",
"enabled": [
"design-init",
"design-validate",
"design-update"
]
}
Fields:
- •
baseNamespace- Base namespace for skills (usually "/") - •
enabled- List of enabled skill names
Integration Settings
"integration": {
"ci": {
"enabled": false,
"validateOnPR": false,
"syncOnMerge": false
},
"git": {
"trackDesignDocs": true,
"requireReviewForChanges": false
}
}
Integration Options:
- •
ci- CI/CD integration settings - •
git- Git integration settings
Workflow
Validate Configuration
Validates design.config.json against the JSON schema.
Steps:
- •Read
.claude/design/design.config.json - •Read schema from
json-schemas/current.json - •Validate JSON structure
- •Check all required fields present
- •Validate field types and values
- •Check enum values are valid
- •Report validation errors or success
Validation tools:
# Using Node.js with ajv npm install -g ajv-cli ajv validate -s json-schemas/current.json -d .claude/design/design.config.json # Using Python with jsonschema pip install jsonschema python -c "import json, jsonschema; ..."
Initialize Configuration
Creates a new design.config.json file with sensible defaults.
Steps:
- •Check if config already exists (warn if it does)
- •Detect project type (monorepo, package, app)
- •Scan for existing modules
- •Generate module definitions
- •Set default quality standards
- •Write config file
- •Validate against schema
- •Report success
Example:
{
"version": "1.0.0",
"project": {
"name": "my-project",
"type": "monorepo",
"maintainer": "Your Name"
},
"paths": {
"designDocs": ".claude/design",
"skills": ".claude/skills",
"context": "CLAUDE.md"
},
"modules": {},
"quality": {
"designDocs": {
"maxLineLength": 120,
"requireFrontmatter": true,
"requireTOC": true,
"minSections": ["Overview", "Current State", "Rationale"]
}
}
}
Add Module
Adds a new module definition to the configuration.
Steps:
- •Read current config
- •Validate module doesn't already exist
- •Detect module path (from pnpm workspace, package.json, etc.)
- •Prompt for module details:
- •Design docs path
- •Categories
- •Maintainer
- •User docs paths
- •Add module to config
- •Validate updated config
- •Write config file
- •Report success
Example:
/design-config add-module effect-type-registry \ --path=pkgs/effect-type-registry \ --categories=architecture,performance,observability
Update Quality Standards
Updates quality standards for design docs, user docs, or context files.
Steps:
- •Read current config
- •Parse update parameters
- •Update specified quality fields
- •Validate updated config
- •Write config file
- •Report changes
Example:
/design-config update-quality \ --designDocs.maxLineLength=120 \ --context.rootMaxLines=500
Update Module
Updates an existing module definition.
Steps:
- •Read current config
- •Validate module exists
- •Parse update parameters
- •Update module fields
- •Validate updated config
- •Write config file
- •Report changes
Example:
/design-config update-module effect-type-registry \ --add-category=testing \ --siteDocs=website/docs/en/packages/effect-type-registry
Enable/Disable Skills
Manages the list of enabled skills.
Steps:
- •Read current config
- •Validate skill names exist
- •Add/remove from enabled list
- •Validate updated config
- •Write config file
- •Report changes
Example:
/design-config enable-skill design-prune design-export /design-config disable-skill design-archive
Schema Reference
The complete JSON schema is located at:
.claude/skills/design-config/json-schemas/current.json
Schema URL:
https://spencerbegg.gs/schemas/design-config/1.0.0/schema.json
To reference in config:
{
"$schema": ".claude/skills/design-config/json-schemas/current.json",
"version": "1.0.0",
...
}
Validation
Required Fields
Top-level:
- •
version- Schema version (semver) - •
project- Project metadata - •
paths- Standard paths - •
modules- Module definitions - •
quality- Quality standards
Project:
- •
name- Project name - •
type- Project type - •
maintainer- Maintainer name
Paths:
- •
designDocs- Design docs root - •
skills- Skills root - •
context- Context file path
Module:
- •
path- Module directory path - •
maintainer- Module maintainer
Quality.designDocs:
- •
maxLineLength- Max line length (80-200) - •
requireFrontmatter- Frontmatter required (boolean) - •
requireTOC- TOC required (boolean) - •
minSections- Minimum sections (array)
Field Validation
Version: Must match semver pattern ^[0-9]+\.[0-9]+\.[0-9]+$
Project type: Must be one of: monorepo, package, application
Categories: Must be one of the valid category enums
Line lengths:
- •
designDocs.maxLineLength: 80-200 - •
userDocs.level1.maxLineLength: 80-120 - •
userDocs.level2.maxLineLength: 80-150
Context lines:
- •
context.rootMaxLines: 100-1000 (default 500) - •
context.childMaxLines: 100-500 (default 300)
Common Use Cases
Initialize New Project
/design-config init \ --name=my-project \ --type=monorepo \ --maintainer="Your Name"
Add Package to Monorepo
/design-config add-module my-package \ --path=packages/my-package \ --categories=architecture,performance
Update Quality Standards Example
/design-config update-quality \ --designDocs.maxLineLength=100 \ --context.rootMaxLines=600
Enable New Skills
/design-config enable-skill design-prune design-export
Validate After Manual Edit
/design-config validate
Error Handling
Invalid Schema
ERROR: Configuration validation failed Schema: .claude/skills/design-config/json-schemas/current.json Config: .claude/design/design.config.json Errors: - .version: Must match pattern ^[0-9]+\.[0-9]+\.[0-9]+$ - .modules.my-package.categories[0]: Must be one of: architecture, performance, ... - .quality.designDocs.maxLineLength: Must be <= 200 Fix these errors and run validate again.
Missing Required Fields
ERROR: Missing required fields - project.name is required - project.type is required - quality.designDocs is required Add these fields and validate again.
Module Already Exists
ERROR: Module already exists Module: effect-type-registry To update existing module, use: /design-config update-module effect-type-registry
Integration
Works with all design documentation skills:
- •
/design-init- Uses config for module paths and categories - •
/design-validate- Uses config for quality standards - •
/design-sync- Uses config for module definitions - •
/design-audit- Uses config for quality checks - •All skills - Read config for paths and settings
Success Criteria
A valid configuration:
- •✅ Passes JSON schema validation
- •✅ All required fields present
- •✅ Field values match constraints
- •✅ Module paths exist
- •✅ Categories are valid enums
- •✅ Quality standards are reasonable
- •✅ No duplicate module names