Help us improve
Share bugs, ideas, or general feedback.
From co-dev
Review, create, update, check, write, or audit the user guide (docs/user-guide.md). Use when the user wants to write a user guide, write user docs, create user documentation, review the user guide, check the user guide, update user documentation, or document the product for end users.
npx claudepluginhub cloud-officer/claude-code-plugin-dev --plugin co-devHow this skill is triggered — by the user, by Claude, or both
Slash command
/co-dev:review-user-guideThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Review or create `docs/user-guide.md` from an end-user perspective. Works for all project types and languages.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Review or create docs/user-guide.md from an end-user perspective. Works for all project types and languages.
Use TaskCreate to track progress: one task per phase below. Mark in_progress when starting, completed when results are recorded. Do NOT include the task list in the final output — it's internal tracking.
Required phases:
Evidence rule: Every check must record (a) what the guide claims, (b) what the code shows, (c) MATCH / MISMATCH / MISSING. A bare "PASS" without code evidence is invalid.
Required H1 + H2 sections:
# User Guide
## Table of Contents
## Getting Started
## Features
## {Project-Type-Specific Sections}
## Configuration
## Troubleshooting
## FAQ
| Type | Required H2 sections |
|---|---|
| Web App | Navigation, Pages, Step-by-Step Guides, Workflows |
| CLI Tool | Commands, Options & Flags, Examples |
| REST API | Authentication, Endpoints, Request/Response Examples, Error Handling |
| Library / SDK | Installation, Quick Start, API Reference, Examples |
| Mobile App | Screens, Navigation, Features, Offline Mode |
| Desktop App | Windows & Views, Menus & Toolbars, Keyboard Shortcuts, Features |
Prefer MCP tools when available; fall back to CLI on errors. Don't let MCP failures block the review.
| Operation | Preferred | Fallback |
|---|---|---|
| Get file contents | mcp__github__get_file_contents | cat <file> |
| Repo metadata | gh repo view --json owner,name,description | n/a |
| Library docs | mcp__context7__* | WebSearch → mcp__fetch__fetch |
gh repo view --json owner,name,description
ls -la docs/user-guide.md docs/manual.md 2>/dev/null
Record: organization, repository, description, has_user_guide. If docs/manual.md exists but docs/user-guide.md does not, plan to rename.
Classify as one of: web_app, cli_tool, api, library, mobile_app, desktop_app, hybrid.
Detection signals (use the appropriate one — don't run all):
Gemfile containing rails; config/routes.rb; app/controllers/, app/views/manage.py; */urls.py; requirements.txt/pyproject.toml containing djangopackage.json with express/koa/fastify/nest/next/react/vue/angular/svelte; pages/, app/, src/pages/, src/app/artisan, routes/web.php, app/Http/Controllers/package.json with bin; usage of argparse/click/typer/commander/yargs/clap/cobra; cmd/ or cli/ directory@app.route, @router, @RestController, router.get); api/ or routes/; FastAPI/Flask/Express/Gin/Echo/Fiberpackage.json main/exports; setup.py / pyproject.toml with name/packages; no app entry pointandroid/, ios/, pubspec.yaml, lib/main.dart; package.json with react-native/expo/ionic/capacitorRun only the sub-phases that match the detected product type. For each, record exact counts and file:line locations as evidence.
Routes / pages — Rails: cat config/routes.rb, list app/controllers/. Django: cat */urls.py, find views.py. Express: grep -rn "router\.\(get\|post\|put\|delete\|patch\)" --include="*.js" --include="*.ts". Next.js / React: list pages/, app/, src/pages/, src/app/ for *.tsx/*.jsx.
Models / data — Rails: app/models/, db/schema.rb. Django: find . -name "models.py". Generic: any Schema/type Entity declarations.
Forms — Rails: grep -rl "form_for\|form_with\|form_tag" app/views/. Django: find . -name "forms.py". React/Vue: grep -rl "<form\|<Form\|useForm\|formik\|react-hook-form" --include="*.tsx" --include="*.jsx".
Help text & UI guidance (CRITICAL — reuse in the guide): look for help_text:, placeholder:, helperText, tooltip, hint, description:, aria-describedby, list_items: across views/components. This text is what users see on screen and must be reproduced verbatim in the Step-by-Step Guides.
Conditional field visibility (CRITICAL): find fields that show/hide based on other fields.
wrapper_class.*hide-, wrapper_class.*show-, data-action.*toggle, style.display, .classList.toggle.v-if=, v-show=, x-show=, {cond && <, hidden={.Form section structure — form_section, <fieldset>, <legend>, <FormSection>, <FormGroup>, fieldsets (Django admin). Record section title and description text.
UI components, navigation — component files; nav, menu, sidebar, header, footer, navbar, drawer patterns.
Commands — Python (Click/Typer/argparse): @click.command, @app.command, add_parser, add_subparser. Node (Commander/Yargs): .command(, .option(, yargs.. Go (Cobra): cobra.Command, cmd.AddCommand. Rust (Clap): #[command, Command::new.
Help output — Try ./bin/* --help if executable. Otherwise extract from source.
Options / flags — add_argument, .option(, .flag(, --<name> patterns.
Endpoints — FastAPI/Flask: @app.<method>, @router.<method>. Express: router.<method>, app.<method>. Rails API: app/controllers/api/, namespace blocks in config/routes.rb.
Schemas — Schema, Serializer, DTO, interface .*Request, type .*Response.
Authentication — search for auth, jwt, bearer, api.key, oauth, token. Identify the actual mechanism used.
OpenAPI / Swagger — openapi.yaml, openapi.json, swagger.*, api-spec.*.
Public API — Python: __all__, __init__.py exports, top-level class/def. Node/TS: export statements. Rust: pub fn/pub struct/pub enum/pub trait. Go: capitalized func/type.
Docstrings — comments preceding public items ("""…""", ///, //).
Examples — examples/, example/, demo/, files matching *example* / *demo*.
Screens — Flutter: lib/**/*screen*.dart, *page*.dart, files using Scaffold, MaterialApp. React Native: *Screen* files, files using createStackNavigator, createBottomTabNavigator.
Navigation — Navigator, createNavigator, route definitions.
If docs/user-guide.md exists:
H1 title must be exactly # User Guide (not # Manual).
Required H2 sections (per product type) present in correct order.
TOC links resolve to actual sections.
Cross-reference table (MANDATORY):
| Documented Feature | Code Evidence |
|---|---|
| {claim from guide} | {file:function, or MISSING} |
For each documented feature: confirm it exists, confirm description matches implementation, flag outdated examples. For each feature found in Phase 3: confirm it's documented, otherwise flag undocumented.
Web-app specific (if applicable):
help_text: / helperText in form views.If docs/manual.md exists, plan to rename to docs/user-guide.md and replace the H1 title.
Pre-report verification: every applicable phase task is marked complete; cross-reference evidence is recorded; counts are exact (not "some" / "a few").
## User Guide Review Report
### Repository Info
- Organization: {org}
- Repository: {repo}
- Product Type: {type}
- Document Status: {exists / missing}
### Structure Checks
- H1 title `# User Guide`: {PASS / FAIL}
- Required H2 sections: {PASS / FAIL — list missing}
- TOC links valid: {PASS / FAIL}
### Content Accuracy
- Getting Started matches actual setup: {PASS / FAIL}
- All features documented: {PASS / FAIL}
- {Product-type-specific checks}
### Web App Style Checks (if applicable)
- Forms as guided walkthroughs: {PASS / FAIL}
- Help text reused from UI code: {PASS / FAIL}
- Conditional visibility documented: {PASS / FAIL}
- Section structure matches UI: {PASS / FAIL}
### Coverage
- Documented features: {n}
- Features in code: {n}
- Undocumented features: {list with file:line}
- Documented but removed: {list}
- Conditional fields documented: {n} of {total}
- Help texts incorporated: {n} of {total}
### Proposed Changes
{Specific edits with file:line targets}
After the report is approved, write docs/user-guide.md using the structure below. Do not paste templates verbatim — fill them with content discovered in Phase 3.
# User Guide
## Table of Contents
- [Getting Started](#getting-started)
- [Features](#features)
- {Product-type-specific sections}
- [Configuration](#configuration)
- [Troubleshooting](#troubleshooting)
- [FAQ](#faq)
## Getting Started
### Prerequisites / Requirements
{Detected from package files, README, deployment configs}
### Installation / Access
{Install command, URL, or onboarding step}
### First-Time Setup / Quick Start
{Minimal example or numbered steps}
## Features
### Feature Overview
| Feature | Description | Location |
| ------- | ----------- | -------- |
| {name} | {description} | {page/command/endpoint} |
Web Apps — Pages section. For each page: URL, purpose (inferred from controller/view), what the user sees on landing, then a "What You Can Do Here" subsection listing each action with what it does and prerequisites. If a page has a status workflow, document the lifecycle.
Web Apps — Step-by-Step Guides (CRITICAL formatting rule). This section MUST be a guided walkthrough, NOT a field table. For each form:
Open with: "Navigate to {page} in the sidebar and click {button label}."
For each form section discovered in Phase 3: include the section's description text from the UI; if list_items explain enum options, reproduce them as a bulleted guide.
For each field in the section, use numbered steps:
help_text from the UI verbatim if present; otherwise plain-language explanation}.
list_items text from UI).For trigger fields with conditional visibility, document inline:
When you check this box / select "{value}", the following fields appear:
- {Conditional Field} — {help text}
For inverse visibility:
When you check this box, the {section name} fields below are no longer needed and will be hidden.
Close with "Saving and Next Steps": where the user is redirected, the starting status, and what to do next.
Web Apps — Workflows. For each major end-to-end flow: goal, then numbered steps with Navigate to, Action, Expected result.
CLI Tools — Commands. For each command: description, usage line (command [options] <args>), arguments table (Argument | Required | Description), one example. Then global Options & Flags table, then per-command flags.
CLI Tools — Examples. Basic Usage → Common Workflows (multi-step) → Advanced Usage (complex options).
REST APIs — Authentication. Method (API Key / OAuth / JWT), how to obtain credentials, header example, query-parameter example.
REST APIs — Endpoints. For each: METHOD, path, parameters table (Name | In | Type | Required | Description), example request body (JSON), example response (JSON), status codes table.
REST APIs — Error Handling. Error response format, error codes table (Code | HTTP Status | Description | Resolution).
Libraries — Quick Start. One minimal working example in the project's primary language.
Libraries — API Reference. For each public class/function: description from docstring, signature in a fenced block, parameters table, return type, one usage example.
Mobile Apps — Screens. For each screen: name, navigation entry point, primary actions, what the user sees, screen-specific gestures or shortcuts.
After writing/updating the guide, run /co-dev:run-linters and fix any errors before reporting completion.
Before completing, confirm:
# User Guidehelp_text:, helperText, placeholder:, list_items: in the actual code.