{
  "commands": {
    "dashboard": {
      "aliases": [],
      "args": {},
      "description": "Interactive TUI dashboard showing session analytics, outcomes, friction, and insights",
      "examples": [
        "<%= config.bin %> dashboard",
        "<%= config.bin %> dashboard --period 30days",
        "<%= config.bin %> dashboard --launcher"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "period": {
          "char": "p",
          "description": "Initial time period",
          "name": "period",
          "default": "week",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "today",
            "week",
            "30days",
            "month",
            "all"
          ],
          "type": "option"
        },
        "launcher": {
          "char": "l",
          "description": "Open the launcher overlay immediately",
          "name": "launcher",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "dashboard",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "dashboard.js"
      ]
    },
    "diagnostics": {
      "aliases": [],
      "args": {},
      "description": "Diagnose capture / proxy / connectivity problems (e.g. a client-side \"502 Bad Gateway\")",
      "examples": [
        "<%= config.bin %> diagnostics"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "diagnostics",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "diagnostics.js"
      ]
    },
    "launcher": {
      "aliases": [],
      "args": {},
      "description": "Open the launcher overlay (alias for `dashboard --launcher`)",
      "examples": [
        "<%= config.bin %> launcher",
        "<%= config.bin %> launcher --period today"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "period": {
          "char": "p",
          "description": "Initial time period for the dashboard panels behind the overlay",
          "name": "period",
          "default": "week",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "today",
            "week",
            "30days",
            "month",
            "all"
          ],
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "launcher",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "launcher.js"
      ]
    },
    "setup": {
      "aliases": [],
      "args": {
        "target": {
          "description": "\"plan\" or a step id (install, auth, hooks, worker, judge)",
          "name": "target",
          "required": false
        }
      },
      "description": "Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps",
      "examples": [
        "<%= config.bin %> setup                 # interactive walk (TTY)",
        "<%= config.bin %> setup plan            # read-only: every remaining artifact + diff",
        "<%= config.bin %> setup hooks --show    # print one step's diff",
        "<%= config.bin %> setup hooks --apply   # apply one step",
        "<%= config.bin %> setup --json          # machine-readable status (exit 0 iff complete)"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "json": {
          "description": "Machine-readable output",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "show": {
          "description": "Print the step diff (read-only)",
          "name": "show",
          "allowNo": false,
          "type": "boolean"
        },
        "apply": {
          "description": "Apply the step",
          "name": "apply",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "setup",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "setup.js"
      ]
    },
    "antigravity:backfill": {
      "aliases": [],
      "args": {
        "conversationId": {
          "description": "Antigravity conversationId (UUID) — the directory name under ~/.gemini/antigravity-ide/brain/",
          "name": "conversationId",
          "required": true
        }
      },
      "description": "Backfill historical events from an Antigravity conversation transcript into a RuleMetric session. Useful for seeding a conversation that existed before hooks were installed — the live hook intentionally only captures forward.",
      "examples": [
        "<%= config.bin %> antigravity backfill 26fd215d-f43b-4ea5-b177-dc2c0e696f97 --session 158db9aa-68ee-43fc-961b-f3a180578694",
        "<%= config.bin %> antigravity backfill 26fd215d-f43b-4ea5-b177-dc2c0e696f97 --dry-run"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "session": {
          "char": "s",
          "description": "RuleMetric session UUID to POST events into. If omitted, resolved from the hook tmp file ($TMPDIR/rulemetric/<conversationId>) — fails if neither is present.",
          "name": "session",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "transcript": {
          "description": "Path to the transcript.jsonl file. Defaults to ~/.gemini/antigravity-ide/brain/<conversationId>/.system_generated/logs/transcript.jsonl",
          "name": "transcript",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "after-step": {
          "description": "Only emit records with step_index > this value. Default: read from existing state file, else -1 (everything).",
          "name": "after-step",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "limit": {
          "description": "Cap on the number of records to process this run.",
          "name": "limit",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "dry-run": {
          "description": "Classify records without POSTing. Reports counts only.",
          "name": "dry-run",
          "allowNo": false,
          "type": "boolean"
        },
        "save-state": {
          "description": "After backfill, persist the highest step_index so the live hook resumes from there.",
          "name": "save-state",
          "allowNo": true,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "antigravity:backfill",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "antigravity",
        "backfill.js"
      ]
    },
    "auth:create-key": {
      "aliases": [],
      "args": {},
      "description": "Create a long-lived API key for CLI and proxy authentication",
      "examples": [
        "<%= config.bin %> auth create-key --name \"laptop\"",
        "<%= config.bin %> auth create-key --name \"ci token\" --no-save"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "name": {
          "char": "n",
          "description": "Name for this key",
          "name": "name",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "save": {
          "char": "s",
          "description": "Save key to ~/.config/rulemetric/env for hooks/proxy",
          "name": "save",
          "allowNo": true,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "auth:create-key",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "auth",
        "create-key.js"
      ]
    },
    "auth:login": {
      "aliases": [],
      "args": {},
      "description": "Log in to RuleMetric",
      "examples": [
        "<%= config.bin %> auth login",
        "<%= config.bin %> auth login -e user@example.com"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "email": {
          "char": "e",
          "description": "Email address",
          "name": "email",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "password": {
          "char": "p",
          "description": "Password (for non-interactive use)",
          "name": "password",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "api-key": {
          "description": "Authenticate with an API key from https://rulemetric.com/connect (required for Google/GitHub sign-ins, which have no password)",
          "exclusive": [
            "password"
          ],
          "name": "api-key",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "auth:login",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "auth",
        "login.js"
      ]
    },
    "auth:logout": {
      "aliases": [],
      "args": {},
      "description": "Log out of RuleMetric",
      "examples": [
        "<%= config.bin %> auth logout"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "auth:logout",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "auth",
        "logout.js"
      ]
    },
    "auth:revoke-key": {
      "aliases": [],
      "args": {
        "id": {
          "description": "API key ID, prefix (rm_xxxxxxxx), or name",
          "name": "id"
        }
      },
      "description": "Revoke an API key (run with no argument to list active keys)",
      "examples": [
        "<%= config.bin %> auth revoke-key",
        "<%= config.bin %> auth revoke-key rm_abc12345",
        "<%= config.bin %> auth revoke-key \"my-laptop (auto)\""
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "auth:revoke-key",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "auth",
        "revoke-key.js"
      ]
    },
    "auth:signup": {
      "aliases": [],
      "args": {},
      "description": "Create a RuleMetric account from the CLI",
      "examples": [
        "<%= config.bin %> auth signup",
        "<%= config.bin %> auth signup -e user@example.com"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "email": {
          "char": "e",
          "description": "Email address",
          "name": "email",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "password": {
          "char": "p",
          "description": "Password (min 8 chars; for non-interactive use)",
          "name": "password",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "auth:signup",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "auth",
        "signup.js"
      ]
    },
    "auth:status": {
      "aliases": [],
      "args": {},
      "description": "Show current authentication status",
      "examples": [
        "<%= config.bin %> auth status"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "auth:status",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "auth",
        "status.js"
      ]
    },
    "capture:scope": {
      "aliases": [],
      "args": {},
      "description": "Show or set which projects RuleMetric captures — the Codex sweep and hook-driven sessions each have their own scope",
      "examples": [
        "<%= config.bin %> <%= command.id %>",
        "<%= config.bin %> <%= command.id %> --add ~/work/client-a --add ~/work/client-b",
        "<%= config.bin %> <%= command.id %> --tool hooks --add ~/work/client-a",
        "<%= config.bin %> <%= command.id %> --tool hooks --off",
        "<%= config.bin %> <%= command.id %> --remove ~/work/client-a",
        "<%= config.bin %> <%= command.id %> --off",
        "<%= config.bin %> <%= command.id %> --all"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tool": {
          "description": "Which capture path to edit: \"codex\" (the worker transcript sweep, the default) or \"hooks\" (Claude Code / Cursor / Copilot / Antigravity hook sessions).",
          "name": "tool",
          "default": "codex",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "codex",
            "hooks"
          ],
          "type": "option"
        },
        "add": {
          "description": "Capture sessions under this path (repeatable). Implies an allowlist.",
          "name": "add",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "remove": {
          "description": "Stop capturing under this path (repeatable).",
          "name": "remove",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "off": {
          "description": "Turn this capture path off entirely.",
          "exclusive": [
            "all"
          ],
          "name": "off",
          "allowNo": false,
          "type": "boolean"
        },
        "all": {
          "description": "Capture every project (the default).",
          "exclusive": [
            "off"
          ],
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "clear": {
          "description": "Remove this scope, restoring the default.",
          "name": "clear",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "capture:scope",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "capture",
        "scope.js"
      ]
    },
    "catalog": {
      "aliases": [],
      "args": {},
      "description": "Browse the org instruction catalog",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "badge": {
          "description": "Filter by badge",
          "name": "badge",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "recommended",
            "required"
          ],
          "type": "option"
        },
        "scope": {
          "description": "Filter by scope",
          "name": "scope",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "org",
            "team"
          ],
          "type": "option"
        },
        "search": {
          "description": "Search by name or description",
          "name": "search",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "catalog",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "catalog",
        "index.js"
      ]
    },
    "catalog:recommend": {
      "aliases": [],
      "args": {
        "projectId": {
          "description": "ID of the project",
          "name": "projectId",
          "required": true
        }
      },
      "description": "Get AI-powered instruction recommendations for a project",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "catalog:recommend",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "catalog",
        "recommend.js"
      ]
    },
    "crons:list": {
      "aliases": [],
      "args": {},
      "description": "List manually-runnable maintenance tasks",
      "examples": [
        "<%= config.bin %> crons list"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "crons:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "crons",
        "list.js"
      ]
    },
    "crons:run": {
      "aliases": [],
      "args": {
        "name": {
          "description": "Task name (run `rulemetric crons list` to see all)",
          "name": "name",
          "required": true
        }
      },
      "description": "Run a maintenance task synchronously, right now",
      "examples": [
        "<%= config.bin %> crons run cron_check_changelog",
        "<%= config.bin %> crons run cron_suggest_instructions --quiet"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "quiet": {
          "char": "q",
          "description": "Suppress per-line log output; print summary only",
          "name": "quiet",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "crons:run",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "crons",
        "run.js"
      ]
    },
    "eval-targets:create": {
      "aliases": [],
      "args": {},
      "description": "Create an eval target (instruction, skill, prompt, or plan to test)",
      "examples": [
        "<%= config.bin %> eval-targets create --name my-rules --type instruction --file ./CLAUDE.md",
        "<%= config.bin %> eval-targets create --name my-prompt --type prompt --content \"Always use TypeScript\""
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "name": {
          "char": "n",
          "description": "Name for the eval target",
          "name": "name",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "type": {
          "char": "t",
          "description": "Target type",
          "name": "type",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "instruction",
            "skill",
            "prompt",
            "plan"
          ],
          "type": "option"
        },
        "file": {
          "char": "f",
          "description": "Path to content file",
          "name": "file",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "content": {
          "char": "c",
          "description": "Content string (alternative to --file)",
          "name": "content",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "description": {
          "char": "d",
          "description": "Description of the target",
          "name": "description",
          "default": "",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "eval-targets:create",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "eval-targets",
        "create.js"
      ]
    },
    "eval-targets:list": {
      "aliases": [],
      "args": {},
      "description": "List eval targets",
      "examples": [
        "<%= config.bin %> eval-targets list",
        "<%= config.bin %> eval-targets list --type instruction"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "type": {
          "char": "t",
          "description": "Filter by type",
          "name": "type",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "instruction",
            "skill",
            "prompt",
            "plan"
          ],
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "eval-targets:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "eval-targets",
        "list.js"
      ]
    },
    "evals:agent": {
      "aliases": [],
      "args": {},
      "description": "The worker daemon: long-polls /api/work/next, claims jobs, and runs them locally. Installed as a launchd service by `rulemetric service install`.",
      "examples": [
        "<%= config.bin %> evals agent"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:agent",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "agent.js"
      ]
    },
    "evals:auto-run": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Run evals in a loop until the effect verdict is statistically powered (§6f auto-run-to-power)",
      "examples": [
        "<%= config.bin %> evals auto-run <target-id>            # preview (cost + plan)",
        "<%= config.bin %> evals auto-run <target-id> --yes      # run until powered / budget",
        "<%= config.bin %> evals auto-run <target-id> --yes --max-runs 120 --batch-parallel 4"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "yes": {
          "char": "y",
          "description": "Actually run. Without this, only previews the plan + cost.",
          "name": "yes",
          "allowNo": false,
          "type": "boolean"
        },
        "max-runs": {
          "description": "Hard ceiling on completed runs",
          "name": "max-runs",
          "default": 200,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "batch-parallel": {
          "description": "Concurrent executions within a batch",
          "name": "batch-parallel",
          "default": 3,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timeout": {
          "description": "Timeout per eval in ms",
          "name": "timeout",
          "default": 120000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "model": {
          "description": "Model for eval execution",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "grader-model": {
          "description": "Model for grading",
          "name": "grader-model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "skip-baseline": {
          "description": "Skip without_target runs (no delta — not recommended)",
          "name": "skip-baseline",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:auto-run",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "auto-run.js"
      ]
    },
    "evals:benchmark": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Aggregate eval runs into a benchmark for a target",
      "examples": [
        "<%= config.bin %> evals benchmark <target-id>",
        "<%= config.bin %> evals benchmark <target-id> --iteration 2"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "iteration": {
          "description": "Filter runs by iteration",
          "name": "iteration",
          "default": 1,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:benchmark",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "benchmark.js"
      ]
    },
    "evals:compare": {
      "aliases": [],
      "args": {
        "targetA": {
          "description": "First eval target ID",
          "name": "targetA",
          "required": true
        },
        "targetB": {
          "description": "Second eval target ID",
          "name": "targetB",
          "required": true
        }
      },
      "description": "Blind A/B comparison between two eval target versions",
      "examples": [
        "<%= config.bin %> evals compare <target-a> <target-b>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "model": {
          "description": "Model for execution and comparison",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timeout": {
          "description": "Timeout per eval in ms",
          "name": "timeout",
          "default": 120000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:compare",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "compare.js"
      ]
    },
    "evals:create": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Create test cases (evals) for an eval target",
      "examples": [
        "<%= config.bin %> evals create <target-id> --name \"ts-check\" --prompt \"Write a function to add two numbers\"",
        "<%= config.bin %> evals create <target-id> --from-file evals.json"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "name": {
          "char": "n",
          "description": "Eval name",
          "name": "name",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "prompt": {
          "char": "p",
          "description": "Test prompt",
          "name": "prompt",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "expectations": {
          "char": "e",
          "description": "Assertion (repeatable)",
          "name": "expectations",
          "hasDynamicHelp": false,
          "multiple": true,
          "type": "option"
        },
        "from-file": {
          "description": "Bulk create from JSON file",
          "name": "from-file",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:create",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "create.js"
      ]
    },
    "evals:optimize-description": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Optimize eval target description for better triggering accuracy",
      "examples": [
        "<%= config.bin %> evals optimize-description <target-id>",
        "<%= config.bin %> evals optimize-description <target-id> --queries 10"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "max-iterations": {
          "description": "Maximum optimization iterations",
          "name": "max-iterations",
          "default": 5,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "model": {
          "description": "Model for trigger testing and improvement",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "queries": {
          "description": "Number of trigger queries to generate",
          "name": "queries",
          "default": 20,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "runs-per-query": {
          "description": "Runs per query for reliability",
          "name": "runs-per-query",
          "default": 3,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "poll-interval": {
          "description": "Ms between approval polls",
          "name": "poll-interval",
          "default": 5000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timeout": {
          "description": "Timeout per eval in ms",
          "name": "timeout",
          "default": 120000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:optimize-description",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "optimize-description.js"
      ]
    },
    "evals:optimize": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Iteratively optimize eval target content using eval results as feedback",
      "examples": [
        "<%= config.bin %> evals optimize <target-id>",
        "<%= config.bin %> evals optimize <target-id> --auto --max-iterations 3"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "auto": {
          "description": "Skip interactive review, apply suggestions automatically",
          "name": "auto",
          "allowNo": false,
          "type": "boolean"
        },
        "max-iterations": {
          "description": "Maximum optimization iterations",
          "name": "max-iterations",
          "default": 5,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "threshold": {
          "description": "Stop if pass rate reaches this threshold (0-1)",
          "name": "threshold",
          "default": "0.95",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "model": {
          "description": "Model for eval execution",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "analyzer-model": {
          "description": "Model for analysis/suggestions",
          "name": "analyzer-model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timeout": {
          "description": "Timeout per eval in ms",
          "name": "timeout",
          "default": 120000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:optimize",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "optimize.js"
      ]
    },
    "evals:refine-cases": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Retire non-discriminating eval cases and regenerate discriminating replacements (§6e)",
      "examples": [
        "<%= config.bin %> evals refine-cases <target-id>            # preview",
        "<%= config.bin %> evals refine-cases <target-id> --yes      # apply: retire + regenerate",
        "<%= config.bin %> evals refine-cases <target-id> --yes --no-generate"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "yes": {
          "char": "y",
          "description": "Apply (retire + regenerate). Without this, only previews.",
          "name": "yes",
          "allowNo": false,
          "type": "boolean"
        },
        "no-generate": {
          "description": "Retire dead cases but do not regenerate replacements.",
          "name": "no-generate",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:refine-cases",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "refine-cases.js"
      ]
    },
    "evals:run": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Run evals against a target, optionally grade results, and post to API",
      "examples": [
        "<%= config.bin %> evals run <target-id>",
        "<%= config.bin %> evals run <target-id> --parallel 3 --runs-per-eval 2",
        "<%= config.bin %> evals run <target-id> --skip-baseline --skip-grading"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "parallel": {
          "description": "Number of parallel eval executions",
          "name": "parallel",
          "default": 1,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "runs-per-eval": {
          "description": "Number of runs per eval for variance analysis",
          "name": "runs-per-eval",
          "default": 1,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "iteration": {
          "description": "Iteration number for tracking",
          "name": "iteration",
          "default": 1,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "skip-baseline": {
          "description": "Skip baseline (without_target) runs",
          "name": "skip-baseline",
          "allowNo": false,
          "type": "boolean"
        },
        "skip-grading": {
          "description": "Skip LLM grading step",
          "name": "skip-grading",
          "allowNo": false,
          "type": "boolean"
        },
        "model": {
          "description": "Model for eval execution (default: user configured)",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "grader-model": {
          "description": "Model for grading (default: same as execution model)",
          "name": "grader-model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timeout": {
          "description": "Timeout per eval in ms",
          "name": "timeout",
          "default": 120000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:run",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "run.js"
      ]
    },
    "evals:validate-judge": {
      "aliases": [],
      "args": {
        "targetId": {
          "description": "Eval target ID",
          "name": "targetId",
          "required": true
        }
      },
      "description": "Score a second model against your human judge-review labels (§6g validation pass)",
      "examples": [
        "<%= config.bin %> evals validate-judge <target-id>                       # auto-detect installed CLIs",
        "<%= config.bin %> evals validate-judge <target-id> --engine codex --model gpt-5.5",
        "<%= config.bin %> evals validate-judge <target-id> --model claude-sonnet-5 --json",
        "<%= config.bin %> evals validate-judge <target-id> --limit 5             # quick sample"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "model": {
          "description": "Second reviewer model. Default: resolved from your installed tooling (codex: your ~/.codex/config.toml model; claude: a tier that differs from the original judge).",
          "name": "model",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "engine": {
          "description": "CLI that runs the second reviewer. `auto` prefers your installed codex for a cross-vendor reviewer — two Claude models share a training lineage, so their agreement overstates independence.",
          "name": "engine",
          "default": "auto",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "auto",
            "claude",
            "codex"
          ],
          "type": "option"
        },
        "limit": {
          "description": "Sample only the N most-recently-annotated runs (cost control / smoke)",
          "name": "limit",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "skip-reviewed": {
          "description": "Only re-grade assertions this reviewer model has not ruled on yet",
          "name": "skip-reviewed",
          "allowNo": false,
          "type": "boolean"
        },
        "parallel": {
          "description": "Concurrent re-grades",
          "name": "parallel",
          "default": 3,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "timeout": {
          "description": "Timeout per re-grade in ms",
          "name": "timeout",
          "default": 120000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "json": {
          "description": "Emit the full report as JSON",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "evals:validate-judge",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "evals",
        "validate-judge.js"
      ]
    },
    "experiments:list": {
      "aliases": [],
      "args": {},
      "description": "Show instructions under randomised test and what each sample supports",
      "examples": [
        "<%= config.bin %> experiments list",
        "<%= config.bin %> experiments list --project /path/to/project",
        "<%= config.bin %> experiments list --all"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "project": {
          "char": "p",
          "description": "Project path (defaults to current directory)",
          "name": "project",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Every project, not just this one",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "experiments:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "experiments",
        "list.js"
      ]
    },
    "gateway:ensure": {
      "aliases": [],
      "args": {},
      "description": "Ensure the gateway proxy is running (called by hooks, not for direct use)",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hidden": true,
      "hiddenAliases": [],
      "id": "gateway:ensure",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "gateway",
        "ensure.js"
      ]
    },
    "hooks:emit-instructions": {
      "aliases": [],
      "args": {},
      "description": "Print a synthetic instruction snapshot (on-disk CLAUDE.md) as JSON for zero-proxy instruction linking",
      "flags": {
        "project-dir": {
          "description": "Project directory to scan (defaults to cwd)",
          "name": "project-dir",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hidden": true,
      "hiddenAliases": [],
      "id": "hooks:emit-instructions",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "hooks",
        "emit-instructions.js"
      ]
    },
    "hooks:install": {
      "aliases": [],
      "args": {},
      "description": "Install session tracking hooks and context capture proxy for Claude Code",
      "examples": [
        "<%= config.bin %> hooks install",
        "<%= config.bin %> hooks install --global",
        "<%= config.bin %> hooks install --no-proxy"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "no-proxy": {
          "description": "Skip proxy/gateway configuration (hooks only)",
          "name": "no-proxy",
          "allowNo": false,
          "type": "boolean"
        },
        "project-dir": {
          "description": "Project directory to install hooks in (defaults to cwd)",
          "name": "project-dir",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "user-hooks": {
          "description": "Write user-level Cursor/Antigravity hooks (~/.cursor, ~/.gemini). Required for Cursor capture — its traffic bypasses the proxy.",
          "name": "user-hooks",
          "allowNo": true,
          "type": "boolean"
        },
        "global": {
          "char": "g",
          "description": "Install hooks globally (~/.claude/settings.json) so all projects are tracked",
          "name": "global",
          "allowNo": false,
          "type": "boolean"
        },
        "statusline-usage": {
          "description": "Install the statusline shim so Claude Code pushes live rate_limits on every refresh (makes /usage rings update in real time without needing the proxy)",
          "name": "statusline-usage",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "hooks:install",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "hooks",
        "install.js"
      ]
    },
    "hooks:run": {
      "aliases": [],
      "args": {
        "hook": {
          "description": "Hook name to run",
          "name": "hook",
          "options": [
            "session-start",
            "session-end",
            "user-prompt",
            "post-tool-use",
            "assistant-response"
          ],
          "required": true
        }
      },
      "description": "Execute a hook script (called by AI tool hooks, not for direct use)",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hidden": true,
      "hiddenAliases": [],
      "id": "hooks:run",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "hooks",
        "run.js"
      ]
    },
    "hooks:uninstall": {
      "aliases": [],
      "args": {},
      "description": "Remove session tracking hooks from a project (or the global install)",
      "examples": [
        "<%= config.bin %> hooks uninstall",
        "<%= config.bin %> hooks uninstall --global",
        "<%= config.bin %> hooks uninstall --project-dir ~/work/repo-a",
        "<%= config.bin %> hooks uninstall --no-user-hooks"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "global": {
          "description": "Remove the GLOBAL install (~/.claude) rather than this project",
          "name": "global",
          "allowNo": false,
          "type": "boolean"
        },
        "project-dir": {
          "description": "Project directory to clean (defaults to cwd)",
          "name": "project-dir",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "user-hooks": {
          "description": "Also strip user-level Cursor/Antigravity hooks (~/.cursor, ~/.gemini)",
          "name": "user-hooks",
          "allowNo": true,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "hooks:uninstall",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "hooks",
        "uninstall.js"
      ]
    },
    "instructions:create": {
      "aliases": [],
      "args": {
        "file": {
          "description": "Path to markdown file",
          "name": "file"
        }
      },
      "description": "Create a new instruction",
      "examples": [
        "<%= config.bin %> instructions create ./my-instruction.md --name \"My Rules\" --description \"Team coding rules\"",
        "<%= config.bin %> instructions create ./rules.md -n \"Rules\" -d \"Project rules\" -s project"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "name": {
          "char": "n",
          "description": "Instruction name",
          "name": "name",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "description": {
          "char": "d",
          "description": "Instruction description",
          "name": "description",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "scope": {
          "char": "s",
          "description": "Instruction scope",
          "name": "scope",
          "default": "personal",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "org",
            "team",
            "project",
            "personal"
          ],
          "type": "option"
        },
        "scope-ref": {
          "description": "Scope reference UUID",
          "name": "scope-ref",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tags": {
          "char": "t",
          "description": "Comma-separated tags",
          "name": "tags",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:create",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "create.js"
      ]
    },
    "instructions:dedupe": {
      "aliases": [],
      "args": {},
      "description": "Report instructions in this project that repeat each other in different words",
      "examples": [
        "<%= config.bin %> instructions dedupe",
        "<%= config.bin %> instructions dedupe --dir apps/cli"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "dir": {
          "description": "Directory whose CLAUDE.md to check (ancestors are included)",
          "name": "dir",
          "default": ".",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "threshold": {
          "description": "Similarity floor 0-1 for calling two asks the same (default 0.3)",
          "name": "threshold",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:dedupe",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "dedupe.js"
      ]
    },
    "instructions:delete": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Instruction ID",
          "name": "id",
          "required": true
        }
      },
      "description": "Delete (archive) an instruction",
      "examples": [
        "<%= config.bin %> instructions delete <id>",
        "<%= config.bin %> instructions delete <id> --force"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "force": {
          "char": "f",
          "description": "Skip confirmation prompt",
          "name": "force",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:delete",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "delete.js"
      ]
    },
    "instructions:fork": {
      "aliases": [],
      "args": {
        "id": {
          "description": "ID of the instruction to fork",
          "name": "id",
          "required": true
        }
      },
      "description": "Fork an instruction to your personal scope",
      "examples": [
        "<%= config.bin %> instructions fork <instruction-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:fork",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "fork.js"
      ]
    },
    "instructions:get": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Instruction ID",
          "name": "id",
          "required": true
        }
      },
      "description": "Get an instruction by ID",
      "examples": [
        "<%= config.bin %> instructions get <id>",
        "<%= config.bin %> instructions get <id> --format raw"
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "format": {
          "char": "f",
          "description": "Output format",
          "name": "format",
          "default": "yaml",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "yaml",
            "json",
            "raw"
          ],
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:get",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "get.js"
      ]
    },
    "instructions:list": {
      "aliases": [],
      "args": {},
      "description": "List your instructions",
      "examples": [
        "<%= config.bin %> instructions list",
        "<%= config.bin %> instructions list --json"
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "format": {
          "char": "f",
          "description": "Output format",
          "name": "format",
          "default": "table",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "table",
            "json"
          ],
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "list.js"
      ]
    },
    "instructions:promote": {
      "aliases": [],
      "args": {
        "id": {
          "description": "ID of the instruction to promote",
          "name": "id",
          "required": true
        }
      },
      "description": "Promote an instruction to a higher scope (personal → team → org)",
      "examples": [
        "<%= config.bin %> instructions promote <id> --scope team --ref <team-id>",
        "<%= config.bin %> instructions promote <id> --scope org --ref <org-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "scope": {
          "description": "Target scope",
          "name": "scope",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "team",
            "org"
          ],
          "type": "option"
        },
        "ref": {
          "description": "Target scope ref (team or org ID)",
          "name": "ref",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:promote",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "promote.js"
      ]
    },
    "instructions:pull": {
      "aliases": [],
      "args": {
        "id": {
          "description": "ID of the forked instruction",
          "name": "id",
          "required": true
        }
      },
      "description": "Pull upstream changes into a forked instruction",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:pull",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "pull.js"
      ]
    },
    "instructions:restore": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Instruction ID",
          "name": "id",
          "required": true
        }
      },
      "description": "Restore an archived instruction",
      "examples": [
        "<%= config.bin %> instructions restore <id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:restore",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "restore.js"
      ]
    },
    "instructions:retract": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Instruction ID (omit when using --kind/--target)",
          "name": "id",
          "required": false
        }
      },
      "description": "Remove an instruction, skill, hook or MCP server from disk (dry-run by default)",
      "examples": [
        "<%= config.bin %> instructions retract <instruction-id>",
        "<%= config.bin %> instructions retract <instruction-id> --apply",
        "<%= config.bin %> instructions retract --kind skill --target agent-browser",
        "<%= config.bin %> instructions retract --kind mcp --target supabase --apply",
        "<%= config.bin %> instructions retract --kind hook --target \"doomed-tool\" --apply"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "apply": {
          "description": "Actually write. Without this, nothing is modified.",
          "name": "apply",
          "allowNo": false,
          "type": "boolean"
        },
        "force": {
          "description": "Proceed without a randomised verdict (observational evidence only)",
          "name": "force",
          "allowNo": false,
          "type": "boolean"
        },
        "kind": {
          "description": "Retract something that is not an instruction row",
          "name": "kind",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "claude-md",
            "memory",
            "skill",
            "hook",
            "mcp"
          ],
          "type": "option"
        },
        "target": {
          "description": "File path, skill name, MCP server name, or hook command substring",
          "name": "target",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "heading": {
          "description": "Markdown heading to remove (defaults to the instruction name)",
          "name": "heading",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:retract",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "retract.js"
      ]
    },
    "instructions:upstream": {
      "aliases": [],
      "args": {
        "id": {
          "description": "ID of the forked instruction",
          "name": "id",
          "required": true
        }
      },
      "description": "Check if a forked instruction has upstream updates",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:upstream",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "upstream.js"
      ]
    },
    "instructions:versions": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Instruction ID",
          "name": "id",
          "required": true
        }
      },
      "description": "List version history for an instruction",
      "examples": [
        "<%= config.bin %> instructions versions <id>"
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "instructions:versions",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "instructions",
        "versions.js"
      ]
    },
    "local:down": {
      "aliases": [],
      "args": {},
      "description": "Stop the local RuleMetric server and database stack. Data is preserved (restart with `rulemetric local up`); use --delete-data to also wipe the local database.",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "delete-data": {
          "description": "Also delete the local database volumes (irreversible)",
          "name": "delete-data",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "local:down",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "local",
        "down.js"
      ]
    },
    "local:up": {
      "aliases": [],
      "args": {},
      "description": "Run RuleMetric fully locally: start a local Supabase stack (Docker), apply migrations, and serve the API + dashboard from the @rulemetric/local runtime — all data on this machine, zero cloud contact. Downloads the runtime package on first run.",
      "examples": [
        "<%= config.bin %> local up --email you@example.com --password <pw>",
        "<%= config.bin %> local up --port 3000",
        "<%= config.bin %> local up --foreground"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "port": {
          "char": "p",
          "description": "Local API + dashboard port",
          "name": "port",
          "default": 3000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "email": {
          "char": "e",
          "description": "Create the first user with this email (with --password)",
          "name": "email",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "password": {
          "description": "Password for the first user (min 8 chars)",
          "name": "password",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "foreground": {
          "description": "Run the server in this terminal instead of installing a launchd service (works on any OS; skips user provisioning)",
          "name": "foreground",
          "allowNo": false,
          "type": "boolean"
        },
        "yes": {
          "char": "y",
          "description": "Skip the runtime-download confirmation",
          "name": "yes",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "local:up",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "local",
        "up.js"
      ]
    },
    "org:current": {
      "aliases": [],
      "args": {},
      "description": "Show the current active organization",
      "examples": [
        "<%= config.bin %> org current"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "org:current",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "org",
        "current.js"
      ]
    },
    "org:list": {
      "aliases": [],
      "args": {},
      "description": "List organizations the current user is a member of",
      "examples": [
        "<%= config.bin %> org list"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "org:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "org",
        "list.js"
      ]
    },
    "org:switch": {
      "aliases": [],
      "args": {
        "slug": {
          "description": "Organization slug to switch to",
          "name": "slug",
          "required": false
        }
      },
      "description": "Switch the active organization",
      "examples": [
        "<%= config.bin %> org switch acme",
        "<%= config.bin %> org switch --clear"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "clear": {
          "description": "Clear the active organization (personal mode)",
          "name": "clear",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "org:switch",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "org",
        "switch.js"
      ]
    },
    "packs:add-instruction": {
      "aliases": [],
      "args": {
        "packId": {
          "description": "Pack ID",
          "name": "packId",
          "required": true
        },
        "instructionId": {
          "description": "Instruction ID",
          "name": "instructionId",
          "required": true
        }
      },
      "description": "Add an instruction to a pack",
      "examples": [
        "<%= config.bin %> packs add-instruction <pack-id> <instruction-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:add-instruction",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "add-instruction.js"
      ]
    },
    "packs:apply": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Pack ID",
          "name": "id",
          "required": true
        }
      },
      "description": "Apply a pack to a project (bulk-link all instructions)",
      "examples": [
        "<%= config.bin %> packs apply <pack-id> --project <project-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "project": {
          "char": "p",
          "description": "Project ID",
          "name": "project",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:apply",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "apply.js"
      ]
    },
    "packs:create": {
      "aliases": [],
      "args": {},
      "description": "Create a new instruction pack",
      "examples": [
        "<%= config.bin %> packs create --name \"Security Pack\" --description \"Security-focused instructions\""
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "name": {
          "char": "n",
          "description": "Pack name",
          "name": "name",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "description": {
          "char": "d",
          "description": "Pack description",
          "name": "description",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "scope": {
          "char": "s",
          "description": "Pack scope",
          "name": "scope",
          "default": "personal",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "org",
            "team",
            "personal"
          ],
          "type": "option"
        },
        "tags": {
          "char": "t",
          "description": "Comma-separated tags",
          "name": "tags",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:create",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "create.js"
      ]
    },
    "packs:fork": {
      "aliases": [],
      "args": {
        "id": {
          "description": "ID of the pack to fork",
          "name": "id",
          "required": true
        }
      },
      "description": "Fork a pack to your personal scope",
      "examples": [
        "<%= config.bin %> packs fork <pack-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:fork",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "fork.js"
      ]
    },
    "packs:get": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Pack ID",
          "name": "id",
          "required": true
        }
      },
      "description": "Get pack detail with instruction list",
      "examples": [
        "<%= config.bin %> packs get <pack-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:get",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "get.js"
      ]
    },
    "packs:list": {
      "aliases": [],
      "args": {},
      "description": "List your instruction packs",
      "examples": [
        "<%= config.bin %> packs list",
        "<%= config.bin %> packs list --json"
      ],
      "flags": {
        "json": {
          "description": "Format output as json.",
          "helpGroup": "GLOBAL",
          "name": "json",
          "allowNo": false,
          "type": "boolean"
        },
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "format": {
          "char": "f",
          "description": "Output format",
          "name": "format",
          "default": "table",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "table",
            "json"
          ],
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": true,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "list.js"
      ]
    },
    "packs:remove-instruction": {
      "aliases": [],
      "args": {
        "packId": {
          "description": "Pack ID",
          "name": "packId",
          "required": true
        },
        "instructionId": {
          "description": "Instruction ID",
          "name": "instructionId",
          "required": true
        }
      },
      "description": "Remove an instruction from a pack",
      "examples": [
        "<%= config.bin %> packs remove-instruction <pack-id> <instruction-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "packs:remove-instruction",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "packs",
        "remove-instruction.js"
      ]
    },
    "proxy:env": {
      "aliases": [],
      "args": {},
      "description": "Print shell env vars to route any client through the RuleMetric proxy",
      "examples": [
        "<%= config.bin %> proxy env",
        "<%= config.bin %> proxy env --shell fish",
        "eval \"$(rulemetric proxy env)\"",
        "rulemetric proxy env --python"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "shell": {
          "char": "s",
          "description": "Shell format (posix, fish, powershell)",
          "name": "shell",
          "default": "posix",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "posix",
            "fish",
            "powershell"
          ],
          "type": "option"
        },
        "python": {
          "description": "Include Python-specific env vars (REQUESTS_CA_BUNDLE, SSL_CERT_FILE)",
          "name": "python",
          "allowNo": false,
          "type": "boolean"
        },
        "node": {
          "description": "Include Node.js-specific env vars (NODE_EXTRA_CA_CERTS)",
          "name": "node",
          "allowNo": false,
          "type": "boolean"
        },
        "all": {
          "description": "Include env vars for all runtimes",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        },
        "vscode": {
          "description": "Output VS Code settings.json snippet for Copilot proxy",
          "name": "vscode",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:env",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "env.js"
      ]
    },
    "proxy:logs": {
      "aliases": [],
      "args": {},
      "description": "View context capture proxy logs",
      "examples": [
        "<%= config.bin %> proxy logs",
        "<%= config.bin %> proxy logs --follow",
        "<%= config.bin %> proxy logs --lines 50"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "follow": {
          "char": "f",
          "description": "Follow log output (like tail -f)",
          "name": "follow",
          "allowNo": false,
          "type": "boolean"
        },
        "lines": {
          "char": "n",
          "description": "Number of lines to show",
          "name": "lines",
          "default": 30,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:logs",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "logs.js"
      ]
    },
    "proxy:restart": {
      "aliases": [],
      "args": {},
      "description": "Restart the context capture proxy (stop + start)",
      "examples": [
        "<%= config.bin %> proxy restart"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "port": {
          "char": "p",
          "description": "Proxy listen port",
          "name": "port",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "docker": {
          "char": "d",
          "description": "Run in Docker mode",
          "name": "docker",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:restart",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "restart.js"
      ]
    },
    "proxy:setup": {
      "aliases": [],
      "args": {},
      "description": "Set up context capture proxy (installs mitmproxy, configures shell)",
      "examples": [
        "<%= config.bin %> proxy setup",
        "<%= config.bin %> proxy setup --shell zsh",
        "<%= config.bin %> proxy setup --check"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "shell": {
          "description": "Shell to configure (auto-detected if omitted)",
          "name": "shell",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "zsh",
            "bash",
            "fish",
            "powershell"
          ],
          "type": "option"
        },
        "port": {
          "char": "p",
          "description": "Proxy listen port",
          "name": "port",
          "default": 8787,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "check": {
          "description": "Only check prerequisites, do not install anything",
          "name": "check",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:setup",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "setup.js"
      ]
    },
    "proxy:start": {
      "aliases": [],
      "args": {},
      "description": "Start context capture proxy",
      "examples": [
        "<%= config.bin %> proxy start",
        "<%= config.bin %> proxy start --docker",
        "<%= config.bin %> proxy start --port 9090",
        "<%= config.bin %> proxy start --web"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "port": {
          "char": "p",
          "description": "Proxy listen port",
          "name": "port",
          "default": 8788,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "docker": {
          "char": "d",
          "description": "Run proxy in Docker (no local mitmproxy needed)",
          "name": "docker",
          "allowNo": false,
          "type": "boolean"
        },
        "web": {
          "description": "Launch mitmweb debug UI instead of mitmdump (local mode only)",
          "name": "web",
          "allowNo": false,
          "type": "boolean"
        },
        "skip-checks": {
          "description": "Skip prerequisite checks",
          "name": "skip-checks",
          "allowNo": false,
          "type": "boolean"
        },
        "build": {
          "description": "Force rebuild Docker image",
          "name": "build",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:start",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "start.js"
      ]
    },
    "proxy:status": {
      "aliases": [],
      "args": {},
      "description": "Check gateway and context capture proxy status",
      "examples": [
        "<%= config.bin %> proxy status"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:status",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "status.js"
      ]
    },
    "proxy:stop": {
      "aliases": [],
      "args": {},
      "description": "Stop the context capture proxy",
      "examples": [
        "<%= config.bin %> proxy stop"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "proxy:stop",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "proxy",
        "stop.js"
      ]
    },
    "research:backfill": {
      "aliases": [],
      "args": {},
      "description": "Scan every ~/.claude/projects transcript for past rate-limit (429) events and POST them as observations. Opt-in seed for the usage-research dataset — forward-only tail is the default capture path.",
      "examples": [
        "<%= config.bin %> research backfill",
        "<%= config.bin %> research backfill --claude-dir /custom/.claude --dry-run"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "claude-dir": {
          "description": "Override the Claude Code projects directory",
          "name": "claude-dir",
          "default": "/home/runner/.claude",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "dry-run": {
          "description": "Print observation count without POSTing",
          "name": "dry-run",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "research:backfill",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "research",
        "backfill.js"
      ]
    },
    "research:tail-transcript": {
      "aliases": [],
      "args": {
        "transcript": {
          "description": "Absolute path to a Claude Code .jsonl transcript",
          "name": "transcript",
          "required": true
        }
      },
      "description": "Read new lines from a Claude Code transcript since the last cached offset, POST any 429 events, and persist the new offset. Invoked by the session-end hook — safe to re-run.",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "no-post": {
          "description": "Parse and advance the offset without POSTing (debug)",
          "name": "no-post",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hidden": true,
      "hiddenAliases": [],
      "id": "research:tail-transcript",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "research",
        "tail-transcript.js"
      ]
    },
    "service:install": {
      "aliases": [],
      "args": {},
      "description": "Install RuleMetric services. Default (in a repo checkout): API + worker + gateway + capture proxy as launchd agents. With --worker-only: just the job worker, targeting the globally-installed CLI — no repo, no build (works from `npm i -g @rulemetric/cli`, macOS launchd or Linux systemd).",
      "examples": [
        "<%= config.bin %> service install",
        "<%= config.bin %> service install --port 3000",
        "<%= config.bin %> service install --skip-build",
        "<%= config.bin %> service install --no-proxy",
        "<%= config.bin %> service install --worker-only"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "port": {
          "char": "p",
          "description": "API server port",
          "name": "port",
          "default": 3000,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "force": {
          "char": "f",
          "description": "Overwrite existing service configuration and reclaim conflicting ports",
          "name": "force",
          "allowNo": false,
          "type": "boolean"
        },
        "skip-build": {
          "description": "Skip the pre-install workspace build (API/web/cli dist must already exist)",
          "name": "skip-build",
          "allowNo": false,
          "type": "boolean"
        },
        "no-proxy": {
          "description": "Skip gateway + mitmproxy plists (just install API + worker)",
          "name": "no-proxy",
          "allowNo": false,
          "type": "boolean"
        },
        "worker-only": {
          "description": "Install ONLY the job worker as a persistent service, targeting the globally-installed CLI (no repo checkout, no build, no API/gateway/proxy). Sources auth from ~/.config/rulemetric/env. macOS (launchd) + Linux (systemd --user).",
          "name": "worker-only",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "service:install",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "service",
        "install.js"
      ]
    },
    "service:status": {
      "aliases": [],
      "args": {},
      "description": "Check the status of installed RuleMetric services (launchd on macOS; systemd --user worker on Linux)",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "service:status",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "service",
        "status.js"
      ]
    },
    "service:uninstall": {
      "aliases": [],
      "args": {},
      "description": "Remove RuleMetric services (macOS launchd: API/worker/gateway/proxy; Linux: the --worker-only systemd unit)",
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "service:uninstall",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "service",
        "uninstall.js"
      ]
    },
    "sessions:analyze": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Session ID",
          "name": "id",
          "required": true
        }
      },
      "description": "Trigger AI analysis on a session",
      "examples": [
        "<%= config.bin %> sessions analyze <session-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "sessions:analyze",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "sessions",
        "analyze.js"
      ]
    },
    "sessions:delete": {
      "aliases": [],
      "args": {
        "ids": {
          "description": "Session id(s) to delete",
          "name": "ids",
          "required": false
        }
      },
      "description": "Permanently delete captured sessions and everything stored with them (events, context snapshots, offloaded blobs)",
      "examples": [
        "<%= config.bin %> sessions delete 4f9d…",
        "<%= config.bin %> sessions delete 4f9d… 8a21…",
        "<%= config.bin %> sessions delete --project /work/client-a --yes"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "project": {
          "description": "Delete every session captured under this project path (use with --yes).",
          "name": "project",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "yes": {
          "description": "Skip the confirmation prompt. Required for --project in non-interactive use.",
          "name": "yes",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "sessions:delete",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": false,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "sessions",
        "delete.js"
      ]
    },
    "sessions:end": {
      "aliases": [],
      "args": {},
      "description": "End the active capture session",
      "examples": [
        "<%= config.bin %> sessions end"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "sessions:end",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "sessions",
        "end.js"
      ]
    },
    "sessions:import": {
      "aliases": [],
      "args": {
        "path": {
          "description": "Path to session file",
          "name": "path",
          "required": true
        }
      },
      "description": "Import a session file (JSONL, JSON)",
      "examples": [
        "<%= config.bin %> sessions import ~/.claude/projects/my-project/session-abc.jsonl",
        "<%= config.bin %> sessions import ./copilot-export.json --tool vscode_copilot"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tool": {
          "description": "Override tool detection (claude_code, cursor, vscode_copilot)",
          "name": "tool",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "sessions:import",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "sessions",
        "import.js"
      ]
    },
    "sessions:list": {
      "aliases": [],
      "args": {},
      "description": "List captured sessions",
      "examples": [
        "<%= config.bin %> sessions list",
        "<%= config.bin %> sessions list --tool claude_code",
        "<%= config.bin %> sessions list --tool codex"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tool": {
          "description": "Filter by tool (claude_code, cursor, vscode_copilot, copilot_agent, rulemetric_mcp, codex, pi, opencode, antigravity)",
          "name": "tool",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "limit": {
          "description": "Max results",
          "name": "limit",
          "default": 20,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "sessions:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "sessions",
        "list.js"
      ]
    },
    "sessions:start": {
      "aliases": [],
      "args": {},
      "description": "Start a capture session for any LLM provider (Cortex, Groq, etc.)",
      "examples": [
        "<%= config.bin %> sessions start --tool cortex",
        "<%= config.bin %> sessions start --tool groq --project-dir /path/to/project",
        "eval \"$(rulemetric proxy env --python)\" && rulemetric sessions start --tool cortex"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tool": {
          "char": "t",
          "description": "LLM provider or tool name (e.g., cortex, groq, deepseek, custom_app)",
          "name": "tool",
          "required": true,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "project-dir": {
          "char": "d",
          "description": "Project directory (defaults to cwd)",
          "name": "project-dir",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "sessions:start",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "sessions",
        "start.js"
      ]
    },
    "skills:export-approved": {
      "aliases": [],
      "args": {},
      "description": "Export approved community submissions as community-skills.json for registry merge",
      "examples": [
        "<%= config.bin %> skills export-approved",
        "<%= config.bin %> skills export-approved --output ./community-skills.json"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "output": {
          "description": "Output file path",
          "name": "output",
          "default": "packages/skills-registry/community-skills.json",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "skills:export-approved",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "skills",
        "export-approved.js"
      ]
    },
    "skills:install": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Skill ID to install",
          "name": "id",
          "required": true
        }
      },
      "description": "Install a skill from the registry into your project",
      "examples": [
        "<%= config.bin %> skills install tdd-workflow",
        "<%= config.bin %> skills install tdd-workflow --preview",
        "<%= config.bin %> skills install tdd-workflow --force"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tool": {
          "description": "Deprecated and ignored — skills install to every agent path at once",
          "hidden": true,
          "name": "tool",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "claude_code",
            "cursor",
            "copilot"
          ],
          "type": "option"
        },
        "preview": {
          "description": "Preview content without writing",
          "name": "preview",
          "allowNo": false,
          "type": "boolean"
        },
        "dir": {
          "description": "Project directory",
          "name": "dir",
          "default": ".",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "force": {
          "description": "Replace an existing skill directory at the Claude Code path",
          "name": "force",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "skills:install",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "skills",
        "install.js"
      ]
    },
    "skills:list": {
      "aliases": [],
      "args": {},
      "description": "List skills in the registry",
      "examples": [
        "<%= config.bin %> skills list",
        "<%= config.bin %> skills list --stats"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "stats": {
          "description": "Show registry statistics",
          "name": "stats",
          "allowNo": false,
          "type": "boolean"
        },
        "limit": {
          "description": "Max skills to show",
          "name": "limit",
          "default": 30,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "skills:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "skills",
        "list.js"
      ]
    },
    "skills:publish": {
      "aliases": [],
      "args": {
        "file": {
          "description": "Path to skill file (.md)",
          "name": "file",
          "required": true
        }
      },
      "description": "Submit a skill file to the RuleMetric skills registry",
      "examples": [
        "<%= config.bin %> skills publish ./my-skill.md",
        "<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "name": {
          "description": "Skill name (defaults to filename)",
          "name": "name",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "description": {
          "description": "One-line description",
          "name": "description",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "category": {
          "description": "Skill category",
          "name": "category",
          "default": "other",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "workflow",
            "language",
            "framework",
            "tool",
            "security",
            "testing",
            "architecture",
            "devops",
            "documentation",
            "performance",
            "other"
          ],
          "type": "option"
        },
        "tool": {
          "description": "Primary tool this skill targets",
          "name": "tool",
          "default": "universal",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "claude_code",
            "cursor",
            "copilot",
            "windsurf",
            "universal"
          ],
          "type": "option"
        },
        "tags": {
          "description": "Comma-separated tags",
          "name": "tags",
          "default": "",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "skills:publish",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "skills",
        "publish.js"
      ]
    },
    "skills:search": {
      "aliases": [],
      "args": {
        "query": {
          "description": "Search term",
          "name": "query",
          "required": false
        }
      },
      "description": "Search the community skills registry",
      "examples": [
        "<%= config.bin %> skills search \"tdd\"",
        "<%= config.bin %> skills search --tool cursor --category testing",
        "<%= config.bin %> skills search --language python"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "tool": {
          "description": "Filter by tool",
          "name": "tool",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "claude_code",
            "cursor",
            "copilot",
            "windsurf",
            "cline",
            "universal"
          ],
          "type": "option"
        },
        "category": {
          "description": "Filter by category",
          "name": "category",
          "hasDynamicHelp": false,
          "multiple": false,
          "options": [
            "workflow",
            "language",
            "framework",
            "tool",
            "security",
            "testing",
            "architecture",
            "devops",
            "documentation",
            "performance"
          ],
          "type": "option"
        },
        "language": {
          "description": "Filter by programming language",
          "name": "language",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "framework": {
          "description": "Filter by framework",
          "name": "framework",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "limit": {
          "description": "Max results",
          "name": "limit",
          "default": 20,
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "skills:search",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "skills",
        "search.js"
      ]
    },
    "skills:update": {
      "aliases": [],
      "args": {},
      "description": "Fetch latest skills from GitHub sources and update local registry",
      "examples": [
        "<%= config.bin %> skills update",
        "<%= config.bin %> skills update --all"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "all": {
          "description": "Include Tier 2 (niche) sources",
          "name": "all",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "skills:update",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "skills",
        "update.js"
      ]
    },
    "suggestions:accept": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Suggestion UUID from `suggestions list`",
          "name": "id",
          "required": true
        }
      },
      "description": "Accept a suggestion and append the instruction to CLAUDE.md",
      "examples": [
        "<%= config.bin %> suggestions accept <id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "force": {
          "description": "Add the rule even if this project already says the same thing in other words",
          "name": "force",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "suggestions:accept",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "suggestions",
        "accept.js"
      ]
    },
    "suggestions:auto": {
      "aliases": [],
      "args": {},
      "description": "Show or change automatic adoption of high-confidence suggestions into CLAUDE.md",
      "examples": [
        "<%= config.bin %> suggestions auto",
        "<%= config.bin %> suggestions auto --off",
        "<%= config.bin %> suggestions auto --on",
        "<%= config.bin %> suggestions auto --off --project <project-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "on": {
          "description": "Enable automatic adoption",
          "exclusive": [
            "off"
          ],
          "name": "on",
          "allowNo": false,
          "type": "boolean"
        },
        "off": {
          "description": "Disable automatic adoption",
          "exclusive": [
            "on"
          ],
          "name": "off",
          "allowNo": false,
          "type": "boolean"
        },
        "project": {
          "description": "Apply to one project only (overrides the account default)",
          "name": "project",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "max-per-window": {
          "description": "How many rules the loop may adopt per project per window (0 stops it adopting)",
          "name": "max-per-window",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "max-per-run": {
          "description": "How many rules one nightly run may adopt",
          "name": "max-per-run",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "window-days": {
          "description": "Length of the budget window, in days",
          "name": "window-days",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "min-score": {
          "description": "Minimum suggestion score the loop may adopt (0–1)",
          "name": "min-score",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "reset": {
          "description": "Clear the budget overrides at this level and fall back to the shipped defaults",
          "name": "reset",
          "allowNo": false,
          "type": "boolean"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "suggestions:auto",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "suggestions",
        "auto.js"
      ]
    },
    "suggestions:dismiss": {
      "aliases": [],
      "args": {
        "id": {
          "description": "Suggestion UUID from `suggestions list`",
          "name": "id",
          "required": true
        }
      },
      "description": "Dismiss a suggestion so it will not re-surface for 30 days",
      "examples": [
        "<%= config.bin %> suggestions dismiss <id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "suggestions:dismiss",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "suggestions",
        "dismiss.js"
      ]
    },
    "suggestions:list": {
      "aliases": [],
      "args": {},
      "description": "List instruction suggestions for a project",
      "examples": [
        "<%= config.bin %> suggestions list",
        "<%= config.bin %> suggestions list --project /path/to/project"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        },
        "project": {
          "char": "p",
          "description": "Project path (defaults to current directory)",
          "name": "project",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "suggestions:list",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "suggestions",
        "list.js"
      ]
    },
    "suggestions:refresh": {
      "aliases": [],
      "args": {},
      "description": "Information about refreshing instruction suggestions",
      "examples": [
        "<%= config.bin %> suggestions refresh"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "suggestions:refresh",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "suggestions",
        "refresh.js"
      ]
    },
    "suggestions:undo": {
      "aliases": [],
      "args": {
        "instructionId": {
          "description": "Instruction ID from the rulemetric:start marker in CLAUDE.md",
          "name": "instructionId",
          "required": true
        }
      },
      "description": "Remove an adopted instruction from CLAUDE.md and stop it being re-proposed",
      "examples": [
        "<%= config.bin %> suggestions undo <instruction-id>"
      ],
      "flags": {
        "api-url": {
          "description": "Override API base URL",
          "env": "RULEMETRIC_API_URL",
          "hidden": true,
          "name": "api-url",
          "hasDynamicHelp": false,
          "multiple": false,
          "type": "option"
        }
      },
      "hasDynamicHelp": false,
      "hiddenAliases": [],
      "id": "suggestions:undo",
      "pluginAlias": "@rulemetric/cli",
      "pluginName": "@rulemetric/cli",
      "pluginType": "core",
      "strict": true,
      "enableJsonFlag": false,
      "isESM": true,
      "relativePath": [
        "dist",
        "commands",
        "suggestions",
        "undo.js"
      ]
    }
  },
  "version": "0.12.2"
}