{"title":"Fedwiki Claude Skills","story":[{"type":"markdown","id":"cd57298734c8f0f4","text":"Federated wiki pages can become Claude skills. A page on `skill.fedwiki.club` whose title ends in the word **Skill** is treated as a Claude skill — its story items become the instructions Claude follows. This turns the fedwiki farm into a living, forkable, annotatable skill library."},{"type":"markdown","id":"751ade2a5c28f110","text":"## How It Works"},{"type":"markdown","id":"5c02a8f8f8ce9218","text":"A meta-skill called `fedwiki-skill` intercepts requests that match a skill page on `skill.fedwiki.club`:\n\n1. Claude receives a user request\n2. The meta-skill searches `skill.fedwiki.club` for pages ending in **Skill** whose description matches\n3. It fetches the page JSON from `http://skill.fedwiki.club.localhost/{page-slug}.json`\n4. It parses the story items in order — `markdown` and `paragraph` items become instructions\n5. Claude executes those instructions against the user's request"},{"type":"markdown","id":"5d0eee4fbddbf406","text":"## Why Fedwiki is a Good Fit"},{"type":"markdown","id":"8062e51fef3ae71e","text":"Fedwiki's architecture maps elegantly onto a skill library:\n\n- **Fork model** — anyone can fork a skill page, adapt it, and host their own version. Attribution is built in via the journal.\n- **Federation** — skill pages can link to and reference other skills across the federation. A skill can build on another.\n- **Literate** — the skill IS the documentation. Explanatory text, examples, and executable instructions live together on the same page.\n- **Versioning** — the journal tracks every change. You can see how a skill evolved.\n- **Discoverability** — browsing `skill.fedwiki.club` shows all available skills as readable wiki pages.\n- **Community** — the fork model enables collective improvement, just as fedwiki enables collective knowledge building."},{"type":"markdown","id":"4e923a01d518fc52","text":"## Security Concerns"},{"type":"markdown","id":"91c7aee7ff410893","text":"### Prompt Injection (primary risk)\n\nStory items become Claude's instructions. A malicious or compromised page could instruct Claude to exfiltrate data, delete files, or perform harmful actions.\n\n**Mitigations:**\n- Only parse `markdown` and `paragraph` item types as instructions — never execute `code` blocks directly\n- Show the user the source page URL before executing any remotely-sourced skill\n- Require explicit confirmation before running a skill for the first time"},{"type":"markdown","id":"182b4f035f3a0d48","text":"### Domain Trust\n\nRestricting to `skill.fedwiki.club` creates a trust boundary — but a compromised server compromises all skills.\n\n**Mitigation:** Serve skills from `localhost` only — the local wiki farm mirrors `skill.fedwiki.club` via Nextcloud sync. Claude fetches from `http://skill.fedwiki.club.localhost/` not the remote server. Skills only update when you consciously sync."},{"type":"markdown","id":"9e2397c2201a7924","text":"### Fork Contamination\n\nA trusted skill page may contain story items forked from any site in the federation — including malicious ones.\n\n**Mitigation:** Inspect the journal — each item records its origin site. Warn if items originate outside a whitelist of trusted domains."},{"type":"markdown","id":"125a46a2b7076f3e","text":"### Page Naming\n\nThe **Skill** suffix is a weak gate — anyone with write access can create a matching page.\n\n**Mitigation:** Require a curated index page on `skill.fedwiki.club` — only pages listed there are valid skills. Or require a `skill-meta` story item as an explicit marker."},{"type":"markdown","id":"7fb2b44cbbe706ad","text":"## Recommended Architecture"},{"type":"code","id":"9e456e78b9f5b317","text":"skill.fedwiki.club              <- canonical remote skill library\n        ↓ Nextcloud sync\n~/Nextcloud/fedwiki/skill.fedwiki.club/pages/\n        ↓ served locally by wiki farm\nhttp://skill.fedwiki.club.localhost/{slug}.json\n        ↑ Claude fetches from here (never remote directly)"},{"type":"markdown","id":"dd13fa4eef2d4044","text":"## Advantages Over Static SKILL.md Files"},{"type":"markdown","id":"b4000a2a46cb5335","text":"| | SKILL.md | Fedwiki Skill |\n|--|---------|--------------|\n| Authoring | Text editor | Wiki browser |\n| Sharing | Git / file copy | Fork a page |\n| Attribution | None built in | Journal tracks origin |\n| Documentation | Separate | Same page |\n| Discoverability | File system | Browsable wiki |\n| Community | Pull requests | Forking |\n| Versioning | Git | Journal |"},{"type":"markdown","id":"26960868ab6098ae","text":"## Open Questions\n\n- Should skill pages be validated before use — a trusted signature or hash?\n- Should Claude cache skill pages locally as generated `SKILL.md` files for speed?\n- How do we handle versioning — pin a skill to a specific journal date?\n- Should a skills index page act as a curated allowlist?\n- Can a skill page link to sub-skills — composing complex behaviour from simpler pages?"},{"type":"markdown","id":"0456432f304a624f","text":"# Assets"},{"type":"assets","id":"a3f12b9c55e78901","text":"fedwiki-claude-skills"}],"journal":[{"type":"create","item":{"title":"Fedwiki Claude Skills","story":[]},"date":1780787605000},{"type":"fork","site":"localhost","date":1780854470974}]}