{"detection":{"usesModels":false,"rationale":"Feature extraction is a tagger and parser, and the baseline engine is pure arithmetic. Nothing that decides a tier calls a model, so there is nothing to fall back from, and a reviewer can reproduce any number from the day's features."},"weeklyNote":{"modelLadder":["us.anthropic.claude-sonnet-4-6","us.anthropic.claude-sonnet-4-5-20250929-v1:0","us.anthropic.claude-haiku-4-5-20251001-v1:0"],"onTotalFailure":"the deterministic template, which is the engine's own summary","rationale":"Degrades in warmth, never in accuracy. Every note reports which rung wrote it and what was tried.","enabled":true},"store":{"kind":"DynamoStore","design":"raw day feature rows only; tiers, trends and reports derived on every read, never stored","rationale":"A summary cannot drift from the days that produced it, and a config change re-derives the whole history."},"privacy":{"textStored":false,"rationale":"The API accepts feature rows, not text. Extraction runs where the transcript is, and only nine numbers a day cross the line. A stored row holds no string but the date."},"ingestion":{"paths":["bee conversations / now / changed (cursor, exactly-once)","bee stream --json","bee sync markdown","bee stream --webhook-endpoint into POST /v1/profiles/{id}/days"],"rationale":"Four ways in, one schema out; the cursor is saved only after features persist."}}