name: design-config description: Manage design documentation system configuration. Use when initializing the system, adding modules, or updating quality standards. allowed-tools: Read, Write, Bash agent: design-doc-agent
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 nametype- Project type (monorepo, package, application)repository- Git repository URLmaintainer- Primary maintainer
Paths
"paths": {
"designDocs": ".claude/design",
"skills": ".claude/skills",
"context": "CLAUDE.md",
"localContext": "CLAUDE.local.md"
}
Fields:
designDocs- Root directory for design documentationskills- Root directory for skillscontext- 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 directorydesignDocsPath- Path to module's design docs (null if none)categories- Allowed design doc categoriesmaintainer- Module maintainer nameuserDocs- User documentation paths (Level 1/2/3)
Valid Categories:
architecture- System/component architectureperformance- Performance characteristicsobservability- Logging, metrics, eventstesting- Testing strategyintegration- Integration patternscross-linking- Cross-linking featuresimport-generation- Import generationsource-mapping- Source mappingmeta- Meta documentationdocumentation- Documentation about documentationother- 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 standardsuserDocs- 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 settingsgit- 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 metadatapaths- Standard pathsmodules- Module definitionsquality- Quality standards
Project:
name- Project nametype- Project typemaintainer- Maintainer name
Paths:
designDocs- Design docs rootskills- Skills rootcontext- Context file path
Module:
path- Module directory pathmaintainer- 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-200userDocs.level1.maxLineLength: 80-120userDocs.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