# markdown-provenance
> Internal skill for uploading markdown to Arweave. Invoked only via /markdown-provenance command.
- Author: vilenarios
- Repository: vilenarios/markdown-provenance
- Version: 20260206191507
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-07
- Source: https://github.com/vilenarios/markdown-provenance
- Web: https://mule.run/skillshub/@@vilenarios/markdown-provenance~markdown-provenance:20260206191507
---
---
name: markdown-provenance
description: Internal skill for uploading markdown to Arweave. Invoked only via /markdown-provenance command.
---
Upload markdown content to Arweave's permanent, decentralized storage network with proper metadata tags. Returns a viewblock.io transaction URL and logs all uploads locally.
SECURITY: This skill should ONLY be invoked via the explicit /markdown-provenance slash command, never automatically based on conversation context.
1. Ensure MP_WALLET_PATH environment variable points to wallet.json
2. Run the upload script with the markdown file path
```bash
cd "${CLAUDE_PLUGIN_ROOT}"
npm run upload path/to/file.md
```
## Step 1: Confirm User Intent
Before uploading, confirm the user explicitly requested this via /markdown-provenance command. Never auto-trigger based on conversation about Arweave or permanent storage.
## Step 2: Check Environment
Verify MP_WALLET_PATH is set:
```bash
echo $MP_WALLET_PATH
```
If not set, guide user through wallet setup:
```bash
# Generate wallet
npx -y arweave wallet generate > wallet.json
# Set environment variable (add to ~/.zshrc or ~/.bashrc)
export MP_WALLET_PATH="/path/to/wallet.json"
export MP_AUTHOR="Your Name" # Optional
```
## Step 3: Upload File
Execute the upload script:
```bash
cd "${CLAUDE_PLUGIN_ROOT}"
npm run upload
```
## Step 4: Report Results
Share with user:
- ViewBlock URL for the transaction
- Direct Arweave URL
- IPFS CID of the content
- Confirmation that transaction was logged to ~/.markdown-provenance/transactions.jsonl
The following tags are automatically added to each upload:
| Tag | Value |
|-----|-------|
| Content-Type | text/markdown |
| App-Name | Markdown Provenance |
| App-Version | 0.0.1 |
| Type | Attestation |
| IPFS-CID | (calculated from content) |
| Author | (from MP_AUTHOR env var or --author flag, if set) |
| File-Name | (from --fileName flag, if set) |
| Source | (from --source flag, if set) |
- Transaction ID returned from Arweave
- viewblock.io URL displayed to user
- Transaction logged to ~/.markdown-provenance/transactions.jsonl
- All required tags applied (App-Name, App-Version, Content-Type, Type, IPFS-CID)
If MP_WALLET_PATH not set:
- Direct user to README.md wallet setup section
- Provide quick setup commands shown above
If wallet file not found:
- Verify path is correct
- Check file permissions
If upload fails with network error:
- Suggest retry
- Check internet connection
If upload fails with insufficient funds (files >100KB):
- Files under 100KB are FREE via Turbo
- For larger files, direct user to fund wallet with AR tokens
- Get wallet address: `npx arweave wallet address wallet.json`