datajack
The command-line surface of the
skillwirepackage: askillmodule of five routes that anymodular_cli_sdkCLI mounts to deploy agent skills into AI coding hosts.
In Shadowrun a datajack is the port through which a person connects to a device. The wire moves the skills; this is where a human plugs in to govern it.
Mount it
cli.module('skill', (m) => buildSkillModule(
m,
consumer: 'macss', // written into every ledger row this CLI creates
workspace: workspace,
catalogue: catalogue,
));
That is the whole integration. consumer is what makes a shared machine work:
the ledger records who deployed what, so a second CLI meeting your artifact
reports it as owned rather than overwriting it.
The five routes
| Route | Kind | |
|---|---|---|
skill list |
Query | Catalogue and status in one table, with what else can see it |
skill deploy |
Command | Reconcile a host toward the skills this release ships |
skill remove |
Command | Reconcile away from them, touching only what this consumer deployed |
skill doctor |
Query | What is deployed, who owns it, what has drifted |
skill validate |
Query | Conformance to the Agent Skills specification |
Every Command requires --plan or --apply; neither is a default. --host and
--scope are required and have no defaults either.
Why a separate package
Because it is irreducibly a command-line surface, and the domain is not. It
declares --host and --scope, maps failures onto exit codes, and renders an
aligned table for a terminal — none of which survives a move to another
transport, and none of which belongs in a library about reconciling directories.
Keeping them apart also keeps skillwire off the SDK's release cadence: were
the domain to depend on modular_cli_sdk, it would become the gate through
which every consumer reaches a new SDK version.
See ADR 0005.
Built with MACSS.
Libraries
- datajack
- The command-line surface of the
skillwirepackage.