Agent skill

Update Docs

by ryokun6 in ryokun6/ryos

Update ryOS documentation by analyzing the codebase and syncing docs with current implementation.

AGPL-3.0Auto-check passedDevelopment

Install Update Docs

skills CLI
$ npx skills add ryokun6/ryos --skill update-docs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ryokun6/ryos update-docs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ryokun6/ryos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/update-docs .claude/skills/update-docs && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
update-docs
GitHub stars
1.3k
Token cost
~2.4k tokens
SKILL.md length
1,020 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Update ryOS documentation by analyzing the codebase and syncing docs with current implementation.

  • Works in 6 steps: Launch Parallel Sub-Agents → Update the Changelog (manual curation) → Capture Changelog Screenshots → …
  • Syncing documentation
  • SKILL.md covers Documentation Sections, Workflow, Sub-Agent Prompts and Section Shortcuts, plus 1 more section
  • Calls bun and git

What it does

Update Docs is an agent skill from ryokun6/ryos. Update ryOS documentation by analyzing the codebase and syncing docs with current implementation. Use when updating docs, syncing documentation, or when docs are outdated.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Subagents. The repository describes itself as: ryOS, made with Cursor. The licence is AGPL-3.0.

When your agent uses it

  • Syncing documentation
  • Docs are outdated

Example prompts

  • “/update-docs”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Launch Parallel Sub-Agents
  2. Update the Changelog (manual curation)
  3. Capture Changelog Screenshots
  4. Generate HTML
  5. Sync Tests
  6. Review Changes

What it can do on your machine

Read from SKILL.md and the folder at commit 4a6e61e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bun
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Update Docs loads about 2.4k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 1,020 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ryokun6/ryos at commit 4a6e61e, republished under its AGPL-3.0 licence (© ryokun6). 1,020 words, ~2,432 tokens.

Download SKILL.mdSave it as .claude/skills/update-docs/SKILL.md (or your agent's skills folder).
name
update-docs
description
Update ryOS documentation by analyzing the codebase and syncing docs with current implementation. Use when updating docs, syncing documentation, or when docs are outdated.

Update Documentation

Update manually-written docs by launching parallel sub-agents for each section.

Documentation Sections

Section files live in docs/. The list below covers the hand-written sections; app pages (2.1–2.x) are generated and the changelog (9-changelog.md) is hand-curated — see Notes.

SectionFilesRelated Code
Overview1-overview.md, 1.1-architecture.md, 1.2-api-architecture.md, 1.3-self-hosting-vps.mdsrc/, api/, package.json
Apps Index2-apps.mdsrc/config/appRegistry.tsx, src/apps/*/metadata.ts
Framework3-*.md (incl. 3.1–3.5, 3.3.1)src/components/layout/, src/stores/, src/themes/, src/hooks/
AI System4-ai-system.mdapi/chat.ts, api/chat/tools/, src/apps/chats/tools/
File System5-file-system.mduseFilesStore.ts, src/apps/finder/
Audio System6-audio-system.mdaudioContext.ts, useSound.ts, src/apps/synth/
UI Components7-*.md (incl. 7.1 component library, 7.2 i18n)src/components/ui/, src/lib/locales/
API Reference8-*.md (incl. 8.1–8.10)api/*.ts, docs/8.10-api-design-guide.md
Legal10-privacy.md, 11-terms.mdn/a (manual)

Run ls docs/*.md before starting so the section list reflects what currently exists.

Workflow

1. Launch Parallel Sub-Agents

For each section, launch a Task with:

  1. Read current doc file(s)
  2. Analyze relevant code for changes
  3. Update outdated/missing info
  4. Preserve existing structure
  5. Report changes
2. Update the Changelog (manual curation)

docs/9-changelog.md is hand-curated — do NOT regenerate it. generate-changelog.ts skips when the file exists and --force (or generate:docs:full) would destroy the curated featured cards. Instead:

  1. Find what's new since the last curation:
    bash
    git log -1 --format=%H -- docs/9-changelog.md   # last changelog commit
    git log <that-hash>..HEAD --no-merges --pretty='%ad %s' --date=short
  2. Add new bullets to the current month's <details> block (never delete old content) and update the More from this month (N) count. Style: capitalized action verb, user-facing language; bold **Name**: only for significant items.
  3. For headline features, add a featured card at the top of the month's changelog-feature-grid (newest first — the docs home "latest changelog" cards are built from the first two entries in document order):
    html
    <article class="changelog-feature"><img src="/docs-assets/changelog/YYYY-MM-NN-slug-16x9.webp" alt="Feature in the <Month Year> ryOS snapshot" width="1280" height="720" loading="lazy"><div class="changelog-feature-copy"><h3>Feature</h3><p>One-line description.</p></div></article>
    Max 5 featured cards per month (test-enforced).
3. Capture Changelog Screenshots

Featured cards need an exactly 1280×720 WebP in public/docs-assets/changelog/, named YYYY-MM-NN-slug-16x9.webp. Quality bar: menubar labels (Maps, Stuff, Internet Explorer) must look as crisp as an existing July shot such as 2026-07-08-ie-reader-mode-16x9.webp. Do not ship a card that has horizontal scan-line / chroma-smear artifacts.

Capture (Playwright + Chrome)
  1. Start bun run dev. Screenshot with Playwright (playwright-core in node_modules; Chrome at /usr/bin/google-chrome-stable). Viewport 1280×720, deviceScaleFactor: 1 only (never 2). Open http://localhost:5173/<app-id>?_ryo=1 (bare /<app-id> is OG share HTML and will redirect off-localhost). Wait ~20s for boot + entrance animations.
  2. Stage the shot:
    • One window, sized to fit the frame. Several apps default larger than the usable area (Stuff is 920×580) and will overlap the dock — updateInstanceWindowState to ~720–800×440–480 before centering.
    • Center it between the menubar (~30px) and the top of the dock. Drag [data-window-instance-id] .title-bar with page.mouse (~10 steps). The window must not overlap the dock.
    • Clean desktop: close extra instances; disable the desktop assistant (useAssistantStore.getState().setEnabled(false)); hide toasts. Default desktop icons and the dock are fine.
    • Wallpaper: default shuffle is a random nature photo. Re-roll (new profile, or setWallpaper to another nature still such as /wallpapers/photos/nature/water.jpg) if the roll is speckled, grainy, snowy, or low-contrast. Aqua glass menubars are translucent — busy texture behind them looks like interlace even in the PNG. July Books/IE use a smooth water or sunset field; match that, do not pin a branded/custom wallpaper.
  3. Freeze motion, then screenshot PNG only — never screenshot({ type: "webp" }) and never let Playwright write a lossy WebP:
    ts
    await page.addStyleTag({
      content: `*,*::before,*::after{animation:none!important;transition:none!important;}`,
    });
    const png = await page.screenshot({
      type: "png",
      animations: "disabled",
      caret: "hide",
      scale: "css",
    });
    Keep the raw PNG until the WebP passes the quality gate below. If the PNG menubar is already smeared, fix capture (animations, wallpaper, window size) — do not encode a dirty PNG.
Encode (sharp)

Default sharp(png).webp({ quality: 80 }) is wrong for these cards. It enables chroma smart-subsample and crushes flat UI / dark frames (a Sound pane became ~41KB) into horizontal scan lines. Convert the PNG with:

ts
await sharp(png).webp({
  quality: 90,
  lossless: false,
  nearLossless: true,
  smartSubsample: false, // required — never omit
  effort: 6,
}).toFile(dest);

If a 2× nearest-neighbor crop of the menubar is still softer than July, use sharp(png).webp({ lossless: true, effort: 6 }). A few hundred KB per card is fine. Verify metadata is 1280×720.

Show full SKILL.md (412 more words)Show less
Quality gate (required before commit)
  1. Crop the output WebP menubar (extract y=0..28, ~420×28) and upscale 2× with kernel: "nearest". Compare to the same crop from 2026-07-08-ie-reader-mode-16x9.webp and from the raw PNG.
  2. Labels (Maps, Stuff, System Preferences, Internet Explorer) must be readable with no horizontal scan lines or chroma fringing.
  3. If the WebP crop is worse than the PNG, the bug is encode — raise to lossless. If the PNG crop is already dirty, recapture.
  4. The Vite watcher ignores public/** — restart the dev server before loading new assets in the browser, or they 200 with the SPA HTML fallback.
4. Generate HTML
bash
bun run generate:docs   # generate-app-docs.ts + generate-docs.ts

This regenerates all of public/docs/. Commit changelog.html and overview.html (its latest-changelog cards come from the two newest featured entries). Other pages may also change if their markdown drifted — review each diff and include legitimate syncs. Caution: the secret scanner can block committing self-hosting-vps.html from cloud agents (its content matches the STORAGE_PROVIDER secret value); unstage and revert it if flagged.

5. Sync Tests

tests/unit/i18n/test-changelog-docs-sync.test.ts enforces md/HTML sync, 1280×720 screenshot dimensions, month count, the ≤5 featured limit, and the exact featured-screenshot lists for recent months — update its expectations (and add new anchor phrases) when the featured set changes, then run:

bash
bun test tests/unit/i18n/test-changelog-docs-sync.test.ts tests/unit/i18n/test-generate-docs-path-links.test.ts
6. Review Changes
bash
git diff docs/ public/docs/ tests/

Sub-Agent Prompts

Overview: Review package.json, src/ structure → update tech stack, features

Apps Index: Review src/apps/*/index.ts, appRegistry.tsx → update app list

Framework: Review WindowFrame.tsx, stores, themes → update window/state/theme docs

AI System: Review api/chat.ts, tools → update models, capabilities

File System: Review useFileSystemStore.ts, finder → update operations

Audio System: Review audioContext.ts, synth → update audio features

UI Components: Review src/components/ui/, locales → update component list, i18n

API Reference: Review api/*.ts → update endpoints, request/response formats

Section Shortcuts

ArgSections
overview1-overview, 1.1-architecture
apps2-apps
framework3-* files
ai4-ai-system
filesystem5-file-system
audio6-audio-system
ui7-* files
api8-* files

Notes

  • Changelog: 9-changelog.md is hand-curated (featured cards + screenshots + monthly bullets). generate-changelog.ts only exists to bootstrap a missing file from git history; never run it with --force (and avoid generate:docs:full, which does) over curated content. Screenshot encode: near-lossless WebP, smartSubsample: false — see §3; do not ship scan-line artifacts

  • App docs: Individual app pages (2.1, 2.2, … one per registered app) are auto-generated via generate-app-docs.ts — do NOT hand-edit them. The count tracks appRegistry, so the range grows as apps are added

  • One-shot generation: bun run generate:docs runs generate-app-docs.ts → generate-docs.ts; the changelog md is left untouched

  • Preserve structure: Keep headings, mermaid diagrams, formatting

  • Be conservative: Only update clearly outdated info

  • Run HTML generation: Always run generate-docs.ts (or generate:docs) after updates

© ryokun6, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .cursor/skills/update-docs of ryokun6/ryos.

Open the folder on GitHubat commit 4a6e61e

Compare with similar skills

Update Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Update Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Docs this skillryokun6/ryos1.3k—~2.4kAutomated safety check: PassAGPL-3.0
Hk Follow Breadcrumbdeepklarity/harness-kit100—~1.4kAutomated safety check: NotesMIT
Bench Batonnooga/let-go568—~821Automated safety check: PassMIT
Audit Sibling Divergenceben-manes/caffeine18k—~4.3kAutomated safety check: NotesApache-2.0
Bangle Followup Operatorbangle-io/bangle-io1.2k—~991Automated safety check: PassAGPL-3.0
Suede Agent TeamsJasonColapietro/suede-creator-skills127—~5.8kAutomated safety check: PassMIT

Similar skills

  • Hk Follow Breadcrumb

    deepklarity/harness-kit

    Consults existing breadcrumb analysis docs before exploring the codebase.

    100 GitHub stars~1.4k tokensUpdated 2 mo ago
    DevelopmentAuto-check: notes
  • Bench Baton

    nooga/let-go

    Coordinate heavy local workloads across worktrees, processes, and subagents — benchmarks and timing-sensitive gates run exclusively on a quiesced machine, while builds, test suites, regeneration…

    568 GitHub stars~821 tokensUpdated today
    DevelopmentAuto-check passed
  • Audit Sibling Divergence

    ben-manes/caffeine

    Compares code paths that should behave the same, such as sync and async cache methods, and requires a concrete scenario where the two observably disagree.

    18k GitHub stars~4.3k tokensUpdated 2 days ago
    DevelopmentAuto-check: notes
  • Bangle Followup Operator

    bangle-io/bangle-io

    Operate recurring Bangle.io agent follow-ups after a thread has already started.

    1.2k GitHub stars~991 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Suede Agent Teams

    JasonColapietro/suede-creator-skills

    Suede Labs agent-team orchestrator: split complex work into coordinated lanes with explicit file ownership, WIP collision detection, quality gates, escalation thresholds, rollback plans, and…

    127 GitHub stars~5.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Recipe Fullstack Implement

    shinpr/claude-code-workflows

    Orchestrate full-cycle implementation across backend and frontend layers

    691 GitHub stars~2.8k tokensUpdated 6 days ago
    DevelopmentAuto-check passed

More from ryokun6/ryos

All 10 skills in this repo
  • Add AI Chat Tool

    ryokun6/ryos

    Add or modify an AI chat tool ("Ask Ryo" capability) in ryOS.

    1.3k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Create Ryos App

    ryokun6/ryos

    Create new applications for ryOS following established patterns and conventions.

    1.3k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Create Store

    ryokun6/ryos

    Create or modify ryOS Zustand stores following repo conventions — persist middleware, partialize, versioned migrations, the debounced write-behind storage adapter for large slices, and cloud-sync…

    1.3k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Desktop Release

    ryokun6/ryos

    Cut and publish ryOS Electron desktop releases on GitHub. An agent skill from ryokun6/ryos.

    1.3k GitHub stars~1k tokensUpdated today
    Auto-check: notes
  • Localize

    ryokun6/ryos

    Localize ryOS apps and components by extracting hardcoded strings, replacing with translation keys, and syncing across languages.

    1.3k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • React performance optimization guidelines from Vercel Engineering (vercel-labs/agent-skills).

    1.3k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Update Docs

What does Update Docs do?

Update ryOS documentation by analyzing the codebase and syncing docs with current implementation. Update Docs is an agent skill from ryokun6/ryos. Update ryOS documentation by analyzing the codebase and syncing docs with current implementation.

When should I use Update Docs?

Update Docs fits situations like: syncing documentation; docs are outdated.

How do I install Update Docs in Claude Code?

Run `npx skills add ryokun6/ryos --skill update-docs -a claude-code`. Or copy the skill folder (.cursor/skills/update-docs in ryokun6/ryos) into .claude/skills/update-docs in your project. Claude Code loads it when a task matches its description.

How do I install Update Docs in Codex?

Run `npx skills add ryokun6/ryos --skill update-docs -a codex`. Or copy the skill folder (.cursor/skills/update-docs in ryokun6/ryos) into .agents/skills/update-docs in your project. Codex loads it when a task matches its description.

Can I use Update Docs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ryokun6/ryos --skill update-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-docs, .gemini/skills/update-docs, .github/skills/update-docs and .opencode/skills/update-docs in your project.

What does Update Docs need to run?

Going by SKILL.md and its folder, Update Docs needs the command-line tools its instructions call (bun and git).

Does Update Docs access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Update Docs safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Update Docs use?

Update Docs is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Update Docs use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Update Docs?

Skills that share tags, products or a category with Update Docs: Hk Follow Breadcrumb (deepklarity/harness-kit, 100 stars), Bench Baton (nooga/let-go, 568 stars), Audit Sibling Divergence (ben-manes/caffeine, 18k stars) and Bangle Followup Operator (bangle-io/bangle-io, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Docs?

ryokun6 (a GitHub user) maintains it in ryokun6/ryos, which has 1,264 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.

Source: ryokun6/ryos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.