docs: establish public information architecture - #110
Conversation
📝 WalkthroughWalkthroughThe documentation app adds draft content across new sections, environment-controlled preview navigation, reusable MDX components, route and link checks, Playwright browser coverage, and CI execution of documentation E2E tests. ChangesDocumentation platform
Estimated code review effort: 3 (Moderate) | ~25 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/docs/content/docs/architecture-security/system-description.mdx`:
- Line 12: Update the lastReviewed metadata from 2026-07-29 to the actual
completed review date, 2026-07-28, in both
apps/docs/content/docs/architecture-security/system-description.mdx lines 12-12
and apps/docs/content/docs/admins/identity-permissions.mdx lines 12-12.
In `@apps/docs/content/docs/meta.json`:
- Line 10: Update the Changelog navigation entry in meta.json so it points to a
maintained changelog source with available content, or add a release/changelog
entry before retaining the GitHub Releases link. Do not publish a link that
resolves to an empty Releases page.
In `@apps/docs/content/docs/overview/asset-lifecycle.mdx`:
- Line 12: Replace the future-dated lastReviewed value with the actual review
date in apps/docs/content/docs/overview/asset-lifecycle.mdx:12,
apps/docs/content/docs/overview/core-concepts.mdx:13,
apps/docs/content/docs/deployment/self-hosting.mdx:13,
apps/docs/content/docs/developers/assistant-mcp.mdx:12,
apps/docs/content/docs/admins/sources-connections.mdx:12, and
apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx:13. Also
update check-docs.mjs to reject future lastReviewed dates.
In `@apps/docs/content/docs/overview/index.mdx`:
- Line 12: Replace the future lastReviewed value with the actual review date in
apps/docs/content/docs/overview/index.mdx:12,
apps/docs/content/docs/overview/quickstart.mdx:13,
apps/docs/content/docs/architecture-security/authorization.mdx:13,
apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx:12,
apps/docs/content/docs/architecture-security/evaluation/coverage.mdx:12,
apps/docs/content/docs/architecture-security/evaluation/traceability.mdx:13, and
apps/docs/content/docs/architecture-security/evaluation/limitations.mdx:13; keep
each date non-future and consistent with the July 28, 2026 review context.
In `@apps/docs/scripts/check-docs.mjs`:
- Around line 243-251: Update the route collection logic around manifest.entries
so publicRoutes and draftRoutes contain distinct route paths before release
counts or assertions use them. Deduplicate each status-filtered route list while
preserving the existing sorting and status separation.
In `@apps/docs/test/e2e/navigation.spec.ts`:
- Around line 44-51: Update the test “keyboard navigation reaches the primary
action” to locate the “Start the quickstart” link specifically, tab until that
link receives focus, assert it is focused, activate it with Enter, and verify
navigation to /docs/overview/quickstart instead of only checking generic link
visibility and href.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 053e4a6a-b1cd-43b6-a740-a72841ba4751
⛔ Files ignored due to path filters (3)
docs/increments/active/2026-07-28-public-docs-portal/plan.mdis excluded by!docs/**docs/increments/active/2026-07-28-public-docs-portal/verification.mdis excluded by!docs/**pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml,!**/pnpm-lock.yaml
📒 Files selected for processing (37)
.github/workflows/ci.ymlapps/docs/content/docs/admins/identity-permissions.mdxapps/docs/content/docs/admins/meta.jsonapps/docs/content/docs/admins/sources-connections.mdxapps/docs/content/docs/architecture-security/authorization.mdxapps/docs/content/docs/architecture-security/evaluation/coverage.mdxapps/docs/content/docs/architecture-security/evaluation/limitations.mdxapps/docs/content/docs/architecture-security/evaluation/meta.jsonapps/docs/content/docs/architecture-security/evaluation/traceability.mdxapps/docs/content/docs/architecture-security/ingestion-lifecycle.mdxapps/docs/content/docs/architecture-security/meta.jsonapps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdxapps/docs/content/docs/architecture-security/system-description.mdxapps/docs/content/docs/deployment/meta.jsonapps/docs/content/docs/deployment/self-hosting.mdxapps/docs/content/docs/developers/assistant-mcp.mdxapps/docs/content/docs/developers/meta.jsonapps/docs/content/docs/meta.jsonapps/docs/content/docs/overview/asset-lifecycle.mdxapps/docs/content/docs/overview/core-concepts.mdxapps/docs/content/docs/overview/index.mdxapps/docs/content/docs/overview/meta.jsonapps/docs/content/docs/overview/quickstart.mdxapps/docs/package.jsonapps/docs/playwright.config.tsapps/docs/public-content.manifest.jsonapps/docs/scripts/check-docs.mjsapps/docs/scripts/check-links.tsapps/docs/src/app/(home)/page.tsxapps/docs/src/app/docs/[[...slug]]/page.tsxapps/docs/src/app/docs/layout.tsxapps/docs/src/app/global.cssapps/docs/src/components/docs-patterns.tsxapps/docs/src/components/mdx.tsxapps/docs/src/lib/layout.shared.tsxapps/docs/src/lib/source.tsapps/docs/test/e2e/navigation.spec.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
- GitHub Check: Deployment contracts
- GitHub Check: Public docs · Node 24
- GitHub Check: PostgreSQL GraphRAG
- GitHub Check: Web · Node 24
🧰 Additional context used
📓 Path-based instructions (5)
**/*
📄 CodeRabbit inference engine (CLAUDE.md)
**/*: Always read the repository guidance and relevant sections ofARCHITECTURE.md; before changing a domain, read its specification, test-coverage document, and binding decision filenames.
Treat the repository as the engineering system of record; current repository and runtime evidence take precedence over chat or Northstar.
Readdocs/guidelines/agent-safety.mdbefore retrieval, AI, MCP, permission, upload, graph, or export work. Never commit secrets or customer data.
Files:
apps/docs/content/docs/architecture-security/evaluation/meta.jsonapps/docs/content/docs/developers/meta.jsonapps/docs/content/docs/architecture-security/meta.jsonapps/docs/content/docs/overview/index.mdxapps/docs/content/docs/architecture-security/system-description.mdxapps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdxapps/docs/content/docs/deployment/meta.jsonapps/docs/content/docs/overview/asset-lifecycle.mdxapps/docs/public-content.manifest.jsonapps/docs/content/docs/deployment/self-hosting.mdxapps/docs/content/docs/admins/meta.jsonapps/docs/content/docs/admins/identity-permissions.mdxapps/docs/src/lib/layout.shared.tsxapps/docs/content/docs/meta.jsonapps/docs/content/docs/overview/quickstart.mdxapps/docs/content/docs/architecture-security/authorization.mdxapps/docs/src/lib/source.tsapps/docs/content/docs/overview/meta.jsonapps/docs/content/docs/architecture-security/ingestion-lifecycle.mdxapps/docs/scripts/check-links.tsapps/docs/content/docs/developers/assistant-mcp.mdxapps/docs/src/app/docs/layout.tsxapps/docs/src/components/docs-patterns.tsxapps/docs/src/app/(home)/page.tsxapps/docs/test/e2e/navigation.spec.tsapps/docs/content/docs/architecture-security/evaluation/coverage.mdxapps/docs/src/app/global.cssapps/docs/content/docs/architecture-security/evaluation/limitations.mdxapps/docs/playwright.config.tsapps/docs/package.jsonapps/docs/content/docs/admins/sources-connections.mdxapps/docs/src/app/docs/[[...slug]]/page.tsxapps/docs/content/docs/overview/core-concepts.mdxapps/docs/content/docs/architecture-security/evaluation/traceability.mdxapps/docs/src/components/mdx.tsxapps/docs/scripts/check-docs.mjs
apps/docs/content/docs/**/*.{md,mdx}
📄 CodeRabbit inference engine (apps/docs/CLAUDE.md)
apps/docs/content/docs/**/*.{md,mdx}: Public prose must live only inapps/docs/content/docs; internal engineering documents are source evidence and must not be used as publication input.
Every documentation page must be listed inpublic-content.manifest.jsonand include the required typed frontmatter.
sourceRefsis build-time traceability metadata and must never be rendered as user-facing content.
Draft documentation must remain excluded unlessDOCS_INCLUDE_DRAFTS=trueis set for a local or controlled preview.
Files:
apps/docs/content/docs/overview/index.mdxapps/docs/content/docs/architecture-security/system-description.mdxapps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdxapps/docs/content/docs/overview/asset-lifecycle.mdxapps/docs/content/docs/deployment/self-hosting.mdxapps/docs/content/docs/admins/identity-permissions.mdxapps/docs/content/docs/overview/quickstart.mdxapps/docs/content/docs/architecture-security/authorization.mdxapps/docs/content/docs/architecture-security/ingestion-lifecycle.mdxapps/docs/content/docs/developers/assistant-mcp.mdxapps/docs/content/docs/architecture-security/evaluation/coverage.mdxapps/docs/content/docs/architecture-security/evaluation/limitations.mdxapps/docs/content/docs/admins/sources-connections.mdxapps/docs/content/docs/overview/core-concepts.mdxapps/docs/content/docs/architecture-security/evaluation/traceability.mdx
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{js,jsx,ts,tsx}: Frontend verification must include lint, typecheck, tests, production build, and browser verification when the flow matters.
Before using unfamiliar React, Vite, Tailwind, TypeScript, Next.js, or Fumadocs APIs, consult current official documentation, Context7, and the relevant project verification skill.
Files:
apps/docs/src/lib/layout.shared.tsxapps/docs/src/lib/source.tsapps/docs/scripts/check-links.tsapps/docs/src/app/docs/layout.tsxapps/docs/src/components/docs-patterns.tsxapps/docs/src/app/(home)/page.tsxapps/docs/test/e2e/navigation.spec.tsapps/docs/playwright.config.tsapps/docs/src/app/docs/[[...slug]]/page.tsxapps/docs/src/components/mdx.tsx
apps/docs/**/*.{ts,tsx}
📄 CodeRabbit inference engine (apps/docs/CLAUDE.md)
Verify unfamiliar Next.js and Fumadocs APIs against current official documentation or the installed dependency types before using them.
Files:
apps/docs/src/lib/layout.shared.tsxapps/docs/src/lib/source.tsapps/docs/scripts/check-links.tsapps/docs/src/app/docs/layout.tsxapps/docs/src/components/docs-patterns.tsxapps/docs/src/app/(home)/page.tsxapps/docs/test/e2e/navigation.spec.tsapps/docs/playwright.config.tsapps/docs/src/app/docs/[[...slug]]/page.tsxapps/docs/src/components/mdx.tsx
.github/**/*.{yml,yaml}
⚙️ CodeRabbit configuration file
.github/**/*.{yml,yaml}: Require least-privilege permissions, explicit release tags for actions,
bounded job timeouts, concurrency cancellation, frozen lockfiles, and no
secrets in pull-request workflows. GitHub Actions are intentionally not
pinned to commit SHAs; Dependabot owns their scheduled version updates.
Files:
.github/workflows/ci.yml
🧠 Learnings (1)
📚 Learning: 2026-07-24T22:52:57.466Z
Learnt from: kl3inIT
Repo: kl3inIT/OrgMemory PR: 40
File: .github/workflows/ci.yml:126-126
Timestamp: 2026-07-24T22:52:57.466Z
Learning: In this repository’s GitHub Actions workflows, the `uses:` field may intentionally reference GitHub Actions by explicit release tags (not immutable commit SHAs) per the project’s OrgMemory policy. Do not flag tag-based `uses:` references as “unpinned” if they are release-tag-based (e.g., `owner/repovX.Y.Z`) and follow the repo’s Dependabot-owned scheduled updates approach.
Applied to files:
.github/workflows/ci.yml
🔇 Additional comments (31)
apps/docs/content/docs/architecture-security/system-description.mdx (1)
1-11: LGTM!Also applies to: 13-35
apps/docs/content/docs/admins/identity-permissions.mdx (1)
1-11: LGTM!Also applies to: 13-29
apps/docs/src/components/docs-patterns.tsx (1)
1-78: LGTM!apps/docs/src/components/mdx.tsx (1)
2-21: LGTM!apps/docs/src/app/global.css (1)
12-18: LGTM!apps/docs/src/lib/source.ts (1)
7-10: LGTM!apps/docs/src/lib/layout.shared.tsx (1)
5-50: LGTM!apps/docs/src/app/docs/layout.tsx (1)
33-43: 📐 Maintainability & Code QualityProvide the required preview-navigation verification evidence.
Record lint, typecheck, tests, production build, and desktop/mobile browser checks for both
DOCS_INCLUDE_DRAFTS=falseandDOCS_INCLUDE_DRAFTS=true, including keyboard navigation through tabs and the collapsible sidebar.As per coding guidelines, “Frontend verification must include lint, typecheck, tests, production build, and browser verification when the flow matters.”
Source: Coding guidelines
apps/docs/src/app/(home)/page.tsx (1)
12-127: LGTM!apps/docs/public-content.manifest.json (1)
12-130: LGTM!apps/docs/src/app/docs/[[...slug]]/page.tsx (1)
56-56: 🗄️ Data Integrity & IntegrationNo change needed.
lastReviewedis required in the MDX source schema and validation script, so this date construction should only receive validYYYY-MM-DDfrontmatter values.apps/docs/content/docs/meta.json (1)
4-9: LGTM!apps/docs/content/docs/overview/meta.json (1)
1-11: LGTM!apps/docs/content/docs/overview/index.mdx (1)
1-11: LGTM!Also applies to: 13-29
apps/docs/content/docs/overview/quickstart.mdx (1)
1-12: LGTM!Also applies to: 14-38
apps/docs/content/docs/architecture-security/authorization.mdx (1)
1-12: LGTM!Also applies to: 14-31
apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx (1)
1-11: LGTM!Also applies to: 13-31
apps/docs/content/docs/architecture-security/evaluation/meta.json (1)
1-9: LGTM!apps/docs/content/docs/architecture-security/evaluation/coverage.mdx (1)
1-11: LGTM!Also applies to: 13-37
apps/docs/content/docs/architecture-security/evaluation/traceability.mdx (1)
1-12: LGTM!Also applies to: 14-29
apps/docs/content/docs/architecture-security/evaluation/limitations.mdx (1)
1-12: LGTM!Also applies to: 14-28
apps/docs/content/docs/overview/asset-lifecycle.mdx (1)
1-11: LGTM!Also applies to: 13-30
apps/docs/content/docs/overview/core-concepts.mdx (1)
1-12: LGTM!Also applies to: 14-41
apps/docs/content/docs/deployment/meta.json (1)
1-8: LGTM!apps/docs/content/docs/deployment/self-hosting.mdx (1)
1-12: LGTM!Also applies to: 14-30
apps/docs/content/docs/developers/meta.json (1)
1-8: LGTM!apps/docs/content/docs/developers/assistant-mcp.mdx (1)
1-11: LGTM!Also applies to: 13-31
apps/docs/content/docs/admins/meta.json (1)
1-9: LGTM!apps/docs/content/docs/admins/sources-connections.mdx (1)
1-11: LGTM!Also applies to: 13-26
apps/docs/content/docs/architecture-security/meta.json (1)
1-12: LGTM!apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx (1)
1-12: LGTM!Also applies to: 14-27
| sourceRefs: | ||
| - ARCHITECTURE.md | ||
| - docs/vision.md | ||
| lastReviewed: 2026-07-29 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Correct the future lastReviewed metadata in both pages.
The current date is July 28, 2026, but both pages claim they were reviewed on July 29, 2026. Because the docs page renders this field as user-facing update metadata, use the actual completed review date.
apps/docs/content/docs/architecture-security/system-description.mdx#L12-L12: replace2026-07-29with the actual review date.apps/docs/content/docs/admins/identity-permissions.mdx#L12-L12: replace2026-07-29with the actual review date.
📍 Affects 2 files
apps/docs/content/docs/architecture-security/system-description.mdx#L12-L12(this comment)apps/docs/content/docs/admins/identity-permissions.mdx#L12-L12
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/docs/content/docs/architecture-security/system-description.mdx` at line
12, Update the lastReviewed metadata from 2026-07-29 to the actual completed
review date, 2026-07-28, in both
apps/docs/content/docs/architecture-security/system-description.mdx lines 12-12
and apps/docs/content/docs/admins/identity-permissions.mdx lines 12-12.
| "admins", | ||
| "developers", | ||
| "architecture-security", | ||
| "external:[Changelog](https://github.com/kl3inIT/OrgMemory/releases)" |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Do not expose an empty Releases page as the Changelog.
The destination currently contains no releases, so readers reach an empty page. Add a release/changelog entry or point this item at the maintained changelog source before publishing the navigation link. (github.com)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/docs/content/docs/meta.json` at line 10, Update the Changelog navigation
entry in meta.json so it points to a maintained changelog source with available
content, or add a release/changelog entry before retaining the GitHub Releases
link. Do not publish a link that resolves to an empty Releases page.
| sourceRefs: | ||
| - docs/specs/domains/asset-registry.md | ||
| - docs/tests/domains/asset-registry.md | ||
| lastReviewed: 2026-07-29 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use actual review dates across the draft pages.
All six pages declare 2026-07-29, which is future-dated relative to July 28, 2026. Replace these values with the actual review date and consider rejecting future dates in check-docs.mjs.
apps/docs/content/docs/overview/asset-lifecycle.mdx#L12-L12: setlastReviewedto the actual review date.apps/docs/content/docs/overview/core-concepts.mdx#L13-L13: setlastReviewedto the actual review date.apps/docs/content/docs/deployment/self-hosting.mdx#L13-L13: setlastReviewedto the actual review date.apps/docs/content/docs/developers/assistant-mcp.mdx#L12-L12: setlastReviewedto the actual review date.apps/docs/content/docs/admins/sources-connections.mdx#L12-L12: setlastReviewedto the actual review date.apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx#L13-L13: setlastReviewedto the actual review date.
📍 Affects 6 files
apps/docs/content/docs/overview/asset-lifecycle.mdx#L12-L12(this comment)apps/docs/content/docs/overview/core-concepts.mdx#L13-L13apps/docs/content/docs/deployment/self-hosting.mdx#L13-L13apps/docs/content/docs/developers/assistant-mcp.mdx#L12-L12apps/docs/content/docs/admins/sources-connections.mdx#L12-L12apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx#L13-L13
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/docs/content/docs/overview/asset-lifecycle.mdx` at line 12, Replace the
future-dated lastReviewed value with the actual review date in
apps/docs/content/docs/overview/asset-lifecycle.mdx:12,
apps/docs/content/docs/overview/core-concepts.mdx:13,
apps/docs/content/docs/deployment/self-hosting.mdx:13,
apps/docs/content/docs/developers/assistant-mcp.mdx:12,
apps/docs/content/docs/admins/sources-connections.mdx:12, and
apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx:13. Also
update check-docs.mjs to reject future lastReviewed dates.
| sourceRefs: | ||
| - docs/vision.md | ||
| - ARCHITECTURE.md | ||
| lastReviewed: 2026-07-29 |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use a non-future lastReviewed date across the draft pages.
2026-07-29 is tomorrow relative to the current date, July 28, 2026. Replace it with the actual review date, or make the documentation validator reject future dates.
apps/docs/content/docs/overview/index.mdx#L12-L12: use the actual review date.apps/docs/content/docs/overview/quickstart.mdx#L13-L13: use the actual review date.apps/docs/content/docs/architecture-security/authorization.mdx#L13-L13: use the actual review date.apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx#L12-L12: use the actual review date.apps/docs/content/docs/architecture-security/evaluation/coverage.mdx#L12-L12: use the actual review date.apps/docs/content/docs/architecture-security/evaluation/traceability.mdx#L13-L13: use the actual review date.apps/docs/content/docs/architecture-security/evaluation/limitations.mdx#L13-L13: use the actual review date.
📍 Affects 7 files
apps/docs/content/docs/overview/index.mdx#L12-L12(this comment)apps/docs/content/docs/overview/quickstart.mdx#L13-L13apps/docs/content/docs/architecture-security/authorization.mdx#L13-L13apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx#L12-L12apps/docs/content/docs/architecture-security/evaluation/coverage.mdx#L12-L12apps/docs/content/docs/architecture-security/evaluation/traceability.mdx#L13-L13apps/docs/content/docs/architecture-security/evaluation/limitations.mdx#L13-L13
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/docs/content/docs/overview/index.mdx` at line 12, Replace the future
lastReviewed value with the actual review date in
apps/docs/content/docs/overview/index.mdx:12,
apps/docs/content/docs/overview/quickstart.mdx:13,
apps/docs/content/docs/architecture-security/authorization.mdx:13,
apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx:12,
apps/docs/content/docs/architecture-security/evaluation/coverage.mdx:12,
apps/docs/content/docs/architecture-security/evaluation/traceability.mdx:13, and
apps/docs/content/docs/architecture-security/evaluation/limitations.mdx:13; keep
each date non-future and consistent with the July 28, 2026 review context.
| const manifest = readManifest(); | ||
| const publicRoutes = manifest.entries | ||
| .filter((entry) => entry.status === 'public') | ||
| .map((entry) => entry.route) | ||
| .sort(); | ||
| const draftRoutes = manifest.entries | ||
| .filter((entry) => entry.status === 'draft') | ||
| .map((entry) => entry.route) | ||
| .sort(); |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Reject duplicate route entries before counting releases.
This counts manifest entries, not distinct paths. Two draft entries for one route can satisfy the “15 routes” assertion while publishing fewer than 15 reachable previews.
Proposed fix
const draftRoutes = manifest.entries
.filter((entry) => entry.status === 'draft')
.map((entry) => entry.route)
.sort();
+ const allRoutes = [...publicRoutes, ...draftRoutes];
+ if (new Set(allRoutes).size !== allRoutes.length) {
+ fail('Each documentation route must be unique');
+ }
+
if (draftRoutes.length !== 15) {📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const manifest = readManifest(); | |
| const publicRoutes = manifest.entries | |
| .filter((entry) => entry.status === 'public') | |
| .map((entry) => entry.route) | |
| .sort(); | |
| const draftRoutes = manifest.entries | |
| .filter((entry) => entry.status === 'draft') | |
| .map((entry) => entry.route) | |
| .sort(); | |
| const manifest = readManifest(); | |
| const publicRoutes = manifest.entries | |
| .filter((entry) => entry.status === 'public') | |
| .map((entry) => entry.route) | |
| .sort(); | |
| const draftRoutes = manifest.entries | |
| .filter((entry) => entry.status === 'draft') | |
| .map((entry) => entry.route) | |
| .sort(); | |
| const allRoutes = [...publicRoutes, ...draftRoutes]; | |
| if (new Set(allRoutes).size !== allRoutes.length) { | |
| fail('Each documentation route must be unique'); | |
| } | |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/docs/scripts/check-docs.mjs` around lines 243 - 251, Update the route
collection logic around manifest.entries so publicRoutes and draftRoutes contain
distinct route paths before release counts or assertions use them. Deduplicate
each status-filtered route list while preserving the existing sorting and status
separation.
| test('keyboard navigation reaches the primary action', async ({ page }) => { | ||
| await page.goto('/'); | ||
| await page.keyboard.press('Tab'); | ||
|
|
||
| const focused = page.locator(':focus'); | ||
| await expect(focused).toBeVisible(); | ||
| await expect(focused).toHaveAttribute('href'); | ||
| }); |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== files =="
git ls-files | rg '(^apps/docs/|ARCHITECTURE\.md|binding_decision|test-coverage|specification)' | head -200
echo
echo "== target file outline/lines =="
if [ -f apps/docs/test/e2e/navigation.spec.ts ]; then
wc -l apps/docs/test/e2e/navigation.spec.ts
cat -n apps/docs/test/e2e/navigation.spec.ts
fi
echo
echo "== quickstart references =="
rg -n "Start the quickstart|quickstart|/docs/overview/quickstart|primary action|primary" apps/docs -S || true
echo
echo "== page source candidates =="
fd -a 'page\.tsx|header|nav|layout|index|hero|quickstart|overview' apps/docs | sed 's#^\./##' | head -100Repository: kl3inIT/OrgMemory
Length of output: 8186
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== read-only source summary =="
python3 - <<'PY'
from pathlib import Path
p = Path('apps/docs/src/app/(home)/page.tsx')
lines = p.read_text().splitlines()
for i,l in enumerate(lines, start=1):
print(f'{i:4}: {l}')
PY
echo
echo "== read-only navigation test =="
cat -n apps/docs/test/e2e/navigation.spec.ts | sed -n '44,51p'
echo
echo "== accessibility/coverage docs if present =="
for f in ARCHITECTURE.md apps/docs/ARCHITECTURE.md apps/docs/content/docs/architecture-security/evaluation/coverage.mdx; do
if [ -f "$f" ]; then
echo "--- $f ---"
wc -l "$f"
rg -n "keyboard|tab|primary|quic|coverage|e2e|navigation" "$f" -S || true
fi
doneRepository: kl3inIT/OrgMemory
Length of output: 10541
Exercise the actual primary action.
One Tab only proves that some focusable link receives focus; it does not verify that “Start the quickstart” is keyboard-reachable or activatable. Target that link, assert focus, activate it with Enter, and assert navigation to /docs/overview/quickstart.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/docs/test/e2e/navigation.spec.ts` around lines 44 - 51, Update the test
“keyboard navigation reaches the primary action” to locate the “Start the
quickstart” link specifically, tab until that link receives focus, assert it is
focused, activate it with Enter, and verify navigation to
/docs/overview/quickstart instead of only checking generic link visibility and
href.
Summary
Verification
corepack pnpm --filter @orgmemory/docs checkcorepack pnpm --filter @orgmemory/docs test:e2e(8 passed)corepack pnpm --filter @orgmemory/docs buildpython scripts/check_docs.pyactionlint .github/workflows/ci.ymldocker buildx build --check --file apps/docs/Dockerfile ./,/docs200; draft/docs/overview404; healthy asnextjsPublication boundary
This PR publishes only the existing foundation route. The 15 first-release routes remain editorial previews until their content is reconciled against implementation evidence in the next increment.
Summary by CodeRabbit
New Features
Bug Fixes
Tests