# Example Specification: Interactive Data Dashboard Components
## Purpose/Overview
This specification defines the requirements for generating unique, self-contained interactive data dashboard components. Each iteration should demonstrate a different data visualization technique, interaction pattern, or dashboard layout while maintaining professional quality and complete functionality.
**Goal:** Create a diverse collection of dashboard components that showcase various approaches to data presentation, interaction design, and visual communication.
**Use Case:** These components serve as a reference library for dashboard development, demonstrating best practices and creative approaches to data visualization.
**Success Criteria:**
- Each component is fully functional and self-contained
- Professional visual design and user experience
- Unique visualization or interaction approach per iteration
- Clear, well-documented code
- Responsive and accessible
## Output Structure
Each iteration must include:
### File Components
1. **Main HTML file** - Complete dashboard component
- Full HTML document structure
- Inline or linked CSS styles
- Inline or linked JavaScript code
- Sample data embedded or linked
2. **Documentation section** (within HTML comments or separate section)
- Component purpose
- Visualization technique used
- Interaction features
- Data structure expected
- Usage instructions
### HTML Structure Requirements
```html
[Dashboard Name] - Iteration [N]
```
### Required Sections/Components
- **Header/Title** - Component name and description
- **Data Visualization** - Main chart, graph, or display
- **Interactive Controls** - Filters, toggles, or input elements
- **Legend/Key** - Explanation of visual elements
- **Metadata** - Iteration number, technique used, data source
## Naming Conventions
### Pattern
```
dashboard_iteration_[NN]_[theme].html
```
### Components
- `NN` - Two-digit iteration number (01, 02, 03, ...)
- `theme` - Short descriptor of visualization technique or data type
### Examples
- `dashboard_iteration_01_sales_trends.html`
- `dashboard_iteration_02_network_graph.html`
- `dashboard_iteration_03_geographic_heatmap.html`
- `dashboard_iteration_04_time_series_comparison.html`
- `dashboard_iteration_05_hierarchical_treemap.html`
### Rules
- Use lowercase for all parts
- Use underscores to separate words
- Theme should be 2-4 words maximum
- Theme should clearly indicate the visualization approach or data type
## Quality Standards
### Minimum Requirements
**Functionality:**
- Component loads without errors
- All interactive elements work correctly
- Data visualization renders properly
- Responsive to different screen sizes
- Accessible (proper semantic HTML, ARIA labels)
**Code Quality:**
- Valid HTML5 syntax
- Well-organized CSS (logical grouping, consistent naming)
- Clean JavaScript (no console errors, proper scoping)
- Comments explaining key logic
- Consistent formatting and indentation
**Visual Design:**
- Professional appearance
- Thoughtful color scheme (accessible contrast)
- Clear typography hierarchy
- Proper spacing and alignment
- Polished, finished look (not prototype quality)
**Documentation:**
- Clear component description
- Explanation of visualization technique
- List of interaction features
- Data structure documentation
- Usage instructions
### Excellence Criteria (for high-quality iterations)
**Innovation:**
- Creative visualization approach
- Unique interaction pattern
- Novel data presentation
- Thoughtful design details
**User Experience:**
- Intuitive interactions
- Smooth animations/transitions
- Helpful feedback and guidance
- Delightful micro-interactions
**Technical Sophistication:**
- Efficient code
- Advanced visualization techniques
- Clever data transformations
- Sophisticated interactions
## Uniqueness Constraints
### What Must Be Unique Per Iteration
**Primary Variation Dimension:**
Each iteration must use a **different visualization technique or chart type**, such as:
- Bar chart (horizontal, vertical, grouped, stacked)
- Line chart (single, multiple, area)
- Pie/donut chart
- Scatter plot
- Bubble chart
- Heatmap
- Network/graph visualization
- Treemap or sunburst
- Gauge or meter
- Timeline visualization
- Geographic map
- Sankey diagram
- Radar/spider chart
- Box plot
- Candlestick chart
**Secondary Variation Dimensions (at least one must differ):**
- **Data domain:** Sales, finance, health, environment, social, education, etc.
- **Interaction pattern:** Hover tooltips, click filtering, drag controls, zoom/pan, etc.
- **Layout style:** Grid, single panel, multi-panel, sidebar, full-screen, etc.
- **Visual theme:** Minimalist, colorful, dark mode, high contrast, playful, corporate, etc.
### What Can Be Similar
**Acceptable similarities:**
- Overall HTML structure (DOCTYPE, basic tags)
- Code organization approach (CSS in head, JS in body)
- Responsive design techniques
- Accessibility patterns
- General color palette principles (though specific colors should vary)
### Duplication Boundaries
**Not acceptable:**
- Exact same chart type with only data changed
- Identical interaction patterns with different visuals
- Copy-paste code with minimal modifications
- Same layout with different colors only
**Acceptable:**
- Using similar libraries (D3.js, Chart.js, etc.) across iterations
- Reusing responsive design patterns
- Applying common accessibility practices
- Following consistent code style conventions
## How Utilities Help With This Spec
### /validate-spec
Before generating iterations:
- Confirms all required sections are present
- Verifies naming pattern is clear and unambiguous
- Checks that uniqueness constraints are well-defined
- Ensures quality standards are measurable
**Example benefit:** Catches missing variation dimensions early, preventing similar outputs.
### /analyze
After generating a batch:
- Identifies which visualization techniques have been used
- Detects if theme diversity is sufficient
- Spots unintended duplications or too-similar approaches
- Suggests unexplored visualization types or data domains
**Example benefit:** Reveals that 3 iterations all used bar charts, suggesting need for more variety.
### /test-output
After generation:
- Validates HTML syntax correctness
- Checks that all required sections are present
- Verifies naming convention compliance
- Tests that interactive elements are implemented
- Confirms documentation is complete
**Example benefit:** Catches iteration with missing interactive controls before user review.
### /debug
When issues occur:
- Diagnoses why iterations aren't sufficiently unique
- Identifies if spec guidance was unclear
- Traces root cause of quality issues
- Provides specific remediation steps
**Example benefit:** Determines that vague theme descriptions led to similar outputs, suggests spec refinement.
### /status
During long-running generation:
- Shows how many iterations completed
- Displays current quality scores
- Indicates if generation is on track
- Estimates time remaining
**Example benefit:** User can monitor 20-iteration batch and see progress without waiting for completion.
### /report
After generation completes:
- Summarizes visualization techniques used
- Analyzes quality distribution
- Compares against quality standards
- Recommends areas for improvement
**Example benefit:** Comprehensive report shows 18/20 iterations met excellence criteria, highlights two for revision.
## Chain-of-Thought Application
This specification demonstrates chain-of-thought principles:
1. **Clear reasoning for requirements** - Each section explains WHY, not just WHAT
2. **Explicit decision criteria** - Quality standards are specific and measurable
3. **Transparent variation logic** - Uniqueness constraints show reasoning about what matters
4. **Actionable guidance** - Sub-agents can follow step-by-step to create valid iterations
5. **Utility integration** - Shows how each utility command helps verify spec compliance
By making requirements explicit and reasoning transparent, sub-agents can better understand the intent and produce higher-quality outputs that truly meet the specification.