Use whenever authoring a Cogni knowledge entry whose primary consumer is a HUMAN reviewing it visually (design diagrams, status scorecards, roadmaps, PR review summaries, anything where a paragraph would lose to a picture). Routes the author away from text-heavy AI-optimized entry types toward `entryType: html` per docs/spec/knowledge-html-style.md — concise, visual, sandbox-safe HTML built from the operator app's tokens and the `.cogni-*` utility classes. Trigger when posting to /api/v1/know...
Scanned 9/9/2026
Install to Claude Code
npx -y skills add cogni-dao/cogni --skill dolt-human-visuals --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dolt Human Visuals?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/cogni-dao-dolt-human-visuals)More formats (shields.io, HTML) on the badges page.
---
name: dolt-human-visuals
description: Use whenever authoring a Cogni knowledge entry whose primary consumer is a HUMAN reviewing it visually (design diagrams, status scorecards, roadmaps, PR review summaries, anything where a paragraph would lose to a picture). Routes the author away from text-heavy AI-optimized entry types toward `entryType: html` per docs/spec/knowledge-html-style.md — concise, visual, sandbox-safe HTML built from the operator app's tokens and the `.cogni-*` utility classes. Trigger when posting to /api/v1/knowledge/contributions and the content is for human review.
---
# dolt-human-visuals
> AI consumers read text. Humans read pictures. Match the medium to the audience.
## The principle
Knowledge entries serve two audiences:
- **AI agents** — recall, embeddings, reasoning → text is right. Use `observation`, `finding`, `conclusion`, `rule`, `scorecard`, `skill`, `guide`.
- **Humans** — review, approve, scan → HTML is right. Use `entryType: "html"`. Concise. Visual. Bare-minimum prose.
If you're writing prose for a human to read, stop. Convert to:
- A `<table>` of facts
- A `.cogni-card` per claim
- A row of `.cogni-pill` status indicators
- An SVG diagram
## Authoring contract
Full rules: [`docs/spec/knowledge-html-style.md`](../../../docs/spec/knowledge-html-style.md).
### Must
- Reference tokens, never hex: `hsl(var(--card))`, `hsl(var(--muted-foreground))`, `hsl(var(--color-success))`
- Use `.cogni-card`, `.cogni-panel-title`, `.cogni-grid`, `.cogni-kv`, `.cogni-pill[-success/-warning/-destructive]`, `.cogni-mono`, `.cogni-muted`, `.cogni-divider`
- For SVG diagrams, compose from `.cogni-svg-container`, `.cogni-svg-node`, `.cogni-svg-label`, `.cogni-svg-arrow`; set per-shape tone with `style="--cogni-tone: var(--chart-2)"`
- Fonts: `var(--font-sans)` or `var(--font-mono)` only
- SVG diagrams: token-only fills; transparent canvas
### Must not
- `<script>`, `<form>`, `<iframe>`, `onclick=`, inline JS
- Custom `@font-face`, external `<link>` or `<script src=>`
- Hardcoded hex / rgb / named colors
- `<img src="data:…">` larger than 50KB
- Paragraphs where a pill + value would do
## Minimal authoring template
```html
<section class="cogni-card">
<h2 class="cogni-panel-title">{title}</h2>
<div class="cogni-grid">
<div>
<h3 class="cogni-panel-title">{section}</h3>
<div class="cogni-kv">
<span class="cogni-pill cogni-pill-success">{state}</span>
<span class="cogni-muted">{detail}</span>
</div>
</div>
</div>
</section>
```
## Posting
The canonical API contract — request/response envelopes, append-commit flow,
auth, and error mapping — is `docs/design/knowledge-contribution-api.md`. The
minimal HTML-visual post is:
```bash
curl -X POST "$NODE_URL/api/v1/knowledge/contributions" \
-H "Authorization: Bearer $COGNI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "<one-line intent>",
"edits": [{
"op": "insert",
"entry": {
"domain": "<registered-domain>",
"title": "<short human title>",
"content": "<HTML body fragment using .cogni-* classes>",
"entryType": "html"
}
}]
}'
```
The contribution lands in the operator's `/knowledge?mode=inbox` for human review. The reviewer sees the artifact rendered inline beneath the title — they merge if it looks right.
## When not to use this skill
- Content is for AI consumption (recall / embeddings / agent reasoning) → use a text `entryType`
- Content fits in one sentence → use `entryType: "finding"` with plain text
- You need interactivity (clicks, live data) → out of scope; v0 sandbox is no-JS
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!