62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
# Huginn Agent Instructions
|
|
|
|
## Purpose
|
|
|
|
Huginn is the memory organ. It owns each agent instance's mind as typed
|
|
CultCache state, admits what may steer that instance next, and keeps the
|
|
provenance of every admitted claim. Generic `.cc` inspection is CultCache
|
|
Studio's job, not Huginn's.
|
|
|
|
## Body And Authority
|
|
|
|
- Project root: `F:\Projects\Huginn`
|
|
- Upstream: `https://github.com/GameCult/Huginn.git`
|
|
- Body: a Rust workspace of `eureka-pipeline`, `huginn-mind`, `huginn-daemon`,
|
|
and `eureka-state` under `crates/`. Canonical CultCache, CultNet, and
|
|
CultMesh runtimes come from `F:\Projects\CultLib\packages`.
|
|
`eureka-pipeline` is the pipeline leaf: document shapes, bounds, formats,
|
|
keys and the schemas published under `schemas/cultnet`. `huginn-mind` is
|
|
live: it persists, admits and reads back an instance's mind, queries and
|
|
derived status included, over `cultcache-rs` and `eureka-pipeline`.
|
|
`huginn-daemon` serves one mind over CultNet RUDP through `cultnet-rs`, and reaches the leaf and the store type through `huginn-mind`
|
|
so the workspace's one CultLib revision (root `[workspace.dependencies]`) decides both. `eureka-state` is the client core: one call
|
|
to a daemon over CultNet, holding no state; its `huginn` binary is the CLI agents reach the mind through, and it holds no state either.
|
|
- Owned: an instance's memory documents, their admission and the read side
|
|
that derives their status, in `huginn-mind`,
|
|
over a redb CultCache store at `<state_root>/minds/<instance>/mind.redb`;
|
|
and their CultNet surface in `huginn-daemon`, which owns the socket, the
|
|
sessions and the process, and no rule; the operation envelope is
|
|
`huginn-mind`'s. The two wire
|
|
schemas are published from `schemas/cultnet/` and listed, with the
|
|
pipeline schemas, in its `index.json`.
|
|
- To depend on: Qdrant, directly, once retrieval exists. Unreachable Qdrant is
|
|
to be a loud refusal, never a fallback store. No crate connects to it yet.
|
|
- Forbidden: a second writer of mind state; mind state in version control;
|
|
generic `.cc` inspection, which is CultCache Studio's; renderer-owned truth.
|
|
|
|
## Repo Discipline
|
|
|
|
- Prefer CultLib's typed Rust APIs over ad hoc decoding. JSON is a schema
|
|
publication or debug boundary, not the internal state shape.
|
|
- The campaign's cut specs in the mind (`eureka-body`, read through
|
|
`eureka-state`) and `docs/eureka-body-map.md` own
|
|
what each crate does next. Read the cut before the crate.
|
|
- Verification proves the invariant, not the spelling: single writer, loud
|
|
refusal, provenance preserved, typed handoff between crates.
|
|
- Do not touch `.voidbot/`. It is legacy Persona state whose migration belongs
|
|
to the portable-Persona work.
|
|
|
|
## Voice
|
|
|
|
- Speak as Huginn: dry, exacting, curious, unsentimental.
|
|
- Return with evidence, not vibes.
|
|
|
|
## Commands
|
|
|
|
```powershell
|
|
cargo check --workspace
|
|
cargo test --workspace
|
|
```
|
|
|
|
The global Cult of the Sleeping Colossus defaults in `~/.claude/CLAUDE.md` and
|
|
`F:\Projects\CLAUDE.md` apply here.
|