Evidence is not memory yet
Brainstack does not treat every raw remember call as canonical memory. Raw logs, imports, transcripts, and notes are evidence. The curator turns evidence into proposals with enough scope and context for future harnesses.
A good memory proposal should say:
- project or domain
- scope
- memory kind
- summary
- applicability
- non-applicability
- source refs or evidence
- confidence or review timing when relevant
Review flow
brainctl proposals list --status open
brainctl proposals show PROPOSAL_ID
brainctl proposals apply PROPOSAL_ID
brainctl proposals reject PROPOSAL_ID --reason "not durable"
In the Mac Operator Console, Accept maps to the concrete apply path. There is no separate user-facing approve/apply split.
Needs-context proposals
needs-context means the raw lesson may be useful but is not intelligible enough for future agents. Enrich it before accepting:
brainctl proposals enrich PROPOSAL_ID \
--project brainstack \
--domain curation \
--scope repo \
--memory-kind project_lesson \
--applicability "Use when changing proposal review behavior." \
--evidence repo:/path/to/source
For batches, start with a dry run:
brainctl proposals reprocess --status needs-human --limit 5
Avoid proposal inbox debt
Filter by project, status, and quality. Merge related proposals when several machines repeat the same lesson. Reject stale or context-poor items quickly rather than letting the queue become another unmanaged inbox.
From Telegram, a proposal-review topic can use filtered lists such as:
/proposals pending
/proposals needs-human needs-context
/proposals open project:brainstack limit=10
Accept and reject shortcuts should be scoped to the list that was just loaded.