Module: Documentation (cross-cutting) Dependencies: All implementation tasks Effort: 6-8 days Priority: HIGH
Create comprehensive documentation for Lash covering user guides, developer documentation, examples, API documentation, and README. Documentation should be clear, accurate, and accessible to both humans and AI agents.
From the project development practices:
- Keep README current with project purpose, setup, and usage
- Document for both human users and AI agents
- Provide examples and clear instructions
From design-doc.md:
- Document file format specification
- Document CLI commands and usage
- Document agent integration patterns
Priority: CRITICAL Effort: 1 day Depends on: Basic implementation (CLI, indexing, linting)
Create a comprehensive README that serves as the entry point for new users and provides quick start instructions.
- Write README.md with sections:
- Project description
- What is Lash?
- Key features
- Use cases
- Installation
- From source (
cargo install --path .) - From crates.io (when published)
- Binary releases (future)
- From source (
- Quick start
- Create a task file
- Index the project
- List and query tasks
- Basic workflow
- Project status
- Current version
- Development status
- Roadmap (link to tasks)
- Documentation links
- User guide
- Design document
- Contributing guide
- License and credits
- Project description
- Add badges
- CI status
- [-] Coverage (if tracked)
- License
- Rust version
- Add example snippet
- Show minimal task file
- Show basic commands
- Keep it short and clear
- [-] Add animated demo (optional)
- [-] GIF or video showing Lash in action
- [-] Use
asciinemaor similar
- README is clear and inviting
- Quick start works for new users
- Links to detailed docs are correct
- Examples are accurate
- Manual: Follow quick start instructions
- CI: Verify links are not broken
Priority: CRITICAL Effort: 2-3 days Depends on: All CLI commands implemented
Write a comprehensive user guide covering all features and workflows.
- Create
docs/user-guide.mdwith chapters:- Introduction
- What is Lash?
- When to use Lash
- Core concepts (tasks, dependencies, labels)
- Getting Started
- Installation
- Creating your first project
- Understanding project structure
- Task File Format
- File structure
- Annotations reference (
@id,@labels, etc.) - Checkbox statuses
- Dependency references
- Examples
- CLI Commands
-
lash lint- validation and linting -
lash format- auto-formatting -
lash index- indexing and DB management -
lash list- querying tasks -
lash show- viewing task details -
lash search- fuzzy search -
lash graph- dependency visualization -
lash check-links- link validation -
lash agent-prompt- agent integration -
lash tui- terminal UI
-
- Dependencies
- How dependencies work
- Implicit (hierarchy) dependencies
- Explicit (
@depends-on) dependencies - Directory-level dependencies
- Completion rules
- Handling blockers
- Labels and Filtering
- Using labels for organization
- Filtering by labels
- Cross-cutting concerns
- TUI Usage
- Launching the TUI
- Navigation and keyboard shortcuts
- Viewing and editing tasks
- [-] Agent view mode
- Best Practices
- Project organization
- Task granularity
- Dependency management
- Label conventions
- Troubleshooting
- Common errors and solutions
- DB consistency issues
- Performance tips
- Introduction
- [-] Add diagrams and screenshots
- [-] TUI screenshot
- [-] Dependency graph example
- [-] File structure diagram
- Add examples throughout
- Real-world task file examples
- Common workflows
- Complex dependency scenarios
- User guide is comprehensive and clear
- All features are documented
- Examples are accurate and helpful
- Guide is easy to navigate
- Manual: Review for accuracy and clarity
- Manual: Test all examples
- CI: Verify code examples compile/run (if applicable)
Priority: HIGH Effort: 2-3 days Depends on: Core implementation complete
Write developer documentation for contributors and maintainers.
- Create
docs/developer-guide.mdwith sections:- Architecture Overview
- Crate structure (
lash-core,lash-db, etc.) - Module responsibilities
- Data flow diagram
- Crate structure (
- Development Setup
- Prerequisites
- Building from source
- Running tests
- Running benchmarks
- Code Organization
- Directory structure
- Naming conventions
- Module boundaries
- Core Components
- Markdown parser
- Linter
- Dependency resolver
- Indexing engine
- Query engine
- CLI framework
- TUI
- Database Schema
- Tables and relationships
- Indexes
- Queries
- Error Handling
- Error types
- Error codes
- Formatting strategies
- Testing Strategy
- Unit tests
- Integration tests
- E2E tests
- Benchmarks
- Contributing
- How to contribute
- Code style (rustfmt, clippy)
- PR process
- Review criteria
- Release Process
- Versioning
- Changelog
- Publishing to crates.io
- Binary releases
- Architecture Overview
- Create
CONTRIBUTING.md- Code of conduct
- How to file issues
- How to submit PRs
- Development workflow
- [-] Add architecture diagrams
- [-] Crate dependency graph
- [-] Data flow diagram
- [-] CLI command flow
- Developer guide covers all major components
- New contributors can onboard from guide
- Architecture is clearly explained
- Contributing process is documented
- Manual: Review for accuracy and completeness
- Manual: Have new contributor follow guide
Priority: MEDIUM Effort: 1-2 days (ongoing with implementation) Depends on: Core implementation
Write comprehensive Rustdoc comments for all public APIs.
- Add module-level documentation
-
lash-core: purpose and overview -
lash-db: database layer overview -
lash-cli: CLI framework overview - [-]
lash-tui: TUI overview (internal crate, not published) -
lash-agent: agent utilities overview
-
- Document all public types
- Structs: purpose, fields, usage examples
- Enums: variants and when to use each
- Traits: contract and implementation notes
- Document all public functions
- Purpose and behavior
- Parameters and return values
- Error conditions
- Examples
- [-] Panics (none in public API)
- Add usage examples
- Show common use cases
- Executable examples (doc tests)
- [-] Complex scenarios (covered by integration tests)
- Document invariants and assumptions
- Preconditions (documented in relevant functions)
- [-] Postconditions (not applicable)
- [-] Thread safety (single-threaded CLI)
- Performance characteristics (benchmarks documented)
- Add links between related items
- Cross-reference types and functions (deprecated aliases link to canonical names)
- [-] Link to design document sections (design doc linked from README)
- Generate and review Rustdoc
-
cargo doc --open - Verify formatting and clarity
- Fix broken links
- Ensure examples run
-
- Enforce documentation coverage with
#![warn(missing_docs)]in all crates
- All public APIs are documented
- Examples are accurate and helpful
- Doc tests pass
- Rustdoc builds without warnings
- Doc tests: All examples compile and run
- CI: Verify rustdoc builds without warnings
Priority: MEDIUM Effort: 1-2 days Depends on: User guide complete
Create practical examples and tutorials for common use cases.
- Create
examples/directory with:- Example 1: Simple TODO list
- Single file with basic tasks
- Show basic CLI workflow
- Example 2: Multi-file project
- Multiple task files
- Directory structure
- Dependencies between files
- Example 3: Software project
- Feature breakdown
- Module dependencies
- Labels for cross-cutting concerns
- Example 4: Agent-driven workflow
- Agent-tagged tasks
- Using
lash agent-prompt - Agent making updates
- Example 5: Complex dependencies
- Nested dependencies
- Blocked tasks
- Waived tasks
- Example 1: Simple TODO list
- Write tutorial walkthrough for each example
- Step-by-step instructions
- Expected outputs
- Explanations
- [-] Add example outputs
- [-] CLI command outputs
- [-] Dependency graphs
- [-] TUI screenshots
- [-] Create video tutorials (optional)
- [-] Screen recordings with narration
- [-] Publish to YouTube or similar
- [-] Link from documentation
- Examples cover diverse use cases
- Tutorials are easy to follow
- Examples are realistic and practical
- All examples work as documented
- Integration: Run all example workflows
- Manual: Follow each tutorial step-by-step
Priority: HIGH Effort: 1 day Depends on: tasks.agent-integration.md complete
Create specific documentation for AI agents using Lash.
- Create
docs/agent-guide.mdwith sections:- Introduction for Agents
- What is Lash?
- Why agents should use Lash
- Agent-friendly features
- Getting Started (for agents)
- Obtaining Lash schema
- Understanding file format
- Allowed operations
- File Format Schema
- Formal specification
- Annotation reference
- Dependency syntax
- Constraints and rules
- Safe Modifications
- Adding tasks
- Updating task status
- Adding dependencies
- Waiving tasks
- What NOT to do
- Workflows
- Workflow 1: Get context (
lash agent-prompt) - Workflow 2: Read task files
- Workflow 3: Modify tasks
- Workflow 4: Validate (
lash lint) - Workflow 5: Update index (
lash index)
- Workflow 1: Get context (
- Error Handling
- Common errors and solutions
- Lint error recovery
- Broken dependency fixes
- Token Minimization
- Using sparse context
- ID-based references
- Summarization strategies
- Examples
- Example prompt
- Example modifications
- Example queries
- Introduction for Agents
- Add agent-friendly formatting
- Machine-readable sections
- JSON schema snippets
- Minimal examples (token-efficient)
- [-] Create Claude Code skill spec (future)
- [-] JSON/YAML skill definition
- [-] Command specifications
- [-] Usage examples
- Agent guide is clear and actionable for LLMs
- Schema specification is complete
- Workflows are safe and effective
- Examples are minimal yet comprehensive
- Manual: Use guide with actual agent (Claude Code)
- Manual: Verify agent can use Lash safely
- Integration: Test agent workflows
Priority: LOW Effort: 0.5 days Depends on: tasks.error-handling.md complete
Create a comprehensive reference for all error codes.
- Create
docs/error-codes.mdwith:- Table of all error codes
- Code, severity, category
- Short description
- Detailed explanation
- Common causes
- How to fix
- Examples
- Organize by category
- Parse errors (E_PARSE_*)
- Lint errors (E_LINT_*)
- Dependency errors (E_DEP_*)
- Index errors (E_INDEX_*)
- Config errors (E_CONFIG_*)
- IO errors (E_IO_*)
- [-] Add searchability
- [-] Table of contents
- Anchor links for each code
- [-] Search tips
- [-] Generate from code (optional)
- [-] Extract error definitions from source
- [-] Auto-generate reference
- [-] Keep docs in sync with code
- All error codes are documented
- Explanations are clear and helpful
- Fixes are actionable
- Reference is easy to navigate
- Manual: Verify all codes are listed
- CI: Verify code list matches implementation
Priority: LOW Effort: Ongoing Depends on: All documentation tasks
Set up processes to keep documentation up to date as code evolves.
- Add documentation review to PR process
- Require doc updates for new features
- Check for broken links
- Verify examples still work
- Set up link checker
- Use
markdown-link-checkor similar - Run in CI
- Report broken links
- Use
- Add doc tests to CI
- [-] Run all code examples
- Verify examples compile
- [-] Catch outdated examples
- Create documentation style guide
- Tone and voice
- Formatting conventions
- Example structure
- Schedule periodic doc reviews
- Review quarterly or on major releases
- Update for accuracy
- Improve clarity based on feedback
- Add user feedback mechanism
- Link to issues for doc feedback
- [-] Add "Was this helpful?" prompts (optional)
- Track common questions (improve docs)
- Documentation stays current
- Broken links are caught automatically
- Examples remain accurate
- Feedback is incorporated
- CI: Link checker passes
- CI: Doc tests pass
- Manual: Periodic doc review
- Multi-language documentation (English only)
- Interactive documentation site (markdown files are sufficient)
- Video tutorial series (optional, nice-to-have)
- Auto-generated API docs from examples (manual curation is fine)
- Documentation hosting: GitHub README vs dedicated docs site?
- Tutorial format: Text vs video vs both?
- Agent guide format: Markdown vs JSON schema vs both?
- Versioning: How to document multiple versions?
- CONTRIBUTING.md (Development practices)
- Design doc (Source of truth for specifications)
- Rust documentation guidelines: https://rust-lang.github.io/api-guidelines/documentation.html
- Writing great documentation: https://documentation.divio.com/