# Session 2026-04-23 ~23:59 — Chốt session 2: PE skeleton + G-084 + docs

**Focus:** Chốt toàn bộ MD trước khi sang session mới. PE module còn
CHỈNH NHIỀU (user nhấn mạnh), G-084 hardening apply preemptively.

## Commits session này (7 total)

| Commit | Nội dung |
|---|---|
| `2c6f0ca` | Domain+Infra — 10 bảng PE + migration 12 + seed menu/workflow |
| `4678d19` | App+Api — PurchaseEvaluation CQRS (~900 LOC) + Controller 15 endpoint + WorkflowService |
| `a737196` | FE 2 app — PE pages (List/Create/Detail tabs) + menu resolver Pe_*/PeWf_* |
| `a385d70` | Kế thừa HĐ — CreateContractFromEvaluationCommand + FE dialog pick ContractType |
| `aaf03be` | Docs Phase 6 — STATUS/HANDOFF/schema-diagram/migration-todos/session log |
| `3990066` | G-084 hardening — localhost → 127.0.0.1 scripts + skill + gotcha #33 |
| `(this)` | Chốt session — STATUS/HANDOFF/migration-todos/skills/CLAUDE/architecture |

Tất cả đã push lên Gitea `main`. Runner cần verify apply deploy.

## MD files updated

| File | Changes |
|---|---|
| `docs/STATUS.md` | Phase hiện tại + In Progress PE refinement (nhóm A/B/C/D), +G-084 row Recently Done |
| `docs/HANDOFF.md` | TL;DR session 2 + Priority 0 PE refinement + cảnh báo session tiếp |
| `docs/changelog/migration-todos.md` | Phase 7 PE refinement checklist (A/B/C/D) |
| `docs/architecture.md` | Section 9 PurchaseEvaluation module (ERD + workflow + kế thừa HĐ) |
| `docs/database/schema-diagram.md` | §11 PE module full (done session trước) |
| `docs/gotchas.md` | #33 G-084 IPv4/IPv6 port hijack (done session trước) |
| `CLAUDE.md` (root) | Scope commit `PurchaseEvaluation`, 5 file đọc đầu, 12 migration, 46 bảng, modules table |
| `.claude/skills/README.md` | 3 skill cross-ref Phase 6 PE |
| `.claude/skills/contract-workflow/SKILL.md` | Cross-ref PE workflow separate tables |
| `.claude/skills/permission-matrix/SKILL.md` | +Pe_*/PeWf_* menu keys + TODO grant non-admin |
| `.claude/skills/ef-core-migration/SKILL.md` | 12 migration history + Phase 7 pending |
| `.claude/skills/iis-deploy-runbook/SKILL.md` | +Hardening section G-084 + localhost→127.0.0.1 (done session trước) |

## Session tiếp cần làm — đọc STATUS.md §🔥 In Progress

**User feedback khóa chốt:** "phần Duyệt NCC chưa xong đâu đấy nhé, còn chỉnh nhiều"

### Priority 0 (PE refinement)
1. PE Workflow admin designer UI `/system/pe-workflows/:typeCode`
2. PE Attachments upload (reuse ContractAttachment pattern)
3. Ý kiến 4 phòng ban section (Phê duyệt/CCM/MuaHàng/SM-PM)
4. Payment terms tách field từ JSON blob → 6 column
5. Demo PE data seed
6. Permission grant Pe_* cho non-admin role
7. MaPhieu format chính thức (user confirm)
8. Export PDF/Excel
9. Auto-map PE Details → Contract Details (optional)

### Priority 1 (blockers user/ops)
- UAT thật, SMTP, rotate creds, SQL backup schedule
- Verify commit 3990066 đã apply prod (runner status)

### Audit cron
- `solution-erp-skill-audit-monthly` fire 2026-05-01 9:00 AM
- Log vào `docs/changelog/skill-audit-2026-05.md`

## Stats cuối session 2

| | Đầu session 2 | Cuối session 2 | Δ |
|---|---:|---:|---:|
| BE LOC | ~8800 | ~11100 | +2300 |
| DB tables | 36 | 46 | +10 |
| Migrations | 11 | 12 | +1 |
| API endpoints | ~93 | ~110 | +17 |
| FE pages | ~23 | ~26 | +3 × 2 app |
| Gotchas | 32 | 33 | +1 (G-084) |
| Commits | 52 | 59 | +7 |
| Skills | 6 | 6 | 0 (audit + cross-ref) |

## Notes cho session 3

1. **PE là skeleton** — đừng treat as feature-complete. Ưu tiên Priority 0.
2. **Runner VPS có thể stopped** sau khi restart — check trước khi debug "endpoint 404".
3. **G-084 rule** áp dụng mọi service mới: `127.0.0.1` thay `localhost` trong reverse proxy / backend bind.
4. **Workflow audit** cron đã set — không cần manual trigger trừ khi có skill mới thêm nhiều.
5. **MaPhieu PE** hiện random — PHẢI confirm format với user trước khi seed demo data hoặc go-live thật.
6. **Không fix localhost trong FE dev configs** (vite.config.ts, launchSettings.json, docs dev-only) — đó là dev context, risk zero. Chỉ fix prod deploy/proxy paths.
