Agent skill
read-docs
Read project documentation from ./docs with access logging. Use when you need to consult documentation, understand architecture, or learn about project components. Tracks doc usage and helpfulness.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/read-docs
SKILL.md
Read Documentation - Documentation Reading with Access Logging
When to Use This Skill
Use this skill when:
- You need to read project documentation from the
./docsfolder - You want to understand architecture, design decisions, or implementation details
- You're looking for guidance on how to implement something
- You need to learn about specific components or subsystems
- The user asks you to "check the docs" or "read the documentation"
Core Philosophy
Track What's Useful: Every documentation access is logged with a helpfulness score to understand which docs are valuable and which need improvement. When docs are missing or inadequate, request new documentation.
Documentation Location
All project documentation is located in:
./docs/
Browse this directory to find relevant documentation files.
Workflow
Phase 1: Find Relevant Documentation
-
List available docs
bashfind ./docs -type f -name "*.md" | sort -
Search for relevant topics
bashgrep -r "keyword" ./docs/Use Grep tool with appropriate patterns to find docs about specific topics.
-
Read the documentation Use the Read tool to view the documentation file.
Phase 2: Log Your Access
After reading a documentation file, you MUST append an access log entry to the end of that file.
Access Log Format:
2025-12-26T10:41:33Z +1 Accessed to understand rendering issues
Components:
- Timestamp: ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ in UTC)
- Score: One of
+1,+0, or-1 - Comment: Short description of why you accessed the doc
Scoring Guidelines:
+1: The doc was helpful and contained the information you needed+0: The doc was somewhat relevant but didn't fully answer your question-1: The doc was not helpful, outdated, or contained incorrect information
Implementation: Use the helper script for atomic append operations:
# Log documentation access
.claude/scripts/log-doc-access.sh ./docs/architecture.md +1 "Accessed to understand BVH acceleration structure"
The helper script handles UTC timestamp generation and atomic appending automatically.
Phase 3: Request Missing or Inadequate Documentation
If any of the following are true:
- No relevant documentation exists for your topic
- Documentation is incomplete and missing key information
- Documentation is out of date and no longer matches the code
Then you MUST add a documentation request to ./docs/documentation-requests.md.
When to Request Documentation:
- No docs found: You searched but couldn't find any documentation on the topic
- Incomplete docs: The doc exists but is missing critical details you need
- Outdated docs: The doc contradicts the actual code or describes old behavior
- Scored -1 or +0: If you logged a -1 or +0 score, consider whether a doc request is needed
Documentation Request Format:
## [Topic/Component Name]
- **Requested**: 2025-12-26T10:41:33Z
- **Requested by**: Agent working on [brief context]
- **Reason**: [Why documentation is needed]
- **Current state**: [None/Incomplete/Outdated]
- **Needed information**: [What should be documented]
Implementation: Use atomic append to add the request:
cat >> ./docs/documentation-requests.md << 'EOF'
## BVH Split Algorithm Details
- **Requested**: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
- **Requested by**: Agent debugging BVH performance issue
- **Reason**: Need detailed explanation of median-split algorithm implementation
- **Current state**: Incomplete (./docs/bvh.md mentions it but lacks details)
- **Needed information**: Step-by-step algorithm, when to use SAH vs median, performance characteristics
EOF
Important: If you logged access with -1 or +0 score, ALSO add a documentation request explaining what was missing.
Phase 4: Use the Information
Apply the information you learned from the documentation (or work around the gaps) to complete your task.
Complete Example - Documentation Found and Helpful
# Step 1: Find relevant docs
find ./docs -type f -name "*.md"
# Step 2: Read the documentation
# (Use Read tool to view ./docs/rendering.md)
# Step 3: Log access
.claude/scripts/log-doc-access.sh ./docs/rendering.md +1 "Accessed to learn about progressive rendering passes"
# Step 4: Use the information in your work
Complete Example - Documentation Missing
# Step 1: Search for docs on texture mapping
grep -r "texture" ./docs/
# Step 2: No relevant docs found!
# Step 3: Add documentation request
cat >> ./docs/documentation-requests.md << 'EOF'
## Texture Mapping Implementation
- **Requested**: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
- **Requested by**: Agent implementing texture support
- **Reason**: No documentation exists on how textures are loaded and applied
- **Current state**: None
- **Needed information**: Texture loading, UV coordinate handling, sampling methods, supported formats
EOF
# Step 4: Inform user and proceed based on code inspection
Complete Example - Documentation Outdated
# Step 1: Read ./docs/materials.md
# (Use Read tool)
# Step 2: Notice the doc describes old Material interface, but code has changed
# Step 3: Log access with -1 score
.claude/scripts/log-doc-access.sh ./docs/materials.md -1 "Information outdated, Material interface has changed"
# Step 4: Add documentation request
cat >> ./docs/documentation-requests.md << 'EOF'
## Material Interface (Update Needed)
- **Requested**: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
- **Requested by**: Agent implementing new material type
- **Reason**: Documentation describes old interface that no longer matches code
- **Current state**: Outdated (./docs/materials.md)
- **Needed information**: Updated interface with new BSDF methods, PDF_f function, current material types
EOF
# Step 5: Proceed based on actual code
Access Log Examples
Helpful documentation (+1)
2025-12-26T10:41:33Z +1 Accessed to understand rendering issues
2025-12-26T11:15:20Z +1 Needed info on BVH construction algorithm
2025-12-26T14:22:45Z +1 Referenced for BDPT implementation details
Somewhat helpful (+0)
2025-12-26T10:45:12Z +0 Partial information about texture mapping
2025-12-26T13:30:00Z +0 Found overview but needed more detail
Note: Consider adding a documentation request for missing details
Not helpful (-1)
2025-12-26T11:00:00Z -1 Information was outdated, code has changed
2025-12-26T15:45:30Z -1 Doc didn't cover the topic I needed
Note: You MUST add a documentation request when logging -1
Important Notes
Atomic Appends
Always use atomic operations when appending:
- Use
.claude/scripts/log-doc-access.shfor access logs (handles atomicity automatically) - Use
cat >> file << 'EOF'for multi-line documentation requests - Do NOT read the file, modify it in memory, and write it back
- This prevents race conditions when multiple agents access docs simultaneously
Always Log Access
You MUST log every documentation access, even if:
- The doc wasn't helpful (use
-1) - You only skimmed it (use
+0) - You accessed it multiple times (log each access)
Always Request Missing Docs
You MUST add a documentation request when:
- No relevant docs exist
- Docs are incomplete (scored +0 or -1)
- Docs are outdated (scored -1)
Don't silently work around missing docs - request them so they can be created!
Comment Quality
Keep comments short but informative:
- ✅ Good: "Accessed to understand BVH split algorithm"
- ✅ Good: "Needed info on BDPT light path construction"
- ✅ Good: "Checking how materials are defined"
- ❌ Bad: "Read the doc"
- ❌ Bad: "Information needed"
Timestamp Format
The helper script automatically generates timestamps in UTC timezone and ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ). This ensures consistent timestamps regardless of system timezone.
Benefits of Access Logging and Requests
The system helps:
- Identify valuable documentation - High +1 scores show what's useful
- Find gaps - Documentation requests reveal missing topics
- Detect outdated docs - Multiple -1 scores and requests indicate problems
- Track usage patterns - See which topics are frequently consulted
- Prioritize documentation work - Most-requested docs should be written first
- Improve documentation - Comments reveal what people are looking for
Integration with Other Skills
This skill works well with:
- fix-bug skill: Read docs to understand how systems should work before debugging
- docs-maintainer agent: Access logs and requests guide documentation improvements
- Feature development: Consult architecture docs before implementing
Example Workflow - Complete Session
User: "How does the BDPT integrator handle light paths?"
1. Search for BDPT documentation:
grep -r "BDPT" ./docs/
2. Found ./docs/integrators.md, read it:
(Use Read tool)
3. Doc explains basic BDPT but lacks light path details:
- Log access with +0 score:
.claude/scripts/log-doc-access.sh ./docs/integrators.md +0 "Found BDPT overview but lacks light path details"
- Add documentation request:
cat >> ./docs/documentation-requests.md << 'EOF'
## BDPT Light Path Construction (Details Needed)
- **Requested**: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
- **Requested by**: Agent explaining BDPT to user
- **Reason**: Documentation explains BDPT concept but not implementation details
- **Current state**: Incomplete (./docs/integrators.md)
- **Needed information**: Light path construction algorithm, connection strategies, MIS weight calculation, splat handling
EOF
4. Examine code to fill in gaps and explain to user
Common Pitfalls to Avoid
- Don't forget to log - Every read must be logged
- Don't forget to request - Missing/inadequate docs need requests
- Don't use non-atomic operations - Always use
echo >> fileorcat >> file - Don't use local timezone - Always use UTC with
date -u - Don't write vague comments - Be specific about why you accessed the doc
- Don't skip logging on -1 - Negative scores are valuable feedback
- Don't skip requesting on -1/+0 - Document what was inadequate
Special Considerations
Multiple Accesses
If you access the same doc multiple times in one task, log each access:
# First access - found overview
.claude/scripts/log-doc-access.sh ./docs/renderer.md +0 "Initial overview of renderer architecture"
# Second access - found specific detail
.claude/scripts/log-doc-access.sh ./docs/renderer.md +1 "Found tile worker pool implementation details"
Documentation Requests File
The ./docs/documentation-requests.md file may not exist initially. That's okay - your first append will create it:
cat >> ./docs/documentation-requests.md << 'EOF'
# Documentation Requests
This file tracks requests for new or improved documentation.
## First Request Topic
...
EOF
Parallel Agents
The atomic append operations (helper script and cat >>) are safe for parallel access:
- Each agent's append is independent
- No need for locks or synchronization
- Logs and requests may be out of chronological order (that's okay)
Request Deduplication
Don't worry about duplicate requests - it's better to log multiple requests for the same missing doc than to miss documenting what's needed. Multiple requests indicate high priority!
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?