markilo 0.4.0 → 1.1.1

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.
Files changed (145) hide show
  1. package/README.md +132 -79
  2. package/THIRD_PARTY_NOTICES.md +26 -12
  3. package/package.json +15 -1
  4. package/plugin/.claude-plugin/icon.png +0 -0
  5. package/plugin/.claude-plugin/plugin.json +1 -1
  6. package/plugin/THIRD_PARTY_NOTICES.md +26 -12
  7. package/plugin/agents/concept-designer.md +111 -76
  8. package/plugin/agents/design-critic.md +32 -68
  9. package/plugin/dist/markilo.mjs +271 -178
  10. package/plugin/fonts/alegreya-sans/OFL.txt +93 -0
  11. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-400-normal.woff +0 -0
  12. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-500-normal.woff +0 -0
  13. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-700-normal.woff +0 -0
  14. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-800-normal.woff +0 -0
  15. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-ext-400-normal.woff +0 -0
  16. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-ext-500-normal.woff +0 -0
  17. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-ext-700-normal.woff +0 -0
  18. package/plugin/fonts/alegreya-sans/alegreya-sans-latin-ext-800-normal.woff +0 -0
  19. package/plugin/fonts/archivo/OFL.txt +93 -0
  20. package/plugin/fonts/archivo/archivo-latin-400-normal.woff +0 -0
  21. package/plugin/fonts/archivo/archivo-latin-500-normal.woff +0 -0
  22. package/plugin/fonts/archivo/archivo-latin-600-normal.woff +0 -0
  23. package/plugin/fonts/archivo/archivo-latin-700-normal.woff +0 -0
  24. package/plugin/fonts/archivo/archivo-latin-800-normal.woff +0 -0
  25. package/plugin/fonts/archivo/archivo-latin-900-normal.woff +0 -0
  26. package/plugin/fonts/archivo/archivo-latin-ext-400-normal.woff +0 -0
  27. package/plugin/fonts/archivo/archivo-latin-ext-500-normal.woff +0 -0
  28. package/plugin/fonts/archivo/archivo-latin-ext-600-normal.woff +0 -0
  29. package/plugin/fonts/archivo/archivo-latin-ext-700-normal.woff +0 -0
  30. package/plugin/fonts/archivo/archivo-latin-ext-800-normal.woff +0 -0
  31. package/plugin/fonts/archivo/archivo-latin-ext-900-normal.woff +0 -0
  32. package/plugin/fonts/atkinson-hyperlegible-next/OFL.txt +93 -0
  33. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-400-normal.woff +0 -0
  34. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-500-normal.woff +0 -0
  35. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-600-normal.woff +0 -0
  36. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-700-normal.woff +0 -0
  37. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-800-normal.woff +0 -0
  38. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-ext-400-normal.woff +0 -0
  39. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-ext-500-normal.woff +0 -0
  40. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-ext-600-normal.woff +0 -0
  41. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-ext-700-normal.woff +0 -0
  42. package/plugin/fonts/atkinson-hyperlegible-next/atkinson-hyperlegible-next-latin-ext-800-normal.woff +0 -0
  43. package/plugin/fonts/bricolage-grotesque/OFL.txt +93 -0
  44. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-400-normal.woff +0 -0
  45. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-500-normal.woff +0 -0
  46. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-600-normal.woff +0 -0
  47. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-700-normal.woff +0 -0
  48. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-800-normal.woff +0 -0
  49. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-ext-400-normal.woff +0 -0
  50. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-ext-500-normal.woff +0 -0
  51. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-ext-600-normal.woff +0 -0
  52. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-ext-700-normal.woff +0 -0
  53. package/plugin/fonts/bricolage-grotesque/bricolage-grotesque-latin-ext-800-normal.woff +0 -0
  54. package/plugin/fonts/dm-serif-display/OFL.txt +93 -0
  55. package/plugin/fonts/dm-serif-display/dm-serif-display-latin-400-normal.woff +0 -0
  56. package/plugin/fonts/dm-serif-display/dm-serif-display-latin-ext-400-normal.woff +0 -0
  57. package/plugin/fonts/familjen-grotesk/OFL.txt +93 -0
  58. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-400-normal.woff +0 -0
  59. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-500-normal.woff +0 -0
  60. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-600-normal.woff +0 -0
  61. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-700-normal.woff +0 -0
  62. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-ext-400-normal.woff +0 -0
  63. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-ext-500-normal.woff +0 -0
  64. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-ext-600-normal.woff +0 -0
  65. package/plugin/fonts/familjen-grotesk/familjen-grotesk-latin-ext-700-normal.woff +0 -0
  66. package/plugin/fonts/fonts.json +628 -0
  67. package/plugin/fonts/instrument-serif/OFL.txt +93 -0
  68. package/plugin/fonts/instrument-serif/instrument-serif-latin-400-normal.woff +0 -0
  69. package/plugin/fonts/instrument-serif/instrument-serif-latin-ext-400-normal.woff +0 -0
  70. package/plugin/fonts/newsreader/OFL.txt +93 -0
  71. package/plugin/fonts/newsreader/newsreader-latin-400-normal.woff +0 -0
  72. package/plugin/fonts/newsreader/newsreader-latin-500-normal.woff +0 -0
  73. package/plugin/fonts/newsreader/newsreader-latin-600-normal.woff +0 -0
  74. package/plugin/fonts/newsreader/newsreader-latin-700-normal.woff +0 -0
  75. package/plugin/fonts/newsreader/newsreader-latin-800-normal.woff +0 -0
  76. package/plugin/fonts/newsreader/newsreader-latin-ext-400-normal.woff +0 -0
  77. package/plugin/fonts/newsreader/newsreader-latin-ext-500-normal.woff +0 -0
  78. package/plugin/fonts/newsreader/newsreader-latin-ext-600-normal.woff +0 -0
  79. package/plugin/fonts/newsreader/newsreader-latin-ext-700-normal.woff +0 -0
  80. package/plugin/fonts/newsreader/newsreader-latin-ext-800-normal.woff +0 -0
  81. package/plugin/fonts/schibsted-grotesk/OFL.txt +93 -0
  82. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-400-normal.woff +0 -0
  83. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-500-normal.woff +0 -0
  84. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-600-normal.woff +0 -0
  85. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-700-normal.woff +0 -0
  86. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-800-normal.woff +0 -0
  87. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-900-normal.woff +0 -0
  88. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-ext-400-normal.woff +0 -0
  89. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-ext-500-normal.woff +0 -0
  90. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-ext-600-normal.woff +0 -0
  91. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-ext-700-normal.woff +0 -0
  92. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-ext-800-normal.woff +0 -0
  93. package/plugin/fonts/schibsted-grotesk/schibsted-grotesk-latin-ext-900-normal.woff +0 -0
  94. package/plugin/fonts/space-mono/OFL.txt +93 -0
  95. package/plugin/fonts/space-mono/space-mono-latin-400-normal.woff +0 -0
  96. package/plugin/fonts/space-mono/space-mono-latin-700-normal.woff +0 -0
  97. package/plugin/fonts/space-mono/space-mono-latin-ext-400-normal.woff +0 -0
  98. package/plugin/fonts/space-mono/space-mono-latin-ext-700-normal.woff +0 -0
  99. package/plugin/fonts/syne/OFL.txt +93 -0
  100. package/plugin/fonts/syne/syne-latin-400-normal.woff +0 -0
  101. package/plugin/fonts/syne/syne-latin-500-normal.woff +0 -0
  102. package/plugin/fonts/syne/syne-latin-600-normal.woff +0 -0
  103. package/plugin/fonts/syne/syne-latin-700-normal.woff +0 -0
  104. package/plugin/fonts/syne/syne-latin-800-normal.woff +0 -0
  105. package/plugin/fonts/syne/syne-latin-ext-400-normal.woff +0 -0
  106. package/plugin/fonts/syne/syne-latin-ext-500-normal.woff +0 -0
  107. package/plugin/fonts/syne/syne-latin-ext-600-normal.woff +0 -0
  108. package/plugin/fonts/syne/syne-latin-ext-700-normal.woff +0 -0
  109. package/plugin/fonts/syne/syne-latin-ext-800-normal.woff +0 -0
  110. package/plugin/fonts/unbounded/OFL.txt +93 -0
  111. package/plugin/fonts/unbounded/unbounded-latin-400-normal.woff +0 -0
  112. package/plugin/fonts/unbounded/unbounded-latin-500-normal.woff +0 -0
  113. package/plugin/fonts/unbounded/unbounded-latin-600-normal.woff +0 -0
  114. package/plugin/fonts/unbounded/unbounded-latin-700-normal.woff +0 -0
  115. package/plugin/fonts/unbounded/unbounded-latin-800-normal.woff +0 -0
  116. package/plugin/fonts/unbounded/unbounded-latin-900-normal.woff +0 -0
  117. package/plugin/fonts/unbounded/unbounded-latin-ext-400-normal.woff +0 -0
  118. package/plugin/fonts/unbounded/unbounded-latin-ext-500-normal.woff +0 -0
  119. package/plugin/fonts/unbounded/unbounded-latin-ext-600-normal.woff +0 -0
  120. package/plugin/fonts/unbounded/unbounded-latin-ext-700-normal.woff +0 -0
  121. package/plugin/fonts/unbounded/unbounded-latin-ext-800-normal.woff +0 -0
  122. package/plugin/fonts/unbounded/unbounded-latin-ext-900-normal.woff +0 -0
  123. package/plugin/fonts/young-serif/OFL.txt +93 -0
  124. package/plugin/fonts/young-serif/young-serif-latin-400-normal.woff +0 -0
  125. package/plugin/fonts/young-serif/young-serif-latin-ext-400-normal.woff +0 -0
  126. package/plugin/fonts/zilla-slab/OFL.txt +93 -0
  127. package/plugin/fonts/zilla-slab/zilla-slab-latin-400-normal.woff +0 -0
  128. package/plugin/fonts/zilla-slab/zilla-slab-latin-500-normal.woff +0 -0
  129. package/plugin/fonts/zilla-slab/zilla-slab-latin-600-normal.woff +0 -0
  130. package/plugin/fonts/zilla-slab/zilla-slab-latin-700-normal.woff +0 -0
  131. package/plugin/fonts/zilla-slab/zilla-slab-latin-ext-400-normal.woff +0 -0
  132. package/plugin/fonts/zilla-slab/zilla-slab-latin-ext-500-normal.woff +0 -0
  133. package/plugin/fonts/zilla-slab/zilla-slab-latin-ext-600-normal.woff +0 -0
  134. package/plugin/fonts/zilla-slab/zilla-slab-latin-ext-700-normal.woff +0 -0
  135. package/plugin/skills/concepts/SKILL.md +18 -23
  136. package/plugin/skills/design/SKILL.md +125 -94
  137. package/plugin/skills/design/references/cli.md +58 -55
  138. package/plugin/skills/design/references/construction.md +47 -40
  139. package/plugin/skills/design/references/design-principles.md +163 -126
  140. package/plugin/skills/design/references/svg-authoring.md +11 -8
  141. package/plugin/skills/design/references/workflow.md +19 -20
  142. package/plugin/skills/export/SKILL.md +6 -3
  143. package/plugin/skills/gallery/SKILL.md +10 -7
  144. package/plugin/skills/refine/SKILL.md +18 -13
  145. package/plugin/skills/research/SKILL.md +3 -2
package/README.md CHANGED
@@ -13,7 +13,7 @@
13
13
  <p align="center">
14
14
  <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
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-0.4.0-101218">
16
+ <img alt="Version" src="https://img.shields.io/badge/version-1.1.1-101218">
17
17
  <img alt="Platforms" src="https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-101218">
18
18
  </p>
19
19
 
@@ -26,11 +26,28 @@ balance, contrast, one-color reproduction), **compares** them against competitor
26
26
 
27
27
  ![Markilo's own identity: every logo file, exported by Markilo](assets/kit-overview.png)
28
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>
29
+ <sub>Markilo's identity was made by running Markilo 1.1 on itself, with its owner choosing: one round of three proposals
30
+ by the Opus designer ($9.57, 18 min), from which the owner kept one word, a monograph-style serif cut with one 45-degree
31
+ chisel and dotted with an oxblood lozenge; three new icon options for it ($4.11), of which the owner chose the M and
32
+ asked for it symmetric, redrawn with Markilo's own `construct` toolchain; then finalize and export. Every image in this
33
+ README and the plugin icon is an unedited Markilo export (`branding/`). No trademark registry search has been done
34
+ yet; the guidelines say so.</sub>
35
+
36
+ ## Made with Markilo
37
+
38
+ Three open-source tools from the same author got their brand identities from Markilo 1.1. Each came from one round of
39
+ three proposals with its owner choosing; the logos below are the files Markilo exported, unedited.
40
+
41
+ <table>
42
+ <tr>
43
+ <td align="center" width="33%"><a href="https://github.com/cihantopac/relivaro"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/made-with/relivaro-dark.svg"><img src="assets/made-with/relivaro-light.svg" alt="Relivaro" height="44"></picture></a><br><a href="https://github.com/cihantopac/relivaro"><b>Relivaro</b></a><br><sub>Software quality, security, reliability and release engineering</sub></td>
44
+ <td align="center" width="33%"><a href="https://github.com/cihantopac/searvex"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/made-with/searvex-dark.svg"><img src="assets/made-with/searvex-light.svg" alt="Searvex" height="44"></picture></a><br><a href="https://github.com/cihantopac/searvex"><b>Searvex</b></a><br><sub>Search intelligence: technical SEO and GEO audits with safe fixes</sub></td>
45
+ <td align="center" width="33%"><a href="https://github.com/cihantopac/jourilo"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/made-with/jourilo-dark.svg"><img src="assets/made-with/jourilo-light.svg" alt="Jourilo" height="44"></picture></a><br><a href="https://github.com/cihantopac/jourilo"><b>Jourilo</b></a><br><sub>Product experience and conversion engineering</sub></td>
46
+ </tr>
47
+ </table>
48
+
49
+ How each one was made, what it cost and what the owner chose at every step is in
50
+ [docs/RELEASE-1.1.md](docs/RELEASE-1.1.md) (products A, B and C, in this order).
34
51
 
35
52
  ## Highlights
36
53
 
@@ -47,15 +64,29 @@ registry search has been done yet; the guidelines say so.</sub>
47
64
  logged registry searches the answer is `insufficient-evidence`, never "clear". Calibrated on 24 real brands' logos
48
65
  (AUC 0.99; mirrored, rotated and recolored copies always caught; see [docs/ORIGINALITY.md](docs/ORIGINALITY.md)). It
49
66
  finds conflicts among what was collected; it cannot prove a mark is unique or registrable.
50
- - **Real design output.** Symbols built from construction specs — primitives, booleans, gaps, offsets, fillets,
51
- repeats and real letterforms, compiled with Skia's path engine into clean SVG — and tuned by measured variants.
52
- Wordmarks outlined from OFL fonts with real kerning (Turkish and other Latin-extended letters included), lockups
53
- aligned to cap height, OKLCH tonal palettes with WCAG pairs.
54
- - **Looks before it talks.** Directions start as cheap sketches that a critical review must pick before any are
55
- developed. Every concept is rendered to a review sheet (16–256 px, light, dark, black, white) and a context sheet (a
56
- browser tab, a home screen next to the competitors, a site header, an avatar). An independent critic records a blind
57
- first impression before it reads the rationale, and only concepts that pass its gate (brand fit, distinctiveness and
58
- memorability ≥ 6, average ≥ 6.5, "a senior designer would present it") reach you.
67
+ - **Three proposals, your choice.** Markilo reads the product, writes a short brief, and shows three genuinely
68
+ different, visually developed identities side by side — each with its word, a compact icon, light and dark previews,
69
+ the idea in one sentence, strengths and honest weaknesses. You select one, ask for changes, combine two, or reject
70
+ all three with a note; after two rounds it asks you for direction instead of guessing on. Nothing is finalized
71
+ without your choice.
72
+ - **Drawn, not assembled.** Designers draw freely: Bézier contours, custom letterforms built from real font outlines
73
+ and their own strokes, ligatures and treatments that run through the whole word. Wordmark-led by default for coined
74
+ names. `proposals` measures how close each word still is to its typeface set plainly, so "a stock font with a
75
+ coloured dot" is caught before you see it; it also flags an icon drawn on its own tile.
76
+ - **Development keeps what you chose.** The drawing you picked is kept; after development you see it next to the
77
+ result, with two or three icon options to choose from in the same decision.
78
+ - **Real design output.** Construction specs (primitives, booleans, gaps, fillets, repeats and real letterforms,
79
+ compiled with Skia's path engine) when they help, freeform SVG when it is better. Wordmarks outlined from 24 bundled
80
+ OFL families with real kerning (Turkish and other Latin-extended letters checked in every weight); changed letters
81
+ are measured against the font's own alphabet, so a word that would be misread is caught. Lockups aligned to cap
82
+ height, OKLCH tonal palettes with WCAG pairs.
83
+ - **Looks before it talks.** Every concept is rendered to a review sheet (16–256 px, light, dark, black, white) and a
84
+ context sheet (a browser tab, a home screen next to the competitors, a site header, an avatar). One independent
85
+ critic reads the developed identity cold — what a stranger sees first, scores and concrete craft fixes — as advice
86
+ for you, never as a gate in front of you.
87
+ - **Costs in the open.** `markilo cost` records each phase against a budget (default $12) and stops paid work when it
88
+ is reached. Your references — logos, screenshots, mood boards, sketches you like or dislike — guide the design and are
89
+ checked for originality like any competitor mark.
59
90
  - **Complete asset kit.** Logo variants, favicons, PWA + maskable icons, iOS (incl. dark/tinted and Icon Composer
60
91
  layers), macOS `.icns`, Android adaptive + themed icons, Windows ICO + MSIX assets, Open Graph and social images,
61
92
  marketing templates, design tokens and brand guidelines, with a manifest of sizes and hashes. You get what the
@@ -69,61 +100,83 @@ registry search has been done yet; the guidelines say so.</sub>
69
100
  are reproduced byte-for-byte and never redesigned.
70
101
  - **Fits your stack.** `install-assets --framework auto` puts the files where Next.js (App Router metadata files),
71
102
  Laravel, Flutter (Android, iOS and web) or a static site expects them — a dry run first, backups before anything is
72
- replaced. Claude Code is home; Codex, Cursor and other agents can run the same workflow through the CLI
73
- (`agent-setup`, see [docs/INTEGRATIONS.md](docs/INTEGRATIONS.md)).
103
+ replaced.
104
+ - **Not tied to one AI.** Claude Code is home, but the toolchain is a plain CLI: `agent-setup` gives VS Code with
105
+ Copilot, Codex and Cursor the same workflow, with the researcher, designer and critic as sub-agents on the models
106
+ you choose (see [docs/INTEGRATIONS.md](docs/INTEGRATIONS.md)).
74
107
 
75
108
  ## Measured quality
76
109
 
77
- Markilo is benchmarked end to end with nobody steering, on seven realistic products (an independent SaaS, a mobile
78
- app, a multi-product family, a developer tool, an online shop, a B2B platform and a learning app). Four of them were
79
- **holdouts** for a while: written before the changes they test and never used for tuning until those results were
80
- in. The plugin researches, writes the brief, designs, critiques, and finalizes only what passes its own gate. Blind
81
- judges then rate every critiqued concept from the brief and the images alone. Every run, image and score is in
82
- [bench/](bench).
83
-
84
- | Version | Runs | Passed the gate | Opus 5.5 judge would present (of concepts it judged) | Time per run | Cost per run (API equivalent) |
85
- | ---------------- | ------------------- | --------------- | ---------------------------------------------------- | ------------ | ----------------------------- |
86
- | 0.4.0-rc.1 | 3 | 0 | — | 11–21 min | $2.61–3.67 |
87
- | 0.4.0-rc.2 | 3 | 1 | — | 8–15 min | $1.60–2.68 |
88
- | 0.4.0-rc.3 | 3 | 2 | 0 of 2 (the two that passed) | 14–24 min | $3.15–4.37 |
89
- | 0.4.0-rc.5 | 9 (6 on holdouts) | 2 | 0 of 12 | 10–19 min | $2.29–4.41 |
90
- | 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 |
91
- | 0.4.0-rc.8 | 9 | 0 | 0 of 3 — the recalibrated gate agreed on all 3 | 8–18 min | $1.91–3.48 |
92
- | **0.4.0** (rc.9) | **9** | **2** | **Portwise 2 of 4 looks, Dozeline 0 of 4** | 14–28 min | $3.00–7.13 |
110
+ **1.1, steered (validation on three real products).** The 1.1 workflow was validated on three real developer tools
111
+ with their owner choosing at each step, and measured with Claude Code's own cost report. All three reached an identity
112
+ the owner accepted. The first took about $15 across seven runs while the process was being corrected; with its lessons
113
+ adopted, the second took $11.27 (one round, one development, one change made directly) and the third $5.29 (one round,
114
+ finished as chosen). Every step, its cost and what it taught is in [docs/RELEASE-1.1.md](docs/RELEASE-1.1.md). 1.0
115
+ spent $6.85 on the first product unattended and showed nothing. This is three products and one owner's judgment, not a
116
+ benchmark.
117
+
118
+ **1.0 and earlier, unattended (benchmark).** Markilo is benchmarked end to end with nobody steering, on nine realistic products (an independent SaaS, a mobile
119
+ app, a multi-product family, a developer tool, an online shop, a B2B platform, a learning app, a feature-flag service
120
+ and a team secrets manager). Six of them were **holdouts** for a while: written before the changes they test and
121
+ never used for tuning until those results were in. The plugin researches, writes the brief, designs, critiques, and
122
+ finalizes only what passes its own gate. Blind judges then rate every critiqued concept from the brief and the images
123
+ alone. Every run, image and score is in [bench/](bench).
124
+
125
+ | Version | Runs | Passed the gate | Opus 5.5 judge would present (of concepts it judged) | Time per run | Cost per run (API equivalent) |
126
+ | ------------ | ------------------------------------------- | ------------------------ | ---------------------------------------------------- | ------------ | ----------------------------- |
127
+ | 0.4.0-rc.1 | 3 | 0 | — | 11–21 min | $2.61–3.67 |
128
+ | 0.4.0-rc.2 | 3 | 1 | — | 8–15 min | $1.60–2.68 |
129
+ | 0.4.0-rc.3 | 3 | 2 | 0 of 2 (the two that passed) | 14–24 min | $3.15–4.37 |
130
+ | 0.4.0-rc.5 | 9 (6 on holdouts) | 2 | 0 of 12 | 10–19 min | $2.29–4.41 |
131
+ | 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 |
132
+ | 0.4.0-rc.8 | 9 | 0 | 0 of 3 — the recalibrated gate agreed on all 3 | 8–18 min | $1.91–3.48 |
133
+ | 0.4.0 (rc.9) | 9 | 2 | Portwise 2 of 4 looks, Dozeline 0 of 4 | 14–28 min | $3.00–7.13 |
134
+ | 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 |
135
+ | **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 |
93
136
 
94
137
  What this shows, plainly:
95
138
 
96
- - **Unattended, Markilo rarely reaches its own gate** — 4 of the 38 validation runs since rc.5, 1 of 8 on briefs that
97
- were still untouched holdouts when they ran. rc.3's two of three did not hold up on new briefs.
98
- - **Markilo's best unattended work sits on the line of "presentable".** rc.9 (sketch review that only strikes clear
99
- failures, a calibrated cold-look gate on Opus) developed 22 of 27 directions and passed two identities. A strict
100
- judge looked at each borderline mark four times: Portwise was presentable in two of four looks, Dozeline in none.
101
- At this level a single judgment flips about half the time, so the gate now errs about as often as the judge
102
- disagrees with itself; what is left is making better marks, not tuning the gate.
139
+ - **1.0 did not make unattended work better, and says so.** On five briefs sealed before any 1.0 change and on three
140
+ real developer tools, an independent panel (Opus and Sonnet, blind) would present none of the 1.0 concepts; it would
141
+ not have presented the 0.5.0-rc.1 ones either. The two 1.0 gate passes were edge passes the panel rejected; the
142
+ gallery now marks such passes "at the edge". What 1.0 did improve is everything around the design: safety, the
143
+ install transaction, letter checks, typefaces, the critique process and the evidence. See
144
+ [bench/results/1.0.0](bench/results/1.0.0).
145
+
146
+ - **Unattended, Markilo still rarely reaches its own gate** — 6 of the 47 validation runs since rc.5, 2 of 12 on
147
+ briefs that were still untouched holdouts when they ran.
148
+ - **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
149
+ (the majority of three looks per concept) agreed on all 29 critiqued concepts, and both identities that passed —
150
+ Quillnest, and Pinehold on a brief written for this round — were presentable to the judge. In 0.4.0 the two that
151
+ passed split it 2 of 4 and 0 of 4.
152
+ - **Words beat invented symbols.** Both passes were wordmark-led: the name drawn from a real typeface with one letter
153
+ changed, the icon cut from it (2 of 13 judged presentable; invented symbols 0 of 16). Symbols assembled from
154
+ rectangles, circles and polygons keep reading as UI icons or objects — a power button, a wallet, an eye.
155
+ - **Reworking a failed idea does not work, so Markilo stopped doing it.** Of 34 concepts sent back after a failed gate
156
+ in earlier rounds, one passed later, after three rounds. The gate now says `fix` once or `reject`; in rc.1 one
157
+ concept got a fix round, and the budget went to more directions instead (43, up from 27).
103
158
  - **How the gate got here was measured.** The critic's scores given after reading the rationale barely tracked the
104
- strict judge (Spearman 0.20 on 32 concepts), a cold look did much better (0.51); the gate now rests on the cold
105
- look. A sketch review that bet on the finished score stopped 24 of 27 directions; one that strikes only clear
106
- failures lets the gate decide.
107
- - **It does not ship weak work.** Across all runs the gate and the judges agreed on 48 of 57 critiqued concepts, and
108
- most disagreements were marks the judge itself splits on. When nothing passes, Markilo says so and nothing is finalized or exported.
159
+ strict judge (Spearman 0.20 on 32 concepts), a cold look did much better (0.51); the gate rests on the cold look.
160
+ Across all runs the gate and the judges agreed on 77 of 86 critiqued concepts. When nothing passes, Markilo says
161
+ so and nothing is finalized or exported.
109
162
  - **What moved the needle was measured, not guessed.** Hairline gaps came from Markilo's own guide; clichés reached
110
163
  development because the sketch review picked the best of weak boards; the name's initial with a cut became the
111
164
  default move once objects were ruled out; same-colour layers left seams. Each was found in the runs and fixed in
112
165
  the plugin. The model was not the bottleneck (Opus 5.5 as designer did no better on the SaaS brief).
113
166
 
114
- Markilo is built to work with you: you pick directions, react in the gallery and decide. Unattended runs measure
115
- the floor. Two of them, as exported (fictional products, no human edits):
167
+ Markilo is built to work with you: you pick the sketch to develop, react in the gallery and decide. Unattended runs
168
+ measure the floor. The two that passed in 0.5.0-rc.1, as exported (fictional products, no human edits):
116
169
 
117
170
  <table>
118
171
  <tr>
119
- <td><img src="bench/results/0.4.0-rc.3/saas-invoicing/tallyline/overview.png" alt="Tallyline logo files made by Markilo unattended"></td>
120
- <td><img src="bench/results/0.4.0-rc.3/mobile-sleep/dozeline/overview.png" alt="Dozeline logo files made by Markilo unattended"></td>
172
+ <td><img src="bench/results/0.5.0-rc.1/edu-app/quillnest/overview.png" alt="Quillnest logo files made by Markilo unattended"></td>
173
+ <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>
121
174
  </tr>
122
175
  <tr>
123
- <td><sub>Tallyline (invoicing SaaS): critic 6.8, passed the gate; Sonnet judge 6.4 "present", Opus judge 6.2 "not as is"
124
- — the T reads as a figure kicking a ball.</sub></td>
125
- <td><sub>Dozeline (sleep app): critic 6.8, passed the gate; Sonnet judge 6.8 "present", Opus judge 5.8 "not as is" — the
126
- arch motif is common.</sub></td>
176
+ <td><sub>Quillnest (writing coach for teenagers): passed the gate; Opus judge "present" in 3 of 3 looks, 6.3 — "a
177
+ smiling face built from a q, with the orange dot as a nose".</sub></td>
178
+ <td><sub>Pinehold (secrets manager for small teams, a fresh holdout): passed the gate; Opus judge "present" in 2 of 3
179
+ looks, 6.3 — "an arch or doorway sheltering an orange seed".</sub></td>
127
180
  </tr>
128
181
  </table>
129
182
 
@@ -175,16 +228,16 @@ node ~/.claude/plugins/marketplaces/markilo/plugin/dist/markilo.mjs shortcut ins
175
228
 
176
229
  ## Use
177
230
 
178
- | Command | What it does |
179
- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
180
- | `/markilo:design <url, repo, name or task>` | The full studio: discover → research → brief → explore → design → verify → review → refine → export → deliver |
181
- | `/markilo:research <url or repo>` | Brand Intelligence Profile and brief only |
182
- | `/markilo:concepts <brand>` | Creative directions and verified SVG concepts |
183
- | `/markilo:originality <concept, file or name>` | Similarity analysis, name check and trademark pre-screening plan |
184
- | `/markilo:refine <brand> <concept> <feedback>` | Iterate with verification, then finalize |
185
- | `/markilo:export <brand>` | Generate the asset kit (optionally install web assets into your project) |
186
- | `/markilo:gallery` | Build the Brand Preview Gallery |
187
- | `/markilo:audit <logo or brand>` | Evaluate an existing identity: keep, refresh or redesign |
231
+ | Command | What it does |
232
+ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------- |
233
+ | `/markilo:design <url, repo, name or task>` | The full studio: understand → three proposals → your choice → develop → verify → export |
234
+ | `/markilo:research <url or repo>` | Brand Intelligence Profile and brief only |
235
+ | `/markilo:concepts <brand>` | One round of three visually developed proposals for you to choose from |
236
+ | `/markilo:originality <concept, file or name>` | Similarity analysis, name check and trademark pre-screening plan |
237
+ | `/markilo:refine <brand> <concept> <feedback>` | Develop the concept you chose, with icon options and one critique, then finalize on your approval |
238
+ | `/markilo:export <brand>` | Generate the asset kit (optionally install web assets into your project) |
239
+ | `/markilo:gallery` | Build the Brand Preview Gallery |
240
+ | `/markilo:audit <logo or brand>` | Evaluate an existing identity: keep, refresh or redesign |
188
241
 
189
242
  Requests can be written in any language; files and reports are produced in English.
190
243
 
@@ -192,18 +245,14 @@ Requests can be written in any language; files and reports are produced in Engli
192
245
 
193
246
  ```text
194
247
  you › /markilo:design ./ — we're launching this as a product, it needs an identity
195
- › (Markilo scans the repo: package.json, README, existing favicon, CSS colors, fonts)
196
- › Discover: no real identity yet → mode "new". May I research competitors on the web? (y)
197
- › Research: 8 competitors, category codes (green + shields everywhere), 3 gaps recorded
198
- › Brief: 3 questions, each with a suggested answer
199
- › Explore: 3 directions — "Pulse" monogram, "Lighthouse" pictogram, "Signal" abstract
200
- › Sketch: 4 quick constructions per direction; the sketch review keeps one per direction, drops "Signal"
201
- › Design: concept-designer agents develop the picks; each iterates on its review and context sheets
202
- › Verify: "Lighthouse" 71% similar to a competitor reference → reworked from the idea up
203
- › Critique: blind first look ("reads as: a pin, a drop") then scores; only "Pulse" passes the gate
204
- › Review: gallery at http://127.0.0.1:…/ — pin a note on the stem, compare, "Send to Claude"
205
- › Deliverables: a web app → logos, web, social, tokens, guidelines (app icons are one question away)
206
- › Finalize "Pulse" → Export: 80 files → Next.js detected: 10 files for app/ and public/ (dry run, 0 overwrites)
248
+ › Understand: README, interface colours and type, five competitor marks (with your OK), a short brief,
249
+ two questions with suggested answers, and "any logos, screenshots or sketches you like or dislike?"
250
+ › Explore: three designers draw three directions in parallel — a worked wordmark, a symbol with a matching
251
+ word, a warmer route — rendered side by side (proposals/round-1.png) with strengths and risks
252
+ › You, in the gallery: "the second one, but the icon should come from the first"
253
+ › Develop: the chosen word refined, three icon options, your choice shown next to the result
254
+ › Verify: checks clean, one cold critique ("option C reads as a person icon at 32 px"), originality report
255
+ › You: "icon B, approved" → Finalize → Export: 81 files → Next.js detected (dry run, 0 overwrites)
207
256
  ```
208
257
 
209
258
  ### Monorepos and product families
@@ -229,7 +278,9 @@ brand/
229
278
  │ ├── reports/ # originality-<id>.md|json, quality-<id>.md|json
230
279
  │ ├── final/ # approved masters + brand.json
231
280
  │ └── exports/
232
- │ ├── logos/ # primary, secondary, compact, symbol, wordmark, appmark × color/reversed/black/white/ink (SVG + PNG)
281
+ │ ├── index.html # open first: a preview of every file on the background it is made for
282
+ │ ├── README.md # the files most people need, what each folder holds
283
+ │ ├── logos/ # primary, secondary, compact, symbol, wordmark × color/reversed/black/white (SVG + PNG), appmark
233
284
  │ ├── web/ # favicon.svg (dark-mode aware), favicon.ico, apple-touch-icon, icon-*/maskable-*, site.webmanifest, head-snippet.html
234
285
  │ ├── ios/ # AppIcon.appiconset (default, dark, tinted), icon-composer/ layers
235
286
  │ ├── macos/ # AppIcon.icns, .iconset, full-bleed 1024 for macOS 26+
@@ -301,9 +352,11 @@ Details: [docs/PRIVACY.md](docs/PRIVACY.md) · [SECURITY.md](SECURITY.md).
301
352
  - Raster images (PNG/JPEG) are analyzed for similarity; vector tracing of raster logos is not included.
302
353
  - Icon Composer (`.icon`) files are not written directly; Markilo exports the layer sources to import.
303
354
  - X (Twitter) image sizes could not be verified against x.com documentation (blocked to automated readers).
304
- - Design quality still depends on the model and on your direction: unattended runs rarely pass the critic gate, and a
305
- strict independent judge accepts only a few of the marks they develop (see [Measured quality](#measured-quality)). Markilo raises the floor and refuses to hide weak work; taste is a
306
- conversation.
355
+ - Design quality depends on the model and on your direction. Unattended, 1.0 produced no identity an independent panel
356
+ would present ([bench/results/1.0.0](bench/results/1.0.0)). 1.1 is built to be steered: in its validation three real
357
+ products reached identities their owner accepted, each from one round of proposals — judged by their owner, not a
358
+ benchmark ([docs/RELEASE-1.1.md](docs/RELEASE-1.1.md)). Icons remain the hardest part (they still tend to be
359
+ letters); expect to choose between options.
307
360
 
308
361
  ## Develop
309
362
 
@@ -5,18 +5,32 @@ each under its own license. Generated by `scripts/notices.mjs`.
5
5
 
6
6
  ## Fonts (`plugin/fonts/`)
7
7
 
8
- | Family | License | Source |
9
- | ----------------- | ------------------------------------------------------ | ------------------------------------------------------ |
10
- | Inter | SIL OFL 1.1 (`plugin/fonts/inter/OFL.txt`) | @fontsource/inter@5.3.0 (Google Fonts v20) |
11
- | Manrope | SIL OFL 1.1 (`plugin/fonts/manrope/OFL.txt`) | @fontsource/manrope@5.3.0 (Google Fonts v20) |
12
- | Space Grotesk | SIL OFL 1.1 (`plugin/fonts/space-grotesk/OFL.txt`) | @fontsource/space-grotesk@5.3.0 (Google Fonts v22) |
13
- | Sora | SIL OFL 1.1 (`plugin/fonts/sora/OFL.txt`) | @fontsource/sora@5.3.0 (Google Fonts v17) |
14
- | DM Sans | SIL OFL 1.1 (`plugin/fonts/dm-sans/OFL.txt`) | @fontsource/dm-sans@5.3.0 (Google Fonts v17) |
15
- | Outfit | SIL OFL 1.1 (`plugin/fonts/outfit/OFL.txt`) | @fontsource/outfit@5.3.0 (Google Fonts v15) |
16
- | Plus Jakarta Sans | SIL OFL 1.1 (`plugin/fonts/plus-jakarta-sans/OFL.txt`) | @fontsource/plus-jakarta-sans@5.3.0 (Google Fonts v12) |
17
- | Fraunces | SIL OFL 1.1 (`plugin/fonts/fraunces/OFL.txt`) | @fontsource/fraunces@5.3.0 (Google Fonts v38) |
18
- | IBM Plex Serif | SIL OFL 1.1 (`plugin/fonts/ibm-plex-serif/OFL.txt`) | @fontsource/ibm-plex-serif@5.3.0 (Google Fonts v20) |
19
- | JetBrains Mono | SIL OFL 1.1 (`plugin/fonts/jetbrains-mono/OFL.txt`) | @fontsource/jetbrains-mono@5.3.0 (Google Fonts v24) |
8
+ | Family | License | Source |
9
+ | -------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------- |
10
+ | Inter | SIL OFL 1.1 (`plugin/fonts/inter/OFL.txt`) | @fontsource/inter@5.3.0 (Google Fonts v20) |
11
+ | Manrope | SIL OFL 1.1 (`plugin/fonts/manrope/OFL.txt`) | @fontsource/manrope@5.3.0 (Google Fonts v20) |
12
+ | Space Grotesk | SIL OFL 1.1 (`plugin/fonts/space-grotesk/OFL.txt`) | @fontsource/space-grotesk@5.3.0 (Google Fonts v22) |
13
+ | Sora | SIL OFL 1.1 (`plugin/fonts/sora/OFL.txt`) | @fontsource/sora@5.3.0 (Google Fonts v17) |
14
+ | DM Sans | SIL OFL 1.1 (`plugin/fonts/dm-sans/OFL.txt`) | @fontsource/dm-sans@5.3.0 (Google Fonts v17) |
15
+ | Outfit | SIL OFL 1.1 (`plugin/fonts/outfit/OFL.txt`) | @fontsource/outfit@5.3.0 (Google Fonts v15) |
16
+ | Plus Jakarta Sans | SIL OFL 1.1 (`plugin/fonts/plus-jakarta-sans/OFL.txt`) | @fontsource/plus-jakarta-sans@5.3.0 (Google Fonts v12) |
17
+ | Fraunces | SIL OFL 1.1 (`plugin/fonts/fraunces/OFL.txt`) | @fontsource/fraunces@5.3.0 (Google Fonts v38) |
18
+ | IBM Plex Serif | SIL OFL 1.1 (`plugin/fonts/ibm-plex-serif/OFL.txt`) | @fontsource/ibm-plex-serif@5.3.0 (Google Fonts v20) |
19
+ | JetBrains Mono | SIL OFL 1.1 (`plugin/fonts/jetbrains-mono/OFL.txt`) | @fontsource/jetbrains-mono@5.3.0 (Google Fonts v24) |
20
+ | Bricolage Grotesque | SIL OFL 1.1 (`plugin/fonts/bricolage-grotesque/OFL.txt`) | @fontsource/bricolage-grotesque@5.3.0 (Google Fonts v9) |
21
+ | Instrument Serif | SIL OFL 1.1 (`plugin/fonts/instrument-serif/OFL.txt`) | @fontsource/instrument-serif@5.3.0 (Google Fonts v5) |
22
+ | Young Serif | SIL OFL 1.1 (`plugin/fonts/young-serif/OFL.txt`) | @fontsource/young-serif@5.3.0 (Google Fonts v2) |
23
+ | DM Serif Display | SIL OFL 1.1 (`plugin/fonts/dm-serif-display/OFL.txt`) | @fontsource/dm-serif-display@5.3.0 (Google Fonts v17) |
24
+ | Syne | SIL OFL 1.1 (`plugin/fonts/syne/OFL.txt`) | @fontsource/syne@5.3.0 (Google Fonts v24) |
25
+ | Unbounded | SIL OFL 1.1 (`plugin/fonts/unbounded/OFL.txt`) | @fontsource/unbounded@5.3.0 (Google Fonts v12) |
26
+ | Archivo | SIL OFL 1.1 (`plugin/fonts/archivo/OFL.txt`) | @fontsource/archivo@5.3.0 (Google Fonts v25) |
27
+ | Schibsted Grotesk | SIL OFL 1.1 (`plugin/fonts/schibsted-grotesk/OFL.txt`) | @fontsource/schibsted-grotesk@5.3.0 (Google Fonts v7) |
28
+ | Newsreader | SIL OFL 1.1 (`plugin/fonts/newsreader/OFL.txt`) | @fontsource/newsreader@5.3.0 (Google Fonts v26) |
29
+ | Zilla Slab | SIL OFL 1.1 (`plugin/fonts/zilla-slab/OFL.txt`) | @fontsource/zilla-slab@5.3.0 (Google Fonts v12) |
30
+ | Space Mono | SIL OFL 1.1 (`plugin/fonts/space-mono/OFL.txt`) | @fontsource/space-mono@5.3.0 (Google Fonts v17) |
31
+ | Atkinson Hyperlegible Next | SIL OFL 1.1 (`plugin/fonts/atkinson-hyperlegible-next/OFL.txt`) | @fontsource/atkinson-hyperlegible-next@5.3.0 (Google Fonts v7) |
32
+ | Alegreya Sans | SIL OFL 1.1 (`plugin/fonts/alegreya-sans/OFL.txt`) | @fontsource/alegreya-sans@5.3.0 (Google Fonts v28) |
33
+ | Familjen Grotesk | SIL OFL 1.1 (`plugin/fonts/familjen-grotesk/OFL.txt`) | @fontsource/familjen-grotesk@5.3.0 (Google Fonts v11) |
20
34
 
21
35
  ## Bundled into `plugin/dist/markilo.mjs`, `plugin/dist/resvg.wasm` and `plugin/dist/pathkit.wasm`
22
36
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markilo",
3
- "version": "0.4.0",
3
+ "version": "1.1.1",
4
4
  "description": "AI-powered brand identity studio for Claude Code: research, originality analysis, SVG identity design, verification and complete asset export.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -52,16 +52,30 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@biomejs/biome": "2.6.4",
55
+ "@fontsource/alegreya-sans": "5.3.0",
56
+ "@fontsource/archivo": "5.3.0",
57
+ "@fontsource/atkinson-hyperlegible-next": "5.3.0",
58
+ "@fontsource/bricolage-grotesque": "5.3.0",
55
59
  "@fontsource/dm-sans": "5.3.0",
60
+ "@fontsource/dm-serif-display": "5.3.0",
61
+ "@fontsource/familjen-grotesk": "5.3.0",
56
62
  "@fontsource/fraunces": "5.3.0",
57
63
  "@fontsource/ibm-plex-serif": "5.3.0",
64
+ "@fontsource/instrument-serif": "5.3.0",
58
65
  "@fontsource/inter": "5.3.0",
59
66
  "@fontsource/jetbrains-mono": "5.3.0",
60
67
  "@fontsource/manrope": "5.3.0",
68
+ "@fontsource/newsreader": "5.3.0",
61
69
  "@fontsource/outfit": "5.3.0",
62
70
  "@fontsource/plus-jakarta-sans": "5.3.0",
71
+ "@fontsource/schibsted-grotesk": "5.3.0",
63
72
  "@fontsource/sora": "5.3.0",
64
73
  "@fontsource/space-grotesk": "5.3.0",
74
+ "@fontsource/space-mono": "5.3.0",
75
+ "@fontsource/syne": "5.3.0",
76
+ "@fontsource/unbounded": "5.3.0",
77
+ "@fontsource/young-serif": "5.3.0",
78
+ "@fontsource/zilla-slab": "5.3.0",
65
79
  "@resvg/resvg-wasm": "2.6.2",
66
80
  "@types/node": "22.20.5",
67
81
  "@types/pngjs": "6.0.5",
Binary file
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markilo",
3
3
  "displayName": "Markilo",
4
- "version": "0.4.0",
4
+ "version": "1.1.1",
5
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).",
6
6
  "author": {
7
7
  "name": "Cihan Topa\u00e7",
@@ -5,18 +5,32 @@ each under its own license. Generated by `scripts/notices.mjs`.
5
5
 
6
6
  ## Fonts (`plugin/fonts/`)
7
7
 
8
- | Family | License | Source |
9
- | ----------------- | ------------------------------------------------------ | ------------------------------------------------------ |
10
- | Inter | SIL OFL 1.1 (`plugin/fonts/inter/OFL.txt`) | @fontsource/inter@5.3.0 (Google Fonts v20) |
11
- | Manrope | SIL OFL 1.1 (`plugin/fonts/manrope/OFL.txt`) | @fontsource/manrope@5.3.0 (Google Fonts v20) |
12
- | Space Grotesk | SIL OFL 1.1 (`plugin/fonts/space-grotesk/OFL.txt`) | @fontsource/space-grotesk@5.3.0 (Google Fonts v22) |
13
- | Sora | SIL OFL 1.1 (`plugin/fonts/sora/OFL.txt`) | @fontsource/sora@5.3.0 (Google Fonts v17) |
14
- | DM Sans | SIL OFL 1.1 (`plugin/fonts/dm-sans/OFL.txt`) | @fontsource/dm-sans@5.3.0 (Google Fonts v17) |
15
- | Outfit | SIL OFL 1.1 (`plugin/fonts/outfit/OFL.txt`) | @fontsource/outfit@5.3.0 (Google Fonts v15) |
16
- | Plus Jakarta Sans | SIL OFL 1.1 (`plugin/fonts/plus-jakarta-sans/OFL.txt`) | @fontsource/plus-jakarta-sans@5.3.0 (Google Fonts v12) |
17
- | Fraunces | SIL OFL 1.1 (`plugin/fonts/fraunces/OFL.txt`) | @fontsource/fraunces@5.3.0 (Google Fonts v38) |
18
- | IBM Plex Serif | SIL OFL 1.1 (`plugin/fonts/ibm-plex-serif/OFL.txt`) | @fontsource/ibm-plex-serif@5.3.0 (Google Fonts v20) |
19
- | JetBrains Mono | SIL OFL 1.1 (`plugin/fonts/jetbrains-mono/OFL.txt`) | @fontsource/jetbrains-mono@5.3.0 (Google Fonts v24) |
8
+ | Family | License | Source |
9
+ | -------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------- |
10
+ | Inter | SIL OFL 1.1 (`plugin/fonts/inter/OFL.txt`) | @fontsource/inter@5.3.0 (Google Fonts v20) |
11
+ | Manrope | SIL OFL 1.1 (`plugin/fonts/manrope/OFL.txt`) | @fontsource/manrope@5.3.0 (Google Fonts v20) |
12
+ | Space Grotesk | SIL OFL 1.1 (`plugin/fonts/space-grotesk/OFL.txt`) | @fontsource/space-grotesk@5.3.0 (Google Fonts v22) |
13
+ | Sora | SIL OFL 1.1 (`plugin/fonts/sora/OFL.txt`) | @fontsource/sora@5.3.0 (Google Fonts v17) |
14
+ | DM Sans | SIL OFL 1.1 (`plugin/fonts/dm-sans/OFL.txt`) | @fontsource/dm-sans@5.3.0 (Google Fonts v17) |
15
+ | Outfit | SIL OFL 1.1 (`plugin/fonts/outfit/OFL.txt`) | @fontsource/outfit@5.3.0 (Google Fonts v15) |
16
+ | Plus Jakarta Sans | SIL OFL 1.1 (`plugin/fonts/plus-jakarta-sans/OFL.txt`) | @fontsource/plus-jakarta-sans@5.3.0 (Google Fonts v12) |
17
+ | Fraunces | SIL OFL 1.1 (`plugin/fonts/fraunces/OFL.txt`) | @fontsource/fraunces@5.3.0 (Google Fonts v38) |
18
+ | IBM Plex Serif | SIL OFL 1.1 (`plugin/fonts/ibm-plex-serif/OFL.txt`) | @fontsource/ibm-plex-serif@5.3.0 (Google Fonts v20) |
19
+ | JetBrains Mono | SIL OFL 1.1 (`plugin/fonts/jetbrains-mono/OFL.txt`) | @fontsource/jetbrains-mono@5.3.0 (Google Fonts v24) |
20
+ | Bricolage Grotesque | SIL OFL 1.1 (`plugin/fonts/bricolage-grotesque/OFL.txt`) | @fontsource/bricolage-grotesque@5.3.0 (Google Fonts v9) |
21
+ | Instrument Serif | SIL OFL 1.1 (`plugin/fonts/instrument-serif/OFL.txt`) | @fontsource/instrument-serif@5.3.0 (Google Fonts v5) |
22
+ | Young Serif | SIL OFL 1.1 (`plugin/fonts/young-serif/OFL.txt`) | @fontsource/young-serif@5.3.0 (Google Fonts v2) |
23
+ | DM Serif Display | SIL OFL 1.1 (`plugin/fonts/dm-serif-display/OFL.txt`) | @fontsource/dm-serif-display@5.3.0 (Google Fonts v17) |
24
+ | Syne | SIL OFL 1.1 (`plugin/fonts/syne/OFL.txt`) | @fontsource/syne@5.3.0 (Google Fonts v24) |
25
+ | Unbounded | SIL OFL 1.1 (`plugin/fonts/unbounded/OFL.txt`) | @fontsource/unbounded@5.3.0 (Google Fonts v12) |
26
+ | Archivo | SIL OFL 1.1 (`plugin/fonts/archivo/OFL.txt`) | @fontsource/archivo@5.3.0 (Google Fonts v25) |
27
+ | Schibsted Grotesk | SIL OFL 1.1 (`plugin/fonts/schibsted-grotesk/OFL.txt`) | @fontsource/schibsted-grotesk@5.3.0 (Google Fonts v7) |
28
+ | Newsreader | SIL OFL 1.1 (`plugin/fonts/newsreader/OFL.txt`) | @fontsource/newsreader@5.3.0 (Google Fonts v26) |
29
+ | Zilla Slab | SIL OFL 1.1 (`plugin/fonts/zilla-slab/OFL.txt`) | @fontsource/zilla-slab@5.3.0 (Google Fonts v12) |
30
+ | Space Mono | SIL OFL 1.1 (`plugin/fonts/space-mono/OFL.txt`) | @fontsource/space-mono@5.3.0 (Google Fonts v17) |
31
+ | Atkinson Hyperlegible Next | SIL OFL 1.1 (`plugin/fonts/atkinson-hyperlegible-next/OFL.txt`) | @fontsource/atkinson-hyperlegible-next@5.3.0 (Google Fonts v7) |
32
+ | Alegreya Sans | SIL OFL 1.1 (`plugin/fonts/alegreya-sans/OFL.txt`) | @fontsource/alegreya-sans@5.3.0 (Google Fonts v28) |
33
+ | Familjen Grotesk | SIL OFL 1.1 (`plugin/fonts/familjen-grotesk/OFL.txt`) | @fontsource/familjen-grotesk@5.3.0 (Google Fonts v11) |
20
34
 
21
35
  ## Bundled into `plugin/dist/markilo.mjs`, `plugin/dist/resvg.wasm` and `plugin/dist/pathkit.wasm`
22
36