Skip to content

Current Wiki Source, Rendering And Access Inventory — 2026-08-08

  • Status: CURRENT STATIC SOURCE INVENTORY / CURRENT ENVIRONMENT EVIDENCE REQUIRED
  • Repository baseline: qa/master@11c074373ab9fe946607980227b346ddc1da3312
  • Evidence package: RBR-EV-030
  • Read-only package: RBR-EV-030-READONLY-WIKI-INVENTORY-PREFLIGHT.md
  • Repository Wiki index: docs/wiki/README.md
  • Publication checklist: WIKI_CONTENT_REVIEW_PUBLICATION_AND_ROLLBACK_CHECKLIST.md
  • Phase implementation: USER HOLD
  • Effects: source inspection and documentation only

1. Purpose

The repository contains three different Wiki-related authorities that are easy to confuse:

Repository Operations Manual catalogue and baseline content
Tenant-scoped T_WIKI_PAGE current Markdown
Rendered /operations-manual output under a specific user/role/tenant

This inventory establishes the current source-level relationship between them before any environment is read.

It answers:

Where does the initial catalogue come from?
When does T_WIKI_PAGE override repository baseline content?
Which fields identify one Wiki page?
How is an application page mapped?
How are Wiki assets related to the page?
What does the existing source-verification script prove?
Which facts still require DB, rendered-page and target-role evidence?

It does not claim that a named environment has the expected table, rows, mappings, assets or rendered content.


2. Authority Separation

Repository page definition
!= current tenant Markdown

T_WIKI_PAGE row exists
!= rendered page is healthy

Rendered page is healthy
!= target role can find it

PAGE_SLUG mapping exists
!= mapped application page is authorized for every role

Wiki draft exists in docs/wiki/internal
!= T_WIKI_PAGE current content
!= publication

Source signature current
!= tenant DB content current

T_FILE metadata exists
!= Wiki asset object is readable

Wiki URL opens
!= procedure is correct for current Runtime

The Process/source owner determines the business meaning. T_WIKI_PAGE owns current user-facing Markdown after publication. The Operations Manual page owns rendering and navigation. Repository packets own proposed content, traceability, diagrams and publication preparation.


3. Source Set Reviewed

Current Wiki storage and application logic

app/platform/wiki_repository.php
app/platform/api_routes.php
frontend/pages/platform/help/operations-manual.php
frontend/pages/platform/help/operations-manual-content.php
config/config.php

Schema inputs

scripts/migrations/2026-07-31_p1_006_wiki_page_store_forward.sql
scripts/migrations/2026-08-02_p1_006_wiki_editor_metadata_forward.sql

Source verification

scripts/verify_operations_manual_sources.php
tests/unit/wiki_page_store_test.php

Repository knowledge inputs

docs/wiki/README.md
docs/wiki/internal/PAGE_MAP.md
docs/wiki/internal/OPERATIONS_MANUAL_MASTER_BLUEPRINT.md
docs/wiki/internal/PROCESS_PROJECTION_REQUIREMENTS.md
docs/wiki/internal/PRIORITY_PROCESS_WIKI_COVERAGE_MATRIX.md
docs/wiki/internal/WIKI_CONTENT_REVIEW_PUBLICATION_AND_ROLLBACK_CHECKLIST.md

4. Current Storage Authority

4.1 Base table

The original source migration defines:

T_WIKI_PAGE

Base fields:

ID
UUID
CLIENT_ID
SLUG
ACTOR_USERNAME
URL
MARKDOWN
CREATED_AT
UPDATED_AT
DELETED_AT

Base uniqueness:

UUID
CLIENT_ID + SLUG

The later metadata migration adds:

TITLE
PAGE_SLUG
UNIQUE CLIENT_ID + PAGE_SLUG

Current source retains compatibility with an older table that lacks TITLE and PAGE_SLUG. wikiHasEditorMetadata() checks the columns before selecting or writing them.

4.2 Current page identity

The current repository reads a page by:

CLIENT_ID
+ normalized SLUG

A current page also requires:

DELETED_AT IS NULL

SLUG is normalized to lowercase and limited to a hyphenated alphanumeric form with maximum length 120.

4.3 Current URL

The source derives the current Wiki URL from the slug:

/operations-manual?doc=<normalized-slug>

A stored URL is not independent authority. The preflight checks whether stored URL matches the derived route.

4.4 Markdown limit

Current save validation requires non-empty Markdown and limits it to 2 MB.

4.5 Actor field

ACTOR_USERNAME records the editing actor label in the current row. It is not an immutable revision history and must not be treated as complete authorship or approval evidence.

current row actor
!= every historical editor
!= process owner approval
!= publication authorization

5. Repository Baseline And DB Override

The Operations Manual source comments establish the intended precedence:

Repository documents/catalogue
= initial Wiki baseline and curated page metadata/visuals

T_WIKI_PAGE saved page
= tenant-scoped rendered Markdown source

The repository catalogue contains page definitions such as:

overview
roles
ctc-daily
inbound-planning
loader-yard
billing
...

Each definition can contain:

  • title/category/audience/status;
  • summary/tags;
  • profile applicability;
  • parent/navigation relationship;
  • Process IDs and lifecycle projection;
  • curated diagrams/visual sections;
  • source metadata and source signature;
  • initial baseline content.

A DB page does not replace all repository metadata. It supplies current Markdown while the page definition and renderer continue to own catalogue/navigation/visual behavior.

This creates a required two-source review:

repository catalogue metadata
+ tenant T_WIKI_PAGE Markdown
+ rendered page under target role
= current user experience

Reviewing only one of the three is insufficient.


6. Application-Page Mapping

6.1 Mapping field

PAGE_SLUG optionally maps one Wiki topic to an application page slug.

6.2 Mapping source

Current mapping options are derived from tenant-scoped:

T_MENU
LEFT JOIN T_MODULE_PAGE

The source:

  • excludes permission-only menu rows;
  • excludes empty menu URLs;
  • prefers T_MODULE_PAGE.PAGE_URL and falls back to T_MENU.MENU_URL;
  • normalizes the route path into a slug;
  • excludes operations-manual itself;
  • groups menu labels under the normalized application page.

6.3 Save validation

When editor metadata exists, a non-null PAGE_SLUG must resolve through the current tenant menu-derived mapping options.

A repository-backed page whose Wiki slug changes must remain mapped when the static source slug differs and no mapping is supplied.

6.4 Important boundary

PAGE_SLUG accepted by current tenant mapping
!= target role can access that application page

The current Wiki inventory therefore records both:

  • mapping existence for the tenant;
  • rendered Wiki visibility and mapped application visibility for named roles.

7. Wiki Assets

Markdown can reference an image by:

wiki-asset://<uuid>

Current source limits one page to 50 distinct asset UUIDs.

A referenced asset must resolve through T_FILE with:

CLIENT_ID = page tenant
TABLE_NAME = T_WIKI_PAGE
TABLE_ID = Wiki PAGE_ID
TYPE = WIKI_ASSET
UUID = referenced UUID
DELETED_AT IS NULL

Accepted filename extensions:

jpg
jpeg
png
gif
webp

The current asset checkpoint is therefore:

Markdown reference
+ T_FILE metadata and page link
+ accepted type/extension
+ storage object readable
= usable Wiki asset

The DB inventory can establish references and metadata, but object readability requires an explicitly authorized read through the current file/storage owner.


8. Current Repository Verification Script

scripts/verify_operations_manual_sources.php is a read-only source consistency check. It does not query current T_WIKI_PAGE data.

It currently checks, among other source-level conditions:

  • the Operations Manual renders a browser catalogue;
  • only approved public fields are exposed;
  • page IDs are unique;
  • CTC/MK profile filtering is consistent for client IDs 1 and 2;
  • Process IDs exist in process-registry.yaml;
  • repository source paths and document anchors exist;
  • source signatures match declared repository sources;
  • parent catalogue entries exist;
  • Process/profile/lifecycle traceability remains internally consistent.

Current source assumptions include a fixed registry closure baseline and profile distribution. Those assumptions are source-contract checks, not current DB or role evidence.

source verifier PASS
!= current tenant Wiki rows read
!= rendered authenticated page verified
!= current content accepted by operators

9. Current Rendering Questions

The rendered page must be reviewed under the exact environment, tenant and account because the current result can depend on:

  • tenant profile/client ID;
  • current T_WIKI_PAGE rows;
  • current menu/page mappings;
  • role and menu access;
  • current source release;
  • current renderer and Markdown behavior;
  • Wiki asset availability;
  • selected doc slug;
  • repository baseline fallback.

The inventory records at minimum:

HTTP/result status
selected slug
visible title/category/audience
content source classification
Markdown hash
mapped application page
visible navigation path
role visibility
asset result
source freshness label
current/source/history/target wording

Screenshots are optional supporting evidence. They are not the authority for Markdown, mapping or role decisions.


10. Current Static Consumer Surfaces

Current source consumers include:

Operations Manual browser page
Platform Wiki API routes/editor flows
Repository source-verification script
Wiki unit tests
Process/Wiki projection documentation
Publication and rollback procedure

The current environment may also have external bookmarks or operator training references that repository search cannot discover. Stable slugs should therefore not be renamed or deleted solely because repository consumers are absent.


11. Current Unknowns

The following remain environment evidence questions:

T_WIKI_PAGE table and metadata-column presence
active/deleted row population by tenant
current Markdown hash and content
current PAGE_SLUG mappings
stored URL consistency
current actor/update timestamps
current Wiki asset references and object readability
repository baseline fallback actually used by each slug
rendered page result
role visibility and findability
current mobile/accessibility behavior
current stale/future/historical wording
external bookmark/operating-procedure consumers

No documentation-only source review can promote these to verified current state.


12. Required Classification

Each priority slug receives one content-source classification:

DB_CURRENT
DB_PRESENT_STALE
DB_PRESENT_CONFLICT
DB_PRESENT_UNMAPPED
DB_PRESENT_RENDER_ERROR
STATIC_BASELINE_ONLY
MISSING
ROLE_MISMATCH
ASSET_CONFLICT
UNKNOWN

It also receives one semantic classification:

CURRENT VERIFIED/ACCEPTED
CURRENT SOURCE-RECONCILED
CURRENT SOURCE PRESENT / EVIDENCE REQUIRED
HISTORICAL EVIDENCE
TARGET DESIGN
OPEN POLICY / UNKNOWN
MIXED OR MISLEADING

A page can be technically healthy and still semantically stale.


13. Static Source Conclusion

Wiki table/schema source:
PRESENT

Tenant Markdown repository layer:
PRESENT

Repository baseline catalogue:
PRESENT

Application-page mapping source:
PRESENT

Wiki asset relation source:
PRESENT

Source-only verification script:
PRESENT

Current environment table/rows/content:
NOT READ

Rendered role-specific pages:
NOT VERIFIED

Publication/readback:
NOT PERFORMED

Field acceptance:
NOT ESTABLISHED

14. Next Evidence

Execute only after exact authorization:

The execution must not publish, save, delete, upload, ACK, mutate menu/role state or alter Wiki assets.

---

Source: docs/reconstruction/CURRENT_WIKI_SOURCE_RENDERING_AND_ACCESS_INVENTORY_2026-08-08.md — ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.