chore: mark US-002 complete, update progress log

This commit is contained in:
2026-02-15 17:52:51 +00:00
parent 384e393963
commit 219a3f04be
2 changed files with 23 additions and 1 deletions
+1 -1
View File
@@ -36,7 +36,7 @@
"Typecheck passes" "Typecheck passes"
], ],
"priority": 2, "priority": 2,
"passes": false, "passes": true,
"notes": "This function will be used by both the build script (to generate embeddings) and potentially by the chat widget (for context). Import the raw data files (consultations, skills, kpis, investigations, documents) to access the full data beyond what buildPaletteData() surfaces. The id must match the PaletteItem id so embeddings can be correlated." "notes": "This function will be used by both the build script (to generate embeddings) and potentially by the chat widget (for context). Import the raw data files (consultations, skills, kpis, investigations, documents) to access the full data beyond what buildPaletteData() surfaces. The id must match the PaletteItem id so embeddings can be correlated."
}, },
{ {
+22
View File
@@ -7,6 +7,8 @@
- Scripts live in `scripts/` and run via `npx tsx` (tsx is not a project dep, npx fetches it) - Scripts live in `scripts/` and run via `npx tsx` (tsx is not a project dep, npx fetches it)
- tsconfig `include` only covers `src/` — scripts are type-checked by tsx at runtime, not by `tsc --noEmit` - tsconfig `include` only covers `src/` — scripts are type-checked by tsx at runtime, not by `tsc --noEmit`
- Project uses `"type": "module"` in package.json - Project uses `"type": "module"` in package.json
- Palette item IDs: `exp-{consultation.id}`, `skill-{skill.id}`, `proj-{investigation.id}`, `ach-{0-3}`, `edu-{0-3}`, `action-{0-3}`
- `buildEmbeddingTexts()` in `src/lib/search.ts` returns `Array<{ id: string, text: string }>` with IDs matching PaletteItem IDs — use this for both embedding generation and chat context
--- ---
@@ -23,3 +25,23 @@
- The pipeline's `pooling: 'mean'` and `normalize: true` options handle mean-pooling and L2 normalization in one step — no manual tensor manipulation needed - The pipeline's `pooling: 'mean'` and `normalize: true` options handle mean-pooling and L2 normalization in one step — no manual tensor manipulation needed
- `output.data` is a `Float32Array`; wrap in `Array.from()` for a plain number array - `output.data` is a `Float32Array`; wrap in `Array.from()` for a plain number array
--- ---
## 2026-02-15 - US-002
- Added `buildEmbeddingTexts()` function to `src/lib/search.ts`
- Imports all raw data files (consultations, skills, kpis, investigations, documents)
- Generates natural-language paragraphs for each palette item type:
- Consultations: role, org, duration, history narrative, examination bullets, coded entry descriptions
- Skills: name, category, frequency, proficiency %, years of experience
- Achievements: title, subtitle, full KPI explanation + story context + outcomes
- Investigations: name, methodology, tech stack, results
- Education: title, type, institution, duration, classification, research detail, notes (from documents.ts)
- Quick Actions: title + subtitle
- IDs match PaletteItem IDs (e.g. `exp-{id}`, `skill-{id}`, `ach-{i}`, `proj-{id}`, `edu-{i}`, `action-{i}`)
- Typecheck and lint pass
- Files changed: `src/lib/search.ts`
- **Learnings for future iterations:**
- Education items in `buildPaletteData()` are hardcoded arrays (not iterated from `documents`), with ids `edu-0` through `edu-3`. The mapping to `documents.ts` entries is: edu-0→doc-mary-seacole, edu-1→doc-mpharm, edu-2→doc-alevels, edu-3→doc-gphc
- Achievement items are similarly hardcoded with ids `ach-0` through `ach-3`, each linked to a KPI id
- Quick action items are `action-0` through `action-3`
- `documents.ts` is imported but wasn't previously used in `search.ts` — now used for education embedding text
---