Complete Diff
diff --git a/.cspell.json b/.cspell.json
new file mode 100644
index 0000000..03c4563
--- /dev/null
+++ b/.cspell.json
@@ -0,0 +1,54 @@
+{
+ "version": "0.2",
+ "language": "en",
+ "files": ["**/*.md"],
+ "ignorePaths": [
+ "CHANGELOG.md",
+ "node_modules/**",
+ "dist/**",
+ "build/**",
+ ".git/**",
+ "htmlcov/**"
+ ],
+ "words": [
+ "Liatrio",
+ "slash-man",
+ "SDD",
+ "MCP",
+ "spec-driven",
+ "liatrio-labs",
+ "pytest",
+ "ruff",
+ "typer",
+ "fastmcp",
+ "questionary",
+ "uvx",
+ "uv",
+ "pyyaml",
+ "tomli",
+ "hatchling",
+ "semantic-release",
+ "commitlint",
+ "markdownlint",
+ "GitHub",
+ "Python",
+ "JSON",
+ "YAML",
+ "CLI",
+ "MCP",
+ "HTTP",
+ "STDIO",
+ "PyPI",
+ "CI",
+ "CD",
+ "API",
+ "REST"
+ ],
+ "flagWords": [],
+ "ignoreRegExpList": [
+ "/```[\\s\\S]*?```/g",
+ "/https?:\\/\\/[^\\s]+/g",
+ "/[\\/\\\\][^\\s]+/g",
+ "/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g"
+ ]
+}
diff --git a/docs/specs/05-spec-pre-commit-cspell/05-proofs/05-task-01-proofs.md b/docs/specs/05-spec-pre-commit-cspell/05-proofs/05-task-01-proofs.md
new file mode 100644
index 0000000..8fc5089
--- /dev/null
+++ b/docs/specs/05-spec-pre-commit-cspell/05-proofs/05-task-01-proofs.md
@@ -0,0 +1,107 @@
+# 05-task-01-proofs.md
+
+## Task 1.0: Create cspell Configuration File
+
+### Configuration File Created
+
+The `.cspell.json` file has been created at the repository root with all required configuration.
+
+### Configuration File Content
+
+```json
+{
+ "version": "0.2",
+ "language": "en",
+ "files": ["**/*.md"],
+ "ignorePaths": [
+ "CHANGELOG.md",
+ "node_modules/**",
+ "dist/**",
+ "build/**",
+ ".git/**",
+ "htmlcov/**"
+ ],
+ "words": [
+ "Liatrio",
+ "slash-man",
+ "SDD",
+ "MCP",
+ "spec-driven",
+ "liatrio-labs",
+ "pytest",
+ "ruff",
+ "typer",
+ "fastmcp",
+ "questionary",
+ "uvx",
+ "uv",
+ "pyyaml",
+ "tomli",
+ "hatchling",
+ "semantic-release",
+ "commitlint",
+ "markdownlint",
+ "GitHub",
+ "Python",
+ "JSON",
+ "YAML",
+ "CLI",
+ "MCP",
+ "HTTP",
+ "STDIO",
+ "PyPI",
+ "CI",
+ "CD",
+ "API",
+ "REST"
+ ],
+ "flagWords": [],
+ "ignoreRegExpList": [
+ "/```[\\s\\S]*?```/g",
+ "/https?:\\/\\/[^\\s]+/g",
+ "/[\\/\\\\][^\\s]+/g",
+ "/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/g"
+ ]
+}
+```
+
+### JSON Validation
+
+```bash
+$ python -m json.tool .cspell.json > /dev/null && echo "JSON is valid"
+JSON is valid
+```
+
+### Pre-commit JSON Check
+
+```bash
+$ pre-commit run check-json --files .cspell.json
+check json...............................................................Passed
+```
+
+### Configuration Testing
+
+```bash
+$ cspell --config .cspell.json README.md
+1/1 README.md 564.98ms
+CSpell: Files checked: 1, Issues found: 0 in 0 files.
+```
+
+### Demo Criteria Verification
+
+✅ **File `.cspell.json` exists at repository root** - Confirmed
+✅ **Project-specific dictionary terms included** - Liatrio, slash-man, SDD, MCP, spec-driven, liatrio-labs
+✅ **Dependency names included** - pytest, ruff, typer, fastmcp, questionary, uvx, uv, pyyaml, tomli, hatchling, semantic-release, commitlint, markdownlint
+✅ **Proper technical term capitalization** - GitHub, Python, JSON, YAML, CLI, MCP, HTTP, STDIO, PyPI, CI, CD, API, REST
+✅ **Markdown file patterns configured** - `["**/*.md"]`
+✅ **CHANGELOG.md excluded** - Added to `ignorePaths`
+✅ **Code block/URL/file path exclusions configured** - Regex patterns in `ignoreRegExpList`
+✅ **Configuration works without false positives** - README.md checked with 0 issues found
+
+### Proof Artifacts Summary
+
+- ✅ Created `.cspell.json` file at repository root
+- ✅ cspell command output showing configuration loaded successfully (0 issues found)
+- ✅ Dictionary terms visible in config file (all project-specific, dependency, and technical terms included)
+- ✅ JSON validation passed
+- ✅ Pre-commit JSON check passed
diff --git a/docs/specs/05-spec-pre-commit-cspell/05-spec-pre-commit-cspell.md b/docs/specs/05-spec-pre-commit-cspell/05-spec-pre-commit-cspell.md
new file mode 100644
index 0000000..af60b2a
--- /dev/null
+++ b/docs/specs/05-spec-pre-commit-cspell/05-spec-pre-commit-cspell.md
@@ -0,0 +1,129 @@
+# 05-spec-pre-commit-cspell.md
+
+## Introduction/Overview
+
+This specification adds a pre-commit hook for cspell (Code Spell Checker) to enforce spelling consistency across markdown documentation files in the repository. The hook will check all markdown files during commits, fail on spelling errors, and provide suggestions for corrections while requiring manual dictionary updates for project-specific terms. This ensures documentation quality and consistency while maintaining developer control over technical terminology.
+
+## Goals
+
+- Integrate cspell as a pre-commit hook to check markdown files automatically
+- Create a shared `.cspell.json` configuration file at the repository root
+- Provide clear error messages with spelling suggestions when errors are detected
+- Include common project-specific terms in the initial dictionary to reduce false positives
+- Fail commits when spelling errors are found to maintain documentation quality
+- Enable manual dictionary management for project-specific terminology
+
+## User Stories
+
+**As a documentation maintainer**, I want markdown files to be spell-checked automatically so that typos and spelling errors are caught before they reach the repository.
+
+**As a developer**, I want clear error messages with suggestions when spelling errors are detected so that I can quickly fix them without having to research correct spellings.
+
+**As a project contributor**, I want the ability to add project-specific terms to the dictionary so that technical terminology and proper names don't trigger false positives.
+
+## Requirements
+
+### Functional Requirements
+
+1. **Configuration File**: Create `.cspell.json` at repository root with:
+ - Language setting (English)
+ - File patterns for markdown files
+ - Project-specific dictionary terms
+ - Exclusion patterns for code blocks, URLs, file paths, and email addresses
+ - Exclusion for CHANGELOG.md
+
+2. **Pre-commit Integration**: Add cspell hook to `.pre-commit-config.yaml` with:
+ - Local repository configuration (using system-installed cspell)
+ - File filtering for markdown files only
+ - Exclusion of CHANGELOG.md
+ - Proper placement in hook execution order (after file format checks, before code linting)
+
+3. **Failure Behavior**: Hook must:
+ - Fail commits with exit code 1 when spelling errors are found
+ - Display file name, line numbers, and misspelled words in error output
+ - Provide spelling suggestions for each misspelled word
+ - Allow commits to proceed after errors are fixed
+
+4. **Documentation**: Update CONTRIBUTING.md with:
+ - New "Spell Checking" subsection under "Pre-commit Hooks"
+ - Explanation of how cspell works and fails commits on errors
+ - Instructions for adding new terms to the dictionary
+ - Verification methods (manual and automatic)
+ - Note about CHANGELOG.md exclusion
+
+### Non-Functional Requirements
+
+1. **Performance**: Spell checking should complete quickly for typical markdown file sizes
+2. **Usability**: Error messages should be clear and actionable
+3. **Maintainability**: Dictionary should be easily extensible for new project terms
+4. **Compatibility**: Should work with existing pre-commit hook configuration
+
+## Implementation Tasks
+
+### Task 1.0: Create cspell Configuration File
+Create `.cspell.json` at repository root with comprehensive configuration including project-specific terms, file patterns, and exclusions.
+
+### Task 2.0: Add cspell Hook to Pre-commit Configuration
+Add cspell as a local hook in `.pre-commit-config.yaml` with proper file filtering and placement in execution order.
+
+### Task 3.0: Verify Pre-commit Hook Failure Behavior
+Test the hook with intentional spelling errors to verify it fails commits appropriately and provides clear error messages.
+
+### Task 4.0: Update Documentation for Spell Checker
+Update CONTRIBUTING.md with comprehensive spell checking documentation and instructions.
+
+## Acceptance Criteria
+
+1. `.cspell.json` exists at repository root with valid JSON configuration
+2. Pre-commit hook successfully checks markdown files and excludes CHANGELOG.md
+3. Hook fails commits on spelling errors with clear error messages and suggestions
+4. CONTRIBUTING.md includes comprehensive spell checking documentation
+5. All existing markdown files pass spell checking after dictionary configuration
+6. Hook placement is correct in pre-commit execution order
+
+## Out of Scope
+
+- Spell checking of non-markdown files (source code, configuration files, etc.)
+- Automatic dictionary updates or machine learning-based spell checking
+- Integration with external spell checking services or APIs
+- Real-time spell checking in IDEs (though configuration can be used for this)
+
+## Dependencies
+
+- cspell CLI tool must be installed on developer machines
+- Existing pre-commit hook infrastructure
+- CONTRIBUTING.md file for documentation updates
+
+## Success Metrics
+
+- Zero spelling errors in new markdown commits
+- Clear error messages when spelling errors are detected
+- Minimal false positives for project-specific terminology
+- Successful integration with existing development workflow
+
+## Risks and Mitigations
+
+**Risk**: Developers may encounter false positives for valid technical terms.
+**Mitigation**: Include comprehensive initial dictionary with common project terms and provide clear documentation for adding new terms.
+
+**Risk**: Spell checking may slow down commit process.
+**Mitigation**: Optimize configuration for performance and use efficient file patterns.
+
+**Risk**: Configuration may be too complex for contributors to understand.
+**Mitigation**: Provide comprehensive documentation and examples in CONTRIBUTING.md.
diff --git a/docs/specs/05-spec-pre-commit-cspell/05-tasks-pre-commit-cspell.md b/docs/specs/05-spec-pre-commit-cspell/05-tasks-pre-commit-cspell.md
new file mode 100644
index 0000000..78518a0
--- /dev/null
+++ b/docs/specs/05-spec-pre-commit-cspell/05-tasks-pre-commit-cspell.md
@@ -0,0 +1,78 @@
+# 05-tasks-pre-commit-cspell.md
+
+## Task Tracking for Spec 05: Pre-commit cspell Hook
+
+### Task 1.0: Create cspell Configuration File
+- [ ] 1.1 Create `.cspell.json` at repository root
+ - [x] 1.1 Create `.cspell.json` at repository root
+ - [x] 1.2 Set language to English (`"language": "en"`)
+ - [x] 1.3 Configure file patterns to include all markdown files (`"files": ["**/*.md"]`)
+ - [x] 1.4 Add project-specific dictionary terms to `words` array
+ - [x] 1.5 Add dependency names and technical terms to dictionary
+ - [x] 1.6 Configure `ignorePaths` to exclude `CHANGELOG.md` and common build directories
+ - [x] 1.7 Add regex patterns to `ignoreRegExpList` for code blocks, URLs, file paths, and email addresses
+ - [x] 1.8 Verify configuration file is valid JSON and follows cspell schema
+ - [x] 1.9 Test configuration by running `cspell --config .cspell.json README.md` and verify no false positives are reported for existing markdown files
+ - [x] 1.10 Verify configuration file is valid JSON by running `python -m json.tool .cspell.json` or using `check-json` pre-commit hook
+
+### Task 2.0: Add cspell Hook to Pre-commit Configuration
+- [ ] 2.1 Add new repository entry to `.pre-commit-config.yaml` for cspell using `repo: local` (since cspell is installed on the system)
+ - [ ] 2.1 Add new repository entry to `.pre-commit-config.yaml` for cspell using `repo: local` (since cspell is installed on the system)
+ - [ ] 2.2 Add cspell hook entry with `id: cspell` in the hooks list, placing it after the `pre-commit-hooks` repository section (after file format checks) but before the `ruff-pre-commit` repository section (before code linting)
+ - [ ] 2.3 Configure hook to check only markdown files by adding `files: \.md$` pattern or using appropriate file filtering
+ - [ ] 2.4 Configure hook to exclude `CHANGELOG.md` using `exclude: CHANGELOG\.md` pattern (matching markdownlint exclusion pattern)
+ - [ ] 2.5 Verify hook placement in config file: cspell hook should appear after `check-toml` hook and before `ruff-check` hook
+ - [ ] 2.6 Test hook installation by running `pre-commit install` (or verify it's already installed)
+ - [ ] 2.7 Test hook execution by running `pre-commit run cspell --all-files` and verify it checks markdown files successfully
+ - [ ] 2.8 Verify hook execution order by running `pre-commit run --all-files` and confirming cspell runs after file format checks and before code linting
+
+### Task 3.0: Verify Pre-commit Hook Failure Behavior
+ - [ ] 3.1 Create a temporary test markdown file `test-spell-check.md` with intentional spelling errors (e.g., "teh" instead of "the", "receive" instead of "receive")
+ - [ ] 3.2 Stage the test file: `git add test-spell-check.md`
+ - [ ] 3.3 Attempt to commit the file: `git commit -m "test: verify cspell hook failure behavior"`
+ - [ ] 3.4 Verify commit fails with cspell error message showing misspelled words and suggestions
+ - [ ] 3.5 Verify error output clearly indicates which file contains spelling errors and lists misspelled words
+ - [ ] 3.6 Fix spelling errors in test file and verify commit succeeds
+ - [ ] 3.7 Remove test file after verification: `git rm test-spell-check.md && git commit -m "test: remove spell check test file"`
+ - [ ] 3.8 Document the failure behavior verification process (can be included in CONTRIBUTING.md update)
+
+### Task 4.0: Update Documentation for Spell Checker
+ - [ ] 4.1 Add new "Spell Checking" subsection under "Pre-commit Hooks" section in `CONTRIBUTING.md` (after existing hook descriptions)
+ - [ ] 4.2 Document that cspell checks markdown files for spelling errors and fails commits on errors
+ - [ ] 4.3 Explain how to add new project-specific terms to `.cspell.json` dictionary: edit the `words` array and add the term
+ - [ ] 4.4 Document how to verify spell checking works: run `pre-commit run cspell --all-files` or let it run automatically on commit
+ - [ ] 4.5 Mention that `CHANGELOG.md` is excluded from spell checking
+ - [ ] 4.6 Update the "Pre-commit Hooks" section summary to include spell checking in the list of checks
+ - [ ] 4.7 Verify all existing markdown files pass spell checking by running `pre-commit run cspell --all-files` and addressing any false positives by adding terms to dictionary
+ - [ ] 4.8 Ensure documentation follows existing CONTRIBUTING.md style and formatting conventions