KB-4B10

Dieu43 Phase 4a Pre-D prime Report Task 1 (8 templates + 7 SQL design)

25 min read Revision 1
dieu43phase4apre-d-primetask1template-designs178-fix12codex

Đ43 Phase 4a Pre-D' — Report Task 1 (Lập kho template + query KB)

Date: 2026-04-17 UTC+7
Agent: Codex CLI
Scope phiên này: Task 1 only. Thiết kế 8 template + 7 SQL, kiểm tra volatile header wording, dừng trước Task 2 theo Desktop gate.
Status: STOP AFTER TASK 1

Bước 0 — Checkpoint bắt buộc

Files/laws đã đọc

  • .claude/skills/incomex-rules.md (36 mục, 8 bước)
  • search_knowledge("operating rules SSOT")
    • hit chính: knowledge/dev/ssot/vps/vps-operating-rules.md
  • search_knowledge("hiến pháp v4.0 constitution")
    • hit chính: knowledge/dev/laws/constitution.md
  • knowledge/dev/laws/constitution.md
    • title: HIẾN PHÁP KIẾN TRÚC HỆ THỐNG INCOMEX — v4.6.2 BAN HÀNH
    • revision: 23
  • knowledge/dev/laws/dieu43-system-context-law.md
    • title: Điều 43 — Luật Bản đồ Hệ thống v1.2 FINAL (BAN HÀNH 2026-04-17)
    • revision: 25
  • knowledge/current-state/reports/phase4a-p0-design-plan.md
    • revision: 1
  • knowledge/dev/laws/dieu43-migrations/report-phase1-6-apply.md
    • revision: 1
  • knowledge/dev/laws/dieu43-migrations/07-dieu43-v1-2-fdw-optimize.sql
    • revision: 1

3 câu tuyên ngôn cho mission này

  1. Vĩnh viễn?
    Có. Template + SQL sẽ nằm trong KB, còn PG chỉ giữ path SSOT. Thêm section hoặc sửa render sau này = đổi KB/UPDATE row, không sửa renderer.
  2. Nhầm được không?
    Có chặn. Path whitelist đã nằm trong luật/PG CHECK, SQL phải readonly, và phiên này dừng ở mức thiết kế vì wording volatile header chưa được ban hành rõ.
  3. 100% tự động?
    Có hướng đúng. Stage D' sau sẽ chỉ đọc context_pack_section_definitions + template/query từ KB và render generic, không case-dispatch per-section.

Bước 1 — Fact hiện tại từ production

1.1. 8 row context_pack_section_definitions live

project_map        markdown  pg_query  {"placeholder_style": "mustache"}                         NULL  NULL
laws_index         markdown  kb_query  {"source_patterns_key": "context_pack_watched_key_patterns"} NULL  NULL
dot_registry       markdown  pg_query  {}                                                         NULL  NULL
entities_overview  markdown  pg_query  {"group_by": "species"}                                   NULL  NULL
db_map             markdown  pg_query  {"whitelist_key": "context_pack_scan_db_whitelist"}       NULL  NULL
red_zones          markdown  static    {}                                                         NULL  NULL
architecture_mmd   mermaid   pg_query  {"diagram_type": "flowchart"}                             NULL  NULL
project_map_json   json      pg_query  {}                                                         NULL  NULL

1.2. Full metadata 8 row live

project_map        Project Map            1  PROJECT_MAP.md       markdown  3000  15000 20000 pg_query {"placeholder_style": "mustache"}                             NULL NULL t
laws_index         Laws Index             2  LAWS_INDEX.md        markdown  1000   8000 15000 kb_query {"source_patterns_key": "context_pack_watched_key_patterns"} NULL NULL t
dot_registry       DOT Registry           3  DOT_REGISTRY.md      markdown  2000  20000 30000 pg_query {}                                                         NULL NULL t
entities_overview  Entities Overview      4  ENTITIES_OVERVIEW.md markdown   500   5000 10000 pg_query {"group_by": "species"}                                   NULL NULL t
db_map             Database Map           5  DB_MAP.md            markdown  1000  10000 15000 pg_query {"whitelist_key": "context_pack_scan_db_whitelist"}       NULL NULL t
red_zones          Red Zones              6  RED_ZONES.md         markdown   500   3000  8000 static   {}                                                         NULL NULL t
architecture_mmd   Architecture Diagram   7  ARCHITECTURE.mmd     mermaid    500   8000 15000 pg_query {"diagram_type": "flowchart"}                             NULL NULL t
project_map_json   Project Map JSON       8  project-map.json     json       200   2000  5000 pg_query {}                                                         NULL NULL t

1.3. dot_config live liên quan thiết kế

context_pack_grace_period_days  7
context_pack_mode               warn
context_pack_output_root        /opt/incomex/context-pack
context_pack_retry_policy       {"max_retries":3,"backoff_seconds":[60,300,1800]}
context_pack_scan_db_whitelist  []
context_pack_scan_paths         ["/opt/incomex/dot/bin","/opt/incomex/web/app","/opt/incomex/deploy","/opt/incomex/scripts"]
context_pack_watched_key_patterns ["knowledge__dev__laws__%","knowledge__dev__ssot__%","knowledge__dev__architecture__%"]

1.4. Dữ liệu sống hỗ trợ thiết kế query

dot_tools aggregate: total=272 | active=256 | tier_a=49 | tier_b=223

birth_registry top groups:
system_log       atom     observed 25534
junction_table   atom     excluded  6980
governance_infra atom     observed  4524
directus_field   atom     observed  1500
system_issue     atom     governed  1195
...

pg_database:
directus           313801751
incomex_metadata    52132887
postgres             7699479
workflow             7773207

system_issues aggregate:
CRITICAL open      1
warning  open    284
WARNING  open    117
info     open      1

1.5. KB metadata live hỗ trợ laws_index

knowledge__dev__laws__dieu43-system-context-law.md
  title=Điều 43 — Luật Bản đồ Hệ thống v1.2 FINAL (BAN HÀNH 2026-04-17)
  document_id=knowledge/dev/laws/dieu43-system-context-law.md

knowledge__dev__laws__dieu43-migrations__report-phase4a-p1-p2.md
  title=Dieu43 Phase 4a P1+P2 Report (Skeleton + Bước 1-4 build.sh)
  document_id=knowledge/dev/laws/dieu43-migrations/report-phase4a-p1-p2.md

knowledge__dev__laws__dieu43-migrations__07-dieu43-v1-2-fdw-optimize.sql
  title=Dieu43 v1.2 rev 3 Phase 1.6 migration 07-dieu43-v1-2-fdw-optimize.sql
  document_id=knowledge/dev/laws/dieu43-migrations/07-dieu43-v1-2-fdw-optimize.sql

Bước 2 — Volatile header status

Kết luận

CHƯA CÓ wording mới trong luật rev 4. Phải báo Desktop amend rev 5 trước khi upload template/query ở Task 2.

Evidence

  • Đã đọc full dieu43-system-context-law.md revision 25 (v1.2 FINAL rev 4).
  • Rev 4 có wording:
    • CẤM built-in renderer fallback
    • CẤM case-dispatch per-section
    • Template NULL hoặc query NULL phải FAIL-FAST
  • Rev 4 KHÔNG ghi rõ format mới:
    • md/mermaid: <!-- VOLATILE HEADER -->...<!-- /VOLATILE HEADER -->
    • json: key _volatile_header
  • Tài liệu gần nhất có nhắc header là phase4a-p0-design-plan.md revision 1, nhưng vẫn dùng convention cũ:
    • opening: <!-- VOLATILE HEADER — excluded from logical_checksum -->
    • closing: <!-- END VOLATILE HEADER -->

Quyết định theo prompt

  • Task 1 vẫn thiết kế outline + SQL.
  • Task 2 phải dừng cho đến khi Desktop amend Đ43 lên rev 5 và ban hành exact wording volatile header.

Nội dung Desktop cần amend ở rev 5

  • md/mermaid: exact marker mở/đóng
    • <!-- VOLATILE HEADER -->
    • <!-- /VOLATILE HEADER -->
  • json: exact key _volatile_header
  • checksum strip rule tương ứng với marker mới
  • renderer contract: common runtime fields nào luôn có cho cả static section

Bước 3 — Thiết kế 8 template + 7 SQL

3.1. project_map

  • Current row:
    • format=markdown
    • data_source=pg_query
    • render_config={"placeholder_style":"mustache"}
  • Proposed template path:
    • knowledge__current-state__templates__project_map.md.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__project_map.sql
  • Template outline:
# PROJECT MAP
[VOLATILE_HEADER_PENDING_REV5]

## System Snapshot
- Enacted laws: {{law_count_enacted}}
- Active DOTs: {{dot_count_active}} / {{dot_count_total}}
- Live entities: {{entity_count_total}}
- Live species: {{species_count_live}}
- Databases in cluster: {{db_count_total}}
- Open critical issues: {{critical_open_count}}

## 3-Layer Summary
{{#layer_rows}}
- {{layer_name}}: {{summary_text}}
{{/layer_rows}}

## Active Databases
{{#databases}}
- {{db_name}} | {{role_label}} | {{size_pretty}} | gateway={{legal_gateway}}
{{/databases}}

## DOT Coverage
{{#dot_domain_counts}}
- {{domain}}: {{dot_count}}
{{/dot_domain_counts}}

## Live Risk Signals
{{#issue_counts}}
- {{severity}}/{{status}}: {{issue_count}}
{{/issue_counts}}

## Key References
{{#reference_laws}}
- {{code}} | Điều {{article_number}} | {{name}} | v{{version}} | {{kb_path}}
{{/reference_laws}}
  • Placeholder names:
    • law_count_enacted
    • dot_count_active
    • dot_count_total
    • entity_count_total
    • species_count_live
    • db_count_total
    • critical_open_count
    • layer_rows
    • databases
    • dot_domain_counts
    • issue_counts
    • reference_laws
  • SQL design:
    • Target DB: directus
    • Read tables/views: normative_registry, dot_tools, birth_registry, system_issues, pg_database
    • Return fields map:
      • scalars: law/dot/entity/species/db/critical counts
      • arrays: layer_rows, databases, dot_domain_counts, issue_counts, reference_laws
    • Query skeleton:
WITH law_summary AS (
  SELECT
    count(*) FILTER (WHERE status = 'enacted') AS law_count_enacted,
    jsonb_agg(
      jsonb_build_object(
        'code', code,
        'article_number', article_number,
        'name', name,
        'version', version,
        'kb_path', kb_path
      )
      ORDER BY enacted_at DESC NULLS LAST, code
    ) FILTER (WHERE status = 'enacted') AS reference_laws
  FROM normative_registry
),
dot_summary AS (
  SELECT
    count(*) AS dot_count_total,
    count(*) FILTER (WHERE status = 'active') AS dot_count_active
  FROM dot_tools
),
entity_summary AS (
  SELECT
    count(*) AS entity_count_total,
    count(DISTINCT species_code) AS species_count_live
  FROM birth_registry
),
issue_summary AS (
  SELECT
    count(*) FILTER (WHERE lower(severity) = 'critical' AND status = 'open') AS critical_open_count,
    jsonb_agg(
      jsonb_build_object('severity', severity, 'status', status, 'issue_count', cnt)
      ORDER BY severity, status
    ) AS issue_counts
  FROM (
    SELECT severity, status, count(*) AS cnt
    FROM system_issues
    GROUP BY severity, status
  ) s
),
db_summary AS (
  SELECT
    count(*) AS db_count_total,
    jsonb_agg(
      jsonb_build_object(
        'db_name', datname,
        'size_bytes', pg_database_size(datname),
        'size_pretty', pg_size_pretty(pg_database_size(datname)),
        'role_label',
          CASE datname
            WHEN 'directus' THEN 'warehouse'
            WHEN 'incomex_metadata' THEN 'brain-store'
            WHEN 'workflow' THEN 'engine'
            WHEN 'postgres' THEN 'cluster-admin'
            ELSE 'other'
          END,
        'legal_gateway',
          CASE datname
            WHEN 'directus' THEN 'Directus REST + DOT + fn_*'
            WHEN 'incomex_metadata' THEN 'Agent Data FastAPI'
            WHEN 'workflow' THEN 'future workflow engine'
            WHEN 'postgres' THEN 'cluster admin only'
            ELSE 'review'
          END
      )
      ORDER BY datname
    ) AS databases
  FROM pg_database
  WHERE datistemplate = false
)
SELECT ...

3.2. laws_index

  • Current row:
    • format=markdown
    • data_source=kb_query
    • render_config={"source_patterns_key":"context_pack_watched_key_patterns"}
  • Proposed template path:
    • knowledge__current-state__templates__laws_index.md.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__laws_index.sql
  • Template outline:
# LAWS INDEX
[VOLATILE_HEADER_PENDING_REV5]

## Watch Patterns
{{#source_patterns}}
- {{pattern}}
{{/source_patterns}}

## Matched Documents
{{#documents}}
- [{{title}}]({{document_id}})
  family={{doc_family}} | key={{key}} | updated_at={{updated_at}}
  tags={{tags_csv}}
{{/documents}}

## Coverage Summary
{{#family_counts}}
- {{doc_family}}: {{doc_count}}
{{/family_counts}}
  • Placeholder names:
    • source_patterns
    • documents
    • family_counts
  • SQL design:
    • Target DB: incomex_metadata
    • Read tables: kb_documents, _cp_patterns_cache
    • Return fields map:
      • source_patterns
      • documents with title, document_id, key, doc_family, updated_at, tags_csv
      • family_counts
    • Notes:
      • Query should read live patterns from _cp_patterns_cache, not hardcode pattern list.
      • This keeps Đ43 P11 runtime-config principle.
    • Query skeleton:
WITH patterns AS (
  SELECT jsonb_array_elements_text(patterns) AS pattern
  FROM _cp_patterns_cache
  WHERE id = 1
),
docs AS (
  SELECT
    p.pattern,
    k.key,
    k.updated_at,
    COALESCE(k.data->'metadata'->>'title', k.data->>'document_id', k.key) AS title,
    COALESCE(k.data->>'document_id', replace(k.key, '__', '/')) AS document_id,
    COALESCE(k.data->'metadata'->'tags', '[]'::jsonb) AS tags_json,
    CASE
      WHEN k.key LIKE 'knowledge__dev__laws__%' THEN 'laws'
      WHEN k.key LIKE 'knowledge__dev__ssot__%' THEN 'ssot'
      WHEN k.key LIKE 'knowledge__dev__architecture__%' THEN 'architecture'
      ELSE 'other'
    END AS doc_family
  FROM kb_documents k
  JOIN patterns p
    ON k.key LIKE p.pattern
)
SELECT ...

3.3. dot_registry

  • Current row:
    • format=markdown
    • data_source=pg_query
    • render_config={}
  • Proposed template path:
    • knowledge__current-state__templates__dot_registry.md.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__dot_registry.sql
  • Template outline:
# DOT REGISTRY
[VOLATILE_HEADER_PENDING_REV5]

## Registry Summary
- Active: {{active_dot_count}}
- Total: {{total_dot_count}}

## By Tier
{{#tier_counts}}
- Tier {{tier}}: {{dot_count}}
{{/tier_counts}}

## By Trigger Type
{{#trigger_counts}}
- {{trigger_type}}: {{dot_count}}
{{/trigger_counts}}

## Active DOTs
{{#dots}}
- {{code}} | {{tier}} | {{domain}} | {{operation}} | {{trigger_type}}
  paired={{paired_dot}} | coverage={{coverage_status}} | cron={{cron_schedule}}
  last_executed={{last_executed}} | file={{file_path}}
{{/dots}}
  • Placeholder names:
    • active_dot_count
    • total_dot_count
    • tier_counts
    • trigger_counts
    • dots
  • SQL design:
    • Target DB: directus
    • Read table: dot_tools
    • Return fields map:
      • summary counts
      • tier_counts
      • trigger_counts
      • dots
    • Query skeleton:
WITH base AS (
  SELECT *
  FROM dot_tools
  WHERE status = 'active'
),
tier_counts AS (
  SELECT tier, count(*) AS dot_count
  FROM base
  GROUP BY tier
),
trigger_counts AS (
  SELECT trigger_type, count(*) AS dot_count
  FROM base
  GROUP BY trigger_type
)
SELECT ...

3.4. entities_overview

  • Current row:
    • format=markdown
    • data_source=pg_query
    • render_config={"group_by":"species"}
  • Proposed template path:
    • knowledge__current-state__templates__entities_overview.md.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__entities_overview.sql
  • Template outline:
# ENTITIES OVERVIEW
[VOLATILE_HEADER_PENDING_REV5]

## Entity Summary
- Total entities: {{entity_count_total}}
- Live species: {{species_count_live}}

## By Composition Level
{{#composition_counts}}
- {{composition_level}}: {{entity_count}}
{{/composition_counts}}

## By Governance Role
{{#governance_counts}}
- {{governance_role}}: {{entity_count}}
{{/governance_counts}}

## Species Rollup
{{#species_rows}}
- {{species_code}} | {{composition_level}} | total={{entity_count}}
  governed={{governed_count}} observed={{observed_count}} excluded={{excluded_count}}
{{/species_rows}}
  • Placeholder names:
    • entity_count_total
    • species_count_live
    • composition_counts
    • governance_counts
    • species_rows
  • SQL design:
    • Target DB: directus
    • Read table: birth_registry
    • Return fields map:
      • scalar totals
      • arrays: composition_counts, governance_counts, species_rows
    • Query skeleton:
WITH species_rollup AS (
  SELECT
    species_code,
    min(composition_level) AS composition_level,
    count(*) AS entity_count,
    count(*) FILTER (WHERE governance_role = 'governed') AS governed_count,
    count(*) FILTER (WHERE governance_role = 'observed') AS observed_count,
    count(*) FILTER (WHERE governance_role = 'excluded') AS excluded_count
  FROM birth_registry
  GROUP BY species_code
),
composition_counts AS (
  SELECT composition_level, count(*) AS entity_count
  FROM birth_registry
  GROUP BY composition_level
),
governance_counts AS (
  SELECT governance_role, count(*) AS entity_count
  FROM birth_registry
  GROUP BY governance_role
)
SELECT ...

3.5. db_map

  • Current row:
    • format=markdown
    • data_source=pg_query
    • render_config={"whitelist_key":"context_pack_scan_db_whitelist"}
  • Proposed template path:
    • knowledge__current-state__templates__db_map.md.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__db_map.sql
  • Template outline:
# DB MAP
[VOLATILE_HEADER_PENDING_REV5]

## Scan Mode
- mode={{scan_mode}}
- whitelist={{db_whitelist_json}}

## Cluster Databases
{{#databases}}
- {{db_name}} | {{role_label}} | {{size_pretty}} | scan_scope={{scan_scope}}
  gateway={{legal_gateway}}
{{/databases}}
  • Placeholder names:
    • scan_mode
    • db_whitelist_json
    • databases
  • SQL design:
    • Target DB: directus
    • Read tables/views: dot_config, pg_database
    • Return fields map:
      • scan_mode
      • db_whitelist_json
      • databases
    • Notes:
      • Whitelist empty means catalog mode.
      • Keep DB purpose/gateway mapping in SQL/template, not in renderer code.
    • Query skeleton:
WITH cfg AS (
  SELECT value::jsonb AS db_whitelist
  FROM dot_config
  WHERE key = 'context_pack_scan_db_whitelist'
),
dbs AS (
  SELECT
    d.datname AS db_name,
    pg_database_size(d.datname) AS size_bytes,
    pg_size_pretty(pg_database_size(d.datname)) AS size_pretty,
    CASE
      WHEN jsonb_array_length(c.db_whitelist) = 0 THEN true
      ELSE EXISTS (
        SELECT 1
        FROM jsonb_array_elements_text(c.db_whitelist) x
        WHERE x = d.datname
      )
    END AS scan_scope
  FROM pg_database d
  CROSS JOIN cfg c
  WHERE d.datistemplate = false
)
SELECT ...

3.6. red_zones

  • Current row:
    • format=markdown
    • data_source=static
    • render_config={}
  • Proposed template path:
    • knowledge__current-state__templates__red_zones.md.tmpl
  • Proposed query path:
    • NULL by design
  • Template outline:
# RED ZONES
[VOLATILE_HEADER_PENDING_REV5_OR_COMMON_RUNTIME]

## Do Not Bypass
- No built-in renderer fallback
- No case-dispatch per section
- No ALTER TABLE trực tiếp
- No manual INSERT/UPDATE vào KB storage
- No business logic in Nuxt

## Legal Gateways
- `directus` warehouse: read/write `context_pack_section_definitions`
- `incomex_metadata` brain store: write via Agent Data FastAPI only

## Enforcement Laws
- HP v4.6.2 NT1-NT13
- Đ43 v1.2 rev 4
- Đ35 v5.1
- Đ41

## Recovery Path
- Fix law/config/template/query
- Re-run builder/verify pair
- Paste real verify output
  • Placeholder names:
    • none section-specific
    • common runtime header placeholder pending rev 5
  • SQL design:
    • none
    • query_kb_path must stay NULL

3.7. architecture_mmd

  • Current row:
    • format=mermaid
    • data_source=pg_query
    • render_config={"diagram_type":"flowchart"}
  • Proposed template path:
    • knowledge__current-state__templates__architecture_mmd.mmd.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__architecture_mmd.sql
  • Template outline:
{{diagram_type}} TD
%% [VOLATILE_HEADER_PENDING_REV5]

subgraph Gate["CỔNG"]
  nuxt["Nuxt Web"]
  directus_admin["Directus Admin"]
  github_actions["GitHub Actions"]
end

subgraph Warehouse["KHO"]
  {{#database_nodes}}
  {{node_id}}["{{label}}"]
  {{/database_nodes}}
end

subgraph Brain["NÃO"]
  agent_data["Agent Data FastAPI"]
  qdrant["Qdrant"]
  {{#scan_path_nodes}}
  {{node_id}}["{{label}}"]
  {{/scan_path_nodes}}
end

nuxt --> directus
directus_admin --> directus
github_actions --> directus
agent_data --> incomex_metadata
{{#runtime_edges}}
{{from}} --> {{to}}
{{/runtime_edges}}
  • Placeholder names:
    • diagram_type
    • database_nodes
    • scan_path_nodes
    • runtime_edges
  • SQL design:
    • Target DB: directus
    • Read tables/views: dot_config, pg_database
    • Return fields map:
      • diagram_type
      • database_nodes with node_id, label
      • scan_path_nodes from context_pack_scan_paths
      • runtime_edges linking live DB nodes into static 3-layer diagram
    • Query skeleton:
WITH dbs AS (
  SELECT
    datname,
    replace(datname, '-', '_') AS node_id,
    datname || E'\\n' || pg_size_pretty(pg_database_size(datname)) AS label
  FROM pg_database
  WHERE datistemplate = false
),
scan_paths AS (
  SELECT
    replace(regexp_replace(value, '[^a-zA-Z0-9]+', '_', 'g'), '__', '_') AS node_id,
    value AS label
  FROM dot_config,
       jsonb_array_elements_text(value::jsonb)
  WHERE key = 'context_pack_scan_paths'
)
SELECT ...

3.8. project_map_json

  • Current row:
    • format=json
    • data_source=pg_query
    • render_config={}
  • Proposed template path:
    • knowledge__current-state__templates__project_map_json.json.tmpl
  • Proposed query path:
    • knowledge__current-state__queries__project_map_json.sql
  • Template outline:
{
  "_volatile_header": [PENDING_REV5],
  "summary": {{{summary_json}}},
  "laws": {{{laws_json}}},
  "dots": {{{dots_json}}},
  "entities": {{{entities_json}}},
  "databases": {{{databases_json}}},
  "issues": {{{issues_json}}}
}
  • Placeholder names:
    • summary_json
    • laws_json
    • dots_json
    • entities_json
    • databases_json
    • issues_json
  • SQL design:
    • Target DB: directus
    • Read tables/views: normative_registry, dot_tools, birth_registry, system_issues, pg_database
    • Return fields map:
      • six JSON fragments already serialized for triple-mustache insertion
    • Query skeleton:
WITH summary AS (...),
laws AS (...),
dots AS (...),
entities AS (...),
databases AS (...),
issues AS (...)
SELECT
  summary.summary_json,
  laws.laws_json,
  dots.dots_json,
  entities.entities_json,
  databases.databases_json,
  issues.issues_json
FROM summary, laws, dots, entities, databases, issues;

Bước 4 — Proposed path mapping after Desktop approves Task 1

code template_kb_path query_kb_path
project_map knowledge__current-state__templates__project_map.md.tmpl knowledge__current-state__queries__project_map.sql
laws_index knowledge__current-state__templates__laws_index.md.tmpl knowledge__current-state__queries__laws_index.sql
dot_registry knowledge__current-state__templates__dot_registry.md.tmpl knowledge__current-state__queries__dot_registry.sql
entities_overview knowledge__current-state__templates__entities_overview.md.tmpl knowledge__current-state__queries__entities_overview.sql
db_map knowledge__current-state__templates__db_map.md.tmpl knowledge__current-state__queries__db_map.sql
red_zones knowledge__current-state__templates__red_zones.md.tmpl NULL
architecture_mmd knowledge__current-state__templates__architecture_mmd.mmd.tmpl knowledge__current-state__queries__architecture_mmd.sql
project_map_json knowledge__current-state__templates__project_map_json.json.tmpl knowledge__current-state__queries__project_map_json.sql

Bước 5 — Desktop decision requested

Đề nghị Desktop chốt 2 việc trước Task 2

  1. Amend Đ43 lên rev 5 để ban hành exact volatile header wording:
    • md/mermaid: <!-- VOLATILE HEADER -->...<!-- /VOLATILE HEADER -->
    • json: key _volatile_header
  2. Approve hoặc chỉnh 8 outline + 7 SQL design ở trên.

Sau khi Desktop duyệt

  • Upload 8 template vào KB
  • Upload 7 SQL vào KB
  • UPDATE 8 row context_pack_section_definitions
  • Verify 8 row hậu update

Bước 6 — Kết luận

  • Task 1 đã hoàn thành phần thiết kế trên dữ liệu live của production.
  • Chưa làm Task 2.
  • Reason dừng: Đ43 rev 4 chưa ban hành exact volatile header wording mới, trong khi prompt yêu cầu CLI phải dừng và báo Desktop amend rev 5 trước khi làm tiếp.

Pre-D' report by Codex CLI | 2026-04-17 | Task 1 done, Task 2 blocked by rev 5 wording gate