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

26 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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ẩy**`MSB4186` 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ó).