Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
a73a4c3
fix issue 33735: Global background + color styles affecting stories
Axadali Mar 9, 2026
f04aacf
update issue according to
Axadali Mar 9, 2026
50f1114
Merge branch 'next' into 33735-global-style-issue
Axadali Mar 9, 2026
95112ec
remove duplication font-weight and add quote on font-family
Axadali Mar 9, 2026
d177fb1
inherit font family
Axadali Mar 9, 2026
baf7ac5
fix(addons-docs): scope slugger to docs render
ia319 Mar 23, 2026
9b82a80
Merge branch 'next' into bug/34198-scope-docs-slugger-to-docs-render
ia319 Mar 23, 2026
84360dd
Merge branch 'next' into bug/34198-scope-docs-slugger-to-docs-render
kasperpeulen Mar 23, 2026
736e4e2
Ci: add agent scan to detect automated accounts
huang-julien Mar 24, 2026
ce6cbfe
fix: add missing members
huang-julien Mar 24, 2026
48795ac
fix: add Ari
huang-julien Mar 24, 2026
60b2113
Docs: Standardize formatting, add docs-review skill
kylegach Mar 26, 2026
ab00fcb
Chore: Add scripts for docs-review skill
kylegach Mar 26, 2026
9795c6a
refactor(addons-docs): remove global cached docs slugger context
ia319 Mar 26, 2026
3c7b7d9
Merge remote-tracking branch 'origin/bug/34198-scope-docs-slugger-to-…
ia319 Mar 26, 2026
50c040f
Merge branch 'next' into bug/34198-scope-docs-slugger-to-docs-render
ia319 Mar 26, 2026
d3c0e61
fix(addons-docs): align slugger scope with docs container
ia319 Mar 27, 2026
3341f83
Merge remote-tracking branch 'origin/bug/34198-scope-docs-slugger-to-…
ia319 Mar 27, 2026
c424d4a
Merge branch 'next' into bug/34198-scope-docs-slugger-to-docs-render
ia319 Mar 27, 2026
c7c598b
Expand skill with more automated checks and writing standards
kylegach Mar 27, 2026
c3a0a7c
Run skill
kylegach Mar 27, 2026
6871ce8
Expand link check to handle anchors
kylegach Mar 27, 2026
1c7ccf4
Run skill
kylegach Mar 27, 2026
23de73e
Expand skill with more detailed voice and tone standards
kylegach Mar 30, 2026
c3ace6d
Run skill
kylegach Mar 30, 2026
fb4da21
Merge branch 'next' into docs-formatting
kylegach Mar 30, 2026
451c662
Replace fast-glob with tinyglobby
kylegach Mar 30, 2026
00c293d
Add weekly workflow
kylegach Mar 30, 2026
a3e4502
Only show modified and affected labels on components and groups, not …
ghengeveld Apr 1, 2026
4b9f32e
Update getDisplayStatus to include 'docs' item type for hidden story …
ghengeveld Apr 1, 2026
9499c59
fix(eslint-plugin): update deprecated @storybook/test reference to st…
venkat22022202 Apr 1, 2026
4967117
Merge branch 'next' into 33735-global-style-issue
Axadali Apr 2, 2026
45b08a6
Rewrite skill to address structural/strategic issues, not just format…
kylegach Apr 2, 2026
d40a529
Merge branch 'next' into docs-formatting
kylegach Apr 2, 2026
7e992bf
Remove skill and workflow
kylegach Apr 2, 2026
3861704
Address feedback
kylegach Apr 2, 2026
94fb10f
Merge remote-tracking branch 'origin/next' into ci/agent-scan
huang-julien Apr 8, 2026
8da9f16
ci: update comment and labevl
huang-julien Apr 8, 2026
013d294
fix: conditions
huang-julien Apr 8, 2026
84e6785
ci: fix bot names
huang-julien Apr 8, 2026
8e9b4b2
Merge branch 'component-level-status' into story-new-status
ghengeveld Apr 8, 2026
2295b1f
Introduced IndexBaselineService to handle index change detection. Upd…
ghengeveld Apr 8, 2026
f8c8258
feedbacks
huang-julien Apr 9, 2026
f77b608
refactor: move scripts into JS files
huang-julien Apr 9, 2026
a0c2ec2
chore: update comment
huang-julien Apr 9, 2026
a8658a3
fix: label all agent-scan
huang-julien Apr 9, 2026
6b2841b
fix(e2e): skip data-selected check when mobile sidebar drawer unmounts
valentinpalkovic Apr 13, 2026
f7b35bd
Docs: Add change detection documentation
valentinpalkovic Apr 13, 2026
eaef266
Docs: Update change detection to enabled-by-default, show how to disable
valentinpalkovic Apr 13, 2026
f0341b8
Docs: Remove story leaf nodes section from change detection docs
valentinpalkovic Apr 13, 2026
3c8c40d
feat(telemetry): track sidebar filter interactions via SIDEBAR_FILTER…
valentinpalkovic Apr 13, 2026
3da50fc
refactor: extract shared filter helpers and collapse repeated entry l…
valentinpalkovic Apr 13, 2026
b0350cf
refactor(status-store): add countByValue() and eliminate duplicated c…
valentinpalkovic Apr 13, 2026
ab03ec5
fix(telemetry): project post-toggle filter state in sidebar filter te…
valentinpalkovic Apr 13, 2026
1c42838
Always show filters when changeDetection is enabled even when count is 0
ghengeveld Apr 13, 2026
ccccb09
ci: update add app token
huang-julien Apr 14, 2026
afd5505
ci(agent-scan): fix token and set target branch and envirment
huang-julien Apr 14, 2026
1ff1d08
ci(agent-scan): rollback to GHTOKEN
huang-julien Apr 14, 2026
2e3c808
Fix naming
ghengeveld Apr 14, 2026
935b561
Updated wording for European Accessbility Act
calebhyatt Apr 14, 2026
0dbb44d
Docs: Standardize formatting in features and behavior documentation
valentinpalkovic Apr 15, 2026
70301d3
Handle undefined value
ghengeveld Apr 15, 2026
3fef593
Update docs/writing-tests/accessibility-testing.mdx
valentinpalkovic Apr 15, 2026
ca989ed
Revert "Only show modified and affected labels on components and grou…
ghengeveld Apr 15, 2026
a2b12e2
Merge branch 'next' into story-new-status
ghengeveld Apr 15, 2026
8dd6d4b
Merge branch 'next' into story-new-status
ghengeveld Apr 15, 2026
37636aa
Docs: Editorial changes
kylegach Apr 15, 2026
8aa00c1
Update change-detection.mdx
valentinpalkovic Apr 15, 2026
00eefcc
fix: update aria-label values in component testing specs to use consi…
ghengeveld Apr 16, 2026
b87bea8
refactor: rename storyIndexBaselineService to indexBaselineService fo…
ghengeveld Apr 16, 2026
380ec23
Add missing decorator
ghengeveld Apr 16, 2026
31f4f16
Avoid two instances of ChangeDetectionService
ghengeveld Apr 16, 2026
91583de
Fix change-detection status rescans to avoid stale merges
ghengeveld Apr 16, 2026
6aa9e78
Add images
kylegach Apr 16, 2026
fd03be4
Merge branch 'next' into worktree-abundant-leaping-quokka
kylegach Apr 16, 2026
9328fa2
Merge branch 'next' into docs-formatting
kylegach Apr 16, 2026
cb4f079
Address feedback
kylegach Apr 16, 2026
755d98d
Format
kylegach Apr 16, 2026
332d97f
Address feedback
kylegach Apr 16, 2026
752f00b
Address feedback
kylegach Apr 16, 2026
34dd9c0
Fix type error
kylegach Apr 16, 2026
db18874
Merge pull request #34330 from storybookjs/docs-formatting
kylegach Apr 16, 2026
561baab
Build: Add docs-review skill
kylegach Apr 2, 2026
b5caab0
Extend doc types to support section-level classification
kylegach Apr 6, 2026
09fb0ba
Merge pull request #34451 from storybookjs/docs-skill
kylegach Apr 16, 2026
a85b634
Merge branch 'next' into worktree-abundant-leaping-quokka
kylegach Apr 16, 2026
8338414
Docs: Improve change detection page clarity
kylegach Apr 16, 2026
4c8cf5b
stabilize docs slugger context value
ia319 Apr 17, 2026
e7e3672
Fix type error
ghengeveld Apr 17, 2026
4c9a455
Removed data.changedFiles from change-detection status internals and …
ghengeveld Apr 17, 2026
c757d0d
Add story with changeDetection disabled
ghengeveld Apr 17, 2026
1d5f0b7
Ensure process termination on signal when telemetry is disabled
ghengeveld Apr 17, 2026
86961d1
CLI: Change mock event detection
yannbf Apr 17, 2026
41b7afb
Merge branch 'next' into story-new-status
ghengeveld Apr 17, 2026
5266690
Merge pull request #34585 from storybookjs/fix-sigint-handling
ghengeveld Apr 17, 2026
ec48db0
Merge pull request #34504 from storybookjs/story-new-status
ghengeveld Apr 17, 2026
e7a952f
Merge pull request #34530 from storybookjs/worktree-abundant-leaping-…
kylegach Apr 17, 2026
fbae015
Add missing vite peer dependency in vite-based frameworks
stof Apr 17, 2026
d226aa9
Merge pull request #34586 from storybookjs/yann/change-mock-events
yannbf Apr 17, 2026
eae1fe1
Build: Disable NX workflow triggers while license is expired
kasperpeulen Apr 20, 2026
ff98f86
Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow
kasperpeulen Apr 21, 2026
ebd548a
Merge branch 'next' into bug/34198-scope-docs-slugger-to-docs-render
JReinhold Apr 22, 2026
890c119
Merge branch 'next' into 33735-global-style-issue
JReinhold Apr 23, 2026
b9549a6
Merge pull request #34071 from Axadali/33735-global-style-issue
JReinhold Apr 23, 2026
e9b8477
fix(addons-docs): make docs context type match usage
ia319 Apr 23, 2026
06d6ec1
ci: allow branch selection for sandbox generation
huang-julien Apr 23, 2026
b069d80
feedbacks
huang-julien Apr 23, 2026
645df83
publish to next branch when triggered manually
huang-julien Apr 23, 2026
2d6ffdc
Merge branch 'next' into fix/eslint-deprecated-storybook-test
yannbf Apr 27, 2026
aa2bbe3
Merge pull request #34541 from calebhyatt/patch-1
valentinpalkovic Apr 27, 2026
77ff820
Merge pull request #34430 from venkat22022202/fix/eslint-deprecated-s…
valentinpalkovic Apr 27, 2026
a2b6612
Initial plan
Copilot Apr 27, 2026
eaf5a0f
chore: start investigating missing react type peers
Copilot Apr 27, 2026
e1d7c0e
fix: add optional React type peers to published packages
Copilot Apr 27, 2026
042c26a
fix: add optional react-dom type peers to next frameworks
Copilot Apr 27, 2026
54ec170
update lock file
JReinhold Apr 27, 2026
487e644
feat: don't close community-flagged accounts, flag them
huang-julien Apr 27, 2026
c969bcd
refactor: improve script
huang-julien Apr 27, 2026
1b2330f
Merge pull request #34618 from storybookjs/ci/generate_sandbox_selection
huang-julien Apr 27, 2026
c7e0fe1
Merge pull request #34293 from storybookjs/ci/agent-scan
huang-julien Apr 27, 2026
c87c654
Merge pull request #34271 from ia319/bug/34198-scope-docs-slugger-to-…
JReinhold Apr 27, 2026
d1b3f88
Merge pull request #34589 from stof/vite_peer_deps
JReinhold Apr 27, 2026
2403072
don't write versions json files anymore during publishing
JReinhold Apr 27, 2026
7ff540b
ci: skip label step if no output
huang-julien Apr 27, 2026
bad807b
Merge branch 'next' of https://github.com/storybookjs/storybook into …
huang-julien Apr 27, 2026
685104b
refactor: move to job condition
huang-julien Apr 27, 2026
fd9decf
Merge pull request #34642 from storybookjs/jeppe/skip-version-jsons
JReinhold Apr 27, 2026
1bbe39e
Fix typo in the code sampel for "Fully Custom Args" for web-cmp
louis-bompart Apr 28, 2026
8a8dc87
Merge remote-tracking branch 'origin/next' into worktree-cuddly-dazzl…
valentinpalkovic Apr 28, 2026
85e2890
fix(telemetry): correct sidebar filter telemetry under rapid toggles …
valentinpalkovic Apr 28, 2026
5571b53
refactor(telemetry): consolidate sidebar filter telemetry in manager-api
valentinpalkovic Apr 28, 2026
c45047c
fix: guard sidebar telemetry on undefined tag filter state
valentinpalkovic Apr 28, 2026
dff79e7
refactor: address review comments - remove unused toStatusValue re-ex…
Copilot Apr 28, 2026
d0d6e23
Merge pull request #34641 from storybookjs/copilot/fix-peer-dependenc…
JReinhold Apr 28, 2026
55a276c
Merge branch 'next' into patch-1
jonniebigodes Apr 28, 2026
4a06220
Merge pull request #34646 from louis-bompart/patch-1
jonniebigodes Apr 28, 2026
8328ade
Fix formatting
valentinpalkovic Apr 29, 2026
049ad28
Merge branch 'next' into worktree-cuddly-dazzling-hopcroft
valentinpalkovic Apr 29, 2026
d561c88
Merge pull request #34533 from storybookjs/worktree-cuddly-dazzling-h…
valentinpalkovic Apr 29, 2026
632bc37
Write changelog for 10.4.0-alpha.11 [skip ci]
storybook-bot Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 151 additions & 0 deletions .agents/skills/docs-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---
name: docs-review
description: Review, improve, rewrite, author, or plan Storybook documentation in /docs. Use this when asked to review docs, improve a page, rewrite documentation, draft new docs, or advise on docs strategy.
---

# Documentation Review

## Scope

This skill applies to documentation files in `/docs` and docs-owned snippet files in `docs/_snippets/`. Do not use this skill for non-docs files (code, configuration, READMEs outside `/docs`).

## Use This Skill When

- Asked to review, improve, rewrite, or author documentation in `/docs`.
- Asked for advice on page structure, doc type, audience, or content strategy for `/docs`.
- Asked to fix formatting, style, or compliance issues in `/docs`.

## Use a Light Touch When

- The request is a trivial grammar or typo fix that does not need full diagnosis.
- The page is already structurally sound and only needs minor editorial cleanup.

## Reference Files

This skill uses four reference files under `references/`. Load them in order and only as needed:

| File | Owns | When to Load |
|------|------|--------------|
| `references/docs-principles.md` | North star, quality dimensions, dual-reader requirement | Always — read first |
| `references/docs-strategy.md` | Modes, doc types, intervention thresholds, page-shape guidance | Always — read second |
| `references/docs-antipatterns.md` | Diagnosis patterns and corrective moves | When diagnosing a weak or confusing draft |
| `references/storybook-style.md` | Editorial, MDX components, frontmatter, formatting, validation rules | In `maintenance` mode, or as the final pass of edit modes |

### Ownership Rules

- Strategy references do not own formatting or component rules.
- `storybook-style.md` does not own doc-type or intervention logic.
- This file (`SKILL.md`) owns workflow and handoffs only.

## Workflow

Follow this sequence for every request. Steps 1–4 are diagnosis; steps 5–7 are action.

### 1. Determine the Requested Outcome

Read the user's request and map it to a mode:

| Request Pattern | Mode |
|----------------|------|
| "Fix links, callouts, formatting" | `maintenance` |
| "Make this clearer", "improve this page" | `improve` |
| "This doc is a mess; rewrite it" | `rewrite` |
| "Draft docs for feature X" | `author` |
| "What kind of page should this be?" | `strategy` |
| "Review this doc" (unspecified) | **hybrid** — see below |

**Hybrid behavior:** For vague asks like "review this doc":
- If the draft is obviously weak or the ask implies planning → critique-first (lead with diagnosis).
- If the page is decent and the ask implies cleanup → improve-first (lead with edits).

**Default:** When ambiguous, default to `improve`, not `maintenance`.

### 2. Determine the Primary Doc Type

Read the page and classify it using the doc types in `references/docs-strategy.md`:

- `concept` — explains what something is and why it matters
- `task` — walks the reader through accomplishing a goal
- `reference` — lookup for options, API, or config
- `troubleshooting` — diagnose and fix a problem
- `migration` — move from one version or approach to another
- `decision guide` — choose between options

Always select **one** primary type, even if the page contains secondary elements.

After selecting the primary type, identify any **secondary sections** — sections with their own heading whose content follows a different doc type's shape. Note these for Step 3. See "Common Secondary Sections" in `references/docs-strategy.md` for expected combinations.

### 3. Diagnose the Draft

Evaluate the page against the quality dimensions in `references/docs-principles.md`, in order:

1. Intent clarity
2. Audience fit
3. Information shape
4. Conceptual clarity
5. Task usability
6. Example quality
7. Economy

For secondary sections, evaluate dimensions 3 (Information Shape) and 5 (Task Usability) against the secondary section's own doc type, not the page's primary type. All other dimensions apply page-wide.

If the page shows signs of structural weakness, load `references/docs-antipatterns.md` and check for common patterns.

### 4. Choose the Intervention Level

Use the thresholds in `references/docs-strategy.md`:

- No structural issues, minor style problems → `maintenance`
- Structure is okay but framing, order, or examples are weak → `improve`
- Structure is wrong for the page's job → `rewrite`
- Page does not exist → `author`
- User wants advice, not edits → `strategy`

**Hard rule:** When the draft is structurally weak, do not stop at sentence-level edits. Reorder, split, replace examples, or rewrite the page shape.

**Split/escalation rule:** If the dominant job is unclear or the page serves multiple unrelated jobs, switch to `strategy` mode or recommend a page split before polishing. Well-structured secondary sections (see `references/docs-strategy.md`) are not a reason to split.

### 5. Improve or Plan

Execute based on the chosen mode:

- **`maintenance`:** Apply editorial and compliance fixes. Load `references/storybook-style.md` as primary guide.
- **`improve`:** Strengthen framing, order, explanation, and examples. Keep the page's identity. Use `references/storybook-style.md` for the final pass.
- **`rewrite`:** Materially replace the page. Preserve sound content; discard or restructure the rest. Use `references/storybook-style.md` for the final pass.
- **`author`:** Write the page from scratch using the primary doc type's shape as a guide. Use `references/storybook-style.md` for the final pass.
- **`strategy`:** Return a planning artifact containing:
- Audience
- Page job
- Primary doc type
- Recommended outline
- Split/merge recommendation (if applicable)
- Preserve list (content worth keeping)
- Do **not** edit files or run validation.

When editing, you may also improve docs-owned snippet files in `docs/_snippets/` if example quality depends on them.

### 6. Apply Storybook Style

For edit modes (`maintenance`, `improve`, `rewrite`, `author`):

- Load `references/storybook-style.md` if not already loaded.
- Apply voice, tone, heading, link, component, and frontmatter rules.
- This step is always downstream of structural and editorial work — never the first pass.

### 7. Validate

For edit modes only:

```bash
yarn fmt:write
yarn docs:check
```

Fix any errors reported by `yarn docs:check`, then run it again to confirm.

**Do not run validation in `strategy` mode** or when no files were edited.

## Handoffs

- **PR creation:** Do not create a PR automatically. If the user asks for end-to-end execution including a PR, hand off to the `pr` skill.
- **Snippet files:** This skill may edit files in `docs/_snippets/` when example quality requires it, but does not own snippet creation for non-docs purposes.
85 changes: 85 additions & 0 deletions .agents/skills/docs-review/references/docs-antipatterns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Docs Antipatterns

Each antipattern includes the problem, how to recognize it, and what to do about it.

## 1. Background-First Opening

**Problem:** The page opens with history, motivation, or context before telling the reader what the page is about or what they will be able to do.

**Recognize it:** The first heading or paragraph talks about why something was built, how it evolved, or what problem it solves in the abstract — before stating what the feature *is*.

**Fix:** Open with what the thing is and what the reader can do with it. Move background to a later section or inline it where it supports a specific point.

## 2. Unseparated Mixed Doc Types

**Problem:** A single page interleaves explanatory prose, step-by-step instructions, and reference tables without clear sectional boundaries. The reader cannot scan for what they need.

**Recognize it:** The page alternates between doc type shapes *within the same sections* — e.g., conceptual paragraphs between procedure steps, or config tables dropped mid-narrative with no heading. There are no clear headings signaling a transition from one type of content to another.

**Not this antipattern:** A page with a clear primary type and well-separated secondary sections (each with its own heading and following its own type's shape) is fine. See "Common Secondary Sections" in `docs-strategy.md`.

**Fix:** Identify the primary doc type. For secondary content that belongs on this page, extract it into its own clearly headed section and ensure it follows its type's shape. For secondary content large enough to stand alone, recommend splitting into a separate page. The primary type determines the page's overall shape.

## 3. Edge Cases Before the Default Path

**Problem:** Exceptions, caveats, and special configurations appear before the reader sees the standard approach.

**Recognize it:** The first code example or instruction set handles a non-default scenario. Callouts with warnings appear before the basic usage.

**Fix:** Lead with the default path. Move edge cases, exceptions, and advanced configuration after the reader has seen the standard approach. Exception: safety-critical warnings that must precede action.

## 4. Technically Valid but Weak Examples

**Problem:** Code examples are syntactically correct but do not represent realistic usage. They teach the API surface without showing how a real project would use the feature.

**Recognize it:** Examples use placeholder names like `foo`/`bar`, show only the minimum required props, or demonstrate a feature in isolation from any meaningful context.

**Fix:** Replace with examples that reflect real usage patterns. Use realistic component names, props, and data. Show enough context that the reader can adapt the example to their own project.

## 5. Late Term Definition

**Problem:** A key term is used several times before it is defined. The reader must re-read earlier sections once they finally encounter the definition.

**Recognize it:** A Storybook-specific term (e.g., "decorator", "loader", "play function") appears in the opening paragraphs but is not defined or linked until later.

**Fix:** Define or link the term on first use. If the page is *about* the term, the opening sentence should define it.

## 6. Feature List Without Helping the Reader Act or Decide

**Problem:** The page lists what a feature can do without helping the reader understand when to use it, how to choose between options, or what to do next.

**Recognize it:** Bullet points or paragraphs describe capabilities ("X supports Y", "You can also Z") without connecting them to reader goals or decisions.

**Fix:** Frame capabilities around reader tasks or decisions. "Use X when you need Y" is more useful than "X supports Y."

## 7. Buried Procedure Outcome

**Problem:** A task page walks through steps but never states what the reader will have when they are done. The outcome is implied, not stated.

**Recognize it:** The procedure ends with the last step. There is no "you should now see…" or "this gives you…" summary.

**Fix:** State the expected outcome after the procedure. If possible, show what success looks like (a screenshot, a terminal output, or a description of the resulting behavior).

## 8. Preserving Weak Structure Because It Is "Clean"

**Problem:** A page has correct grammar, consistent formatting, and no broken links — but its structure does not serve the reader. A `maintenance` pass would miss the real issue.

**Recognize it:** The page feels polished but unhelpful. Readers would need to read the whole page to find what they need. Sections are ordered by implementation detail rather than reader need.

**Fix:** Escalate to `improve` or `rewrite`. Clean formatting is not a reason to preserve a page shape that does not work.

## 9. Overexplaining Basics While Underexplaining Storybook-Specific Behavior

**Problem:** The page spends space on concepts the target audience already knows (e.g., what a component is, how imports work) while glossing over Storybook-specific behavior that is actually confusing.

**Recognize it:** Paragraphs explaining general web development concepts sit alongside one-sentence descriptions of Storybook features that have no obvious analog.

**Fix:** Assume basic web development knowledge (HTML, CSS, JavaScript, components). Invest explanation space in Storybook-specific concepts, behaviors, and mental models.

## 10. Tightening Prose When Rewrite Is Actually Needed

**Problem:** Sentence-level edits are applied to a page whose fundamental organization is wrong. The page gets shorter and cleaner but remains unhelpful.

**Recognize it:** After a pass of prose tightening, the page still does not clearly serve its intended job. The reader's experience is not materially better.

**Fix:** Step back and diagnose at the page level. If the shape is wrong, restructure or rewrite — do not keep polishing.
46 changes: 46 additions & 0 deletions .agents/skills/docs-review/references/docs-principles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Docs Principles

## North Star

Good documentation reduces **time-to-understanding** or **time-to-success** for the reader. Every edit, restructure, or rewrite should move the page closer to one of these outcomes.

## Dual-Reader Requirement

Storybook docs must work for two audiences simultaneously:

1. **Frontend developers** scanning for answers, examples, and steps they can act on immediately.
2. **LLMs and retrieval systems** that parse docs for accurate, structured information to surface in AI-assisted workflows.

Write for the human first. Structure for both.

## Quality Dimensions

Use these dimensions to evaluate whether a page is doing its job. They are ordered from most structural to most surface-level — fix the top of the list before polishing the bottom.

### 1. Intent Clarity

The page states what it will help the reader do or understand within the first two sentences. A reader (or retrieval system) can decide whether this page is relevant without scrolling.

### 2. Audience Fit

The page assumes the right level of prior knowledge. It does not over-explain web fundamentals or under-explain Storybook-specific behavior. It meets the reader where they are.

### 3. Information Shape

The page is organized around the reader's task or question, not around the feature's implementation. Sections follow a logical progression: context → action → result, or definition → usage → edge cases. When a page contains secondary sections of a different doc type, each section follows the progression appropriate to its own type.

### 4. Conceptual Clarity

Abstract ideas are grounded in concrete terms. Relationships between concepts are explicit. The reader can build a mental model, not just follow steps.

### 5. Task Usability

Procedures are complete, ordered, and testable. The reader can follow them without guessing at missing steps. The default path comes first; variations and edge cases follow.

### 6. Example Quality

Code examples are representative of real usage, not minimal to the point of being misleading. They demonstrate the concept or task the page is about, not just syntactic validity.

### 7. Economy

Every sentence earns its place. Redundant explanations, filler transitions, and throat-clearing preamble are removed. Brevity serves the reader — but not at the cost of clarity.
Loading
Loading