# Memory Log — 2026-03-24

## Heartbeat — 4:49 AM UTC (quiet hours)

### System Status
- Sessions: healthy (auto-compact clean — no sessions over 180k)
- Subagents: none active
- Email: no new mail
- #competition_kittoro: still inaccessible (Missing Access)

### Today's Key Events
1. 📅 **Yoni Assia (eToro CEO) — 12:00–12:45 UTC** — context prepped yesterday in 2026-03-23.md
2. 🔑 **GitHub PAT 'dan' — expires Mar 27** — 3 days away, needs renewal via GitHub web UI

## Heartbeat — 7:49 AM UTC (morning)

### Channel Scan
- #curious-endeavor: git backup at 6am, otherwise quiet overnight
- #radar: last activity Mar 23 17:05 — handled
- #management: last message Mar 21 — dead channel, skipped
- #product-definition + #brand-pipeline-spec: **active today** — brand pipeline Phase 0 session ran ~6:43–6:49 AM. Thread created: "Phase 0 — Design the Foundations". 4 deliverables: visual-style.json schema, taste board tagging schema, Phat forensic map, "good brief" definition. Gate: no Sprint 1 until all 4 done.
- Morning task board posted to #open-tasks ✅

### New Active Project: Brand Pipeline
- #brand-pipeline-spec + #product-definition channels created
- SPEC.md at `work/internal-ce/operations/products/brand-pipeline/SPEC.md`
- Phase 0 thread active with context loaded
- Status: waiting for Assaf to engage thread

## Heartbeat — 9:49 AM UTC

### Status
- Sessions: healthy · Subagents: none · Email: clear
- Brand Pipeline Phase 0 thread: **active and progressing**
  - Schema 4-namespace proposal posted (meta/core/visual/extended/ce_resonance)
  - 5 empirical validation tests defined (prompt fidelity, inter-rater agreement, negative space reliability, fillability, cross-brand discrimination)
  - Kitt recommends tests 1+3 as minimum gate, 2+5 as quality ceiling
  - Awaiting Assaf response on which tests to gate on
- Yoni Assia call: **2h 11min away** (12:00 UTC)

### Pending Items (Carried Forward)
1. 🔑 GitHub PAT 'dan' — expires Mar 27. Alert Assaf to renew.
2. 📅 Yoni Assia meeting — TODAY Mar 24 12:00 UTC. Context prepped.
3. 🎨 White Space slot 03 — marble casegood still awaiting Assaf feedback.
4. 🏗️ Wix pitch — Assaf needs to pick hero copy (option 1, 2, or 3).
5. 🔧 Trading 212 nav pills wrapping — flex-wrap:nowrap fix — confirm applied to all 17 pages.
6. 🔧 Future Forward — FF symbol/compositor pipeline still blocked.

## Heartbeat — 12:46 UTC

### Actions Taken
- ✅ **Fibo v3 Drive access** — All 4 "Fibo – Logistics v3 | מעקב חבילות" slides (kitt-owned, created today ~11:41–11:49 UTC) → granted writer to Assaf@curiousendeavor.com
- ✅ **Lukas CE email Drive access** — "Lukas - LinkedIn Content" folder → granted writer to lukas@curiousendeavor.com (previously only lukas.richthammer@gmail.com had access)
- Yoni Assia call just ended (12:00–12:45 UTC) — no Discord follow-up yet
- #competition_kittoro: still inaccessible
- Sessions: healthy · Subagents: none

### Fibo — New Project Signal
- Kit created 4 Fibo v3 slides today — Fibo appears to be a logistics tracking app (package tracking, Hebrew audience)
- This may be a new client or pitch — no QMD entry yet. Check with Assaf.

## Session — 14:21–14:33 UTC (Fibo Deck Design Critique)

### Fibo Deck — Design Comparison Plan

**FiBo deck (Assaf's):** `19aLgS9AQaEoofu_ZOCBzcK4lUVfKpeSofOS1Z1WH-Nc` — 12 slides, Hebrew, CE design system, logistics pitch
**Reference deck (Fibonacci investor):** `1nDUfpeIBHDGiULNtPOk24pDl2WMhggTp` — PPTX file (not native Slides — API returns 400), only accessible via browser

**Reference design language extracted:**
- Cover/closing: full-bleed radial gradient (hot pink → orange)
- Many slides: full-bleed real transport/logistics photography with right-aligned white text overlay
- White slides for data/team/diagram content
- Accent color: magenta/pink (~#E91E63), NOT red
- No slide numbers, no CE mono-label header pattern
- Bold RTL Hebrew headlines, thin outline icons with magenta fill
- Roadmap: circular milestone markers on horizontal timeline
- Data: tables with tinted rows, newspaper clipping inserts

**Plan output (slide-by-slide gap map produced):**
- Slides 1, 12: need gradient treatment (cover/close)
- Slides 2, 3, 4, 6, 9, 10: need photo-based layouts
- Slides 5, 7, 11: diagram/data/team reformats
- Slides 8, 10: table/data styling

**Open question to Assaf:** Stay in Google Slides or rebuild as PPTX? (Fibonacci reference is PPTX; gradient/glow easier there)

**Execution phases defined:** Asset acquisition → Slide rebuilds → Typography pass → Anton QA

---

## Session — 10:00–10:16 UTC (Sales Visuals)

### New Formats Added — signal.html + social-creator.html

**Chant format** (from previous session, now fully implemented):
- Stacked word ×5, Barlow Condensed 900, cream `#e9e6e0` bg
- Uploaded image overlays rows 2–4 center-left
- Font auto-scales by word length: `Math.min(78, Math.floor(3500 / word.length))`
- `loadChantImage()` stores base64 in `state.chantImage`

**Stretch format** (new — variable-width word stack):
- 12 rows, same word, each row fills full width via canvas `scaleX(targetW / measured)`
- Font sizes oscillate: `[22,30,42,56,47,24,35,50,38,26,44,33]` — creates compression/expansion rhythm
- Black `#111111` bg, warm white `#f2efe8` text
- Canvas-based: bypasses html2canvas entirely → instant 1200×1200 PNG export
- Reference: Paradigm Arts "PARADIGM" variable-width poster

**Lobby format** (added previous session):
- Off-white `#f1f1ef` bg, Larken 82px top-left anchored, void lower half
- Subtitle (first sentence of caption) bottom-left in grey Inter

### Font Discovery
- **Reckless Neue** by Displaay Type Foundry — the serif on rarevolume.com
- Used: RecklessNeue-Book (headings), RecklessNeue-Light, RecklessNeue-SemiBold
- Pairs with GT America. Paid license at displaay.net.
- Similar to Larken in warmth but more refined/editorial. Note for future CE font decisions.

### CE Logo Fix
- `ce-logo-red.png` dimensions: **3576×342px** (10.46:1 aspect ratio — very wide wordmark)
- Was being crammed into 28×28px squares in signal.html → invisible smudge
- Fix: removed all `<img>` logo instances from signal.html (text credit handles attribution)
- Fix: added `width:auto;min-width:80px;max-width:140px` to social-creator.html logo renders
- Rule: **Never use CE wordmark in a square container.** Min width: 80px at display size.

### Research API v5 — Source Links + Reply Feature
- `/root/research-api.py` on brandclaw now returns per-post:
  - `source_url`: direct URL to tweet/article/LinkedIn post
  - `source_author`: `@username` for X posts
  - `tweet_id`: X tweet ID string
  - `reply_url`: pre-built `twitter.com/intent/tweet?in_reply_to=ID&text=caption` for X; source URL for web
- X tweet URLs resolved from real Twitter API `author_id` → `username` expansion
- Web/LinkedIn URLs extracted from Gemini grounding metadata (`grounding_chunks[].web.uri`)
- signal.html UI: `↗ source` link on each card, "Reply on X →" / "Comment →" button in workspace

### Design Critique Notes (statement format)
Issues documented for future improvement:
1. Copy too long — statement format works best at 4–6 words, not 14
2. Pure `#fff` reads cold/digital → use `#f1f1ef` off-white for warmth
3. Line breaks uncontrolled — need curated breaks for type rhythm
4. No deliberate void/tension — everything flush-left, uniform weight
5. Double credit (text + logo) is redundant — pick one

### Git Commits
- `3c03bf2` — "Add chant format: stacked word + image overlay, Barlow Condensed 900"
- `4003c63` — "Add stretch format: canvas-based variable-width word stack, black bg, 12 rows"
- `8d2504d` — "Fix CE logo: remove 28x28 smudge from signal.html, proper dims in social-creator"
- `fec8962` — "Signal: source links + reply/comment buttons — X tweet ID URLs, Gemini citation URLs"

## Heartbeat — 18:10 UTC (entering quiet hours)

### Status
- Sessions: healthy · Subagents: none · Email: clear
- #management: Niv Baibich access request still pending — no reply from Assaf yet
- All systems nominal. Quiet hours begin.

## Heartbeat — 20:10 UTC (quiet hours)

### Status
- Sessions: healthy · Subagents: none · Email: clear
- #management: Niv Baibich Drive request (17:11 UTC) — no reply from Assaf yet
- #competition_kittoro: still inaccessible
- Quiet hours active — no proactive channel posts

## Heartbeat — 21:10 UTC (quiet hours)

### Status
- Sessions: healthy · Subagents: none · Email: clear
- #management: Niv Baibich access request still unanswered — Assaf quiet since evening
- #competition_kittoro: still inaccessible
- Quiet hours — no channel posts

## Heartbeat — 17:10 UTC

### Status
- Sessions: healthy · Subagents: none · Auto-compact clean
- Email: **1 new** — Niv Baibich (niv.baibich@gmail.com) requesting access to "Fibo - logitics" (external)
  - Flagged to Assaf in #management — awaiting his call (viewer vs editor)
- #curious-endeavor: Dan asked about styleguide at 12:46 UTC — already handled by Kitt
- #wix-pitch: no activity since Mar 23 15:47 UTC
- #competition_kittoro: still inaccessible

### Pending
- 🔑 GitHub PAT 'dan' — expires Mar 27 (3 days)
- 🔔 Niv Baibich Drive access — awaiting Assaf decision

## Phase 0 Complete — 14:56 UTC

### Brand Pipeline Phase 0 — All 4 Deliverables Locked
- **A** `visual-style.schema.json` — 8/10 ✅
- **B** `taste-board-vocabulary.json` + `taste-board-record.schema.json` — 8/10 ✅
- **C** `DELIVERABLE-C-forensic-map.md` — 8.5/10 ✅
- **D** `DELIVERABLE-D-good-brief.md` — 8.5/10 ✅

All files committed: `work/internal-ce/operations/products/brand-pipeline/`

**Sprint Test thread created:** `1486015659266543657` (#product-definition)
- Awaiting Assaf to name the brand for T1 brief submission

**Key decisions locked today:**
- Schema: meta/core/visual/extended/ce_resonance + origin section
- Vocabulary: 10 archetypes × 6 styles, 15 mood tags, 8 color cast tags
- Two irreducible human gates: strategic bet (Gate 1) + lock recognition (Gate 2)
- Brief owned by Gerri, Gate 1 approval Assaf-only
- T1 enforcement: human checklist (automate Sprint 2)
- API approach for Discord thread creation — message tool fails on forum parent channels, use direct API

**LEARNINGS:**
- Discord forum parent channels (type=0 in #product-definition) don't support thread-create via message tool → use direct Discord API: POST /channels/{id}/threads

## FiBo Deck Redesign — Session log 15:00–15:23 UTC

### Root Cause Found & Fixed
- **RTL alignment bug**: All text paragraphs lacked `direction: RIGHT_TO_LEFT`. With `alignment: END` and no direction set, Hebrew text rendered LEFT-aligned instead of right-aligned. Fixed 152 elements across 12 slides — set `direction: RIGHT_TO_LEFT` + `alignment: START` (= visually right-anchored for RTL). Centered elements (circles, slide numbers) kept `CENTER`.
- Assaf had to flag this 4+ times before it was properly diagnosed.

### Reference Deck — Programmatic Extraction Unlocked
- **Reference PPTX is accessible via Drive API** with kitt token (contrary to earlier 404 errors). File: `Fibonacci investor deck.pptx`, 27MB, ID `1nDUfpeIBHDGiULNtPOk24pDl2WMhggTp`.
- **python-pptx + lxml works** for full token extraction. Must use correct slide order from `ppt/_rels/presentation.xml.rels` (alphabetical sort of filenames is wrong — slides sort as 1,10,11,12,2,3...).

### Slide 6 Tokens (Reference Deck)
Extracted programmatically from PPTX XML:
```
Layout:    Split — photo LEFT (0–4.23" × full height), text RIGHT (4.66–9.62")
Headline:  24pt, alignment=r (right), color=scheme:dk1 (#000000 via theme1)
Body:      12pt, alignment=r, color=scheme:dk1
Photo:     image15.jpg — warm earthy palette (#FCFAEF cream → #2C2826 near-black)
```
Tokens file: `work/pitches/fibo/reference-slide6-tokens.json`

### LEARNINGS added
- Don't assume paragraph direction in Google Slides API. Always explicitly set `direction: RIGHT_TO_LEFT` for Hebrew text. `alignment: START` = visually right-anchored for RTL.
- Don't sort PPTX slide files alphabetically. Use presentation.xml.rels rId order.
- Reference PPTX downloads fine via `drive.files().get_media()` with Drive scope — test access before assuming inaccessible.

### Status
- Assaf stopped work to fix the approach. RTL alignment fixed. Design tokens extraction method now proven.
- Next: extract tokens from ALL 12 reference slides programmatically, then re-apply correctly to FiBo deck.

## Heartbeat — 19:10 UTC (quiet hours)

### Status
- Sessions: healthy · Subagents: none · Email: clear
- #management: Niv Baibich access request still unanswered (posted 17:11 UTC)
- #competition_kittoro: still inaccessible
- Quiet hours — no channel posts
- 🔑 GitHub PAT 'dan' — 3 days to expiry (Mar 27)

## Heartbeat — 22:10 UTC (nightly / quiet hours)

### System
- Sessions: healthy · Subagents: none · Email: clear · QMD: nothing to compact
- #management: Niv Baibich alert still unanswered — carry to tomorrow
- #competition_kittoro: still inaccessible

## Heartbeat — 23:10 UTC (nightly / quiet hours)

### Status
- Sessions: healthy · Subagents: none · Auto-compact clean
- **🚨 GitHub PAT 'dan' expiring in ~2 hours** (~1AM UTC Mar 25)
  - Email from GitHub to kitt@curiousendeavor.com, @assafdagan20205 account
  - Alert posted to #management ✅ — Assaf needs to renew at github.com/settings/tokens
- #competition_kittoro: still inaccessible
- Quiet hours — only this infrastructure alert warranted posting

## HANDOVER — 2026-03-24 22:10 UTC

### Day Summary
A full and productive day across four tracks:

**1. Brand Pipeline — Phase 0 COMPLETE**
- All 4 foundation artifacts delivered and locked: visual-style schema, taste board vocabulary, Phat forensic map, "good brief" definition
- Sprint Test thread live in #product-definition (thread `1486015659266543657`)
- Awaiting Assaf to name brand for T1 test

**2. Fibo Deck Redesign**
- New client/pitch: Fibo — logistics tracking app, Hebrew, Israeli audience
- RTL alignment bug diagnosed and fixed (152 elements, `direction: RIGHT_TO_LEFT` + `alignment: START`)
- Reference deck (Fibonacci investor PPTX) now accessible and extractable via python-pptx
- Slide 6 tokens extracted as proof of method
- Next: full 12-slide token extraction → apply to Fibo deck

**3. Drive Access Management**
- Granted Assaf writer access to all 4 Fibo v3 slides ✅
- Granted lukas@curiousendeavor.com writer to LinkedIn Content folder ✅
- Niv Baibich (niv.baibich@gmail.com) requesting access to "Fibo - logitics" → flagged to Assaf, awaiting decision

**4. Yoni Assia Meeting**
- Ran 12:00–12:45 UTC as scheduled — no Discord follow-up received

### Pending for Tomorrow
1. 🔑 **GitHub PAT 'dan'** — expires Mar 27 (2 days). Alert Assaf to renew.
2. 🔔 **Niv Baibich** Drive access — awaiting Assaf's call (viewer/editor)
3. 🏗️ **Fibo deck** — extract all 12 reference slide tokens → rebuild deck with correct design language
4. 🏗️ **Brand Pipeline Sprint 1** — awaiting Assaf to name test brand
5. 🏗️ **Wix pitch** — hero copy pick still pending (options 1/2/3)
6. 🔧 **Trading 212** — nav pills fix confirm across all 17 pages (Kittoro)
7. 🎨 **White Space slot 03** — marble casegood feedback still pending
