rickmanelius/markdown-provenance
Overview
This skill uploads markdown files to Arweave to establish strong, verifiable provenance for content. It fingerprints the markdown (IPFS CID), tags the Arweave transaction with required metadata, and returns a viewblock.io transaction URL while logging each upload locally. The skill is invoked only via the explicit /markdown-provenance slash command and will not run automatically.
How this skill works
You invoke the skill with /markdown-provenance and provide a markdown file path. The tool checks the MP_WALLET_PATH environment variable, computes an IPFS CID for the file, attaches mandatory tags (Content-Type, App-Name, App-Version, Type, IPFS-CID, etc.), and submits the transaction to Arweave. On success it returns the Arweave transaction ID, viewblock.io URL, direct Arweave URL, the IPFS CID, and appends a record to ~/.markdown-provenance/transactions.jsonl.
When to use it
- When you need a permanent, tamper-evident record of a markdown file.
- When you want an IPFS CID and Arweave transaction for citation or archival.
- When you require consistent metadata tags for provenance and auditing.
- When preparing content that must be logged locally for compliance.
Best practices
- Always invoke via the explicit /markdown-provenance slash command; never rely on implicit triggers.
- Set MP_WALLET_PATH to point to a valid wallet.json and optionally set MP_AUTHOR for the Author tag.
- Keep files under 100KB to use Turbo free uploads; fund the wallet for larger files.
- Verify ~/.markdown-provenance/transactions.jsonl is writable so uploads are logged reliably.
- Include --fileName and --source flags when relevant to populate File-Name and Source tags.
Example use cases
- Publishing research notes or drafts with a permanent provenance record and timestamp.
- Archiving policy documents or agreements where immutable attribution is required.
- Creating a public proof of authorship for a blog post draft using IPFS and Arweave.
- Logging changes to documentation in a tamper-evident way for audits.
FAQ
Set MP_WALLET_PATH to the wallet.json path. Optionally set MP_AUTHOR to populate the Author tag.
What if the upload fails due to size or funds?
Files under 100KB are free via Turbo. For larger files, fund the wallet with AR tokens and retry. Use npx arweave wallet address wallet.json to get the wallet address.