Self-improvement consolidation: surface validation and goal status¶
OpenClaw Mem's self-improvement work is split into deliberately small, reviewable pieces. This page documents the first read-only slice:
- a shared surface/receipt validation contract, and
- a goal status readback command.
The slice is intentionally local-only and non-mutating. It is meant to make future memory, skill-curator, and goal-continuation work safer by establishing a common receipt and authority shape before any background loop is allowed to write durable state.
Why this exists¶
Agents feel more useful when they can preserve unfinished work and improve reusable procedures. OpenClaw's product posture is that this self-improvement must be observable, feature-flagged, rollbackable, and gated by write authority.
This pilot therefore starts with validation and status, not automation.
Surface inventory contract¶
A surface inventory lists self-improvement-related components and their current authority level.
Example:
{
"surfaces": [
{
"surface_id": "goal.primitive",
"state": "lab",
"owner": "openclaw-mem",
"write_authority": "stage",
"risk_class": "L1",
"protected": false,
"rollback": null
},
{
"surface_id": "skills.operator-rule",
"state": "stable",
"owner": "operator",
"write_authority": "none",
"risk_class": "L3",
"protected": true,
"rollback": "manual review required"
}
]
}
Supported states:
stablelabshadowretired
Supported write authorities:
nonesuggeststageapply-localapply-publish
Supported risk classes:
L0— read-only/report onlyL1— staged local artifact, no live runtime effectL2— local durable memory/skill additionL3— edit/delete/retire existing load-bearing rule/skill/memoryL4— external publish, config/routing/cron/topology mutation
Protected surfaces require at least apply-local authority, and L4/external surfaces require apply-publish authority with explicit approval.
Validate a surface inventory or receipt¶
openclaw-mem surface validate --inventory surfaces.json --json
Validate a receipt against an inventory:
openclaw-mem surface validate \
--inventory surfaces.json \
--receipt receipt.json \
--out validation-receipt.json \
--json
The command returns a validation receipt with writes_performed=false.
Goal status readback¶
goal status normalizes a goal/controller receipt into a small, read-only status object.
Example input:
{
"goal": {
"goal_id": "self-improvement-pilot",
"objective": "Ship read-only goal status",
"status": "active",
"phase": "phase-1",
"next_gate": "run tests",
"continuation_owner": "operator",
"completion_verifier": "pytest"
}
}
Run:
openclaw-mem goal status --file goal.json --json
Write a status receipt:
openclaw-mem goal status \
--file goal.json \
--out goal-status.receipt.json \
--json
The command is read-only except for the optional explicit --out file.
Relationship to context packing¶
This pilot does not implement runtime continuation or compaction behavior. For compaction-safe injection, the intended future seam is an OpenClaw context engine. Prompt hooks can provide fallback context, but the durable goal/todo state should be owned by a context/packing layer rather than pasted into every turn unconditionally.
Non-goals¶
- no automatic skill mutation
- no live auto-continuation
- no cron or gateway topology changes
- no retirement of legacy memory surfaces
- no external publishing without review and explicit approval