Skip to content

docs: fill feature gaps in /documentation#2463

Merged
aalemayhu merged 1 commit into
mainfrom
docs/fill-feature-gaps
May 19, 2026
Merged

docs: fill feature gaps in /documentation#2463
aalemayhu merged 1 commit into
mainfrom
docs/fill-feature-gaps

Conversation

@aalemayhu
Copy link
Copy Markdown
Contributor

@aalemayhu aalemayhu commented May 19, 2026

Summary

A trio audit (pm/designer/engineer) compared the live docs at 2anki.net/documentation against the codebase and surfaced a list of features that ship in product but aren't documented. This is Wave 1: copy-only, no UI changes, no logic. Wave 2 (Image Occlusion, Templates browser, Chat assistant, Print/PDF export) needs screenshots and ships separately.

What changed

4 new pages

  • start-here/import-from-anki — Anki → Notion reverse import (free up to 1,000 cards/import).
  • cards/ai-flashcards — Claude AI and Vertex AI options on one page; when each fires; how to write good user instructions; storage/privacy notes.
  • cards/parser-rules — the /rules/:id editor: deck/sub-deck rules, flashcard block types, tag format, per-page card-options overrides.
  • reference/plans — Day Pass ($4/24h), Week Pass ($9/7d), 1-hour Unlimited trial, comparison table.

4 expansions

  • start-here/upload-a-file — Dropbox + Google Drive upload paths.
  • help/common-problems — password-protected PDF entry (closes the "locked PDF → vague error → no docs hit" journey PM flagged).
  • reference/glossary — Favorites, Feedback widget, Image Quiz HTML, Theme, Tour (5 short lines).
  • help/limits — removes a src/lib/misc/getUploadLimits.ts reference per VOICE.md (no internal file paths in user-facing copy).

Sidebar

  • "Start here" gains the import page.
  • "Make better cards" gains parser-rules and ai-flashcards.
  • "Reference" gains plans.

Trio resolutions baked into the plan

  • No "Beyond Notion" top-level section — designer's IA wins; the existing 6 sections are already goal-shaped.
  • Theme switcher / per-page overrides / per-page MCQ TTS → glossary or existing pages, not new pages.
  • PDF password unlock → entry in common-problems.md, not a standalone page.
  • Image Occlusion / Templates / Chat → Wave 2 (need screenshots).

Not in this PR

  • No changelog entry. These are documentation additions, not product-behavior changes — per CLAUDE.md the changelog table covers feat:/fix:/etc., not docs:.
  • No sonar-scanner run. Doc-only changes with one sidebar.ts array update; per .claude/rules/sonar.md sonar is skipped for "pure doc/dep/test/typo changes".

Test plan

  • /check is green (server tsc + web typecheck + 774 vitest + biome lint all clean locally).
  • Visit /documentation/start-here/import-from-anki and confirm the page renders.
  • Visit /documentation/cards/ai-flashcards and confirm the page renders.
  • Visit /documentation/cards/parser-rules and confirm the page renders.
  • Visit /documentation/reference/plans and confirm the page renders.
  • Click through the sidebar — three new entries appear under their groups.
  • Spot-check the four expanded pages for the new sections.

🤖 Generated with Claude Code


View in Codesmith
Need help on this PR? Tag @codesmith with what you need.

  • Let Codesmith autofix CI failures and bot reviews

Trio audit found public docs covered ~21 of the user-facing options but
missed several features the product already ships. This wave is
copy-only — no UI, no code logic.

New pages:
- start-here/import-from-anki — Anki → Notion reverse import (free up to 1,000 cards)
- cards/ai-flashcards — Claude + Vertex AI options, when each fires, writing user instructions
- cards/parser-rules — page-scoped overrides for which Notion blocks become cards, sub-decks, tags
- reference/plans — Day Pass ($4/24h), Week Pass ($9/7d), 1-hour Unlimited trial

Expansions:
- start-here/upload-a-file — Dropbox and Google Drive upload paths
- help/common-problems — password-protected PDF entry (closes the "vague error → no docs" journey)
- reference/glossary — Favorites, Feedback widget, Image Quiz HTML, Theme, Tour
- help/limits — strip internal-file-path reference (VOICE.md fix)

Sidebar:
- "Start here" gains Import from Anki
- "Make better cards" gains Parser rules and AI flashcard generation
- "Reference" gains Short plans and trial

No changelog entry — these are documentation additions, not product
behavior changes.

Out of scope (Wave 2, separate PR with screenshots): Image Occlusion,
Templates browser, Chat study assistant, Print/PDF export.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 19, 2026

Deploy Preview for notion2anki ready!

Name Link
🔨 Latest commit 8fb6a30
🔍 Latest deploy log https://app.netlify.com/projects/notion2anki/deploys/6a0c9646560da70008c589d6
😎 Deploy Preview https://deploy-preview-2463--notion2anki.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@sonarqubecloud
Copy link
Copy Markdown

@aalemayhu aalemayhu marked this pull request as ready for review May 19, 2026 17:39
@aalemayhu aalemayhu merged commit 7b21091 into main May 19, 2026
10 of 11 checks passed
@aalemayhu aalemayhu deleted the docs/fill-feature-gaps branch May 19, 2026 17:41
aalemayhu added a commit that referenced this pull request May 19, 2026
Wave 2 of the documentation gap audit. Adds the visual/interactive
features that needed real walkthroughs, plus several corrections to
existing pages that had drifted from the code.

New pages:
- cards/image-occlusion — canvas masking tool: how to draw boxes,
  hide-all vs hide-one modes, draft auto-save, common mistakes
- cards/templates — note-types library at /templates: browse, preview,
  download, customize, the three sections (yours / official / starter)
- reference/chat — Chat study assistant at /chat: prompt patterns,
  conversation history, message quotas by plan, what we store
- reference/print-export — /print PDF export: paper sizes, margins,
  privacy, the 2-hour file retention window

Corrections to existing pages:
- start-here/what-is-2anki — "Two ways to use it" was missing Auto Sync.
  Renamed to "Three ways" and added the paid recurring path with a link
  to How sync works.
- cards/card-options — added the MCQ section (Enable, Show, Shuffle,
  TTS for Q/A/Extra with 7 languages), font-size, toggle-mode, page-emoji,
  custom note-type model names (basic/cloze/input), and user-instructions
  for the Claude AI option. Also broke the flat 21-row table into 7
  grouped tables (Deck shape, Card content, Card types, Filtering,
  Links & formatting, PDF & AI, Multiple choice, Debugging).
- cards/notion-blocks — moved PDF embed from Implemented to Unsupported
  (the code falls through to default with an "unsupported: <type>"
  fallback). Added new unsupported blocks: Heading 4, Meeting notes, Tab,
  Transcription. Added a "Sub-deck-only" section for Child database.
- reference/file-formats — added a row for Word documents (.docx/.doc),
  which the upload accepts and converts via LibreOffice.
- sync/review-export — corrected the required-properties list. The code
  only needs Date + Reviews, not the 5 listed (Reviews/Lapses/Ease/Last
  review/Due). Also updated the plan tier — Auto Sync subscribers have
  access too, not only Lifetime.

Banner update:
- WipBanner — added "with help from AI" so readers know how these pages
  are being written.

Sidebar:
- "Make better cards" gains Image occlusion and Note types and templates
- "Reference" gains Chat — study assistant and Print or export to PDF

Depends on docs/fill-feature-gaps (#2463). When that merges, the
references to ai-flashcards, parser-rules, and plans become real and a
follow-up edit can re-add the links that were dropped here to keep tests
green.

No changelog entry — documentation additions, no product-behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aalemayhu added a commit that referenced this pull request May 19, 2026
…2467)

## Summary

The Playwright test
[\`tests/onboarding-tour.spec.ts:123\`](https://github.com/2anki/server/blob/main/web/tests/onboarding-tour.spec.ts#L123)
— *"user created before migration cutoff does not see the tour"* — has
been **failing on every PR**, including main itself. The pre-existing
failure has blocked the local merge-status hook on the recent docs PRs
(#2463 already merged via admin bypass, #2464 still open and blocked).

## Diagnosis

| Field | Value |
|---|---|
| Production cutoff | \`MIGRATION_CUTOFF = '2026-05-19T00:00:00.000Z'\`
([OnboardingTour.tsx:29](https://github.com/2anki/server/blob/main/web/src/pages/UploadPage/components/OnboardingTour/OnboardingTour.tsx#L29))
|
| OLD_USER fixture | \`created_at: '2026-06-07T10:00:00.000Z'\` |
| Comparison | \`2026-06-07 >= 2026-05-19\` → true → tour shown → test
fails |

The fixture date was AFTER the cutoff but the test name claims it
represents a user from BEFORE the cutoff. The two were never reconciled.

The unit test (\`OnboardingTour.test.tsx\`) doesn't trip on this because
it injects \`migrationDate={MIGRATION_DATE}\` via prop, using
\`'2026-06-08T00:00:00.000Z'\` so 06-07 is correctly "before". The
Playwright test runs the real component and hits the production const
directly.

## Fix

One line. Move OLD_USER's \`created_at\` to
\`'2026-04-15T10:00:00.000Z'\` — clearly before the production cutoff.

No production code change. The component, the cutoff date, and every
other test stay as they are.

## Not in this PR

- No changelog entry — test-only change, no user-visible behavior.
- No sonar-scanner — single test-fixture line per
\`.claude/rules/sonar.md\` exception list.

## Test plan

- [ ] CI: Playwright workflow goes green for the first time in days.
- [ ] All other tests stay green (unit test for the same component was
already passing via prop injection — no risk of regressing it).
- [ ] Once merged, #2464 (docs Wave 2) gets a clean check rollup and can
merge normally without admin bypass.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- codesmith:footer -->
---
<a
href="https://app.blacksmith.sh/2anki/codesmith/server/pr/2467"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-light.svg"><img
alt="View in Codesmith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>@codesmith</code> with what you
need.</sup>

- [ ] Let Codesmith autofix CI failures and bot reviews
<!-- /codesmith:footer -->

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aalemayhu added a commit that referenced this pull request May 19, 2026
Wave 2 of the documentation gap audit. Adds the visual/interactive
features that needed real walkthroughs, plus several corrections to
existing pages that had drifted from the code.

New pages:
- cards/image-occlusion — canvas masking tool: how to draw boxes,
  hide-all vs hide-one modes, draft auto-save, common mistakes
- cards/templates — note-types library at /templates: browse, preview,
  download, customize, the three sections (yours / official / starter)
- reference/chat — Chat study assistant at /chat: prompt patterns,
  conversation history, message quotas by plan, what we store
- reference/print-export — /print PDF export: paper sizes, margins,
  privacy, the 2-hour file retention window

Corrections to existing pages:
- start-here/what-is-2anki — "Two ways to use it" was missing Auto Sync.
  Renamed to "Three ways" and added the paid recurring path with a link
  to How sync works.
- cards/card-options — added the MCQ section (Enable, Show, Shuffle,
  TTS for Q/A/Extra with 7 languages), font-size, toggle-mode, page-emoji,
  custom note-type model names (basic/cloze/input), and user-instructions
  for the Claude AI option. Also broke the flat 21-row table into 7
  grouped tables (Deck shape, Card content, Card types, Filtering,
  Links & formatting, PDF & AI, Multiple choice, Debugging).
- cards/notion-blocks — moved PDF embed from Implemented to Unsupported
  (the code falls through to default with an "unsupported: <type>"
  fallback). Added new unsupported blocks: Heading 4, Meeting notes, Tab,
  Transcription. Added a "Sub-deck-only" section for Child database.
- reference/file-formats — added a row for Word documents (.docx/.doc),
  which the upload accepts and converts via LibreOffice.
- sync/review-export — corrected the required-properties list. The code
  only needs Date + Reviews, not the 5 listed (Reviews/Lapses/Ease/Last
  review/Due). Also updated the plan tier — Auto Sync subscribers have
  access too, not only Lifetime.

Banner update:
- WipBanner — added "with help from AI" so readers know how these pages
  are being written.

Sidebar:
- "Make better cards" gains Image occlusion and Note types and templates
- "Reference" gains Chat — study assistant and Print or export to PDF

Depends on docs/fill-feature-gaps (#2463). When that merges, the
references to ai-flashcards, parser-rules, and plans become real and a
follow-up edit can re-add the links that were dropped here to keep tests
green.

No changelog entry — documentation additions, no product-behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aalemayhu added a commit that referenced this pull request May 19, 2026
## Summary

Wave 2 of the documentation gap audit, plus several corrections to
existing pages that had drifted from the code (Al flagged each one in
real time).

### New pages

- **`cards/image-occlusion`** — the `/image-occlusion` canvas tool. How
to draw boxes, hide-all vs hide-one modes, draft auto-save, common
mistakes.
- **`cards/templates`** — the `/templates` library. The three sections
(Your / Official / Starter), preview, download, customize, the "edit but
Anki imports by name" gotcha.
- **`reference/chat`** — the `/chat` study assistant. Prompt patterns,
conversation history, message quotas by plan, what we store and don't.
- **`reference/print-export`** — the `/print` tool. Paper sizes,
margins, the 2-hour file retention, the Subscription/Lifetime gate.

### Corrections to existing pages

- **`start-here/what-is-2anki`** — "Two ways to use it" was missing Auto
Sync. Renamed to **"Three ways"** and added the paid recurring path with
a link to How sync works.
- **`cards/card-options`** — the table was missing the entire MCQ
section (Enable / Show / Shuffle / TTS for Q/A/Extra in 7 languages),
font-size, toggle-mode, page-emoji, custom note-type model names, and
user-instructions for the Claude AI option. Also split the flat 21-row
table into 7 grouped tables (Deck shape, Card content, Card types,
Filtering, Links & formatting, PDF & AI, Multiple choice, Debugging).
- **`cards/notion-blocks`** — moved **PDF embed** from Implemented to
Unsupported (the code falls through to the default-case fallback that
renders `unsupported: <type>` + a JSON dump). Added new Notion blocks as
unsupported: Heading 4, Meeting notes, Tab, Transcription. Added a
"Sub-deck-only" section for Child database (it doesn't render as a card
but can be a sub-deck source).
- **`reference/file-formats`** — added a row for Word documents (.docx /
.doc). The upload accepts them and they convert via LibreOffice.
- **`sync/review-export`** — corrected the required-properties list. The
code (`AnkifyRouter.ts:238-239`) only needs **Date** (date) +
**Reviews** (number), not the five we were listing
(Reviews/Lapses/Ease/Last review/Due). Also updated plan tier — Auto
Sync subscribers have access, not just Lifetime.

### Banner update

- **`WipBanner.tsx`** — added "with help from AI" to the docs banner.
The full new copy: *"These docs are being rewritten with help from AI.
If something looks wrong, open an issue — we read every one."* Al asked
for explicit transparency about how the docs are being written.

### Sidebar

- "Make better cards" gains **Image occlusion** and **Note types and
templates**
- "Reference" gains **Chat — study assistant** and **Print or export to
PDF**

### Dependencies and known follow-up

- Depends on **#2463 (Wave 1)**. When that merges, three references in
this PR can become real links: `cards/ai-flashcards`,
`cards/parser-rules`, `reference/plans`. They were dropped here so
`content-links.test.ts` (the link-integrity check) stays green. A short
follow-up PR after Wave 1 lands can re-add the links.
- The image-occlusion and templates pages are prose-only. Designer agent
recommended a GIF for image-occlusion and a grid screenshot for
templates; both are still valuable as text and can take visuals in a
later PR.

### Not in this PR

- No changelog entry. Documentation additions, not product-behavior
changes — `docs:` is not in the changelog table per `CLAUDE.md`.
- No sonar-scanner. Markdown + one banner string + sidebar array
entries; per `.claude/rules/sonar.md` sonar is skipped for "pure
doc/dep/test/typo changes".

## Test plan

- [ ] `/check` is green — server tsc, web typecheck, 774 vitest, biome
lint all clean locally.
- [ ] Visit `/documentation/cards/image-occlusion`,
`/documentation/cards/templates`, `/documentation/reference/chat`,
`/documentation/reference/print-export` and confirm each renders.
- [ ] Visit `/documentation/start-here/what-is-2anki` and confirm "Three
ways to use it" appears with the Auto Sync entry.
- [ ] Visit `/documentation/cards/card-options` and confirm the new
grouped tables (especially the Multiple choice section).
- [ ] Visit `/documentation/cards/notion-blocks` and confirm PDF embed
shows under Unsupported.
- [ ] Visit `/documentation/sync/review-export` and confirm the property
list is just Date + Reviews.
- [ ] Visit `/documentation/reference/file-formats` and confirm the Word
row.
- [ ] Open any docs page and confirm the new banner copy mentions AI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- codesmith:footer -->
---
<a
href="https://app.blacksmith.sh/2anki/codesmith/server/pr/2464"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-light.svg"><img
alt="View in Codesmith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/view-in-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>@codesmith</code> with what you
need.</sup>

- [ ] Let Codesmith autofix CI failures and bot reviews
<!-- /codesmith:footer -->

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant