Skip to content
Back to skills

Commune Write

ASecurity

Grill, draft and refine one Commune note from a dump. Use when a dumps/*.connect.md exists with no answered round (ask the round), when an answers file has a new answered round (draft or refine), or when the user gives a one-sentence correction on a drafted note. Requires the wiki's installed commune CLI; writes into the real note file plus dumps/<slug>.answers.md and dumps/<slug>.review.html, then hands off to commune-ship.

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
documentationgonodegit

Works with

  • cli

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add dmthepm/commune-wiki --skill commune-write --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commune Write?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commune Write
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dmthepm-commune-write/badge)](https://www.skillsdirectory.com/skills/dmthepm-commune-write)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: commune-write
description: Grill, draft and refine one Commune note from a dump. Use when a dumps/*.connect.md exists with no answered round (ask the round), when an answers file has a new answered round (draft or refine), or when the user gives a one-sentence correction on a drafted note. Requires the wiki's installed commune CLI; writes into the real note file plus dumps/<slug>.answers.md and dumps/<slug>.review.html, then hands off to commune-ship.
metadata:
  version: "0.1.0"
  commune-schema: "1"
---

# commune-write

Grill, draft, refine. One note per run. The draft goes into the real file in
`src/content/`; the worktree is the staging area.

Run every command from the wiki root. Pass no `--root`. `$COMMUNE` is the path
step 1 prints. Handoff file shapes: `references/handoffs.md`.

## Rules

- Use the target note's title verbatim in `[[Title]]`, with no display text
  or pipe. Rewrite the sentence around the title.

- `WRITING.md` at the wiki root decides every sentence and every frontmatter
  block. Read it first and read nothing else about voice. If it is missing,
  stop and say: *"Run `commune-setup` first — this wiki has no `WRITING.md`."*
- A note the dump means to publish gets `visibility: public` **before** you run
  `check`. Notes default to `private`, and the graph cannot see a private note:
  `check`, `related`, `gate` and `update` all skip it, so a green `check` on a
  private draft proves nothing. When `publish: false`, say in one line that the
  note gets no graph verification, and do not pretend otherwise.
- Candidates in `.connect.md` are offers. A mention the draft ignores is not a
  miss, and you never link something to raise a number.
- Rename or move a note only with `$COMMUNE rename <from> <to>`, never `mv`,
  `git mv`, `obsidian rename` or a file tool. Those leave every `[[link]]` to
  the old name broken; `rename` rewrites them and keeps the URL. Add
  `--dry-run` first.
- Never install anything. Do not commit the draft; `commune-ship` commits it.
  The one exception is refine, which commits each correction on its own so a
  verdict can be reverted alone (`references/refine.md`).

## Steps

1. **Preflight and read.** Run `node scripts/preflight.mjs` → `$COMMUNE`; stop
   on exit 1 and show its line. Read, in order: `WRITING.md`, the dump file,
   `dumps/<slug>.connect.md`, and `dumps/<slug>.answers.md` if it exists. Pipe
   every `--json` payload through `node scripts/preflight.mjs --schema`.

2. **Grill** — when no answered round exists. Follow `references/grill.md`.
   Output: `dumps/<slug>.answers.md` with `## Settled` and
   `## Round N — questions`. Print the path and stop. Do not draft in the same
   turn.

3. **Draft** — when the newest round has answers under it. Output: the file at
   `target:` in the dump, or a new file in `src/content/<collection>/`, named
   the way that collection already names its files — read one before you
   guess. Write `## Round N — decisions extracted` into
   `.answers.md` first, then apply those decisions as a delta to the base named
   by `base:`. Frontmatter comes from `WRITING.md`'s block for that collection,
   keys in its order. Append every file you touched to `files:` in
   `.connect.md`.

4. **Verify.** Run `$COMMUNE check --json` and compare finding identities `(rule, file, target)`,
   `null` for an absent target, against `baseline.findings` in `.connect.md`. Any **new** finding is yours to fix before you
   show anything; pre-existing findings are the baseline and are not. Then
   `$COMMUNE graph related <target> --json` for what the note now links.

5. **Render the side by side.** Run:
   `node scripts/review.mjs <base-ref> <target> --connect dumps/<slug>.connect.md --answers dumps/<slug>.answers.md --out dumps/<slug>.review.html`
   Pass `--out`: the script's default is named after the note, not the dump. Print that path, then a short table of
   what changed in the graph — links added, links dropped, and for each dropped
   link what `at_risk` says it costs.

6. **Hand off.** Say: *"Answer in `dumps/<slug>.answers.md`, give me a
   one-sentence correction, or say ship."* On a correction, follow
   `references/refine.md` — same skill, next round. On "ship", say:
   *"Run `commune-ship`."*

## Stop conditions

- No `WRITING.md` → stop, name `commune-setup`.
- `.connect.md` has `status: blocked` → stop; `commune-dump` owns that.
- No answered round → you are in step 2, and stopping is the step.
- A new `check` finding you cannot fix → stop and say which line caused it.
  Never show a review page with a broken link in it.

Files in this skill

  • SKILL.md4.5 KB
  • references/grill.md2 KB
  • references/handoffs.md8.1 KB
  • references/refine.md2 KB
  • scripts/preflight.mjs4.9 KB
  • scripts/review.mjs11 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…