markilo 1.0.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,349 +1,133 @@
1
1
  <p align="center">
2
2
  <picture>
3
- <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
4
- <img src="assets/logo-light.svg" alt="Markilo" width="360">
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/logo-dark.svg">
4
+ <img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/logo-light.svg" alt="Markilo" width="340">
5
5
  </picture>
6
6
  </p>
7
7
 
8
+ <h3 align="center">A brand identity studio inside Claude Code.</h3>
9
+
8
10
  <p align="center">
9
- <b>The open-source brand identity studio for Claude Code.</b><br>
10
- Research a brand, design original SVG identities, check them against the marks and names you collected, and export every asset you need.
11
+ Three original identities for your product, drawn as real SVG and checked for originality.<br>
12
+ You compare them, choose or ask for changes — and get every file the product needs.
11
13
  </p>
12
14
 
13
15
  <p align="center">
14
16
  <a href="https://github.com/cihantopac/markilo/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/cihantopac/markilo/actions/workflows/ci.yml/badge.svg"></a>
15
- <a href="LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-d12c12"></a>
16
- <img alt="Version" src="https://img.shields.io/badge/version-1.0.0-101218">
17
- <img alt="Platforms" src="https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-101218">
17
+ <a href="https://www.npmjs.com/package/markilo"><img alt="npm" src="https://img.shields.io/npm/v/markilo?color=7e1d2a&label=npm"></a>
18
+ <a href="https://github.com/cihantopac/markilo/blob/main/LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-16120f"></a>
18
19
  </p>
19
20
 
20
- ---
21
-
22
- Markilo is not a "generate a logo" prompt. It is a Claude Code plugin plus a deterministic toolchain that
23
- **researches** a product, **designs** original vector marks, **measures** them (small-size legibility,
24
- balance, contrast, one-color reproduction), **compares** them against competitors and each other, and
25
- **exports** a complete, platform-correct asset kit — all locally, with no servers, paid APIs or accounts.
26
-
27
- ![Markilo's own identity: every logo file, exported by Markilo](assets/kit-overview.png)
28
-
29
- <sub>Markilo's identity was made by running Markilo on itself, end to end: repository and market research (64 sources,
30
- 37 competitor and category marks), five new directions plus the previous identity, an early sketch review, an
31
- independent critic gate that only one concept passed (`overlap`: two arches sharing a vermilion stem), then finalize
32
- and export. Every image in this README and the plugin icon is an unedited Markilo export (`branding/`). No trademark
33
- registry search has been done yet; the guidelines say so.</sub>
34
-
35
- ## Highlights
36
-
37
- - **Brand intelligence, with receipts.** Repository and website scans, competitor and market research, and a persistent
38
- Brand Intelligence Profile where every finding is `observed`, `inferred`, `verified` or `user-provided` and carries a
39
- source and a date. Markilo reads what the product actually does — value proposition, features, audience, surfaces,
40
- platforms, languages, pricing — and keeps what the product states apart from what it inferred. Unknowns are recorded
41
- as gaps instead of guesses.
42
- - **Originality engine.** Silhouette overlap under rotation and mirroring, perceptual hashes (aHash/dHash/DCT pHash),
43
- structural descriptors, palette distance (CIEDE2000), stock-primitive detection, concept-to-concept diversity, name
44
- confusion (spelling, sound, stems) and trademark pre-screening plans for WIPO, TMview, USPTO, TÜRKPATENT and UKIPO —
45
- written up as an Originality & Similarity Report with side-by-side overlays. Verdicts say how much evidence they rest
46
- on — counted in distinct brands, with official, store and catalog sources rated apart: with too few references or no
47
- logged registry searches the answer is `insufficient-evidence`, never "clear". Calibrated on 24 real brands' logos
48
- (AUC 0.99; mirrored, rotated and recolored copies always caught; see [docs/ORIGINALITY.md](docs/ORIGINALITY.md)). It
49
- finds conflicts among what was collected; it cannot prove a mark is unique or registrable.
50
- - **Ideas before drawings.** Every identity starts from a longlist of at least 12 visual hooks from the product, the
51
- audience, the name, type and abstract character; a critic strikes the ones a stranger would read as a UI glyph or a
52
- cliché from the words alone, before anything is drawn, and the gallery shows what was kept and why.
53
- - **Real design output.** Symbols built from construction specs — primitives, booleans, gaps, offsets, fillets,
54
- repeats and real letterforms, compiled with Skia's path engine into clean SVG — and tuned by measured variants.
55
- Wordmarks outlined from 24 bundled OFL families chosen for the brief's character, with real kerning (Turkish and
56
- other Latin-extended letters checked in every weight); every changed letter is measured against the font's own
57
- alphabet, so a word that would be misread ("an e that lost its eye", a dot that reads as a hyphen) is caught before
58
- review. Lockups aligned to cap height, OKLCH tonal palettes with WCAG pairs.
59
- - **Looks before it talks.** Directions start as cheap sketches that a critical review must pick before any are
60
- developed. Every concept is rendered to a review sheet (16–256 px, light, dark, black, white) and a context sheet (a
61
- browser tab, a home screen next to the competitors, a site header, an avatar). An independent critic records a blind
62
- first impression before it reads the rationale, and only concepts that pass its gate (brand fit, distinctiveness and
63
- memorability ≥ 6 and "a senior designer would present it") reach you. A first look on the edge of the bar is decided
64
- by the majority of three cold looks from fresh critics, and the designer can never approve its own work.
65
- - **Complete asset kit.** Logo variants, favicons, PWA + maskable icons, iOS (incl. dark/tinted and Icon Composer
66
- layers), macOS `.icns`, Android adaptive + themed icons, Windows ICO + MSIX assets, Open Graph and social images,
67
- marketing templates, design tokens and brand guidelines, with a manifest of sizes and hashes. You get what the
68
- product needs: a web app gets web, social, tokens and guidelines; app and desktop icon sets are one question away.
69
- - **Brand Preview Gallery.** One offline HTML file comparing concepts on realistic surfaces (browser tab, home screen,
70
- Dock, store listing, link preview, business card). Pin notes on the mark itself, compare two concepts side by side,
71
- mark a preferred one, and send the decisions straight back to Claude (`gallery --serve`, local only) or paste them.
72
- - **Monorepo-aware.** Finds the sites, apps and packages of a monorepo, registers the user-facing ones as brands of a
73
- family, and researches each separately — including existing icon sets and design-system docs.
74
- - **Families and locked brands.** Multi-product families share a system; existing identities can be **locked** so they
75
- are reproduced byte-for-byte and never redesigned.
76
- - **Fits your stack.** `install-assets --framework auto` puts the files where Next.js (App Router metadata files),
77
- Laravel, Flutter (Android, iOS and web) or a static site expects them — a dry run first, backups before anything is
78
- replaced.
79
- - **Not tied to one AI.** Claude Code is home, but the toolchain is a plain CLI: `agent-setup` gives VS Code with
80
- Copilot, Codex and Cursor the same workflow, with the researcher, designer and critic as sub-agents on the models
81
- you choose (see [docs/INTEGRATIONS.md](docs/INTEGRATIONS.md)).
82
-
83
- ## Measured quality
84
-
85
- Markilo is benchmarked end to end with nobody steering, on nine realistic products (an independent SaaS, a mobile
86
- app, a multi-product family, a developer tool, an online shop, a B2B platform, a learning app, a feature-flag service
87
- and a team secrets manager). Six of them were **holdouts** for a while: written before the changes they test and
88
- never used for tuning until those results were in. The plugin researches, writes the brief, designs, critiques, and
89
- finalizes only what passes its own gate. Blind judges then rate every critiqued concept from the brief and the images
90
- alone. Every run, image and score is in [bench/](bench).
91
-
92
- | Version | Runs | Passed the gate | Opus 5.5 judge would present (of concepts it judged) | Time per run | Cost per run (API equivalent) |
93
- | ------------ | ------------------------------------------- | ------------------------ | ---------------------------------------------------- | ------------ | ----------------------------- |
94
- | 0.4.0-rc.1 | 3 | 0 | — | 11–21 min | $2.61–3.67 |
95
- | 0.4.0-rc.2 | 3 | 1 | — | 8–15 min | $1.60–2.68 |
96
- | 0.4.0-rc.3 | 3 | 2 | 0 of 2 (the two that passed) | 14–24 min | $3.15–4.37 |
97
- | 0.4.0-rc.5 | 9 (6 on holdouts) | 2 | 0 of 12 | 10–19 min | $2.29–4.41 |
98
- | 0.4.0-rc.7 | 11 (2 new holdouts) | 0 | 2 of 5 — both rejected by the gate | 6–16 min | $1.66–3.30 |
99
- | 0.4.0-rc.8 | 9 | 0 | 0 of 3 — the recalibrated gate agreed on all 3 | 8–18 min | $1.91–3.48 |
100
- | 0.4.0 (rc.9) | 9 | 2 | Portwise 2 of 4 looks, Dozeline 0 of 4 | 14–28 min | $3.00–7.13 |
101
- | 0.5.0-rc.1 | 9 (4 on new holdouts) | 2 | 2 of 29, the two that passed (3/3 and 2/3 looks) | 14–36 min | $3.37–5.86 |
102
- | **1.0.0** | **14 (5 sealed holdouts, 9 on real tools)** | **2, both false passes** | **0 of 43 (Opus + Sonnet panel)** | 21–35 min | $6.85–13.87 |
103
-
104
- What this shows, plainly:
105
-
106
- - **1.0 did not make unattended work better, and says so.** On five briefs sealed before any 1.0 change and on three
107
- real developer tools, an independent panel (Opus and Sonnet, blind) would present none of the 1.0 concepts; it would
108
- not have presented the 0.5.0-rc.1 ones either. The two 1.0 gate passes were edge passes the panel rejected; the
109
- gallery now marks such passes "at the edge". What 1.0 did improve is everything around the design: safety, the
110
- install transaction, letter checks, typefaces, the critique process and the evidence. See
111
- [bench/results/1.0.0](bench/results/1.0.0).
21
+ <p align="center">
22
+ <img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/screens/gallery.png" alt="The Markilo Gallery showing three proposals, A Hallmark, B Inktrap and C Seal, side by side" width="100%">
23
+ </p>
24
+ <p align="center"><sub>The Gallery with Markilo's own round of three proposals (from <a href="https://github.com/cihantopac/markilo/tree/main/branding">branding/</a>; the chosen one, A, already shows its finished icon).</sub></p>
112
25
 
113
- - **Unattended, Markilo still rarely reaches its own gate** — 6 of the 47 validation runs since rc.5, 2 of 12 on
114
- briefs that were still untouched holdouts when they ran.
115
- - **For the first time, what passes is what a strict judge would present.** In 0.5.0-rc.1 the gate and the Opus judge
116
- (the majority of three looks per concept) agreed on all 29 critiqued concepts, and both identities that passed —
117
- Quillnest, and Pinehold on a brief written for this round — were presentable to the judge. In 0.4.0 the two that
118
- passed split it 2 of 4 and 0 of 4.
119
- - **Words beat invented symbols.** Both passes were wordmark-led: the name drawn from a real typeface with one letter
120
- changed, the icon cut from it (2 of 13 judged presentable; invented symbols 0 of 16). Symbols assembled from
121
- rectangles, circles and polygons keep reading as UI icons or objects — a power button, a wallet, an eye.
122
- - **Reworking a failed idea does not work, so Markilo stopped doing it.** Of 34 concepts sent back after a failed gate
123
- in earlier rounds, one passed later, after three rounds. The gate now says `fix` once or `reject`; in rc.1 one
124
- concept got a fix round, and the budget went to more directions instead (43, up from 27).
125
- - **How the gate got here was measured.** The critic's scores given after reading the rationale barely tracked the
126
- strict judge (Spearman 0.20 on 32 concepts), a cold look did much better (0.51); the gate rests on the cold look.
127
- Across all runs the gate and the judges agreed on 77 of 86 critiqued concepts. When nothing passes, Markilo says
128
- so and nothing is finalized or exported.
129
- - **What moved the needle was measured, not guessed.** Hairline gaps came from Markilo's own guide; clichés reached
130
- development because the sketch review picked the best of weak boards; the name's initial with a cut became the
131
- default move once objects were ruled out; same-colour layers left seams. Each was found in the runs and fixed in
132
- the plugin. The model was not the bottleneck (Opus 5.5 as designer did no better on the SaaS brief).
26
+ ## Three proposals → Compare → Select or request changes → Finalize → Export
133
27
 
134
- Markilo is built to work with you: you pick the sketch to develop, react in the gallery and decide. Unattended runs
135
- measure the floor. The two that passed in 0.5.0-rc.1, as exported (fictional products, no human edits):
28
+ Markilo reads your product, writes a short brief and draws **three genuinely different identities**. In the Gallery you
29
+ see each one on light and dark, as an app icon and at 16 px, with its idea, its strengths and its honest weaknesses.
30
+ Nothing is finalized without your choice.
136
31
 
137
32
  <table>
138
33
  <tr>
139
- <td><img src="bench/results/0.5.0-rc.1/edu-app/quillnest/overview.png" alt="Quillnest logo files made by Markilo unattended"></td>
140
- <td><img src="bench/results/0.5.0-rc.1/secrets-team-r2/pinehold/overview.png" alt="Pinehold logo files made by Markilo unattended"></td>
34
+ <td width="34%" valign="top"><img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/screens/gallery-request.png" alt="A proposal with Request changes chosen: chips for simpler and better at small sizes, a note, and a pin on the mark"></td>
35
+ <td valign="top"><img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/screens/gallery-compare.png" alt="Two proposals compared side by side, each with a Prefer this button"></td>
141
36
  </tr>
142
37
  <tr>
143
- <td><sub>Quillnest (writing coach for teenagers): passed the gate; Opus judge "present" in 3 of 3 looks, 6.3 — "a
144
- smiling face built from a q, with the orange dot as a nose".</sub></td>
145
- <td><sub>Pinehold (secrets manager for small teams, a fresh holdout): passed the gate; Opus judge "present" in 2 of 3
146
- looks, 6.3 — "an arch or doorway sheltering an orange seed".</sub></td>
38
+ <td><sub><b>Request changes</b> in your words: pick what to change, add a note, or pin a spot on the mark.</sub></td>
39
+ <td><sub><b>Compare</b> any two side by side and say which you prefer and why. Your decisions go straight back to Claude.</sub></td>
147
40
  </tr>
148
41
  </table>
149
42
 
150
- ## Install
151
-
152
- Requirements: [Claude Code](https://code.claude.com) and Node.js ≥ 20.10. Nothing else — the toolchain ships prebuilt
153
- (pure JavaScript + WebAssembly) and works on macOS, Linux and Windows.
154
-
155
- In Claude Code:
156
-
157
- ```text
158
- /plugin marketplace add cihantopac/markilo
159
- /plugin install markilo@markilo
160
- ```
161
-
162
- Or from a terminal:
163
-
164
- ```bash
165
- claude plugin marketplace add cihantopac/markilo
166
- ```
167
-
168
- ```bash
169
- claude plugin install markilo@markilo
170
- ```
171
-
172
- To update later: `claude plugin marketplace update markilo`, then `claude plugin update markilo@markilo` and restart
173
- Claude Code.
174
-
175
- Without Claude Code — for other coding agents ([docs/INTEGRATIONS.md](docs/INTEGRATIONS.md)) and scripts — the same
176
- toolchain is on npm:
177
-
178
- ```bash
179
- npm install -g markilo
180
- ```
181
-
182
- Then `markilo help`; to run without a global install, use `npx markilo <command>`.
183
-
184
- ### `/markilo` and `/markilo:design`
185
-
186
- After installing, both `/markilo` and `/markilo:design` start the studio (verified with Claude Code 2.1.308). If another
187
- command already uses the name `/markilo` on your machine, Markilo can install a tiny personal skill that forwards to the
188
- plugin. It never touches files it did not create:
189
-
190
- ```bash
191
- node ~/.claude/plugins/marketplaces/markilo/plugin/dist/markilo.mjs shortcut install --yes
192
- ```
193
-
194
- (`shortcut status` and `shortcut uninstall --yes` are available too.)
43
+ ## Made with Markilo
195
44
 
196
- ## Use
45
+ Real products, each from one round of three proposals with its owner choosing. These are the files Markilo exported,
46
+ unedited.
197
47
 
198
- | Command | What it does |
199
- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
200
- | `/markilo:design <url, repo, name or task>` | The full studio: discover → research → brief → explore → design → verify → review → refine → export → deliver |
201
- | `/markilo:research <url or repo>` | Brand Intelligence Profile and brief only |
202
- | `/markilo:concepts <brand>` | Creative directions and verified SVG concepts |
203
- | `/markilo:originality <concept, file or name>` | Similarity analysis, name check and trademark pre-screening plan |
204
- | `/markilo:refine <brand> <concept> <feedback>` | Iterate with verification, then finalize |
205
- | `/markilo:export <brand>` | Generate the asset kit (optionally install web assets into your project) |
206
- | `/markilo:gallery` | Build the Brand Preview Gallery |
207
- | `/markilo:audit <logo or brand>` | Evaluate an existing identity: keep, refresh or redesign |
48
+ <table>
49
+ <tr>
50
+ <td width="33%"><a href="https://github.com/cihantopac/relivaro"><img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/made-with/relivaro-og.png" alt="Relivaro identity: a cairn of stones and the word Relivaro"></a></td>
51
+ <td width="33%"><a href="https://github.com/cihantopac/searvex"><img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/made-with/searvex-og.png" alt="Searvex identity: a broad-nib V and the word searvex"></a></td>
52
+ <td width="33%"><a href="https://github.com/cihantopac/jourilo"><img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/made-with/jourilo-og.png" alt="Jourilo identity: a book serif with a hanging J"></a></td>
53
+ </tr>
54
+ <tr>
55
+ <td><sub><b>Relivaro</b> — release engineering. ≈ $15, seven runs while the 1.1 process was being corrected.</sub></td>
56
+ <td><sub><b>Searvex</b> — search intelligence. $11.27: one round, one development, one direct change.</sub></td>
57
+ <td><sub><b>Jourilo</b> — product experience. $5.29: one round, finished as chosen.</sub></td>
58
+ </tr>
59
+ </table>
208
60
 
209
- Requests can be written in any language; files and reports are produced in English.
61
+ Markilo's own identity came out of the same process: $13.68 for one round and three icon options.
210
62
 
211
- ### A typical session
63
+ ## The kit you get
212
64
 
213
- ```text
214
- you › /markilo:design ./ — we're launching this as a product, it needs an identity
215
- › (Markilo scans the repo: package.json, README, existing favicon, CSS colors, fonts)
216
- › Discover: no real identity yet → mode "new". May I research competitors on the web? (y)
217
- › Research: 8 competitors, category codes (green + shields everywhere), 3 gaps recorded
218
- › Brief: 3 questions, each with a suggested answer
219
- › Ideas: 16 visual hooks; the critic strikes 11 from the words ("a gauge", "a return key"), keeps 5
220
- › Explore: 3 directions from the kept ideas — "Pulse" monogram, "Lighthouse" pictogram, "Signal" abstract
221
- › Sketch: 4 quick constructions per direction; you pick in the gallery, with the critic's reading beside each
222
- › Design: concept-designer agents develop the picks; each iterates on its review and context sheets
223
- › Verify: "Lighthouse" 71% similar to a competitor reference → reworked from the idea up
224
- › Critique: blind first look ("reads as: a pin, a drop") then scores; only "Pulse" passes the gate
225
- › Review: gallery at http://127.0.0.1:…/ — pin a note on the stem, compare, "Send to your agent"
226
- › Deliverables: a web app → logos, web, social, tokens, guidelines (app icons are one question away)
227
- › Finalize "Pulse" → Export: 80 files → Next.js detected: 10 files for app/ and public/ (dry run, 0 overwrites)
228
- ```
65
+ <p align="center">
66
+ <img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/kit-overview.png" alt="Every Markilo logo file: primary, secondary, compact, symbol and wordmark in color, reversed, black and white" width="100%">
67
+ </p>
229
68
 
230
- ### Monorepos and product families
69
+ Logos in color, reversed, black and white (SVG + PNG) · favicons, PWA and maskable icons · iOS, macOS, Android and
70
+ Windows app icons · Open Graph and social images · design tokens · brand guidelines · a manifest with sizes and
71
+ checksums. Each kit opens with a preview page that shows every file on the background it is made for:
231
72
 
232
- ```text
233
- /markilo:research This is our product family monorepo at ./ — sites in products/, apps in apps/. The Ledger app's existing identity is locked.
234
- ```
235
-
236
- Markilo runs `research monorepo`, shows you the packages it considers brands, and after you confirm registers them
237
- (with their folders) and scans each one. Work then proceeds family-first: shared system, master brand, sites one by one,
238
- and many apps as one coherent app-icon system. Exports can be copied into any package with
239
- `install-assets --project <folder>` (dry run first).
73
+ <p align="center">
74
+ <img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/screens/kit-preview.png" alt="The asset kit preview page for Markilo: the primary logo on paper and on dark, the palette and a Start here table" width="100%">
75
+ </p>
240
76
 
241
- ## What you get
77
+ The Gallery, the kit preview and the guidelines work offline from a single file, in **English or Turkish**, in
78
+ **light, dark or system** theme — on a phone too.
242
79
 
243
- ```text
244
- brand/
245
- ├── markilo.json # workspace: brands, family
246
- ├── brands/<slug>/
247
- │ ├── brief.json · profile.json · answers.json · decisions.md
248
- │ ├── research/references/ # competitor marks for comparison (git-ignored)
249
- │ ├── concepts/<id>/ # concept.json, symbol.svg, wordmark.svg, review/*.png
250
- │ ├── reports/ # originality-<id>.md|json, quality-<id>.md|json
251
- │ ├── final/ # approved masters + brand.json
252
- │ └── exports/
253
- │ ├── logos/ # primary, secondary, compact, symbol, wordmark, appmark × color/reversed/black/white/ink (SVG + PNG)
254
- │ ├── web/ # favicon.svg (dark-mode aware), favicon.ico, apple-touch-icon, icon-*/maskable-*, site.webmanifest, head-snippet.html
255
- │ ├── ios/ # AppIcon.appiconset (default, dark, tinted), icon-composer/ layers
256
- │ ├── macos/ # AppIcon.icns, .iconset, full-bleed 1024 for macOS 26+
257
- │ ├── android/ # mipmap-* legacy + adaptive foreground/background/monochrome, anydpi-v26 XML, Play icon
258
- │ ├── windows/ # app.ico, MSIX Assets (scales, target sizes, unplated variants)
259
- │ ├── social/ # og-image (+dark), GitHub social preview, X header, LinkedIn cover, avatar
260
- │ ├── marketing/ # watermarks, email signature, title slide, business card
261
- │ ├── tokens/ # tokens.json (W3C DTCG), tokens.css, palette.json
262
- │ ├── guidelines/ # brand-guidelines.md, index.html
263
- │ └── asset-manifest.json # every file: purpose, size, sha256, source master
264
- └── gallery/index.html # Brand Preview Gallery
265
- ```
80
+ <p align="center">
81
+ <img src="https://raw.githubusercontent.com/cihantopac/markilo/markilo--v1.1.2/assets/screens/gallery-mobile-tr-dark.png" alt="The Gallery on a phone, in Turkish and dark theme" width="300">
82
+ </p>
266
83
 
267
- Platform sizes and safe zones are kept in [`src/export/specs.ts`](src/export/specs.ts) with the official source for
268
- each requirement (Apple HIG and Xcode docs, Android Developers, Microsoft Learn, W3C/MDN/web.dev, OGP, GitHub, LinkedIn).
269
- See [docs/OUTPUTS.md](docs/OUTPUTS.md).
84
+ ## Install
270
85
 
271
- ## How it works
86
+ In Claude Code:
272
87
 
273
88
  ```text
274
- Claude Code ── skills/ (process: research, strategy, design, critique) ── agents/ (researcher, designer, critic)
275
- │ node ${CLAUDE_PLUGIN_ROOT}/dist/markilo.mjs …
276
- ▼
277
- Toolchain (src/ → plugin/dist/): XML/SVG lint & optimize · resvg-wasm rendering · shape features & perceptual hashes ·
278
- similarity & genericity · quality scorecard · fontkit wordmarks · lockups · OKLCH palettes · research scanners ·
279
- originality & quality reports · exporters (ICO/ICNS encoders) · gallery · guidelines
280
- ```
281
-
282
- The rule that keeps it honest: **anything measurable comes from code; anything judged is labeled as judgment.**
283
- Read [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [docs/ORIGINALITY.md](docs/ORIGINALITY.md).
284
-
285
- ## The toolchain on its own
286
-
287
- The same CLI runs without Claude Code — useful in CI or scripts:
288
-
289
- ```bash
290
- node plugin/dist/markilo.mjs help
291
- ```
292
-
293
- ```bash
294
- node plugin/dist/markilo.mjs compare my-logo.svg competitor.png
89
+ /plugin marketplace add cihantopac/markilo
90
+ /plugin install markilo@markilo
295
91
  ```
296
92
 
297
- Examples: `wordmark --text "Acme" --font sora --weight 600 -o acme.svg`, `score logo.svg`, `palette "#f45d2c"`,
298
- `render logo.svg -o sheet.png --sheet`, `name check Acme --against Acmo,Akme`. Every command prints JSON.
299
-
300
- ## Privacy and permissions
301
-
302
- - Everything runs locally, with no accounts, servers or paid APIs. The toolchain reaches the network only in the
303
- research and font commands (`research site`, `research competitors`, `research app`, `fonts search/add`), which require
304
- `--allow-network`; the skills ask you first, and before web searches that would reveal unreleased names. Site
305
- research honours `robots.txt`.
306
- - The repository scanner never opens secret-like files (`.env*`, keys, credentials), and profiles store project-relative
307
- paths, never your user name or folder layout.
308
- - Markilo writes only inside the brand workspace (`./brand`). Copying assets into your project is a dry run until you
309
- approve `--apply`; existing files are never overwritten without `--force` and are backed up first.
310
- - `gallery --serve` listens on `127.0.0.1` only, with a random token, and serves only the gallery and approved artwork.
311
- - Raw research captures and competitor references are git-ignored inside the workspace.
312
-
313
- Details: [docs/PRIVACY.md](docs/PRIVACY.md) · [SECURITY.md](SECURITY.md).
314
-
315
- ## Limitations
93
+ Then: `/markilo <your repo, URL or product name>`.
316
94
 
317
- - **Not legal advice.** Similarity analysis and registry pre-screening do not clear a trademark. No results ≠ unique.
318
- Use a trademark attorney before adopting a brand.
319
- - Automated similarity measures form, composition, structure and color. **Conceptual** similarity (the same idea drawn
320
- differently) is judged by the critic agent and by you.
321
- - Reference comparison covers only the marks collected for the brand; collecting good references matters.
322
- - Raster images (PNG/JPEG) are analyzed for similarity; vector tracing of raster logos is not included.
323
- - Icon Composer (`.icon`) files are not written directly; Markilo exports the layer sources to import.
324
- - X (Twitter) image sizes could not be verified against x.com documentation (blocked to automated readers).
325
- - Design quality still depends on the model and on your direction: unattended runs rarely pass the critic gate, and a
326
- strict independent judge accepts only a few of the marks they develop (see [Measured quality](#measured-quality)).
327
- On real developer tools with coined names, twelve unattended runs produced no identity an independent panel would
328
- present ([bench/results/1.0.0/real-projects.md](bench/results/1.0.0/real-projects.md)). Markilo raises the floor and
329
- refuses to hide weak work; taste is a conversation, and the gallery is where you steer it.
330
-
331
- ## Develop
95
+ Without Claude Code — for other coding agents and scripts — the same toolchain is on npm (Node.js ≥ 20.10, macOS,
96
+ Linux and Windows):
332
97
 
333
98
  ```bash
334
- npm ci
335
- ```
336
-
337
- ```bash
338
- npm run ci
99
+ npm install -g markilo
339
100
  ```
340
101
 
341
- `npm run ci` runs Biome, TypeScript, Vitest (unit, integration and bundled-CLI tests), the build and a check that the
342
- committed `plugin/dist/` matches the sources. `node scripts/smoke.mjs` takes an empty folder to installed assets with
343
- the bundle alone (CI also runs it on the copy `claude plugin install` produces). `node scripts/bench.mjs` runs the
344
- end-to-end benchmark ([bench/](bench)). Plugin evals live in [`plugin/evals/`](plugin/evals) (`claude plugin eval plugin`).
345
- See [CONTRIBUTING.md](CONTRIBUTING.md) and [docs/MAINTAINING.md](docs/MAINTAINING.md).
102
+ ## What it costs, and what it has shown
103
+
104
+ - **The toolchain is free.** It runs locally — rendering, measuring, originality checks, export — with no account,
105
+ server or paid service.
106
+ - **The design work is done by the AI model and uses your Claude Code usage.** In validation, one round of three
107
+ proposals cost $5–10 and a finished identity $5–15 (API-equivalent, measured by Claude Code; on a subscription it
108
+ counts against your plan instead). `markilo cost` tracks it against a budget you set (default $12) and stops paid
109
+ work when it is reached.
110
+ - **Steered, it works; unattended, it does not yet.** With their owner choosing, all three real products above reached
111
+ an identity the owner approved — three products and one owner's judgment, not a benchmark. Unattended, 1.0 produced
112
+ no identity a blind judge panel would present. The full record, with every run and image:
113
+ [benchmarks](https://github.com/cihantopac/markilo/blob/main/docs/BENCHMARKS.md) ·
114
+ [1.1 validation log](https://github.com/cihantopac/markilo/blob/main/docs/RELEASE-1.1.md).
115
+ - **Not legal advice.** The originality checks compare against the marks Markilo collected; they cannot prove a mark is
116
+ unique or registrable. No trademark registry search is done for you.
117
+
118
+ ## Learn more
119
+
120
+ [Usage and commands](https://github.com/cihantopac/markilo/blob/main/docs/USAGE.md) ·
121
+ [Asset outputs](https://github.com/cihantopac/markilo/blob/main/docs/OUTPUTS.md) ·
122
+ [Originality](https://github.com/cihantopac/markilo/blob/main/docs/ORIGINALITY.md) ·
123
+ [Architecture](https://github.com/cihantopac/markilo/blob/main/docs/ARCHITECTURE.md) ·
124
+ [Other coding agents](https://github.com/cihantopac/markilo/blob/main/docs/INTEGRATIONS.md) ·
125
+ [Privacy](https://github.com/cihantopac/markilo/blob/main/docs/PRIVACY.md) ·
126
+ [Security](https://github.com/cihantopac/markilo/blob/main/SECURITY.md) ·
127
+ [Changelog](https://github.com/cihantopac/markilo/blob/main/CHANGELOG.md) ·
128
+ [Contributing](https://github.com/cihantopac/markilo/blob/main/CONTRIBUTING.md)
346
129
 
347
130
  ## License
348
131
 
349
- [Apache-2.0](LICENSE). Bundled fonts are SIL OFL 1.1; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
132
+ [Apache-2.0](https://github.com/cihantopac/markilo/blob/main/LICENSE). Bundled fonts are SIL OFL 1.1; see
133
+ [THIRD_PARTY_NOTICES.md](https://github.com/cihantopac/markilo/blob/main/THIRD_PARTY_NOTICES.md).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markilo",
3
- "version": "1.0.0",
4
- "description": "AI-powered brand identity studio for Claude Code: research, originality analysis, SVG identity design, verification and complete asset export.",
3
+ "version": "1.1.2",
4
+ "description": "Brand identity studio for Claude Code: three original SVG identities to compare and choose from, originality checks, and a complete asset kit (logos, app icons, favicons, social images, tokens, guidelines).",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "author": "Cihan Topaç (https://github.com/cihantopac)",
@@ -22,7 +22,9 @@
22
22
  "favicon",
23
23
  "app-icon",
24
24
  "design-system",
25
- "originality"
25
+ "originality",
26
+ "brand-guidelines",
27
+ "design-tokens"
26
28
  ],
27
29
  "engines": {
28
30
  "node": ">=20.10"
Binary file
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "markilo",
3
3
  "displayName": "Markilo",
4
- "version": "1.0.0",
5
- "description": "AI-powered brand identity studio: brand research, originality and similarity analysis, original SVG identity design with visual verification, and complete asset export (web, iOS, Android, macOS, Windows, social).",
4
+ "version": "1.1.2",
5
+ "description": "Brand identity studio: researches your product, draws three original SVG identities for you to compare and choose from, checks originality, and exports a complete asset kit (web, iOS, Android, macOS, Windows, social, tokens, guidelines).",
6
6
  "author": {
7
7
  "name": "Cihan Topa\u00e7",
8
8
  "url": "https://github.com/cihantopac"