From fb1912c8c42ea1942733cc305f923b28eaa5a882 Mon Sep 17 00:00:00 2001 From: Christian-Bermejo Date: Thu, 18 Jun 2026 09:37:26 +0800 Subject: [PATCH] Point CLAUDE.md at README for setup; fix stale Studio architecture note - Add a one-line pointer under Validation to README.md for setup/run steps (deps, TWITTERAPI_IO_KEY, vars.json, Studio npm) instead of duplicating them, so a fresh AI session knows where run instructions live. - Fix the Architecture note: App.jsx is no longer 'the entire Studio UI' since it was split into lib/ + components/ with Vitest tests. --- CLAUDE.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 3b061b9..9a06042 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,7 +22,9 @@ Data flow: `scraper/vars.json → scraper/tweet_scraper.py → tweets.csv → Tw (tweet → CSV row), `main` (CLI orchestration). - `scraper/tests/` — pytest, fully mocked (no network, no API key). `scraper/conftest.py` puts the scraper dir on `sys.path`. -- `studio/src/App.jsx` — the entire Studio UI (lexicons, tone patterns, CSV upload). +- `studio/src/` — the Studio UI. `App.jsx` is a thin shell; logic lives in + `lib/` (lexicons, analysis, csv, stats, display) and UI in `components/` + (one file per tab + shared primitives). Pure `lib/` modules have Vitest tests. - Config/secrets: API key comes from the `TWITTERAPI_IO_KEY` env var. `scraper/vars.json` is run config and is git-ignored; `scraper/vars.example.json` is the committed template. @@ -50,6 +52,9 @@ Run the full loop from `scraper/` and make sure every step passes: (CI runs the same four steps from `scraper/` — see `.github/workflows/ci.yml`.) +For setup & run instructions (deps, `TWITTERAPI_IO_KEY`, `vars.json`, Studio +`npm` commands), see [README.md](README.md) — not duplicated here to avoid drift. + ## Commands (trigger keywords) - When I say **"validate"** or **"ship it"** → run all four Validation steps and