KB-5174

GPT Review — B3-F1c-c Patched Docs Second Pass — Patch Required Before Agent — 2026-05-13

5 min read Revision 1
p3dbirth-systemb3f1c-cschedulersecond-passpatch-requiredno-hardcode2026-05-13

GPT Review — B3-F1c-c Patched Docs Second Pass — PATCH REQUIRED BEFORE AGENT — 2026-05-13

Scope reviewed

Reviewed patched documents after Opus applied 7 constitutional patches:

  • knowledge/dev/laws/dieu44-trien-khai/design/p3d-birth-system-b3f1c-c-directus-nuxt-dot-scheduler-design.md revision 12
  • knowledge/dev/laws/dieu44-trien-khai/prompts/p3d-birth-system-b3f1c-c-scheduler-shape-probe-and-artifact-prompt-DRAFT.md revision 8
  • knowledge/dev/laws/dieu44-trien-khai/reports/p3d-birth-system-b3f1c-c-scheduler-design-report.md revision 4

Previous GPT review:

  • knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-b3f1c-c-line-review-followup-patch-required-2026-05-13.md

Verdict

Status: PATCH_REQUIRED_BEFORE_AGENT_PROBE

Opus applied the 7 requested patches materially, but GPT found remaining text that can still violate no-hardcode / no-unauthorized-schema-change / safe-probe principles. Do not dispatch Agent yet.

Remaining issue 1 — design still suggests creating a column in this phase

Design §5 risk table currently says:

system_issues doesn't have JSONB column | Can't store structured summary | Use description text, or create lightweight column

This contradicts the patched observability section and current phase boundary. B3-F1c-c-a is probe/compile only and must not propose unauthorized schema changes as a mitigation.

Required patch:

  • Replace with:
Use description text with observability_status=PARTIAL, or mark BLOCKED_FOR_OBSERVABILITY_DECISION. Do not create a new table or column in this phase.

Remaining issue 2 — registry role table still states classification (Cấp B — writes system_issues) as if fixed

Design §A registry table currently says:

| dot_tools | Governance | Tool registration, classification (Cấp B — writes system_issues), DOT origin |

Later sections correctly qualify classification as candidate/live-derived, but this table can still anchor Agent or future readers.

Required patch:

  • Replace with candidate wording:
Tool registration, live-derived classification/taxonomy, DOT origin

or equivalent. Do not name Cấp B as truth unless live DOT taxonomy is probed and approved.

Remaining issue 3 — prompt queries dot_tools columns before proving schema

Prompt Phase 2a starts with:

SELECT tool_name, trigger_type, cron_schedule, script_path, executor_ref, classification
FROM dot_tools
...

If any of these columns do not exist, the read-only probe may fail before it can discover schema and report BLOCKED_FOR_DOT_GOVERNANCE_DECISION. This is fragile at scale and violates the safe-probe principle.

Required patch:

  • Reorder Phase 2:
    1. Check dot_tools table existence.
    2. Query information_schema.columns for full schema.
    3. Only query scheduled-flow-like rows using columns proven to exist.
    4. If required semantics cannot be mapped, report BLOCKED_FOR_DOT_GOVERNANCE_DECISION.

Remaining issue 4 — prompt queries Directus Flow columns before proving shape

Prompt Phase 1 assumes columns in directus_flows and directus_operations. These are likely stable Directus tables, but under zero-trust review the prompt should still first confirm table/column existence, or at least state these are Directus system tables expected to exist and that schema mismatch must stop as BLOCKED.

Required patch:

  • Add preflight before Phase 1:
Verify directus_flows and directus_operations exist and contain required columns before querying pattern rows. If not, stop as BLOCKED_DIRECTUS_FLOW_SCHEMA_MISMATCH.

Remaining issue 5 — final fields do not include BLOCKED reason fields

Prompt final fields include status booleans but not structured reason fields for critical blockers such as:

  • BLOCKED_PATTERN_UNDISCOVERABLE
  • BLOCKED_FOR_DOT_GOVERNANCE_DECISION
  • BLOCKED_FOR_OBSERVABILITY_DECISION

Required patch:

  • Add final fields:
blocked_reason=<none|BLOCKED_PATTERN_UNDISCOVERABLE|BLOCKED_FOR_DOT_GOVERNANCE_DECISION|BLOCKED_FOR_OBSERVABILITY_DECISION|BLOCKED_NUXT_PATTERN_UNDISCOVERABLE|BLOCKED_SCHEMA_MISMATCH>
observability_status=PASS|PARTIAL|BLOCKED_FOR_OBSERVABILITY_DECISION

Accepted improvements

The following are now acceptable:

  • Diagram URL de-anchored.
  • Directus-only cadence rejected.
  • Cadence candidate logic improved.
  • Directus Flow pattern undiscoverable path added.
  • Future manual test call marked DML-affecting and requiring approval.
  • Git commit marked separate approval.
  • Observability candidate section substantially improved.

Governance status

b3f1c_c_second_pass_review_status=PATCH_REQUIRED_BEFORE_AGENT_PROBE
agent_probe_allowed=false
scheduler_execution_allowed=false
directus_flow_creation_allowed=false
nuxt_endpoint_creation_allowed=false
dot_config_mutation_allowed=false
dot_tools_mutation_allowed=false
b3f_complete_allowed=false
phase5c2_migration_allowed=false
next_recommended_action=OPUS_PATCH_B3F1C_C_DOCS_SECOND_PASS
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-b3f1c-c-patched-docs-second-pass-patch-required-2026-05-13.md