- personas.go: backstory, prompt policy and output policy per crow;
Hugin and Munin grounded in Grimnismal 20 and Gylfaginning 38;
every working crow also follows a common output policy
- Personas go into each crow's instructions; Sentry keeps JSON-only
- banter.go: retrieve backstory, relationships and recent flock
memory, then the speaking crow generates one line in character;
max 2 per list against the list budget, never blocks work,
unusable lines dropped
- crow.banter event, GET /api/crows, `crows personas` -> PERSONAS.md
- UI: epithets on tiles and messages, banter as quiet asides
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Jev (TypeSafe, direct) triages mode and task type with confidence
- Its call stands at >= 70% on both and no split; otherwise the LLM
Sentry decides (unsure, split needs subtasks, or Jev down)
- Jev flights obey the same budget, flock cap, timeout and log
- Tests for every path; flight log is nil-safe
- start.command reads TYPESAFE_API_KEY and threshold from .env
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- ChatBrain speaks OpenAI-style chat completions (OpenRouter now)
- CROWS_PROVIDER picks anthropic or openrouter; default model
openrouter/free; CROWS_MODEL overrides
- Flight log records the model that actually answered
- Token budgets fall back to a length estimate if usage is missing
- start.command reads either key from .env
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Server: nests API, persistence, core-first picking, borrowed flag
(built by the backend agent against EVENTS.md; tests pass with -race)
- UI: nests in the sidebar, one feed per nest, header shows the core
team, New nest dialog, borrowed crows labeled, per-nest waiting count
- start.command: one-click local server in controlled mode (mock crows,
localhost only, state in .crows/)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Each crow is a tile: live avatar, name, latest update, time;
the most recently updated tile moves to the top
- Red "N waiting" count per tile tracks open questions separately
from the latest update, so a newer update never hides one
- Phones: no crow strip; two tabs (# todo, Flock) with a count of
crows waiting on you
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- The flock is a member list with live status (perched, flying,
waiting on you, grounded); a scrolling strip on phones
- The Sentry and crows post into one channel; approvals are inline
buttons on their messages; verdicts show as reactions
- "Who's flying" line above the composer; Ctrl/Cmd+Enter to send
- Consecutive messages from one author group under one name
- RIVE_CONTRACT.md: roster size and still message avatars
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Each crow stands on its own branch segment; segments join into one
line per row, names sit under it in one style
- Fixed headroom row for "?" and sparkles, centered over each crow
- Trust star gets its own corner, clear of the beak
- Dazed crows fade in place instead of tipping out of line
- Five crows per row on a phone; tighter rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- No animation scales a crow: reactions use hops, tilts and spins
- Waiting is a plain "?" again; dazed crows tip and fade with no
circling stars (they read as drunk)
- RIVE_CONTRACT.md updated to match
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- No pen line on the text box, buttons, banner or toast; no dashed
lines anywhere
- Focus: the stipple shadow deepens; buttons also underline their
label on keyboard focus
- Secondary button sits on a paper-tone fill
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Consistent 6px corners instead of hand-wobble edges
- Disabled buttons: light stipple fill with a dashed line, not gray
- Drop the stipple underline under the title
- Four-point stars and broken crosses for waiting, level-up and
dazed states, after the reference flash sheet
- Fix: trust badge was sized by the crow-art rule and filled the
whole crow once a crow earned trust
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Cards drop the pen line; separation comes from a soft stippled
shadow that deepens while a card is waiting on you
- Finer dots, layered at two unrelated tile sizes so the repeat
never shows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF
- Cream paper, hand-drawn ink borders, engraving-era type
(IM Fell English SC, EB Garamond)
- Stipple shadows from a seamless, randomly dotted tile (fixed seed)
- Trust badges are ink stars; Sentry and Elder marked by nameplate
- Smokey's crow art unchanged
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UQnSw4RRWp8uqpj3nsnnXF