rename: agent-package subsystem -> capability-package (terminology correction) - #882
Merged
enricopiovesan merged 2 commits intoJul 29, 2026
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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, thetraverse-starter/meeting-notesreference-app packages, etc.) isdeterministic, 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 intraverse-clitocapability-package, outright (no alias, no deprecation warning for the oldagentverb).Governing Spec
Project Item
N/A — terminology-correction follow-up to the
traverse-framework/registrycapability-src/rename; not tracked against a Project 1 ticket.What Changed
code and example package manifests, not
traverse-contracts/capabilitycontract schemas.
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 bareCapabilityReference, sincetraverse-contracts::CapabilityReferencealready exists as a distinct type —
AgentWorkflowReference->PackageWorkflowReference,AgentSourceReference->PackageSourceReference,AgentBinaryReference->PackageBinaryReference,AgentConstraintDeclaration->PackageConstraintDeclaration,AgentModelDependency->PackageModelDependency,load_agent_package()->load_capability_package())."kind": "agent_package"is now"kind": "capability_package", updated in the CLI's validation code andin every checked-in manifest that declared it (10 manifests across
examples/, plus the executable-capability-package template).agent inspect/agent executeare nowcapability-package inspect/capability-package execute— see notebelow on why the family is
capability-packageand not barecapability.examples/agents/->examples/capabilities/(git-history-preservingmove), and its two manifests (
expedition-intent-agent,team-readiness-agent) had theirpackage_idshortened to drop thenow-redundant
-agentsuffix (e.g.expedition.planning.interpret-expedition-intent-agent->expedition.planning.interpret-expedition-intent) and theirsummarywording corrected from
"Governed WASM AI agent example for ..."to"Governed WASM capability example for ..."— these two are fixed-outputfixtures 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.
(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).agentCLI verb no longer exists at all — this isa breaking CLI change by design (explicit "no alias" instruction). Any
script or doc invoking
traverse-cli agent inspect|executeneeds to switchto
traverse-cli capability-package inspect|execute. Found and fixed everysuch 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, andscripts/ci/hello_world_example_smoke.sh) and would otherwise have brokenCI on merge.
Validation
scripts/ci/spec_alignment_check.shlocally against this PR body and
origin/main...HEAD; passes)capability_contractfiles changed)cargo test --workspace: every crate green,no test deleted — only renamed/updated to the new terminology)
cargo build --workspace,cargo clippy --workspace --all-targets -- -D warnings,bash scripts/ci/repository_checks.sh, and every CI-wired smoke scripttouched by this change, all run locally and green)
Notes
Why
capability-package, not barecapability, as the CLI family: theliteral instruction for this rename was
agent inspect/agent execute->capability inspect/capability execute. That would collide with anexisting, already-shipped (if not yet fully wired up)
capabilityfamily —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-packageas the familyname instead — consistent with the type-name resolution already given for
AgentCapabilityReference(kept distinct fromCapabilityReferencefor thesame reason), and consistent with the existing hyphenated-family precedent
(
browser-adapter).Other judgment calls made along the way:
"kind": "agent_package"->"capability_package"fix toall 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.
"agent package manifest..."->"capability package manifest...","agent source"/"agent binary"->"capability source"/"capability binary", plus thematching test assertions) for consistency with the new terminology.
"ai-agent"tag emitted by every capability-packageregistration to
"capability-package", and theartifact_ref/registered_at"agent-package:..."prefix to"capability-package:..."— same mislabel category as the manifest
summaryfix, just notenumerated explicitly in the task.
-agentsuffix from the executable-capability-packagetemplate's placeholder
package_id(
example.domain.replace-me-agent->example.domain.replace-me) and itssmoke-script assertion, mirroring the same rationale applied to the two
named example manifests.
agentverb orreferenced the old
examples/agents/path, even ones outside the literal--include="*.md" --include="*.rs"grep pattern given in the task — severalscripts/ci/*.shsmoke scripts anddocs/*.mdguides invoketraverse-cli agent inspect|executedirectly and would have been silentlybroken (or in the
app_ownership_boundary_smoke.sh/hello_world_example_smoke.shcase, would have broken real CI runs) if leftuntouched.
specs/017-ai-agent-packaging/,specs/governance/approved-specs.json,and the
AGENT_GOVERNING_SPECconstant /spec_refvalue incapability_packages.rscompletely untouched — these reference the actual,immutable, already-merged spec ID
017-ai-agent-packaging, which is ahistorical record, not a code identifier to rename.
-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
kindchanged, per the task's explicit scope(
package_id/summaryrewording was scoped to the twoexamples/agents/manifests only).