# Datalad Addurls

> >

- **Type:** Skill
- **Install:** `agentstack add skill-neuroanalytics-data-science-harness-datalad-addurls`
- **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/datalad-cli/skills/datalad-addurls

## Install

```sh
agentstack add skill-neuroanalytics-data-science-harness-datalad-addurls
```

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

## About

# Skill: datalad-addurls

Bulk-populate a DataLad dataset by reading a URL manifest and adding each file as an
annexed entry with its download URL registered as the annex remote. DataLad will fetch
content on demand with `datalad get`.

## Steps

1. **Verify DataLad context** — check for `.datalad/` in the current directory or a
   parent:
   ```bash
   ls .datalad/ 2>/dev/null
   ```
   If no dataset is found, ask the user whether to initialize one first with `/datalad-init`.

2. **Identify the manifest file** — read from `$ARGUMENTS` or conversation context.
   The manifest is a file with one row per file to ingest. Supported formats:
   - **CSV / TSV**: columns delimited by comma or tab
   - **JSON / JSON-Lines**: array of objects or one object per line

   If no manifest is provided, ask the user to specify the file path.

3. **Inspect the manifest** — read the first few lines:
   ```bash
   head -5 
   ```
   Identify the column (or JSON key) that contains:
   - The **URL** to download from
   - The **local filename** (relative path inside the dataset)

   Ask the user to confirm or correct the column names if ambiguous.

4. **Gather parameters** — confirm:
   - `--url-format` (or positional URL column): the column/key holding the URL
   - `--filename-format` (or positional filename column): the column/key for the local path
   - `--jobs N`: parallel downloads (default 1; suggest 4–8 for large manifests)
   - `-m`: commit message for the resulting dataset commit (required; the auto-generated
     message is unhelpful — always ask the user for a meaningful message)
   - Whether to `--ifexists skip` (skip already-present files) or `overwrite`
   - `--missing-values`: how to handle optional URL fields that are absent in some rows
     (e.g., `--missing-values skip` to skip rows with missing URLs)

5. **Construct and show the command**:

   For CSV/TSV:
   ```bash
   datalad addurls \
     -m "" \
     [--jobs ] \
     [--ifexists skip] \
      \
     '' \
     ''
   ```

   For JSON (keys as format strings):
   ```bash
   datalad addurls \
     -m "" \
     --url-format '{url}' \
     --filename-format '{name}' \
     --jobs 4 \
     .json \
     '{url}' \
     '{name}'
   ```

   Display the full command and ask: > "Ready to execute? (yes / edit)"

6. **Execute and report**:
   - On **success**: report the number of files added, the commit hash created, and that
     content is pointer-only (not yet downloaded) — run `datalad get .` to fetch everything.
   - On **failure**: show the error. Common causes: malformed URLs in manifest, wrong
     column names, network errors. Suggest checking the manifest format.

7. **Post-ingestion suggestions**:
   - To download all content immediately: `datalad get .`
   - To download in parallel: `datalad get -J 8 .`
   - To verify: `datalad status` and `git annex whereis `

## Constraints

- Always inspect the manifest before building the command — never guess column names.
- Always show the full `datalad addurls` command before executing.
- Always require a meaningful `-m` message.
- Warn the user that `addurls` registers URLs as annex remotes but does **not** download
  content by default — files will be pointer-only until `datalad get` is run.
- For large manifests (>100 files), recommend `--jobs 4` or higher and note that the
  initial run creates the commit immediately; downloading happens separately.
- Never edit the manifest file — only read it to determine column names.

## 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-datalad-addurls
- 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%.
