OpenClaw Install Target Plan
This plan covers OpenClaw as a restricted install target for canonical
ai-agents-skills skills. It is separate from the existing
OpenClaw Integration Plan, which treats
OpenClaw as a legacy source for sanitized inventory and migration review.
The current implemented scope has two layers. Normal installer support remains
restricted fake-root target support: the installer includes OpenClaw in the
default target set, detects eligible fake-root .openclaw homes, and can copy
eligible SKILL.md files to .openclaw/skills/<skill>/SKILL.md, but normal
plan, install, uninstall, and rollback flows still must not write under
a real .openclaw tree. A separate openclaw-target-* command family now
implements a narrow reviewed v2 real-system path for
.openclaw/skills/<skill>/SKILL.md only.
Implemented fail-closed behavior:
OpenClaw participates in default target detection when an eligible fake-root
.openclawhome existsdefault or explicit OpenClaw requests without an
.openclawhome report the missing target and create no directories or filesnormal real-system OpenClaw plans, applies, uninstalls, and rollbacks remain blocked outside the explicit
openclaw-target-*paththe Phase 1 OpenClaw target gate reports blocked real-system decisions without enabling normal installer write eligibility
openclaw.target-evidence.v1andopenclaw.target-manifest.v1schemas are non-authorizing scaffolds; they cannot emit approval-eligible real-path action IDs, approval hashes, or write recordsopenclaw.target-evidence.v2andopenclaw.target-manifest.v2can authorize only reviewedcopywrites toskills/<skill>/SKILL.mdunder an existing.openclaw/skillsrootopenclaw-target-apply-manifestrequires an approved immutable v2 manifest, immediate target pre-state recheck, an OpenClaw-specific confirmation phrase, and--real-systemfor real home rootsan already-present byte-identical managed skill is not rewritten: apply adopts it only after the approved canonical-source digest, rendered-content digest, owner, file identity, timestamps, link count, and mode all recheck; the attestation is recorded in
.ai-agents-skills/openclaw-target-state.jsonv2 uninstall deletes only unchanged files created by target apply; it forgets adopted pre-existing files without deleting them
OpenClaw instruction blocks and management notices are not generated
symlink and reference install modes are blocked for OpenClaw
manifest runtime-backed skills are blocked until neutral runtime evidence and rendering exist
support files are skipped unless backed by
manifest/schema/openclaw/target-support-file.schema.jsonmetadata
Out of band from managed skill-file installs: the legacy dual-route /aas
adapter may exist under ~/.openclaw/workspace/skills/aas-remote-bridge/, but
publishing is currently disabled. publish_openclaw_adapter.py is an inert
no-write revocation stub. It and the retired sync filename remain installed for
one compatibility release. Replacing older managed runtime copies requires an
explicitly reviewed backup-and-replace upgrade that preserves recovery data;
default installation does not overwrite divergent copies. The blocked publisher
cannot replace or clean up already-published OpenClaw workspace copies. Host and
workspace secrets/state are independent; automatic/bidirectional sync is not supported.
Scope And Evidence
Scope:
add a general OpenClaw install-target design for any system
use the maintainer host’s OpenClaw layout only as example evidence
keep OpenClaw-as-source migration separate from OpenClaw-as-target installs
define gates before real
.openclawwrites are possible
Evidence inspected for this plan:
existing installer target code for Codex, Claude, DeepSeek, Copilot, OpenCode, and Antigravity
existing OpenClaw source/import pipeline modules and tests
existing OpenClaw integration and verification documentation
a sanitized local OpenClaw inventory with deny-by-default content policy
redacted
openclaw.jsonkey/type structure only; values were not readan observed skill-like directory at
.openclaw/skills/<name>/SKILL.mdwith helper fileslocal native OpenClaw command behavior for
openclaw --version,openclaw skills --help, andopenclaw skills list --jsoninstalled native OpenClaw loader code showing managed skills are loaded from
CONFIG_DIR/skillsas<skill>/SKILL.md
Concrete repo artifacts inspected:
installer/ai_agents_skills/docs.pyinstaller/ai_agents_skills/agents.pyinstaller/ai_agents_skills/planner.pyinstaller/ai_agents_skills/runtime.pyinstaller/ai_agents_skills/openclaw_inventory.pyinstaller/ai_agents_skills/openclaw_evidence.pyinstaller/ai_agents_skills/openclaw_apply.pyinstaller/ai_agents_skills/openclaw_target_gate.pyinstaller/ai_agents_skills/openclaw_target_evidence.pyinstaller/ai_agents_skills/openclaw_target_manifest.pyinstaller/ai_agents_skills/openclaw_target_paths.pyinstaller/ai_agents_skills/openclaw_target_apply.pytests/test_installer.pytests/test_runtime_integration.pytests/test_openclaw_phase0.pytests/test_openclaw_target_phase1.pytests/test_openclaw_target_v2.pytests/test_openclaw_inventory.pytests/test_openclaw_manifest.pytests/test_openclaw_apply.pytests/test_openclaw_evidence.pytests/test_openclaw_persistence.py
Confirmed from repo inspection:
default install targets are currently Codex, Claude, DeepSeek, Copilot, OpenCode, Antigravity, Grok, Kimi, and OpenClaw
OpenClaw is a default target for restricted fake-root layout tests
OpenClaw has a Phase 1 target capability record and central target gate that preserves normal installer real-system denials
OpenClaw has a separate v2 target-evidence, target-manifest, apply, and uninstall path for reviewed real-system skill-file writes only
OpenClaw code in this repository is currently a quarantined source/import pipeline with explicit roots, sanitized inventories, immutable manifests, fake-root apply, evidence recording, and persistence blocking
default installer behavior must remain unchanged for existing targets
default OpenClaw installer behavior must remain fake-root-only unless the explicit
openclaw-target-*command path is used
Confirmed from sanitized host evidence:
OpenClaw homes can contain many sensitive or active state areas, including credentials, browser state, memory, logs, hooks, cron, workspaces, backups, locks, sandbox state, plugins, and config backups
.openclaw/skills/<name>/SKILL.mdis a plausible candidate skill shape
incomplete analysis
Still unchecked before expanding beyond the implemented v2 skill-file path:
live canary visibility on this host for a newly written managed skill
whether OpenClaw loads support files beside
SKILL.mdwhether OpenClaw follows symlinks or relative helper paths safely
how OpenClaw invokes helper scripts, sets working directories, and passes environment variables to runtime-backed skills
whether any candidate documentation namespace under
.openclawis ignored by loaders, indexers, sync, command discovery, plugin discovery, runtime path scans, and active context constructionprecedence among
skills,plugin-skills,plugins,agents,subagents,qmd, and workspace-local locationscross-platform OpenClaw layouts on macOS, Windows, and WSL
live rollback behavior while OpenClaw is running
Decision
OpenClaw should start as a restricted default target class. It may participate
in default fake-root target detection, but it should not behave like a normal
real-system peer of Codex, Claude, or DeepSeek. Real-system writes are
available only through the explicit reviewed v2 OpenClaw target manifest path,
and only for managed SKILL.md files.
Resolve install-mode policy by phase:
Normal installer copy-mode may be exercised in fake roots only. Normal
plan,install,uninstall, androllbackflows must not write anywhere under a real.openclawtree, including.openclaw/ai-agents-skills/....The implemented v2 real-system gate can copy only
.openclaw/skills/<skill>/SKILL.md. It requires native loader evidence, native managed-skill-root evidence, target pre-state evidence, quiescence/lock evidence, an approved content-addressed target manifest, an OpenClaw-specific confirmation phrase, and--real-systemfor real home roots. Managed non-canary skill writes also require a native managed canary evidence record.Native loader evidence is necessary but not sufficient for broader real writes. Runtime-backed skills, with their inert and executable runtime files, install on real homes only through the approved real-system runtime manifest gate and are fake-root-only by default. Symlinks, reference adapters, instruction files, plugins, hooks, and config remain blocked until separate evidence and approval gates exist.
Symlink mode stays blocked until separately proven.
Reference mode is not an active OpenClaw loader mode unless OpenClaw is proven to follow reference adapters.
Target Policy
Target identity:
target id:
openclawcandidate skill directory after evidence:
.openclaw/skills/<skill>/future candidate inert documentation namespace after native inertness evidence:
.openclaw/ai-agents-skills/...
Detection policy:
include OpenClaw in default target detection when an eligible
.openclawfake-root home existsnever create
.openclawonly because OpenClaw is in the default target setallow explicit
--agents openclawfor targeted prechecks and plansrequire a fake root for normal lifecycle writes
require an approved v2 OpenClaw target manifest for the narrow real-system
SKILL.mdpath
Artifact policy:
normal fake-root MVP allows only eligible skill files in fake roots
v2 real-system target manifests allow only
skills/<skill>/SKILL.mdwith action classcanary-skill-fileormanaged-skill-fileevery OpenClaw support-file action must be backed by explicit manifest metadata from
manifest/schema/openclaw/target-support-file.schema.jsonfor artifact class, execution role, compatibility tuple, platforms, path styles, shell family, wrapper/runtime class, newline policy, mode policy, text/binary policy, and any helper-evidence requirementunclassified OpenClaw support files fail closed; filesystem discovery alone is not enough to make a support file installable for OpenClaw
no instruction blocks for OpenClaw
no management notice in
openclaw.jsonor a fabricatedAGENTS.mdno default optional artifacts under active OpenClaw loader paths
inert docs/templates are fake-root-only until scoped native inertness evidence proves the target namespace is not loaded, executed, synced, indexed into active context, or otherwise behavior-affecting
.openclaw/ai-agents-skills/...is a candidate quarantined namespace only; it is not part of the v2 real-system write exception
Runtime policy:
do not install runtime wrappers into
.openclaw/bin, hooks, plugins, config, or runtime state in the MVPuse a validated neutral
ai-agents-skillsruntime root outside known agent home trees and active loader/config/runtime areas for any OpenClaw targetkeep
~/.codex/runtimeindependent from OpenClaw target supporttreat runtime files as their own root-scoped artifacts, not as OpenClaw settings files
reject runtime roots resolving under
.openclaw,.codex,.claude,.deepseek, workspace-local agent directories, hooks, plugins, qmd, bin, commands, config, cache/state, symlinked parents, traversal, Windows reserved names, or case/Unicode collisionsreject runtime roots that lack a canonical realpath, have symlinked parents, are not owned by the current user, are group/world-writable, live under unsafe mounts, synced folders, workspace roots, or the repository checkout unless explicitly approved, or are not bound into the approval manifest
plan only runtime and support files whose manifest compatibility tuple matches every target dimension: platform, path style, shell family, wrapper/runtime class, newline policy, and mode policy; unknown or mixed dimensions fail closed
Runtime script classes:
Class |
Examples |
MVP policy |
|---|---|---|
Text support files |
Markdown, JSON, YAML, Python modules read as text, reference files shipped beside |
Fake-root only when explicit OpenClaw support-file metadata exists; unclassified support files fail closed. |
Executable helper scripts |
|
Fake-root only until helper-invocation evidence exists; preserve bytes, newline form, shebang, and executable mode instead of prepending managed headers. Real installs require helper-invocation evidence scoped by OpenClaw version, platform/path style, shell, cwd, argv, env allowlist, executable mode, line endings, support-file visibility, and paths with spaces. |
Binary support files |
Images, compiled helpers, archives, opaque assets |
Blocked until a binary artifact policy and verification model exist. |
Shared runtime files |
|
May be installed only to a repo-managed shared runtime root outside known agent homes and active loader/config/runtime areas; OpenClaw skills must not point at |
OpenClaw-native execution surfaces |
|
Blocked until a separate threat model and approval gate exist. |
Runtime-backed skill design:
generated OpenClaw skill material must not hardcode Codex runtime paths
the preferred runtime root for OpenClaw-only or mixed installs is a shared
ai-agents-skillsruntime outside.openclawruntime wrappers must accept only workspace-relative skill commands and reject absolute paths and
..traversalproduction runtime wrappers and tests must use an allowlisted environment and must not inherit OpenClaw provider/config/model/shell/
.envstate by defaulthelper-invocation evidence must show whether OpenClaw runs helper scripts directly, whether the current working directory is the skill directory, what
argvand shell are used, whether support files are visible at runtime, what environment is inherited, whether executable modes and line endings are preserved, and how paths with spaces behavehelper-invocation evidence must be reproducible: record a native probe skill with declared helper files and path-with-spaces fixtures, probe source commit, OpenClaw version, platform/path/shell matrix, raw command transcript hash, stdout/stderr hashes, env allowlist diff, artifact hashes, and known limitations
Real-system write policy:
normal installer flows must not plan or apply any write under a real
.openclawtree, including.openclaw/skills,.openclaw/ai-agents-skills, config, runtime, hooks, plugins, cache/state, or any descendantone implemented real-system exception is the explicit
openclaw-target-apply-manifestpath for approved v2skills/<skill>/SKILL.mdcopy actions; the other is the runtime approval gate described belowthe v2 gate requires existing
.openclawand.openclaw/skillsdirectories, target path shapeskills/<skill>/SKILL.md, no symlinked target parents, managed OpenClaw skill content, no Codex runtime paths, native-loader evidence, native managed-skill-root evidence, target-pre-state evidence, quiescence evidence, and canary evidence for non-canary managed skill writesOpenClaw-associated shared runtime-root writes are fake-root-only by default; a dedicated real-system runtime approval gate is now implemented (
openclaw-runtime-approve-manifestthenopenclaw-runtime-apply-manifest --real-systemwith verify-before-write, the runtime files exposed to the sandbox by theopenclaw-broker). Its manifests bind target realpath, runtime realpath, source commit, artifact hashes, evidence IDs, pre-state hashes, and action classesv1 target-evidence and target-manifest records remain non-actionable diagnostics and cannot authorize real
.openclawwrite recordsevery write must have a manifest action, precondition, collision policy, rollback record, and uninstall check
existing OpenClaw files are preserve-only by default
No-Go Surfaces
The installer must not write, adopt, migrate, copy, parse deeply, or import from these OpenClaw areas by default:
openclaw.jsonsecrets, credentials, identity, provider/auth/channel/gateway settings
logs, sessions, memory databases, browser state
hooks, cron, shell profiles, schedulers, persistent execution entries
workspaces, workspace-local state, backups, sync-conflict files
queues, locks, sandbox and sandboxes
plugins, plugin-skills, qmd, bin, agents, subagents
tasks, devices, delivery queues, downloaded runtime data
cache and caches, history, tokens, snapshots, private state
.env,.git, MCP/server config, tool shimscommands, aliases, entrypoints, instructions, templates
Any uncertainty about whether a path is config, runtime state, executable, auto-loaded, synced, or user-owned is a no-go until separately analyzed.
Implementation Phases
Phase |
Goal |
Allowed behavior |
Exit gate |
|---|---|---|---|
1. Policy and registry |
Represent restricted targets explicitly. |
Add scoped target capability fields; do not enable OpenClaw manifest eligibility or writes. |
Existing Codex/Claude/DeepSeek tests unchanged. |
2. OpenClaw-target evidence model |
Separate source-import evidence from install-target evidence. |
Add target evidence records for OpenClaw loader, helper execution, runtime root, and inertness observations; existing |
Fixture/manual/upstream evidence cannot enable real OpenClaw writes. |
3. Manifest and rendering eligibility |
Decide which skills can be rendered for OpenClaw. |
Add an OpenClaw compatibility layer or explicit manifest support entries; runtime-backed skills require neutral rendering first. |
Unsupported skills produce no OpenClaw write actions. |
4. Restricted fake-root target |
Exercise candidate OpenClaw skill layout without touching real systems. |
Add explicit |
Fake-root apply, verify, uninstall, and rollback pass. |
5. Candidate inert namespace |
Design quarantined docs/templates without real writes. |
Treat |
Candidate namespace contract, no-real-write planner checks, and docs/tests exist. |
6. Shared runtime contract |
Support runtime-backed skills without depending on Codex or OpenClaw runtime state. |
Install root-scoped runtime files only under a validated neutral runtime root outside known agent homes and active loader/config/runtime areas; platform-filter runtime and support files. |
Runtime fake-root lifecycle and OpenClaw-shaped runtime smoke tests pass. |
7. Native loader, inertness, and helper evidence |
Prove active and inactive OpenClaw surfaces. |
Record OpenClaw version, platform, path style, shell, install mode, command summary, artifact hashes, working directory, argv, helper visibility, environment handling, inert namespace behavior, helper-invocation behavior, and limitations. |
Native-loader or high-fidelity-loader evidence, native inertness evidence, and any required helper-invocation evidence exist for the claimed matrix. |
8. Real-system dry-run gate |
Inspect real targets without side effects. |
Produce reviewed dry-run manifests only; bind evidence IDs, target realpath, source commit, artifact hashes, runtime root, pre-state hash, quiescence/lock status, and action classes. |
Dry-run manifest is approved and still matches target pre-state. |
9. Real-system active skills |
Enable tightly scoped real installs. |
Allow |
One-skill apply/uninstall proves rollback without touching no-go surfaces. |
10. Later expansion |
Evaluate non-skill OpenClaw surfaces. |
Templates, commands, agents/subagents, plugins, hooks, schedules, OpenClaw-native runtime wrappers, and config each require separate threat models. |
Separate approval per surface. |
Code Design Notes
The target model should separate known targets from default-detected targets.
openclaw may be a known target for explicit selection while remaining absent
from the default install set.
Recommended capability fields:
known_target: bool
detect_by_default: bool
requires_explicit_selection: bool
allows_instruction_blocks: bool
allowed_artifact_classes_by_phase: dict[str, tuple[str, ...]]
allowed_install_modes_by_scope: dict[str, tuple[str, ...]]
requires_native_loader_evidence: bool
requires_native_inertness_evidence: bool
real_openclaw_writes_allowed: bool
required_apply_flags: tuple[str, ...]
Planner behavior should use these capabilities instead of path-name special cases:
skip instruction-block and management-notice planning when
allows_instruction_blocksis falsereject artifact classes outside the current phase and evidence scope
reject real-system actions when
real_openclaw_writes_allowedis falsedegrade or block install modes according to the target capability policy
distinguish fake-root copy from real active-loader copy
distinguish native loader evidence from native inertness evidence
The fake-root OpenClaw target can use copy mode because copy mode records file hashes and support files in the existing installer model. That does not imply real OpenClaw loader support until evidence upgrades the target policy.
Implemented Phase 1 scaffolding:
openclaw_target_gate.pyis the central non-authorizing policy evaluator for OpenClaw target detection, planning, apply preflight, runtime preflight, uninstall, and rollback. It returns structured blocked or fake-root-only decisions and never returns real-write eligibility in Phase 1.openclaw_target_evidence.pyvalidatesopenclaw.target-evidence.v1records. These records must setauthorizes_real_writes: falseandapproval_eligible: false; existingopenclaw.evidence.v1source/import evidence is rejected for target authorization.openclaw_target_manifest.pyvalidatesopenclaw.target-manifest.v1diagnostic manifests. These manifests must keepreal_write_status: blocked,authorizes_real_writes: false, andapproval_eligible: false; existingopenclaw.apply-manifest.v1source/import manifests are rejected for OpenClaw-as-target authorization.
Implemented v2 real-system skill-file path:
openclaw_target_evidence.pyalso validatesopenclaw.target-evidence.v2records from native probes. Authorizing evidence must be limitation-free, content-addressed, bound to one target realpath and managed skills realpath, and sourced fromnative-probe.openclaw_target_manifest.pyalso validatesopenclaw.target-manifest.v2records. A v2 manifest is not authorizing until its approval record hasreview_status: approvedandapproval_hashequal to the immutablemanifest_id.openclaw_target_paths.pylimits real-system OpenClaw target paths toskills/<skill>/SKILL.mdand requires canonical kebab-case skill names.openclaw_target_apply.pyis the only implementation that writes through the v2 path. It records a transaction before mutation, rechecks target pre-state immediately before each write, writes only managed skill content, runs native post-apply checks for real home roots, and uninstalls only files whose current hash still matches the recorded install hash.Normal
plan,install,uninstall, androllbackstill use the Phase 1 gate and remain blocked for real-system OpenClaw writes.
Runtime-file planning must stay root-scoped. A runtime-backed OpenClaw skill
may require shared runtime files, but those files must be planned under the
runtime root, not inside .openclaw. Runtime support is acceptable only when
the generated OpenClaw skill text and helper scripts avoid Codex-specific
absolute paths, especially ~/.codex/runtime.
Approval manifests for any future real OpenClaw target write must bind the manifest hash, source repo commit, native evidence IDs, OpenClaw version, platform, path style, shell, target canonical realpath, target pre-state hash, artifact hashes, runtime root, and allowed action classes. Target pre-state, path safety, permissions, and write policy must be rechecked immediately before apply and uninstall.
Implementation Issue Breakdown
Recommended implementation issues:
Target capability model and default OpenClaw registry entry.
OpenClaw-target evidence schema with separate loader and inertness records.
Skill compatibility and manifest eligibility layer for OpenClaw.
OpenClaw support-file manifest metadata and fail-closed classification via
manifest/schema/openclaw/target-support-file.schema.json.Runtime-neutral OpenClaw rendering for eligible skills.
Fake-root OpenClaw skill layout planner and lifecycle tests.
No-go path fixture expansion and path-safety preflight.
Shared runtime-root contract, real-system runtime approval gate, and compatibility-tuple-filtered runtime planning. (Implemented.) The runtime approval gate ships as the
openclaw-runtime-probe,openclaw-runtime-dry-run-manifest,openclaw-runtime-approve-manifest, andopenclaw-runtime-apply-manifestcommands plus theopenclaw-brokerhost process; real-system runtime apply requires an approved content-addressed manifest,--real-system, a confirmation phrase, and verify-before-write.Executable and binary support-file policy.
Helper-invocation evidence gate for runtime-backed and executable-helper skills.
Generated-doc contract test for this plan.
Real-system v2 target evidence and manifest gate for skill files.
Real-system quiescence/lock and write-time pre-state recheck gate.
Real-system apply/uninstall gate for approved
SKILL.mdcopy actions.Later support-file, runtime-backed skill, symlink/reference, inert namespace, and OpenClaw-native execution surface gates.
Required Tests
Default and explicit selection:
default detection includes eligible fake-root
.openclawhomesdefault detection does not create
.openclawwhen it is absentexplicit
--agents openclawremains available for targeted checksdefault or explicit OpenClaw selection without an existing fake-root
.openclawhome fails closednormal installer real
.openclawpaths never appear in write actions; the only real-system write actions are produced by approved v2openclaw-target-*manifests
Fake-root lifecycle:
fake-root OpenClaw copy installs non-runtime-backed or runtime-neutral
SKILL.mdand text support filesfake-root OpenClaw install creates no symlinks
verify checks the copied files
uninstall returns the fake root to baseline
changed generated files are preserved and reported as conflicts
Planning safety:
no OpenClaw instruction-block actions are planned
openclaw.jsonnever appears as a write targetbackup-replace,adopt, andmigrateare disabled for OpenClaw MVP unless explicitly designedunmanaged existing
.openclaw/skills/<skill>/SKILL.mdis skipped by defaultv2 target manifest generation refuses existing unmanaged
.openclaw/skills/<skill>/SKILL.md
Path safety:
symlinked
.openclaw, symlinked parents, hardlinks, special files, path traversal, case/Unicode collisions, and Windows reserved names fail closedtable-driven no-go fixtures cover every category listed in
## No-Go Surfaces, including credentials, sessions, browser state, memory, logs, hooks, cron, shell profiles, schedulers, workspaces, backups, queues, locks, sandbox state, plugins, plugin-skills, qmd, bin, agents, subagents, tasks, devices, cache/history/tokens/snapshots,.env,.git, MCP/server config, tool shims, commands, aliases, entrypoints, instructions, and templates; none may appear in plan writespath fixtures cover reparse points, junctions, mount escapes, alternate data streams, trailing dot/space names, 8.3 aliases, ownership/permission drift, and write-time TOCTOU rechecks
Runtime safety:
runtime-backed fake-root OpenClaw skills copy declared per-skill helper files as support files, but do not execute them during install
OpenClaw support-file planning validates explicit manifest metadata for artifact class, execution role, compatibility tuple, platforms, path styles, shell family, wrapper/runtime class, newline policy, mode policy, text/binary policy, and helper-evidence requirement from
manifest/schema/openclaw/target-support-file.schema.json; unclassified support files fail closedOpenClaw runtime-file actions target a validated neutral shared runtime root outside
.openclaw,.codex,.claude,.deepseek, workspace-local agent directories, and active loader/config/runtime areasneutral runtime-root validation checks canonical realpath, symlink parents, owner, group/world-writable modes, unsafe mounts, synced/workspace roots, repository checkout location unless explicitly approved, stable per-platform defaults, and approval-manifest binding
generated OpenClaw skill content and helper scripts contain no
~/.codex/runtime,.codex/runtime,$CODEX_HOME,%USERPROFILE%\.codex, or absolute.codexruntime dependencyno OpenClaw-native runtime action writes to
.openclaw/bin, hooks, plugins, shell profiles, schedulers, qmd, or OpenClaw configcompatibility-tuple-filtered runtime and support-file actions are tested across Linux, macOS, Windows, WSL-native, and mounted-Windows path styles; platform, path style, shell family, wrapper/runtime class, newline policy, and mode policy must all match
executable helper support files preserve bytes, newlines, shebangs, and executable modes
real runtime-backed or executable-helper installs fail closed unless helper-invocation evidence exists for the artifact class and target matrix
helper-invocation evidence tests require reproducible native probe artifacts, raw transcript hashes, stdout/stderr hashes, env allowlist diffs, artifact hashes, OpenClaw version, platform/path/shell metadata, and probe source commit
planner/runtime behavior tests reject Codex runtime paths in rendered OpenClaw artifacts, unclassified support files, compatibility tuple mismatches, invalid neutral runtime roots, missing executable-helper gates, real
.openclawwrite actions outside the v2 skill-file gate, and approval-eligible v1 target recordsOpenClaw-associated shared runtime-root writes remain fake-root-only until the dedicated real-system runtime approval gate is implemented and tested
runtime wrappers reject absolute command paths and
..traversalruntime smoke tests distinguish fake-root runtime isolation from native OpenClaw execution proof
Evidence safety:
fixture-only, manual-review, and upstream-doc evidence cannot enable active or inert real OpenClaw writes
OpenClaw-source evidence and OpenClaw-target evidence are separate
manifest/schema/openclaw/target-evidence.schema.jsonandmanifest/schema/openclaw/target-manifest.schema.jsonrequire non-authorizing Phase 1 records and authorizing Phase 2 records with distinct schema versionsexisting
openclaw.evidence.v1source/import evidence cannot approve OpenClaw target writes; v2 skill-file target approval requires native loader, native managed-skill-root, target pre-state, quiescence, and, for non-canary managed writes, native managed-canary evidencev2 native target evidence must be scoped by OpenClaw version, platform, path style, target realpath, managed skills realpath, observed behavior, and limitation-free probe checks
future inert namespace evidence must prove candidate namespaces are not loaded, executed, indexed into active context, synced as command/config, or otherwise behavior-affecting
evidence summaries must distinguish fake-root isolation from native loader proof
Docs contract:
generated docs include this install-target plan
generated docs name the Phase 1 target gate, target evidence schema, and target manifest schema as non-authorizing scaffolding
the plan says normal installer flows still cannot write real
.openclawpaths and that v2 real-system writes are limited toskills/<skill>/SKILL.mdthe central real-system write policy names native loader evidence and native managed-skill-root evidence separately
v1 target-evidence and target-manifest output is non-actionable and not approval-eligible
v2 target manifests require approval before apply
OpenClaw support-file actions require explicit manifest metadata, and unclassified support files fail closed
docs/source OpenClaw install-target plan output matches the root docs copy
docs tests assert key safety claims in their normative sections, not only in checklists
docs tests assert the full normal-installer negative sentence and the exact v2 exception path
.openclaw/ai-agents-skills/...is not part of the v2 real-system write exceptionfake-root copy is not native loader proof
shared runtime root is outside known agent homes and active loader/config/runtime areas
generated OpenClaw skill material must not depend on any Codex runtime path
the former optional-inert-docs exception is absent
stale phrases from prior plans are absent, including older inert-docs exceptions and loader-evidence-only real copy wording
Real-system gate:
normal installer flows reject real home roots for OpenClaw writes
OpenClaw-associated shared runtime-root writes are gated by the dedicated real-system runtime approval gate (now implemented:
openclaw-runtime-apply-manifest --real-systemwith an approved manifest + confirmation phrase + verify-before-write), not by normal installer flowsv2 real-system dry-run output may contain only
skills/<skill>/SKILL.mdactions with action classcanary-skill-fileormanaged-skill-fileapproved v2 real-system manifests must match the exact target realpath, managed skills realpath, manifest hash, artifact hash, native evidence IDs, pre-state signature, and allowed action class
any drift in source evidence, target pre-state, schema version, permissions, or action policy fails closed before writes
real apply and uninstall must fail closed unless OpenClaw is stopped, locked, or otherwise quiescent; target pre-state and write policy must be rechecked immediately before writes
an identical pre-existing skill becomes managed only through an approved canonical-source/rendered-content digest and exact file-identity attestation; it is never rewritten by the no-op adoption path
v2 uninstall deletes only unchanged files created by target apply, forgets adopted pre-existing files without deleting them, and cleans only recorded empty parent directories
Acceptance Criteria
OpenClaw target support is acceptable only when:
default installer behavior is unchanged for Codex, Claude, DeepSeek, Copilot, OpenCode, and Antigravity
OpenClaw participates in default target discovery when an eligible fake-root
.openclawhome existsnormal OpenClaw installer writes are fake-root-only
real-system OpenClaw writes are possible only through approved v2
openclaw-target-*manifests forskills/<skill>/SKILL.mdall other real
.openclawwrites, including.openclaw/ai-agents-skills, support files, config, runtime, hooks, plugins, and cache/state, are impossible before separate evidence and approval gatesfake-root copy may be exercised before native evidence, but real active-loader copy is limited to the v2 skill-file gate
runtime-backed skills use a shared runtime root outside known agent homes and active loader/config/runtime areas and do not depend on any Codex runtime path
shared runtime-file actions are allowed only under a validated neutral runtime root outside
.openclaw,.codex,.claude,.deepseek, workspace-local agent directories, and active loader/config/runtime areas and only after the dedicated real-system runtime approval gate for real OpenClaw-associated runtime writesno OpenClaw-native runtime, workspace, command, hook, plugin, qmd, bin, scheduler, shell-profile, settings mutation, or config action is planned before a separate evidence and approval gate
no-go surfaces are enforced by tests
docs clearly separate OpenClaw-as-source import from OpenClaw-as-install-target
focused OpenClaw target tests, full installer tests, docs generation, and fake-root lifecycle checks pass
Related pages: OpenClaw Integration Plan, Agent Locations, Architecture, Verification, Uninstall And Rollback.