The governed path
no_op, and a pending or rejected Candidate never becomes a managed Skill.
Install and enable generation
Install the CLI and start a Server with a generation model:Managed Skill generation: enabled for model-backed generation. Without it, generation returns generation_unavailable and creates no Candidate. A lower-level typed proposal can still create a Candidate when an integration already has complete Skill content and exact evidence.
Start from exact evidence
A generated Skill has one of three origins:
Example from an approved procedure Source:
Review the Candidate
Generation returns either a pending Candidate orno_op. Inspect the proposal and its evidence before deciding:
version and Artifact Revision are different concurrency domains. Revising a Candidate replaces the complete proposal and increments its version. Approval atomically records the terminal Candidate decision and creates an immutable Skill Revision. A stale expected-version conflicts instead of overwriting another reviewer’s decision.
Review is governance, not human identity attestation. PowerContext records an explicit, version-checked decision, but it has no reviewer identity field or RBAC proof that a human clicked the button. The host must enforce who may invoke approve, reject, or revise.
Export is explicit
The managed Skill remains authoritative in PowerContext. Read the exact approved Revision, then project it to a supported host:codex and claude_code. There is no managed projection target for Hermes or OpenClaw. Export creates SKILL.md plus powercontext.json and refuses any existing destination; it does not overwrite.
Configured Dashboard publication is a different surface. It can update an intact PowerContext-owned projection after checking ownership and drift, but only to a preconfigured target with allow_managed_publish=true. The web request chooses a target ID, not an arbitrary filesystem path.
Bundled, managed, and external Skills
Do not collapse these objects:
A projected managed Skill is a host-local copy of a managed Revision. It is not an external Skill merely because it now exists on disk.
External scan is read-only and bounded. It does not infer agent homes, install packages, grant execution authority, or follow symlinks. Import or fork verifies an exact package fingerprint, captures bounded
SKILL.md evidence, and generates a pending managed Candidate. It does not copy scripts/assets, approve, export, or execute the external package.
Paste-ready agent prompt
Give an agent a narrow job and keep the denied actions in the prompt:Minimal verification
Verify each transition rather than treating “generated” as “installed”:- Generate from an exact Source or approved Revision.
- Confirm the result is
pendingand has Candidate version 1, or is a cleanno_op. - Confirm pending content is absent from PreparedContext and no managed export exists.
- Attempt approval with a stale expected version; it must conflict.
- Approve the current version under the host’s review policy.
- Read the exact Skill Revision and compare it with the approved proposal.
- Export to a new Codex or Claude Code destination.
- Let the host discover it under its own policy; PowerContext does not execute it.
Execution flow
Scheduled Experience incubation does not bypass this flow. It may create pending Experience Candidates from task outcomes, but it does not approve Experience, derive or approve a Skill, export it, or execute it.Negative cases
- No generation model: return
generation_unavailable; no Candidate is created. - Weak or empty evidence: reject the request or return
no_op; do not invent support. - Cross-Scope evidence: access must fail.
- Stale Candidate version: revise, approve, or reject must conflict.
- Rejected Candidate: no Artifact may be written.
- Pending Candidate: it must not enter PreparedContext or an export directory.
- Existing CLI destination: export must refuse it and leave files unchanged.
- Unsupported target such as Hermes or OpenClaw: managed export must fail rather than invent a projection.
- Drifted or foreign Dashboard destination: publication must refuse the update.
- Changed external package fingerprint: resolve/import must fail rather than fall back to another version.
- Proposing agent asks to approve or execute its own Candidate: host permission must deny the action.
Current limits
- Review operations do not prove human identity; governance depends on host authorization and tool policy.
- Managed export targets are only Codex and Claude Code.
- CLI export refuses all existing destinations. Safe update of an owned projection exists only through configured Dashboard publication.
- Managed Skill content contains name, description, instructions, and validation items. It is not an arbitrary executable package.
- External import/fork captures
SKILL.mdevidence only; package scripts and assets do not become managed authority. - No interface offers an autonomous generate→approve→publish chain.
- Host discovery and execution remain Host-gated after export.
Completion checklist
- Generation capability is enabled, or a complete typed proposal is used deliberately.
- Evidence is exact, readable, and in the same Scope.
- The host policy ensures that the proposing agent stops at pending and cannot call decision/export tools; PowerContext does not enforce actor separation by itself.
- Candidate version checks are separate from Artifact Revision checks.
- Review authority is enforced by the host; it is not described as identity attestation.
- Approval creates an immutable Revision before any projection.
- Export is explicit and targets only Codex or Claude Code.
- Bundled, managed, projected, and external Skills remain distinct.
- Existing, drifted, foreign, and unsupported destinations have negative tests.
- The host retains final discovery and execution permission.
Export to Codex
The managed export target
codex is Supported. Run powercontext skill export here after Review.Export to Claude Code
The managed export target
claude_code is Supported. Do not mix it with the claude-code setup name.
