OpenClaw to Hermes Migration (7/13) — A 5-Week Plan: Function Category Breakdown
Week 1 is the SQLite schema, Week 5 is the cutover
ํต์ฌ ์์ฝ
What this post covers: - Transplant unit design: collapsing 30+ scripts into a function category breakdown (A–K) to fix migration units at a manageable count. - 5-week cutover schedule template: Week 1 schema → Week 2 migration → Week 3 install → Week 4 asset transplant → Week 5 dual-run + cutover. - Three deliverable specs: detailed schedule, Profile definitions, memcore API spec — required fields and inter-document relationships for each.
Function Category Breakdown — Grouping by Functional Unit
Enumerating transplant specs at the script level expands the move/verification surface to 30+ units. Grouping by functional unit reduces that same scope to a tractable set. The grouping criterion is "shares the same schema or protocol," and the table below is the result of applying that criterion.
| Category | Core | |
|---|---|---|
| A | Memory System | 4-tier, Retain tags, U-tag dialectic, Reflect, micro-cycle, Topic-Cued Recall, semantic search |
| B | Heartbeat | 3-tier + 11 escalation reasons + Quota check |
| C | Self-Review | 3-stage + Skill Evolution Loop |
| D | Daily Audit | Phase A–E (guide/update detection, diagnosis, aggregation, final review) |
| E | Researcher Deep Mode | 5-round AutoSearch + 3-tier web access |
| F | Channel Routing | Discord primary channel + Telegram Forum 6 topics |
| G | Profile Mapping | Workspaces → 5–6 profiles |
| H | Hooks | PostToolUse, PreToolUse, SessionStart/End/Compact |
| I | Security Model | loopback, token, dmPolicy, single-user scope |
| J | Auto Update | com.hermes.update-check (new) |
| K | Deprecation Targets | OpenClaw-specific skills and scripts |
How It Works
Grouping by category produces two effects. First, the transplant checklist shrinks from N (scripts) to K (categories). Second, because items within a category share the same data structures, verification scenarios need to be designed only once and reused across all internal items. Take Heartbeat (B) as an example: the 3-tier logic, 11 escalation reasons, and Quota check all share the same message schema, so a single regression test covers the entire group.
Limitations
Cross-category dependencies (e.g., A Memory ↔ H Hooks) must be tracked separately. Grouping alone does not fix execution order; the actual sequence in the 5-week schedule is derived from the dependency graph.
5-Week Schedule — Dependency Order and Verification Checkpoints
| Week | Work |
|---|---|
| 1 | memcore SQLite schema design + library skeleton |
| 2 | bank/ → memcore conversion (rsync snapshot + migration) |
| 3 | Hermes install + 1 profile + MemoryProvider adapter |
| 4 | Transplant 8 preserved assets + define Hermes profiles (5–6) |
| 5 | Dual-run + verification + cutover |
Each week is broken down to input / output / verification / rollback conditions at the day level. At any interruption point in the migration, it must be possible to reconstruct "which stage is currently active." The Week 5 dual-run — running both systems simultaneously before stopping one — carries the most densely defined rollback conditions.
Three Deliverable Specs
1. Hermes-Migration-Detailed-Plan.md
The 5-week schedule itemized as Day 1–35. Each day's input, output, verification criteria, and rollback conditions are defined in table form. The objective: at any arbitrary point mid-migration, "current state · next action · recovery path on failure" must be queryable from a single document.
2. Hermes-Profile-Definitions.md
Draft AGENTS.md for 5–6 Hermes profiles:
- mir-coordinator — user persona, routing
- research — web research + Deep Mode
- writer — writing
- coder — coding + CLI
- google-workspace — Gmail / Calendar
- memory-ops — Reflect, audit, housekeeping
Each profile explicitly declares its active skill categories. The compression from multiple workspaces down to 6 profiles is the core design point and is the tangible output of category G (Profile Mapping).
3. memcore-API-Spec.md
External API signatures for the memcore library. Includes a mapping table to Hermes's MemoryProvider interface — initialize / system_prompt_block / prefetch / sync_turn / get_tool_schemas / handle_tool_call / shutdown / on_session_end / on_pre_compress / on_memory_write / on_delegation. This mapping is what makes the Week 3 adapter work mechanical rather than exploratory.
Applicability and Open Questions
Applicability. The function grouping + 5-week cutover template is reusable for any migration satisfying these three conditions: (1) the source system is decomposable into script/skill units; (2) there are sufficient resources to run both systems in parallel; (3) an adapter layer sharing memory/state between the two can be designed. If any of the three conditions is absent, the Week 5 dual-run cannot be structured.
Open questions.
- When the category count exceeds the current breakdown, the grouping benefit diminishes. Where is the upper bound?
- Is day-level granularity sufficient for Week 5 cutover rollback conditions, or does it need to go down to the hour level?
- The MemoryProvider interface's on_pre_compress hook does not map 1:1 to OpenClaw's existing compression logic. Should this gap be absorbed in the adapter, or should the interface itself be adjusted?
The next post covers the Week 1–2 execution results — SQLite schema structure, FTS5 index configuration, and measurements at the point where 7 of 8 preserved assets were transplanted.
Series overview: Series index
๋๊ธ
๋๊ธ ์ฐ๊ธฐ