# Reference **Information-oriented documentation** - Technical details and specifications. --- ## What Is Reference Documentation? Reference documentation provides **factual, technical information** that you look up when needed. **Characteristics:** - ✅ Information-oriented (facts and data) - ✅ Comprehensive and accurate - ✅ Structured for lookup - ✅ Dry and to-the-point - ✅ Maintained as code changes **Not reference:** - ❌ Learning materials (those are Tutorials) - ❌ Problem-solving guides (those are How-To) - ❌ Conceptual explanations (those are Explanation) --- ## Available Reference Documentation ### [Configuration](configuration.md) **Complete reference for all configuration options** **Contents:** - Environment variables - Configuration file format - Validation rules - Examples for development/production/testing **Use when:** You need to know what a config option does or what values are valid --- ### [Git Protocol](git-protocol.md) **Git Smart HTTP protocol specification** **Contents:** - Protocol overview - Pkt-line format - Request/response structure - Reference updates format - Parsing examples **Use when:** You need to understand Git HTTP internals --- ### [Test Strategy](test-strategy.md) **Testing approach and compliance framework** **Contents:** - Test categories (unit, integration, compliance) - GRASP compliance requirements - Test isolation strategy - Running tests - Coverage requirements **Use when:** You're writing tests or need to understand test structure --- ## Planned Reference Documentation ### GRASP Protocol **Status:** 🔜 Planned **Contents:** - GRASP-01 requirements - GRASP-02 (Proactive Sync) - GRASP-05 (Archive) - Event formats - Validation rules --- ### API Reference **Status:** 🔜 Planned (waiting for main server) **Contents:** - HTTP endpoints - Request/response formats - Error codes - Authentication - Rate limiting --- ### nostr-sdk Upgrade Guide **Status:** 🔜 Planned **Contents:** - Version compatibility matrix - Breaking changes by version - Migration examples - Common patterns --- ### Event Formats **Status:** 🔜 Planned **Contents:** - NIP-34 repository announcements (kind 30317) - NIP-34 state events (kind 30318) - Custom tags - Validation rules --- ### CLI Reference **Status:** 🔜 Planned **Contents:** - Command-line arguments - Subcommands - Environment variables - Exit codes --- ## How to Use Reference Documentation 1. **Know what you're looking for** - Reference is for lookup, not learning 2. **Use search or table of contents** - Find the specific detail you need 3. **Check version** - Ensure docs match your version 4. **Verify with code** - Reference should match implementation **Not sure if this is what you need?** - New to the topic? → [Tutorials](../tutorials/) - Trying to solve a problem? → [How-To Guides](../how-to/) - Want to understand concepts? → [Explanation](../explanation/) --- ## Contributing Reference Documentation When writing reference documentation: **DO:** - ✅ Be accurate and complete - ✅ Use consistent structure - ✅ Include all options/parameters - ✅ Provide examples - ✅ Update when code changes - ✅ Use tables for structured data **DON'T:** - ❌ Explain concepts (link to Explanation) - ❌ Provide tutorials (link to Tutorials) - ❌ Solve problems (link to How-To) - ❌ Include opinions or recommendations **Template:** ```markdown # Reference: [Topic] **Purpose:** [What this reference covers] **Audience:** [Who needs this information] --- ## Overview [Brief description of what's being documented] --- ## [Section 1] ### [Item] **Description:** [What it is/does] **Type:** [Data type] **Default:** [Default value] **Required:** [Yes/No] **Examples:** \`\`\` [Example usage] \`\`\` **Notes:** - [Important details] --- ## Related Documentation - [Links to relevant docs] ``` See [Diátaxis: Reference](https://diataxis.fr/reference/) for detailed guidance. --- *Part of the [ngit-grasp documentation](../README.md) using the [Diátaxis](https://diataxis.fr/) framework.*