add-dep
Vet a new or changed third-party dependency for license, provenance, and supply-chain risk before any install runs.
What it does
Section titled “What it does”Gates a new or changed third-party dependency through review before anything installs. Naming the
package here — with a version if you have one, or without one to have the reviewer evaluate the
latest available — hands the decision to the dependency-reviewer agent, which reads
.codearbiter/security-controls.md for the allowed/denied license list and supply-chain policy,
and .codearbiter/tech-stack.md for stack fit and the project’s dependency manager.
Once the agent clears the package, the install command is surfaced for confirmation rather than run silently, and the resulting lock-file update ships in the same commit as the manifest edit, so the two never drift apart.
This gate is orchestrator-enforced, not hook-enforced: there’s no pre-bash rule blocking a bare install command run outside this channel the way the crypto/secret gate blocks a raw shell command. The discipline depends on actually routing installs through here.
/ca:add-dep <package[@version]>Version is optional; omitting it evaluates the latest available release.
Example
Section titled “Example”> /ca:add-dep left-pad@1.3.0
dependency-reviewer: left-pad@1.3.0 license: MIT (allowed) provenance: npm registry, 6M+ weekly downloads, maintained supply-chain: no known advisories
Cleared. Install command ready: npm install left-pad@1.3.0Run it? (lock-file change will be committed alongside package.json)When to reach for it
Section titled “When to reach for it”Removing a dependency, or a code change that happens to bump one, goes through /ca:fix or
/ca:feature instead (the manifest change is reviewed at /ca:pr); asking about a package
without installing it is /ca:btw’s job.
| Gate | When | Effect |
|---|---|---|
| dependency review | before any install runs | the dependency-reviewer agent must clear the package first — a denied license or unresolved supply-chain concern blocks the install |
Related
Section titled “Related”Source
Section titled “Source”Source — plugins/ca/commands/add-dep.md (v2.9.1)
---description: Vet a new or changed third-party dependency for license, provenance, and supply-chain risk before any install runs.argument-hint: "<package[@version]>"---
# /ca:add-dep — dependency review
Gate a new or changed third-party dependency through review before it lands. When you route throughthis command, the orchestrator runs no install until the `dependency-reviewer` agent clears thepackage. Specify the exact version if you have one; without one, the reviewer evaluates the latestavailable version.
## Routes to
The `dependency-reviewer` agent (`${CLAUDE_PLUGIN_ROOT}/agents/dependency-reviewer.md`). The agentreads `${CLAUDE_PROJECT_DIR}/.codearbiter/security-controls.md` (allowed/denied licenses, provenanceand supply-chain policy) and `${CLAUDE_PROJECT_DIR}/.codearbiter/tech-stack.md` (stack fit, dependencymanager) to judge the package.
After the agent clears it, the orchestrator surfaces the install command for confirmation. The lockfile change is committed alongside the manifest change — never one without the other.
## When NOT to use
- Removing a dependency → `/ca:fix` or `/ca:feature` with the change described.- Updating an existing dependency as part of a code change → `/ca:feature` / `/ca:fix`; manifest changes route to review at `/ca:pr`.- Asking about a package without installing it → `/ca:btw`.
## Hard gate
MUST NOT install before `dependency-reviewer` clears the package. BLOCK on a denied license or anyunresolved supply-chain or provenance concern.
This gate is **orchestrator-enforced, not hook-enforced**: unlike the crypto/secret gate(`pre-bash.py` H-09b/H-10b), there is no pre-bash rule that blocks a bare `npm`/`pip`/`yarn`/`pnpminstall` typed outside this command. The discipline depends on routing installs through `/ca:add-dep`.A hook-level install block (parallel to the security-gate marker) would be a stronger posture, but is adeliberate behavior change — a possible future enhancement, not the current contract.