🧪 Skills
Documentation-Accurate Code Generation
Generate code that references actual documentation, preventing hallucination bugs. ALWAYS loads docs first, validates against API signatures, and verifies co...
v1.0.0
Description
name: doc-accurate-codegen version: "1.0.0" description: "Generate code that references actual documentation, preventing hallucination bugs. ALWAYS loads docs first, validates against API signatures, and verifies correctness. Use for ANY code generation, API usage, or configuration creation." metadata: openclaw: emoji: "📚" requires: bins: ["curl", "jq", "git"] env: ["BRAVE_API_KEY"] install: - id: npm kind: node package: axios bins: ["axios"]
Documentation-Accurate Code Generation
CRITICAL: This skill prevents LLM hallucination by enforcing documentation reference.
When to Use
- ALWAYS when generating code
- ALWAYS when using APIs
- ALWAYS when creating configurations
- ALWAYS when implementing features
Core Philosophy
NEVER generate code from memory. ALWAYS reference documentation.
The Problem
- LLMs hallucinate APIs that don't exist
- Methods get renamed or removed
- Parameters change or get deprecated
- Return types shift unexpectedly
- Configuration formats evolve
The Solution
- Load documentation FIRST — Before writing any code
- Extract API signatures — Get actual method signatures
- Generate from docs — Use real API data
- Validate against docs — Check generated code matches
- Reference tracking — Document which docs were used
Workflow
1. IDENTIFY → What code/API/tool is needed?
2. LOCATE → Find documentation source
3. LOAD → Fetch and parse documentation
4. EXTRACT → Pull API signatures, parameters, examples
5. GENERATE → Create code using actual docs
6. VALIDATE → Check code matches documentation
7. REFERENCE → Track what docs were used
Documentation Sources
1. OpenClaw Internal Docs
- Location:
C:\Users\clipp\AppData\Roaming\npm\node_modules\openclaw\docs - Access:
readtool - Use: For OpenClaw-specific APIs, tools, skills
2. Tool Documentation
- Tool help:
--helpflags - Man pages:
man <command> - Official docs: Use
web_fetchto get docs
3. API Documentation
- Official docs: Use
web_fetch - OpenAPI specs: Parse and reference
- Package docs: npm, pip, cargo docs
4. Code Examples
- Existing code: Read similar implementations
- Tests: Check test files for usage patterns
- Examples: Find working code samples
Process for Code Generation
Step 1: Documentation Discovery
# For OpenClaw tools
read("openclaw-docs-path/tool-name.md")
# For external tools
web_fetch("https://docs.tool.com/api")
# For local tools
exec("tool --help")
Step 2: API Signature Extraction
# Extract:
- Method names
- Parameters (names, types, required/optional)
- Return types
- Error handling
- Examples
- Version information
Step 3: Code Generation
# Generate code using actual API data
def generate_from_docs(api_docs):
# Use real method names
# Use real parameter names
# Use real return types
# Include error handling from docs
# Add docstrings from docs
pass
Step 4: Validation
def validate_against_docs(code, api_docs):
# Check method names match
# Check parameter names match
# Check types match
# Check return types match
# Verify no hallucinated methods
pass
Quick Actions
codegen <api>— Generate code with doc referencevalidate <code>— Check code against docsdoc-lookup <api>— Load and display documentationapi-extract <tool>— Extract API signatures
Usage Examples
"Generate code to use the OpenClaw sessions_spawn tool"
# Process: Load docs → Extract API → Generate → Validate
"Create a Python script using the requests library"
# Process: Fetch requests docs → Extract API → Generate → Validate
"Write configuration for OpenClaw channels"
# Process: Load config docs → Extract format → Generate → Validate
Validation Rules
1. Method Name Validation
- Check method exists in docs
- Verify spelling matches exactly
- Confirm method is not deprecated
2. Parameter Validation
- All required parameters present
- Parameter names match docs exactly
- Parameter types match docs
- Optional parameters marked correctly
3. Return Type Validation
- Return type matches docs
- Error types match docs
- Edge cases handled
4. Configuration Validation
- Keys match documentation
- Value types match schema
- Required fields present
- Format matches specification
Error Prevention
Common Hallucination Patterns
- Non-existent methods — Methods that don't exist
- Wrong parameter names — Hallucinated parameter names
- Wrong types — Incorrect parameter/return types
- Missing error handling — Ignoring documented errors
- Wrong configuration format — Incorrect config structure
Prevention Strategies
- Always load docs first — Never generate from memory
- Extract actual signatures — Don't guess API shape
- Validate everything — Check against real docs
- Reference tracking — Know which docs were used
- Test with real APIs — Verify code actually works
Integration Points
With Other Skills
- Coding skill: Use this for doc-accurate code
- Self-evolution: Update skills with doc validation
- Content generation: Generate accurate code examples
- Research: Research APIs from actual docs
With OpenClaw Tools
- read: Load internal documentation
- web_fetch: Fetch external documentation
- exec: Run tools with
--helpfor docs - edit/write: Create validated code
Reference Tracking
Format
# Code Generation Reference
## Generated Code
- File: path/to/file.py
- Generated: 2026-02-23
- Tool: doc-accurate-codegen
## Documentation Sources
1. OpenClaw Tool Docs: /docs/tools/exec.md
2. API Reference: https://docs.example.com/api
3. Examples: /examples/exec-usage.py
## Validation
- ✅ Method names validated
- ✅ Parameters validated
- ✅ Return types validated
- ✅ Error handling validated
## Notes
- Using exec tool with sandbox mode
- All parameters from official docs
- Error handling from API reference
Output Template
When generating code, always include:
# Code generated with documentation reference
# Source: [documentation URL or path]
# Validated: [timestamp]
# API Version: [version if available]
def function_name():
"""
[Docstring from actual documentation]
Source: [link to docs]
Parameters: [from docs]
Returns: [from docs]
"""
# Implementation using actual API
pass
Best Practices
- Docs First, Always — Never generate without loading docs
- Exact Matches — Use exact names, types, formats from docs
- Validate Everything — Check all generated code
- Track References — Document which docs were used
- Test Real APIs — Actually run the code to verify
- Update Regularly — Re-check docs as APIs evolve
- Error Handling — Include all documented errors
- Examples — Reference working examples from docs
Common Pitfalls
- Assuming API stability — APIs change, always re-check docs
- Memory over docs — Trust docs, not memory
- Partial loading — Load complete documentation
- No validation — Always validate generated code
- Missing references — Always track doc sources
Success Metrics
- Hallucination rate: 0% (all code references actual docs)
- Validation rate: 100% (all code validated)
- Reference tracking: 100% (all code has doc sources)
- Error rate: 0% (no API misuse)
- Test pass rate: 100% (all generated code works)
Advanced Features
1. Automatic Doc Loading
- Detect what APIs are needed
- Automatically fetch relevant docs
- Cache for future use
2. API Change Detection
- Monitor docs for changes
- Alert when APIs change
- Suggest code updates
3. Multi-Source Validation
- Cross-reference multiple doc sources
- Detect conflicts between sources
- Use most authoritative source
4. Example Extraction
- Extract working examples from docs
- Adapt examples to specific needs
- Test examples before using
Integration with OpenClaw
Tool Documentation
# Get tool help
exec("tool --help")
# Read tool docs
read("openclaw/docs/tools/tool-name.md")
# Check tool examples
read("openclaw/examples/tool-usage.md")
Skill Documentation
# Read skill docs
read("skills/skill-name/SKILL.md")
# Check skill examples
read("skills/skill-name/examples/")
Configuration Documentation
# Read config docs
read("openclaw/docs/configuration.md")
# Check config examples
read("openclaw/examples/config/")
Remember: This skill exists because LLMs hallucinate. ALWAYS use it for code generation. The only way to prevent bugs is to reference actual documentation.
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!