Skip to content

docs: establish public information architecture - #110

Merged
kl3inIT merged 1 commit into
mainfrom
feat/public-docs-ia
Jul 28, 2026
Merged

docs: establish public information architecture#110
kl3inIT merged 1 commit into
mainfrom
feat/public-docs-ia

Conversation

@kl3inIT

@kl3inIT kl3inIT commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • establish an Onyx-style, audience-oriented Fumadocs information architecture
  • add 15 reviewable route shells behind an explicit draft boundary
  • add route, link, navigation, mobile, keyboard, and WCAG smoke gates
  • document PR1/PR2 verification evidence in the active increment

Verification

  • corepack pnpm --filter @orgmemory/docs check
  • corepack pnpm --filter @orgmemory/docs test:e2e (8 passed)
  • corepack pnpm --filter @orgmemory/docs build
  • python scripts/check_docs.py
  • actionlint .github/workflows/ci.yml
  • docker buildx build --check --file apps/docs/Dockerfile .
  • full Docker build and runtime smoke: /, /docs 200; draft /docs/overview 404; healthy as nextjs

Publication 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

    • Added new documentation sections covering overview, deployment, administration, developer integrations, architecture, security, and evaluation.
    • Added draft-content navigation, editorial preview indicators, review dates, diagrams, API examples, verification panels, and capability grids.
    • Updated the documentation homepage with clearer governance flows and audience guidance.
  • Bug Fixes

    • Improved documentation route and link validation.
  • Tests

    • Added end-to-end navigation, responsive layout, keyboard accessibility, and automated accessibility coverage.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The 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.

Changes

Documentation platform

Layer / File(s) Summary
Draft documentation structure and content
apps/docs/content/docs/**, apps/docs/public-content.manifest.json
Adds Overview, Deployment, Admins, Developers, and Architecture & Security sections with draft pages, metadata, source references, diagrams, and verification content.
MDX patterns and document rendering
apps/docs/src/components/**, apps/docs/src/app/docs/**, apps/docs/src/app/global.css
Adds reusable MDX presentation components, registers them with the MDX runtime, and renders draft badges, review dates, navigation controls, and updated styles.
Draft preview navigation and landing experience
apps/docs/src/lib/**, apps/docs/src/app/(home)/**, apps/docs/src/app/docs/layout.tsx
Uses DOCS_INCLUDE_DRAFTS to control document visibility, navigation tabs, sidebar behavior, and home-page destinations and content.
Route, link, and browser validation
apps/docs/scripts/**, apps/docs/playwright.config.ts, apps/docs/test/e2e/**, apps/docs/package.json, .github/workflows/ci.yml
Adds route-boundary and link validation, Playwright desktop/mobile configuration, navigation and accessibility tests, scripts and dependencies, and CI execution of the E2E suite.

Estimated code review effort: 3 (Moderate) | ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately reflects the main change: establishing a public documentation information architecture.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/public-docs-ia

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kl3inIT
kl3inIT merged commit 106036d into main Jul 28, 2026
13 of 14 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between d7ca979 and f0b5077.

⛔ Files ignored due to path filters (3)
  • docs/increments/active/2026-07-28-public-docs-portal/plan.md is excluded by !docs/**
  • docs/increments/active/2026-07-28-public-docs-portal/verification.md is excluded by !docs/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !**/pnpm-lock.yaml
📒 Files selected for processing (37)
  • .github/workflows/ci.yml
  • apps/docs/content/docs/admins/identity-permissions.mdx
  • apps/docs/content/docs/admins/meta.json
  • apps/docs/content/docs/admins/sources-connections.mdx
  • apps/docs/content/docs/architecture-security/authorization.mdx
  • apps/docs/content/docs/architecture-security/evaluation/coverage.mdx
  • apps/docs/content/docs/architecture-security/evaluation/limitations.mdx
  • apps/docs/content/docs/architecture-security/evaluation/meta.json
  • apps/docs/content/docs/architecture-security/evaluation/traceability.mdx
  • apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx
  • apps/docs/content/docs/architecture-security/meta.json
  • apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx
  • apps/docs/content/docs/architecture-security/system-description.mdx
  • apps/docs/content/docs/deployment/meta.json
  • apps/docs/content/docs/deployment/self-hosting.mdx
  • apps/docs/content/docs/developers/assistant-mcp.mdx
  • apps/docs/content/docs/developers/meta.json
  • apps/docs/content/docs/meta.json
  • apps/docs/content/docs/overview/asset-lifecycle.mdx
  • apps/docs/content/docs/overview/core-concepts.mdx
  • apps/docs/content/docs/overview/index.mdx
  • apps/docs/content/docs/overview/meta.json
  • apps/docs/content/docs/overview/quickstart.mdx
  • apps/docs/package.json
  • apps/docs/playwright.config.ts
  • apps/docs/public-content.manifest.json
  • apps/docs/scripts/check-docs.mjs
  • apps/docs/scripts/check-links.ts
  • apps/docs/src/app/(home)/page.tsx
  • apps/docs/src/app/docs/[[...slug]]/page.tsx
  • apps/docs/src/app/docs/layout.tsx
  • apps/docs/src/app/global.css
  • apps/docs/src/components/docs-patterns.tsx
  • apps/docs/src/components/mdx.tsx
  • apps/docs/src/lib/layout.shared.tsx
  • apps/docs/src/lib/source.ts
  • apps/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 of ARCHITECTURE.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.
Read docs/guidelines/agent-safety.md before retrieval, AI, MCP, permission, upload, graph, or export work. Never commit secrets or customer data.

Files:

  • apps/docs/content/docs/architecture-security/evaluation/meta.json
  • apps/docs/content/docs/developers/meta.json
  • apps/docs/content/docs/architecture-security/meta.json
  • apps/docs/content/docs/overview/index.mdx
  • apps/docs/content/docs/architecture-security/system-description.mdx
  • apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx
  • apps/docs/content/docs/deployment/meta.json
  • apps/docs/content/docs/overview/asset-lifecycle.mdx
  • apps/docs/public-content.manifest.json
  • apps/docs/content/docs/deployment/self-hosting.mdx
  • apps/docs/content/docs/admins/meta.json
  • apps/docs/content/docs/admins/identity-permissions.mdx
  • apps/docs/src/lib/layout.shared.tsx
  • apps/docs/content/docs/meta.json
  • apps/docs/content/docs/overview/quickstart.mdx
  • apps/docs/content/docs/architecture-security/authorization.mdx
  • apps/docs/src/lib/source.ts
  • apps/docs/content/docs/overview/meta.json
  • apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx
  • apps/docs/scripts/check-links.ts
  • apps/docs/content/docs/developers/assistant-mcp.mdx
  • apps/docs/src/app/docs/layout.tsx
  • apps/docs/src/components/docs-patterns.tsx
  • apps/docs/src/app/(home)/page.tsx
  • apps/docs/test/e2e/navigation.spec.ts
  • apps/docs/content/docs/architecture-security/evaluation/coverage.mdx
  • apps/docs/src/app/global.css
  • apps/docs/content/docs/architecture-security/evaluation/limitations.mdx
  • apps/docs/playwright.config.ts
  • apps/docs/package.json
  • apps/docs/content/docs/admins/sources-connections.mdx
  • apps/docs/src/app/docs/[[...slug]]/page.tsx
  • apps/docs/content/docs/overview/core-concepts.mdx
  • apps/docs/content/docs/architecture-security/evaluation/traceability.mdx
  • apps/docs/src/components/mdx.tsx
  • apps/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 in apps/docs/content/docs; internal engineering documents are source evidence and must not be used as publication input.
Every documentation page must be listed in public-content.manifest.json and include the required typed frontmatter.
sourceRefs is build-time traceability metadata and must never be rendered as user-facing content.
Draft documentation must remain excluded unless DOCS_INCLUDE_DRAFTS=true is set for a local or controlled preview.

Files:

  • apps/docs/content/docs/overview/index.mdx
  • apps/docs/content/docs/architecture-security/system-description.mdx
  • apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx
  • apps/docs/content/docs/overview/asset-lifecycle.mdx
  • apps/docs/content/docs/deployment/self-hosting.mdx
  • apps/docs/content/docs/admins/identity-permissions.mdx
  • apps/docs/content/docs/overview/quickstart.mdx
  • apps/docs/content/docs/architecture-security/authorization.mdx
  • apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx
  • apps/docs/content/docs/developers/assistant-mcp.mdx
  • apps/docs/content/docs/architecture-security/evaluation/coverage.mdx
  • apps/docs/content/docs/architecture-security/evaluation/limitations.mdx
  • apps/docs/content/docs/admins/sources-connections.mdx
  • apps/docs/content/docs/overview/core-concepts.mdx
  • apps/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.tsx
  • apps/docs/src/lib/source.ts
  • apps/docs/scripts/check-links.ts
  • apps/docs/src/app/docs/layout.tsx
  • apps/docs/src/components/docs-patterns.tsx
  • apps/docs/src/app/(home)/page.tsx
  • apps/docs/test/e2e/navigation.spec.ts
  • apps/docs/playwright.config.ts
  • apps/docs/src/app/docs/[[...slug]]/page.tsx
  • apps/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.tsx
  • apps/docs/src/lib/source.ts
  • apps/docs/scripts/check-links.ts
  • apps/docs/src/app/docs/layout.tsx
  • apps/docs/src/components/docs-patterns.tsx
  • apps/docs/src/app/(home)/page.tsx
  • apps/docs/test/e2e/navigation.spec.ts
  • apps/docs/playwright.config.ts
  • apps/docs/src/app/docs/[[...slug]]/page.tsx
  • apps/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 Quality

Provide the required preview-navigation verification evidence.

Record lint, typecheck, tests, production build, and desktop/mobile browser checks for both DOCS_INCLUDE_DRAFTS=false and DOCS_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 & Integration

No change needed. lastReviewed is required in the MDX source schema and validation script, so this date construction should only receive valid YYYY-MM-DD frontmatter 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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: replace 2026-07-29 with the actual review date.
  • apps/docs/content/docs/admins/identity-permissions.mdx#L12-L12: replace 2026-07-29 with 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)"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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: set lastReviewed to the actual review date.
  • apps/docs/content/docs/overview/core-concepts.mdx#L13-L13: set lastReviewed to the actual review date.
  • apps/docs/content/docs/deployment/self-hosting.mdx#L13-L13: set lastReviewed to the actual review date.
  • apps/docs/content/docs/developers/assistant-mcp.mdx#L12-L12: set lastReviewed to the actual review date.
  • apps/docs/content/docs/admins/sources-connections.mdx#L12-L12: set lastReviewed to the actual review date.
  • apps/docs/content/docs/architecture-security/ingestion-lifecycle.mdx#L13-L13: set lastReviewed to 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-L13
  • apps/docs/content/docs/deployment/self-hosting.mdx#L13-L13
  • apps/docs/content/docs/developers/assistant-mcp.mdx#L12-L12
  • apps/docs/content/docs/admins/sources-connections.mdx#L12-L12
  • apps/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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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-L13
  • apps/docs/content/docs/architecture-security/authorization.mdx#L13-L13
  • apps/docs/content/docs/architecture-security/secure-retrieval-graphrag.mdx#L12-L12
  • apps/docs/content/docs/architecture-security/evaluation/coverage.mdx#L12-L12
  • apps/docs/content/docs/architecture-security/evaluation/traceability.mdx#L13-L13
  • apps/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.

Comment on lines +243 to +251
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();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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.

Suggested change
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.

Comment on lines +44 to +51
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');
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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 -100

Repository: 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
done

Repository: 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.

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