Claude Code Plugin

iceberg

Named after Hemingway's iceberg theory: the strength of a document comes from what you cut, not what you add.

A Claude Code plugin that scores and edits technical documentation using 14 rules drawn from the Hemingway App, Google Developer Docs, and Microsoft Writing Style Guide.
Getting started

Install

# via gago-plugins marketplace (recommended)
/plugin marketplace add gagoar/gago-plugins
/plugin install iceberg@gago-plugins
/reload-plugins

# standalone
/plugin marketplace add gagoar/iceberg
/plugin install iceberg@iceberg
/reload-plugins

# update
/plugin update iceberg@gago-plugins
/reload-plugins
After install, iceberg scores every plan Claude produces automatically. Install via gago-plugins to get all gagoar plugins in one marketplace. Auto-update is off by default — enable it in /plugin → Marketplaces → iceberg.
/iceberg:score — read-only analysis
/iceberg:edit — rewrites inline

How it works

What happens automatically

Runs on every plan

After install, /iceberg:score runs on every plan Claude produces before returning it. The score report appears at the top of the response — no user action needed.

Two grades appear side by side: an objective score (all 14 rules at default severity) and an intent-adjusted score (severity tuned to the document's inferred audience). A guide for new users grades differently than a formal API spec, even if they contain the same violations.

To rewrite a scored document: run /iceberg:edit path/to/doc.md. The edit skill applies all 14 rules in order and returns the clean document. No annotations. No changelog.


Output

Reading the score report

ICEBERG SCORE  deployment-guide.md
Assumed intent: conversational onboarding guide
  (signals: tutorial-style steps, "you'll learn" phrasing, casual headers)

                  Objective   Intent-adjusted
Grade:               C             A
Density:         6.2/100w      1.4/100w   (target: ≤4.0)
Violations:         18             4     (14 deprioritized for conversational)
Word count:      290w

VIOLATIONS

Rule 1 — Short sentences  [HIGH / HIGH]  2 violations
  · "The system fetches the config and validates it, which can take up to 500ms
    depending on network conditions and cache state." (34w)

Rule 9 — Second person  [LOW / skip]  2 violations  ← deprioritized for conversational
  · "we recommend configuring…"
  · "our team suggests…"

Rule 13 — Jargon  [MEDIUM / HIGH]  3 violations  ← stricter for conversational readers
  · "idempotent" used without definition

TOP 3 TO FIX (intent-adjusted): jargon (Rule 13), long sentences (Rule 1), passive voice (Rule 2)
Run /iceberg:edit to apply all fixes.
  • Assumed intentInferred from document signals — structure, tone, vocabulary. Override by passing an explicit string: /iceberg:score doc.md "executive summary"
  • Objective / AdjustedObjective applies default severities to all 14 rules. Adjusted uses the inferred profile — some rules are deprioritized (skip) or escalated (HIGH) based on audience.
  • DensityWeighted violations per 100 words. Makes grades comparable across document lengths — a clean 2,000-word spec and a clean 100-word summary both grade A.
  • TOP 3 TO FIXPrioritized by intent-adjusted severity. Start here when running /iceberg:edit.

Scoring

Grade scale

Grades use violation density — weighted violations per 100 words — so document length doesn't inflate or deflate the score.

GradeDensity (per 100 words)Meaning
A≤ 1.0Publish-ready
B≤ 4.0Minor cleanup needed
C≤ 8.0Needs work before sharing
D≤ 15.0Significant rewrite required
F> 15.0Start over

Weighted violations = HIGH×2 + MEDIUM×1 + LOW×0.5. Density = weighted ÷ (word count / 100).


Audience

Intent profiles

The scorer infers intent automatically from structure, tone, and vocabulary. Pass an explicit string to override.

Technical
specs · READMEs · API docs · plans
Default severity on all 14 rules. Component names as subjects, code blocks present, formal headers.
Conversational
guides · tutorials · onboarding
"We built this" is expected. Jargon is penalized harder — readers need definitions. Rules 9, 11, 12 are skipped.
Executive
summaries · proposals · decks
Buried answers and long paragraphs penalized hard. Jargon and abstract nouns escalated to HIGH.
RuleTechnicalConversationalExecutive
5 — Concrete nounsMEDIUMMEDIUMHIGH
8 — Lead with answerMEDIUMMEDIUMHIGH
9 — Second personLOWskipLOW
11 — Negative framingLOWskipLOW
12 — Short paragraphsLOWskipHIGH
13 — JargonMEDIUMHIGHHIGH

"skip" = violation found and reported but excluded from the weighted count.


Example

Before / after

The same paragraph, before and after /iceberg:edit.

Before
D density 8.0/100w · 8 violations

The configuration system was designed in order to facilitate the seamless management of environment-specific settings, and it essentially leverages a hierarchical override mechanism that is quite flexible and arguably one of the most comprehensive solutions available for handling the somewhat complex requirements of modern cloud deployments.

After
A density 0.8/100w · 0 violations

The configuration system manages environment-specific settings through a hierarchical override mechanism. You define values at the base level, then override them per environment. This works well for deployments with hundreds of configuration parameters across staging, production, and preview environments.

What changed
  • 1 sentence (67w) split into 3 sentences — 18w, 12w, 19w
  • Passive "was designed" → active "manages"
  • Qualifiers deleted: essentially, quite, very, arguably, tends to, somewhat
  • Complex words removed: "in order to", "leverage", "facilitate"
  • Abstract nouns made concrete: "comprehensive solutions" → mechanism described; "complex requirements" → "hundreds of configuration parameters"

Reference

The 14 rules

Applied in order. Code blocks, inline code, command names, variable names, URLs, and proper nouns are never modified.

#RuleExample
1Short sentencesTarget 15–20 words. Split at 30.
2Active voice"The server loads the config" — not "The config is loaded"
3Strong verbs, no adverbs"stalls" — not "runs slowly"
4No qualifiers or hedgesDelete: very, quite, arguably, tends to, could potentially
5Concrete nouns"add a retry loop" — not "implement a comprehensive solution"
6One idea per sentenceBreak at "and," "which," or "but" when each side stands alone
7Conditions before instructions"If the cache is cold, run the script" — not the reverse
8Lead with the answerConclusion first. Context follows.
9Second person"You configure the server" — not "We recommend"
10Simple wordsuse, help, start, stop — not utilize, facilitate, initiate, terminate
11No negative framing"Use HTTPS" — not "Don't use HTTP"
12Short paragraphs2–4 sentences. One topic.
13Define or cut jargonFirst use gets an inline definition. Plain equivalent beats jargon.
14Measure, don't describe"under 100ms" — not "fast"

Plugin development

For developers

⚗️

Testing & calibration

The repo ships with a manual test checklist at TESTING.md and calibration fixtures in examples/eval/. Run /iceberg:score examples/eval/violations.md — expect Grade F, all 14 rules flagged. Run /iceberg:score examples/eval/clean.md — expect Grade A, no false positives. Model comparison results (Haiku vs Sonnet accuracy) are in examples/eval/results.md.