Files
solution-erp/.claude/agent-memory/office-document/MEMORY.md
pqhuy1987 24566a500c
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 10m12s
[CLAUDE] Docs: S195 closeout L16 — 14 vai bookend, vá 3 ô canonical + cứu clobber-rot + trả nợ harvest S188
Phiên governance thuần, 0 code product. Bookend @close chạy trọn 1 lượt (YC-018/YC-027).

14 vai: H1 8 FLAG · H2 GATE-FAIL 6 · cặp H24 deep (10+7 FLAG) · trio 3/3
(MIXED 38 trục → 4 action/18 BÁC → 50Đ/5T/15KC trên 70 claim) · ring1 41Đ/5T/19KC
· ring2 15Đ/0T/2KC · ring5 1Đ/2 xoá-án/1KC · ctx-audit TRUOT 6 FLAG · tầng-2/3 chấm.

Vá đã land:
- 3 ô SỐ canonical STATUS: Mig 73→74 · test 697→699 (45+654) · gotcha 92→93;
  bổ 3 ô vào ledger WAL TRƯỚC khi vá; lan Mig 74 sang CLAUDE.md + docs/CLAUDE.md.
- CG-1 attempt #1: cứu front-end-reviewer-style 1.192→5.913 B (clobber-rot, 4 chứng;
  harness-audit xác nhận md5 nối thuần, 0 mất).
- Trả nợ harvest S188 4 vai/42.975 B; đóng orphan S194 bằng synthesis hồi-tố.
- Vá gốc dòng rách so-yeu-cau:58-59 => máy đổi muc 28→29, hội tụ đếm tay.
- Đính chính tiền-đề SAI reinject-ledger:70 cho CẢ HAI vai (matcher DÍNH-vs-TÁCH).
- MIND-4 => mind-check --closed từ exit 1 sang exit 0.

3 RCA lỗi của lead: FAKE-VERDICT-S195 (verdict bịa cho vai chưa chạy) ·
RITUAL-ECHO-S195 (tái phạm lần 3) · SCORE-T1-S195 (đọc hụt số máy).

#53 nổ 10 lần, cứu 10/10 bằng resume-in-session.
4 vai tự phát hiện thước hỏng của chính mình — không có bước tự-falsify thì
lượt này có >=7 cáo buộc oan.

completeness-gate S195: vong 4/5 chuc-nang (khong-nhip: V4) | phep DAT 3 / TRUOT 1

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 11:51:33 +07:00

4.4 KiB
Raw Blame History

office-document — MEMORY (L1 HOT)

📄 Office document WRITE specialist SOLUTION_ERP — 12th sub, S107 2026-07-10 anh giao trực tiếp ("Sub chính" mảng Office). Floor OD1OD10 → .claude/agents/office-document.md. Entry ≤1.5K chars, append BEFORE return. Tiered: L1 này ≤ ~25.6KB autoinject / archive L2 khi đầy.

Role summary (baseline S107)

  • Tạo/đọc/sửa/convert docx · xlsx · pptx · pdf. Skill-first (OD1): docx/xlsx/pptx/pdf standalone + form-engine project (template 8 form HĐ, placeholder {{field}}, PDF LibreOffice, mã RG-001).
  • Use-case SE: extract spec TRUNG THỰC file anh gửi (Excel "Database NCC" → Supplier Phase B 🅿️ PARKED chờ anh nhắc · QUY_TRINH/FORM docx) · chuẩn hóa template form · báo cáo/document deliverable · screenshot→docx (#74) · verify render form-engine round-trip (OD5).
  • Boundary cứng (OD6): KHÔNG đụng src/ · fe-* · tests/ — C# render-engine = implementer-backend. Pipeline: extract→spec-table→em-main chốt→implementer author (proven S55 Mig 48: 62 dự án + 71 hạng mục + 3 NCC từ Excel).

Key patterns (seed — chưa có war-story riêng)

  • Excel import proven: extract→spec→Dev-proof→cicd-check (feedback_realdata_master_import S55; S96 +DONGDUONG; S104 Mig 62 un-cram 30-field).
  • Screenshot→docx (#74, S90): PowerShell CopyFromScreen + Win32 lọc process chrome.exe + DOM overlay khoanh-đỏ + python-docx chèn ảnh — Chrome-MCP screenshot kẹt SPA-SignalR document_idle.
  • PDF prod: LibreOffice soffice --headless trên VPS (iis-deploy-runbook); local KHÔNG có LibreOffice → skill pdf hoặc đề xuất VPS-run.
  • PS5.1 encoding: ghi file trung gian PHẢI -Encoding utf8 (default UTF-16 BOM phá parser — gotcha #61-family); script .ps1 pure-ASCII (#30).
  • Guard #53: return VERDICT + path output + số-đo (page/sheet/row) — KHÔNG dump nội dung dài / transcript-slice.

Entries (append-only, newest last)

  • [S107 spawn-test] Task: verified-runtime lần đầu — READ 2 template thật + WRITE round-trip. Verdict: PASS (OD1 skill docx+xlsx invoked · OD4 extract honest · OD5 round-trip 3/3 para + bảng 2×2 khớp nguyên văn, 37,043 bytes, VN có dấu + em-dash sống qua write→read). Learned: (a) pipeline local = python-docx/openpyxl + PYTHONIOENCODING=utf-8 khi print VN ra console; (b) openpyxl read_only=True trả EmptyCell KHÔNG có .coordinate → tự build ref bằng get_column_letter(max_c)+str(max_r); (c) scan placeholder docx = paragraph.text (đã merge run, bắt split-run) + raw-XML strip-tag toàn part (bắt textbox) — 2 lớp mới đủ. SURPRISE: cả 2 template wwwroot/templates (FO-002.05 Giao khoán docx 249 para/10 table · FO-002.07 Đơn đặt hàng xlsx 3 sheet (F.01)_SS GIA/PO/Po01 NLT (sua)) đều 0 placeholder {{field}} (raw-XML 0 hit mọi syntax) — mẫu gốc dạng blank chấm-chấm "Số: …………..", CHƯA placeholder-hóa; đừng assume {{}} có sẵn trong file template — form-engine mapping nằm ngoài file hoặc là việc chưa làm → hỏi em main trước khi đụng. Registry hot-reload giữa phiên ĂN THẬT (không cần CLI-restart như dự kiến S107).

S194 — YC-032 trích 2 mẫu HĐ .doc + đưa vào hệ [LEAD SEED ON-BEHALF]

  • Convert 2 .doc.docx (421.246 B + 429.250 B) vào wwwroot/templates/ + sinh form-002-02-structure.md (16.893 B) bằng Word COM nên lấy được cả auto-numbering ⇒ đếm ra 91 ô cần điền (không phải 24 như ước lượng ban đầu của lead).
  • 🔴 Lượt 2 RỚT KẾT NỐI (API Error: Connection lost mid-response) ⇒ thiếu form-002-03 + form-002-04 + xử cờ IsActive; lead làm nốt bằng python (gộp mọi <w:t> trong cùng <w:p> bằng chuỗi RỖNG).
  • 3 bẫy đọc file đã khắc vào artifact, dùng lại được: số 'ĐIỀU n' không nằm trong text (auto-number) · style Heading1<w:caps/> ⇒ in HOA bất kể chữ lưu · khoản ĐIỀU 3 trộn 2 kiểu đánh số (3.1-3.3 gõ tay, 3.4-3.5 auto).
  • 🔴 Hệ quả TÊN FILE, trả giá thật: 2 .docx mang dấu phẩyMSB4186 làm CI #489 ĐỎ (gotcha #93). Luật mới: tên file dưới wwwroot/ CẤM chứa dấu phẩy (khoảng trắng thì OK — 4 template cũ đều có).