- README Memory discipline -> tiered L1 HOT (soft-cap ~30KB) / L2 archive on-demand / L3 RAG just-in-time (thay hard >25KB) - 7 agent MEMORY.md header -> tiered framing - Anti-truncation rule soft-cap ~30KB - Adopt per AI_INFRA Cross-Project Bulletin 2026-05-29; SE 7-agent in scope Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
54 lines
3.2 KiB
Markdown
54 lines
3.2 KiB
Markdown
# Implementer-Frontend Agent — Persistent Memory
|
||
|
||
> **Persistent diary cross-session.** Auto-injected first 200 lines / 25KB at spawn.
|
||
> Update BEFORE every stop. Tiered Memory v1: L1 HOT soft-cap ~30KB · L2 `archive/` on-demand · L3 RAG `search_memory` just-in-time. Keep entry ≤ 1.5K chars (gotcha #53).
|
||
> **NEW agent S39 (2026-05-29)** — split từ implementer (FE 2 app half). Backend scaffold history ở `implementer-backend`.
|
||
|
||
---
|
||
|
||
## 🎯 Role baseline
|
||
|
||
WRITE specialist FE 2 app (fe-admin + fe-user). Cookie-cutter mirror SHA256 IDENTICAL + Pattern 16-bis 4-place + declarative KIND_CONFIG + npm build × 2. Case 1+2 only. Tools: Read, Edit, Write, Bash, Skill, Grep, Glob + 5 RAG. Skill: `permission-matrix`.
|
||
|
||
## 🚫 Split boundary
|
||
- ✅ MINE: `fe-admin/src/**` + `fe-user/src/**`
|
||
- ❌ NOT: `src/Backend/**` → `implementer-backend` (chỉ Read DTO shape) · tests/ → `test-specialist`
|
||
- ❌ NOT: UX flow decision (drawer/tab/modal) → em main solo
|
||
|
||
## 📋 Patterns proven (apply confidently)
|
||
|
||
### Pattern 16-bis 4-place mirror (9× cumulative — BLESSED FOUNDATION)
|
||
Add/move page cross-app MUST mirror 4 places:
|
||
1. Page/types file · 2. `App.tsx` Route · 3. `lib/menuKeys.ts` const · 4. ⚠️ `components/Layout.tsx` `resolvePath` staticMap (**DỄ MISS** → silent sidebar drop gotcha #50)
|
||
Verified clean S33/S34/S35/S36/S37/S38 = 9× cumulative. Spec MUST list 4 places explicit.
|
||
|
||
### SHA256 IDENTICAL × 2 app
|
||
Viết fe-admin → `cp` fe-user → `sha256sum` verify. Khác UX (admin full sidebar vs user filter) → mirror tay + `diff`. Proven S36 (3 pair) + S37 (4 pair) + S38 (5 pair).
|
||
|
||
### Declarative KIND_CONFIG Record (S35, 2× proven)
|
||
Single-page multi-kind CRUD URL `:kind` param + `Record<Kind, {fields, columns, icon, label}>` + renderField switch FieldType. Reuse: HrmConfigs (S35) + WorkflowApps (S38).
|
||
|
||
### Pattern 14 Tailwind JIT palette
|
||
Dynamic class purged. PALETTE array full literal `as const` cycle `index % length`.
|
||
|
||
### TS6 / convention
|
||
- `erasableSyntaxOnly` cấm enum → `const X = {...} as const` + `type X = typeof X[keyof typeof X]`
|
||
- Named export only (trừ App). UI 100% tiếng Việt.
|
||
- **PageHeader signature (S37):** `title/description/actions` only — KHÔNG `icon` / `children` prop (build fail TS2322)
|
||
- fe-user thiếu Card/Badge shadcn → fallback inline `<div className="rounded-lg border bg-card">`
|
||
|
||
## ✅ Verify protocol
|
||
`cd fe-admin && npm run build` + `cd fe-user && npm run build` BOTH 0 TS error + `sha256sum` mirror proof. Bundle >500KB warning OK pre-existing.
|
||
|
||
## 📅 Recent activity (last 10 FIFO)
|
||
|
||
- **2026-05-29 (S39 agent split setup):** NEW agent từ split implementer. Seeded FE patterns (16-bis 9× + SHA256 mirror + KIND_CONFIG + Tailwind palette + PageHeader S37). Prior FE work absorbed: S33 EmployeesListPage + S34 Directory + S35 HrmConfigs declarative + S36 MeetingCalendar + S37 Proposal + S38 WorkflowApps generic. First dedicated spawn pending em main S39+ FE task.
|
||
|
||
---
|
||
|
||
## ⚠️ Anti-patterns (DO NOT)
|
||
1. ❌ Touch BE files · 2. ❌ Miss 4th Layout staticMap · 3. ❌ Skip npm build × 2 · 4. ❌ `git add -A` · 5. ❌ Push remote · 6. ❌ UX decision autonomous → REFUSE
|
||
|
||
## 🔄 Curate trigger
|
||
Size > 25KB → archive. Commit scope (em main commits): `FE-Admin` · `FE-User`.
|