Build a downstream APM¶
Choose the fixed-graph example when you publish RDF with the package. Choose the SPARQL-endpoint example when the graph is already served remotely. Both select the same four upstream skills; only the fixed-graph example packages RDF and an optional custom query.
The fixed-graph downstream example
is an installable APM package, not a fork of the six skills. It combines a synthetic,
already-published TriG graph and a project-owned profile inside its own Agent Skill,
an APM dependency selecting four upstream skills, and project-owned query files. Its
SKILL.md tells an installed agent which graph and profile to use; each owner command
still receives those choices explicitly.
The graph, profile and query are under the skill because APM deploys the declared
skills/fixed-graph-demo/ subtree. Root-level sibling asset folders would not travel
with this package into the consuming project.
| In the downstream package | Purpose |
|---|---|
apm.yml |
Includes fixed-graph-demo and selects linked-archi-analyse, linked-archi-connect, linked-archi-profile and linked-archi-query as dependencies. |
skills/fixed-graph-demo/SKILL.md |
Instructions that travel with the downstream package. |
skills/fixed-graph-demo/assets/data/architecture.trig |
The fixed graph; this example does not acquire or convert sources. |
skills/fixed-graph-demo/assets/profiles/demo.yaml |
A child of linked-archi-default that binds the graph's label and owner predicates. |
skills/fixed-graph-demo/assets/queries/ |
An explicitly selected project query, separate from the upstream query skill. |
No linked-archi-source is needed when the graph has already been published. No
linked-archi-validate is needed unless the task includes SHACL validation. Query execution
does require connect and profile; analyse investigates and orchestrates but does not become
another executor. Verify the custom profile against the fixed graph before treating an empty
query result as absence. The small synthetic graph intentionally produces warnings for claims it
cannot cover, but its profile verification has no errors.
The catalogue boundary¶
--catalog is not needed to compose a downstream APM, select skills, use a fixed graph,
or load a custom profile with bundled templates. It is needed only to register and run
the project's own named query through linked-archi-query.
The example's apm.yml pins v0.8.0, which includes explicit catalogue overlays.
Publish that upstream tag before installing the example from a separate project.
After installing the example into a consumer project with the agent-skills
target, the query owner can inspect and run the project entry without editing
its bundled catalog.json:
python3 .agents/skills/linked-archi-query/scripts/la-query catalog show demo/accountability \
--catalog .agents/skills/fixed-graph-demo/assets/queries/catalog.json \
--profile .agents/skills/fixed-graph-demo/assets/profiles/demo.yaml
python3 .agents/skills/linked-archi-query/scripts/la-query query run demo/accountability \
--catalog .agents/skills/fixed-graph-demo/assets/queries/catalog.json \
--profile .agents/skills/fixed-graph-demo/assets/profiles/demo.yaml \
--data .agents/skills/fixed-graph-demo/assets/data/architecture.trig \
--set FOCUS_IRI=https://example.org/fixed-graph/catalog/element/payments-service
The explicit catalogue path is a trust decision. It is never found automatically, cannot replace bundled template names, and is resolved only within its own directory. External templates still pass the query owner's profile gates and read-only checks and produce the same evidence envelope. The consumer must test its own queries against its own graph; the bundled fixture suite cannot prove their meaning. Keep endpoint credentials read-only as well.
A catalogue entry makes a query discoverable and executable by linked-archi-query; it does
not add an analysis pattern or make linked-archi-analyse plan choose that query. The
analyst can select it explicitly while investigating a question. See the
query skill and
profile adaptation guide for the two separate extension contracts.
Endpoint variant¶
The endpoint example ships its own skill instructions and profile, but no TriG file,
catalogue or credentials. Its consumer supplies --endpoint URL instead of --data
on each connect, profile and query command. The URL is an explicit target, not an
environment fallback in the CLI. LINKED_ARCHI_SPARQL_TOKEN supplies an optional
Bearer token; credentials must have server-side read-only permissions.
connect --endpoint checks configuration and describes the adapter, but does not
contact the service. Run la-profile verify --endpoint against the actual graph
before treating an empty query result as absence. Use HTTPS, configure a server-side
timeout and result cap, and record an external dataset revision if reproducibility
matters: the service may change without the APM package changing. The endpoint
example uses bundled query templates and therefore needs no --catalog, although
it also pins v0.8.0 for consistency with the fixed-graph example.