# Link Outputs

> >

- **Type:** Skill
- **Install:** `agentstack add skill-neuroanalytics-data-science-harness-link-outputs`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [neuroanalytics](https://agentstack.voostack.com/s/neuroanalytics)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [neuroanalytics](https://github.com/neuroanalytics)
- **Source:** https://github.com/neuroanalytics/data-science-harness/tree/main/plugins/disseminate/skills/link-outputs

## Install

```sh
agentstack add skill-neuroanalytics-data-science-harness-link-outputs
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Skill: link-outputs

Record how the project's **products relate to each other** (and to external identifiers), so the
dataset, paper, executable article, and agent bundle form **one linked compendium** rather than
scattered artifacts. The links are DataCite `RelatedIdentifier` relations, stored in each product's
`relations[]` in the ledger (Metadata) and making the multi-product set resolvable as a coherent
whole (Distributability). You own which links are meaningful; you delegate the ledger save to the
**datalad doer**.

Load `plugins/disseminate/references/datacite-relations.md` for the valid `relationType` terms and
their inverses before recording any relation.

## When to use
- Two or more products exist in `products[]` (via `analyze/manage-product`), typically after some
  are released (`disseminate/dataset-release`), and you want to record how they relate.
- Do NOT use to create products (`manage-product`) or to mint DOIs / cut versions
  (`dataset-release`). This skill only records relations between things that already exist.

## Steps
1. **Identify the relations** — for each link, determine the **source** product `id`, the
   `relationType` (from the reference — e.g. `IsSupplementedBy`, `IsSourceOf`, `IsDocumentedBy`),
   and the **target**: another product `id` in this ledger (internal) or an external resolvable
   DOI/URL. Ask the user for anything ambiguous; do not guess how products relate.
2. **Validate both ends** — the source must be a product in `products[]`. For an internal target,
   confirm the target `id` exists. Warn (do not block) if an internal target is not yet released
   (no DOI) — the `id` link still resolves once it is released; suggest `dataset-release` if the
   user wants a DOI now. Never fabricate a DOI for an unreleased target.
3. **Record the relation (and its inverse)** — upsert into the source product's `relations[]`:
   `{ relation: , target:  }` (per `docs/project-ledger.md`; do not
   duplicate an identical relation). For an **internal** target, also record the **inverse**
   relation on the target product (see the reference table) so the graph is consistent both ways.
   For an **external** target, record only the forward relation.
4. **(Optional) mirror external links** into `dataset_description.json` for the dataset product
   (e.g. a DOI the dataset `References`), keeping the ledger as the canonical record.
5. **Log it** — append `{ ts, op: link-outputs, stage: disseminate, note: "   (+inverse)", branch:  }`.
6. **Save** — delegate to the **datalad doer**: "save: `datalad save -m 'link-outputs:   '`."
7. **Report** — the relation graph (source → relation → target for each link), any targets still
   needing a DOI, and whether the compendium is now fully linked. When every product is released
   and linked, the multi-product research object is complete.

## Constraints
- Use only valid DataCite `relationType` terms (see the reference); record the inverse for internal
  product-to-product links.
- Never fabricate a DOI — link by product `id` (internal) or a real resolvable identifier only.
- `relations[]` is upserted per the ledger conventions (no duplicate `{relation,target}` pairs);
  keep `log:` append-only and the ledger schema-valid (`schemas/project.schema.json`).
- Relations describe existing products — this skill never creates, versions, or moves a product.
- Delegate every DataLad save to the datalad doer.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [neuroanalytics](https://github.com/neuroanalytics)
- **Source:** [neuroanalytics/data-science-harness](https://github.com/neuroanalytics/data-science-harness)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-neuroanalytics-data-science-harness-link-outputs
- Seller: https://agentstack.voostack.com/s/neuroanalytics
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
