document-features
Skill96 starsChanged 16 days agoMITView on GitHub
Generate and refresh the public feature documentation in docs/public/features/ - scan the code to decide what is implemented, screenshot the running app, and update the pages. Triggers on "/document-features", "document the features", "refresh feature screenshots", "regenerate feature docs".
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 2 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Keep docs/public/features/ and its screenshots in sync with the app.
- Very specific: line 35
Keep every source: path repo-relative and real.
- Distinctive: line 53
Run it from an INTERACTIVE desktop session.
- Very specific: line 57
Default dummy sessions are plain shells (-Agent RawCli) - no Claude subscription spent.
- Very specific: line 60
Read the harness summary. It prints which inventory screens were NOT auto-captured.
- Very specific: line 75
Follow the writing style of the existing docs/public/ pages: one-sentence intro, then the detail.
- Very specific: line 80
Update docs/public/index.json so every page under docs/public/features/ has an entry in the features category.
- Very specific: line 99
Only touches docs/features/, docs/public/features/, docs/public/index.json, and the capture script.
- Distinctive: line 102
If a required tool (cc-click, git, dotnet) is missing, the harness fails loudly with the fix - do not work around it.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Document Features
Keep docs/public/features/ and its screenshots in sync with the app. This is the
"docs-as-code with regenerated screenshots" pipeline: the inventory is decided from
source, the screenshots are captured from a real (throwaway) build, and the pages
are regenerated together. Re-run after UI changes - never hand-edit screenshots.
Inputs and outputs
| Artifact | Role |
docs/features/feature-inventory.yaml | Source-of-truth: each feature, its status, and the file that proves it exists |
scripts/capture-feature-screenshots.ps1 | Launches a slot build, makes dummy sessions, screenshots each screen |
docs/public/features/*.md | The published pages (raw markdown on GitHub) |
docs/public/features/assets/*.png | Committed screenshots referenced by the pages |
docs/public/index.json | Manifest listing every page |
Workflow
STEP 1: Inventory pass (decide what is implemented)
- Read
docs/features/feature-inventory.yaml. - Scan the UI source the way
/cencon-generatereasons over the solution. Look insrc/CcDirector.Avalonia/(views,Controls/,*Dialog.axaml) andphone/CcDirectorClient/(phone pages). - Reconcile:
- A user-facing view/dialog that exists in source but is NOT in the inventory -> add it.
- An inventory entry whose
sourcefile no longer exists -> remove it (or markplanned). - A surface that is stubbed (TODO / NotImplemented / framework-only) ->
partial.
- Keep every
source:path repo-relative and real. Keepids stable (they are the screenshot stems). ASCII only. - Report what changed (new / removed / status-changed features) before continuing.
STEP 2: Capture pass (screenshot the running app)
Run the harness:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/capture-feature-screenshots.ps1- It builds slot 5, launches via the
cc-director-launchscheduled task (per CLAUDE.md - never spawn the app from this process tree for session-creating runs), creates dummy sessions, captures the shots, and tears down ONLY slot 5. - Screens are captured with
cc-click screenshot --pid <slot pid>, which uses Win32 PrintWindow to grab OUR window's own pixels - occlusion-proof, so it can never accidentally capture one of the user's other CC Director windows. - Run it from an INTERACTIVE desktop session. The main-window and tab shots work regardless, but the modal dialog shots (New Session, Settings) only render when the app can be foregrounded - a background/non-interactive run reports them as missing rather than capturing them.
- Default dummy sessions are plain shells (
-Agent RawCli) - no Claude subscription spent. Pass-Agent ClaudeCodewhen you need real agent output for the wingman/voice screens. - Read the harness summary. It prints which inventory screens were NOT auto-captured;
those need either a new row in the script's
$Shotstable or a manual capture.
To extend automated coverage, add a row to $Shots in the harness (each row is a
screenshot name plus the cc-click navigation to reach that screen).
STEP 3: Document pass (regenerate the pages)
For each category in the inventory, update its page under docs/public/features/:
- Embed each captured screenshot with a relative path:
. - For a feature whose screenshot does not exist yet, write the text and add a line
_Screenshot pending - <how to capture it>._instead of a broken image link. - Regenerate the feature matrix table in
01-overview.mdfrom the inventory (Feature | Status | Page). - Follow the writing style of the existing
docs/public/pages: one-sentence intro, then the detail. No filler, no Unicode.
STEP 4: Manifest pass
Update docs/public/index.json so every page under docs/public/features/ has an
entry in the features category. Validate (same rules as /update-docs): every
file points at a real file, every page is listed, ids are lowercase-kebab-case.
STEP 5: Report
Summarize: features added/removed/changed status, screenshots refreshed, screens still pending. Do NOT commit unless the user explicitly asks (repo rule).
Maintenance model
- Re-run this skill before a release or whenever the README Features change.
- The CI workflow
.github/workflows/docs-drift.ymlruns only STEP 1's reconcile (no GUI) on pull requests and flags when the inventory is stale relative to source. It cannot screenshot a desktop GUI on a headless runner - it only nudges a human to re-run the full local pass.
Notes
- Only touches
docs/features/,docs/public/features/,docs/public/index.json, and the capture script. Never product code undersrc/. - The desktop window title cc-click matches is "CC Director".
- If a required tool (cc-click, git, dotnet) is missing, the harness fails loudly with the fix - do not work around it.
Skill Version: 1.0 Last Updated: 2026-06-19
Other versions1 project uses a version of this.
Word for word · 1
- thefrederiksen/devthrottle★ 96100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository30 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-expertSkill
- cc-settings-apiSkill
- cencon-generateSkill
- code-maintenanceSkill
- commitSkill
- dead-code-finderSkill
- deploy-hosted-gatewaySkill
- developer-agentSkill
- dev-throttleSkill
- enter-issueSkill
- fleet-commsSkill
- implementation-loopSkill
- move-sessionSkill
- playwright-cliSkill
- product-agentSkill
- qa-agentSkill
- read-issuesSkill
- release-managerSkill
- review-codeSkill
- shipSkill
- skill-managerSkill
- support-agentSkill
- terminologySkill
- test-managerSkill
- ui-testSkill
- update-docsSkill
- voice-reviewSkill
- warning-fixerSkill
- wingman-brief-reviewerSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

