← All skills
docsync-setup
85 / 100 · Low risk
Fine to try. Some of what it can do is expected: a coding skill usually runs build and test commands.
By kochetkov-ma/claude-brewcode (GitHub) · coding · 39 stars · scanned at commit 5da825f
Installs project-local doc-staleness tracking (hooks) and reports/forces doc sync. Triggers: docsync, track doc staleness, doc sync status, stale docs, doc frontmatter.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
The author does not mention this. Expected for a coding skill.
Found in 18 places.
Show 15 more
- brewdoc/skills/docsync-setup/SKILL.md, line 287
ROOT="${CLAUDE_PROJECT_DIR}" - brewdoc/skills/docsync-setup/SKILL.md, line 404
ROOT="${CLAUDE_PROJECT_DIR}" - brewdoc/skills/docsync-setup/assets/INSTALL.md, line 149
const { spawnSync } = require('node:child_process'); - brewdoc/skills/docsync-setup/assets/INSTALL.md, line 273
const checked = spawnSync(process.execPath, ['--check', source], { encoding: 'utf8' }); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 4
import { spawnSync, spawn } from 'node:child_process'; - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 45
const r = spawnSync(process.execPath, [HOOK[hook]], { - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 137
const hook = (kind, payload) => spawnSync(process.execPath, [HOOK[kind]], { input: JSON.stringify({ session_id: 's1', cwd, ...payload }), encoding: 'utf8', cwd, - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 141
const roots = rootLines.map((line) => spawnSync('bash', ['-c', `ROOT=""\n${line}\nprintf '%s' "$ROOT"`], { cwd, env, encoding: 'utf8' }).stdout); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 486
const r = spawnSync('bash', ['-c', removeBlock], { cwd: root, encoding: 'utf8', env }); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 506
return spawnSync('bash', ['-c', script], { cwd: root, encoding: 'utf8', env }); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 532
const tracked = spawnSync(process.execPath, [join(root, '.claude/hooks/docsync-track.mjs')], { - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 585
const r = spawnSync('bash', ['-c', removeBlock], { cwd: root, encoding: 'utf8', env }); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 595
const result = spawnSync('bash', ['-c', installBlock], { cwd: root, encoding: 'utf8', env }); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 769
const out = root => { const r = spawnSync('bash', ['-c', detect], { cwd: root, encoding: 'utf8', env: childEnv({ projectDir: root }) }); return [r.status, r.std - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 810
const r = spawnSync(process.execPath, ['-e', probe, settings, join(BASE, 'lockstep-absent.json')], { encoding: 'utf8' });
Changes files outside its own folder
The author does not mention this.
Found in 14 places.
Show 11 more
- brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 704
for (const n of ['track', 'watch', 'gate']) writeFileSync(join(root, `.claude/hooks/docsync-${n}.mjs`), 'old bytes\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 705
writeFileSync(join(root, '.claude/settings.json'), JSON.stringify(LEGACY_SETTINGS, null, 2) + '\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 742
for (const n of ['track', 'gate']) writeFileSync(join(root, `.claude/hooks/docsync-${n}.mjs`), 'fork bytes\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 743
writeFileSync(join(root, '.claude/settings.json'), JSON.stringify(forked, null, 2) + '\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 761
for (const n of ['track', 'gate']) writeFileSync(join(fork, `.claude/hooks/docsync-${n}.mjs`), 'fork bytes\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 762
writeFileSync(join(fork, '.claude/settings.json'), JSON.stringify({ hooks: { PostToolUse: [{ matcher: 'Write|Edit|MultiEdit', hooks: [W('track')] }], Stop: [{ h - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 855
writeFileSync(join(root, '.claude/settings.json.bak'), 'existing user backup\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 869
writeFileSync(join(wired, '.claude/settings.json.bak'), JSON.stringify(LEGACY_SETTINGS)); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 871
writeFileSync(join(empty, '.claude/settings.json.bak'), '{}\n'); - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 873
writeFileSync(join(same, '.claude/settings.json.bak'), JSON.stringify({ env: { KEEP: 'yes' }, hooks: { PostToolUse: [{ matcher: 'Write|Edit|MultiEdit', hooks: [ - brewdoc/skills/docsync-setup/tests/suite-hooks.mjs, line 905
writeFileSync(join(root, '.claude/settings.json'), '{broken');
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'docsync-setup' ] || [ -L ~/.agents/skills/'docsync-setup' ]; then echo 'A skill folder named docsync-setup already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/kochetkov-ma/claude-brewcode' "$d" && git -C "$d" checkout --quiet '5da825f1d535d9658f0de0893529c6ce06a613a5' -- 'brewdoc/skills/docsync-setup' && mkdir -p ~/.agents/skills && cp -R "$d"/'brewdoc/skills/docsync-setup' ~/.agents/skills/'docsync-setup' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'docsync-setup' ~/.claude/skills/'docsync-setup' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for kochetkov-ma/claude-brewcode shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/kochetkov-ma/claude-brewcode/)
Score history
| Date | Version | Score |
|---|
| 2026-11-13 | 5da825f | 85 |
| 2026-11-07 | 9ddf5c0 | 85 |