Skip to content
Back to skills

Insight Writing

ASecurity

How to write the words of a ProvenMap insight or context board — the one contract for every flow that authors them. Use whenever you fill an InsightDraft's name, insight, impact, advice or trail notes, a push's info line, or a context board's name, description and node notes (/insights, /discover, an analysis recorded from the architect workbench). Covers who the reader is, the five writing rules with a bad/good pair, and the text-field guide with limits.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
researchgonode

Works with

  • terminal
  • cli

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add provenmap/pmap-claude --skill insight-writing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Insight Writing?

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

Security grade badge for Insight Writing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/provenmap-insight-writing/badge)](https://www.skillsdirectory.com/skills/provenmap-insight-writing)

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: insight-writing
user-invokable: false
description: How to write the words of a ProvenMap insight or context board — the one contract for every flow that authors them. Use whenever you fill an InsightDraft's name, insight, impact, advice or trail notes, a push's info line, or a context board's name, description and node notes (/insights, /discover, an analysis recorded from the architect workbench). Covers who the reader is, the five writing rules with a bad/good pair, and the text-field guide with limits.
metadata:
  author: ProvenMap
  version: 1.0.0
---

# Writing an insight

Every flow that authors an insight or a context board writes its words by this contract. The
schemas (trail, stops, proposal, payload wiring) live with each flow; the words live here.

## The reader

An engineer or architect who knows this system and has never heard of this tool's internals.
They read the text in a side panel or on the canvas, **next to the picture**: the trail's stops,
their order and the drawn elements are already in front of them. The words must say what the
picture cannot — what the code or system is doing, and why it deserves a minute of their time.

## The rules

1. **Lead with the finding.** The first sentence is the one thing to take away, about THEIR
   system: "Publishing a blog post depends on the shared URL normaliser, three modules away."
   Never a recap of the route or of what is drawn.
2. **Say what it does, then what follows.** Use what you know of each part — element and edge
   descriptions, the code you read: which function, which data, which responsibility. Then the
   consequence — what changes together, what breaks, what is surprising.
3. **Never narrate the tool.** Banned in every user-facing field: node, edge, board, stop, hop,
   trail, port, layer, descent/descend, ascent/ascend/climb, drill-down, slice, pack, graph,
   fan-in, fan-out. Say "depends on", "calls", "imports", "is used by 12 modules", "inside X".
   A count belongs in the prose only when it is a fact about the system (12 dependents), never
   about the walk (7 stops). Script-provided evidence lines are facts for you, not sentences to
   copy.
4. **Plain text only.** Nothing renders markdown — backticks, asterisks and links show up
   literally. Name elements by display name; quote a file path or symbol bare, and only where
   it helps the reader find the code. (Slugs belong in the structural fields — `board`, `node`,
   `via.edge`, `slug` — never in the prose.)
5. **No filler.** Every sentence carries a fact or a consequence. If the honest finding is
   small, write one short sentence — never pad, never list every stop; the picture does that.

Bad: "From skills to schema-and-vocabulary takes 7 stops across 2 boards, with 2 descents and 1
climb back through a port."

Good: "Every skill script reaches the shared schema through one chain: blog-publish calls the
attention module, which needs correlation-keys to normalise URLs, which takes its DATE, MONTH
and SLUG rules from the schema. A change to those rules changes how every skill matches threads."

## The steps

Each stop's `note` is read on its own, as the reader arrives at that part. Give every step one
plain sentence about what matters THERE for this finding:

- **why the call is made or what is handed over** — "Needs the canonical URL to match threads
  across silos", not "imports from correlation-keys";
- **or what this part does in the story** — "Validates the cart before Orders writes it";
- **or the fact that makes it matter** — "12 modules depend on this; none has a fallback".

Never a role label ("Entry", "Ring 1", "Terminal hop", "Also depends on it"), never how the view
got there ("Descend into lib", "Up to the parent"), never the bare name of what is already on
screen. A script-written note that already says something real may stay; replace any that only
labels. Keep steps consistent with the `insight` text — same names, no new claims.

## The text fields

| Field | Limit | What goes in it |
|---|---|---|
| InsightDraft `name` | ≤100 | The finding as a claim, not a question and not a route: "Checkout has no fallback when Payments is down". |
| InsightDraft `insight` | 5–500 | The finding and the evidence for it, per the rules above. Facts only — opinions go in `advice.text`. |
| InsightDraft `impact` | ≤300, optional | One sentence: the consequence if a risk is left, or the gain if a strength or opportunity is used. |
| InsightDraft `advice.text` | 5–500 | `recommendation` (with `effort`): the concrete action. `context`: background worth knowing. One object, never both. |
| Trail stop `note` | ≤200 | One sentence per "The steps" above: what matters at this part for this finding. |
| Push `info` | ≤350 | What this run surfaced, specifically: "3 auth risks incl. a hardcoded JWT secret". |
| Context board `name` | ≤100 | The question's answer as a title: "Blast radius of Event Bus". |
| Context board `description` | ≤500 | What the board answers and why it matters, with the numbers that are facts about the system. |
| Context board `nodes[].note` | ≤300 | Why THIS element is part of the answer, in the reader's terms. |

`confidence` is a claim too: `verified` only when you read the code; otherwise `likely`,
`inferred` or `speculative`, honestly.

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…