Merges the public Forgejo seed repo with the prepared Layered Soul skeleton, expands the README, adds validation/rendering/private-source planning helper tooling, and documents how private hermes-soul connects without copying private runtime state.\n\nChecks: prettier on markdown; python3 -m json.tool manifests; python3 scripts/layered_soul.py validate .; render-prompt smoke; plan-private-source smoke against /home/clawdie/ai/hermes-soul; git diff --check
2.1 KiB
2.1 KiB
Connecting private hermes-soul to Layered Soul
hermes-soul and layered-soul have different jobs.
| Repo | Visibility | Purpose |
|---|---|---|
hermes-soul |
private | Hermes-native runtime backup from Debby Linux: sessions, sanitized config, scripts, cron, memories, skills. |
layered-soul |
public/template or curated instance | Harness-agnostic identity and reviewed context with no secrets or raw sessions. |
Do not mirror hermes-soul into layered-soul. Use a review/export workflow.
Recommended workflow
-
Back up Hermes normally into the private
hermes-soulrepo. -
Run the planner from this repo:
python3 scripts/layered_soul.py plan-private-source \ examples/private-sources/hermes-soul.example.json \ --source-root ~/hermes-soul -
Review the candidate memory and skill files locally.
-
Write sanitized summaries into this repo:
USER.md memories/curated/hermes-memory-summary.md skills/<selected-skill>/SKILL.md -
Validate before committing:
python3 scripts/layered_soul.py validate .
What may move across
- Reviewed user context from
memories/USER.md. - Reviewed memory summaries from
memories/MEMORY.md. - Selected
skills/**/*.mdthat are safe and useful across harnesses. - Converted cron/task ideas after they are rewritten as explicit Ops manifests.
What must stay private
- Raw
sessions/chat logs. config.yamland platform runtime config.channel_directory.json.- Tokens, API keys, auth files, browser profiles, lock files, caches, bytecode.
Example source config
See:
examples/private-sources/hermes-soul.example.json
The config is safe to publish because it describes the boundary, not the private content.