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.
168 lines
4.7 KiB
168 lines
4.7 KiB
# Markdown Workflow & Validation
|
|
|
|
> **Agent role**: Reference this file for markdown validation rules,
|
|
> enforcement procedures, and workflow management.
|
|
|
|
## Markdownlint Configuration
|
|
|
|
### Core Rules
|
|
|
|
```json
|
|
{
|
|
"MD013": { "line_length": 80, "code_blocks": false },
|
|
"MD012": true,
|
|
"MD022": true,
|
|
"MD031": true,
|
|
"MD032": true,
|
|
"MD047": true,
|
|
"MD009": true,
|
|
"MD004": { "style": "dash" }
|
|
}
|
|
```
|
|
|
|
### Rule Explanations
|
|
|
|
- **MD013**: Line length (80 chars, 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
|
|
- **MD004**: Consistent list markers (dash style)
|
|
|
|
## Validation Commands
|
|
|
|
### Check All MDC Files
|
|
|
|
```bash
|
|
npm run markdown:check
|
|
```
|
|
|
|
### Auto-fix Formatting Issues
|
|
|
|
```bash
|
|
npm run markdown:fix
|
|
```
|
|
|
|
### Check Single File
|
|
|
|
```bash
|
|
npx markdownlint-cli2 .cursor/rules/filename.mdc
|
|
```
|
|
|
|
## Enforcement Workflow
|
|
|
|
### Pre-commit Hooks
|
|
|
|
- **Automatic**: `lint-staged` runs `markdownlint-cli2 --fix` on all
|
|
staged `.mdc` files
|
|
- **Result**: Files are automatically formatted before commit
|
|
- **Blocking**: Commits with unfixable violations are blocked
|
|
|
|
### CI/CD Integration
|
|
|
|
- **Build Pipeline**: Include markdownlint in automated builds
|
|
- **Quality Reports**: Generate documentation quality metrics
|
|
- **Build Failure**: Fail builds with critical violations
|
|
|
|
### Team Guidelines
|
|
|
|
- **PR Requirements**: All documentation PRs must pass markdownlint
|
|
- **Templates**: Use provided templates for new documents
|
|
- **Patterns**: Follow established patterns for consistency
|
|
- **Auto-fixing**: Let automation handle formatting, focus on content
|
|
|
|
## Quality Assurance
|
|
|
|
### Validation Checklist
|
|
|
|
- [ ] All files pass `npm run markdown:check`
|
|
- [ ] Line length under 80 characters
|
|
- [ ] Proper blank line spacing around elements
|
|
- [ ] No trailing spaces
|
|
- [ ] Consistent list markers
|
|
- [ ] Proper heading hierarchy
|
|
- [ ] Code blocks have language specification
|
|
|
|
### Common Issues & Fixes
|
|
|
|
#### Trailing Spaces
|
|
|
|
```bash
|
|
# Remove trailing spaces
|
|
sed -i 's/[[:space:]]*$//' .cursor/rules/**/*.mdc
|
|
```
|
|
|
|
#### Multiple Blank Lines
|
|
|
|
```bash
|
|
# Remove multiple blank lines
|
|
sed -i '/^$/N;/^\n$/D' .cursor/rules/**/*.mdc
|
|
```
|
|
|
|
#### Missing Newlines
|
|
|
|
```bash
|
|
# Add newline at end if missing
|
|
find .cursor/rules -name "*.mdc" -exec sed -i -e '$a\' {} \;
|
|
```
|
|
|
|
## Integration Points
|
|
|
|
### Git Workflow
|
|
|
|
1. **Edit**: Make changes to MDC files
|
|
2. **Stage**: `git add .cursor/rules/filename.mdc`
|
|
3. **Auto-fix**: `lint-staged` runs `markdownlint-cli2 --fix`
|
|
4. **Commit**: Changes are committed with perfect formatting
|
|
|
|
### Development Workflow
|
|
|
|
1. **Create/Edit**: Use templates from `markdown_templates.mdc`
|
|
2. **Validate**: Run `npm run markdown:check` before committing
|
|
3. **Auto-fix**: Use `npm run markdown:fix` for bulk fixes
|
|
4. **Review**: Ensure content quality, not just formatting
|
|
|
|
## Model Implementation Checklist
|
|
|
|
### Before Starting Workflow
|
|
|
|
- [ ] **Configuration Review**: Understand markdownlint rules and settings
|
|
- [ ] **Tool Availability**: Ensure markdownlint-cli2 is installed and working
|
|
- [ ] **File Scope**: Identify which files need validation or fixing
|
|
- [ ] **Backup Strategy**: Consider backing up files before bulk operations
|
|
|
|
### During Workflow Execution
|
|
|
|
- [ ] **Validation First**: Run `npm run markdown:check` to identify issues
|
|
- [ ] **Issue Analysis**: Review and understand each validation error
|
|
- [ ] **Auto-fix Application**: Use `npm run markdown:fix` for automatic fixes
|
|
- [ ] **Manual Review**: Check files that couldn't be auto-fixed
|
|
|
|
### After Workflow Completion
|
|
|
|
- [ ] **Final Validation**: Confirm all files pass `npm run markdown:check`
|
|
- [ ] **Quality Review**: Verify formatting meets project standards
|
|
- [ ] **Documentation Update**: Update any related documentation or guides
|
|
- [ ] **Team Communication**: Share workflow results and any manual fixes needed
|
|
|
|
### Workflow-Specific Requirements
|
|
|
|
- [ ] **Pre-commit Hooks**: Ensure lint-staged configuration is working
|
|
- [ ] **CI/CD Integration**: Verify build pipeline includes markdown validation
|
|
- [ ] **Team Guidelines**: Confirm all team members understand the workflow
|
|
- [ ] **Error Resolution**: Document common issues and their solutions
|
|
|
|
---
|
|
|
|
**See also**:
|
|
|
|
- `.cursor/rules/docs/markdown_core.mdc` for core formatting standards
|
|
- `.cursor/rules/docs/markdown_templates.mdc` for document templates
|
|
|
|
**Status**: Active workflow and validation
|
|
**Priority**: Medium
|
|
**Estimated Effort**: Ongoing reference
|
|
**Dependencies**: markdown_core.mdc, markdown_templates.mdc
|
|
**Stakeholders**: Development team, Documentation team
|
|
|