doc-synclisted
Install: claude install-skill Roxabi/roxabi-plugins
# Doc Sync
Let:
δ := change description | K := keywords from δ (tools, config fields, CLI flags, paths, functions)
SRC ∈ {working-tree, staged, last-commit} | D := {doc files referencing K}
EDITED := [] — accumulator of modified files
Code change → find **every** doc referencing affected concepts → update.
**⚠ Continuous pipeline. Stop only on: Cancel or Phase 6 completion.**
```
/doc-sync → auto-detect from working tree or last commit
/doc-sync "gitleaks → trufflehog" → user-supplied description
```
## Phase 1 — Parse Input
δ := `$ARGUMENTS` ∨ derive from git (first non-empty wins):
```bash
git diff --stat # 1. unstaged
git diff --cached --stat # 2. staged
git diff HEAD~1..HEAD --stat && git log -1 --format="%s%n%b" # 3. last commit
```
Record SRC. ¬δ after scan → → DP(B) describe change.
## Phase 2 — Discover Context
**2a.** `cat .claude/stack.yml 2>/dev/null` → ∃ `docs.path` → DOCS_ROOT = docs.path; else project root.
**2b.** `ls .claude-plugin/marketplace.json 2>/dev/null` → ∃ → `PLUGINS_REPO=$(pwd)`. Skip to 2d.
**2c.** Locate plugin repo:
```bash
[ -n "$ROXABI_PLUGINS_DIR" ] && echo "$ROXABI_PLUGINS_DIR"
for d in ../*/; do [ -f "${d}.claude-plugin/marketplace.json" ] && [ -d "${d}plugins" ] && echo "$d" && break; done
```
First hit → `PLUGINS_REPO`. ¬found → warn + skip plugin docs.
**2d.** Plugin name:
```bash
REPO=$(gh repo view --json name --jq '.name')
ls "$PLUGINS_REPO/plugins/"
```
Exact ∨ kebab-case