danicat/speedgrapher/publish
Claude Code and agent skill by danicat/speedgrapher
- community
Checking that the SKILL.md file is still in the repository.
Editorial review and publication readiness workflow that audits prose quality, resolves or injects inline review comments, and verifies technical SEO, GEO, and frontmatter metadata.
Install
npx vskill@latest install danicat/speedgrapher/publishSKILL.md
Publish: Editorial Review, Inline Annotations & SEO/GEO Release Gate
publish is Speedgrapher's unified quality and release gate. It operates in two progressive stages mirroring Speedgrapher's two-plane architecture:
- Stage A (Prose & Structural Review — All Markdown Files): Audits readability (
fog), AI-trope density (slop), static grammar/style (vale), macro-narrative flow, and bidirectional inline review comments (<!-- review: ... -->). - Stage B (Second-Plane Technical SEO, GEO & Localization — Blog Posts & Web Pages): Audits discoverability via the
seoMCP tool (doc_type: "page"or"doc"), enforces the dual-purpose frontmatter split (summaryvs.description), validates Generative Engine Optimization (GEO) signals, and guides idiomatic multi-language localization.
1. Two-Stage Review & Release Pipeline
Whenever you review or prepare a .md file for release, always surface the side-panel pill at the top of your response:
Open file.md to inspect live diagnostics, inline comments, and SEO telemetry in the side pane.
2. Stage A: Prose Quality Gate & Inline Review Comments (All Markdown Files)
A. Quantitative MCP Prose Diagnostics
Run fog, slop, and vale on the target .md file using its absolute path:
| MCP Tool | Scope & Granularity | Target Threshold | Action When Out of Bounds | |
|---|---|---|---|---|
| `fog` | Document-wide & per-paragraph Gunning Fog Index (paragraphs[]). | 12.0 – 14.0 | Check readability balance when paragraph density falls outside the 12.0–14.0 target range. | |
| `slop` | Document-wide & per-paragraph 5-Dimension AI Slop Score (0–100). | $< 20$ (Clean)<br>$\ge 25$ (Warning) | Flag lexical tells (delve, tapestry, leverage, utilize, robust, quietly), negative parallelism ("It's not X, it's Y"), and uniform-cadence paragraphs. | |
| `vale` | Static style & grammar linter (Google, proselint, write-good). | Grammar clean; style informational | Vale grammar checks must always be fixed. Vale style checks are informational and presented to the user for discussion. |
B. Qualitative Editorial Audit Criteria
Inspect the manuscript line by line against six qualitative standards:
- Inverted-Pyramid & Macro-Narrative Momentum: Does the opening 150 words state the core problem, solution, and headline metric? Do later sections maintain forward momentum without re-litigating the introduction?
- Functional Precision vs. Status-Signaling Jargon: Are domain acronyms defined on first use? Have bureaucratic noun stacks been replaced with active verbs?
- Canonical Citation Hygiene: Are tools, libraries, and open standards hyperlinked by their canonical name on first mention (for example,
[Model Context Protocol](https://modelcontextprotocol.io)), with zero bare URLs printed in prose? - Grounded Code Pedagogy: Is every code block introduced with why before how?
- Sentence-Case Headings: Do all headings (
H1–H4) use strict sentence case? - Google Developer Brand & Legal Safety: Flag unverifiable superlatives ("fastest", "best"), possessives on product names ("Google's Cloud Run's"), unsubstantiated claims, or mentions of unreleased roadmaps ("coming soon").
C. Bidirectional Inline Review Comment Workflow (<!-- review: ... -->)
Speedgrapher uses HTML comments placed immediately below a paragraph as a zero-lock-in review bus, written either as plain <!-- review: ... --> tags or with UI metadata attributes <!-- review(id="...", quote="...", ts="..."): ... -->:
- Resolving Human Comments (`Human -> Agent`):
- When the file contains
<!-- review: ... -->or<!-- review(...): ... -->comments added by the author, locate every comment block. - Edit the preceding paragraph (or add the requested code/table) to fulfill the author's note while keeping
fog($12\text{–}14$) andslop($< 20$) in bounds. - Delete each resolved `<!-- review: ... -->` or `<!-- review(...): ... -->` comment from the file once addressed.
- Injecting Agent Annotations (`Agent -> Human`):
- When the user asks you to annotate the file in place or leave inline review comments (instead of rewriting the prose directly), insert concise
<!-- review: [Dimension] Concrete recommendation -->comments directly beneath the affected paragraphs:
``markdown The orchestration layer utilizes a distributed lock methodology to facilitate state synchronization across worker nodes. <!-- review: [Readability / Slop] Replace noun stack and corporate verbs ("utilizes", "methodology", "facilitate") with direct active prose: "The coordinator acquires a Redis lease before syncing state across worker nodes." --> ``
D. Mandatory Stage A Output: Scorecard + Line-Indexed Recommendations
Structure every editorial review using this exact template so the author can evaluate and apply findings by ID:
Unless the user explicitly asked you to auto-fix or annotate the file in a single pass, invite them to respond with selective commands ("apply all", "apply 1, 3, 5", "annotate in file", or "discuss 2").
3. Stage B: Second-Plane Technical SEO, GEO & Localization Gate
For blog posts, tutorials, and web documentation (doc_type: "page"), execute the full second-plane discoverability audit using the seo MCP tool.
A. The Dual-Purpose Metadata Split (title, summary, description, canonical)
Static site generators (Hugo, Astro, Next.js) and AI retrieval pipelines consume frontmatter fields for distinct purposes. Always separate the human feed teaser from the search/LLM factual answer:
| Frontmatter Field | Length Target | Primary Consumer | Writing Strategy | Example | |
|---|---|---|---|---|---|
| `title` | 30–60 chars | Browser tabs, SERP headlines, social cards | Front-load the primary technical subject and concrete mechanism in sentence case. | "Zero-allocation JSON parsing in Go 1.27" | |
| `summary` | 80–180 chars | Human readers browsing blog index cards, RSS feeds, and newsletters | Write a compelling editorial hook that highlights the engineering tension or debugging story without giving away every detail. | "When our telemetry cluster hit 40% CPU in reflection stalls, we replaced encoding/json with a pre-compiled column reader." | |
| `description` | 120–160 chars | Search engine snippets (<meta name="description">) and LLM/RAG retrieval indices (GEO) | Write a self-contained, factual answer stating what the article covers, exact runtime versions, and the measurable result. | "Learn how to build a zero-allocation JSON column reader in Go 1.27 that cuts CPU overhead by 44% and keeps p99 latency under 1.2 ms." | |
| `canonical` | Valid HTTPS URL | Search engine crawlers (<link rel="canonical">) | Specify the authoritative URL for syndicated or cross-posted articles. | "https://example.dev/blog/zero-alloc-json-go/" |
B. The 7-Point seo Verification Gate (checks[])
Run speedgrapher's seo MCP tool (path, doc_type: "page" for web posts or "doc" for repository docs, and target keyword) and verify all seven checks[] pass:
- `Title Tag` (`30–60 chars`): Clear
titlefrontmatter key or document# H1between 30 and 60 characters (and containing the targetkeywordwhen provided). - `Meta Description` (`120–160 chars`):
descriptionfrontmatter field (or<meta name="description">) present and between 120 and 160 characters (skipped indoc_type: "doc"mode). - `H1 Tag`: Exactly one
H1(#or<h1>) on the page, or a frontmattertitlethat renders as the pageH1. - `Image Alt Text`: Every Markdown image (
) and HTML<img>tag carries non-emptyalttext. - `Links`: At least one hyperlink (
[anchor](url)or<a href="...">) connects the document to upstream documentation or related resources. - `Content Length`: At least 300 words for
doc_type: "page"(or 100 words fordoc_type: "doc"). - `Canonical Tag`:
canonicalfrontmatter key (or<link rel="canonical">) present fordoc_type: "page"(skipped indoc_type: "doc"mode).
C. The 6-Point Generative Engine Optimization (geo_checks[]) Checklist
Alongside the 7 SEO checks, seo evaluates six geo_checks[] to maximize accurate citation by LLM search engines, RAG pipelines, and developer agents:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/publish/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/danicat/speedgrapher/publish)