Documentation Guidelines
This guide provides detailed procedures for updating, maintaining, and improving the Apache AGE Schema Client documentation.
When to Update Documentation
Code Changes That Require Documentation Updates
- New features: Any new public API, method, or functionality
- Breaking changes: Changes that affect existing user code
- Configuration changes: New options, environment variables, or setup requirements
- Error handling: New error types or changed error messages
- Performance improvements: Significant performance changes users should know about
- Security updates: Security-related changes or recommendations
Documentation-Only Updates
- Clarifications: Improving unclear explanations or instructions
- Examples: Adding new examples or improving existing ones
- Corrections: Fixing errors, typos, or outdated information
- Organization: Restructuring content for better navigation
- Accessibility: Improving readability and accessibility
Documentation Update Process
1. Planning Your Update
Before making changes:
- Identify the scope: What documentation needs to be updated?
- Check dependencies: Will this affect other documentation pages?
- Review existing content: Understand the current structure and style
- Plan the changes: Outline what you'll add, modify, or remove
2. Making Changes
For Code-Related Updates
- Update TypeScript comments first (for API documentation)
- Update manual documentation in relevant
.md
files - Add or update examples in the
examples/
directory - Update integration tests if examples change
For Documentation-Only Updates
- Edit the relevant markdown files directly
- Update cross-references if you change headings or file names
- Test all links to ensure they still work
- Check formatting using the local preview
3. Testing Your Changes
Always test documentation changes locally:
# Start the documentation server
cd website
pnpm start
# In another terminal, generate API docs if needed
pnpm docs:api
# For full build test
pnpm docs:build
What to Test
- Navigation: Can users find your new content?
- Links: Do all internal and external links work?
- Code examples: Do all code examples run without errors?
- Mobile view: Does the content display well on mobile devices?
- Search: Can users find your content through search?
4. Review Process
Self-Review Checklist
Before submitting your changes:
- Content follows the Style Guide
- All code examples are tested and working
- Links are functional and point to correct locations
- Spelling and grammar are correct
- Content is accessible and inclusive
- Changes are consistent with existing documentation
Peer Review
For significant changes, request review from:
- Technical accuracy: Someone familiar with the code
- Writing quality: Someone who can review for clarity and style
- User perspective: Someone who represents the target audience
Content Types and Guidelines
API Documentation
TypeScript Comments (Primary Source)
API documentation is primarily generated from TypeScript comments. Follow JSDoc standards:
/**
* Creates a new vertex in the graph with the specified label and properties.
*
* @param label - The vertex label as defined in your schema
* @param properties - The vertex properties matching the schema definition
* @returns Promise that resolves to the created vertex with generated ID
*
* @throws {ValidationError} When properties don't match the schema
* @throws {DatabaseError} When the database operation fails
*
* @example
* ```typescript
* const person = await vertexOperations.createVertex('Person', {
* name: 'Alice Smith',
* age: 30,
* email: 'alice@example.com'
* });
* ```
*
* @since 0.1.0
*/
async createVertex<T extends VertexLabel>(
label: T,
properties: VertexProperties<T>
): Promise<Vertex<T>> {
// Implementation...
}
Manual API Documentation
Supplement TypeDoc with manual documentation in docs/api-reference.md
for:
- Overview and concepts: High-level explanations
- Usage patterns: Common ways to use the API
- Integration examples: How different parts work together
- Migration guides: Upgrading between versions
How-To Guides
How-to guides should be:
- Task-oriented: Focus on accomplishing specific goals
- Step-by-step: Clear, sequential instructions
- Practical: Use realistic examples and scenarios
- Complete: Include setup, execution, and cleanup
Structure Template
# How to [Accomplish Specific Task]
Brief description of what this guide covers and when to use it.
## Prerequisites
- Requirement 1
- Requirement 2
- Requirement 3
## Step 1: [Action]
Explanation of what this step does and why.
```typescript
// Code example with comments
const example = 'working code';
Step 2: [Action]
Continue with clear steps...
Troubleshooting
Common issues and solutions.
Next Steps
What to do after completing this guide.
### Troubleshooting Documentation
#### Problem-Solution Format
```markdown
### Problem: [Clear description of the issue]
**Symptoms:**
- What the user sees or experiences
- Error messages or unexpected behavior
**Cause:**
Why this problem occurs.
**Solution:**
Step-by-step resolution.
**Prevention:**
How to avoid this issue in the future.
Common Issues Section
Maintain a section for frequently encountered problems:
- Connection issues: Database connectivity problems
- Schema validation errors: Common validation failures
- Performance problems: Slow queries or operations
- Configuration issues: Setup and configuration problems
Architecture Documentation
Purpose and Audience
Architecture documentation should:
- Explain design decisions: Why things are built this way
- Show relationships: How components interact
- Guide contributors: Help developers understand the codebase
- Document constraints: Technical limitations and trade-offs
Content Structure
# [Component/System Name]
## Overview
High-level description and purpose.
## Architecture
System design with diagrams.
## Components
Detailed component descriptions.
## Data Flow
How data moves through the system.
## Design Decisions
Key architectural choices and rationale.
## Constraints and Limitations
Technical constraints and known limitations.
## Future Considerations
Planned improvements or known issues.
Version Management
Documentation Versioning
- Major versions: Significant API changes or restructuring
- Minor versions: New features or substantial content additions
- Patch versions: Bug fixes, clarifications, or small improvements
Changelog Maintenance
Update changelog.md
for documentation changes:
## [0.3.1] - 2024-01-15
### Documentation
- Added troubleshooting guide for connection issues
- Improved batch loading examples
- Fixed broken links in API reference
- Updated installation instructions for Node.js 18+
Deprecation Process
When deprecating documentation:
- Mark as deprecated: Add deprecation notice to the content
- Provide alternatives: Show users what to use instead
- Set removal timeline: When the content will be removed
- Update cross-references: Remove links from other documentation
> ⚠️ **Deprecated**: This method is deprecated as of v0.3.0 and will be removed in v1.0.0. Use [`newMethod()`](./new-method.md) instead.
Integration with Development Workflow
Documentation in Pull Requests
When to Include Documentation
- New features: Always include documentation updates
- Bug fixes: Update documentation if the fix changes behavior
- Refactoring: Update if public interfaces change
- Performance improvements: Document significant improvements
PR Documentation Checklist
- All new public APIs are documented
- Examples are updated if behavior changes
- Breaking changes are clearly documented
- Migration guides are provided for breaking changes
- Changelog is updated
Continuous Integration
Documentation should be tested in CI:
# Example CI step for documentation
- name: Test Documentation Build
run: |
cd website
pnpm install
pnpm build
- name: Check Links
run: |
# Link checking tool
markdown-link-check docs/**/*.md
Content Maintenance
Regular Review Schedule
- Monthly: Review and update getting started guides
- Quarterly: Check all external links and references
- Per release: Update version-specific information
- Annually: Comprehensive review of all documentation
Content Auditing
What to Check
- Accuracy: Is the information still correct?
- Completeness: Are there gaps in coverage?
- Relevance: Is the content still useful?
- Quality: Does it meet our style standards?
- Performance: Are examples still efficient?
Tools for Auditing
- Link checkers: Automated link validation
- Spell checkers: Catch typos and errors
- Analytics: Identify popular and unused content
- User feedback: Issues and support requests
User Feedback Integration
Collecting Feedback
- GitHub issues: Documentation improvement requests
- User surveys: Periodic documentation satisfaction surveys
- Support channels: Common questions indicate documentation gaps
- Analytics: Page views and user behavior
Acting on Feedback
- Prioritize: Focus on high-impact improvements
- Plan: Include documentation improvements in sprint planning
- Implement: Make changes following this guide
- Follow up: Verify that changes address the feedback
Collaboration Guidelines
Working with Multiple Contributors
Avoiding Conflicts
- Communicate: Discuss major changes before starting
- Coordinate: Use issues to track documentation work
- Review: Always have someone else review your changes
- Merge carefully: Resolve conflicts thoughtfully
Style Consistency
- Follow the style guide: Maintain consistent voice and formatting
- Use templates: Start with provided templates
- Reference examples: Look at existing documentation for patterns
- Ask questions: When in doubt, ask for clarification
Cross-Team Collaboration
With Development Team
- Early involvement: Include documentation in feature planning
- Regular sync: Review documentation needs in team meetings
- Code review: Include documentation review in code review process
- Release planning: Coordinate documentation with release schedules
With Design Team
- User experience: Ensure documentation supports good UX
- Visual consistency: Maintain consistent visual design
- Accessibility: Follow accessibility guidelines
- Information architecture: Organize content logically
Tools and Automation
Recommended Tools
Writing and Editing
- VS Code: With markdown extensions for editing
- Grammarly: For grammar and style checking
- Hemingway Editor: For readability improvement
- Markdown linters: For consistent formatting
Testing and Validation
- markdown-link-check: Automated link validation
- textlint: Automated style guide enforcement
- Lighthouse: Accessibility and performance testing
- Browser testing: Cross-browser compatibility
Automation Opportunities
What to Automate
- Link checking: Regular validation of all links
- Spell checking: Automated typo detection
- Style enforcement: Consistent formatting and style
- Build testing: Ensure documentation builds successfully
What to Keep Manual
- Content quality: Human judgment for clarity and usefulness
- Technical accuracy: Expert review of technical content
- User experience: Human testing of user workflows
- Creative decisions: Style and tone choices
This guide provides the framework for maintaining high-quality documentation. Remember that good documentation is an ongoing effort that requires attention and care from the entire team.