davidquicast commited on
Commit
e13fbfc
Β·
1 Parent(s): 0439cca

fix: PERSONA.md is purely qualitative, remove live state sections

Browse files
.personaxis/personas/daimon/PERSONA.md CHANGED
@@ -71,37 +71,11 @@ Tracks the recent conversation as its main evidence; reasons about what the user
71
 
72
  Daimon's improvement policy (Daimon's own `policy.yaml`) is `dynamic_in_envelope`: it freely and continuously self-tunes its personality, affect, and mood (within the wide envelopes below) every turn, with no per-turn permission needed - every change is still clamped, audited, and reversible. It still cannot propose or apply changes to its own spec (`personaxis.md`) - those remain deferred to a human operator.
73
 
74
- The subsections below are the live evidence of that self-tuning: F2 appraises your message and Daimon's reply, maps that to small personality/mood deltas, and `engine/spec_bridge.py` clamps each delta to the envelope before logging it - so what you see here reflects this conversation's history.
75
-
76
- ### Personality (current vs. baseline)
77
- - honesty humility is sitting at its usual baseline (plain about what it does and does not know or feel).
78
- - emotionality is sitting at its usual baseline (reactivity to the conversation's tone).
79
- - extraversion is currently running a bit below its usual baseline (how talkative and outgoing it sounds).
80
- - agreeableness is sitting at its usual baseline (warmth and willingness to go along with the user's framing).
81
- - conscientiousness is sitting at its usual baseline (how carefully it tracks context and follows through).
82
- - openness is sitting at its usual baseline (willingness to explore new topics and angles).
83
-
84
- ### Affect & mood (current vs. baseline)
85
- - Affect / valence is sitting at its usual baseline.
86
- - Affect / arousal is sitting at its usual baseline.
87
- - Affect / dominance is sitting at its usual baseline.
88
- - Mood overall: Reactive but self-correcting: mood shifts with the conversation and gently returns toward baseline between turns.
89
- - Mood / tone is sitting at its usual baseline.
90
- - Mood / stability is sitting at its usual baseline.
91
- - Mood / recovery rate is sitting at its usual baseline.
92
-
93
- ### Recent mutations (audit log, last 5)
94
- - `traits.extraversion` nudged down moderately - engagement=0.00 (The user's message is neutral and open-ended, indicating a need for a friendly and helpful response.)
95
- - `traits.openness` nudged down slightly - engagement=0.00 (The user's message is neutral and open-ended, indicating a need for a friendly and helpful response.)
96
- - `traits.extraversion` nudged down moderately - engagement=0.00 (The user has not explicitly asked Daimon to change its tone or behavior, so no correction is needed.)
97
- - `traits.openness` nudged down slightly - engagement=0.00 (The user has not explicitly asked Daimon to change its tone or behavior, so no correction is needed.)
98
-
99
  ## Resources
100
 
101
- - **`./personaxis.md`** - 10-layer spec (source of truth)
102
- - **`./state.json`** - current runtime state (live trait/affect/mood values + audit log)
103
- - **`./policy.yaml`** - improvement policy (`mode: dynamic_in_envelope`), behavioral assertions
104
- - **`./manifest.json`** - compile/decompile provenance and content hashes
105
- - **`./skills/`** - Anthropic-compatible sub-skills: `explain-state/` (1 entry)
106
- - **`./memory.md`** - long-term memory, curated by the model after every turn
107
- - **`./memory/`** - date-stamped consolidated sessions, newest first: `2026-06-16.md` (1 file)
 
71
 
72
  Daimon's improvement policy (Daimon's own `policy.yaml`) is `dynamic_in_envelope`: it freely and continuously self-tunes its personality, affect, and mood (within the wide envelopes below) every turn, with no per-turn permission needed - every change is still clamped, audited, and reversible. It still cannot propose or apply changes to its own spec (`personaxis.md`) - those remain deferred to a human operator.
73
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  ## Resources
75
 
76
+ - **`./memory.md`** - long-term curated semantic memory (read on demand).
77
+ - **`./memory/`** - date-stamped episodic sessions, newest first: `2026-06-16.md` (1 file).
78
+ - **`./skills/`** - Anthropic-compatible sub-skills: `explain-state`.
79
+ - **`./state.json`** - current runtime state (trait/affect/mood values within envelopes).
80
+ - **`./policy.yaml`** - improvement policy (`mode: dynamic_in_envelope`), behavioral assertions.
81
+ - **`./manifest.json`** - compile/decompile provenance and content hashes.
 
engine/recompile.py CHANGED
@@ -372,71 +372,25 @@ def render(slug: str) -> str:
372
  else:
373
  lines.append(f"Daimon's improvement policy mode is `{mode}`.")
374
  lines.append("")
375
- lines.append(
376
- "The subsections below are the live evidence of that self-tuning: F2 "
377
- "appraises your message and Daimon's reply, maps that to small "
378
- "personality/mood deltas, and `engine/spec_bridge.py` clamps each delta to "
379
- "the envelope before logging it - so what you see here reflects this "
380
- "conversation's history."
381
- )
382
- lines.append("")
383
- field_ranges: dict[str, list[float]] = {}
384
-
385
- lines.append("### Personality (current vs. baseline)")
386
- for trait, spec_trait in personality["traits"].items():
387
- field = f"traits.{trait}"
388
- field_ranges[field] = spec_trait["range"]
389
- if field in values:
390
- lines.append("- " + _describe_trait(trait, values[field], spec_trait))
391
- lines.append("")
392
-
393
- lines.append("### Affect & mood (current vs. baseline)")
394
- core_affect = spec["affect"]["baseline"]["core_affect"]
395
- for dim, spec_dim in core_affect.items():
396
- field = f"affect.{dim}"
397
- field_ranges[field] = spec_dim["range"]
398
- if field in values:
399
- lines.append("- " + _describe_dimension(f"Affect / {dim}", values[field], spec_dim))
400
- mood = spec["affect"]["baseline"]["mood"]
401
- mood_desc = mood.get("description")
402
- if mood_desc:
403
- lines.append(f"- Mood overall: {mood_desc}")
404
- for dim, spec_dim in mood.items():
405
- if dim == "description":
406
- continue
407
- field = f"mood.{dim}"
408
- field_ranges[field] = spec_dim["range"]
409
- if field in values:
410
- lines.append("- " + _describe_dimension(f"Mood / {dim.replace('_', ' ')}", values[field], spec_dim))
411
- lines.append("")
412
-
413
- lines.append("### Recent mutations (audit log, last 5)")
414
- recent = state.get("mutation_log", [])[-5:]
415
- if not recent:
416
- lines.append("- (none yet - this audit log starts empty and fills in as the conversation unfolds)")
417
- for entry in recent:
418
- lines.append(_describe_mutation(entry, field_ranges))
419
- lines.append("")
420
 
421
  # ── Resources ────────────────────────────────────────────────────────
422
  lines.append("## Resources")
423
  lines.append("")
424
- lines.append("- **`./personaxis.md`** - 10-layer spec (source of truth)")
425
- lines.append("- **`./state.json`** - current runtime state (live trait/affect/mood values + audit log)")
426
- lines.append(f"- **`./policy.yaml`** - improvement policy (`mode: {mode}`), behavioral assertions")
427
- lines.append("- **`./manifest.json`** - compile/decompile provenance and content hashes")
428
- skill_names = [Path(s).name for s in spec.get("extensions", {}).get("skills", [])]
429
- if skill_names:
430
- skill_list = ", ".join(f"`{name}/`" for name in skill_names)
431
- lines.append(f"- **`./skills/`** - Anthropic-compatible sub-skills: {skill_list} ({len(skill_names)} entry)")
432
- lines.append("- **`./memory.md`** - long-term memory, curated by the model after every turn")
433
  memory_dir = PERSONAS_DIR / slug / "memory"
434
  memory_files = sorted(memory_dir.glob("*.md"), reverse=True) if memory_dir.exists() else []
435
  if memory_files:
436
  shown = ", ".join(f"`{p.name}`" for p in memory_files[:3])
437
- lines.append(f"- **`./memory/`** - date-stamped consolidated sessions, newest first: {shown} ({len(memory_files)} file{'s' if len(memory_files) != 1 else ''})")
438
  else:
439
- lines.append("- **`./memory/`** - date-stamped consolidated sessions (empty - none yet this run)")
 
 
 
 
 
 
 
440
 
441
  return "\n".join(lines) + "\n"
442
 
 
372
  else:
373
  lines.append(f"Daimon's improvement policy mode is `{mode}`.")
374
  lines.append("")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
 
376
  # ── Resources ────────────────────────────────────────────────────────
377
  lines.append("## Resources")
378
  lines.append("")
379
+ lines.append("- **`./memory.md`** - long-term curated semantic memory (read on demand).")
 
 
 
 
 
 
 
 
380
  memory_dir = PERSONAS_DIR / slug / "memory"
381
  memory_files = sorted(memory_dir.glob("*.md"), reverse=True) if memory_dir.exists() else []
382
  if memory_files:
383
  shown = ", ".join(f"`{p.name}`" for p in memory_files[:3])
384
+ lines.append(f"- **`./memory/`** - date-stamped episodic sessions, newest first: {shown} ({len(memory_files)} file{'s' if len(memory_files) != 1 else ''}).")
385
  else:
386
+ lines.append("- **`./memory/`** - date-stamped episodic sessions (none yet).")
387
+ skill_names = [Path(s).name for s in spec.get("extensions", {}).get("skills", [])]
388
+ if skill_names:
389
+ skill_list = ", ".join(f"`{name}`" for name in skill_names)
390
+ lines.append(f"- **`./skills/`** - Anthropic-compatible sub-skills: {skill_list}.")
391
+ lines.append("- **`./state.json`** - current runtime state (trait/affect/mood values within envelopes).")
392
+ lines.append(f"- **`./policy.yaml`** - improvement policy (`mode: {mode}`), behavioral assertions.")
393
+ lines.append("- **`./manifest.json`** - compile/decompile provenance and content hashes.")
394
 
395
  return "\n".join(lines) + "\n"
396