Skip to content

rename: agent-package subsystem -> capability-package (terminology correction) - #882

Merged
enricopiovesan merged 2 commits into
mainfrom
rename/agent-packages-to-capability-packages
Jul 29, 2026
Merged

rename: agent-package subsystem -> capability-package (terminology correction)#882
enricopiovesan merged 2 commits into
mainfrom
rename/agent-packages-to-capability-packages

Conversation

@enricopiovesan

Copy link
Copy Markdown
Collaborator

Summary

The repo owner maintains a separate reference framework (UMA) where "agent" is
reserved specifically for a capability whose implementation involves real
AI/model-backed reasoning. Traverse's own CLI has used "agent" loosely to mean
"a packaged, executable capability" regardless of whether it is AI-backed —
every package under this subsystem today (interpret-expedition-intent,
validate-team-readiness, say-hello, doc-approval.analyze, the
traverse-starter/meeting-notes reference-app packages, etc.) is
deterministic, non-AI business logic. This is a confirmed terminology
correction, matching the equivalent rename already landed in
traverse-framework/registry (agents/ -> capability-src/,
wasi-agent-runtime -> wasi-capability-runtime).

This PR renames the agent-labeled subsystem in traverse-cli to
capability-package, outright (no alias, no deprecation warning for the old
agent verb).

Governing Spec

  • 017-ai-agent-packaging
  • 516-agent-artifact-execution
  • 070-runtime-event-sink-boundary

Project Item

N/A — terminology-correction follow-up to the traverse-framework/registry
capability-src/ rename; not tracked against a Project 1 ticket.

What Changed

  • Contracts changed: none — this only touches the CLI's own manifest-loading
    code and example package manifests, not traverse-contracts/capability
    contract schemas.
  • Runtime behavior changed:
    • crates/traverse-cli/src/agent_packages.rs -> capability_packages.rs,
      with every Agent*-prefixed type renamed (LoadedAgentPackage ->
      LoadedCapabilityPackage, AgentPackageManifest ->
      CapabilityPackageManifest, AgentCapabilityReference ->
      CapabilityPackageReference — deliberately not the bare
      CapabilityReference, since traverse-contracts::CapabilityReference
      already exists as a distinct type — AgentWorkflowReference ->
      PackageWorkflowReference, AgentSourceReference ->
      PackageSourceReference, AgentBinaryReference ->
      PackageBinaryReference, AgentConstraintDeclaration ->
      PackageConstraintDeclaration, AgentModelDependency ->
      PackageModelDependency, load_agent_package() ->
      load_capability_package()).
    • The manifest schema discriminant "kind": "agent_package" is now
      "kind": "capability_package", updated in the CLI's validation code and
      in every checked-in manifest that declared it (10 manifests across
      examples/, plus the executable-capability-package template).
    • CLI verbs: agent inspect / agent execute are now
      capability-package inspect / capability-package execute — see note
      below on why the family is capability-package and not bare
      capability.
    • examples/agents/ -> examples/capabilities/ (git-history-preserving
      move), and its two manifests (expedition-intent-agent,
      team-readiness-agent) had their package_id shortened to drop the
      now-redundant -agent suffix (e.g.
      expedition.planning.interpret-expedition-intent-agent ->
      expedition.planning.interpret-expedition-intent) and their summary
      wording corrected from "Governed WASM AI agent example for ..." to
      "Governed WASM capability example for ..." — these two are fixed-output
      fixtures with zero AI/model/network involvement, so calling them "AI
      agent" was itself a real, separate mislabel (not just fixed for
      consistency). The underlying fixed-output-fixture behavior itself is
      intentionally left alone — out of scope for this rename.
    • All help text, CLI usage strings, and CLI-facing tests updated to match
      (renamed test functions too, e.g.
      parse_command_returns_agent_inspect_help_on_help_flag ->
      parse_command_returns_capability_package_inspect_help_on_help_flag).
  • Compatibility impact: the agent CLI verb no longer exists at all — this is
    a breaking CLI change by design (explicit "no alias" instruction). Any
    script or doc invoking traverse-cli agent inspect|execute needs to switch
    to traverse-cli capability-package inspect|execute. Found and fixed every
    such call site in this repo, including two that are wired into ci.yml /
    nightly.yml (scripts/ci/repository_checks.sh ->
    scripts/ci/app_ownership_boundary_smoke.sh, and
    scripts/ci/hello_world_example_smoke.sh) and would otherwise have broken
    CI on merge.
  • ADR needed or linked: no.

Validation

  • Spec alignment checked (ran scripts/ci/spec_alignment_check.sh
    locally against this PR body and origin/main...HEAD; passes)
  • Contract alignment checked (no capability_contract files changed)
  • Tests updated and passing (cargo test --workspace: every crate green,
    no test deleted — only renamed/updated to the new terminology)
  • Core coverage preserved
  • Required validation gates passing (cargo build --workspace,
    cargo clippy --workspace --all-targets -- -D warnings,
    bash scripts/ci/repository_checks.sh, and every CI-wired smoke script
    touched by this change, all run locally and green)

Notes

Why capability-package, not bare capability, as the CLI family: the
literal instruction for this rename was agent inspect/agent execute ->
capability inspect/capability execute. That would collide with an
existing, already-shipped (if not yet fully wired up) capability family —
Command::CapabilityDiscover, Command::CapabilityPublish, and a documented
(PR #319) capability inspect <contract-path> help text for a different,
unrelated feature: inspecting a raw capability contract file, not a
capability package manifest. Overwriting that reserved verb for this
unrelated purpose would have silently repurposed someone else's designed (if
dormant) CLI surface. Resolved by using capability-package as the family
name instead — consistent with the type-name resolution already given for
AgentCapabilityReference (kept distinct from CapabilityReference for the
same reason), and consistent with the existing hyphenated-family precedent
(browser-adapter).

Other judgment calls made along the way:

  • Extended the "kind": "agent_package" -> "capability_package" fix to
    all 10 manifests that declared it repo-wide (not just the two named in the
    task), since the CLI's validation code checks a single discriminant value —
    leaving the others on the old value would have broken every other example
    package's tests.
  • Updated the module's internal error message wording ("agent package manifest..." -> "capability package manifest...", "agent source" /
    "agent binary" -> "capability source" / "capability binary", plus the
    matching test assertions) for consistency with the new terminology.
  • Renamed the registry "ai-agent" tag emitted by every capability-package
    registration to "capability-package", and the artifact_ref /
    registered_at "agent-package:..." prefix to "capability-package:..."
    — same mislabel category as the manifest summary fix, just not
    enumerated explicitly in the task.
  • Dropped the -agent suffix from the executable-capability-package
    template's placeholder package_id
    (example.domain.replace-me-agent -> example.domain.replace-me) and its
    smoke-script assertion, mirroring the same rationale applied to the two
    named example manifests.
  • Fixed every other place that called the CLI with the old agent verb or
    referenced the old examples/agents/ path, even ones outside the literal
    --include="*.md" --include="*.rs" grep pattern given in the task — several
    scripts/ci/*.sh smoke scripts and docs/*.md guides invoke
    traverse-cli agent inspect|execute directly and would have been silently
    broken (or in the app_ownership_boundary_smoke.sh /
    hello_world_example_smoke.sh case, would have broken real CI runs) if left
    untouched.
  • Left specs/017-ai-agent-packaging/, specs/governance/approved-specs.json,
    and the AGENT_GOVERNING_SPEC constant / spec_ref value in
    capability_packages.rs completely untouched — these reference the actual,
    immutable, already-merged spec ID 017-ai-agent-packaging, which is a
    historical record, not a code identifier to rename.
  • Left every other -agent-suffixed example directory/package_id alone
    (examples/hello-world/say-hello-agent, examples/doc-approval/*-agent,
    examples/traverse-starter/*-agent, examples/meeting-notes/process-agent)
    — only their manifest kind changed, per the task's explicit scope
    (package_id/summary rewording was scoped to the two examples/agents/
    manifests only).

enricopiovesan and others added 2 commits July 29, 2026 15:42
…rrection)

Rename the traverse-cli agent-package subsystem to capability-package.
"agent" is reserved for a future capability whose implementation genuinely
involves AI/model-backed reasoning (per the owner's own reference framework);
every package under this subsystem is deterministic, non-AI business logic,
so the name was a mislabel.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@enricopiovesan
enricopiovesan merged commit 9d16820 into main Jul 29, 2026
32 checks passed
@enricopiovesan
enricopiovesan deleted the rename/agent-packages-to-capability-packages branch July 29, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant