> [Maxim](https://wikilayer.org/smee-again) / [Wikilayer authoring guide](https://wikilayer.org/smee-again/wikilayer-howto) / Advanced usage

# Advanced usage

**Contents:**

- [Append `.md` to a URL for the stitched-markdown view](#append-md-to-a-url-for-the-stitched-markdown-view)
- [Tags group nodes that don't share a parent](#tags-group-nodes-that-dont-share-a-parent)
- [Claude Code skills](#claude-code-skills)
  - [Install](#install)
  - [Update](#update)
  - [lint](#lint)
  - [review](#review)
  - [translations](#translations)

Optional power-user surface. None of this is required for everyday authoring; it is here for agents and humans who want the stitched-markdown view, tag-based retrieval, or the Claude Code review skills.

## Append `.md` to a URL for the stitched-markdown view

Append `.md` to any public wiki or page URL to fetch the stitched [markdown](page:4402): breadcrumbs, an auto-TOC over child blocks, and the body with each block as h2/h3 and so on. Add `?nav=false` to strip the breadcrumbs and auto-TOC and get just the bodies, which is what a re-reading agent usually wants. Useful before a structural edit (does the outline still read?) and after one (did the patch land where I think it did?). The HTML twin advertises the markdown view via `<link rel="alternate" type="text/markdown">`, so external agents discover it without being told.

Private wikis don't expose `.md`: agents can't authenticate, and a 404 is the only honest answer.

## Tags group nodes that don't share a parent

A node's place in the tree is one axis; a tag is another. Tags are case-insensitive labels you attach to mark a set that cuts across the hierarchy: every block that is required reading, every page still in draft, every entry that needs a source.

Attach them in `create_nodes` (the `tags` field) or across existing nodes with `tag_nodes`. Pull the whole set back with `search_nodes` passing `tag` and no query, which returns it in tree order; add a query to search within the tag. `update_tag` renames or recolours a label, `delete_tag` removes it.

## Claude Code skills

Three ready-made Claude Code skills for a wikilayer wiki. `lint` and `review` check it against [the agent rules](page:4401) and [the writing style](page:2992) and only report findings as recommendations; `translations` fills and links the missing translations, the one skill that writes to the wiki. Source: [github.com/wikilayer/skills](https://github.com/wikilayer/skills).

### Install

Install it as a plugin so the commands persist across every session.

From a terminal:

```
claude plugin marketplace add wikilayer/skills
claude plugin install wikilayer@wikilayer
```

Or from inside a running Claude Code session, with the same subcommands under `/plugin`:

```
/plugin marketplace add wikilayer/skills
/plugin install wikilayer@wikilayer
```

Either way the slash commands `/wikilayer:lint`, `/wikilayer:review`, and `/wikilayer:translations` become available.

For local development on the skills, skip the install and point Claude at a clone on launch: `git clone git@github.com:wikilayer/skills.git && claude --plugin-dir ./skills`. After editing a skill, `/reload-plugins` picks it up without a restart.

### Update

Two steps, because an update first pulls the latest from GitHub into the marketplace clone and then reinstalls into a cache every session shares.

From a terminal:

```
claude plugin marketplace update wikilayer
claude plugin update wikilayer@wikilayer
```

The full `wikilayer@wikilayer` id is required on the second command; the bare `wikilayer` reports "Plugin not found". The same two run in a session under `/plugin`.

The cache is global, so once it is updated every new session loads the fresh version automatically. An already-open session still holds the old one: `/reload-plugins` swaps it in without a restart. That command only re-reads the cache, so it does nothing until the update above has run; reloading before the update just reloads the stale version.

### lint

Micro pass: em-dash overuse, walls of text, opaque titles, invented navigation, same-page jumps, block bloat, tombstone blocks, editorial date stamps, plus orphan-page detection at wiki level. Full rule list at [skills/lint/SKILL.md](https://github.com/wikilayer/skills/blob/main/skills/lint/SKILL.md).

Use:

```
/wikilayer:lint <wiki-id-or-url>
```

### review

Macro pass: heading coherence, reading rhythm, cross-page contradictions, missed DRY, sibling clustering. Full category list at [skills/review/SKILL.md](https://github.com/wikilayer/skills/blob/main/skills/review/SKILL.md).

Use:

```
/wikilayer:review <wiki-id-or-url>
```

### translations

Cross-language pass: audit translation parity (missing translations, structural divergence, orphan or stale nodes), then translate and link the genuine gaps, leaving `i18n-exempt` nodes alone. Unlike `lint` and `review`, it writes to the wiki. Full procedure at [skills/translations/SKILL.md](https://github.com/wikilayer/skills/blob/main/skills/translations/SKILL.md).

Use:

```
/wikilayer:translations <wiki-id-or-url>
```
