docs: add AI Diff Reviewer kit page and fifth-addon coverage - #46
Conversation
Add the dedicated kit catalog page (/kit/ai-diff-reviewer) and update spec/addons, init, kit, quickstart, and UI strings across all 17 languages so onboarding and the site catalog match deepworkplan-skill v2.17.0. Co-authored-by: Cursor <cursoragent@cursor.com>
Expose buildMarkdownAccessLine in the shared serializer so every page and reader mirror documents Accept: text/markdown content negotiation, with localized prose for all 17 languages and unit tests locking the contract. Co-authored-by: Cursor <cursoragent@cursor.com>
п'ять inside single-quoted TS strings broke the uk locale parse and tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Enable core.untrackedcache and TTL-cache git status in set_bash_prompt so Enter no longer waits ~3s on the macOS bind mount for every redraw. Co-authored-by: Cursor <cursoragent@cursor.com>
Double-quoted YAML rejects \'; d'extension must be unescaped so Astro content sync and codecheck can load kit/fr/ai-diff-reviewer.md. Co-authored-by: Cursor <cursoragent@cursor.com>
This comment has been minimized.
This comment has been minimized.
Sync leftover four→five body copy, complete quickstart addon lists, trim kit/spec meta descriptions to 130–160 chars, fix ES/DE wording, and restore the 7-day pnpm minimumReleaseAge guard. Co-authored-by: Cursor <cursoragent@cursor.com>
AI review for
|
There was a problem hiding this comment.
Verdict
Solid fifth-addon documentation sweep across all 17 languages, but a few localization defects still ship visible bad copy — fix those before merge.
Findings
| # | Severity | File | Summary |
|---|---|---|---|
| 1 | src/content/kit/tr/ai-diff-reviewer.md:13 |
Literal \' escapes render in Turkish body copy |
|
| 2 | src/content/kit/pt/ai-diff-reviewer.md:34 |
Spanish flujo bleeds into Portuguese kit page | |
| 3 | src/content/spec/pl/addons.md:28 |
Polish numeral agreement broken after four→five | |
| 4 | src/lib/markdown-for-agents.ts:38 |
Access-line map silently falls back; not tied to i18n registry | |
| 5 | ℹ️ info | src/content/kit/ko/ai-diff-reviewer.md:11 |
Japanese-style fullwidth () unlike other KO kit pages |
| 6 | ℹ️ info | src/content/pages/en/kit.md:4 |
lastUpdated bumped only for English kit mirror |
Notes
- Coverage looks complete:
ai-diff-reviewerkit slug is English in all 17 folders; Init/Quickstart UI strings and Dailybot “five addons” copy are synced; meta descriptions sit in the 130–160 band; nocurl\|sh/irm\|iexliterals; no placeholders; trust claims stay checksummed-not-signed. - AEO change (
buildMarkdownAccessLine) is well-tested and covers all 17 active languages today — the maintainability gap is only the silent English fallback when a future locale is scaffolded. docker/custom_commands.shgit-dirty caching is unrelated to the docs title but looks sound (5s TTL keyed by repo root).- Prior commit
7ee5768already cleaned meta lengths and incomplete “five” lists — remaining issues are the ones above.
Recommendation: request-changes
|
|
||
| Deep Work Plan yürütmesini **[AI Diff Reviewer](https://github.com/DailybotHQ/ai-diff-reviewer)**'a (market listesi **"AI Diff Reviewer"**, mevcut sürüm **v2.0.0**) bağlayarak zorunlu son görev olan **Güvenlik İncelemesinin** yapılandırılmış bir yerel inceleme — karar, bulgu tablosu ve önem derecesi — kazanmasını sağlar ve Flow B seçildiğinde her çekme isteği CI\'da aynı incelemeyle kapı altına alınabilir. **İsteğe bağlı** bir eklenti; AI-first uygunluğu için hiçbir zaman gerekli değildir. | ||
|
|
||
| Deep Work Plan\'ın temel metodolojisinin AI Diff Reviewer\'a **sıfır** bağımlılığı vardır. Sıfır eklentili bir depo tam uyumludur. Bu eklentiyi yalnızca geliştirici veya ekip yapılandırılmış inceleme kalitesi istediğinde önerin; hiçbir zaman herkes için otomatik yüklemeyin. Her zaman Flow A mı yoksa Flow B mi olduğunu sorun — hiçbir zaman varsayılan seçmeyin. |
There was a problem hiding this comment.
Literal \' sequences are baked into the Markdown body (also on lines 19–20, 34, 42, 50, 54). Readers will see Plan\'ın, CI\'da, Flow B\'yi, etc. — leftover string-escaping, not Turkish apostrophes.
Strip every backslash before ' in the body (frontmatter is already fine). Example for this line:
| Deep Work Plan\'ın temel metodolojisinin AI Diff Reviewer\'a **sıfır** bağımlılığı vardır. Sıfır eklentili bir depo tam uyumludur. Bu eklentiyi yalnızca geliştirici veya ekip yapılandırılmış inceleme kalitesi istediğinde önerin; hiçbir zaman herkes için otomatik yüklemeyin. Her zaman Flow A mı yoksa Flow B mi olduğunu sorun — hiçbir zaman varsayılan seçmeyin. | |
| Deep Work Plan'ın temel metodolojisinin AI Diff Reviewer'a **sıfır** bağımlılığı vardır. Sıfır eklentili bir depo tam uyumludur. Bu eklentiyi yalnızca geliştirici veya ekip yapılandırılmış inceleme kalitesi istediğinde önerin; hiçbir zaman herkes için otomatik yüklemeyin. Her zaman Flow A mı yoksa Flow B mi olduğunu sorun — hiçbir zaman varsayılan seçmeyin. |
|
|
||
| ## O que este addon liga (limitado por design) | ||
|
|
||
| O addon DWP **não** reinventa o revisor. Delega instalação, metodologia, o assistente de CI, autoria de extensões, redação de PRs e percurso pós-CI às cinco sub-skills da skill upstream (fluxo pai predefinido, `generate-extension`, `setup`, `open-pr`, `apply-review`). |
There was a problem hiding this comment.
Spanish bleed: flujo is Spanish; Portuguese is fluxo. The rest of this page correctly uses fluxo (## Dois fluxos de adoção, Sem fluxo de GitHub Actions), so this parenthetical stands out as a copy-paste miss.
| O addon DWP **não** reinventa o revisor. Delega instalação, metodologia, o assistente de CI, autoria de extensões, redação de PRs e percurso pós-CI às cinco sub-skills da skill upstream (fluxo pai predefinido, `generate-extension`, `setup`, `open-pr`, `apply-review`). | |
| O addon DWP **não** reinventa o revisor. Delega instalação, metodologia, o assistente de CI, autoria de extensões, redação de PRs e percurso pós-CI às cinco sub-skills da skill upstream (fluxo pai predefinido, `generate-extension`, `setup`, `open-pr`, `apply-review`). |
| ## Dostępne addony (pięć) | ||
|
|
||
| Dziś dostępne są cztery addony. Każdy ma **stronę katalogu kit** ze szczegółami dla użytkownika oraz **normatywną specyfikację** w skillu Deep Work Plan. | ||
| Dziś dostępne są pięć addonów. Każdy ma **stronę katalogu kit** ze szczegółami dla użytkownika oraz **normatywną specyfikację** w skillu Deep Work Plan. |
There was a problem hiding this comment.
Numeral agreement broke when cztery → pięć. With 5+, Polish takes genitive plural and a singular verb: Dziś dostępne jest pięć addonów (or rephrase). są pięć is ungrammatical — it only worked for cztery addony (2–4).
| Dziś dostępne są pięć addonów. Każdy ma **stronę katalogu kit** ze szczegółami dla użytkownika oraz **normatywną specyfikację** w skillu Deep Work Plan. | |
| Dziś dostępne jest pięć addonów. Każdy ma **stronę katalogu kit** ze szczegółami dla użytkownika oraz **normatywną specyfikację** w skillu Deep Work Plan. |
| const MARKDOWN_ACCESS_LINES: Record<string, string> = { | ||
| en: 'Markdown: send header `Accept: text/markdown` on any URL to receive Markdown instead of HTML.', | ||
| es: 'Markdown: envía el header `Accept: text/markdown` en cualquier URL para recibir Markdown en lugar de HTML.', | ||
| pt: 'Markdown: envie o header `Accept: text/markdown` em qualquer URL para receber Markdown em vez de HTML.', | ||
| de: 'Markdown: sende den Header `Accept: text/markdown` an jede URL, um Markdown statt HTML zu erhalten.', | ||
| fr: "Markdown: envoyez l'en-tête `Accept: text/markdown` sur n'importe quelle URL pour recevoir du Markdown au lieu du HTML.", | ||
| it: "Markdown: invia l'header `Accept: text/markdown` su qualsiasi URL per ricevere Markdown invece di HTML.", | ||
| ja: 'Markdown: 任意の URL にヘッダー `Accept: text/markdown` を送ると、HTML の代わりに Markdown を受け取れます。', | ||
| zh: 'Markdown: 在任意 URL 上发送请求头 `Accept: text/markdown` 即可获取 Markdown 而非 HTML。', | ||
| ko: 'Markdown: 모든 URL에 `Accept: text/markdown` 헤더를 보내면 HTML 대신 Markdown을 받을 수 있습니다.', | ||
| ru: 'Markdown: отправьте заголовок `Accept: text/markdown` на любой URL, чтобы получить Markdown вместо HTML.', | ||
| tr: "Markdown: herhangi bir URL'ye `Accept: text/markdown` başlığını göndererek HTML yerine Markdown alın.", | ||
| id: 'Markdown: kirim header `Accept: text/markdown` pada URL mana pun untuk menerima Markdown, bukan HTML.', | ||
| vi: 'Markdown: gửi header `Accept: text/markdown` trên mọi URL để nhận Markdown thay vì HTML.', | ||
| hi: 'Markdown: किसी भी URL पर `Accept: text/markdown` हेडर भेजें ताकि HTML के बजाय Markdown मिले।', | ||
| pl: 'Markdown: wyślij nagłówek `Accept: text/markdown` na dowolny URL, aby otrzymać Markdown zamiast HTML.', | ||
| uk: 'Markdown: надішліть заголовок `Accept: text/markdown` на будь-який URL, щоб отримати Markdown замість HTML.', | ||
| th: 'Markdown: ส่งเฮดเดอร์ `Accept: text/markdown` บน URL ใดก็ได้เพื่อรับ Markdown แทน HTML.', | ||
| }; | ||
|
|
||
| /** | ||
| * One-line hint in every .md mirror header so agents know how to fetch | ||
| * Markdown for any other URL on the site via content negotiation. | ||
| * Keep the key prefix exactly `Markdown:` (same pattern as `Canonical:`). | ||
| */ | ||
| export function buildMarkdownAccessLine(lang: string): string { | ||
| return MARKDOWN_ACCESS_LINES[lang] ?? MARKDOWN_ACCESS_LINES.en; |
There was a problem hiding this comment.
Failure mode: getActiveLanguages() auto-registers a new locale from src/lib/translations/<code>.ts, but MARKDOWN_ACCESS_LINES is a parallel Record<string, string> with ?? en fallback. Scaffolding a language then yields English Markdown: headers on every agent .md mirror until someone remembers this map — pnpm run i18n:check will not catch it.
Prefer Record<Language, string> (or move these strings into the translations layer) and fail/assert when a key is missing, matching how nav labels already go through getTranslations(lang).
|
|
||
| # AI Diff Reviewer 애드온 | ||
|
|
||
| Deep Work Plan 실행을 **[AI Diff Reviewer](https://github.com/DailybotHQ/ai-diff-reviewer)**(마켓플레이스 목록 **"AI Diff Reviewer"**, 현재 버전 **v2.0.0**)에 연결하여 필수 최종 작업인 **보안 검토**에 구조화된 로컬 검토 — 판정, 결과 표, 심각도 — 를 추가합니다. Flow B를 선택하면 모든 풀 리퀘스트를 CI에서 동일한 검토로 게이트할 수 있습니다. **선택적** 애드온으로 AI-first 적합성에는 결코 필요하지 않습니다. |
There was a problem hiding this comment.
This page leans on Japanese-style fullwidth parentheses () throughout; sibling KO kit pages (e.g. dailybot.md) use ASCII (). Not wrong under a broad CJK punctuation rule, but it reads like JA→KO bleed. Consider normalizing to halfwidth () for consistency with the rest of the Korean kit catalog.
| title: "The Deep Work Plan Kit" | ||
| description: "The skill and its eight sub-skills, commands, agent adapters, onboarding presets, opt-in add-ons, and examples that make Deep Work Plan runnable anywhere." | ||
| lastUpdated: 2026-05-31 | ||
| lastUpdated: 2026-07-16 |
There was a problem hiding this comment.
lastUpdated was bumped to 2026-07-16 only on the English kit mirror; the other 16 src/content/pages/*/kit.md files still say 2026-05-31 (or 2026-06-05 for JA) despite the same fifth-addon bullet. Harmless for HTML, but agent Markdown that surfaces Last Updated will disagree across languages. Sync the date if you want parity.
Summary
/kit/ai-diff-reviewer(all 17 languages) for the fifth shipping addon./spec/addons,/init.md,/kit, quickstart, Init/Quickstart UI strings, and Dailybot kit copy from “four” → “five” addons so the site matchesdeepworkplan-skillv2.17.0 (Flow A/B, extension required, soft-fail vs SR criticals).Test plan
pnpm run i18n:checkpassespnpm run md:checkpasses/kit/ai-diff-reviewerand/es/kit/ai-diff-reviewer— page renders with Flow A/B content/spec/addonslists five shipping addons including AI Diff Reviewer with kit link/initHTML step “Accept opt-in addons” mentions five addons including AI Diff Reviewer/init.mdsection 4 lists the fifth addon with Flow A/B guidance/kitaddons list includes AI Diff ReviewerMade with Cursor