You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Build an Ouroboros-native Superpowers plugin layer that exposes every skill from openai/skills as an auditable Ouroboros command while preserving the existing Codex Skill user experience as closely as possible.
The goal is not to copy skills into this repository as a marketplace. The goal is to assimilate the OpenAI Agent Skills catalog into the Ouroboros UserLevel plugin contract so users can invoke the same reusable workflows through Ouroboros commands, with Seed / Ledger / State / Provenance / Permission / Audit / Handoff semantics preserved.
This is intended to move Ouroboros toward a true agentOS: an operating layer where external agent capabilities, OSS workflows, and domain-specific superpowers can be discovered, trusted, invoked, audited, and composed without becoming unbounded core code.
Motivation
OpenAI Skills already provide a strong authoring format for reusable agent workflows:
SKILL.md frontmatter and instructions
optional scripts/
optional references/
optional assets/
optional agents/openai.yaml
progressive-disclosure activation based on skill name and description
explicit invocation through $skill-name
implicit invocation when the user task matches the skill description
Ouroboros plugins provide a stronger execution boundary:
Many skills include scripts, references, assets, and agent metadata. The adapter must preserve those resources as part of the execution context or handoff, not flatten them into a single prompt string.
Product goal
A user should be able to take a workflow that currently feels like this in Codex:
$openai-docs explain the current Apps SDK plugin packaging model
$gh-fix-ci inspect the failing checks on this PR
$playwright reproduce the login bug
$cloudflare-deploy deploy this Worker
And invoke the same superpower through Ouroboros with a command-shaped UX, for example:
ooo superpower run openai-docs -- "explain the current Apps SDK plugin packaging model"
ooo superpower run gh-fix-ci -- "inspect the failing checks on this PR"
ooo superpower run playwright -- "reproduce the login bug"
ooo superpower run cloudflare-deploy -- "deploy this Worker"
Future direct aliases may be supported when namespace ownership is safe:
ooo openai-docs "explain the current Apps SDK plugin packaging model"
ooo gh-fix-ci "inspect the failing checks on this PR"
ooo playwright "reproduce the login bug"
The command execution must still pass through the Ouroboros plugin firewall. A skill is not considered “run by Ouroboros” merely because a subprocess or prompt was launched. It is run by Ouroboros only when discovery, manifest resolution, trust checks, permission checks, risk classification, audit emission, and result/handoff semantics are applied.
Proposed reference plugin
Add a reference plugin:
plugins/superpowers/
Alternative names:
plugins/codex-skill-superpowers/
plugins/agent-skill-adapter/
plugins/openai-skills-adapter/
Recommended name: superpowers because the user-facing intent is broader than OpenAI-specific packaging, while the first catalog source is openai/skills.
Proposed command surface
MVP commands:
ooo superpower catalog refresh --source openai/skills --ref main
ooo superpower catalog list
ooo superpower inspect <skill-name>
ooo superpower run <skill-name> -- <task>
ooo superpower handoff <skill-name> --task <task> --out <path>
ooo superpower trust-plan <skill-name>
ooo superpower doctor
The plugin should ingest openai/skills from a pinned GitHub ref and build a local catalog projection.
For each skill, record:
skill name
source bucket: .curated or .system
source path
source repository
source ref / commit SHA
description
license file presence and license text path
resource inventory:
SKILL.md
scripts/
references/
assets/
agents/openai.yaml
inferred permission requirements
inferred risk tier
supported command exposure mode
2. Command synthesis
Every skill should become an invocable Ouroboros command target.
Minimum stable UX:
ooo superpower run <skill-name> -- <task>
The command wrapper should:
resolve <skill-name> against the catalog,
load SKILL.md using progressive-disclosure semantics,
attach relevant references/scripts/assets to execution context only when needed,
classify required permissions,
perform trust/firewall checks,
run or hand off the skill workflow,
emit audit/provenance events,
produce a human-readable result and machine-readable handoff.
3. UX preservation
The adapter should preserve the Codex Skill experience as much as possible:
$skill-name maps conceptually to ooo superpower run <skill-name>.
Skill descriptions remain the activation surface.
Skill names remain stable.
SKILL.md remains the authoritative workflow instruction source.
references/ are loaded progressively rather than eagerly.
scripts/ are reused rather than reimplemented.
assets/ remain available to the workflow.
agents/openai.yaml is preserved as metadata, even if not fully executable in MVP.
Existing skill-specific setup notes should surface in inspect and doctor.
The user should not feel that using a skill through Ouroboros is a degraded wrapper. The command should feel like the same superpower with stronger OS-level safety, provenance, and composability.
4. Permission and risk mapping
The adapter must infer and/or declare permissions for each skill.
Examples:
Skill type
Example skills
Likely risk
Documentation / planning
openai-docs, aspnet-core, security-threat-model
read_only or write if handoff is written
Local file generation
jupyter-notebook, migrate-to-codex, hatch-pet
write
Browser automation
playwright, playwright-interactive, screenshot
read_only / write, depending on action
GitHub operations
gh-address-comments, gh-fix-ci, yeet
read_only, write, or destructive depending on command
The adapter must not hide destructive or external-write behavior inside a generic “run skill” command.
If the selected skill may mutate external systems, the generated invocation must either be blocked until trusted or require explicit confirmation according to the Ouroboros permission model.
5. Audit and provenance
Every invocation should answer:
Which skill ran?
Which repository/ref/path supplied the skill?
Which version or commit was used?
Which command exposed it?
What task text was supplied?
Which references/scripts/assets were loaded?
Which permissions were required?
Which permissions were actually used?
Was the run blocked, failed, cancelled, or completed?
What handoff or artifact was produced?
What should a human or harness do next?
Expected event vocabulary should align with the existing plugin audit model:
plugin.invoked
plugin.permission_used
plugin.completed
plugin.failed
Future extension may add more specific events such as:
superpower.catalog_refreshed
superpower.skill_resolved
superpower.reference_loaded
superpower.script_executed
Only add new audit events if the existing schema cannot represent the required evidence.
6. Handoff artifacts
ooo superpower handoff <skill-name> should create an Ouroboros-readable handoff artifact that can be consumed by ooo auto, Seed generation, or future Workflow IR / Run-Step-Artifact projections.
{
"schema_version": "0.1",
"name": "superpowers",
"version": "0.1.0",
"description": "Expose OpenAI/Agent Skills as Ouroboros-native command superpowers with permission, audit, provenance, and handoff semantics.",
"source": {
"type": "local_path",
"path": "plugins/superpowers"
},
"commands": [
{
"namespace": "superpower",
"name": "run",
"summary": "Run a cataloged Agent Skill through the Ouroboros plugin firewall.",
"usage": "ooo superpower run <skill-name> -- <task>",
"risk": "write",
"requires_confirmation": false
},
{
"namespace": "superpower",
"name": "inspect",
"summary": "Inspect a cataloged skill and show its inferred permissions, resources, and command exposure.",
"usage": "ooo superpower inspect <skill-name>",
"risk": "read_only",
"requires_confirmation": false
},
{
"namespace": "superpower",
"name": "handoff",
"summary": "Generate an Ouroboros-readable handoff artifact for a skill invocation.",
"usage": "ooo superpower handoff <skill-name> --task <task> --out <path>",
"risk": "write",
"requires_confirmation": false
}
],
"capabilities": [
{
"name": "handoff",
"access": "attach",
"reason": "Attach superpower invocation outputs to Ouroboros workflows."
},
{
"name": "provenance",
"access": "write",
"reason": "Record skill source, ref, loaded files, and execution evidence."
},
{
"name": "ledger",
"access": "write",
"reason": "Record superpower invocation and trust decisions."
},
{
"name": "state",
"access": "write",
"reason": "Cache the skill catalog and pinned refs."
}
],
"permissions": [
{
"scope": "filesystem:read",
"risk": "read_only",
"required": true,
"reason": "Read cached skill files and local resources."
},
{
"scope": "filesystem:write",
"risk": "write",
"required": false,
"reason": "Write catalog cache and handoff artifacts."
},
{
"scope": "network:read",
"risk": "read_only",
"required": false,
"reason": "Fetch or refresh skills from GitHub."
},
{
"scope": "shell:execute",
"risk": "write",
"required": false,
"reason": "Run bundled skill scripts when a trusted skill requires them."
}
],
"entrypoint": {
"type": "command",
"command": "python -m superpowers"
}
}
Note: command-level risk may need a dynamic risk overlay because run can dispatch both read-only and mutating skills. If the current manifest contract cannot express dynamic per-skill risk precisely, the MVP should keep superpower run conservative and perform runtime subcommand risk checks inside the firewall.
This epic is a concrete reference implementation of the #27 thesis:
Ouroboros plugins are not merely command wrappers. They are the capability assimilation layer that turns external tools, open-source libraries, and domain workflows into structured, auditable, permissioned, Seed-compatible Ouroboros capabilities.
openai/skills is a strong test case because it is already a rich external capability catalog. The superpowers plugin should prove that Ouroboros can assimilate that catalog without collapsing into a marketplace or weakening safety boundaries.
Success statement
When this epic is done, Ouroboros users should be able to run Codex-style skills as first-class Ouroboros superpowers:
ooo superpower run openai-docs -- "explain how to build a plugin"
ooo superpower run gh-fix-ci -- "inspect this PR's failing checks"
ooo superpower run playwright -- "reproduce this UI bug"
ooo superpower handoff security-threat-model --task "model this repo's trust boundaries" --out .ouroboros/handoffs/security-threat-model.json
The experience should feel like the same skill-based workflow, but upgraded with OS-level permissioning, auditability, provenance, lifecycle, handoff, and composition.
Summary
Build an Ouroboros-native Superpowers plugin layer that exposes every skill from
openai/skillsas an auditable Ouroboros command while preserving the existing Codex Skill user experience as closely as possible.The goal is not to copy skills into this repository as a marketplace. The goal is to assimilate the OpenAI Agent Skills catalog into the Ouroboros UserLevel plugin contract so users can invoke the same reusable workflows through Ouroboros commands, with Seed / Ledger / State / Provenance / Permission / Audit / Handoff semantics preserved.
This is intended to move Ouroboros toward a true agentOS: an operating layer where external agent capabilities, OSS workflows, and domain-specific superpowers can be discovered, trusted, invoked, audited, and composed without becoming unbounded core code.
Motivation
OpenAI Skills already provide a strong authoring format for reusable agent workflows:
SKILL.mdfrontmatter and instructionsscripts/references/assets/agents/openai.yaml$skill-nameOuroboros plugins provide a stronger execution boundary:
read_only,write,destructiveThis epic connects both worlds:
Current inventory to support
As of the latest inspected
openai/skillsmaintree, the repository contains 43 skills:skills/.curated/skills/.system/Observed skills:
Many skills include scripts, references, assets, and agent metadata. The adapter must preserve those resources as part of the execution context or handoff, not flatten them into a single prompt string.
Product goal
A user should be able to take a workflow that currently feels like this in Codex:
And invoke the same superpower through Ouroboros with a command-shaped UX, for example:
Future direct aliases may be supported when namespace ownership is safe:
The command execution must still pass through the Ouroboros plugin firewall. A skill is not considered “run by Ouroboros” merely because a subprocess or prompt was launched. It is run by Ouroboros only when discovery, manifest resolution, trust checks, permission checks, risk classification, audit emission, and result/handoff semantics are applied.
Proposed reference plugin
Add a reference plugin:
Alternative names:
plugins/codex-skill-superpowers/plugins/agent-skill-adapter/plugins/openai-skills-adapter/Recommended name:
superpowersbecause the user-facing intent is broader than OpenAI-specific packaging, while the first catalog source isopenai/skills.Proposed command surface
MVP commands:
Optional later commands:
Required behavior
1. Catalog ingestion
The plugin should ingest
openai/skillsfrom a pinned GitHub ref and build a local catalog projection.For each skill, record:
.curatedor.systemSKILL.mdscripts/references/assets/agents/openai.yaml2. Command synthesis
Every skill should become an invocable Ouroboros command target.
Minimum stable UX:
The command wrapper should:
<skill-name>against the catalog,SKILL.mdusing progressive-disclosure semantics,3. UX preservation
The adapter should preserve the Codex Skill experience as much as possible:
$skill-namemaps conceptually toooo superpower run <skill-name>.SKILL.mdremains the authoritative workflow instruction source.references/are loaded progressively rather than eagerly.scripts/are reused rather than reimplemented.assets/remain available to the workflow.agents/openai.yamlis preserved as metadata, even if not fully executable in MVP.inspectanddoctor.The user should not feel that using a skill through Ouroboros is a degraded wrapper. The command should feel like the same superpower with stronger OS-level safety, provenance, and composability.
4. Permission and risk mapping
The adapter must infer and/or declare permissions for each skill.
Examples:
openai-docs,aspnet-core,security-threat-modelread_onlyorwriteif handoff is writtenjupyter-notebook,migrate-to-codex,hatch-petwriteplaywright,playwright-interactive,screenshotread_only/write, depending on actiongh-address-comments,gh-fix-ci,yeetread_only,write, ordestructivedepending on commandlinear,notion-*,sentry,figma-*read_only/writewith external authcloudflare-deploy,netlify-deploy,render-deploy,vercel-deploywriteordestructiveimagegen,speech,transcribewrite,network:write, provider-specific scopesRequired principle:
If the selected skill may mutate external systems, the generated invocation must either be blocked until trusted or require explicit confirmation according to the Ouroboros permission model.
5. Audit and provenance
Every invocation should answer:
Expected event vocabulary should align with the existing plugin audit model:
plugin.invokedplugin.permission_usedplugin.completedplugin.failedFuture extension may add more specific events such as:
superpower.catalog_refreshedsuperpower.skill_resolvedsuperpower.reference_loadedsuperpower.script_executedOnly add new audit events if the existing schema cannot represent the required evidence.
6. Handoff artifacts
ooo superpower handoff <skill-name>should create an Ouroboros-readable handoff artifact that can be consumed byooo auto, Seed generation, or future Workflow IR / Run-Step-Artifact projections.Suggested handoff shape:
{ "schema_version": "0.1", "kind": "superpower_handoff", "source": { "repository": "openai/skills", "ref": "<commit-sha>", "path": "skills/.curated/<skill-name>" }, "skill": { "name": "<skill-name>", "description": "...", "components": { "skill_md": true, "scripts": true, "references": true, "assets": true, "agents": true } }, "task": "...", "permissions": { "required": [], "optional": [], "risk": "read_only|write|destructive" }, "outputs": { "human_summary": "...", "next_steps": [], "artifacts": [] }, "provenance": { "catalog_commit": "...", "loaded_files": [], "executed_scripts": [] } }Proposed plugin manifest sketch
{ "schema_version": "0.1", "name": "superpowers", "version": "0.1.0", "description": "Expose OpenAI/Agent Skills as Ouroboros-native command superpowers with permission, audit, provenance, and handoff semantics.", "source": { "type": "local_path", "path": "plugins/superpowers" }, "commands": [ { "namespace": "superpower", "name": "run", "summary": "Run a cataloged Agent Skill through the Ouroboros plugin firewall.", "usage": "ooo superpower run <skill-name> -- <task>", "risk": "write", "requires_confirmation": false }, { "namespace": "superpower", "name": "inspect", "summary": "Inspect a cataloged skill and show its inferred permissions, resources, and command exposure.", "usage": "ooo superpower inspect <skill-name>", "risk": "read_only", "requires_confirmation": false }, { "namespace": "superpower", "name": "handoff", "summary": "Generate an Ouroboros-readable handoff artifact for a skill invocation.", "usage": "ooo superpower handoff <skill-name> --task <task> --out <path>", "risk": "write", "requires_confirmation": false } ], "capabilities": [ { "name": "handoff", "access": "attach", "reason": "Attach superpower invocation outputs to Ouroboros workflows." }, { "name": "provenance", "access": "write", "reason": "Record skill source, ref, loaded files, and execution evidence." }, { "name": "ledger", "access": "write", "reason": "Record superpower invocation and trust decisions." }, { "name": "state", "access": "write", "reason": "Cache the skill catalog and pinned refs." } ], "permissions": [ { "scope": "filesystem:read", "risk": "read_only", "required": true, "reason": "Read cached skill files and local resources." }, { "scope": "filesystem:write", "risk": "write", "required": false, "reason": "Write catalog cache and handoff artifacts." }, { "scope": "network:read", "risk": "read_only", "required": false, "reason": "Fetch or refresh skills from GitHub." }, { "scope": "shell:execute", "risk": "write", "required": false, "reason": "Run bundled skill scripts when a trusted skill requires them." } ], "entrypoint": { "type": "command", "command": "python -m superpowers" } }Note: command-level risk may need a dynamic risk overlay because
runcan dispatch both read-only and mutating skills. If the current manifest contract cannot express dynamic per-skill risk precisely, the MVP should keepsuperpower runconservative and perform runtime subcommand risk checks inside the firewall.Implementation phases
Phase 0 — Contract alignment
superpowers,codex-skill-superpowers, oragent-skill-adapter.Phase 1 — Catalog reader
openai/skillstree.SKILL.mdfrontmatter.scripts,references,assets,agents.ooo superpower catalog listandooo superpower inspect.Phase 2 — Handoff-first invocation
ooo superpower handoff <skill-name>.Phase 3 — Read-only superpower execution
ooo superpower runfor read-only skills.openai-docssecurity-best-practicessecurity-threat-modelaspnet-corepdfin read-only modePhase 4 — Write-capable and script-backed skills
shell:executeonly when a selected skill path actually needs it.Phase 5 — External service and deployment skills
Phase 6 — Direct aliases and agentOS polish
ooo openai-docs ...ooo gh-fix-ci ...ooo playwright ...ooo autohandoff consumption without putting skill-specific branches insideooo auto.Acceptance criteria
This epic is complete when:
superpowersreference plugin exists underplugins/.openai/skillscatalog from a pinned ref.SKILL.mdscripts/references/assets/agents/openai.yamlooo superpower inspect <skill-name>works for every skill.ooo superpower handoff <skill-name>generates an Ouroboros-readable handoff artifact.ooo superpower run.$skill-nametoooo superpower run <skill-name>.ooo autoboundary:ooo automay consume superpower handoffs, but does not become a skill-specific router.Non-goals
openai/skillsskill as a separate plugin underplugins/.Q00/ouroboros-pluginsinto a central marketplace.ooo auto.Open design questions
.systemskills be exposed by default, or should they require a separate--include-systemflag?ooo <skill-name>) be generated in v0, or deferred until namespace collision policy is stronger?openai-docsexists under both.curatedand.system.~/.ouroboros/plugins/superpowers/,~/.ouroboros/cache/, or plugin state?ooo autoand future Workflow IR / Run-Step-Artifact integration?agents/openai.yamlcan be preserved as metadata versus executed behavior in Ouroboros?Relationship to #27
This epic is a concrete reference implementation of the #27 thesis:
openai/skillsis a strong test case because it is already a rich external capability catalog. Thesuperpowersplugin should prove that Ouroboros can assimilate that catalog without collapsing into a marketplace or weakening safety boundaries.Success statement
When this epic is done, Ouroboros users should be able to run Codex-style skills as first-class Ouroboros superpowers:
The experience should feel like the same skill-based workflow, but upgraded with OS-level permissioning, auditability, provenance, lifecycle, handoff, and composition.