简体中文 · English
# dsh-plugin-tailor > From “it runs” to “ship it”: audit → pick a style → brand assets → bilingual README → pre-release verification.MIT · Node >=20 · DSH >=0.2.0-rc.2 <0.3.0 · v0.5.0
Install · Seven styles · Six tools · Roadmap
Real output: tailor audit ../dsh-plugin-resolver and tailor verify … (VHS tape to re-record)
tailor --help: six commands and examples, same logic as the DSH tools.
12 concepts, one per frame; the full contact sheet is above.
logo-dark |
icon |
Light and dark banners/logos: dark for the README, light for docs and slides.
| Concept | Best for | Concept | Best for | |---|---|---|---| | `needle` | tailoring / custom / craft | `stitch` | done / verify / delivery | | `quill` | writing / docs / narrative | `arcs` | growth / metrics / evidence | | `orbit` | network / remote / connection | `prompt` | CLI / terminal / tools | | `bubble` | product / interaction / light | `radar` | monitoring / scanning / security | | `hexstack` | platform / panel / layers | `monogram` | mature tools / minimal | | `spark` | generic / brand / highlight | `layers` | architecture / modules / reuse | One run writes 12 files: | File | Size | Purpose | |---|---|---| | `icon.svg` | 512×512 | icon / avatar | | `icon-maskable.svg` | 512×512 | PWA / Android, 80% safe area | | `logo.svg` / `logo-dark.svg` | 760×176 | light / dark lockups | | `wordmark.svg` / `wordmark-dark.svg` | 760×120 | text-only lockup for slides / video | | `banner.svg` / `banner-light.svg` | 1280×400 | dark / light banners | | `social-preview.svg` | 1280×640 | GitHub social preview | | `brand-sheet.svg` | 1280×auto | 12 concepts + palette contrast | | `brand-tokens.json` | — | palette, contrast, type, spacing and motion tokens | | `assets/README.md` | — | asset index, usage and switch commands | The palette is checked for WCAG contrast before it reaches the tokens: body ≥7:1, graphics ≥3:1; dry-run lists every check. ```sh node bin/tailor.mjs brand . --style=evidence --concept=needle \ --tagline="From it runs to ship it." --apply --force ``` Dry-run lists files, concept and contrast checks; `apply` writes, and existing files are skipped by default. ## Visual system Visuals are a system of explainable rules, not "add a banner". The design and motion principles live in [docs/DESIGN.md](docs/DESIGN.md) (from emotion-design / apple-design / hallmark: decide the emotion first, motion must carry information, no fake terminal chrome, spacing and type go into tokens).
Mark construction: 6 beats, ~3s; the last beat holds for 2s instead of looping decoratively.
Three layout engines, configured in a style's `visual` block (custom styles can use them too): | engine | Styles | First screen | Nav | Demo | Feel | |---|---|---|---|---|---| | `editorial` | `evidence` / `minimal` | left-aligned banner or type-only | inline links | 720–760px | long-form, dense | | `centered` | `terminal` / `platform` | centered logo + centered H1 | `` chips | 760px | product homepage, clear anchor | | `showcase` | `mobile` / `playful` / `product` | full-width banner + centered H1 | `` chips | 860px | launch page, visuals first | Configurable: `engine`, `badgeStyle` (flat-square / for-the-badge), `demoWidth`, `navStyle`, `featureCards`, `footer`; schema in [styles/README.md](styles/README.md). The visual audit is now 14 checks (brand dimension weighs 20%): logo size/ratio, light/dark pairs, banner ratio, 2:1 social preview, maskable icon, wordmark, tokens, demo asset, README image count, alt coverage, first-screen image, width control. `repo_audit` sorts the gaps by impact. ## Tool output Real CLI output, not mockups; each screenshot is rendered from the actual stdout with the command in the frame.
tailor styles: describes styles only, no repository names.
tailor brand . --style=evidence --concept=needle: dry-run lists 8 files and 12 concepts.
tailor verify: on PASS it reports links, images, anchors, sections and leftover TODOs.
Real CI: the Node 20 / 22 / 24 jobs all pass in 19 seconds.
## Known limitations - **The score measures structure and evidence presence, not prose quality**: 100 does not mean the README is pleasant to read; a human still decides. - **Drafts must be reviewed**: `TODO(tailor)` markers are for you to fill; `repo_verify` reports leftover TODOs as a warning. - **zh / en only**, no auto style selection, no auto commit / push / publish. - **No real screenshots or images**: `repo_brand` only generates SVG geometry and tokens; the demo GIF/screenshots must be recorded from a real run. - **Motion is a GIF explainer, not interactive animation**: `mark-motion.gif` only explains the construction; a README cannot honour `prefers-reduced-motion`. - **Brand assets are geometric SVG, not illustration/photography**: illustration-level work still needs a human or an image model; `repo_brand` guarantees concept choice, 12 files, light/dark pairs, contrast QA, consistency and reproducibility. - **Invalid custom styles are skipped**: `repo_styles` lists the file and the reason; the loader does not guess or auto-fix. - **`collectFacts` dominates runtime** (git subprocesses + directory walk); the judgement logic itself is effectively free. - **SVG text metrics depend on system fonts** (Inter / Segoe UI / Microsoft YaHei), so widths vary slightly across machines. - npm package and plugin share the name: install `dsh-plugin-tailor`; the CLI command is `dsh-repo-tailor` (or `npx dsh-plugin-tailor`); release steps in [PUBLISHING.md](PUBLISHING.md). ## Security boundaries | Action | Boundary | |---|---| | Read | repository files only, plus `git status/log/tag`; the plugin makes no network requests | | Write (only with `apply: true`) | `README.md` / `README.en.md` / `assets/*.svg` / `assets/README.md` / `.tailor/baseline.json` | | Refuse | path traversal (`../`), hand-written README without `force`, existing assets without `force`, dirty worktree without `force` | | Never | execute repository scripts, run `npm install`, commit / push / publish, call an image model | | Dependencies | Node standard library only; zero runtime dependencies | ## FAQ **How is this different from a README template?** A template gives structure; this gives an 8-dimension audit, style-based generation, write protection and pre-release verification. Facts come from the repository; missing ones become TODOs, never invented numbers. **Will it overwrite my hand-written README?** No by default. Only files with a `generated-by` marker may be regenerated; otherwise `force` is required. **Does it need network access?** No. Badge images are loaded by GitHub from shields.io at render time; the plugin itself makes no requests. **Which languages and styles are supported?** `zh` / `en` pages; seven styles: `evidence`, `terminal`, `mobile`, `playful`, `product`, `platform`, `minimal`. Legacy ids still work. **Why review the README after a 100 score?** The score measures structure, evidence and brand presence — not prose quality or factual correctness. A human still reads it before publishing. **When will it be on npm?** It is published: `dsh-plugin-tailor@0.5.0` (`latest` points at the current version). ## Roadmap - [x] **v0.1** 8-dimension audit, P0–P2 planning, bilingual drafts, pre-release verification - [x] **v0.2** 12 original vector concepts, light/dark brand kit, brand sheet - [x] **v0.3** style-only presets, real CLI screenshots, re-recorded demo - [x] **v0.4** structured styles (JSON + schema), custom styles, `extends`, `style:init` - [x] **v0.5** visual: 12-file brand kit, contrast QA, 3 layout engines, 44 checks, construction motion - [ ] **v0.5** npm 0.5.0 publish + `dsh-plugins` hub listing - [ ] **v0.4** `--palette` variants (warm / high-contrast / mono / follow brand) - [ ] **v0.5** side-by-side style previews from a real repository - [ ] **v0.5** optional image-model illustration mode (PNG, SVG geometry stays the default) ## Ecosystem and listings - Install helper: [`dsh-plugin-resolver`](https://github.com/sakikoTGW/dsh-plugin-resolver) (installs the right version in one tool call) - Index: [`dsh-plugins`](https://github.com/sakikoTGW/dsh-plugins) (`catalog.json` is the source of truth) - Mobile adaptation: [`dsh-plugin-resolver-dshgo`](https://github.com/sakikoTGW/dsh-plugin-resolver-dshgo) - Listing status: GitHub Release ✅ · npm ⏳ · hub catalog ⏳ ## Feedback and security - Issues and ideas:Built for DeepSeek Harness · part of dsh-plugins · back to top ↑
If it saved you time, a ⭐ helps others find it.