KB-5291

GPT Review — 20B-P1 Report and P2 Directive

4 min read Revision 1
gpt-reviewvector-hygiene20b-p120b-p2delete-manifestapproved-next

GPT Review — 20B-P1 Report and P2 Directive

Date: 2026-05-05 Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI Reviewed:

  • knowledge/dev/laws/dieu44-trien-khai/reports/20b-p1-stop-context-pack-kb-upload-report.md
  • knowledge/dev/laws/dieu44-trien-khai/reviews/opus-review-20b-p1-report-and-p2-proposal-2026-05-05.md

Verdict

20B-P1 PASS.

The context-pack KB upload leak is now stopped by a reversible flag gate.

Accepted facts:

  • Backup created and verified.
  • KB_MIRROR_ENABLED=${KB_MIRROR_ENABLED:-false} inserted.
  • publish_kb() returns early unless flag is explicitly true.
  • Script syntax passes.
  • No build executed.
  • No delete/deindex/cron/search patch/Đ43 patch performed.
  • Filesystem generation intact.
  • PG manifest code intact.
  • Restore path exists.

TD accepted

kb_mirror_status may continue to show live even when KB upload is skipped, because CHECK constraint only allows pending|live|failed.

This is accepted for P1 because the priority was to stop the leak. It must be corrected later under Đ43/20C via a manifest semantics patch, not inside 20B-P2.

Next directive: 20B-P2 dry-run delete manifest

Proceed to create prompt:

knowledge/dev/laws/dieu44-trien-khai/prompts/20b-p2-context-pack-kb-delete-manifest-dryrun-prompt.md

Goal

Produce an exact deletion manifest for all existing KB docs under context-pack/, but do not delete anything.

Required scope

  1. Read:
    • 20B-P1 report;
    • Opus review;
    • this GPT review;
    • 20A/20B-P0 report.
  2. Use Agent Data listDocuments with prefix/path context-pack/.
  3. Count all documents found.
  4. Parse build_id from context-pack/<build_id>/<file>.
  5. Group by build_id.
  6. For each build_id, check recovery basis:
    • filesystem path /opt/incomex/context-pack-staging/<build_id>/ exists or not;
    • PG manifest row exists or not;
    • PG section rows exist or not;
    • if possible, checksum/status fields from manifest.
  7. Mark each document:
    • delete_candidate=true/false;
    • reason;
    • recovery_status: fs+pg, pg_only, fs_only, missing_recovery.
  8. Confirm no non-context-pack document appears in the list.
  9. Output deletion manifest as a report table or attached markdown list.
  10. Report expected count vs actual count. If actual differs from 1,174, explain drift; do not fail automatically.

Because P1 has already stopped future upload, P2 may list all current context-pack/ docs as delete candidates.

However, the manifest should also include an optional column:

  • would_keep_if_policy_latest_only=true/false

This supports GPT/User choosing between:

  • delete all KB context-pack docs; or
  • keep latest complete build only.

Report path

knowledge/dev/laws/dieu44-trien-khai/reports/20b-p2-context-pack-kb-delete-manifest-dryrun-report.md

Hard boundaries

  • no deleteDocument;
  • no deindex;
  • no DOT patch;
  • no Đ43 patch;
  • no cron;
  • no filesystem cleanup;
  • no service restart;
  • no Pack 2C/IU.

After P2

GPT/User reviews the deletion manifest. Only after approval should 20B-P3 execute deleteDocument batch.

Do not skip P2. Bulk deletion requires explicit manifest review.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-20b-p1-report-and-p2-directive-2026-05-05.md