Trip Map Builder
hiyeshu/trip-map-builder
End-to-end trip planning: gather user constraints, build a reference itinerary, research locations and dining signals via 大众点评 + 小红书, then generate an interactive mobile-first map page (Leaflet +…
Create an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and…
$ npx skills add hanamizuki/solopreneur --skill preview -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hanamizuki/solopreneur preview --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/solopreneur/preview .claude/skills/preview && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "preview" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/preview into .claude/skills/preview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preview", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/previewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hanamizuki/solopreneur --skill preview -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hanamizuki/solopreneur preview --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/solopreneur/preview .agents/skills/preview && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "preview" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/preview into .agents/skills/preview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preview", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hanamizuki/solopreneur --skill preview -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hanamizuki/solopreneur preview --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/solopreneur/preview .cursor/skills/preview && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "preview" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/preview into .cursor/skills/preview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preview", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hanamizuki/solopreneur.git --path skills/solopreneur/preview--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hanamizuki/solopreneur --skill preview -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hanamizuki/solopreneur preview --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/solopreneur/preview .gemini/skills/preview && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "preview" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/preview into .gemini/skills/preview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preview", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hanamizuki/solopreneur previewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hanamizuki/solopreneur --skill preview -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/solopreneur/preview .github/skills/preview && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "preview" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/preview into .github/skills/preview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preview", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hanamizuki/solopreneur --skill preview -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hanamizuki/solopreneur preview --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hanamizuki/solopreneur.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/solopreneur/preview .opencode/skills/preview && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "preview" agent skill from https://github.com/hanamizuki/solopreneur/tree/main/skills/solopreneur/preview into .opencode/skills/preview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preview", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
previewCreate an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and…
Preview is an agent skill from hanamizuki/solopreneur. Create an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and in-page comments); an explicitly temporary ask produces one self-contained HTML on the Desktop instead, and only an explicit request for Vercel, online deployment, cross-device access, or external sharing publishes the private Vercel Library or an isolated Share deployment. Use WHENEVER the user wants something visualized…
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 35 other files, including scripts, reference files and assets (for example `assets/comment-overlay.js`, `assets/preview-shell.js` and `references/libs.md`).
It sits in Frontend & Design, covering Diagrams, Responsive design and HTML artifacts. It works with Vercel. The repository describes itself as: Skills and agents for solopreneurs — ship, review, debug, and think through problems with AI. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f43f001. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 12 files in scripts/ (JavaScript and Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodevercelbashnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use vercel and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Preview loads about 5.2k tokens when it runs, and up to ~6.8k if it reads all its reference files. Until then it costs about 258 tokens; SKILL.md has 2,351 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from hanamizuki/solopreneur at commit f43f001, republished under its MIT licence (© hanamizuki). 2,351 words, ~5,229 tokens.
.claude/skills/preview/SKILL.md (or your agent's skills folder). This skill also uses 32 other files; get the full folder from GitHub.This is the first action. Decide the delivery mode before reading Preview Library config, running Vercel preflight/setup, creating files, using the network, or making any other state change:
vercel only when the user explicitly asks for Vercel, an
online deployment, cross-device access, or external sharing.ephemeral only for explicitly temporary work — "quick look",
"看完就丟", "just drop it on my Desktop" — or when the user names the
output path themselves.library for everything else. library is the default; a request
such as "give me a link" still means a clickable local file:// link.
Misrouting is asymmetric — a real deliverable sent to a throwaway file is
lost after the look, while a throwaway in the Library is one extra catalog
row — so ambiguity always lands in the Library.Run the side-effect-free resolver from this skill directory with no argument
for library, or with exactly one flag for the explicit intents above:
node scripts/resolve-delivery.mjs [--ephemeral | --vercel]Follow only the workflow it prints. On a Codex host (CODEX_THREAD_ID set),
--vercel fails closed before any network or state change. Stop immediately,
repeat the resolver's Codex Phase 1 local-only limitation, and do not substitute
a local artifact for the explicitly requested deployment. Claude Code may
continue through the existing Vercel workflow. library and ephemeral are
pure local file operations, available on Claude Code and Codex alike.
Turn any proposal / plan / idea into interactive HTML and hand the user a link
they can open. Library delivery writes into the content root and returns a
file:// link into the freshly rebuilt local library. Explicit remote delivery
publishes the existing private Library; an external one-off link uses Share
(same Vercel project, Preview environment only — never promotes Library
production).
A link they can open and try. Not a markdown wall and not a screenshot.
Library delivery returns an absolute file:// Markdown link to the item's
built page (catalog sidebar included). Ephemeral delivery returns an
absolute-path link to one standalone file. Explicit Vercel delivery returns
the existing Library or Share URL.
This workflow is available on Claude Code and Codex and is the default.
Deep reference (schema, setup, deploy internals): ../../shared/config.md, relative to this skill inside an installed package (canonical source: src/solopreneur/shared/config.md).
Config is path-scoped, not git-remote-scoped. From the content path (or cwd when creating new work), walk up for the nearest .solopreneur.json that contains a preview block. Full resolution order and rules: config-resolve.mjs / shared/config.md.
# Inspect what the tools will use (anchor at the content path or cwd)
node scripts/config-resolve.mjs --from "$CONTENT_OR_CWD" # see script --help for flagsroot is resolved against the config file's directory, not git root..solopreneur.json fully replaces a parent preview block (no deep merge).my-private-previews).No v2 config resolves (mode none or legacy): library mode is
unavailable here — say so in one line and deliver through the Ephemeral
workflow instead. Creating a new content root stays an explicit setup action
(setup.mjs, Vercel-oriented — do not invent projects or silently create
roots). Legacy solopreneur.json cascades still work for the escape hatch;
prefer migrating with config-migrate.mjs when the user is ready, and never
silently rewrite their legacy file.
Self-assess ambiguity before writing: only ask which deliverable if ≥2 separable topics, bare "preview" after a wide discussion, or multiple candidate artifacts. Otherwise state what you are previewing in one line and proceed.
<root>/ # preview.root from resolved config
├── active/<id>/
│ ├── index.html
│ ├── preview.json
│ └── …assets (relative only)
├── archive/<id>/
│ └── …
└── library/ # generated local library (gitignored, never edited)active/<id>/ with index.html + preview.json.id, same directory. When content or display metadata actually changes: revision += 1, refresh updatedAt and provenance.lastUpdatedBy. Unchanged re-publish and Share do not bump revision.id: lowercase slug [a-z0-9-]+, unique across all included collections.active vs archive); do not duplicate status in metadata.Prefer, in order: preview id from URL / Share or archive request → caller-given id → sourceRef in metadata. Title similarity alone never auto-merges. Same id or same sourceRef → treat as update candidate. Fork only when the user says so.
preview.json (required fields)Write a sidecar in the Library source tree only — never deploy raw preview.json; the builder projects an allowlist into directory.json:
{
"schemaVersion": 1,
"id": "2026-07-25-short-slug",
"title": "Human title",
"createdAt": "2026-07-25T10:00:00+08:00",
"updatedAt": "2026-07-25T12:00:00+08:00",
"revision": 1,
"entry": "index.html",
"provenance": {
"createdBy": { "agent": "Builder Claude", "platform": "claude", "sessionTitle": "optional" },
"lastUpdatedBy": { "agent": "Builder Claude", "platform": "claude", "sessionTitle": "optional" }
}
}id, title, createdAt, updatedAt, revision, and provenance parties' agent + platform.sessionTitle only when known — never invent.project (label only), sourceRef (workspace-relative stable ref, not absolute paths), tags.entry v1 must be index.html.scripts/preview-schema.json.Start from assets/template.html (placeholders {{TITLE}} / {{DATE}} / {{LEAD_PARAGRAPH}} / {{AUTHOR_OR_CONTEXT}}).
The builds inject shared comment-overlay.js and preview-shell.js — the local library build and the Vercel publish alike. You may still reference ./comment-overlay.js in the template for raw-source review; the builder rewrites it to the shared asset. Prefer not treating per-item overlay copies as the durable happy path.
Contract (v1 static): single index.html, relative assets only. No root-relative /assets/..., no SPA history fallback, no entry outside the item dir. Read references/libs.md before Alpine / Chart.js / Mermaid.
Form follows content (calculator, doc, charts, etc.) — same guidance as before.
Full-bleed slides: wrap in <main class="doc">, set body.cmt-full-bleed when needed (see template comments).
After content is ready (and preferably committed when the content root is git-backed):
node scripts/build-library.mjs --local --from "$PATH_UNDER_ROOT"
# machine-readable:
node scripts/build-library.mjs --local --json --from "$PATH_UNDER_ROOT"<root>/library/ — generated output, never edited, never committed. A
failed build leaves the previous library untouched, and re-running is the
recovery. Concurrent builds of one root are serialized by a lock; if a
build was hard-killed, the next one refuses to start and names the stale
lock file to delete./library/ + /library.* to the content root's
.gitignore and reports it — commit those lines with the content. The glob
covers the build's swap siblings (library.tmp, library.bak,
library.lock); untracked build output would otherwise dirty the root and
trip the deploy fetch-guard.file:// with the full Library UX: catalog
sidebar, provenance footer, comment overlay. Comments persist per item in
that browser's localStorage (this machine only — export markdown if they
matter elsewhere).[Open preview](file:///…/<root>/library/p/<id>/index.html) — and mention
the library home <root>/library/index.html when useful. Run open only
when the user explicitly asks.Sidebar Manage mode copies a structured block (agent contract):
## library archive request
library: <label>
exported: <ISO timestamp>
archive(active → archive):
- <id> — <title>
restore(archive → active):
- <id> — <title>
(給 agent:對每個 id 做 mv <root>/<from>/<id> <root>/<to>/<id>,全部完成後重新發布 library。)When the user pastes this:
mv <root>/active/<id> <root>/archive/<id> (keep id).build-library.mjs --local, plus one
deploy-library.mjs republish when the Library is also published on Vercel.Keep the existing comment + revision workflow:
## comments on: …).<del> / <ins>, apply new changes as visible diff, refresh a top revision-log callout, rebuild the local library (same id, revision +1 when content changed); republish Vercel only when that is where the user reviews.preview_comments_v3:<id>) in the browser that made them. The local library and a Vercel deployment are different origins — comments do not travel between them, or across Share origins. Export if they matter.See "The comment overlay" below for UX detail.
This is the existing Library v2 publish path. Enter it only after the delivery
resolver prints vercel. Content rules are the Library workflow's steps 1–3 —
the same content root, items, and HTML feed both renderings. Legacy
three-bucket / deploy.sh is an escape hatch only (see below).
Always run bash scripts/preflight.sh before drafting HTML. It checks Vercel CLI + auth.
vercel CLI ready, proceeding…) and continue.npm i -g vercel / vercel login), view HTML locally only, or cancel. Re-run preflight until pass or the user chooses local-only / cancel.No v2 config found: run first-run setup — do not invent projects.
node scripts/setup.mjs
# optional: --project my-private-previews --team <teamId>Setup proposes one private target, creates dirs only after confirm, and fail-closes if protection cannot be verified. It never auto-creates three Hana buckets.
node scripts/deploy-library.mjs --from "$PATH_UNDER_ROOT"
# machine-readable:
node scripts/deploy-library.mjs --json --from "$PATH_UNDER_ROOT"deploy.sh --bucket keep for Library content (pollutes Library production history).The page Share… control only builds a copyable JSON request (no token, no deploy). Example:
{
"schemaVersion": 1,
"kind": "preview-share-request",
"previewId": "<id>",
"revision": 4,
"contentHash": "sha256:<hash>",
"url": "<current library item URL>",
"access": "project-members"
}access: project-members (default) or anyone-with-link.
When the user pastes a request (or asks to share an id):
# request on stdin, or --request <file>
node scripts/deploy-share.mjs --from "$PATH_UNDER_ROOT" --request - <<'EOF'
{ ...share request JSON... }
EOF--prod / promote; Library production unchanged./ for that item only (no catalog / other /p/ / raw preview.json).deploy-share.mjs --list / --revoke (see script usage; shareable-link secret may be required to revoke).Enter only when the resolver prints ephemeral — explicitly temporary work or
a user-named output path — or as the stated fallback when no v2 config
resolves in library mode. The artifact joins no catalog and carries no shell
or overlay chrome.
Choose one output file. A user-specified path wins. For temporary work
with no path, use ~/Desktop/<safe-slug>.html, where the slug is lowercase
ASCII [a-z0-9-], repeated hyphens are collapsed, and an empty result falls
back to preview. Resolve the final path to an absolute path.
Refuse silent overwrite. Unless the user explicitly asked to update or replace that exact file, atomically reserve the target after the delivery mode is decided:
node scripts/reserve-local-output.mjs "$ABSOLUTE_TARGET"Use only the absolute path it prints. An existing target is preserved and
receives a collision-free sibling such as <safe-slug>-2.html.
Write exactly one self-contained HTML file. Write into the reserved file
(or the explicitly approved replacement). Put all CSS in <style> and
all necessary JavaScript in inline <script> blocks. Use inline SVG or data
URIs for required images. The file must render directly under file://
without a server, build step, external stylesheet/script/module, CDN,
runtime fetch, or relative asset. Omit JavaScript when HTML/CSS is enough.
assets/template.html is a Library-oriented visual reference only: its CDN
and comment-overlay.js references must not appear in an ephemeral artifact.
Keep ephemeral delivery isolated. Create no preview.json, write no
.solopreneur.json / solopreneur.json, run no setup.mjs,
preflight.sh, or deploy script, create no .vercel, and make no
Vercel/network calls. Config reading is not part of this workflow either —
the no-config Library fallback has already done its one read by the time it
lands here. The output HTML is the only delivery artifact.
Verify and hand off. Confirm the file exists, contains its required
inline CSS/JS, and has no runtime asset dependency. Return a clickable
absolute-path Markdown link such as [Open preview](/absolute/path/file.html).
Run open only when the user explicitly asks to open it.
Wanting to keep an ephemeral page later is not a feature — move it into
active/<id>/, add a preview.json, rebuild the library. Ordinary file
operations, on request.
Use only when there is no v2 Library config, or for living-spec / slides / explicit migration rollback.
deploy.sh (arbitrary directory)scripts/deploy.sh <path-to-dir>
# optional: PREVIEW_PROJECT=... or --bucket default|keep|publicPrints one URL to stdout. Buckets (default / keep / public) live in legacy solopreneur.json. Not the default for new /preview work when a Library config resolves.
Path probing + solopreneur.json helpers for legacy flat docs/preview/<date>-<slug>/ dirs remain valid for this escape hatch only. Prefer active/<id>/ whenever v2 applies.
Margin-style annotations (Google Docs / Medium-like), identical in the local library and on Vercel:
+ comment → note → yellow marker + gutter card; stored in localStorage for the review session.export comments → markdown with quotes + context.<del> / <ins>: Clean / Show edits toggle (defaults to showing edits).Agent revision rules:
delete old <del>, unwrap old <ins>).<del> / <ins> only — never silent replace.revision-log callout for this round only.preview.json, write config, run setup/preflight/deploy,
or use the network in ephemeral mode.<root>/library/ — generated output; commit
items + preview.json (+ the .gitignore line when first added) instead.open without an
explicit request.index.html + assets.| Path | Role |
|---|---|
scripts/resolve-delivery.mjs | Side-effect-free library / ephemeral / Vercel gate |
scripts/reserve-local-output.mjs | Atomic no-overwrite ephemeral path reservation |
scripts/preflight.sh | Vercel CLI + auth |
scripts/config-resolve.mjs | Path-scoped v2 + legacy resolve |
scripts/config-migrate.mjs | Legacy → v2 proposal + write |
scripts/setup.mjs | First-run private target |
scripts/build-library.mjs | Scan collections → staging; --local swaps <root>/library/ |
scripts/deploy-library.mjs | Staged Library publish |
scripts/deploy-share.mjs | Single-item Share Preview |
scripts/deploy.sh | Legacy arbitrary-dir deploy |
scripts/preview-schema.json | preview.json schema |
scripts/resolve-provenance.mjs | Provenance display shape |
assets/template.html | HTML starter |
assets/comment-overlay.js | Comments + diff toggle |
assets/preview-shell.js | Sidebar, Manage, Share, footer |
assets/library-index.html | Library home template |
references/libs.md | Alpine / Chart.js / Mermaid recipes |
© hanamizuki, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 32 other files (scripts, references, assets) in skills/solopreneur/preview of hanamizuki/solopreneur.
Open the folder on GitHubat commit f43f001
Preview next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Preview this skillhanamizuki/solopreneur | 152 | — | ~5.2k | Automated safety check: Pass | MIT | |
| Trip Map Builderhiyeshu/trip-map-builder | 244 | — | ~1.7k | Automated safety check: Pass | None | |
| Show Metellahq/opensession | 392 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Show Memirumee/nimara-ecommerce | 129 | 7 repos | ~809 | Automated safety check: Pass | BSD-3-Clause | |
| Design Itsmallnest/goal-workflow | 290 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Generative UIhimself65/finance-skills | 3.4k | — | ~3.1k | Automated safety check: Pass | MIT |
hiyeshu/trip-map-builder
End-to-end trip planning: gather user constraints, build a reference itinerary, research locations and dining signals via 大众点评 + 小红书, then generate an interactive mobile-first map page (Leaflet +…
tellahq/opensession
Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.
mirumee/nimara-ecommerce
Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.
smallnest/goal-workflow
A skill your agent uses when turning a requirement, spec, or feature brief into a single self-contained HTML design document in a fixed house style — one styled HTML page with a table-of-contents…
himself65/finance-skills
Design system and templates for Claude's built-in generative UI — the showwidget tool that renders interactive HTML/SVG widgets inline in claude.ai conversations.
Tommy-yw/RunbookHermes
Generate flat, minimal light/dark-aware SVG diagrams as standalone HTML files, using a unified educational visual language with 9 semantic color ramps, sentence-case typography, and automatic dark…
hanamizuki/solopreneur
A skill your agent uses when building iOS/macOS apps with SwiftUI — covers localization (String Catalogs), date/time formatting, JSON date decoding, Previews, state management, sheet/navigation…
hanamizuki/solopreneur
LinkedIn organic growth consultant — diagnoses profiles, discusses goals, and co-creates a personalized 90-day growth plan.
hanamizuki/solopreneur
Switch perspectives to think through problems using the mental models of ten iconic thinkers: Elon Musk, Richard Feynman, Charlie Munger, Naval Ravikant, Steve Jobs, Nassim Taleb, Ilya Sutskever…
hanamizuki/solopreneur
Create brand-aware presentations using frontend-slides or reveal.js.
hanamizuki/solopreneur
X/Twitter growth consultant — diagnoses profiles, discusses goals, and co-creates a personalized growth plan.
hanamizuki/solopreneur
X/Twitter writing coach — helps you write single tweets, threads, and long-form posts.
Works with
Create an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and…. Preview is an agent skill from hanamizuki/solopreneur. Create an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and in-page comments); an explicitly temporary ask produces one self-contained HTML on the Desktop instead, and only an explicit request for Vercel, online deployment, cross-device access, or external sharing publishes the private Vercel Library or an isolated Share deployment.
Preview fits situations like: the user wants something visualized; made into a webpage; made interactive; shared for human review.
Run `npx skills add hanamizuki/solopreneur --skill preview -a claude-code`. Or copy the skill folder (skills/solopreneur/preview in hanamizuki/solopreneur) into .claude/skills/preview in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hanamizuki/solopreneur --skill preview -a codex`. Or copy the skill folder (skills/solopreneur/preview in hanamizuki/solopreneur) into .agents/skills/preview in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hanamizuki/solopreneur --skill preview -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/preview, .gemini/skills/preview, .github/skills/preview and .opencode/skills/preview in your project.
Going by SKILL.md and its folder, Preview needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (node, vercel, bash and npm). Our summary lists: Node.js; A Bash shell.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Preview is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Preview: Trip Map Builder (hiyeshu/trip-map-builder, 244 stars), Show Me (tellahq/opensession, 392 stars), Show Me (mirumee/nimara-ecommerce, 129 stars) and Design It (smallnest/goal-workflow, 290 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hanamizuki (a GitHub user) maintains it in hanamizuki/solopreneur, which has 152 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on September 26, 2026.
Source: hanamizuki/solopreneur on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.