@turri-dev/cli 0.1.4-next.318a98a → 0.1.4-next.5a8c6e5

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 (103) hide show
  1. package/.pi/themes/turri-dark.json +67 -66
  2. package/.pi/themes/turri-light.json +71 -73
  3. package/README.md +40 -128
  4. package/assets/jellyfish/dark-00.png +0 -0
  5. package/assets/jellyfish/dark-01.png +0 -0
  6. package/assets/jellyfish/dark-02.png +0 -0
  7. package/assets/jellyfish/dark-03.png +0 -0
  8. package/assets/jellyfish/dark-04.png +0 -0
  9. package/assets/jellyfish/dark-05.png +0 -0
  10. package/assets/jellyfish/dark-06.png +0 -0
  11. package/assets/jellyfish/dark-07.png +0 -0
  12. package/assets/jellyfish/dark-08.png +0 -0
  13. package/assets/jellyfish/dark-09.png +0 -0
  14. package/assets/jellyfish/dark-10.png +0 -0
  15. package/assets/jellyfish/dark-11.png +0 -0
  16. package/assets/jellyfish/light-00.png +0 -0
  17. package/assets/jellyfish/light-01.png +0 -0
  18. package/assets/jellyfish/light-02.png +0 -0
  19. package/assets/jellyfish/light-03.png +0 -0
  20. package/assets/jellyfish/light-04.png +0 -0
  21. package/assets/jellyfish/light-05.png +0 -0
  22. package/assets/jellyfish/light-06.png +0 -0
  23. package/assets/jellyfish/light-07.png +0 -0
  24. package/assets/jellyfish/light-08.png +0 -0
  25. package/assets/jellyfish/light-09.png +0 -0
  26. package/assets/jellyfish/light-10.png +0 -0
  27. package/assets/jellyfish/light-11.png +0 -0
  28. package/dist/ask.js +34 -15
  29. package/dist/brand.js +7 -7
  30. package/dist/cli-options.js +12 -6
  31. package/dist/config-edit.js +1 -0
  32. package/dist/config.js +5 -2
  33. package/dist/cultivate-cli.js +16 -23
  34. package/dist/extension.js +59 -67
  35. package/dist/init-config.js +5 -0
  36. package/dist/jellyfish.js +130 -0
  37. package/dist/loop-cli.js +19 -7
  38. package/dist/loop-tools.js +11 -5
  39. package/dist/module-report.js +5 -4
  40. package/dist/pi.js +76 -19
  41. package/dist/question-dialog.js +1 -0
  42. package/dist/regenerate/activity.js +21 -0
  43. package/dist/regenerate/list-arguments.js +121 -0
  44. package/dist/regenerate/loop.js +21 -8
  45. package/dist/regenerate/plain-palette.js +52 -37
  46. package/dist/regenerate/regenerate.js +4 -2
  47. package/dist/regenerate/self-check.js +13 -6
  48. package/dist/regenerate/side-panel.js +1 -1
  49. package/dist/regenerate/spec-map-view.js +9 -5
  50. package/dist/regenerate/test-scripts.js +54 -10
  51. package/dist/regenerate/unit-review.js +1 -1
  52. package/dist/regenerate-cli.js +11 -5
  53. package/dist/release-cli.js +3 -8
  54. package/dist/review/live.js +2 -1
  55. package/dist/run-report.js +39 -1
  56. package/dist/validate-cli.js +3 -8
  57. package/docs/README.md +5 -12
  58. package/docs/authoring-plain.md +37 -119
  59. package/docs/config.md +53 -178
  60. package/docs/deploy.md +21 -80
  61. package/docs/development.md +13 -41
  62. package/docs/headless.md +45 -121
  63. package/docs/images/how-turri-works.svg +29 -31
  64. package/docs/images/turri-banner.png +0 -0
  65. package/docs/installation.md +13 -40
  66. package/docs/parser.md +15 -43
  67. package/docs/regenerating.md +229 -938
  68. package/docs/sandbox.md +38 -152
  69. package/docs/skills-and-gates.md +50 -171
  70. package/docs/theming.md +45 -46
  71. package/docs/using.md +69 -345
  72. package/genome/rules/bullet-continuation.md +5 -13
  73. package/genome/rules/concise-specs-examples.md +2 -4
  74. package/genome/rules/concise-specs-integration-examples.md +2 -6
  75. package/genome/rules/concise-specs.md +1 -2
  76. package/genome/rules/func-specs.md +1 -0
  77. package/genome/rules/integration-embedded-testing.md +1 -4
  78. package/genome/rules/integrations.md +1 -2
  79. package/genome/rules/project-model.md +14 -35
  80. package/genome/rules/stdlib.md +14 -49
  81. package/genome/rules/turri-regeneration.md +48 -0
  82. package/genome/skills/add-implementation-requirement/SKILL.md +1 -2
  83. package/genome/skills/analyze-if-func-spec-too-complex/SKILL.md +3 -8
  84. package/genome/skills/brood/SKILL.md +37 -127
  85. package/genome/skills/brood/references/intent.md +4 -12
  86. package/genome/skills/brood/references/product.md +24 -76
  87. package/genome/skills/brood/references/stack.md +7 -29
  88. package/genome/skills/brood/references/testing.md +11 -42
  89. package/genome/skills/bud/SKILL.md +32 -109
  90. package/genome/skills/bud/references/intent.md +4 -11
  91. package/genome/skills/implement-conformance-testing-script/SKILL.md +3 -6
  92. package/genome/skills/implement-unit-testing-script/SKILL.md +1 -2
  93. package/genome/skills/mature/SKILL.md +21 -69
  94. package/genome/skills/refactor-module/SKILL.md +24 -2
  95. package/genome/skills/spawn/SKILL.md +28 -113
  96. package/package.json +1 -1
  97. package/assets/jellyfish/dark-12.png +0 -0
  98. package/assets/jellyfish/dark-13.png +0 -0
  99. package/assets/jellyfish/dark-14.png +0 -0
  100. package/assets/jellyfish/fallback.txt +0 -252
  101. package/assets/jellyfish/light-12.png +0 -0
  102. package/assets/jellyfish/light-13.png +0 -0
  103. package/assets/jellyfish/light-14.png +0 -0
package/docs/theming.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Theming
2
2
 
3
- Two brand themes ship in `.pi/themes/`, built from the brand tokens. `turri` starts in
4
- `turri-dark`, the dark one; `--use-theme` picks another for that run:
3
+ Two brand themes ship in `.pi/themes/`, built from the brand tokens. `turri` starts in `turri-dark`, the dark one; `--use-theme` picks another for that run:
5
4
 
6
5
  ```bash
7
6
  turri # turri-dark
@@ -9,68 +8,68 @@ turri --use-theme turri-light/turri-dark # follows terminal appearance
9
8
  turri --use-theme dark # pi's own
10
9
  ```
11
10
 
12
- The second form follows your terminal's light/dark appearance. The default is for
13
- `turri` only: pi's settings are left alone, so a plain `pi` keeps its theme. With the
14
- themes copied to `~/.pi/agent/themes/` (`cp .pi/themes/*.json ~/.pi/agent/themes/`), `{"theme": "turri-dark"}` in
15
- `~/.pi/agent/settings.json` gives a plain `pi` the same one.
11
+ The second form follows your terminal's light/dark appearance. The default is for `turri` only: pi's settings are left alone, so a plain `pi` keeps its theme. With the themes copied to `~/.pi/agent/themes/` (`cp .pi/themes/*.json ~/.pi/agent/themes/`), `{"theme": "turri-dark"}` in `~/.pi/agent/settings.json` gives a plain `pi` the same one.
16
12
 
17
- Bad input fails quietly - an unknown `--use-theme` name and a malformed theme file both run without
18
- complaint - so if the colours do not change, suspect a typo rather than the mechanism.
13
+ Bad input fails quietly - an unknown `--use-theme` name and a malformed theme file both run without complaint - so if the colours do not change, suspect a typo rather than the mechanism.
14
+
15
+ ## The palette
16
+
17
+ Both themes, the command line's colours, the spec diff's, the banner's jellyfish and the docs' diagram are drawn from turri's design system and nothing else: dark, quiet surfaces, one pink thing to press, neon for anything you can follow. These are all the colours turri has - none is mixed, tinted or added.
18
+
19
+ | name | value | in `turri-dark` |
20
+ |---|---|---|
21
+ | abyss | `#0a0f1a` | the page - the HTML export's background, and the surface the contrast below is measured on |
22
+ | tile | `#0d1420` | the HTML export's cards |
23
+ | hēi sè | `#142030` | boxes, the HTML export's callouts |
24
+ | blue whale | `#1e3442` | a highlighted line: `selectedBg`; an added line's fill in a spec diff |
25
+ | lines | `#22344a` | rules, dividers, frames: `borderMuted`, `mdHr` |
26
+ | path | `#3e5a6b` | the editor's border, what is dim: `dim`, line numbers |
27
+ | grauzone | `#85a3b2` | body text, and what can be skimmed: `text`, `muted` |
28
+ | white | `#f4f7f9` | headings, tool titles, what you typed, the jellyfish's shine |
29
+ | siesta tan | `#e9d8c8` | inline code, \*\*\*plain's text in quotes or backticks |
30
+ | eggplant | `#732553` | a removed line's fill in a spec diff |
31
+ | neon | `#5ce1e6` | links, focus, the selection, section labels, \*\*\*plain's concepts in a spec diff: `accent`, `mdLink`, regen's `◆` |
32
+ | neon hover | `#8eebee` | types in code, an added line's fill in a light theme's spec diff |
33
+ | pink | `#ff5c8d` | the wordmark, the jellyfish's bell, and what is done - its `✓`, the spec map's `◇` and `◆`: `success` |
34
+ | pink hover | `#ff7fa6` | \*\*\*plain's section headers, a removed line's `-`, keywords in code |
35
+ | orange | `#ff7a3d` | the jellyfish's gut, the `$` of bash mode, and everything that asks for you - what failed (`✗`), what works with limits, what needs you (the spec map's `!`): `error`, `warning` |
36
+
37
+ The design system keeps pink for the one thing to press and orange for the `$` prompt alone. A terminal has no buttons, but it needs status colours, so pink carries what is done and orange everything that asks for you - what failed, what works with limits, what waits on you - the mark (`✗`, `!`, `■`) telling them apart. The palette has no red.
19
38
 
20
39
  ## Why there are two
21
40
 
22
- Half the palette is unusable on the other background. Contrast against brand black and brand
23
- white:
41
+ Half the palette is unusable on the other background. Contrast against abyss and white:
24
42
 
25
- | token | on `#0f0f0f` | on `#ffffff` |
43
+ | colour | on `#0a0f1a` | on `#ffffff` |
26
44
  |---|---|---|
27
- | brand-yellow | 17.07 | 1.12 |
28
- | brand-green | 14.77 | 1.30 |
29
- | brand-green-light | 13.34 | 1.44 |
30
- | brand-blue | **1.97** | 9.72 |
31
- | brand-green-dark | 1.56 | 12.31 |
32
- | brand-red | 3.38 | 5.67 |
33
-
34
- So `turri-dark` carries yellow, green and green-light, and `turri-light` carries blue and
35
- green-dark. **Brand blue never appears as text in the dark theme** - at 1.97:1 on brand black it is
36
- illegible - so the dark theme's accent is brand yellow, and blue appears only in the light theme
37
- and in both themes' HTML-export backgrounds. The one place blue stands for something in both is the spec
38
- map's `◆` - a functional spec its conformance tests pass for: brand blue in a light theme, and in a dark
39
- one its tint 55% of the way to white, `#919aec`, 7.34:1 on brand black (`brandBlue` in
40
- `src/regenerate/plain-palette.ts`).
41
-
42
- `--color-brand-status-warning` on white is 3.49:1, under the 4.5:1 bar for body text, so it is used
43
- only for accents in the light theme, never for prose.
45
+ | white | 17.81 | 1.08 |
46
+ | neon | 12.20 | 1.57 |
47
+ | grauzone | 7.19 | 2.67 |
48
+ | pink | 6.54 | 2.93 |
49
+ | orange | 7.39 | 2.59 |
50
+ | path | **2.63** | 7.29 |
51
+ | blue whale | 1.48 | 12.92 |
52
+ | eggplant | 1.93 | 9.91 |
53
+
54
+ So `turri-light` is drawn from the design system's deep colours: abyss for text, eggplant for the accent, headings, what is done and the wordmark, blue whale for links and regen's `◆`, path for what is muted. Its pale colours become backgrounds - siesta tan for a selection, neon for a search hit, white for your messages. Orange stays the error and the warning at 2.59:1 - the palette has nothing warm that reads on white. The wordmark and regen's `◆` are painted outside the theme's slots (`brandPink` and `brandNeon` in `src/regenerate/plain-palette.ts`). **Path is never text that matters in the dark theme** - at 2.63:1 it is for rules and what is meant to recede.
44
55
 
45
56
  ## Backgrounds
46
57
 
47
- The dark theme paints no panels: the backgrounds of your messages, turri's messages and the
48
- tool rows are `""`, the terminal's own background, so the transcript reads as one surface whatever
49
- the terminal's colour is - brand black or not, no block shows up as a box. Two are deliberately
50
- painted, because they have to be visible to work:
58
+ The dark theme paints no panels: the backgrounds of your messages, turri's messages and the tool rows are `""`, the terminal's own background, so the transcript reads as one surface whatever the terminal's colour is - abyss or not, no block shows up as a box. Two are deliberately painted, because they have to be visible to work:
51
59
 
52
60
  | token | value | why |
53
61
  |---|---|---|
54
- | `selectedBg` | `#223936` | a selection you cannot see is not a selection |
55
- | `searchMatchBg` | `#e0ff6e` | search hits, with black text on top |
62
+ | `selectedBg` | `#1e3442` | a selection you cannot see is not a selection |
63
+ | `searchMatchBg` | `#5ce1e6` | search hits, with abyss text on top |
56
64
 
57
65
  With tool rows carrying no background, their state is signalled by the title and the diff colours.
58
66
 
59
- **The window's background is your terminal's setting**, and the transcript is drawn on it. For the
60
- brand look, set it to brand black, `#0f0f0f`, in your terminal profile.
67
+ **The window's background is your terminal's setting**, and the transcript is drawn on it. For the brand look, set it to abyss, `#0a0f1a`, in your terminal profile.
61
68
 
62
69
  ## Spec diffs
63
70
 
64
- A spec diff in the panels is not painted with the theme's colours for code: those are made for code,
65
- and the turri themes' backgrounds are all the surface colour, so a diff drawn with them would have no
66
- fills and hardly any highlighting. It has a palette of its own (`src/regenerate/plain-palette.ts`), one for
67
- a dark theme and one for a light, picked by the theme's appearance: a hue for each piece of \*\*\*plain -
68
- a section's header, a concept, a link, text in quotes or backticks, a front matter key, a module,
69
- a comment - at least 7:1 on the surface, and a fill behind each added and removed line, green and red,
70
- that every colour still reads on.
71
+ A spec diff in the panels is not painted with the theme's colours for code: those are made for code, and the turri themes' backgrounds are all the surface colour, so a diff drawn with them would have no fills and hardly any highlighting. It has a palette of its own (`src/regenerate/plain-palette.ts`), one for a dark theme and one for a light, picked by the theme's appearance: a hue for each piece of \*\*\*plain - a section's header, a concept, a link, text in quotes or backticks, a front matter key, a module, a comment - at least 7:1 on the surface, and a fill behind each added and removed line: on a dark theme blue whale and eggplant, on a light one neon hover and siesta tan. Every colour reads at least 4.8:1 on blue whale and 5:1 on the light fills; eggplant, the design system's only warm dark fill, takes the pinks and grauzone down to 3.7:1.
71
72
 
72
73
  ## The font
73
74
 
74
- `--font-brand` cannot be applied. pi draws into a terminal, so the typeface is your terminal
75
- emulator's setting, and NeueMontreal is proportional - a terminal needs a monospaced face. Set it
76
- in iTerm2 / Ghostty / Alacritty, not here.
75
+ The design system's fonts cannot be applied. pi draws into a terminal, so the typeface is your terminal emulator's setting. Its monospaced face is Geist Mono - set it in iTerm2 / Ghostty / Alacritty for the brand look; Neue Montreal, for headings, is proportional, and a terminal needs a monospaced face.