CLI reference¶
Six executables, one per skill. Each is invoked as python3 <skill>/scripts/<name>; the paths below
are relative to the installed skill directory.
Every skill has a doctor that reports where it is, which companions it resolved and what is
missing. Companion resolution is $LINKED_ARCHI_SKILLS_DIR (authoritative), then the sibling
directory, then PATH — never a filesystem search.
la-source¶
la-source url <uri> [policy]
la-source git <repository> --ref REV --path PATH [--path PATH ...] [--sha256 [PATH=]DIGEST ...] [policy]
la-source gitlab-mcp --project ID --ref REV --path PATH --sha256 DIGEST [--server-id ID] [policy]
la-source complete <request_id> --reported-commit SHA [--cache-dir DIR] [--json]
la-source doctor [--cache-dir DIR]
la-source _machine {resolve,complete}
Policy flags, shared by url, git and gitlab-mcp: --cache-dir DIR, --timeout-ms MS (30000),
--max-bytes N (104857600), --allowed-host HOST (repeatable), --allow-private-network,
--allow-ssh, --offline, --lenient, --json.
url also takes --format FMT, --sha256 DIGEST, --token-env VAR. Formats: json-ld, n-quads,
n-triples, n3, rdf-xml, trig, turtle.
la-connect¶
la-connect datasets [directory] [--include-fixtures] [--no-git] [--search-dir DIR ...]
[--max-depth N] [--extension EXT ...]
la-connect connect <target>
la-connect capabilities --endpoint URL [--timeout-ms MS]
la-connect doctor
la-connect _machine {execute,execute-many,capabilities}
la-profile¶
la-profile list
la-profile show [--profile NAME_OR_PATH] [--json]
la-profile resolve [--profile NAME_OR_PATH]
la-profile verify [--profile NAME_OR_PATH] <target> [--all] [--emit-fix] [--probe-endpoint]
la-profile recommend <target> [--probe-endpoint]
la-profile derive <name> [--type-mapping FILE] [--metamodel FILE] [--base-iri IRI]
[--notation SLUG] [--extends PROFILE] [-o FILE]
la-profile doctor
la-profile _machine resolve
--probe-endpoint requires --endpoint and adds one explicit known-answer triple-term
syntax/JSON check before the normal profile probe batch. It does not assert full standards
conformance or dataset coverage. Without it, remote discovery remains conservative.
la-connect capabilities returns a schema-version-1 JSON report with triple_terms: true
only after that check succeeds; ordinary queries and constructor calls never probe implicitly.
la-query¶
la-query catalog list [--profile P] [--catalog PATH ...] [--why] [-o FILE]
la-query catalog show <template> [--profile P] [--catalog PATH ...] [--source] [-o FILE]
la-query catalog dump [--profile P] [--template NAME ...] [--stage STAGE ...]
[--notation NAME ...] [--catalog PATH ...] [-o FILE]
la-query query render <template> [--profile P] [--catalog PATH ...] [--set NAME=VALUE ...] [--force] [-o FILE]
la-query query run <template> [--profile P] [--catalog PATH ...] <target> [--set NAME=VALUE ...]
[--format {tsv,md,json}] [--json] [--limit N] [-o FILE] [--preview]
la-query query literal (--query SPARQL | --file FILE) [--profile P] <target>
[--format ...] [--json] [--limit N] [-o FILE] [--preview]
la-query query batch <manifest> [--profile P] [--catalog PATH ...] <target> [-o FILE] [--preview] [--limit N]
la-query lint [file] [--query SPARQL] [--profile P] <target> [-o FILE]
la-query doctor [-o FILE]
la-query _machine lint
catalog dump filters are repeatable: values within one filter kind form a union, and different
kinds intersect. Select only relevant templates to reduce output while retaining their complete
metadata, profile refusals and caveats. The unfiltered dump and schema_version: 1 payload remain
unchanged. Unknown template, stage or notation values fail explicitly.
--catalog PATH explicitly loads an additional trusted JSON catalogue, with template files
relative to that catalogue. It is repeatable, never discovered automatically, and cannot
replace bundled names. Pass it to each catalogue, render, run or batch invocation that uses
an external template. It does not apply to query literal or alter analyse pattern routing.
For query run and literal, --preview requires -o FILE and a positive --limit; invalid
combinations fail before execution. The file remains the complete JSON envelope; stdout also gets
a bounded preview, including warnings, truncation and citation. Preview presentation uses TSV
regardless of --format or --json. --limit defaults to 100 displayed rows (CONSTRUCT previews:
physical output lines). It does not reduce query cost, change the query's own LIMIT, or truncate
the saved envelope.
For query batch, manifest out entries save per-query JSON envelopes; batch -o FILE saves the
run summary. --preview prints each result's bounded preview to stdout whether the summary is
saved or printed. It does not require batch -o. Without --preview, existing output is unchanged.
la-validate¶
la-validate run --data FILE --shapes FILE [--ontology FILE ...] [--no-rdfs-reasoning]
[--data-format FMT] [-r FILE] [--json] [--limit N]
la-validate report <file> [--data-format FMT] [--json] [--limit N]
la-validate doctor
la-validate _machine {validate,report}
--data and --shapes are both required and both repeatable.
la-analyse¶
la-analyse plan [--question TEXT] [--mode PATTERN] [--list-patterns] [--profile P]
[--data FILE ...] [--endpoint URL] [--budget N] [--steps-dir DIR]
[--definitions] [--batch-dir DIR] [--json] [-o FILE]
la-analyse bundle --step FILE [--step FILE ...] [--question TEXT] [--findings FILE]
[--dataset-revision REV] [--markdown] [-o FILE]
la-analyse render --bundle FILE [-o FILE]
la-analyse doctor
la-analyse _machine {plan,bundle}
--step is required and order-significant.
Analyse owns question investigation and orchestration; plan opens no dataset and executes no
queries. Definition questions request term definitions automatically; --definitions also includes
them for other questions. --batch-dir DIR writes query-owned batch manifests for eligible
independent steps with concrete parameters. Follow each group's prerequisite and evidence-review
boundaries, and run the batch instead of its individual commands. Generated commands save complete
envelopes and print bounded previews; each query still counts toward the investigation budget.
The target flags¶
Shared by la-connect connect, la-profile verify|recommend, la-query query run|literal|batch,
la-query lint:
| Flag | Default | Notes |
|---|---|---|
--data FILE |
[] |
Repeatable. Files merge into one dataset with one identity. |
--endpoint URL |
— | Not combinable with --data. |
--timeout-ms MS |
30000 |
Ignored for local files. |
--lenient |
off | Relaxes RDF parsing only. |
--store {memory,cached,readonly,refresh} |
memory |
Not on la-analyse, which opens nothing. |
Environment variables¶
| Variable | Read by | Effect |
|---|---|---|
LINKED_ARCHI_DATA |
connect, profile, query | The dataset when no --data/--endpoint. os.pathsep-separated. |
LINKED_ARCHI_SKILLS_DIR |
all | Authoritative companion root. When set, never falls back. |
LINKED_ARCHI_STORE |
connect, query | Store mode when --store is unset. |
LINKED_ARCHI_STORE_CACHE |
connect | Store cache root. Falls back to $XDG_CACHE_HOME. |
LINKED_ARCHI_STORE_KEEP |
connect | Stores kept per root. Default 3. |
LINKED_ARCHI_STORE_MAX_BYTES |
connect | Byte budget for eviction. |
LINKED_ARCHI_SPARQL_TOKEN |
connect | Bearer token for an endpoint. |
LINKED_ARCHI_SOURCE_CACHE |
source | Source cache root. |
LINKED_ARCHI_STATE_DIR |
profile, analyse | Verification markers. Default ~/.cache/linked-archi/verified. |
LINKED_ARCHI_LOCAL_DEADLINE_S |
profile, query | Seconds ceiling on local execution. Default 300. none/0/off opts out. |
LINKED_ARCHI_LOCAL_MAX_RSS_MB |
query | Memory ceiling, scaled by input size. |
The machine contracts¶
Every skill exposes _machine, which reads one JSON object on stdin and writes one on stdout, with
diagnostics on stderr. schema_version is checked exactly — a mismatch is refused rather than
guessed at. These are how the skills call each other, and they are documented rather than private:
la-profile reaches la-connect _machine execute-many to run a probe batch in one round trip, and
la-connect reaches la-query _machine lint to enforce read-only at the boundary.