Fedwiki To Skill
The fedwiki-to-skill skill converts a federated wiki page (page-json) into a Claude Code SKILL.md file. Author a skill as an ordinary wiki page, then export it to ~/.claude/skills/{slug}/SKILL.md where Claude Code can load and invoke it. It is the inverse direction of the document-plugin skill — here the page itself becomes the skill.
How It Works
A fedwiki page has a title and a story array of items, each with a type and a text. The converter maps each item type to markdown:
markdown→ kept as-is (already markdown)paragraph→ plain text paragraphcode→ fenced code blockhtml→ wrapped HTML blockreference,roster,assets→ omitted (navigation/structure, not instructions)
The page title derives the skill name (lowercase, hyphenated slug), used for the name: frontmatter field and the top # Heading of the body.
Skill Frontmatter
Every SKILL.md opens with YAML frontmatter. The description is the critical field — Claude Code uses it to decide when to auto-invoke the skill, so it must name the trigger phrases.
---
name: skill-name
description: One or two sentences describing WHEN to trigger — include the user phrases that should activate it.
---
Pull the description from the first paragraph or markdown item if it reads like a purpose statement; otherwise ask the user to supply one.
Output Location
Personal skills (available in all projects):
~/.claude/skills/{skill-name}/SKILL.md
Project skills (current project only):
.claude/skills/{skill-name}/SKILL.md
Default to ~/.claude/skills/ unless the user specifies otherwise.
Conversion Steps
- Read the source — a page-json path, or a slug + domain located under
~/Music/Guides/Private/{domain}/pages/{slug}(local) or~/Nextcloud/fedwiki/{domain}/pages/{slug}(public). - Extract the
titleandstory. - Build frontmatter —
namefrom the slug,descriptionfrom the first descriptive item (ask if unclear). - Convert story items following the mapping above, with a blank line between items.
- Write to
~/.claude/skills/{slug}/SKILL.md, creating the directory if needed. - Confirm — show the output path and the first lines of the generated file.
What to Watch Out For
referenceitems are navigation — omit unless the user wants them kept as "see also" notes.assetsandrosteritems — always omit; they are structural wiki UI elements.- Escaped characters — fedwiki
textfields may carry escaped newlines or quotes; unescape them when writing markdown. - Wikilinks
[[Page Name]]— won't resolve inside a skill; convert to plain text or backticked names. - Long pages — many items make a large skill; consider splitting into focused skills.
- Missing description — prompt the user before writing if no clear purpose statement exists.
- Existing skill — if the target
SKILL.mdalready exists, show a diff and ask before overwriting.
Note for the agentprivacy guide/ layer
When materializing into agentprivacy-skills/.../guide/, the agentprivacy framing adds: full metadata frontmatter (category: guide, layer: onboarding, keeper: librarian), an upstream: provenance field, and a body footer crediting the source page. The skills are vendored + re-framed — the wiki remains the source of truth; the materialized file is a fork that carries its lineage.
Related Skills
agentprivacy-wiki-page— create the page-json this skill consumesagentprivacy-wiki-skill-library— the convention that "…Skill" pages are a forkable libraryagentprivacy-wiki-document-plugin— document a plugin instead of exporting a skillagentprivacy-wiki-create-plugin— scaffold a new fedwiki plugin
Verify: agentprivacy.ai · kept by the Librarian 🗃️ in the Tower's Wikis (the git-less onboarding layer) Upstream: skill.fedwiki.club/fedwiki-to-skill — vendored + re-framed; not original agentprivacy authorship