🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

DocSync

by @suhteevah

Generate and auto-sync documentation from code with git hooks; detect and fix doc drift using tree-sitter parsing and semantic diffs locally.

Versionv1.0.1
Downloads1,761
TERMINAL
clawhub install docsync

πŸ“– About This Skill


name: docsync description: Auto-generate docs from code and detect documentation drift via git hooks. Free README gen + paid living docs. homepage: https://docsync.pages.dev metadata: { "openclaw": { "emoji": "πŸ“–", "primaryEnv": "DOCSYNC_LICENSE_KEY", "requires": { "bins": ["git", "bash"] }, "install": [ { "id": "lefthook", "kind": "brew", "formula": "lefthook", "bins": ["lefthook"], "label": "Install lefthook (git hooks manager)" }, { "id": "tree-sitter", "kind": "brew", "formula": "tree-sitter", "bins": ["tree-sitter"], "label": "Install tree-sitter (code parser)" }, { "id": "difftastic", "kind": "brew", "formula": "difftastic", "bins": ["difft"], "label": "Install difftastic (semantic diff)" } ], "os": ["darwin", "linux", "win32"] } } user-invocable: true disable-model-invocation: false

DocSync β€” Living Documentation for Your Codebase

DocSync generates documentation from your code and keeps it in sync automatically. It uses tree-sitter for multi-language AST parsing, lefthook for git hook integration, and difftastic for semantic change detection.

Commands

Free Tier (No license required)

#### docsync generate Generate a one-shot README or API doc for a single file or directory.

How to execute:

bash "/scripts/docsync.sh" generate 

What it does: 1. Parses the target file(s) with tree-sitter to extract symbols (functions, classes, exports, types, interfaces) 2. Applies the appropriate template from /templates/ 3. Generates a markdown documentation file alongside the source

Example usage scenarios:

  • "Generate docs for src/utils/auth.ts" β†’ runs docsync generate src/utils/auth.ts
  • "Document this whole directory" β†’ runs docsync generate src/api/
  • "Create a README for this project" β†’ runs docsync generate .
  • Pro Tier ($29/user/month β€” requires DOCSYNC_LICENSE_KEY)

    #### docsync drift [directory] Scan for documentation drift β€” find where code has changed but docs haven't been updated.

    How to execute:

    bash "/scripts/docsync.sh" drift [directory]
    

    What it does: 1. Validates license key from config 2. Parses all source files with tree-sitter 3. Compares extracted symbols against existing documentation 4. Reports: new undocumented symbols, changed signatures with stale docs, deleted symbols still in docs 5. Outputs a drift report with severity levels (critical/warning/info)

    #### docsync hooks install Install git hooks that automatically check for doc drift on every commit.

    How to execute:

    bash "/scripts/docsync.sh" hooks install
    

    What it does: 1. Validates Pro+ license 2. Copies lefthook config to project root 3. Installs lefthook pre-commit hook 4. On every commit: analyzes staged files, blocks commit if critical drift detected, offers auto-regen

    #### docsync hooks uninstall Remove DocSync git hooks.

    bash "/scripts/docsync.sh" hooks uninstall
    

    #### docsync auto-fix [directory] Auto-regenerate stale documentation for files with detected drift.

    bash "/scripts/docsync.sh" auto-fix [directory]
    

    Team Tier ($49/user/month β€” requires DOCSYNC_LICENSE_KEY with team tier)

    #### docsync onboarding [directory] Generate a comprehensive onboarding guide for new developers.

    bash "/scripts/docsync.sh" onboarding [directory]
    

    #### docsync architecture [directory] Generate architecture documentation showing module relationships and data flow.

    bash "/scripts/docsync.sh" architecture [directory]
    

    Supported Languages

    DocSync uses tree-sitter grammars and supports:

  • JavaScript / TypeScript (including JSX/TSX)
  • Python
  • Rust
  • Go
  • Java
  • C / C++
  • Ruby
  • PHP
  • C#
  • Swift
  • Kotlin
  • Configuration

    Users can configure DocSync in ~/.openclaw/openclaw.json:

    {
      "skills": {
        "entries": {
          "docsync": {
            "enabled": true,
            "apiKey": "YOUR_LICENSE_KEY_HERE",
            "config": {
              "outputDir": "docs",
              "templateOverrides": {},
              "excludePatterns": ["/node_modules/", "/dist/", "/.git/"],
              "languages": ["typescript", "python", "go"],
              "driftThreshold": "warning",
              "autoFix": false
            }
          }
        }
      }
    }
    

    Important Notes

  • Free tier works immediately with no configuration
  • Pro/Team tiers require a license key from https://docsync.pages.dev
  • All processing happens locally β€” no code is sent to external servers
  • License validation is offline β€” no network calls needed
  • Git hooks use lefthook which must be installed (see install metadata above)
  • tree-sitter and difftastic are optional but recommended for best results; the skill falls back to regex-based parsing if unavailable
  • Error Handling

  • If tree-sitter is not installed, fall back to regex-based symbol extraction (less accurate but functional)
  • If lefthook is not installed and user tries hooks install, prompt to install it
  • If license key is invalid or expired, show clear message with link to https://docsync.pages.dev/renew
  • If a language grammar is not available, skip that file with a warning
  • When to Use DocSync

    The user might say things like:

  • "Generate docs for this file/project"
  • "Are my docs up to date?"
  • "Check for documentation drift"
  • "Set up auto-docs on my commits"
  • "Create an onboarding guide"
  • "Document the architecture"
  • "What's undocumented in this codebase?"
  • βš™οΈ Configuration

    Users can configure DocSync in ~/.openclaw/openclaw.json:

    {
      "skills": {
        "entries": {
          "docsync": {
            "enabled": true,
            "apiKey": "YOUR_LICENSE_KEY_HERE",
            "config": {
              "outputDir": "docs",
              "templateOverrides": {},
              "excludePatterns": ["/node_modules/", "/dist/", "/.git/"],
              "languages": ["typescript", "python", "go"],
              "driftThreshold": "warning",
              "autoFix": false
            }
          }
        }
      }
    }