From f5dec37738b0fda1faa205d4527861035526516f Mon Sep 17 00:00:00 2001 From: kl3inIT Date: Thu, 30 Jul 2026 10:49:33 +0700 Subject: [PATCH 1/2] docs: add bilingual product guides foundation --- apps/docs/AUTHORING.md | 169 ++++++++------- .../docs/getting-started/core-concepts.mdx | 197 ++++++++++++------ .../docs/getting-started/core-concepts.vi.mdx | 167 +++++++++++++++ .../first-governed-journey.mdx | 142 +++++++++++++ .../first-governed-journey.vi.mdx | 148 +++++++++++++ .../content/docs/getting-started/index.mdx | 88 ++++---- .../content/docs/getting-started/index.vi.mdx | 103 +++++++++ .../content/docs/getting-started/meta.json | 6 +- .../content/docs/getting-started/meta.vi.json | 6 +- .../docs/getting-started/quickstart.mdx | 100 --------- .../deployment-operations/self-hosting.mdx | 6 +- apps/docs/content/docs/meta.json | 1 + apps/docs/content/docs/meta.vi.json | 1 + .../content/docs/product-guides/meta.json | 10 + .../content/docs/product-guides/meta.vi.json | 10 + .../work-with-governed-assets.mdx | 136 ++++++++++++ .../work-with-governed-assets.vi.mdx | 138 ++++++++++++ apps/docs/next.config.mjs | 13 +- apps/docs/package.json | 2 +- apps/docs/public-content.manifest.json | 48 ++++- .../images/getting-started/asset-catalog.png | Bin 0 -> 81423 bytes .../capability-pack-journey.png | Bin 0 -> 59185 bytes .../asset-release-provenance.png | Bin 0 -> 80528 bytes apps/docs/scripts/check-docs.mjs | 8 +- .../src/app/[lang]/docs/[[...slug]]/page.tsx | 7 - apps/docs/src/app/global.css | 10 +- apps/docs/src/components/docs-patterns.tsx | 66 +++++- apps/docs/src/components/mdx.tsx | 2 + apps/docs/src/lib/docs-category.ts | 1 + apps/docs/src/lib/source.ts | 9 - apps/docs/test/e2e/navigation.spec.ts | 94 +++++++-- 31 files changed, 1347 insertions(+), 341 deletions(-) create mode 100644 apps/docs/content/docs/getting-started/core-concepts.vi.mdx create mode 100644 apps/docs/content/docs/getting-started/first-governed-journey.mdx create mode 100644 apps/docs/content/docs/getting-started/first-governed-journey.vi.mdx create mode 100644 apps/docs/content/docs/getting-started/index.vi.mdx delete mode 100644 apps/docs/content/docs/getting-started/quickstart.mdx create mode 100644 apps/docs/content/docs/product-guides/meta.json create mode 100644 apps/docs/content/docs/product-guides/meta.vi.json create mode 100644 apps/docs/content/docs/product-guides/work-with-governed-assets.mdx create mode 100644 apps/docs/content/docs/product-guides/work-with-governed-assets.vi.mdx create mode 100644 apps/docs/public/images/getting-started/asset-catalog.png create mode 100644 apps/docs/public/images/getting-started/capability-pack-journey.png create mode 100644 apps/docs/public/images/product-guides/asset-release-provenance.png diff --git a/apps/docs/AUTHORING.md b/apps/docs/AUTHORING.md index 72aeedd5..7fed322f 100644 --- a/apps/docs/AUTHORING.md +++ b/apps/docs/AUTHORING.md @@ -12,8 +12,9 @@ understanding. - Do not bulk-rewrite, bulk-translate, or create placeholder pages. - Before prose, inspect the current repository and runtime evidence and agree on the reader question and outline. -- English establishes the approved meaning. Vietnamese follows after English - review and preserves that meaning naturally. +- Author English and Vietnamese together in the same increment. Neither + language is a prerequisite or approval gate for the other; both preserve the + same verified product meaning naturally. - The owner context, outline, and teach-back checkpoints require owner participation. Branch, CI, merge, build, deploy, and live verification may continue autonomously after approval. @@ -44,42 +45,42 @@ corepack pnpm docs:dev Remove-Item Env:DOCS_INCLUDE_DRAFTS ``` -The owner should use this fast local loop for the context, outline, English, -teach-back, and Vietnamese checkpoints. Production publication still requires -the full repository gates and immutable release loop. +The owner should use this fast local loop to review the bilingual page and its +visuals. Production publication still requires the full repository gates and +immutable release loop. ## Target Navigation ```text Getting Started -├── What is OrgMemory? -├── Quickstart +├── What is Organizational AI Memory? ├── Core concepts -└── Terminology - -Guides -├── Using OrgMemory -│ ├── Browse governed assets -│ ├── Search organizational knowledge -│ ├── Ask with Assistant -│ ├── Verify citations -│ └── Explore the knowledge graph -├── Administration -│ ├── Connect and synchronize a source -│ ├── Manage users and identities -│ ├── Configure roles and permissions -│ └── Audit effective access -├── Deployment & Operations -│ ├── Self-host OrgMemory -│ ├── Configure secrets and environment -│ ├── Monitor system health -│ ├── Back up and restore -│ ├── Upgrade and roll back -│ └── Troubleshooting -└── Integrations - ├── Connect an MCP client - ├── Integrate the Assistant - └── Ingest documents through the API +└── Your first governed journey + +Product Guides +├── Work with governed Assets +├── Search organizational knowledge +├── Ask with Assistant and verify citations +└── Explore the knowledge graph + +Administration +├── Connect and synchronize a source +├── Manage users and identities +├── Configure roles and permissions +└── Audit effective access + +Deployment & Operations +├── Self-host Organizational AI Memory +├── Configure secrets and environment +├── Monitor system health +├── Back up and restore +├── Upgrade and roll back +└── Troubleshooting + +Developers & Integrations +├── Connect an MCP client +├── Integrate the Assistant +└── Ingest documents through the API Architecture & Security ├── System context @@ -105,61 +106,85 @@ Reference ``` Changelog is a global navigation link. Deployment & Operations becomes a root -only after reviewed content and reader demand justify promotion. +only after reviewed content and reader demand justify promotion. During the +incremental migration, the existing **Guides** root keeps reviewed +Administration, Deployment, and Integration pages at their stable URLs. +Categories move only when their first replacement page is co-authored; no empty +root or placeholder page is published. ## Authoring Queue -Navigation order serves readers; authoring order stabilizes the system model -before task procedures depend on it. +Navigation order serves readers. Authoring now follows the same outside-in +journey: product tasks first, then administration and operations, with +architecture available for readers who need the underlying model. | Order | Page | Target location | Current evidence | State | | ---: | --- | --- | --- | --- | -| 1 | What is OrgMemory? | Getting Started | `getting-started/index.mdx` | next | +| 1 | What is Organizational AI Memory? | Getting Started | `getting-started/index.mdx` | owner review | | 2 | Core concepts | Getting Started | `getting-started/core-concepts.mdx` | review | -| 3 | System context | Architecture & Security | `architecture-security/system-description.mdx` | review | -| 4 | Domain and data model | Architecture & Security | domain specs and schema | missing | -| 5 | Governed Asset lifecycle | Architecture & Security | `architecture-security/asset-lifecycle.mdx` | review | -| 6 | Quickstart | Getting Started | `getting-started/quickstart.mdx` | review | -| 7 | Ingestion and indexing | Architecture & Security | `architecture-security/ingestion-lifecycle.mdx` | review | -| 8 | Identity and authorization | Architecture & Security | `architecture-security/authorization.mdx` | review | -| 9 | Secure retrieval and GraphRAG | Architecture & Security | `architecture-security/secure-retrieval-graphrag.mdx` | review | -| 10 | Runtime components | Architecture & Security | system description and `ARCHITECTURE.md` | missing | -| 11 | Trust boundaries and threat model | Architecture & Security | security decisions/specs | missing | -| 12 | Browse governed assets | Guides / Using OrgMemory | product behavior and tests | missing | -| 13 | Search organizational knowledge | Guides / Using OrgMemory | search contracts and tests | missing | -| 14 | Ask with Assistant and verify citations | Guides / Using OrgMemory | Assistant/MCP specs and tests | missing | -| 15 | Explore the knowledge graph | Guides / Using OrgMemory | graph viewer behavior and tests | missing | -| 16 | Connect and synchronize a source | Guides / Administration | `guides/administration/sources-connections.mdx` | review | -| 17 | Manage identities and permissions | Guides / Administration | `guides/administration/identity-permissions.mdx` | split and review | -| 18 | Audit effective access | Guides / Administration | permission evidence specs/tests | missing | -| 19 | Self-host OrgMemory | Guides / Deployment & Operations | `guides/deployment-operations/self-hosting.mdx` | review | -| 20 | Configuration and secrets | Guides / Deployment & Operations | environment contracts/runbooks | missing | -| 21 | Observability and health | Guides / Deployment & Operations | deployment and telemetry evidence | missing | -| 22 | Backup, restore, upgrade, and rollback | Guides / Deployment & Operations | runbooks and release workflows | split later | -| 23 | Connect an MCP client | Guides / Integrations | `guides/integrations/assistant-mcp.mdx` | split and review | -| 24 | Ingest through the API | Guides / Integrations | ingestion API contract | missing | -| 25 | Terminology | Getting Started | approved concepts | write after core model | -| 26 | API overview, auth, and errors | Reference | authored API overview/auth pages | review | -| 27 | API endpoint groups | Reference | generated OpenAPI pages | generated | -| 28 | Configuration reference | Reference | committed environment contracts | missing | -| 29 | Connector capability matrix | Reference | connector specs/tests | missing | -| 30 | Roles and permissions matrix | Reference | OpenFGA model and domain specs | missing | -| 31 | MCP tools and resources | Reference | MCP contracts/tests | missing | -| 32 | Known limitations | Reference | current evidence only | rewrite from evaluation | +| 3 | Your first governed journey | Getting Started | `getting-started/first-governed-journey.mdx` | owner review | +| 4 | Work with governed Assets | Product Guides | `product-guides/work-with-governed-assets.mdx` | owner review | +| 5 | Search organizational knowledge | Product Guides | search contracts, UI, and tests | missing | +| 6 | Ask with Assistant and verify citations | Product Guides | Assistant and citation contracts/tests | missing | +| 7 | Explore the knowledge graph | Product Guides | graph viewer behavior and tests | missing | +| 8 | Connect and synchronize a source | Administration | `guides/administration/sources-connections.mdx` | review and migrate | +| 9 | Manage identities and permissions | Administration | `guides/administration/identity-permissions.mdx` | split, review, and migrate | +| 10 | Audit effective access | Administration | permission evidence specs/tests | missing | +| 11 | Self-host Organizational AI Memory | Deployment & Operations | `guides/deployment-operations/self-hosting.mdx` | review and migrate | +| 12 | Configuration and secrets | Deployment & Operations | environment contracts/runbooks | missing | +| 13 | Observability and health | Deployment & Operations | deployment and telemetry evidence | missing | +| 14 | Backup, restore, upgrade, and rollback | Deployment & Operations | runbooks and release workflows | split later | +| 15 | Connect an MCP client | Developers & Integrations | `guides/integrations/assistant-mcp.mdx` | split, review, and migrate | +| 16 | Ingest through the API | Developers & Integrations | ingestion API contract | missing | +| 17 | System context | Architecture & Security | `architecture-security/system-description.mdx` | review | +| 18 | Domain and data model | Architecture & Security | domain specs and schema | missing | +| 19 | Governed Asset lifecycle | Architecture & Security | `architecture-security/asset-lifecycle.mdx` | review | +| 20 | Ingestion and indexing | Architecture & Security | `architecture-security/ingestion-lifecycle.mdx` | review | +| 21 | Identity and authorization | Architecture & Security | `architecture-security/authorization.mdx` | review | +| 22 | Secure retrieval and GraphRAG | Architecture & Security | `architecture-security/secure-retrieval-graphrag.mdx` | review | +| 23 | Runtime components | Architecture & Security | system description and `ARCHITECTURE.md` | missing | +| 24 | Trust boundaries and threat model | Architecture & Security | security decisions/specs | missing | +| 25 | API overview, auth, and errors | Reference | authored API overview/auth pages | review | +| 26 | API endpoint groups | Reference | generated OpenAPI pages | generated | +| 27 | Configuration reference | Reference | committed environment contracts | missing | +| 28 | Connector capability matrix | Reference | connector specs/tests | missing | +| 29 | Roles and permissions matrix | Reference | OpenFGA model and domain specs | missing | +| 30 | MCP tools and resources | Reference | MCP contracts/tests | missing | +| 31 | Known limitations | Reference | current evidence only | rewrite from evaluation | Functional coverage and requirement traceability leave public navigation through a dedicated later increment. Their canonical evidence remains private in domain tests/specs and university deliverables. +## Visual Selection + +Choose the smallest visual form that still explains the relationship: + +1. Use a responsive MDX/DOM component for a small conceptual map with up to + four nodes. Keep definitions as searchable text below the visual. +2. Use Fumadocs `Steps` for a procedure the reader performs in order. +3. Use Mermaid for source-controlled system flows, domain relationships, + lifecycles, trust boundaries, and deployment topology that will change with + the architecture. +4. Use a product screenshot only when the page teaches a real interface state + or action. Capture the current UI with synthetic documentation data. +5. Use a generated illustration only as explanatory or decorative context. + Never make generated raster text the sole source of a requirement, + permission rule, identifier, or architectural fact. + +Every informative visual needs a useful accessible label or caption, must work +in light and dark themes, and must remain legible at the documentation content +width. Add a Mermaid renderer only when the first reviewed Mermaid diagram is +ready; Fumadocs does not bundle one by default. + ## One-Page Checklist 1. Collect code/spec/test/runtime evidence. 2. Ask the owner focused architecture and audience questions. 3. Agree on an outline and exclusions. -4. Draft and review English. +4. Draft and review English and Vietnamese together. 5. Complete owner teach-back. -6. Test realistic reader questions and ambiguity. -7. Draft and review Vietnamese. -8. Run docs checks, browser/accessibility tests, and publication scans. -9. PR, merge, immutable build, deploy, and live verification. -10. Mark exactly one queue item complete and record the next item. +6. Test realistic reader questions and ambiguity in both languages. +7. Run docs checks, browser/accessibility tests, and publication scans. +8. PR, merge, immutable build, deploy, and live verification. +9. Mark exactly one queue item complete and record the next item. diff --git a/apps/docs/content/docs/getting-started/core-concepts.mdx b/apps/docs/content/docs/getting-started/core-concepts.mdx index 3f84382e..eeaa394a 100644 --- a/apps/docs/content/docs/getting-started/core-concepts.mdx +++ b/apps/docs/content/docs/getting-started/core-concepts.mdx @@ -1,101 +1,166 @@ --- title: Core concepts -description: Learn the vocabulary that connects governed Assets, sources, permissions, retrieval, and delivery. +description: Understand how Organizational AI Memory organizes knowledge, reusable Assets, exact releases, and authorized delivery. audience: - adopter - user + - administrator - developer + - evaluator status: public sourceRefs: - - docs/vision.md - - ARCHITECTURE.md + - docs/specs/domains/identity-and-organization.md + - docs/specs/domains/knowledge-ingestion.md - docs/specs/domains/asset-registry.md + - docs/specs/domains/secure-retrieval.md + - docs/specs/domains/assistant-and-mcp.md + - apps/web/src/features/assets/asset-format.ts lastReviewed: 2026-07-29 --- -Organizational AI Memory separates durable evidence from the derived structures that make it -useful. These concepts form the vocabulary used across the product and this -documentation. +Organizational AI Memory connects two paths: evidence becomes authorized +organizational Knowledge, and repeatable work becomes a governed Asset that +people and agents can reuse. The paths meet when an Asset uses or pins exact +Knowledge. - -## Evidence and identity - -**Source Object** is the stable record for something observed in a source -system. **Source Revision** is immutable content for one source version. -**Evidence Blob** records the original bytes in object storage. Query strings, -fragments, and embedded credentials are removed from persisted source URIs. - -An external user becomes an Organizational AI Memory actor only through an explicit OIDC -`(issuer, subject)` binding. Source-native users and groups have their own typed, -stable identifiers and reach the actor model only through verified mappings. -Display names and email addresses are observations, not authorization keys. - -## Permissions +### Organization and actor -Organizational AI Memory intersects multiple controls: +An **organization** is the tenant boundary for people, Knowledge, Assets, +configuration, and audit history. An **actor** is the authenticated internal +identity Organizational AI Memory uses for every authorization decision. The +server derives the actor from the signed-in identity; a client cannot choose a +different user, organization, or department. -- OpenFGA relationships govern organization, Knowledge Space, Knowledge Asset, - and registry Asset actions; -- immutable source ACL snapshots preserve what the external source allowed; -- the current ACL head applies grants and revocations without rewriting content; -- classification policy adds role and department constraints; -- the canonical ledger rechecks lifecycle, revision, and projection identity. +### Knowledge Space -Passing one control never bypasses another. A product administrator is not -automatically an Executive and cannot read source content solely because they -manage the deployment. +A **Knowledge Space** is one governed body of organizational knowledge. It +records who the knowledge serves, who may contribute, and who administers the +space. Access to a Space never overrides the permissions captured from Slack, +Google Drive, GitHub, an upload, or another source. -## Canonical data and projections +### Source and evidence -PostgreSQL stores canonical identities, revisions, ACL evidence, publication -state, and audit records. MinIO stores original evidence bytes. Full-text, -pgvector, graph, OpenSearch, and Neo4j structures are rebuildable projections: -they accelerate retrieval but do not become permission authorities. +A **Source** is a document or object observed in an external system. Its content +may change over time, so Organizational AI Memory preserves immutable source +revisions and the access evidence captured with them. Original evidence remains +available through authenticated citations rather than public storage links. -## Two kinds of Asset +### Knowledge Asset -The name is intentionally shared but the lifecycles differ: +A **Knowledge Asset** gives that evidence a stable identity while its versions +remain immutable. New content can become the current version without rewriting +the version that grounded an earlier result. -| Concept | Purpose | Ownership | -| --- | --- | --- | -| Knowledge Asset | Searchable organizational knowledge derived from source evidence | Knowledge ledger | -| Registry Asset | A reviewed reusable capability delivered as an exact release | Asset Registry | +## From repeatable work to reusable Assets -Capability Packs may pin both exact registry releases and exact Knowledge Asset -versions. A denied component becomes an opaque access gap; its title, type, and -count are not disclosed. +The product's **Assets** catalog contains four kinds of reusable capability. -## Retrieval and delivery - -The Assistant, REST search, graph explorer, and MCP search converge on the same -permission-aware retrieval service. Registry Asset delivery separately resolves -the caller, required OAuth scope, exact release, live `CAN_USE` authorization, -and component-level access. + -The model never authorizes a fact. It receives only the evidence closure already -approved for the current request, and citations point back to authenticated API -routes that recheck current access when opened. +The word **Asset** in the product UI refers to these four reusable types. +**Knowledge Asset** is the technical name for governed searchable Knowledge. +They are connected but do not share the same lifecycle: Knowledge follows +source evidence, while reusable Assets follow authoring and review. + +## Drafts, reviews, and exact releases + + + + ### Draft + + An authorized author changes the working copy. + + + ### Immutable revision + + Submission freezes the title, payload, change note, and digest into one + review target. + + + ### Review + + A reviewer records a decision against that exact revision rather than a + moving draft. + + + ### Exact release + + Publication creates an immutable version that authorized consumers can + address exactly. + + + +A release can be **available**, **deprecated**, or **withdrawn**. Deprecation +warns that a replacement may exist. Withdrawal prevents new consumption but +does not rewrite historical evidence, reviews, or usage records. + +## Permissions, provenance, and citations + +Three rules make reuse trustworthy: + +1. **Permissions are checked at use time.** Seeing one Space, Asset, or catalog + entry never grants access to every connected component. +2. **Provenance identifies the exact version.** Releases and Knowledge versions + carry stable identifiers and digests so later changes cannot silently alter + what was used. +3. **Citations recheck current access.** A citation opens through the + authenticated API, which verifies permission and evidence integrity again + before returning source content. + +The model does not decide authorization. Assistant, REST, graph, CLI, and MCP +receive only the Knowledge or Asset release already authorized for the current +actor and request. + +## Continue + +- Follow [your first governed journey](/docs/getting-started/first-governed-journey). +- See the deeper [system description](/docs/architecture-security/system-description). +- Learn how administrators manage + [identity and permissions](/docs/guides/administration/identity-permissions). diff --git a/apps/docs/content/docs/getting-started/core-concepts.vi.mdx b/apps/docs/content/docs/getting-started/core-concepts.vi.mdx new file mode 100644 index 00000000..a1fb65d2 --- /dev/null +++ b/apps/docs/content/docs/getting-started/core-concepts.vi.mdx @@ -0,0 +1,167 @@ +--- +title: Các khái niệm cốt lõi +description: Hiểu cách Organizational AI Memory tổ chức tri thức, Asset có thể tái sử dụng, bản phát hành chính xác và quá trình phân phối có kiểm soát quyền truy cập. +audience: + - adopter + - user + - administrator + - developer + - evaluator +status: public +sourceRefs: + - docs/specs/domains/identity-and-organization.md + - docs/specs/domains/knowledge-ingestion.md + - docs/specs/domains/asset-registry.md + - docs/specs/domains/secure-retrieval.md + - docs/specs/domains/assistant-and-mcp.md + - apps/web/src/features/assets/asset-format.ts +lastReviewed: 2026-07-30 +--- + +Organizational AI Memory kết nối hai hướng: bằng chứng trở thành tri thức tổ chức +được cấp quyền, còn công việc có thể lặp lại trở thành Asset được quản trị để con +người và tác nhân tái sử dụng. Hai hướng gặp nhau khi một Asset sử dụng hoặc ghim +đúng phiên bản Knowledge. + +## Từ nguồn đến tri thức được cấp quyền + + + +### Tổ chức và chủ thể + +**Tổ chức** là ranh giới tenant cho con người, Knowledge, Asset, cấu hình và lịch +sử audit. **Chủ thể** là danh tính nội bộ đã được xác thực mà Organizational AI +Memory dùng cho mọi quyết định cấp quyền. Máy chủ suy ra chủ thể từ danh tính đã +đăng nhập; client không thể tự chọn một người dùng, tổ chức hoặc phòng ban khác. + +### Không gian tri thức + +**Không gian tri thức (Knowledge Space)** là một phạm vi tri thức tổ chức được +quản trị. Nó ghi nhận tri thức phục vụ ai, ai có thể đóng góp và ai quản trị +Space. Quyền truy cập Space không bao giờ ghi đè các quyền được ghi nhận từ +Slack, Google Drive, GitHub, nội dung tải lên hoặc nguồn khác. + +### Nguồn và bằng chứng + +**Nguồn** là tài liệu hoặc đối tượng được quan sát trong một hệ thống bên ngoài. +Nội dung có thể thay đổi theo thời gian, vì vậy Organizational AI Memory bảo toàn +các revision nguồn bất biến cùng bằng chứng quyền truy cập được ghi nhận với +chúng. Bằng chứng gốc được mở qua citation đã xác thực thay vì liên kết lưu trữ +công khai. + +### Tài sản tri thức + +**Tài sản tri thức (Knowledge Asset)** cung cấp một danh tính ổn định cho bằng +chứng, trong khi từng phiên bản vẫn bất biến. Nội dung mới có thể trở thành phiên +bản hiện tại mà không viết lại phiên bản từng làm căn cứ cho một kết quả trước +đó. + +## Từ công việc có thể lặp lại đến Asset có thể tái sử dụng + +Catalog **Assets** của sản phẩm chứa bốn loại năng lực có thể tái sử dụng. + + + +Từ **Asset** trong giao diện sản phẩm chỉ bốn loại có thể tái sử dụng này. +**Knowledge Asset** là tên kỹ thuật của Knowledge có thể tìm kiếm và được quản +trị. Chúng có liên quan nhưng không dùng chung vòng đời: Knowledge đi theo bằng +chứng nguồn, còn Asset có thể tái sử dụng đi theo quá trình biên soạn và review. + +## Draft, review và bản phát hành chính xác + + + + ### Draft + + Tác giả được cấp quyền chỉnh sửa bản làm việc. + + + ### Revision bất biến + + Khi submit, tiêu đề, payload, change note và digest được đóng băng thành một + đối tượng review duy nhất. + + + ### Review + + Reviewer ghi quyết định trên đúng revision đó thay vì trên một draft vẫn + đang thay đổi. + + + ### Bản phát hành chính xác + + Publish tạo ra một phiên bản bất biến mà người dùng được cấp quyền có thể + truy cập chính xác. + + + +Một bản phát hành có thể ở trạng thái **available**, **deprecated** hoặc +**withdrawn**. Deprecation cảnh báo rằng có thể đã có bản thay thế. Withdrawal +ngăn việc sử dụng mới nhưng không viết lại bằng chứng, review hoặc lịch sử sử +dụng. + +## Quyền truy cập, nguồn gốc và citation + +Ba quy tắc làm cho việc tái sử dụng đáng tin cậy: + +1. **Quyền được kiểm tra tại thời điểm sử dụng.** Nhìn thấy một Space, Asset hoặc + mục catalog không cấp quyền truy cập cho mọi thành phần được kết nối. +2. **Nguồn gốc xác định đúng phiên bản.** Bản phát hành và phiên bản Knowledge + mang định danh cùng digest ổn định để thay đổi sau này không thể âm thầm làm + khác nội dung đã được sử dụng. +3. **Citation kiểm tra lại quyền hiện tại.** Khi mở citation, API xác minh lại + quyền truy cập và tính toàn vẹn của bằng chứng trước khi trả về nội dung nguồn. + +Mô hình không quyết định quyền truy cập. Assistant, REST, graph, CLI và MCP chỉ +nhận Knowledge hoặc bản phát hành Asset đã được cấp quyền cho chủ thể và request +hiện tại. + +## Tiếp tục + +- Thực hiện [hành trình được quản trị đầu tiên](/vi/docs/getting-started/first-governed-journey). +- Xem [mô tả hệ thống](/vi/docs/architecture-security/system-description) chuyên sâu hơn. +- Tìm hiểu cách administrator quản lý + [danh tính và quyền truy cập](/vi/docs/guides/administration/identity-permissions). diff --git a/apps/docs/content/docs/getting-started/first-governed-journey.mdx b/apps/docs/content/docs/getting-started/first-governed-journey.mdx new file mode 100644 index 00000000..e174327b --- /dev/null +++ b/apps/docs/content/docs/getting-started/first-governed-journey.mdx @@ -0,0 +1,142 @@ +--- +title: Your first governed journey +description: Discover and use an exact released Asset with authorized Knowledge, provenance, progress, citations, and feedback. +audience: + - adopter + - user + - evaluator +status: public +sourceRefs: + - docs/specs/domains/asset-registry.md + - docs/specs/domains/assistant-and-mcp.md + - docs/specs/domains/secure-retrieval.md + - apps/web/src/features/assets/components/asset-catalog-page.tsx + - apps/web/src/features/assets/components/asset-detail-page.tsx + - apps/web/src/features/assets/components/pack-journey-page.tsx + - apps/web/test/e2e/asset-registry-golden-poc.spec.ts +lastReviewed: 2026-07-29 +--- + +This journey begins after an organization administrator has given you access +and at least one Asset has been released. It uses the product as an authorized +consumer; it does not require repository access, local bootstrap, or deployment +commands. + +You will discover an authorized release, verify its provenance, use the action +defined for its Asset type, and finish with evidence and feedback. The numbered +sections below are the journey; no separate setup path is required. + +## 1. Open the Assets catalog + +Open **Assets** from the product navigation. The catalog lists only released, +non-withdrawn Assets that your current identity may use. Search by task, role, +or outcome, filter by Asset type, and choose the exact item you need. + + + +An Asset that does not appear may be unavailable, withdrawn, or outside your +current permission scope. The catalog does not reveal denied Asset names or +metadata. + +## 2. Verify the exact release + +Open the Asset and confirm: + +- the type matches the task you intend to perform; +- the selected version is the release you expect; +- its availability is current rather than deprecated or withdrawn; +- the summary, audience, prerequisites, and expected outcome fit your work; +- **Version and provenance** identifies the release coordinate, date, and + digest. + +The release is immutable. Choosing a version does not switch to a mutable draft, +and a newer release never rewrites an existing Capability Pack pin. + +## 3. Use the Asset + +The available action depends on its type. + + + +State-changing actions and external model calls require explicit confirmation. +The Assistant cannot approve, publish, withdraw, change permissions, or execute +arbitrary tools on your behalf. + +## 4. Complete a Capability Pack + +A Capability Pack joins exact Knowledge versions, Prompt templates, Work +instructions, or Skills into one ordered journey. Starting it creates a private +assignment for your actor; it does not modify the Pack release. + + + +Open each reusable Asset component from the journey and mark an item complete +only after performing its required work. Knowledge components remain identified +by their pinned version. If a component is denied, the Pack reports an access +gap without exposing the hidden title, type, or count; ask the Pack owner to +review your access. + +## 5. Verify evidence and send feedback + +When a Prompt run or Assistant answer uses organizational Knowledge, inspect +its citations before relying on the result. Opening a citation asks the API to +recheck your current permission and the original evidence integrity. A result +you could access earlier may correctly become unavailable after a revocation. + +Use the Asset's feedback control to report whether the release was useful, +incorrect, or incomplete. Feedback is stored against the exact release and sent +to its accountable owner; it does not mutate the release you used. + + + +- you used an exact released Asset rather than a draft or mutable alias; +- every Knowledge result and Pack component stayed within your current access; +- any available citation pointed back to authenticated source evidence; +- your progress or feedback was recorded against the correct actor and release. + + + +## Continue + +- Follow the task-focused [governed Assets guide](/docs/product-guides/work-with-governed-assets). +- Learn the [governed Asset lifecycle](/docs/architecture-security/asset-lifecycle). +- Understand [secure retrieval and GraphRAG](/docs/architecture-security/secure-retrieval-graphrag). +- Connect an external AI client through the + [Assistant and MCP guide](/docs/guides/integrations/assistant-mcp). diff --git a/apps/docs/content/docs/getting-started/first-governed-journey.vi.mdx b/apps/docs/content/docs/getting-started/first-governed-journey.vi.mdx new file mode 100644 index 00000000..542fbc77 --- /dev/null +++ b/apps/docs/content/docs/getting-started/first-governed-journey.vi.mdx @@ -0,0 +1,148 @@ +--- +title: Hành trình được quản trị đầu tiên +description: Khám phá và sử dụng một Asset đã phát hành chính xác với Knowledge được cấp quyền, nguồn gốc, tiến độ, citation và feedback. +audience: + - adopter + - user + - evaluator +status: public +sourceRefs: + - docs/specs/domains/asset-registry.md + - docs/specs/domains/assistant-and-mcp.md + - docs/specs/domains/secure-retrieval.md + - apps/web/src/features/assets/components/asset-catalog-page.tsx + - apps/web/src/features/assets/components/asset-detail-page.tsx + - apps/web/src/features/assets/components/pack-journey-page.tsx + - apps/web/test/e2e/asset-registry-golden-poc.spec.ts +lastReviewed: 2026-07-30 +--- + +Hành trình này bắt đầu sau khi administrator của tổ chức cấp quyền cho bạn và có +ít nhất một Asset đã được phát hành. Bạn sử dụng sản phẩm với vai trò người dùng +đã được cấp quyền; không cần truy cập repository, bootstrap local hoặc chạy lệnh +deployment. + +Bạn sẽ khám phá một bản phát hành được cấp quyền, xác minh nguồn gốc, thực hiện +hành động dành cho loại Asset đó, rồi hoàn thành bằng việc kiểm tra bằng chứng và +gửi feedback. Các phần được đánh số dưới đây chính là hành trình; không có một +quy trình setup riêng. + +## 1. Mở catalog Assets + +Mở **Assets** từ thanh điều hướng của sản phẩm. Catalog chỉ liệt kê các Asset đã +phát hành, chưa bị withdrawn và được phép sử dụng bởi danh tính hiện tại của bạn. +Tìm theo công việc, vai trò hoặc kết quả, lọc theo loại Asset rồi chọn đúng nội +dung bạn cần. + + + +Nếu một Asset không xuất hiện, nó có thể đang không khả dụng, đã bị withdrawn +hoặc nằm ngoài phạm vi quyền hiện tại của bạn. Catalog không làm lộ tên hoặc +metadata của Asset bị từ chối. + +## 2. Xác minh đúng bản phát hành + +Mở Asset và xác nhận: + +- loại Asset phù hợp với công việc bạn định thực hiện; +- phiên bản được chọn là bản phát hành bạn mong đợi; +- trạng thái hiện tại là available, không phải deprecated hoặc withdrawn; +- phần tóm tắt, đối tượng sử dụng, điều kiện tiên quyết và kết quả mong đợi phù + hợp với công việc; +- **Version and provenance** xác định release coordinate, ngày phát hành và + digest. + +Bản phát hành là bất biến. Việc chọn một phiên bản không chuyển sang draft có +thể thay đổi, và một bản phát hành mới hơn không bao giờ viết lại pin đang tồn +tại trong Capability Pack. + +## 3. Sử dụng Asset + +Hành động khả dụng phụ thuộc vào loại Asset. + + + +Hành động thay đổi trạng thái và lần gọi mô hình bên ngoài cần được xác nhận rõ +ràng. Assistant không thể thay bạn phê duyệt, publish, withdraw, thay đổi quyền +hoặc thực thi công cụ tùy ý. + +## 4. Hoàn thành một Capability Pack + +Capability Pack kết hợp đúng phiên bản Knowledge, Prompt Template, Work +Instruction hoặc Skill thành một hành trình có thứ tự. Khi bắt đầu, hệ thống tạo +một assignment riêng cho chủ thể của bạn; thao tác này không sửa bản phát hành +của Pack. + + + +Mở từng thành phần Asset có thể tái sử dụng trong hành trình và chỉ đánh dấu hoàn +thành sau khi đã thực hiện công việc bắt buộc. Thành phần Knowledge vẫn được xác +định bằng phiên bản đã ghim. Nếu một thành phần bị từ chối, Pack báo có khoảng +trống quyền truy cập nhưng không làm lộ tiêu đề, loại hoặc số lượng bị ẩn; hãy +yêu cầu chủ sở hữu Pack kiểm tra quyền của bạn. + +## 5. Xác minh bằng chứng và gửi feedback + +Khi một lần chạy Prompt hoặc câu trả lời của Assistant sử dụng Knowledge tổ chức, +hãy kiểm tra citation trước khi dựa vào kết quả. Khi mở citation, API kiểm tra lại +quyền hiện tại và tính toàn vẹn của bằng chứng gốc. Một kết quả bạn từng truy cập +được có thể trở nên không khả dụng một cách chính xác sau khi quyền bị thu hồi. + +Dùng chức năng feedback của Asset để báo bản phát hành hữu ích, sai hoặc chưa đầy +đủ. Feedback được lưu theo đúng bản phát hành và gửi tới chủ sở hữu chịu trách +nhiệm; nó không sửa bản phát hành bạn đã sử dụng. + + + +- bạn sử dụng đúng Asset đã phát hành thay vì draft hoặc alias có thể thay đổi; +- mọi kết quả Knowledge và thành phần Pack đều nằm trong quyền truy cập hiện tại; +- mọi citation khả dụng đều trỏ về bằng chứng nguồn đã xác thực; +- tiến độ hoặc feedback được ghi cho đúng chủ thể và đúng bản phát hành. + + + +## Tiếp tục + +- Làm theo [hướng dẫn Asset được quản trị](/vi/docs/product-guides/work-with-governed-assets) + theo từng tác vụ. +- Tìm hiểu [vòng đời Asset được quản trị](/vi/docs/architecture-security/asset-lifecycle). +- Hiểu [secure retrieval và GraphRAG](/vi/docs/architecture-security/secure-retrieval-graphrag). +- Kết nối AI client bên ngoài qua + [hướng dẫn Assistant và MCP](/vi/docs/guides/integrations/assistant-mcp). diff --git a/apps/docs/content/docs/getting-started/index.mdx b/apps/docs/content/docs/getting-started/index.mdx index b46b7ffe..0130564b 100644 --- a/apps/docs/content/docs/getting-started/index.mdx +++ b/apps/docs/content/docs/getting-started/index.mdx @@ -1,6 +1,6 @@ --- -title: Welcome to Organizational AI Memory -description: Understand the problem Organizational AI Memory solves, its scope, and where to begin. +title: What is Organizational AI Memory? +description: Learn how Organizational AI Memory turns repeatable AI work into governed capability that people and agents can safely reuse. audience: - adopter - evaluator @@ -8,70 +8,84 @@ audience: status: public sourceRefs: - docs/vision.md + - docs/specs/domains/asset-registry.md + - docs/specs/domains/knowledge-ingestion.md + - docs/specs/domains/secure-retrieval.md - ARCHITECTURE.md lastReviewed: 2026-07-29 --- -Organizational AI Memory is a self-hosted, governed memory layer for enterprise AI. It turns -uploads and approved connector evidence into versioned, citable knowledge while -preserving source permissions across search, Assistant, API, and MCP delivery. - - - Organizational AI Memory is a production-shaped proof of concept. Its architecture, automated - security checks, deployment pipeline, and rollback path are real; pilot - readiness still depends on the operational evidence listed under - [Limitations](/docs/architecture-security/evaluation/limitations). - +Organizational AI Memory is the system of record for reusable AI capability +inside the enterprise. It brings the knowledge, instructions, prompts, packages, +ownership, and permissions behind successful AI-assisted work into one governed +lifecycle—so people and agents can discover, use, and improve what the +organization already knows. ## The problem -Enterprise AI systems often copy content into an index and lose the context that -made the content trustworthy: which source revision was read, who could read it, -which model created a projection, and which evidence supported an answer. -Organizational AI Memory keeps those facts inside the retrieval boundary. +AI is moving from individual assistance to repeatable human-agent workflows. Yet +the parts that make those workflows reliable—source knowledge, instructions, +prompts, quality standards, approvals, and operational judgment—remain scattered +across personal tools and team silos. -It is designed for three related jobs: +When these pieces are not owned and versioned together, teams duplicate work, +proven methods drift, handovers lose context, and agents execute without a clear +record of what was approved or why. -- preserve source evidence as immutable revisions rather than mutable blobs; -- make authorization part of candidate selection, ranking, graph expansion, - citations, and Asset delivery; -- package reusable organizational capability as governed releases instead of - unreviewed prompts or files. +Organizational AI Memory treats reusable AI-assisted work as governed Assets. +Each exact release preserves its accountable owners, review decision, +permissions, provenance, dependencies, and usage history. Authorized employees +and agents receive the same approved capability through the product, Assistant, +REST API, CLI, or MCP. -## What is available +## How it works +## The capability between knowledge and execution + +Organizational AI Memory complements enterprise search, agent builders, and AI +control towers. Its unit of reuse is a task-ready capability: exact Knowledge, +Prompt Templates, Work Instructions, Capability Packs, or Skills with ownership, +permissions, provenance, and release history. + +That lifecycle is the product: + +```text +register -> review -> release -> reuse -> measure -> transfer -> retire +``` + ## Choose your path - **Evaluate the product:** start with the [system description](/docs/architecture-security/system-description), then review [coverage](/docs/architecture-security/evaluation/coverage) and [limitations](/docs/architecture-security/evaluation/limitations). -- **Run it locally:** follow the [POC quickstart](/docs/getting-started/quickstart). +- **Plan a self-hosted deployment:** review the + [self-hosting overview](/docs/guides/deployment-operations/self-hosting). - **Administer a deployment:** read [identity and permissions](/docs/guides/administration/identity-permissions) and [sources and connections](/docs/guides/administration/sources-connections). @@ -80,8 +94,8 @@ It is designed for three related jobs: ## Scope boundaries -Organizational AI Memory is not a source-of-truth replacement, a public content marketplace, or -an authorization system inferred from email addresses. It does not grant access -because an AI model found a relevant chunk. Source systems remain authoritative -for their content permissions, OpenFGA governs product relationships, and the -canonical ledger decides what may enter a response. +Organizational AI Memory complements source systems, model providers, and +workflow runtimes rather than replacing them. Source systems remain authoritative +for their content permissions. Every search result, citation, Assistant response, +Asset release, and MCP delivery is resolved within the current actor’s authorized +scope. diff --git a/apps/docs/content/docs/getting-started/index.vi.mdx b/apps/docs/content/docs/getting-started/index.vi.mdx new file mode 100644 index 00000000..2bbd8109 --- /dev/null +++ b/apps/docs/content/docs/getting-started/index.vi.mdx @@ -0,0 +1,103 @@ +--- +title: Organizational AI Memory là gì? +description: Tìm hiểu cách Organizational AI Memory biến công việc AI có thể lặp lại thành năng lực được quản trị để con người và tác nhân có thể tái sử dụng an toàn. +audience: + - adopter + - evaluator + - user +status: public +sourceRefs: + - docs/vision.md + - docs/specs/domains/asset-registry.md + - docs/specs/domains/knowledge-ingestion.md + - docs/specs/domains/secure-retrieval.md + - ARCHITECTURE.md +lastReviewed: 2026-07-30 +--- + +Organizational AI Memory là hệ thống lưu trữ chuẩn cho năng lực AI có thể tái sử +dụng trong doanh nghiệp. Hệ thống đưa tri thức, hướng dẫn, prompt, gói năng lực, +quyền sở hữu và quyền truy cập đứng sau những công việc có AI hỗ trợ thành một +vòng đời được quản trị thống nhất. Nhờ đó, con người và tác nhân có thể khám phá, +sử dụng và cải tiến những gì tổ chức đã biết. + +## Vấn đề + +AI đang chuyển từ công cụ hỗ trợ cá nhân sang các quy trình phối hợp người–tác +nhân có thể lặp lại. Tuy nhiên, những thành phần làm cho các quy trình đó đáng tin +cậy—tri thức nguồn, hướng dẫn, prompt, tiêu chuẩn chất lượng, phê duyệt và kinh +nghiệm vận hành—vẫn phân tán trong công cụ cá nhân và các silo của từng nhóm. + +Khi các thành phần này không được sở hữu và quản lý phiên bản cùng nhau, các nhóm +lặp lại công việc, phương pháp đã được chứng minh dần sai lệch, việc bàn giao mất +ngữ cảnh và tác nhân thực thi mà không có hồ sơ rõ ràng về nội dung đã được phê +duyệt hoặc lý do phê duyệt. + +Organizational AI Memory coi công việc có AI hỗ trợ và có thể tái sử dụng là các +Asset được quản trị. Mỗi bản phát hành chính xác bảo toàn chủ sở hữu chịu trách +nhiệm, quyết định review, quyền truy cập, nguồn gốc, phần phụ thuộc và lịch sử sử +dụng. Nhân viên và tác nhân được cấp quyền nhận cùng một năng lực đã được phê +duyệt qua sản phẩm, Assistant, REST API, CLI hoặc MCP. + +## Cách hoạt động + + + +## Năng lực nằm giữa tri thức và thực thi + +Organizational AI Memory bổ sung cho hệ thống tìm kiếm doanh nghiệp, nền tảng xây +dựng tác nhân và AI control tower. Đơn vị tái sử dụng của hệ thống là một năng +lực sẵn sàng cho công việc: Knowledge, Prompt Template, Work Instruction, +Capability Pack hoặc Skill ở đúng phiên bản, kèm quyền sở hữu, quyền truy cập, +nguồn gốc và lịch sử phát hành. + +Vòng đời đó chính là sản phẩm: + +```text +đăng ký -> review -> phát hành -> tái sử dụng -> đo lường -> chuyển giao -> ngừng sử dụng +``` + +## Chọn lộ trình của bạn + +- **Đánh giá sản phẩm:** bắt đầu với + [mô tả hệ thống](/vi/docs/architecture-security/system-description), sau đó xem + [phạm vi bao phủ](/vi/docs/architecture-security/evaluation/coverage) và + [các giới hạn](/vi/docs/architecture-security/evaluation/limitations). +- **Lập kế hoạch triển khai self-hosted:** xem + [tổng quan self-hosting](/vi/docs/guides/deployment-operations/self-hosting). +- **Quản trị hệ thống đã triển khai:** đọc + [danh tính và quyền truy cập](/vi/docs/guides/administration/identity-permissions) + cùng [nguồn và kết nối](/vi/docs/guides/administration/sources-connections). +- **Tích hợp AI client:** sử dụng + [hướng dẫn Assistant và MCP](/vi/docs/guides/integrations/assistant-mcp). + +## Ranh giới phạm vi + +Organizational AI Memory bổ sung cho hệ thống nguồn, nhà cung cấp mô hình và +workflow runtime thay vì thay thế chúng. Hệ thống nguồn vẫn là nơi có thẩm quyền +đối với quyền truy cập nội dung. Mọi kết quả tìm kiếm, citation, phản hồi từ +Assistant, bản phát hành Asset và dữ liệu phân phối qua MCP đều được giải quyết +trong phạm vi được cấp quyền của chủ thể hiện tại. diff --git a/apps/docs/content/docs/getting-started/meta.json b/apps/docs/content/docs/getting-started/meta.json index 861004ba..a3408a17 100644 --- a/apps/docs/content/docs/getting-started/meta.json +++ b/apps/docs/content/docs/getting-started/meta.json @@ -1,11 +1,11 @@ { "title": "Getting Started", - "description": "Understand Organizational AI Memory and complete the first governed journey.", + "description": "Understand Organizational AI Memory, its core concepts, and your first governed journey.", "icon": "BookOpen", "root": true, "pages": [ "index", - "quickstart", - "core-concepts" + "core-concepts", + "first-governed-journey" ] } diff --git a/apps/docs/content/docs/getting-started/meta.vi.json b/apps/docs/content/docs/getting-started/meta.vi.json index 6b066106..66540832 100644 --- a/apps/docs/content/docs/getting-started/meta.vi.json +++ b/apps/docs/content/docs/getting-started/meta.vi.json @@ -1,11 +1,11 @@ { "title": "Bắt đầu", - "description": "Hiểu Organizational AI Memory và hoàn thành hành trình được quản trị đầu tiên.", + "description": "Hiểu Organizational AI Memory, các khái niệm cốt lõi và hành trình được quản trị đầu tiên.", "icon": "BookOpen", "root": true, "pages": [ "index", - "quickstart", - "core-concepts" + "core-concepts", + "first-governed-journey" ] } diff --git a/apps/docs/content/docs/getting-started/quickstart.mdx b/apps/docs/content/docs/getting-started/quickstart.mdx deleted file mode 100644 index a8f62902..00000000 --- a/apps/docs/content/docs/getting-started/quickstart.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Quickstart and POC demo -description: Follow the shortest verified path from a clean checkout to an Organizational AI Memory demonstration. -audience: - - adopter - - developer - - evaluator -status: public -sourceRefs: - - README.md - - .env.example - - demo/README.md - - compose.yaml -lastReviewed: 2026-07-29 ---- - -This path starts the local infrastructure, API, deterministic demo identities, -and web application from a clean checkout. It intentionally keeps OIDC and -OpenFGA enabled; Organizational AI Memory has no permit-all development profile. - -## Prerequisites - -- Docker with Compose; -- Java 25; -- Node.js 24 and Corepack; -- Git and a PowerShell terminal; -- local-only object-storage and MCP client credentials created outside Git; -- an OpenAI-compatible chat and embedding provider for the default GraphRAG - path. - -Copy `.env.example` to `.env`, replace every placeholder locally, and never -commit the result. To start the API without a model provider, the example file -documents an explicit canonical-hybrid configuration; GraphRAG and model-backed -answers are unavailable in that mode. - -## 1. Bootstrap governed infrastructure - - - - From the repository root, run `.\gradlew.bat demoBootstrap`. This recreates - only the ephemeral local Keycloak container, creates a local OpenFGA store - and model, and retains PostgreSQL, MinIO, and their named volumes. - - - Start the API with - `.\gradlew.bat :apps:api:bootRun --args='--spring.profiles.active=dev'`. - Wait until Flyway completes and the health endpoint is available. - - - In another terminal, run `.\gradlew.bat demoSeed`. The seed is idempotent - and uses synthetic repository-owned identities and relationships. - - - - - `http://localhost:8080/api/health` should answer successfully. Swagger is - available only in the development profile at - `http://localhost:8080/swagger-ui.html`. - - -## 2. Start the web application - -```powershell -corepack pnpm install --frozen-lockfile -corepack pnpm --filter @orgmemory/web gen:api -corepack pnpm --filter @orgmemory/web dev --host 127.0.0.1 --port 5173 -``` - -Open `http://localhost:5173`. A protected route should redirect through -Keycloak and return to the application after sign-in. The browser stores an -HttpOnly server session, not OAuth access or refresh tokens. - -## 3. Run the demonstration journey - -The deterministic fixture supports a small L1 support capability: - -1. an owner reviews exact Knowledge and Asset revisions; -2. a second user discovers only releases they may use; -3. the user runs a permission-aware Prompt Template with citations; -4. they acknowledge a Work Instruction and complete an exact-pin Capability - Pack; -5. a replacement release does not silently rewrite the Pack; -6. withdrawal prevents new consumption while preserving history. - -Documents are not inserted directly into chunk, vector, or graph tables. Use -the product upload flow so the original evidence, revision, ACL, embeddings, and -publication state are created by the same path used outside the demo. - -## Common failures - -| Symptom | Check | -| --- | --- | -| Compose stops before Keycloak or MinIO starts | Confirm every local placeholder in `.env` was replaced. | -| API refuses to start | Confirm Java 25, the `dev` profile, database health, OpenFGA identifiers, and the selected AI route. | -| Sign-in succeeds but the app denies access | Run `demoSeed` after Flyway and confirm the explicit issuer/subject binding exists. | -| GraphRAG reports unavailable | Configure both chat and embedding routes, or select canonical hybrid explicitly for a provider-free boot. | -| A document cannot be searched | Confirm it entered through upload/ingestion and reached a published active version. | - -Next, read [Core concepts](/docs/getting-started/core-concepts) before changing -authorization or ingestion behavior. diff --git a/apps/docs/content/docs/guides/deployment-operations/self-hosting.mdx b/apps/docs/content/docs/guides/deployment-operations/self-hosting.mdx index 77a3143b..aa1f8e93 100644 --- a/apps/docs/content/docs/guides/deployment-operations/self-hosting.mdx +++ b/apps/docs/content/docs/guides/deployment-operations/self-hosting.mdx @@ -44,9 +44,9 @@ docker compose up -d docker compose --profile docs up --build docs ``` -The docs health endpoint is `http://localhost:3000/healthz`. Product startup -and the complete demo flow are covered in the -[Quickstart](/docs/getting-started/quickstart). +The docs health endpoint is `http://localhost:3000/healthz`. Repository-local +bootstrap and demonstration procedures remain internal and are not part of the +supported self-hosting contract. ## Production responsibilities diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 3ec7f166..08cd4787 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -2,6 +2,7 @@ "title": "Organizational AI Memory", "pages": [ "getting-started", + "product-guides", "guides", "architecture-security", "reference" diff --git a/apps/docs/content/docs/meta.vi.json b/apps/docs/content/docs/meta.vi.json index 3ec7f166..08cd4787 100644 --- a/apps/docs/content/docs/meta.vi.json +++ b/apps/docs/content/docs/meta.vi.json @@ -2,6 +2,7 @@ "title": "Organizational AI Memory", "pages": [ "getting-started", + "product-guides", "guides", "architecture-security", "reference" diff --git a/apps/docs/content/docs/product-guides/meta.json b/apps/docs/content/docs/product-guides/meta.json new file mode 100644 index 00000000..06f2bed1 --- /dev/null +++ b/apps/docs/content/docs/product-guides/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Product Guides", + "description": "Complete everyday work with governed Assets and organizational Knowledge.", + "icon": "PackageSearch", + "root": true, + "pagesIndex": "work-with-governed-assets", + "pages": [ + "work-with-governed-assets" + ] +} diff --git a/apps/docs/content/docs/product-guides/meta.vi.json b/apps/docs/content/docs/product-guides/meta.vi.json new file mode 100644 index 00000000..fa56ca07 --- /dev/null +++ b/apps/docs/content/docs/product-guides/meta.vi.json @@ -0,0 +1,10 @@ +{ + "title": "Hướng dẫn sản phẩm", + "description": "Thực hiện công việc hằng ngày với Asset được quản trị và Knowledge tổ chức.", + "icon": "PackageSearch", + "root": true, + "pagesIndex": "work-with-governed-assets", + "pages": [ + "work-with-governed-assets" + ] +} diff --git a/apps/docs/content/docs/product-guides/work-with-governed-assets.mdx b/apps/docs/content/docs/product-guides/work-with-governed-assets.mdx new file mode 100644 index 00000000..aa763987 --- /dev/null +++ b/apps/docs/content/docs/product-guides/work-with-governed-assets.mdx @@ -0,0 +1,136 @@ +--- +title: Work with governed Assets +description: Find an authorized Asset, verify its exact release, and use the action defined for its type. +audience: + - user + - adopter +status: public +sourceRefs: + - docs/specs/domains/asset-registry.md + - apps/api/src/main/java/com/orgmemory/api/assetregistry/AssetConsumptionController.java + - apps/api/src/test/java/com/orgmemory/api/assetregistry/AssetRegistryIntegrationTests.java + - apps/web/src/features/assets/components/asset-catalog-page.tsx + - apps/web/src/features/assets/components/asset-detail-page.tsx + - apps/web/src/features/assets/components/pack-journey-page.tsx + - apps/web/test/e2e/asset-registry-golden-poc.spec.ts +lastReviewed: 2026-07-30 +--- + +Use this guide when you know the outcome you need and want to find, inspect, and +use a governed Asset. If this is your first time in Organizational AI Memory, +start with [Your first governed journey](/docs/getting-started/first-governed-journey) +for the end-to-end product model. + +You must be signed in, have access to the relevant Asset, and have at least one +usable release. No repository access or deployment setup is required. + + + + + ### Find an Asset + + Open **Assets** in the product navigation. Search by the task or outcome, then + narrow the results by Asset type or change the sort order. + + The catalog is actor-specific: it returns the latest non-withdrawn exact + release that the current identity may use. A missing item is not evidence that + the Asset exists; the catalog does not disclose denied candidates. + + + + + + + ### Verify the exact release + + Open a result and check the title, Asset type, summary, and availability. Use + the **Version** selector when your workflow requires a specific release. + Expand **Version and provenance** and verify: + + - **Coordinate** identifies the Asset namespace and slug; + - **Released** identifies when this immutable release was published; + - **Digest** identifies the exact release content. + + + + A newer release does not rewrite an older one or change an existing Capability + Pack pin. Confirm the selected version again before an action that matters to + your workflow. + + + + + ### Use the action for the Asset type + + | Asset type | Primary action | Verify before completion | + | --- | --- | --- | + | Prompt Template | Supply validated variables, prepare the prompt, and explicitly confirm any external model run. | Grounding uses only authorized Knowledge, and the receipt identifies the release digest and model route. | + | Work Instruction | Follow the ordered guidance and acknowledge the exact release. | Required checks, expected results, and escalation guidance are complete. | + | Capability Pack | Open the Pack, work through accessible pinned items, and record actor-scoped progress. | The outcome, prerequisites, item versions, and access-gap state are understood. | + | Skill | Inspect the package before installing it through the authenticated CLI. | Compatibility, manifest, file digests, and exact install command match your environment. | + + External model calls and state-changing actions require explicit + confirmation. Merely opening an Asset does not run a model, install a Skill, + or complete a Pack item. + + + + + ### Handle an unavailable release + + - If an Asset is absent from the catalog, check your search and filters, then + ask an administrator or Asset owner to verify access without assuming the + Asset exists. + - If the detail page has no usable release, ask the owner to complete the + review and release process. + - If a release is **Deprecated**, prefer a current release unless a controlled + workflow requires the older exact version. + - A **Withdrawn** release cannot start new consumption. Historical evidence + and existing pins remain identifiable, but they do not make the release + usable again. + - If access changes while you are working, refresh or use the available + recheck action. A Capability Pack reports denied components as one opaque + access gap without exposing their titles, types, or count. + + + + + ### Record the outcome + + Use **Yes** or **Report issue** on the Asset detail page. Feedback is attached + to the exact release you used and does not modify that immutable release. + For a Capability Pack, mark an item complete only after performing its + required work; progress belongs to your current actor. + + + + + + +- the Asset type matches the action you performed; +- the selected version, coordinate, and digest identify the intended release; +- every Knowledge result and Pack component remains within your current access; +- any external run or state change received your explicit confirmation; +- feedback or progress was recorded against the correct release and actor. + + + +## Continue + +- Understand the [governed Asset lifecycle](/docs/architecture-security/asset-lifecycle). +- Learn how authorization protects + [secure retrieval and GraphRAG](/docs/architecture-security/secure-retrieval-graphrag). diff --git a/apps/docs/content/docs/product-guides/work-with-governed-assets.vi.mdx b/apps/docs/content/docs/product-guides/work-with-governed-assets.vi.mdx new file mode 100644 index 00000000..1c4bdb34 --- /dev/null +++ b/apps/docs/content/docs/product-guides/work-with-governed-assets.vi.mdx @@ -0,0 +1,138 @@ +--- +title: Làm việc với Asset được quản trị +description: Tìm một Asset được cấp quyền, xác minh đúng bản phát hành và sử dụng hành động dành cho loại Asset đó. +audience: + - user + - adopter +status: public +sourceRefs: + - docs/specs/domains/asset-registry.md + - apps/api/src/main/java/com/orgmemory/api/assetregistry/AssetConsumptionController.java + - apps/api/src/test/java/com/orgmemory/api/assetregistry/AssetRegistryIntegrationTests.java + - apps/web/src/features/assets/components/asset-catalog-page.tsx + - apps/web/src/features/assets/components/asset-detail-page.tsx + - apps/web/src/features/assets/components/pack-journey-page.tsx + - apps/web/test/e2e/asset-registry-golden-poc.spec.ts +lastReviewed: 2026-07-30 +--- + +Dùng hướng dẫn này khi bạn đã biết kết quả mình cần và muốn tìm, kiểm tra rồi sử +dụng một Asset được quản trị. Nếu đây là lần đầu bạn dùng Organizational AI +Memory, hãy bắt đầu với +[Hành trình được quản trị đầu tiên](/vi/docs/getting-started/first-governed-journey) +để hiểu mô hình sản phẩm từ đầu đến cuối. + +Bạn cần đăng nhập, được cấp quyền với Asset liên quan và có ít nhất một bản phát +hành có thể sử dụng. Không cần truy cập repository hoặc setup deployment. + + + + + ### Tìm một Asset + + Mở **Assets** trong thanh điều hướng của sản phẩm. Tìm theo công việc hoặc kết + quả, sau đó thu hẹp bằng loại Asset hoặc thay đổi thứ tự sắp xếp. + + Catalog phụ thuộc vào chủ thể hiện tại: nó trả về bản phát hành chính xác mới + nhất, chưa bị withdrawn mà danh tính hiện tại được phép sử dụng. Một mục không + xuất hiện không chứng minh rằng Asset đó tồn tại; catalog không tiết lộ các + candidate bị từ chối. + + + + + + + ### Xác minh đúng bản phát hành + + Mở một kết quả rồi kiểm tra tiêu đề, loại Asset, phần tóm tắt và trạng thái. + Dùng bộ chọn **Version** khi quy trình của bạn yêu cầu một bản phát hành cụ + thể. Mở rộng **Version and provenance** và xác minh: + + - **Coordinate** xác định namespace và slug của Asset; + - **Released** xác định thời điểm bản phát hành bất biến được publish; + - **Digest** xác định chính xác nội dung bản phát hành. + + + + Bản phát hành mới hơn không viết lại bản cũ hoặc thay đổi pin đang có trong + Capability Pack. Hãy xác nhận lại phiên bản đã chọn trước một hành động quan + trọng với quy trình của bạn. + + + + + ### Dùng hành động dành cho loại Asset + + | Loại Asset | Hành động chính | Xác minh trước khi hoàn thành | + | --- | --- | --- | + | Prompt Template | Cung cấp biến đã được kiểm chứng, chuẩn bị prompt và xác nhận rõ ràng mọi lần chạy model bên ngoài. | Grounding chỉ dùng Knowledge được cấp quyền, receipt xác định release digest và model route. | + | Work Instruction | Thực hiện hướng dẫn theo thứ tự và acknowledge đúng bản phát hành. | Đã hoàn thành các kiểm tra bắt buộc, kết quả mong đợi và hướng dẫn escalation. | + | Capability Pack | Mở Pack, thực hiện các mục được ghim mà bạn có quyền truy cập và ghi tiến độ theo chủ thể. | Đã hiểu kết quả, điều kiện tiên quyết, phiên bản từng mục và trạng thái access gap. | + | Skill | Kiểm tra package trước khi cài qua CLI đã xác thực. | Compatibility, manifest, file digest và lệnh cài đặt chính xác phù hợp với môi trường. | + + Lần gọi model bên ngoài và hành động thay đổi trạng thái cần được xác nhận rõ + ràng. Chỉ mở một Asset sẽ không chạy model, cài Skill hoặc hoàn thành mục trong + Pack. + + + + + ### Xử lý bản phát hành không khả dụng + + - Nếu Asset không có trong catalog, kiểm tra lại tìm kiếm và bộ lọc, sau đó + yêu cầu administrator hoặc Asset owner xác minh quyền mà không giả định + Asset đó tồn tại. + - Nếu trang chi tiết chưa có bản phát hành có thể sử dụng, yêu cầu owner hoàn + thành quy trình review và release. + - Nếu bản phát hành là **Deprecated**, ưu tiên bản hiện tại trừ khi một quy + trình được kiểm soát yêu cầu đúng phiên bản cũ. + - Bản phát hành **Withdrawn** không thể bắt đầu lượt sử dụng mới. Bằng chứng + lịch sử và pin đang có vẫn xác định được bản đó nhưng không làm nó khả dụng + trở lại. + - Nếu quyền thay đổi trong lúc bạn làm việc, refresh hoặc dùng hành động + recheck hiện có. Capability Pack báo các thành phần bị từ chối bằng một + access gap mờ, không làm lộ tiêu đề, loại hoặc số lượng của chúng. + + + + + ### Ghi lại kết quả + + Dùng **Yes** hoặc **Report issue** trên trang chi tiết Asset. Feedback được gắn + với đúng bản phát hành bạn đã dùng và không sửa bản phát hành bất biến đó. Với + Capability Pack, chỉ đánh dấu hoàn thành sau khi thực hiện công việc bắt buộc; + tiến độ thuộc về chủ thể hiện tại của bạn. + + + + + + +- loại Asset phù hợp với hành động bạn đã thực hiện; +- phiên bản, coordinate và digest đã chọn xác định đúng bản phát hành; +- mọi kết quả Knowledge và thành phần Pack vẫn nằm trong quyền hiện tại; +- mọi lần chạy bên ngoài hoặc thay đổi trạng thái đã được bạn xác nhận rõ ràng; +- feedback hoặc tiến độ được ghi theo đúng bản phát hành và chủ thể. + + + +## Tiếp tục + +- Hiểu [vòng đời Asset được quản trị](/vi/docs/architecture-security/asset-lifecycle). +- Tìm hiểu cách authorization bảo vệ + [secure retrieval và GraphRAG](/vi/docs/architecture-security/secure-retrieval-graphrag). diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 2b8da729..ef9f8088 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -5,7 +5,8 @@ const withMDX = createMDX(); const repositoryRoot = fileURLToPath(new URL('../..', import.meta.url)); const movedDocsPages = [ ['/docs/overview', '/docs/getting-started'], - ['/docs/overview/quickstart', '/docs/getting-started/quickstart'], + ['/docs/overview/quickstart', '/docs/guides/deployment-operations/self-hosting'], + ['/docs/getting-started/quickstart', '/docs/guides/deployment-operations/self-hosting'], ['/docs/overview/core-concepts', '/docs/getting-started/core-concepts'], ['/docs/overview/asset-lifecycle', '/docs/architecture-security/asset-lifecycle'], ['/docs/admins', '/docs/guides/administration/identity-permissions'], @@ -23,9 +24,12 @@ const movedDocsPages = [ ['/docs/developers/assistant-mcp', '/docs/guides/integrations/assistant-mcp'], ['/docs/developers/api-reference', '/docs/reference/api-reference'], ]; +const sectionLandingPages = [ + ['/docs/product-guides', '/docs/product-guides/work-with-governed-assets'], +]; -function movedPageRedirects() { - return movedDocsPages.flatMap(([source, destination]) => +function localizedPageRedirects(pages) { + return pages.flatMap(([source, destination]) => ['', '/vi'].flatMap((locale) => ['', '.md'].map((extension) => ({ source: `${locale}${source}${extension}`, @@ -43,7 +47,8 @@ const config = { reactStrictMode: true, async redirects() { return [ - ...movedPageRedirects(), + ...localizedPageRedirects(movedDocsPages), + ...localizedPageRedirects(sectionLandingPages), { source: '/docs/developers/api-reference/:path*', destination: '/docs/reference/api-reference/:path*', diff --git a/apps/docs/package.json b/apps/docs/package.json index f5b8b778..0d7b8f54 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -13,7 +13,7 @@ "generate:api": "tsx scripts/generate-openapi.ts", "check:api": "tsx scripts/generate-openapi.ts --check", "check:output": "node scripts/check-build-output.mjs", - "typecheck": "fumadocs-mdx && next typegen && tsc --noEmit", + "typecheck": "next typegen && fumadocs-mdx && tsc --noEmit", "check:content": "node scripts/check-docs.mjs content", "check:manifest": "node scripts/check-docs.mjs manifest", "check:publication": "node scripts/check-docs.mjs publication", diff --git a/apps/docs/public-content.manifest.json b/apps/docs/public-content.manifest.json index cc45ab94..0675ff45 100644 --- a/apps/docs/public-content.manifest.json +++ b/apps/docs/public-content.manifest.json @@ -10,21 +10,61 @@ "reviewOwner": "product-and-documentation" }, { - "route": "/docs/getting-started/quickstart", - "content": "content/docs/getting-started/quickstart.mdx", + "route": "/vi/docs/getting-started", + "content": "content/docs/getting-started/index.vi.mdx", "area": "getting-started", - "order": 20, + "order": 10, "status": "public", - "reviewOwner": "developer-experience" + "reviewOwner": "product-and-documentation" }, { "route": "/docs/getting-started/core-concepts", "content": "content/docs/getting-started/core-concepts.mdx", "area": "getting-started", + "order": 20, + "status": "public", + "reviewOwner": "product-and-documentation" + }, + { + "route": "/vi/docs/getting-started/core-concepts", + "content": "content/docs/getting-started/core-concepts.vi.mdx", + "area": "getting-started", + "order": 20, + "status": "public", + "reviewOwner": "product-and-documentation" + }, + { + "route": "/docs/getting-started/first-governed-journey", + "content": "content/docs/getting-started/first-governed-journey.mdx", + "area": "getting-started", "order": 30, "status": "public", "reviewOwner": "product-and-documentation" }, + { + "route": "/vi/docs/getting-started/first-governed-journey", + "content": "content/docs/getting-started/first-governed-journey.vi.mdx", + "area": "getting-started", + "order": 30, + "status": "public", + "reviewOwner": "product-and-documentation" + }, + { + "route": "/docs/product-guides/work-with-governed-assets", + "content": "content/docs/product-guides/work-with-governed-assets.mdx", + "area": "product-guides", + "order": 10, + "status": "public", + "reviewOwner": "product-and-documentation" + }, + { + "route": "/vi/docs/product-guides/work-with-governed-assets", + "content": "content/docs/product-guides/work-with-governed-assets.vi.mdx", + "area": "product-guides", + "order": 10, + "status": "public", + "reviewOwner": "product-and-documentation" + }, { "route": "/docs/architecture-security/asset-lifecycle", "content": "content/docs/architecture-security/asset-lifecycle.mdx", diff --git a/apps/docs/public/images/getting-started/asset-catalog.png b/apps/docs/public/images/getting-started/asset-catalog.png new file mode 100644 index 0000000000000000000000000000000000000000..f44a8208d89a5acee69a9db839b6aa11a30e9ac7 GIT binary patch literal 81423 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/images/getting-started/capability-pack-journey.png b/apps/docs/public/images/getting-started/capability-pack-journey.png new file mode 100644 index 0000000000000000000000000000000000000000..3740da41a2c5fc0adf3f729377aae18d72420b1b GIT binary patch literal 59185 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/images/product-guides/asset-release-provenance.png b/apps/docs/public/images/product-guides/asset-release-provenance.png new file mode 100644 index 0000000000000000000000000000000000000000..d282749dce52f53656fb9aad18856b0b17545a5a GIT binary patch literal 80528 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�fpSgz{DghPgZuHsKWQBs099msaZ%!P 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 literal 0 HcmV?d00001 diff --git a/apps/docs/scripts/check-docs.mjs b/apps/docs/scripts/check-docs.mjs index 067fb034..9c0398aa 100644 --- a/apps/docs/scripts/check-docs.mjs +++ b/apps/docs/scripts/check-docs.mjs @@ -289,8 +289,8 @@ function checkRoutes() { const englishGenerated = manifest.generatedEntries.filter( (entry) => contentLocale(entry.content) === 'en', ); - if (englishAuthored.length !== 17) { - fail(`Expected 17 English authored routes, found ${englishAuthored.length}`); + if (englishAuthored.length !== 18) { + fail(`Expected 18 English authored routes, found ${englishAuthored.length}`); } if (englishGenerated.length !== 7) { fail(`Expected 7 English generated API routes, found ${englishGenerated.length}`); @@ -310,9 +310,9 @@ function checkRoutes() { entry.status === 'draft' && contentLocale(entry.content) === i18nDefaultLanguage, ) .map((entry) => entry.route); - if (englishDraftRoutes.length !== 0 || englishPublicRoutes.length !== 24) { + if (englishDraftRoutes.length !== 0 || englishPublicRoutes.length !== 25) { fail( - `English baseline must contain 24 public routes and no drafts; ` + + `English baseline must contain 25 public routes and no drafts; ` + `found ${englishPublicRoutes.length} public and ${englishDraftRoutes.length} draft`, ); } diff --git a/apps/docs/src/app/[lang]/docs/[[...slug]]/page.tsx b/apps/docs/src/app/[lang]/docs/[[...slug]]/page.tsx index 05deb7f0..d591911a 100644 --- a/apps/docs/src/app/[lang]/docs/[[...slug]]/page.tsx +++ b/apps/docs/src/app/[lang]/docs/[[...slug]]/page.tsx @@ -1,7 +1,6 @@ import { getPageImageUrl, getPageMarkdownUrl, - isFallbackTranslation, source, } from '@/lib/source'; import { @@ -45,12 +44,6 @@ export default async function Page(props: PageProps<'/[lang]/docs/[[...slug]]'>) > {page.data.title} {page.data.description} - {isFallbackTranslation(page, params.lang) ? ( -

- ) : null}
{page.data.status === 'draft' ? ( diff --git a/apps/docs/src/app/global.css b/apps/docs/src/app/global.css index 68524d63..f9e4d457 100644 --- a/apps/docs/src/app/global.css +++ b/apps/docs/src/app/global.css @@ -13,7 +13,8 @@ html { :root { --color-fd-muted-foreground: hsl(0, 0%, 41%); --docs-getting-started-color: hsl(42, 95%, 27%); - --docs-guides-color: hsl(158, 75%, 28%); + --docs-product-guides-color: hsl(158, 75%, 28%); + --docs-guides-color: hsl(24, 90%, 38%); --docs-architecture-security-color: hsl(199, 89%, 34%); --docs-reference-color: hsl(258, 70%, 48%); } @@ -21,7 +22,8 @@ html { .dark { --color-fd-muted-foreground: hsl(0, 0%, 75%); --docs-getting-started-color: #fcd34d; - --docs-guides-color: #6ee7b7; + --docs-product-guides-color: #6ee7b7; + --docs-guides-color: #fdba74; --docs-architecture-security-color: #67e8f9; --docs-reference-color: #c4b5fd; } @@ -30,6 +32,10 @@ html { --color-fd-primary: var(--docs-getting-started-color); } +.product-guides { + --color-fd-primary: var(--docs-product-guides-color); +} + .guides { --color-fd-primary: var(--docs-guides-color); } diff --git a/apps/docs/src/components/docs-patterns.tsx b/apps/docs/src/components/docs-patterns.tsx index b535077e..c43007b2 100644 --- a/apps/docs/src/components/docs-patterns.tsx +++ b/apps/docs/src/components/docs-patterns.tsx @@ -1,3 +1,4 @@ +import { ImageZoom } from 'fumadocs-ui/components/image-zoom'; import Image from 'next/image'; import type { ReactNode } from 'react'; @@ -11,6 +12,51 @@ interface FlowStep { detail: string; } +export function ConceptMap({ + label, + steps, +}: { + label: string; + steps: FlowStep[]; +}) { + return ( +
+
+ {steps.map((step, index) => ( +
+
+ + {index + 1} + +

+ {step.title} +

+

+ {step.detail} +

+
+ {index < steps.length - 1 ? ( + + ) : null} +
+ ))} +
+
+ {label} +
+
+ ); +} + export function ArchitectureDiagram({ alt, description, @@ -28,15 +74,17 @@ export function ArchitectureDiagram({ }) { return (
- {alt} + + {alt} +
{title} diff --git a/apps/docs/src/components/mdx.tsx b/apps/docs/src/components/mdx.tsx index 5ad06f27..7424e85c 100644 --- a/apps/docs/src/components/mdx.tsx +++ b/apps/docs/src/components/mdx.tsx @@ -5,6 +5,7 @@ import { ApiExample, ArchitectureDiagram, CapabilityGrid, + ConceptMap, DiagramFrame, FlowDiagram, VerificationBlock, @@ -17,6 +18,7 @@ export function getMDXComponents(components?: MDXComponents) { ApiExample, ArchitectureDiagram, CapabilityGrid, + ConceptMap, DiagramFrame, FlowDiagram, OpenAPIPage, diff --git a/apps/docs/src/lib/docs-category.ts b/apps/docs/src/lib/docs-category.ts index 497320a5..cdadc94a 100644 --- a/apps/docs/src/lib/docs-category.ts +++ b/apps/docs/src/lib/docs-category.ts @@ -1,5 +1,6 @@ export const docsCategories = [ 'getting-started', + 'product-guides', 'guides', 'architecture-security', 'reference', diff --git a/apps/docs/src/lib/source.ts b/apps/docs/src/lib/source.ts index 0275b308..e06a2646 100644 --- a/apps/docs/src/lib/source.ts +++ b/apps/docs/src/lib/source.ts @@ -43,15 +43,6 @@ export function getPageMarkdownUrl(page: (typeof source)['$inferPage']) { }; } -export function isFallbackTranslation( - page: (typeof source)['$inferPage'], - language: string, -) { - if (language === i18n.defaultLanguage) return false; - - return !page.path.endsWith(`.${language}.md`) && !page.path.endsWith(`.${language}.mdx`); -} - export async function getLLMText(page: (typeof source)['$inferPage']) { const processed = await page.data.getText('processed'); diff --git a/apps/docs/test/e2e/navigation.spec.ts b/apps/docs/test/e2e/navigation.spec.ts index 8b71e9eb..e0b5fd94 100644 --- a/apps/docs/test/e2e/navigation.spec.ts +++ b/apps/docs/test/e2e/navigation.spec.ts @@ -13,13 +13,21 @@ const publicRoutes = [...authoredManifest.entries, ...generatedManifest.entries] (entry) => entry.route, ); +function machineReadableRoute(route: string): string { + const localized = route.match(/^\/([a-z]{2})(\/docs(?:\/.*)?)$/); + if (localized) { + return `/${localized[1]}/llms.mdx${localized[2]}/content.md`; + } + return `/llms.mdx${route}/content.md`; +} + test('site root enters the technical documentation directly', async ({ page }) => { await page.goto('/'); await expect(page).toHaveURL(/\/docs\/getting-started$/); await expect( page.getByRole('heading', { level: 1, - name: 'Welcome to Organizational AI Memory', + name: 'What is Organizational AI Memory?', }), ).toBeVisible(); await expect( @@ -52,6 +60,7 @@ test('public corpus exposes the section switcher and focused page tree', async ( await page.getByRole('button', { name: /Architecture & Security/ }).first().click(); for (const section of [ 'Getting Started', + 'Product Guides', 'Guides', 'Architecture & Security', 'Reference', @@ -66,6 +75,7 @@ test('public corpus exposes the section switcher and focused page tree', async ( test('category visual identity follows the active root and locale', async ({ page }) => { const categories = { 'getting-started': '/docs/getting-started', + 'product-guides': '/docs/product-guides/work-with-governed-assets', guides: '/docs/guides/administration/identity-permissions', 'architecture-security': '/docs/architecture-security/system-description', reference: '/docs/reference/api-reference', @@ -92,18 +102,24 @@ test('category visual identity follows the active root and locale', async ({ pag ); }); -test('Vietnamese shell is localized while untranslated pages fall back explicitly', async ({ +test('Vietnamese shell and authored Getting Started pages are localized', async ({ page, }, testInfo) => { await page.goto('/vi/docs/getting-started'); await expect(page.locator('html')).toHaveAttribute('lang', 'vi'); await expect( - page.getByText( - 'Trang này chưa có bản dịch tiếng Việt đã được duyệt. Nội dung tiếng Anh đang được hiển thị tạm thời.', - { exact: true }, - ), + page.getByRole('heading', { level: 1, name: 'Organizational AI Memory là gì?' }), + ).toBeVisible(); + await expect(page.getByText('chưa có bản dịch', { exact: false })).toHaveCount(0); + + await page.goto('/vi/docs/getting-started/core-concepts'); + await expect( + page.getByRole('heading', { level: 1, name: 'Các khái niệm cốt lõi' }), ).toBeVisible(); + await expect(page.getByText('Không gian tri thức', { exact: true }).first()).toBeVisible(); + + await page.goto('/vi/docs/getting-started'); if (testInfo.project.name === 'mobile-chromium') { await page.getByRole('button', { name: 'Mở thanh bên' }).click(); } @@ -111,6 +127,7 @@ test('Vietnamese shell is localized while untranslated pages fall back explicitl await page.getByRole('button', { name: /Bắt đầu/ }).first().click(); for (const section of [ 'Bắt đầu', + 'Hướng dẫn sản phẩm', 'Hướng dẫn', 'Kiến trúc & bảo mật', 'Tham chiếu', @@ -131,11 +148,52 @@ test('docs root redirects to Getting Started', async ({ page }) => { await expect( page.getByRole('heading', { level: 1, - name: 'Welcome to Organizational AI Memory', + name: 'What is Organizational AI Memory?', }), ).toBeVisible(); }); +test('Getting Started explains the core model and first governed journey', async ({ page }) => { + await page.goto('/docs/getting-started/core-concepts'); + await expect(page.getByRole('heading', { level: 1, name: 'Core concepts' })).toBeVisible(); + await expect(page.getByText('Knowledge Space', { exact: true }).first()).toBeVisible(); + await expect(page.getByText('Registry Asset', { exact: true })).toHaveCount(0); + + await page.goto('/docs/getting-started/first-governed-journey'); + await expect( + page.getByRole('heading', { level: 1, name: 'Your first governed journey' }), + ).toBeVisible(); + await expect( + page.getByRole('img', { + name: 'Organizational AI Memory Assets catalog showing a Capability Pack, Work Instruction, Prompt Template, and Skill available to the current user.', + }), + ).toBeVisible(); + await expect(page.getByText('repository access', { exact: false })).toBeVisible(); +}); + +test('Product Guides teaches the exact governed Asset workflow in both languages', async ({ + page, +}) => { + await page.goto('/docs/product-guides/work-with-governed-assets'); + await expect( + page.getByRole('heading', { level: 1, name: 'Work with governed Assets' }), + ).toBeVisible(); + await expect( + page.getByRole('img', { + name: /Asset detail showing a Capability Pack, its current version/i, + }), + ).toHaveAttribute('src', '/images/product-guides/asset-release-provenance.png'); + await expect(page.getByText('Version and provenance', { exact: true }).first()).toBeVisible(); + + await page.goto('/vi/docs/product-guides/work-with-governed-assets'); + await expect( + page.getByRole('heading', { level: 1, name: 'Làm việc với Asset được quản trị' }), + ).toBeVisible(); + await expect( + page.getByRole('heading', { level: 3, name: 'Xác minh đúng bản phát hành' }), + ).toBeVisible(); +}); + test('legacy docs URLs permanently redirect to the new taxonomy', async ({ request, }, testInfo) => { @@ -143,6 +201,10 @@ test('legacy docs URLs permanently redirect to the new taxonomy', async ({ const redirects = new Map([ ['/docs/overview', '/docs/getting-started'], + [ + '/vi/docs/product-guides', + '/vi/docs/product-guides/work-with-governed-assets', + ], [ '/vi/docs/admins/identity-permissions', '/vi/docs/guides/administration/identity-permissions', @@ -151,6 +213,10 @@ test('legacy docs URLs permanently redirect to the new taxonomy', async ({ '/docs/deployment/self-hosting.md', '/docs/guides/deployment-operations/self-hosting.md', ], + [ + '/docs/getting-started/quickstart', + '/docs/guides/deployment-operations/self-hosting', + ], [ '/docs/developers/api-reference/search-catalog.md', '/docs/reference/api-reference/search-catalog.md', @@ -164,15 +230,6 @@ test('legacy docs URLs permanently redirect to the new taxonomy', async ({ } }); -test('quickstart exposes executable commands and observable health', async ({ page }) => { - await page.goto('/docs/getting-started/quickstart'); - await expect( - page.getByRole('heading', { level: 1, name: 'Quickstart and POC demo' }), - ).toBeVisible(); - await expect(page.getByText('.\\gradlew.bat demoBootstrap', { exact: false })).toBeVisible(); - await expect(page.getByText('http://localhost:8080/api/health')).toBeVisible(); -}); - test('keyboard navigation reaches the primary action', async ({ page }) => { await page.goto('/'); let focusedHref: string | null = null; @@ -194,6 +251,9 @@ test('root and docs pages pass automated accessibility smoke checks', async ({ p '/', '/docs/getting-started', '/vi/docs/getting-started', + '/docs/getting-started/core-concepts', + '/docs/getting-started/first-governed-journey', + '/docs/product-guides/work-with-governed-assets', '/docs/architecture-security/system-description', ]) { await page.goto(route); @@ -279,7 +339,7 @@ test('every manifest route and machine-readable output is public-safe', async ({ expect(response.status(), route).toBe(200); expect(await response.text(), `${route} leaked repository evidence`).not.toMatch(forbidden); - const markdownRoute = `/llms.mdx${route}/content.md`; + const markdownRoute = machineReadableRoute(route); const markdown = await request.get(markdownRoute); expect(markdown.status(), markdownRoute).toBe(200); expect(await markdown.text(), `${markdownRoute} leaked repository evidence`).not.toMatch( From 4d48fbdbc904d57943d43c1bcf93c9c97a1ad715 Mon Sep 17 00:00:00 2001 From: kl3inIT Date: Thu, 30 Jul 2026 11:27:17 +0700 Subject: [PATCH 2/2] docs: address product guide review --- apps/docs/ARCHITECTURE.md | 5 +++-- apps/docs/CLAUDE.md | 5 +++-- .../content/docs/getting-started/first-governed-journey.mdx | 6 +++--- .../docs/getting-started/first-governed-journey.vi.mdx | 6 +++--- apps/docs/src/components/docs-patterns.tsx | 6 +----- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/apps/docs/ARCHITECTURE.md b/apps/docs/ARCHITECTURE.md index 9fcb3a46..580e6c84 100644 --- a/apps/docs/ARCHITECTURE.md +++ b/apps/docs/ARCHITECTURE.md @@ -9,8 +9,9 @@ service, or Compose stack is required. ## Current Boundaries -- `content/docs`: curated Markdown/MDX publication input. English pages use - `page.mdx`; reviewed Vietnamese translations use `page.vi.mdx`. +- `content/docs`: curated Markdown/MDX publication input. English section roots + use `index.mdx`, named pages use `.mdx`, and reviewed Vietnamese + translations use the adjacent `index.vi.mdx` or `.vi.mdx`. - `source.config.ts`: typed Fumadocs MDX collection and frontmatter contract. - `public-content.manifest.json`: explicit route and review allowlist. - `scripts/check-docs.mjs`: content, manifest, source-reference, and publication diff --git a/apps/docs/CLAUDE.md b/apps/docs/CLAUDE.md index 4f2013d2..7a58088d 100644 --- a/apps/docs/CLAUDE.md +++ b/apps/docs/CLAUDE.md @@ -11,8 +11,9 @@ Read the repository root `CLAUDE.md` first, then this file and - `sourceRefs` is build-time traceability and must never be rendered. - Drafts remain excluded unless `DOCS_INCLUDE_DRAFTS=true` is set for a local or controlled preview. -- English is the default publication language: `page.mdx` remains at `/docs/...`. - Add Vietnamese one reviewed page at a time as `page.vi.mdx`; its route is +- English is the default publication language. Use `index.mdx` for a section + root and `.mdx` for a named page. Add Vietnamese one reviewed page at a + time as the adjacent `index.vi.mdx` or `.vi.mdx`; its route is `/vi/docs/...`. Do not bulk-copy or machine-publish untranslated pages. - Vietnamese routes fall back visibly to the reviewed English page until the matching `.vi.mdx` exists. A fallback route is not a completed translation. diff --git a/apps/docs/content/docs/getting-started/first-governed-journey.mdx b/apps/docs/content/docs/getting-started/first-governed-journey.mdx index e174327b..088dff14 100644 --- a/apps/docs/content/docs/getting-started/first-governed-journey.mdx +++ b/apps/docs/content/docs/getting-started/first-governed-journey.mdx @@ -66,17 +66,17 @@ The available action depends on its type. -
+
{steps.map((step, index) => (