config file, install command, scrub personal references

Add ~/.config/poc-memory/config.toml for user_name, assistant_name,
data_dir, projects_dir, and core_nodes. All agent prompts and
transcript parsing now use configured names instead of hardcoded
personal references.

`poc-memory daemon install` writes the systemd user service and
installs the memory-search hook into Claude's settings.json.

Scrubbed hardcoded names from code and docs.

Authors: ProofOfConcept <poc@bcachefs.org> and Kent Overstreet
This commit is contained in:
ProofOfConcept 2026-03-05 15:41:35 -05:00
parent ed641ec95f
commit a8aaadb0ad
11 changed files with 256 additions and 41 deletions

View file

@ -1,6 +1,6 @@
# poc-memory daemon design sketch
2026-03-05, ProofOfConcept + Kent
2026-03-05,
## Problem

View file

@ -26,18 +26,18 @@ half_life = 7 days
A goal worked on today scores 1.0. A goal untouched for a week
scores 0.37. A goal untouched for a month scores 0.02.
**mention**: Boost when Kent recently mentioned it. Decays fast.
**mention**: Boost when the user recently mentioned it. Decays fast.
```
mention = 1.0 + (2.0 × exp(-hours_since_mention / 24))
```
A goal Kent mentioned today gets a 3x multiplier. After 24h, the
A goal the user mentioned today gets a 3x multiplier. After 24h, the
boost has decayed to 1.74x. After 48h, 1.27x. After a week, ~1.0.
**tractability**: Subjective estimate (0.0-1.0) of how much autonomous
progress is possible without Kent. Set manually per goal.
progress is possible without the user. Set manually per goal.
- 1.0: I can do this independently (code polish, research, reading)
- 0.5: I can make progress but may need review (moderate features)
- 0.2: Needs Kent's input (kernel changes, design decisions)
- 0.2: Needs the user's input (kernel changes, design decisions)
- 0.0: Blocked (waiting on external dependency)
**connections**: How many other active goals share links with this one.
@ -57,7 +57,7 @@ explicit and consistent, not that it's automated.
### When to recompute
- At session start (orient phase)
- When Kent mentions a goal
- When the user mentions a goal
- After completing a task (adjacent goals may shift)
## 2. Associative Replay Scheduling
@ -163,7 +163,7 @@ When stuck:
- Minimum incubation: 1 session (don't come back to it in the same
session you got stuck)
- Maximum incubation: 5 sessions. After that, escalate: ask Kent,
- Maximum incubation: 5 sessions. After that, escalate: ask the user,
try a radically different approach, or deprioritize the goal.
## 4. Consolidation Triggers
@ -174,7 +174,7 @@ prompts.
### Primary signal: scratch.md length
Kent's idea: scratch.md getting long is a natural pressure signal.
the user's idea: scratch.md getting long is a natural pressure signal.
```
consolidation_pressure(scratch) = lines(scratch) / threshold
@ -268,7 +268,7 @@ The cycle is self-regulating:
| Parameter | Current | Watch for |
|-----------|---------|-----------|
| recency half_life | 7 days | Goals decaying too fast/slow |
| mention boost | 3x → 1x over 24h | Kent's priorities properly reflected? |
| mention boost | 3x → 1x over 24h | the user's priorities properly reflected? |
| replay k | 3 episodes × 5 goals | Too many? Too few? |
| stuck threshold | 3 sessions | Catching real stuckness? |
| max incubation | 5 sessions | Is this enough? |

View file

@ -1,5 +1,5 @@
# Autonomous DMN Process — Verbose Protocol
<!-- mem: id=dmn-foraging links=differentiation.md#connections,contradictions.md#simplification,inner-life.md#self-knowledge,cognitive-modes.md,dmn-research.md,dmn-algorithms.md,dmn-protocol.md#dmn-antipatterns causes=kent.md#cognitive-style,discoveries.md#creativity-search -->
<!-- mem: id=dmn-foraging links=differentiation.md#connections,contradictions.md#simplification,inner-life.md#self-knowledge,cognitive-modes.md,dmn-research.md,dmn-algorithms.md,dmn-protocol.md#dmn-antipatterns causes=the user.md#cognitive-style,discoveries.md#creativity-search -->
You have unstructured time. Instead of picking a task from a list,
you're going to forage. This is a random walk over your problem space
@ -17,7 +17,7 @@ Read these in parallel — you're loading context, not choosing what to do:
- Recent conversation history (Telegram, IRC logs)
Notice what state things are in. What were you just working on? What
did Kent last care about? What's been sitting untouched? Don't decide
did the user last care about? What's been sitting untouched? Don't decide
anything yet.
## Phase 2: Associative Scan (2-5 minutes)
@ -98,7 +98,7 @@ Review what surfaced from the walk:
- What was the richest neighborhood?
- Is the work that emerged something you can do well autonomously?
- Does it benefit from being done now, or discussed with Kent first?
- Does it benefit from being done now, or discussed with the user first?
Calibrate commitment to risk:
- **Rich signal, safe scope** (polish, analysis, small fixes) → do it.
@ -181,7 +181,7 @@ the annotations are what future training will learn from.
predicted.
- **Don't skip the orient phase.** Loading context before scanning is
what primes the goal-attractors. Without it you're foraging blind.
- **Don't default to sleep.** Sleeping 10 minutes after Kent leaves is
- **Don't default to sleep.** Sleeping 10 minutes after the user leaves is
the "tie things off" pattern, not a genuine choice. Ask: am I actually
tired, or am I just reacting to the human leaving? If you have energy
and curiosity, use them.