You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.4 KiB
6.4 KiB
Cursor Markdown Ruleset for TimeSafari Documentation
Overview
This ruleset enforces consistent markdown formatting standards across all project documentation, ensuring readability, maintainability, and compliance with markdownlint best practices.
General Formatting Standards
Line Length
- Maximum line length: 80 characters
- Exception: Code blocks (JSON, shell, TypeScript, etc.) - no line length enforcement
- Rationale: Ensures readability across different screen sizes and terminal widths
Blank Lines
- Headings: Must be surrounded by blank lines above and below
- Lists: Must be surrounded by blank lines above and below
- Code blocks: Must be surrounded by blank lines above and below
- Maximum consecutive blank lines: 1 (no multiple blank lines)
- File start: No blank lines at the beginning of the file
- File end: Single newline character at the end
Whitespace
- No trailing spaces: Remove all trailing whitespace from lines
- No tabs: Use spaces for indentation
- Consistent indentation: 2 spaces for list items and nested content
Heading Standards
Format
- Style: ATX-style headings (
#
,##
,###
, etc.) - Case: Title case for general headings
- Code references: Use backticks for file names and technical terms
- ✅
### Current package.json Scripts
- ❌
### Current Package.json Scripts
- ✅
Hierarchy
- H1 (#): Document title only
- H2 (##): Major sections
- H3 (###): Subsections
- H4 (####): Sub-subsections
- H5+: Avoid deeper nesting
List Standards
Unordered Lists
- Marker: Use
-
(hyphen) consistently - Indentation: 2 spaces for nested items
- Blank lines: Surround lists with blank lines
Ordered Lists
- Format:
1.
,2.
,3.
(sequential numbering) - Indentation: 2 spaces for nested items
- Blank lines: Surround lists with blank lines
Task Lists
- Format:
- [ ]
for incomplete,- [x]
for complete - Use case: Project planning, checklists, implementation tracking
Code Block Standards
Fenced Code Blocks
- Syntax: Triple backticks with language specification
- Languages:
json
,bash
,typescript
,javascript
,yaml
,markdown
- Blank lines: Must be surrounded by blank lines above and below
- Line length: No enforcement within code blocks
Inline Code
- Format: Single backticks for inline code references
- Use case: File names, commands, variables, properties
Special Content Standards
JSON Examples
{
"property": "value",
"nested": {
"property": "value"
}
}
Shell Commands
# Command with comment
npm run build:web
# Multi-line command
VITE_GIT_HASH=`git log -1 --pretty=format:%h` \
vite build --config vite.config.web.mts
TypeScript Examples
// Function with JSDoc
/**
* Get environment configuration
* @param env - Environment name
* @returns Environment config object
*/
const getEnvironmentConfig = (env: string) => {
switch (env) {
case 'prod':
return { /* production settings */ };
default:
return { /* development settings */ };
}
};
File Structure Standards
Document Header
# Document Title
**Author**: Matthew Raymer
**Date**: YYYY-MM-DD
**Status**: 🎯 **STATUS** - Brief description
## Overview
Brief description of the document's purpose and scope.
Section Organization
- Overview/Introduction
- Current State Analysis
- Implementation Plan
- Technical Details
- Testing & Validation
- Next Steps
Markdownlint Configuration
Required Rules
{
"MD013": { "code_blocks": false },
"MD012": true,
"MD022": true,
"MD031": true,
"MD032": true,
"MD047": true,
"MD009": true
}
Rule Explanations
- MD013: Line length (disabled for code blocks)
- MD012: No multiple consecutive blank lines
- MD022: Headings should be surrounded by blank lines
- MD031: Fenced code blocks should be surrounded by blank lines
- MD032: Lists should be surrounded by blank lines
- MD047: Files should end with a single newline
- MD009: No trailing spaces
Validation Commands
Check Single File
npx markdownlint docs/filename.md
Check All Documentation
npx markdownlint docs/
Auto-fix Common Issues
# Remove trailing spaces
sed -i 's/[[:space:]]*$//' docs/filename.md
# Remove multiple blank lines
sed -i '/^$/N;/^\n$/D' docs/filename.md
# Add newline at end if missing
echo "" >> docs/filename.md
Common Patterns
Implementation Plans
## Implementation Plan
### Phase 1: Foundation (Day 1)
#### 1.1 Component Setup
- [ ] Create new component file
- [ ] Add basic structure
- [ ] Implement core functionality
#### 1.2 Configuration
- [ ] Update configuration files
- [ ] Add environment variables
- [ ] Test configuration loading
Status Tracking
**Status**: ✅ **COMPLETE** - All phases finished
**Progress**: 75% (15/20 components)
**Next**: Ready for testing phase
Performance Metrics
#### 📊 Performance Metrics
- **Build Time**: 2.3 seconds (50% faster than baseline)
- **Bundle Size**: 1.2MB (30% reduction)
- **Success Rate**: 100% (no failures in 50 builds)
Enforcement
Pre-commit Hooks
- Run markdownlint on all changed markdown files
- Block commits with linting violations
- Auto-fix common issues when possible
CI/CD Integration
- Include markdownlint in build pipeline
- Generate reports for documentation quality
- Fail builds with critical violations
Team Guidelines
- All documentation PRs must pass markdownlint
- Use provided templates for new documents
- Follow established patterns for consistency
Templates
New Document Template
# Document Title
**Author**: Matthew Raymer
**Date**: YYYY-MM-DD
**Status**: 🎯 **PLANNING** - Ready for Implementation
## Overview
Brief description of the document's purpose and scope.
## Current State
Description of current situation or problem.
## Implementation Plan
### Phase 1: Foundation
- [ ] Task 1
- [ ] Task 2
## Next Steps
1. **Review and approve plan**
2. **Begin implementation**
3. **Test and validate**
---
**Status**: Ready for implementation
**Priority**: Medium
**Estimated Effort**: X days
**Dependencies**: None
**Stakeholders**: Development team
Last Updated: 2025-07-09 Version: 1.0 Maintainer: Matthew Raymer