Docs site
Nine Claude skills for multi-repo workflows: audit builds, tame CI, sync docs↔code, and keep sister repos in lockstep.
npx -y skills add ajbarea/techne --skill docs-siteAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Maintain the Zensical-powered documentation site — nav ordering in zensical.toml, the docs GitHub Pages workflow, CSS and JS assets, and link/anchor integrity across docs/**/*.md. Sibling of /techne:docsync (which only verifies prose claims against code). Use when the user wants the site itself audited — config, deploy pipeline, theming, assets, cross-page links — rather than content accuracy.
SKILL.md
5.8 KB, as published. Nobody here has run it
Docs-Site
Audit and maintain the documentation site as a build/deploy artifact. /techne:docsync answers "does this claim match the code?"; /techne:docs-site answers "does this site build, deploy, render, and link correctly?"
Repo context
cat .claude/skill-context.md 2>/dev/null || echo "(no .claude/skill-context.md — skill will use generic defaults for CSS/JS stack)"
The injected ## docs_site section (if present) supplies this repo's CSS file list, JS file list, build command, site URL, and expected action pins. Use those over the generic defaults below when available.
Surface
zensical.toml— nav ordering, palette, theme features, extra css/js, site URL, social links..github/workflows/docs.yml— trigger paths,astral-sh/setup-uvaction, build invocation (from injecteddocs_site.build_command), Pages upload/deploy actions and versions.docs/**/*.md— presence matchesnav(including any nested sub-sections), internal links resolve, anchors exist, no orphan files.- CSS files — every file listed in
zensical.tomlextra_cssexists on disk, and the selectors reference classes that actually appear in rendered output. The injecteddocs_site.css_fileslists what to expect (single file vs. modular stack with components). - JS files — every file listed in
zensical.tomlextra_javascriptexists on disk, no dead files. The injecteddocs_site.js_fileslists what to expect. docs/assets/— every asset is referenced somewhere; no orphan binaries inflating the repo.
Checks
Run as many in parallel as the scope calls for:
-
Nav vs filesystem. Parse
zensical.tomlnav(sections may be nested);Globdocs/**/*.md. Every nav entry must exist as a file; every.mdunderdocs/(except intentional sub-pages) should appear in nav. Report missing-in-nav and missing-on-disk separately. -
Internal links.
Grepmarkdown link targets (](foo.md),](foo.md#bar)) acrossdocs/**/*.md. For each: check the file exists, and if an anchor is specified,Grepthe target file for a heading that would produce that slug (lowercase, spaces →-, strip punctuation). -
Assets referenced. For each file under
docs/assets/,docs/stylesheets/, anddocs/javascripts/,Grepthe rest of the repo for its basename. Unreferenced assets are candidates for deletion. -
zensical.tomlsanity.extra_cssandextra_javascriptpaths exist on disk (relative todocs/).site_urlmatches the repo's expected GitHub Pages URL (per injecteddocs_site.site_url).- Palette entries are valid theme colors (warn on typos).
navhas no duplicate labels.
-
Workflow sanity (
docs.yml).- Trigger
pathscoversdocs/**,zensical.toml, and the workflow itself. - Action versions are pinned to a tag (not
@main), and major versions look current. The injecteddocs_site.action_pins(if present) lists the expected versions. - Build command matches the injected
docs_site.build_command(typicallyuv run zensical build --cleanoruv tool run zensical build --clean). pages: writepermission present;id-token: writepresent for OIDC deploy.
- Trigger
-
Local build smoke test (optional, on request). Run the injected
docs_site.build_commandand diff against the committed state. Never commit the resultingsite/— it's gitignored.
Report format
Group findings by surface area. One line per issue: file:line — problem — proposed fix.
zensical.toml:22
nav entry "Specialists" = "agents/specialists.md"; file exists — ok
zensical.toml:28
nav entry "Infrastructure" → docs/architecture/infrastructure.md:42 missing anchor #hf-buckets referenced from docs/architecture/internals.md:88
fix: add "## HF Buckets" heading to docs/architecture/infrastructure.md, or retarget the link
docs/assets/unused-diagram.png
orphan — no references in docs/ or zensical.toml
fix: delete, or wire into a page
.github/workflows/docs.yml:23
astral-sh/[email protected] — pinned, current
.github/workflows/docs.yml:39
actions/[email protected] — pinned, current
End with a one-line verdict and an apply all / apply selected / skip? prompt if any fixes are straightforward edits.
Fan-out pattern
For a full audit (all six checks), dispatch one Explore subagent per check so they run in parallel. Each returns its findings grouped by file. Main agent consolidates and presents.
For a narrow request ("just check the nav"), do it inline without subagents.
Don't touch
site/(generated build output, gitignored).- Content of
docs/**/*.md— that's/techne:docsyncterritory. The only content touch allowed here is fixing a broken anchor reference or adding a missing heading when the link is clearly the authoritative side. - Third-party workflows (anything not under
.github/workflows/docs.ymlunless it also affects docs deploy).
Hand-offs
- Prose drift or stale commands in docs pages →
/techne:docsync. - Slop in doc prose →
/techne:deslopwithdocs/scope. - Rewriting unclear prose →
/techne:reslop.
Why this skill is quiet
Output is the findings grouped by surface, then the edits on confirmation. No narration of the check process — the grep-and-verify loop is boring; the findings are the product.