Files
boshu2__agentops/docs/cli-surface.json
Bo 238964fdd2 feat(cli): workflows are canonical product artifacts — workflows/ + ao workflows link (#945)
Workflows get the skills treatment (operator decision): canonical source
in the product tree, installed by a product verb, Claude-only labeled as
such.

**What moves:** all seven Claude workflow scripts + README migrate from
force-added exceptions inside the gitignored `.claude/` to a tracked
top-level `workflows/` (sibling of `skills/`) — the four existing
conveyors plus `audit-dimensions`, `verify-fixes`, `implement-wave`:
three thin, args-parameterized orchestration conveyors extracted from
this session's hand-rolled waves, contract-reviewed, and smoke-proven
through the real Workflow runtime (the smoke caught two contract gaps
static review could not: an `export default` wrapper the runtime never
invokes, and args arriving as a JSON string — both fixed, string-args
tolerance now built in).

**New verb:** `ao workflows link` / `unlink` mirror `ao skills link`
semantics — dry-run `--json`, refuse to replace real files or foreign
links, unlink only checkout-owned links — targeting the project-local
`.claude/workflows/` where Claude Code resolves named workflows
(`--into` overrides). Checkout identity reuses the skillsapp marker
discipline, fail-closed. Claude-only runtime adapter, same doctrine as
the Codex-only `skills-codex/`.

**Legacy surfaces repointed:** `install-workflows.sh` (user-global $HOME
installer), `check-workflow-drift.sh` + gate comment,
`check-bdd-foundry-markers.sh`; spine allowlist + YAML-probe excuse +
go-cli.md spine region gain the workflows group; COMMANDS.md,
cli-surface projections, and surface-count fixture regenerated; new
tests carry per-command git-env scrubbing (test-isolation ratchet back
at baseline).

**Built BY the workflow being canonized** — `implement-wave`
orchestrated its own canonization: two disjoint-ownership lanes plus a
seam-checking verifier that ran the real binary's link → resolve →
unlink cycle in the live tree (both lanes RESOLVED). The lanes correctly
*refused* to self-approve their command into the spine invariants and
handed integration three flagged edits instead.

**Expected local gate note:** `workflow.install-drift` correctly FAILS
on machines whose user-global `~/.claude/workflows` links still point at
the old location — that is the transition it exists to catch. CI stays
green (absent→skip). **Post-merge operator step:** `cd ~/dev/agentops &&
git pull && bash scripts/install-workflows.sh`.

**Verified:** full suite 63/63 pkgs; golangci-lint clean; `gate check
--full` over this range = 66/67 with only the documented install-drift
environment finding; workflows smoke-run evidence in session logs.
2026-07-20 19:39:16 -04:00

547 lines
17 KiB
JSON

{
"categories": [
"public-tested",
"public-stateful-fixture-needed",
"internal-hidden",
"deprecated",
"unsafe-live",
"manual-only"
],
"commands": [
{
"category": "public-tested",
"command": "capabilities",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by capability contract tests."
},
{
"category": "public-tested",
"command": "completion",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Framework completion root has focused generation tests."
},
{
"category": "public-tested",
"command": "config",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "manual-only",
"command": "demo",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Interactive demonstration requires a TTY."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor capabilities",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Inspects local installation state."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor diff",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Compares local installation state."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor explain",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Requires controlled findings."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor fix",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Mutates local installation state."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor gc",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Prunes local doctor artifacts."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor health",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Inspects local health state."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor ls",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Lists local doctor artifacts."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor robot-docs",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Generates docs from local installation state."
},
{
"category": "public-stateful-fixture-needed",
"command": "doctor undo",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Reverts a doctor repair fixture."
},
{
"category": "public-tested",
"command": "eval baseline",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Promotion logic covered by internal/eval baseline tests; composition covered by cmd/ao eval tests."
},
{
"category": "public-tested",
"command": "eval baseline-audit",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Audit policy covered by internal/eval baseline_audit tests."
},
{
"category": "public-tested",
"command": "eval cleanup",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval cleanup_service tests."
},
{
"category": "public-tested",
"command": "eval compare",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "eval coverage",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval coverage tests."
},
{
"category": "public-tested",
"command": "eval outcomes compile",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by evalsubstrate rubric tests and module tests."
},
{
"category": "public-tested",
"command": "eval outcomes ingest",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval outcomes_service tests."
},
{
"category": "public-tested",
"command": "eval run",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "eval scenario add",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/scenario and module tests."
},
{
"category": "public-tested",
"command": "eval scenario evaluate",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval scenario_service tests."
},
{
"category": "public-tested",
"command": "eval scenario init",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/scenario and module tests."
},
{
"category": "public-tested",
"command": "eval scenario list",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/scenario and module tests."
},
{
"category": "public-tested",
"command": "eval scenario validate",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/scenario and module tests."
},
{
"category": "unsafe-live",
"command": "eval scenario-ab",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Spawns a live model runtime (codex exec) per arm; exercised by adapter tests with fakes, never in smoke."
},
{
"category": "unsafe-live",
"command": "eval scenario-moat",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Aggregates live scenario-ab cards; adapter-tested with fixtures."
},
{
"category": "public-tested",
"command": "eval scorecard",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval scorecard tests."
},
{
"category": "public-tested",
"command": "eval suite n-required",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval suite_service and module tests."
},
{
"category": "public-tested",
"command": "eval suite verdict",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval suite_service and module tests."
},
{
"category": "public-tested",
"command": "eval task add",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval task_service and module tests."
},
{
"category": "public-tested",
"command": "eval task list",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval task_service and module tests."
},
{
"category": "public-tested",
"command": "eval task run",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval task_service and module tests."
},
{
"category": "public-tested",
"command": "eval task show",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/eval task_service and module tests."
},
{
"category": "public-tested",
"command": "flywheel compare",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/flywheelapp Compare tests after the flywheel carve-out."
},
{
"category": "public-tested",
"command": "flywheel status",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "gate check",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-stateful-fixture-needed",
"command": "goals drift",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Requires two goal snapshots."
},
{
"category": "public-tested",
"command": "goals export",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered through goals snapshot behavior."
},
{
"category": "public-tested",
"command": "goals history",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Historical view shares goals validation behavior."
},
{
"category": "public-tested",
"command": "goals measure",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "goals meta",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered through goals measurement behavior."
},
{
"category": "public-tested",
"command": "goals render",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/goals render tests after the goals carve-out."
},
{
"category": "public-tested",
"command": "goals scenarios",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/goals module tests and internal/goals scenario tests after the goals carve-out."
},
{
"category": "public-tested",
"command": "goals validate",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/goals module tests and internal/goals validate tests after the goals carve-out."
},
{
"category": "internal-hidden",
"command": "help",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Built-in Cobra help dispatcher with no application handler."
},
{
"category": "public-tested",
"command": "init",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/init module tests and internal/initapp tests after the init carve-out."
},
{
"category": "public-tested",
"command": "provenance add",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance export",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance list",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance mine-session",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/provenanceapp mine-session tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance position",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance show",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by generic provenance read tests."
},
{
"category": "public-tested",
"command": "provenance show",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance trace",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "provenance verify",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/provenance module tests after the provenance carve-out."
},
{
"category": "public-tested",
"command": "quick-start",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "redact",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "robot-docs",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by generated documentation tests."
},
{
"category": "public-tested",
"command": "session bootstrap",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "session handoff",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by handoff artifact tests."
},
{
"category": "public-tested",
"command": "session rehydrate",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by rehydrate artifact tests."
},
{
"category": "public-tested",
"command": "skills check",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills consumers",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills find",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills graph",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills link",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills help tests plus internal/skillsapp link tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills list",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills producers",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills resolve",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills module tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "skills unlink",
"coverage_status": "allowlisted",
"kind": "leaf",
"reason": "Covered by internal/commands/skills help tests plus internal/skillsapp unlink tests after the skills carve-out."
},
{
"category": "public-tested",
"command": "status",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "version",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "workflows link",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
},
{
"category": "public-tested",
"command": "workflows unlink",
"coverage_status": "covered",
"kind": "leaf",
"reason": "Covered by release smoke tests, direct command tests, or command handler tests."
}
],
"generated_by": "scripts/check-cmdao-surface-parity.sh --write-surface",
"schema_version": 1
}