assessment
Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis,…
Detect documentation drift against filesystem state.
Claude Code
$ npx -y skills add notque/vexjoy-agent --skill docs-sync-checker --agent claude-code
Codex
$ npx skills add notque/vexjoy-agent --skill docs-sync-checker -a codex -y
Cursor
$ npx skills add notque/vexjoy-agent --skill docs-sync-checker -a cursor -y
Gemini CLI
$ npx skills add notque/vexjoy-agent --skill docs-sync-checker -a gemini-cli -y
GitHub Copilot
$ npx skills add notque/vexjoy-agent --skill docs-sync-checker -a github-copilot -y
OpenCode
$ npx skills add notque/vexjoy-agent --skill docs-sync-checker -a opencode -y
Windsurf
$ npx skills add notque/vexjoy-agent --skill docs-sync-checker -a windsurf -y
name: docs-sync-checker
description: "Detect documentation drift against filesystem state."
user-invocable: false
allowed-tools:
- Read
- Write
- Bash
- Grep
- Glob
- Edit
- Task
routing:
triggers:
- "check doc drift"
- "sync documentation"
- "stale docs"
- "documentation drift"
- "README outdated"
category: documentation
pairs_with:
- toolkit
- assessmentDeterministic 4-phase drift detector that compares the filesystem against each tool type's primary doc: `docs/skills.md`, `docs/routing-map.md`, and `docs/REFERENCE.md`. Each phase (Scan, Cross-Reference, Detect, Report) has a gate that must pass before proceeding. The skill produces a sync score (percentage of tools properly documented) and actionable fix suggestions for every detected issue.
This skill checks documentation presence and absence only -- it does not judge description quality, generate documentation content, resolve merge conflicts, validate cross-references, or track when drift occurred. Suggested fixes use YAML descriptions verbatim; content generation and quality assessment require different skills.
Report flags: `--strict` (exit code 1 on issues), `--format json` (machine-readable output).
---
**Goal**: Discover all skills, agents, and commands in the repository filesystem. All discovery (file existence checks, YAML parsing, markdown extraction) must be deterministic -- no AI judgment on content quality.
**Step 1: Run the scan script**
python3 skills/meta/docs-sync-checker/scripts/scan_tools.py --repo-root $HOME/vexjoy-agent --output /tmp/scan_results.json
**Step 2: Validate discovery results**
For each tool type, verify:
Skills (`skills/**/SKILL.md`):
Agents (`agents/*.md`):
Commands (`commands/**/*.md`):
**Step 3: Validate the docs routing catalog**
Every `docs/*.md` file (outside `archive/` and `images/`) carries frontmatter with `summary` and `read_when` — the on-demand load triggers for docs, matching what `skills/INDEX.json` gives skills.
python3 scripts/docs-catalog.py --check
Exit 1 means a doc is missing frontmatter; add `summary` and `read_when` to that file. `python3 scripts/docs-catalog.py` (no flags) prints the catalog table; `--json` emits it machine-readable.
**Step 4: Count and verify**
## Scan Results Skills found: [N] Agents found: [N] Commands found: [N] YAML errors: [N] (must be 0 to proceed)
**Gate**: All tools discovered, all YAML valid, counts >0 for each type, docs catalog check exits 0. Proceed only after the gate passes.
**Goal**: Extract documented tools from each type's primary doc and compare with discovered tools. Targets live in `PRIMARY_DOCS` in `scripts/parse_docs.py`; `scripts/validate.py` fails if one is missing.
**Step 1: Run the documentation parser**
python3 skills/meta/docs-sync-checker/scripts/parse_docs.py --repo-root $HOME/vexjoy-agent --scan-results /tmp/scan_results.json --output /tmp/issues.json
**Step 2: Parse each primary doc**
These are the documentation files to check -- no others:
| File | Tool type | Maintained by | What to Extract | |------|-----------|---------------|-----------------| | `docs/skills.md` | Skills | `scripts/generate-skills-doc.py` | First cell of every table row: `` `skill-name` `` | | `docs/routing-map.md` | Agents | `scripts/generate-routing-map.py` | First cell of each `## AGENTS` table row: `agent-name` | | `docs/REFERENCE.md` | Commands | Hand-written | First cell of each `## Slash Commands` table row: `` `/command` `` | | `README.md` | Mentions only | Hand-written | `/command` and `*-engineer` mentions; recorded, never flagged |
**Step 3: Build documented-tools registry**
For each primary doc, collect the set of tool names found. This creates a mapping of `{file -> [tool_names]}` that Phase 3 will compare against the filesystem scan.
**Step 4: Verify parse completeness**
**Gate**: All documentation files parsed without errors. Proceed only after the gate passes.
**Goal**: Compare discovered tools with documented tools to identify drift. This is a point-in-time snapshot -- it cannot tell you when drift occurred, only that it exists now.
**Step 1: Compute set differences**
For each tool type and its primary documentation file:
**Step 2: Categorize and assign severity**
Severity reflects user impact: missing entries mean tools are undiscoverable and stale entries waste time.
| Category | Condition | Severity | |----------|-----------|----------| | Missing Entry | Tool in filesystem, not in its primary doc | HIGH | | Stale Entry | Tool in a primary doc, not in filesystem | MEDIUM | | Incomplete Entry | Documentation missing required fields | LOW |
**Step 3: Record issue details**
For ea
Essays and writing behind this toolkit live at vexjoy.com. VexJoy Agent connects plain-English requests to specialist agents, skills, and workflows. /do selects the knowledge and tools needed for your task.
Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis,…
Business operations: strategy, technology, growth, competitive intelligence, support, finance, HR, legal, operations, sales,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.