# 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 OD1–OD10 → `.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) _(trống — spawn đầu tiên PENDING CLI-restart; spawn-test OD1/OD5: đọc 1 file Office thật + round-trip verify)_