Design Document Management
Overview
This skill provides comprehensive tooling for managing design documents in the design/ directory hierarchy. It covers creating documents from templates, searching with structured queries, and validating frontmatter compliance.
Prerequisites
Before using this skill, ensure:
- •Python 3.10 or higher is installed
- •The
design/directory structure exists in the project root - •Write access to the design document directories
Instructions
- •Read the UUID Specification reference to understand the GUUID format
- •Review the Document Types reference to select the appropriate document type for your needs
- •Use the Creating Documents reference to create new design documents with proper frontmatter
- •Use the Searching Documents reference to query and filter existing documents by metadata or content
- •Use the Validating Documents reference to ensure all documents meet frontmatter compliance requirements
- •Consult the Troubleshooting reference if you encounter errors or validation issues
Checklist
Copy this checklist and track your progress:
- • Read UUID Specification reference (understand GUUID format)
- • Review Document Types reference (select appropriate type: pdr, spec, feature, decision, architecture, template)
- • Create design document using
python scripts/eia_design_create.py --type <type> --title "<title>" - • Verify document was created with proper UUID and frontmatter
- • Search existing documents if needed:
python scripts/eia_design_search.py --type <type> --status <status> - • Validate all documents:
python scripts/eia_design_validate.py --all - • Fix any validation errors reported
- • Consult Troubleshooting reference if errors persist
Output
| Output Type | Description | Example |
|---|---|---|
| Created Document | New markdown file with UUID-based filename and populated frontmatter | design/pdr/GUUID-20250129-0001-feature-name.md |
| Search Results JSON | JSON array of matching documents with metadata | [{"uuid": "GUUID-...", "title": "...", "status": "..."}] |
| Search Results Table | Human-readable table of matching documents | ASCII table with columns for UUID, Title, Status, Type |
| Validation Report | List of errors and warnings with file paths and line numbers | ERROR: design/pdr/doc.md:3 - Missing required field 'uuid' |
| Validation Summary | Count of files validated, errors found, and overall status | Validated 42 files: 40 passed, 2 failed |
Quick Start
Create a new design document (30 seconds):
python scripts/eia_design_create.py --type pdr --title "My Feature Design"
Search existing documents:
python scripts/eia_design_search.py --type pdr --status approved
Validate all documents:
python scripts/eia_design_validate.py --all
Core Workflow Sequence
This skill teaches design document management in the following order:
- •UUID Specification - Understand the GUUID format for unique identification
- •Document Types - Learn the six document type categories
- •Creating Documents - Use templates to create new documents
- •Searching Documents - Query documents by metadata and content
- •Validating Documents - Ensure frontmatter compliance
- •Troubleshooting - Handle common issues and edge cases
Reference Documentation Structure
Each reference document focuses on a specific aspect of design management. Read them in order for initial learning, or jump directly to the relevant section when you need specific information.
UUID Format Specification
Reference: references/uuid-specification.md
Use-Case TOC:
- •When you need to understand the UUID format - UUID Format Definition
- •When you need to generate a UUID manually - Manual UUID Generation
- •When you need to verify UUID validity - UUID Validation Rules
- •When parsing UUIDs from documents - UUID Parsing
What you will learn:
- •The GUUID-YYYYMMDD-NNNN format specification
- •Date component requirements (YYYYMMDD)
- •Sequence number rules (NNNN)
- •Uniqueness guarantees within a day
- •Manual vs automatic UUID generation
Document Types
Reference: references/document-types.md
Use-Case TOC:
- •When you need to choose a document type - Type Selection Guide
- •When creating a Product Design Review - PDR Documents
- •When writing technical specifications - Spec Documents
- •When documenting features - Feature Documents
- •When recording architecture decisions - Decision Documents
- •When documenting system architecture - Architecture Documents
- •When creating reusable templates - Template Documents
What you will learn:
- •The six document type categories (pdr, spec, feature, decision, architecture, template)
- •When to use each document type
- •Directory structure organization
- •Type-specific frontmatter fields
Creating Documents
Reference: references/creating-documents.md
Use-Case TOC:
- •When creating a new design document - Basic Document Creation
- •When you need a specific author or description - Optional Fields
- •When you want a custom filename - Custom Filenames
- •When validation fails after creation - Post-Creation Validation
- •When the script reports an error - Creation Error Handling
What you will learn:
- •Using
eia_design_create.pywith required arguments - •Specifying optional metadata (author, description)
- •Automatic UUID generation
- •Template population
- •File placement in correct subdirectory
- •Post-creation validation
Searching Documents
Reference: references/searching-documents.md
Use-Case TOC:
- •When searching by UUID - UUID Search
- •When filtering by document type - Type Filter
- •When filtering by status - Status Filter
- •When searching document content - Keyword Search
- •When using file patterns - Glob Pattern Search
- •When combining multiple filters - Combined Filters
- •When no results are returned - Empty Results Handling
What you will learn:
- •Using
eia_design_search.pywith different filters - •Combining multiple search criteria
- •Output formats (JSON and table)
- •Handling empty results
- •Interpreting search results
Validating Documents
Reference: references/validating-documents.md
Use-Case TOC:
- •When validating a single document - Single File Validation
- •When validating all documents - Bulk Validation
- •When validation reports errors - Understanding Errors
- •When validation reports warnings - Understanding Warnings
- •When fixing validation issues - Error Resolution
What you will learn:
- •Using
eia_design_validate.pyfor single and bulk validation - •Required frontmatter fields
- •Error messages and line numbers
- •Warning vs error severity
- •Fixing common validation issues
Error Handling
Reference: references/troubleshooting.md
Use-Case TOC:
- •If UUID generation fails - UUID Generation Issues
- •If document creation fails - Creation Failures
- •If search returns no results - Search Issues
- •If validation reports malformed frontmatter - Frontmatter Parsing Issues
- •If files are in wrong directories - Directory Structure Issues
What you will learn:
- •Diagnosing common failure modes
- •Fixing malformed frontmatter
- •Handling file permission issues
- •Resolving encoding problems
- •Recovery procedures
Quick Reference Commands
Create documents:
# Create a PDR python scripts/eia_design_create.py --type pdr --title "Feature Design" # Create with author python scripts/eia_design_create.py --type feature --title "OAuth" --author "John" # Create with custom filename python scripts/eia_design_create.py --type spec --title "API Spec" --filename "api-v2"
Search documents:
# Search by UUID python scripts/eia_design_search.py --uuid GUUID-20250129-0001 # Search by type and status python scripts/eia_design_search.py --type pdr --status approved # Search by keyword python scripts/eia_design_search.py --keyword "authentication" # Table output python scripts/eia_design_search.py --type feature --format table
Validate documents:
# Validate single file python scripts/eia_design_validate.py design/pdr/my-design.md # Validate all documents python scripts/eia_design_validate.py --all # Validate specific type python scripts/eia_design_validate.py --all --type pdr # Verbose output with warnings python scripts/eia_design_validate.py --all --verbose --format text
Document Status Workflow
| Status | Meaning | Next Steps |
|---|---|---|
draft | Initial creation, work in progress | Complete content, request review |
review | Under review by stakeholders | Address feedback, approve or revise |
approved | Approved for implementation | Begin implementation |
implemented | Implementation complete | Monitor, update if needed |
deprecated | No longer current | Reference replacement document |
rejected | Not approved for implementation | Document reasons, archive |
Frontmatter Reference
Required fields:
--- uuid: GUUID-20250129-0001 title: "Document Title" status: draft created: 2025-01-29 updated: 2025-01-29 ---
Optional fields:
--- type: pdr author: "Author Name" description: "Brief description" tags: [api, security, v2] related: [GUUID-20250128-0003, GUUID-20250127-0001] ---
Directory Structure
design/ pdr/ - Product Design Reviews spec/ - Technical Specifications feature/ - Feature Documents decision/ - Architecture Decision Records architecture/ - System Architecture Documents template/ - Reusable Templates
Examples
Example 1: Create a New PDR Document
# Create a Product Design Review document python scripts/eia_design_create.py --type pdr --title "User Authentication Redesign" # Output: Created design/pdr/GUUID-20250129-0001-user-authentication-redesign.md
Example 2: Search and Validate Documents
# Find all approved PDRs python scripts/eia_design_search.py --type pdr --status approved --format table # Validate all documents for frontmatter compliance python scripts/eia_design_validate.py --all --verbose
Resources
- •references/uuid-specification.md - GUUID format and generation
- •references/document-types.md - Six document type categories
- •references/creating-documents.md - Document creation workflow
- •references/searching-documents.md - Query and filter documents
- •references/validating-documents.md - Frontmatter validation
- •references/troubleshooting.md - Common issues and fixes
Skill Version: 1.0.0 Last Updated: 2025-01-29 Maintainer: Skill Development Team