P10D-2A Evidence Quick Check 2026-04-30
P10D-2A — Quick No-Code Path Verification
Date: 2026-04-30
Scope: Read-only grep on /opt/incomex/docker/nuxt-repo/web via ssh contabo.
Host: vmi3080463.contaboserver.net
Q1 /knowledge/laws hardcode? PARTIAL (data config-driven, sections hardcoded)
Source: pages/knowledge/laws/index.vue
- Line 21:
readItems('governance_docs', ...)— collection-driven (config). - Lines 31, 36, 42: 3 sections filter by hardcoded category strings
'constitution' | 'law' | 'ssot_table'. - Lines 59, 132:
lawColumns&<UTable>columns hardcoded in component.
→ Data lives in governance_docs collection, but the 3-section layout & category names are hardcoded in the page file. Adding a 4th category requires editing the .vue file.
Q2 /docs source hardcoded KB? NO (Directus collection-driven via SDK)
Source: pages/knowledge/[...slug].vue, pages/knowledge/index.vue, composables/useAgentViews.ts, server/api/docs/context.get.ts
pages/knowledge/[...slug].vue:61&pages/knowledge/index.vue:63:readItems('knowledge_documents', ...).composables/useAgentViews.ts:144:readItems('agent_views', ...).server/api/docs/context.get.ts:31: fetchesagent_viewsfrom Directus REST.composables/useAgentData.ts:96: Agent Data search → fetch full content fromknowledge_documentsin Directus.
→ Source is Directus collections (knowledge_documents, agent_views), not hardcoded KB API. Collection name is the only hardcoded piece per page.
Q3 DirectusTable table-only? YES (table-only, registry-driven)
Source: components/shared/DirectusTable.vue, composables/useDirectusTable.ts
DirectusTable.vue:3-8: doc says "schema-driven table" wrappingUTablewith pagination/sort/filter.- Line 35: prop "Registry-driven mode: fetch config from
table_registryby this ID". - Line 77:
readItems('table_registry', ...)to loadFieldConfig. - Lines 335-423: only renders
<UTable>— no markdown/prose rendering. - Sibling
DirectusMatrix.vueis also UTable-only.
→ DirectusTable purely renders tabular data from any collection driven by table_registry. Cannot render document/markdown content.
Q4 Registry/menu/page config exists? YES
navigationcollection:components/navigation/TheHeader.vue:12readItem('navigation', 'main', ...),TheFooter.vue:9readItem('navigation', 'footer', ...). Items rendered dynamically.agent_viewscollection: bootstrapped inscripts/bootstrap_directus.ts:374-422, fetched viauseAgentViews.ts.ui_pagesregistry:config/detail-sections.ts:235,pages/knowledge/registries/all/index.vue:23,pages/knowledge/registries/[entityType]/index.vue:47(tabletbl_registry_ui_pages).table_registryregistry: drives DirectusTable.
→ Navigation, page registry (ui_pages), and view registry (agent_views) all exist and are config-driven via Directus.
Q5 Component can accept TAC source by config? YES
Source: components/DocsTreeView.vue, composables/useAgentViews.ts
DocsTreeView.vue:5-7: propsnodes: DocsTreeNode[],selectedPath?: string. Source-agnostic — caller supplies the tree.useAgentViews.ts:12:buildDocsTree(documents: AgentView[])is a pure transform. Pass any document list shaped likeAgentView→ get a tree.- Already reused by both
pages/knowledge/index.vue:121andpages/knowledge/[...slug].vue:114with different filtered doc sets.
→ DocsTreeView + buildDocsTree accept any document list; a TAC source can be wired in by passing a different fetched list — no component change needed.
Verdict
-
No-code path exists? PARTIAL — YES for tree-style views, NO for the laws page as-is.
- YES: A TAC view that mirrors
/knowledge/[...slug]can be built by reusingDocsTreeView+buildDocsTreewith a differentreadItems('<collection>', ...)query — purely composition. - NO:
/knowledge/lawsitself has hardcoded 3 sections + columns. To add/rename/reorder sections without code, that page would need to be refactored to read section config from a collection (e.g., addgovernance_doc_sectionsor extendui_pages).
- YES: A TAC view that mirrors
-
Missing capability: A section/layout registry for the laws page (currently the 3 categories
constitution|law|ssot_tableand their column lists are baked into the .vue file). DirectusTable handles table layout config, but the section grouping onlaws/index.vuedoes not pull from any registry. -
Next recommended step:
- If goal = expose TAC under
/knowledge/...tree: write a tiny new page that callsreadItems('<TAC collection>', ...)and feedsbuildDocsTree→DocsTreeView. Zero new components. - If goal = configurable laws page: introduce a
laws_sections(or reuseui_pages+table_registry) record set whose rows define{category_code, title, columns}, then refactorpages/knowledge/laws/index.vueto iterate sections and pass each intoSharedDirectusTable(already registry-driven).
- If goal = expose TAC under
STOP. Read-only complete. No code, no mutation.