reimagine-it-extract — Claude Code skill: page signals as JSON
Pulls title, links, names, dates, numbers, emails and a palette out of an HTML file into JSON. No redesign — just what the engine reads.
npx skills add Kayforkind/reimagine-it --skill extract -a claude-codeWhat reimagine-it-extract does
Point the skill at one HTML file and it returns typed JSON: title, profile, density, palette, anchors, properNouns, headings, dates, numbers, emails, links, sourceHex, plus paragraph and list counts. Add --full and you also get the raw paragraphs and items arrays. From the shell: npx reimagine-it extract -i page.html -o signals.json. Piping works too — cat page.html | npx reimagine-it extract -o -.
Handy before a redesign, when you want to know what material the engine actually has. The payload is typed and stable, so it feeds cleanly into research, a content migration or design-system work.
One line matters here. Hex values in sourceHex came from the page; palette is derived from them. Dates and numbers are passed through as quotes, never rounded or tidied. A figure that shows up in a downstream summary but not on the page was added by hand — the extractor does not do that.
What it helps with
- inventory a page's facts before redesigning it
- get hex colors and a derived palette as JSON
- collect links, emails and dates for a content migration
- check which signals the engine reads from a page
- produce a typed content summary for design-system work
Example prompts for the agent
- Run
/reimagine-it extractonpage.htmland write the result tosignals.json - What does the engine see in this page? Pull the palette and the facts
- Extract links, dates and emails from
index.html
How to install reimagine-it-extract
1Skills CLI (Vercel)
npx skills add Kayforkind/reimagine-it --skill extract -a claude-code2Manually: put the files in place
~/.claude/skills/extract/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/extract/
1Skills CLI (Vercel)
npx skills add Kayforkind/reimagine-it --skill extract -a codex2Manually: put the files in place
.agents/skills/extract/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Kayforkind/reimagine-it --skill extract -a cursor2Manually: put the files in place
.cursor/skills/extract/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Kayforkind/reimagine-it extract2Manually: put the files in place
.github/skills/extract/SKILL.md1Skills CLI (Vercel)
npx skills add Kayforkind/reimagine-it --skill extract -a gemini-cli2Platform CLI
gemini skills install https://github.com/Kayforkind/reimagine-it --path skills/reimagine-it/extractManually: put the files in place
.devin/skills/extract/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Kayforkind/reimagine-it --skill extract -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about reimagine-it-extract
How do I install reimagine-it-extract in Claude Code?
Run npx skills add Kayforkind/reimagine-it --skill extract -a claude-code. The skill file lands at ~/.claude/skills/extract/SKILL.md.
What does reimagine-it-extract do?
It reads an HTML file and emits JSON with the title, links, proper nouns, dates, numbers, emails and palette. It does not generate a redesign.
How is sourceHex different from palette?
sourceHex lists colors that were present in the source page. palette is derived from them, so it is not something the page declared.
Source text
SKILL.md · MIT
---
name: reimagine-it-extract
description: >-
Emit the content signals reimagine-it reads from an HTML file — title,
anchors, proper nouns, dates, numbers, emails, links, source hex colors,
and the derived palette — as JSON without generating a redesign. Use when
the user says /reimagine-it extract, "what does the engine see in this
page", "extract the palette", "pull the facts from this page", or wants
content analysis for research, migration, or design-system work. CLI:
npx reimagine-it extract -i page.html -o signals.json. Part of the
reimagine-it Content-Derived Design suite.
license: MIT
metadata:
author: Kayforkind
version: "2.15.0"
parent: reimagine-it
hosts:
- claude-code
- cursor
- codex
- copilot
- gemini-cli
keywords:
- content-extraction
- palette-extraction
- content-analysis
- design-signals
- content-derived-design
category: Data
capabilities:
- content-signal-extraction
- palette-derivation
- fact-inventory
trigger_phrases:
- /reimagine-it extract
- what does the engine see
- extract the palette
- pull the facts from this page
- analyze this page's content
---
# /reimagine-it extract
**Parent:** [../SKILL.md](../SKILL.md) — the full Content-Derived Design engine. This sub-skill handles only the extraction surface — the honesty layer the whole method stands on.
The redesign is only as honest as its extraction. This verb emits exactly what
the engine reads, as JSON, without generating anything: title, profile,
density, derived palette, anchors, proper nouns, headings, dates, numbers,
emails, links, and source hex colors. Every extracted fact exists in the
source — property-tested against hostile and malformed input.
## Usage
```bash
npx reimagine-it extract -i page.html -o signals.json
cat page.html | npx reimagine-it extract -o - # stdin → stdout
npx reimagine-it extract -i page.html --full -o signals.json # + prose
```
Payload shape (default):
```json
{
"source": "page.html",
"title": "…",
"profile": "restaurant | saas | civic | …",
"density": "sparse | medium | dense",
"palette": { "ground": "…", "accent": "…", "muted": "…", "surface": "…", "ink": "…" },
"anchors": ["…"],
"properNouns": ["…"],
"headings": ["…"],
"dates": ["…"],
"numbers": ["…"],
"emails": ["…"],
"links": ["…"],
"sourceHex": ["#6B3A2A"],
"counts": { "paragraphs": 4, "listItems": 16 }
}
```
`--full` adds `paragraphs` and `items` (the raw prose arrays).
## Procedure
1. Run it before any redesign when the user asks "what would you even use
from this page?" — the JSON answers with the engine's actual inputs.
2. To audit honesty: every `dates`, `numbers`, `emails`, and `links` entry
must be findable in the source. Nothing else is allowed to appear.
3. Use it for migration/research: the payload is a stable, typed summary of
a page's content — no redesign attached.
## Must not
- Add facts not present in the payload to any downstream summary
- Present the derived `palette` as colors the source *declared* — hex colors
in `sourceHex` were in the source; the rest is derivation
- Round or "clean up" extracted numbers and dates; they are quotes
Part of [reimagine-it](https://github.com/Kayforkind/reimagine-it) — MIT.
© Kayforkind · MIT · Kayforkind/reimagine-it