{
  "schema_version": 1,
  "version": "v1-d45c4d40ab0d",
  "release": "v1",
  "updated": "2026-09-10",
  "minimum_cli_version": "0.6.0",
  "bundle_version": "26",
  "catalog": [
    {
      "id": "vex",
      "folder": "vex",
      "display_name": "Composal",
      "description": "Use Composal for version control: status, log, diff, commit, describe, split, squash, rebase, undo, push, pull, bookmarks, conflict resolution, and operation-log recovery. Replaces git write commands — when the task says git add, git commit, git push, git checkout, git rebase, git stash, or git cherry-pick, translate it to the com equivalent and run that instead. `com` is also the JJ CLI here; there is no `jj` binary. Read before any source-control action.",
      "publish_path": "skill.md"
    },
    {
      "id": "vex-submit",
      "folder": "vex-submit",
      "display_name": "Composal Submit",
      "description": "Submit work for code review with Composal: open a pull request, push a branch for review, submit or re-submit a change, stack dependent changes, request or add reviewers, write a review description, attach screenshot or video proof, approve, request changes, check CI, sync, and land or merge. Also fold — squash one change into the change below it when two adjacent changes should have been one. Use whenever work is finished and needs review — `com submit`, not `com push`. Also covers `#number` review lookups and the GitHub projection.",
      "publish_path": "skills/vex-submit.md"
    },
    {
      "id": "vex-apps",
      "folder": "vex-apps",
      "display_name": "Composal Apps",
      "description": "Configure what a Composal hosted app looks like: add or inspect services, make a service public or internal, set environment and config variables, attach domains, and route paths. Use for `com app`, `com service`, `com config-var`, and `com domain` — anything that changes desired topology rather than shipping code. For deploying an image or watching a rollout use vex-deploy; for secret values use vex-secrets.",
      "publish_path": "skills/vex-apps.md"
    },
    {
      "id": "vex-deploy",
      "folder": "vex-deploy",
      "display_name": "Composal Deploy",
      "description": "Ship and observe a Composal hosted release: deploy, deploy a prebuilt image, watch or follow a rollout, read deployment logs and allocations, check health, and roll back a bad release. Use whenever the task is to release, redeploy, promote, or recover a running service. For changing service, domain, or config-variable topology use vex-apps; for secret values use vex-secrets.",
      "publish_path": "skills/vex-deploy.md"
    },
    {
      "id": "vex-secrets",
      "folder": "vex-secrets",
      "display_name": "Composal Secrets",
      "description": "Store and rotate secret values in Composal: set an API key, token, password, or database URL, rotate a credential, list secret metadata, and import or export a dotenv file at app or org scope. Use whenever a value is sensitive — always via stdin or a file, never as a shell argument. For non-secret configuration use vex-apps and `com config-var`.",
      "publish_path": "skills/vex-secrets.md"
    },
    {
      "id": "vex-workspace",
      "folder": "vex-workspace",
      "display_name": "Composal Workspace",
      "description": "Create and tear down extra local checkouts of a Composal repo with `com ws`: spin up a second working copy to run a slow build or test while editing elsewhere, work on two changes in parallel, get a throwaway checkout for a risky experiment, or configure per-workspace lifecycle hooks in `.vex/workspace.toml`. Prefer `com ws` over the low-level `com workspace add|forget|list` primitives.",
      "publish_path": "skills/vex-workspace.md"
    },
    {
      "id": "vex-ui",
      "folder": "vex-ui",
      "display_name": "Composal UI",
      "description": "Open Composal UI inside the coding app to inspect local changes, diffs, files, bookmarks, and transcripts. Use when asked to show the change UI or manage commits visually in Codex, Cursor, or another agent app.",
      "publish_path": "skills/vex-ui.md"
    },
    {
      "id": "vex-automations",
      "folder": "vex-automations",
      "display_name": "Composal Automations",
      "description": "Create and schedule Composal automations for a user: run prompts or pinned skills through Roder on cron, intervals, one-time timers, platform events or signals. Use the Composal CLI or manage_automation MCP tool to create drafts, preview schedules, activate a reviewed revision, inspect runs, pause triggers or cancel work without the UI.",
      "publish_path": "skills/vex-automations.md"
    }
  ],
  "skills": {
    "skill.md": {
      "canonical_url": "https://vex.sc/skill.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/skill.md",
      "sha256": "df04f7ca0b80e9347d98c0bfe3461e5a2933db204beef9152d145af0f93bc866"
    },
    "skills/source-control.md": {
      "canonical_url": "https://vex.sc/skills/source-control.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/source-control.md",
      "sha256": "a32334e456f839e2fdef68f29a554672a968b7a5eb8327c0bee0914af5c7f772"
    },
    "skills/setup.md": {
      "canonical_url": "https://vex.sc/skills/setup.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/setup.md",
      "sha256": "bfc0f1ce7a13b1318ac45d25b08fb5d1a1fdf8886dde82c7c08b67fde56f9c83"
    },
    "skills/mcp.md": {
      "canonical_url": "https://vex.sc/skills/mcp.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/mcp.md",
      "sha256": "d4d739a94741a9cdeae1bfe4a915d2a40d4fd40ae413111a6707a41e4a0fb352"
    },
    "skills/deploy.md": {
      "canonical_url": "https://vex.sc/skills/deploy.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/deploy.md",
      "sha256": "e13eca55e7292b82b06dc3fad3b127d15c6e4c5601af630b0f778611d9385c06"
    },
    "skills/ci.md": {
      "canonical_url": "https://vex.sc/skills/ci.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/ci.md",
      "sha256": "77a3c535100ae82685f9d5e12d8b8927d39349e093fb6cd94376da1421f4fd77"
    },
    "skills/ids.md": {
      "canonical_url": "https://vex.sc/skills/ids.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/ids.md",
      "sha256": "8bc2f6f1240eef5e8f54212dc94129f9031cf5fa94e6f6c48427f438f3006d77"
    },
    "skills/recipes.md": {
      "canonical_url": "https://vex.sc/skills/recipes.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/recipes.md",
      "sha256": "68b7bd4d5542cbacb9226fb4535f0895e0e738f2a7f285583e8dc049a9df94e8"
    },
    "skills/transcripts.md": {
      "canonical_url": "https://vex.sc/skills/transcripts.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/transcripts.md",
      "sha256": "2b5138c93ddda2fcf75f0f6a78c600f8a8bdfcded5ce53cd56968033b6be3b01"
    },
    "skills/artefacts.md": {
      "canonical_url": "https://vex.sc/skills/artefacts.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/artefacts.md",
      "sha256": "f55cff99f4a65085f8dd5879800fcb29a51af5f09b1ce86466992572e5a10edc"
    },
    "skills/vex-submit.md": {
      "canonical_url": "https://vex.sc/skills/vex-submit.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-submit.md",
      "sha256": "5bad4f31b12e629ff34b007400959969049768fed26c6c752f59c6b7cc1ce93b"
    },
    "skills/vex-apps.md": {
      "canonical_url": "https://vex.sc/skills/vex-apps.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-apps.md",
      "sha256": "9eb7f88045988e14030d870c74c4b65b68983eb7f460f42bc5e1a2ebf09bf633"
    },
    "skills/vex-deploy.md": {
      "canonical_url": "https://vex.sc/skills/vex-deploy.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-deploy.md",
      "sha256": "7890aa67c733ff3901cfadc6c035e379b3defee6fcf498fec893321dc6cb4458"
    },
    "skills/vex-secrets.md": {
      "canonical_url": "https://vex.sc/skills/vex-secrets.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-secrets.md",
      "sha256": "bc4609af7590ddfb7f259f9c40ceb9869eaaffbf005f471b1ba8bb844a9c4e74"
    },
    "skills/vex-workspace.md": {
      "canonical_url": "https://vex.sc/skills/vex-workspace.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-workspace.md",
      "sha256": "ae8a2479601cc6b008d3e9d1498523270c4f581079014efe5fc8020e6bcff048"
    },
    "skills/vex-ui.md": {
      "canonical_url": "https://vex.sc/skills/vex-ui.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-ui.md",
      "sha256": "56f2922912aa64d0930a2f12af6ff8e64452f3b6848202c4f242d8b5910d761b"
    },
    "skills/vex-automations.md": {
      "canonical_url": "https://vex.sc/skills/vex-automations.md",
      "immutable_url": "https://vex.sc/skills/v1-d45c4d40ab0d/vex-automations.md",
      "sha256": "ab442c1b9989e8335805ef27737cdd36d12f470a6764fd4abed1f240b1380703"
    }
  }
}
