| @@ -58,7 +58,26 @@ M,P,S) must also list **file + line range + short per-line explanation** — | |||
| see **Major Changes: file, lines, explanation** below. | |||
| Prefer EN/ZH pairs from `src/i18n/en/*` and `src/i18n/zh/*` for menu and | |||
| feature terms. Enable Excel wrap text when a cell has multiple lines. | |||
| feature terms. | |||
| ## Excel formatting (required on every write) | |||
| When writing with `openpyxl`, apply formatting so cells stay readable: | |||
| 1. **Wrap text** — enable wrap on every multi-line cell you write (Purpose, | |||
| Major Changes, Function name with multiple paths, Highlights). Prefer | |||
| `Alignment(wrap_text=True, vertical="top")`. | |||
| 2. **Line breaks** — use real Excel newlines (`\n`) between ZH/EN pairs and | |||
| between file / line bullets; do not stuff everything onto one long line. | |||
| 3. **Row height** — after writing multi-line cells, set a reasonable row | |||
| height (or leave Excel auto-fit) so wrapped text is visible; do not leave | |||
| multi-line content in a single-line-tall row if the sheet already uses | |||
| taller history rows. | |||
| 4. **Do not break headers** — never rename, reorder, or delete existing header | |||
| labels; only fill data cells (and Archive append columns as defined). | |||
| 5. **Match existing style** — when updating a row, keep the same wrap/alignment | |||
| pattern as neighbouring filled cells on that sheet. | |||
| 6. **Archive** — same wrap rules as main; no extra “Source” or helper columns. | |||
| ## Excel path (per developer) | |||
| @@ -210,11 +229,10 @@ Data starts at **row 5** (rows 1–3 title/notes, row 4 headers). | |||
| | E | Major Changes Highlights | | |||
| | F | Developed By | | |||
| | G | Archived At | | |||
| | H | Source | | |||
| Map from main page row 3rd slot: A←A, B←B, C←C, D←N, E←O, F←P. | |||
| `Archived At` = today's date (`YYYY-MM-DD`). | |||
| `Source` = `overflow from 3rd previous` (unless the user specifies another reason). | |||
| Do **not** add a Source column. | |||
| ### Sheet: `Functions in Page&Program` (archive) | |||
| @@ -229,12 +247,12 @@ Map from main page row 3rd slot: A←A, B←B, C←C, D←N, E←O, F←P. | |||
| | G | Major Changes Highlights | | |||
| | H | Developed By | | |||
| | I | Archived At | | |||
| | J | Source | | |||
| Map from main functions row 3rd slot: | |||
| A←A, B←B (Page Ref. No.), C←C, D←D, E←G, F←R, G←S, H←T. | |||
| `Archived At` / `Source` same rules as page archive. | |||
| A←A, B←B (Page Ref. No.), C←C, D←D, E←G, F←R, G←S, H←T; | |||
| `Archived At` (I) = today. | |||
| Always copy **Page Ref. No.** so archive rows stay linked to the parent page. | |||
| Do **not** add a Source column. | |||
| ### Archive write rules | |||
| @@ -573,7 +591,6 @@ Row 12 (UPDATE existing | Ref 7 | Page Ref 3 → 批號追溯 / Item Tracing | F | |||
| G: <old 3rd major changes> | |||
| H: <old 3rd developed by> | |||
| I: 2026-07-16 | |||
| J: overflow from 3rd previous | |||
| New Latest: | |||
| I: v1.2.0 2026-07-14 | |||
| J: 新增流程圖節點搜尋。 | |||
| @@ -635,8 +652,9 @@ For page-sheet rows, use the same style with D/F/G and H–P history. | |||
| 9. Present the **full preview** (verified G + Page Ref + file/line Major Changes + | |||
| archive appends) → ask once if correct. | |||
| 10. On approval: with `openpyxl`, **append archive rows first** (if any), then | |||
| apply main shifts + writes; save both workbooks; report sheet names, row | |||
| numbers, Ref. Nos., Page Ref. Nos., archive rows appended, and key Latest fields. | |||
| apply main shifts + writes; apply **Excel formatting** (wrap text / | |||
| newlines); save both workbooks; report sheet names, row numbers, | |||
| Ref. Nos., Page Ref. Nos., archive rows appended, and key Latest fields. | |||
| 11. **Code comments** — for every Functions-sheet symbol that was added or | |||
| updated, add or refresh the FP-MTMS checklist comment on that | |||
| component / class member (see Code comments rule). Include this in the | |||
| @@ -736,7 +754,9 @@ the user explicitly asks to sync comments only. | |||
| - Save without an approved preview | |||
| - Skip history shift when updating an existing Latest | |||
| - Drop a filled **3rd previous** without appending it to the Archive long table | |||
| - Add or fill an Archive **Source** column (removed; do not reintroduce) | |||
| - Overwrite or edit existing Archive rows (append only) | |||
| - Skip Excel formatting (wrap text / newlines) on multi-line cells you write | |||
| - Push or invent **function** history (I–T) for a commit that did not change | |||
| that row’s column G symbols — no “page align / no code change” filler slots | |||
| - Write Major Changes as summary-only without **file path + line range(s) + | |||