aiblueprint-cli 1.4.81 → 1.4.83

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 (90) hide show
  1. package/README.md +25 -18
  2. package/agents-config/claude-config/scripts/statusline/data/.gitignore +8 -0
  3. package/agents-config/claude-config/scripts/statusline/data/.gitkeep +0 -0
  4. package/agents-config/claude-config/scripts/statusline/defaults.json +10 -10
  5. package/agents-config/claude-config/scripts/statusline/src/commands/interactive-config.ts +118 -6
  6. package/agents-config/claude-config/scripts/statusline/src/index.ts +100 -9
  7. package/agents-config/claude-config/scripts/statusline/src/lib/config.ts +28 -2
  8. package/agents-config/claude-config/scripts/statusline/src/lib/features/limits/commands/weekly-analysis.ts +108 -0
  9. package/agents-config/claude-config/scripts/statusline/src/lib/features/limits/index.ts +164 -0
  10. package/agents-config/claude-config/scripts/statusline/src/lib/features/limits/types.ts +15 -0
  11. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/migrate-to-sqlite.ts +136 -0
  12. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/spend-day.ts +79 -0
  13. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/spend-month.ts +66 -0
  14. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/commands/spend-project.ts +85 -0
  15. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/database.ts +395 -0
  16. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/index.ts +178 -0
  17. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/payload-logger.ts +163 -0
  18. package/agents-config/claude-config/scripts/statusline/src/lib/features/spend/types.ts +37 -0
  19. package/agents-config/claude-config/scripts/statusline/src/lib/presets.ts +13 -13
  20. package/agents-config/claude-config/scripts/statusline/statusline.config.free.json +4 -1
  21. package/agents-config/claude-config/scripts/statusline/statusline.config.json +44 -23
  22. package/agents-config/scripts/statusline/data/.gitignore +8 -0
  23. package/agents-config/scripts/statusline/data/.gitkeep +0 -0
  24. package/agents-config/scripts/statusline/defaults.json +10 -10
  25. package/agents-config/scripts/statusline/src/commands/interactive-config.ts +118 -6
  26. package/agents-config/scripts/statusline/src/index.ts +100 -9
  27. package/agents-config/scripts/statusline/src/lib/config.ts +28 -2
  28. package/agents-config/scripts/statusline/src/lib/features/limits/commands/weekly-analysis.ts +108 -0
  29. package/agents-config/scripts/statusline/src/lib/features/limits/index.ts +164 -0
  30. package/agents-config/scripts/statusline/src/lib/features/limits/types.ts +15 -0
  31. package/agents-config/scripts/statusline/src/lib/features/spend/commands/migrate-to-sqlite.ts +136 -0
  32. package/agents-config/scripts/statusline/src/lib/features/spend/commands/spend-day.ts +79 -0
  33. package/agents-config/scripts/statusline/src/lib/features/spend/commands/spend-month.ts +66 -0
  34. package/agents-config/scripts/statusline/src/lib/features/spend/commands/spend-project.ts +85 -0
  35. package/agents-config/scripts/statusline/src/lib/features/spend/database.ts +395 -0
  36. package/agents-config/scripts/statusline/src/lib/features/spend/index.ts +178 -0
  37. package/agents-config/scripts/statusline/src/lib/features/spend/payload-logger.ts +163 -0
  38. package/agents-config/scripts/statusline/src/lib/features/spend/types.ts +37 -0
  39. package/agents-config/scripts/statusline/src/lib/presets.ts +13 -13
  40. package/agents-config/scripts/statusline/statusline.config.free.json +4 -1
  41. package/agents-config/scripts/statusline/statusline.config.json +44 -23
  42. package/agents-config/skills/{agents-managers → agents-manager}/SKILL.md +1 -1
  43. package/agents-config/skills/{agents-managers → agents-manager}/references/writing-agent-prompts.md +1 -1
  44. package/agents-config/skills/apex/SKILL.md +61 -0
  45. package/agents-config/skills/appstore-connect/SKILL.md +2 -2
  46. package/agents-config/skills/{appstore-connect-setup/SKILL.md → appstore-connect/references/setup.md} +3 -6
  47. package/agents-config/skills/environments-manager/SKILL.md +6 -6
  48. package/agents-config/skills/environments-manager/examples/{claude/commands/dev.md → skills/dev/SKILL.md} +2 -1
  49. package/agents-config/skills/environments-manager/examples/{claude/commands/lint.md → skills/lint/SKILL.md} +2 -1
  50. package/agents-config/skills/environments-manager/examples/{claude/commands/test.md → skills/test/SKILL.md} +2 -1
  51. package/agents-config/skills/environments-manager/examples/{claude/commands/typecheck.md → skills/typecheck/SKILL.md} +2 -1
  52. package/agents-config/skills/environments-manager/references/claude.md +13 -9
  53. package/agents-config/skills/environments-manager/references/cursor.md +2 -2
  54. package/agents-config/skills/ios-testflight/SKILL.md +2 -2
  55. package/agents-config/{commands/prompts/prompt.md → skills/prompt/SKILL.md} +5 -0
  56. package/agents-config/{commands/prompts/tools.md → skills/tools/SKILL.md} +1 -0
  57. package/agents-config/skills/ultrathink/SKILL.md +1 -1
  58. package/agents-config/skills/use-style/SKILL.md +7 -4
  59. package/agents-config/skills/use-style/examples/luma.html +221 -0
  60. package/agents-config/skills/use-style/examples/testspirite.html +340 -0
  61. package/agents-config/skills/use-style/styles/ios-app.md +350 -0
  62. package/agents-config/skills/use-style/styles/luma.md +422 -0
  63. package/agents-config/skills/use-style/styles/new-york-times.md +1 -1
  64. package/agents-config/skills/use-style/styles/split-auth.md +2 -2
  65. package/agents-config/skills/use-style/styles/testspirite.md +397 -0
  66. package/dist/cli.js +56 -118
  67. package/package.json +1 -1
  68. package/agents-config/claude-config/scripts/.claude/commands/fix-on-my-computer.md +0 -87
  69. package/agents-config/commands/prompts/create-vitejs-app.md +0 -272
  70. package/agents-config/commands/prompts/nextjs-add-prisma-db.md +0 -136
  71. package/agents-config/commands/prompts/nextjs-setup-better-auth.md +0 -173
  72. package/agents-config/commands/prompts/nextjs-setup-project.md +0 -200
  73. package/agents-config/commands/prompts/saas-challenge-idea.md +0 -135
  74. package/agents-config/commands/prompts/saas-create-architecture.md +0 -242
  75. package/agents-config/commands/prompts/saas-create-headline.md +0 -132
  76. package/agents-config/commands/prompts/saas-create-landing-copywritting.md +0 -267
  77. package/agents-config/commands/prompts/saas-create-legals-docs.md +0 -176
  78. package/agents-config/commands/prompts/saas-create-logos.md +0 -240
  79. package/agents-config/commands/prompts/saas-create-prd.md +0 -195
  80. package/agents-config/commands/prompts/saas-create-tasks.md +0 -240
  81. package/agents-config/commands/prompts/saas-define-pricing.md +0 -293
  82. package/agents-config/commands/prompts/saas-find-domain-name.md +0 -190
  83. package/agents-config/commands/prompts/saas-implement-landing-page.md +0 -257
  84. package/agents-config/commands/prompts/setup-tmux.md +0 -160
  85. /package/agents-config/skills/{agents-managers → agents-manager}/references/agents.md +0 -0
  86. /package/agents-config/skills/{agents-managers → agents-manager}/references/context-management.md +0 -0
  87. /package/agents-config/skills/{agents-managers → agents-manager}/references/debugging-agents.md +0 -0
  88. /package/agents-config/skills/{agents-managers → agents-manager}/references/error-handling-and-recovery.md +0 -0
  89. /package/agents-config/skills/{agents-managers → agents-manager}/references/evaluation-and-testing.md +0 -0
  90. /package/agents-config/skills/{agents-managers → agents-manager}/references/orchestration-patterns.md +0 -0
@@ -0,0 +1,422 @@
1
+ # Luma Style
2
+
3
+ Polished consumer event + calendar app. Pure-black canvas with one soft teal aurora at the very top, near-borderless rounded dark cards, photo-led event covers, white pill buttons, a single blue status accent, and gold event-time labels. Friendly, premium, social.
4
+
5
+ **Reference vibe:** Luma (lu.ma) - events timeline, calendars, discover, account settings.
6
+
7
+ ---
8
+
9
+ ## Core vibe
10
+
11
+ - **Black, not gray-dark.** The canvas is near-pure black `#0a0a0b`. Cards lift one subtle step (`#161618`) with whisper-thin `rgba(255,255,255,.08)` borders. Depth comes from fill steps, not shadows.
12
+ - **One aurora, top only.** A soft desaturated teal/blue glow washes the top ~30% of the page, fading to black. The rest of the UI is flat black. Nowhere else gets a gradient.
13
+ - **White pill primary button.** The signature CTA is a solid white button with near-black text (`Save Changes`, `Next`, `Enable 2FA`). Secondary actions are quiet dark-gray fills. This white-on-black button is the most recognizable Luma element.
14
+ - **Photo-led.** Event cover images (square-ish, `rounded-xl`) carry the visual weight of every list row and calendar card. Design assuming rich imagery on the right of each card.
15
+ - **Two chromatic accents, used sparingly.** A medium blue `#2f6bff` for status pills (`Invited`), links, and the active timeline dot; a warm gold `#f5b13d` for event start-times. Everything else is monochrome.
16
+ - **Big, friendly, rounded.** Large radii (`rounded-2xl` cards, `rounded-full` pills/avatars/toggles), bold tight-tracked headings, generous spacing. Geometric-humanist sans, never sharp or corporate.
17
+ - **Timeline as spine.** The events feed is a left date-rail (`Jun 22 / Monday`) + a dot + a dotted vertical connector + the card. This timeline is the core layout primitive.
18
+
19
+ ---
20
+
21
+ ## Color
22
+
23
+ Portable palette. Map to project tokens when available.
24
+
25
+ | Role | Hex | CSS var (suggested) | Usage |
26
+ |------|-----|---------------------|-------|
27
+ | Canvas | `#0a0a0b` | `--lu-bg` | Page background (near-black) |
28
+ | Surface | `#161618` | `--lu-surface` | Cards, event rows, inputs, panels |
29
+ | Surface raised | `#202024` | `--lu-raised` | Hover, secondary buttons, segmented track |
30
+ | Surface high | `#2a2a2e` | `--lu-high` | Active segment, input prefix box |
31
+ | Ink | `#f7f7f8` | `--lu-fg` | Headings, titles, primary values |
32
+ | Body | `#c6c6cb` | `--lu-body` | Body copy, host names |
33
+ | Muted ink | `#8c8c93` | `--lu-muted-fg` | Labels, dates, captions, inactive nav |
34
+ | Subtle ink | `#5e5e65` | `--lu-subtle-fg` | Meta, placeholders, faint icons |
35
+ | Border | `rgba(255,255,255,0.08)` | `--lu-border` | Card outlines, dividers, inputs |
36
+ | Border soft | `rgba(255,255,255,0.05)` | `--lu-border-soft` | Inner hairlines, timeline connector |
37
+ | White button | `#ffffff` | `--lu-white` | Primary CTA fill |
38
+ | White button ink | `#0a0a0a` | `--lu-white-fg` | Text on the white button |
39
+ | Blue | `#2f6bff` | `--lu-blue` | Status pill (`Invited`), links, active dot |
40
+ | Gold | `#f5b13d` | `--lu-gold` | Event start-time label |
41
+ | Positive | `#3ecf8e` | `--lu-pos` | Going / confirmed status |
42
+ | Error | `#f76d6d` | `--lu-error` | Destructive, declined |
43
+
44
+ ### The top aurora
45
+
46
+ A soft teal-blue radial glow at the top edge that fades to black. Keep it low-saturation and short - it is ambient, not a hero gradient.
47
+
48
+ ```css
49
+ background:
50
+ radial-gradient(90% 32% at 50% 0%,
51
+ rgba(40, 82, 96, 0.55) 0%,
52
+ rgba(22, 44, 54, 0.18) 45%,
53
+ transparent 72%),
54
+ #0a0a0b;
55
+ background-attachment: fixed;
56
+ ```
57
+
58
+ ### Tailwind mapping (when no project tokens)
59
+
60
+ ```css
61
+ :root {
62
+ --lu-bg:#0a0a0b; --lu-surface:#161618; --lu-raised:#202024; --lu-high:#2a2a2e;
63
+ --lu-fg:#f7f7f8; --lu-body:#c6c6cb; --lu-muted-fg:#8c8c93; --lu-subtle-fg:#5e5e65;
64
+ --lu-border:rgba(255,255,255,.08);
65
+ --lu-blue:#2f6bff; --lu-gold:#f5b13d;
66
+ }
67
+ ```
68
+
69
+ | Tailwind | Value |
70
+ |----------|-------|
71
+ | `bg-[#0a0a0b]` | Canvas |
72
+ | `bg-[#161618]` | Card / surface |
73
+ | `bg-[#202024]` | Hover / secondary button |
74
+ | `text-[#f7f7f8]` | Primary ink |
75
+ | `text-[#8c8c93]` | Muted |
76
+ | `border-white/[0.08]` | Structure |
77
+ | `bg-white text-[#0a0a0a]` | Primary CTA |
78
+ | `text-[#2f6bff]` | Blue accent / link |
79
+ | `text-[#f5b13d]` | Event-time gold |
80
+
81
+ **Rule:** Keep 95% of the UI monochrome on black. Blue is for status + links, gold is for event times, white fill is for the one primary button. Never introduce a third UI accent hue (multi-color belongs only to real cover photos).
82
+
83
+ ---
84
+
85
+ ## Typography
86
+
87
+ ### Font stacks
88
+
89
+ | Role | Stack |
90
+ |------|-------|
91
+ | Sans (everything) | `"Inter", "SF Pro Display", ui-sans-serif, system-ui, -apple-system, sans-serif` |
92
+ | Mono (rare: IDs, codes) | `"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace` |
93
+
94
+ Luma's face reads as a friendly geometric-humanist sans. Inter (or SF Pro Display) is the portable match. No serif anywhere. Numbers/dates use `tabular-nums`.
95
+
96
+ ### Scale
97
+
98
+ | Level | Pattern |
99
+ |-------|---------|
100
+ | Page title (`Events`, `Settings`) | `text-3xl md:text-4xl font-bold tracking-tight text-[#f7f7f8]` |
101
+ | Section heading (`Your Profile`, `Following`) | `text-lg md:text-xl font-semibold text-[#f7f7f8]` |
102
+ | Event / card title | `text-lg md:text-xl font-semibold tracking-tight text-[#f7f7f8]` |
103
+ | Timeline date | `text-base font-semibold text-[#f7f7f8]` + `text-sm text-[#8c8c93]` (weekday) |
104
+ | Host / body | `text-sm md:text-[15px] text-[#c6c6cb]` |
105
+ | Event time (lead) | `text-sm text-[#8c8c93]` then `· ` then `text-sm font-medium text-[#f5b13d]` |
106
+ | Label / meta / location | `text-sm text-[#8c8c93]` |
107
+ | Field label | `text-[13px] font-medium text-[#8c8c93]` |
108
+
109
+ ### Weight & tracking
110
+
111
+ - Page + card titles: `font-bold`/`font-semibold` (600-700), `tracking-tight`.
112
+ - Body, hosts, labels: `font-normal`/`font-medium`, sentence case.
113
+ - No uppercase letter-spaced labels (that's grid/linear). Luma labels are sentence-case muted gray.
114
+
115
+ ---
116
+
117
+ ## Layout tokens
118
+
119
+ | Token | Value |
120
+ |-------|-------|
121
+ | `LU_PAGE` | the top-aurora background on `body`; content `max-w-[860px] mx-auto px-4 md:px-6` |
122
+ | `LU_NAV` | `flex items-center gap-6 py-4` (icon + label tabs, top of page) |
123
+ | `LU_CARD` | `rounded-2xl border border-white/[0.08] bg-[#161618] p-4 md:p-5` |
124
+ | `LU_ROW` | timeline row: `grid grid-cols-[112px_1fr] gap-4` (date rail + card) |
125
+ | `LU_GAP` | `space-y-3` within a day, `space-y-10` between days |
126
+ | `LU_THUMB` | `size-24 md:size-28 rounded-xl object-cover` (event cover) |
127
+ | `LU_PILL` | `rounded-full px-2.5 py-1 text-xs font-medium` |
128
+
129
+ ### Page shell
130
+
131
+ Centered single column (Luma is not a sidebar app). Icon nav on top, big title, optional segmented toggle on the right, then the timeline/content.
132
+
133
+ ```tsx
134
+ <body className="min-h-screen text-[#f7f7f8]"
135
+ style={{background:"radial-gradient(90% 32% at 50% 0%, rgba(40,82,96,.55), rgba(22,44,54,.18) 45%, transparent 72%), #0a0a0b"}}>
136
+ <header className="mx-auto max-w-[860px] px-4 md:px-6">
137
+ <nav className="flex items-center gap-6 py-4 text-sm">
138
+ <a className="flex items-center gap-2 font-medium text-[#f7f7f8]"><Ticket className="size-4"/> Events</a>
139
+ <a className="flex items-center gap-2 text-[#8c8c93] hover:text-[#f7f7f8]"><Calendar className="size-4"/> Calendars</a>
140
+ <a className="flex items-center gap-2 text-[#8c8c93] hover:text-[#f7f7f8]"><Compass className="size-4"/> Discover</a>
141
+ </nav>
142
+ </header>
143
+ <main className="mx-auto max-w-[860px] px-4 md:px-6 py-6">
144
+ <div className="mb-8 flex items-center justify-between">
145
+ <h1 className="text-3xl md:text-4xl font-bold tracking-tight">Events</h1>
146
+ <SegmentedToggle />
147
+ </div>
148
+ {timeline}
149
+ </main>
150
+ </body>
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Component patterns
156
+
157
+ ### Top nav tab
158
+
159
+ Line icon + label. Active = white; inactive = muted, brightens on hover. No underline, no pill.
160
+
161
+ ```tsx
162
+ <a className={cn("flex items-center gap-2 text-sm",
163
+ active ? "font-medium text-[#f7f7f8]" : "text-[#8c8c93] hover:text-[#f7f7f8]")}>
164
+ <Ticket className="size-4" /> Events
165
+ </a>
166
+ ```
167
+
168
+ ### Segmented toggle (`Upcoming` / `Past`)
169
+
170
+ A rounded-full dark track; the active segment is a lighter fill.
171
+
172
+ ```tsx
173
+ <div className="inline-flex rounded-full bg-[#202024] p-0.5 text-sm">
174
+ <button className="rounded-full bg-[#2a2a2e] px-4 py-1.5 font-medium text-[#f7f7f8]">Upcoming</button>
175
+ <button className="rounded-full px-4 py-1.5 text-[#8c8c93] hover:text-[#f7f7f8]">Past</button>
176
+ </div>
177
+ ```
178
+
179
+ ### Timeline row (the signature)
180
+
181
+ Left date-rail with a dot + dotted vertical connector; right is the event card.
182
+
183
+ ```tsx
184
+ <div className="grid grid-cols-[112px_1fr] gap-4">
185
+ <div className="relative pt-1">
186
+ <p className="text-base font-semibold leading-tight">Jun 22</p>
187
+ <p className="text-sm text-[#8c8c93]">Monday</p>
188
+ {/* dot + dotted connector */}
189
+ <span className="absolute -right-[10px] top-2 size-2.5 rounded-full bg-[#2f6bff] ring-4 ring-[#0a0a0b]" />
190
+ <span className="absolute -right-[5px] top-5 bottom-[-40px] border-l border-dashed border-white/15" />
191
+ </div>
192
+ <EventCard />
193
+ </div>
194
+ ```
195
+
196
+ ### Event card
197
+
198
+ Time row (muted lead `·` gold start), title, host (avatar + name), location (pin), footer (status pill + avatar stack), cover image on the right.
199
+
200
+ ```tsx
201
+ <article className="rounded-2xl border border-white/[0.08] bg-[#161618] p-4 md:p-5">
202
+ <div className="flex gap-4">
203
+ <div className="min-w-0 flex-1">
204
+ <p className="text-sm text-[#8c8c93]">
205
+ 3:30 AM <span className="mx-1">·</span>
206
+ <span className="font-medium text-[#f5b13d]">Jun 21, 6:30 PM PDT</span>
207
+ </p>
208
+ <h3 className="mt-1.5 text-lg md:text-xl font-semibold tracking-tight">Founder DJ Party</h3>
209
+ <p className="mt-2 flex items-center gap-2 text-sm text-[#c6c6cb]">
210
+ <img className="size-5 rounded-full" /> By Founders on Tap
211
+ </p>
212
+ <p className="mt-1 flex items-center gap-1.5 text-sm text-[#8c8c93]">
213
+ <MapPin className="size-4" /> San Francisco, United States
214
+ </p>
215
+ <div className="mt-3 flex items-center gap-2">
216
+ <StatusPill>Invited</StatusPill>
217
+ <AvatarStack count={132} />
218
+ </div>
219
+ </div>
220
+ <img className="size-24 md:size-28 shrink-0 rounded-xl object-cover" />
221
+ </div>
222
+ </article>
223
+ ```
224
+
225
+ ### Status pill (`Invited`)
226
+
227
+ The one blue chip. Variants reuse `pos`/`error`/muted on the same shape.
228
+
229
+ ```tsx
230
+ <span className="rounded-full bg-[#2f6bff] px-2.5 py-1 text-xs font-medium text-white">Invited</span>
231
+ // going: bg-[#3ecf8e]/15 text-[#3ecf8e]
232
+ // pending: bg-[#202024] text-[#8c8c93]
233
+ ```
234
+
235
+ ### Avatar stack + overflow count
236
+
237
+ Overlapping round avatars (ringed in the canvas color) ending in a `+N` chip.
238
+
239
+ ```tsx
240
+ <div className="flex items-center">
241
+ <div className="flex -space-x-2">
242
+ {avatars.map(a => <img className="size-6 rounded-full ring-2 ring-[#0a0a0b]" />)}
243
+ </div>
244
+ <span className="ml-2 rounded-full bg-[#202024] px-2 py-0.5 text-xs text-[#8c8c93]">+132</span>
245
+ </div>
246
+ ```
247
+
248
+ ### Buttons
249
+
250
+ | Variant | Classes |
251
+ |---------|---------|
252
+ | Primary (white pill) | `rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#0a0a0a] transition-opacity hover:opacity-90` |
253
+ | Secondary (dark) | `rounded-full bg-[#202024] px-4 py-2 text-sm font-medium text-[#f7f7f8] hover:bg-[#2a2a2e]` |
254
+ | Ghost / icon | `rounded-full p-2 text-[#8c8c93] hover:bg-[#202024] hover:text-[#f7f7f8]` |
255
+ | Link | `text-sm font-medium text-[#2f6bff] hover:opacity-90` |
256
+ | Calendar action | secondary + trailing `→`, e.g. `View Calendar →` |
257
+
258
+ Primary buttons often carry a small leading glyph (sparkle/sign icon), matching Luma's `Save Changes`.
259
+
260
+ ### Calendar / following card
261
+
262
+ Rounded app-icon, name, `View Calendar →`, then an upcoming-events list (title + date).
263
+
264
+ ```tsx
265
+ <div className="flex gap-4 rounded-2xl border border-white/[0.08] bg-[#161618] p-4">
266
+ <div className="w-44 shrink-0">
267
+ <img className="size-12 rounded-xl" />
268
+ <p className="mt-2 font-semibold leading-tight">Bond AI - SF & Bay Area</p>
269
+ <button className="mt-2 rounded-full bg-[#202024] px-3 py-1.5 text-xs text-[#f7f7f8] hover:bg-[#2a2a2e]">View Calendar →</button>
270
+ </div>
271
+ <div className="min-w-0 flex-1 space-y-3">
272
+ <p className="text-xs text-[#8c8c93]">Upcoming Events</p>
273
+ <div>
274
+ <p className="text-sm font-medium">HUD Frontier / RSI RL Hackathon</p>
275
+ <p className="text-xs tabular-nums text-[#8c8c93]">Sat, Jun 20, 11:00 AM</p>
276
+ </div>
277
+ </div>
278
+ </div>
279
+ ```
280
+
281
+ ### Field label + input
282
+
283
+ Label sits *above* a dark rounded input. Sentence-case, muted.
284
+
285
+ ```tsx
286
+ <label className="block">
287
+ <span className="mb-1.5 block text-[13px] font-medium text-[#8c8c93]">First Name</span>
288
+ <input className="w-full rounded-xl border border-white/[0.08] bg-[#161618] px-3.5 py-2.5 text-sm text-[#f7f7f8] placeholder:text-[#5e5e65] focus:border-[#2f6bff]/60 focus:outline-none focus:ring-2 focus:ring-[#2f6bff]/20" />
289
+ </label>
290
+ ```
291
+
292
+ ### Prefix-segmented input
293
+
294
+ A high-fill prefix box (`@`, `instagram.com/`) fused to the input - Luma's social-links pattern.
295
+
296
+ ```tsx
297
+ <div className="flex overflow-hidden rounded-xl border border-white/[0.08] bg-[#161618]">
298
+ <span className="grid place-items-center bg-[#2a2a2e] px-3 text-sm text-[#8c8c93]">instagram.com/</span>
299
+ <input className="flex-1 bg-transparent px-3 py-2.5 text-sm text-[#f7f7f8] focus:outline-none" placeholder="username" />
300
+ </div>
301
+ ```
302
+
303
+ ### Settings row (label + desc + action)
304
+
305
+ Bordered row: icon + title + sub on the left, white/secondary action button on the right. Used for `Password & Security`, `Emails`.
306
+
307
+ ```tsx
308
+ <div className="flex items-center justify-between rounded-xl border border-white/[0.08] bg-[#161618] p-4">
309
+ <div className="flex items-start gap-3">
310
+ <Lock className="mt-0.5 size-4 text-[#8c8c93]" />
311
+ <div>
312
+ <p className="text-sm font-semibold text-[#f7f7f8]">Account Password</p>
313
+ <p className="text-sm text-[#8c8c93]">You have not set up a password.</p>
314
+ </div>
315
+ </div>
316
+ <button className="rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#0a0a0a] hover:opacity-90">Set Password</button>
317
+ </div>
318
+ ```
319
+
320
+ ### Underline tabs (`Account` / `Preferences` / `Payment`)
321
+
322
+ Active tab = white ink + a short bottom bar; inactive = muted.
323
+
324
+ ```tsx
325
+ <div className="flex gap-6 border-b border-white/[0.08] text-sm">
326
+ <button className="relative pb-3 font-medium text-[#f7f7f8]">
327
+ Account <span className="absolute inset-x-0 -bottom-px h-0.5 rounded-full bg-[#f7f7f8]" />
328
+ </button>
329
+ <button className="pb-3 text-[#8c8c93] hover:text-[#f7f7f8]">Preferences</button>
330
+ </div>
331
+ ```
332
+
333
+ ### Onboarding / welcome card
334
+
335
+ Icon thumb + title + description, page dots bottom-left, white `Next` button bottom-right.
336
+
337
+ ```tsx
338
+ <div className="flex items-center gap-5 rounded-2xl border border-white/[0.08] bg-[#161618] p-5">
339
+ <div className="grid size-20 shrink-0 place-items-center rounded-xl bg-[#202024]"><CalendarIcon /></div>
340
+ <div className="flex-1">
341
+ <p className="text-lg font-semibold">Welcome to Luma Calendar</p>
342
+ <p className="mt-1 text-sm text-[#8c8c93]">Easily share and manage your events.</p>
343
+ <div className="mt-4 flex items-center justify-between">
344
+ <div className="flex gap-1.5">{dots}</div>
345
+ <button className="rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#0a0a0a]">Next</button>
346
+ </div>
347
+ </div>
348
+ </div>
349
+ ```
350
+
351
+ ### Empty state
352
+
353
+ Quiet centered glyph + title + one muted sub line; no illustration weight.
354
+
355
+ ```tsx
356
+ <div className="rounded-2xl border border-white/[0.08] bg-[#161618] p-6 text-center">
357
+ <p className="text-sm font-semibold text-[#f7f7f8]">No Calendars</p>
358
+ <p className="mt-1 text-sm text-[#8c8c93]">You are not an admin of any calendars.</p>
359
+ </div>
360
+ ```
361
+
362
+ ---
363
+
364
+ ## Borders, radius & elevation
365
+
366
+ | Context | Radius | Border | Fill |
367
+ |---------|--------|--------|------|
368
+ | Card / event row / panel | `rounded-2xl` (16px) | `border-white/[0.08]` | `#161618` |
369
+ | Input / settings row | `rounded-xl` (12px) | `border-white/[0.08]` | `#161618` |
370
+ | Button / pill / toggle / avatar | `rounded-full` | none (white/dark fill) | white or `#202024` |
371
+ | Event cover image | `rounded-xl` (12px) | none | photo |
372
+ | App-icon thumb | `rounded-xl` (12px) | none | image / `#202024` |
373
+
374
+ No drop shadows on cards - elevation is the fill step from `#0a0a0b` → `#161618` plus the hairline border. The top aurora is the only ambient light.
375
+
376
+ ---
377
+
378
+ ## Motion & effects
379
+
380
+ - **Calm and quick.** `transition-colors`/`transition-opacity duration-150`. Hover = fill lift (`#202024` → `#2a2a2e`), muted text → white, white button → `opacity-90`.
381
+ - Focus: 2px blue ring `ring-[#2f6bff]/20` + blue-tinted border on inputs.
382
+ - No neon glow (raycast), no hard offset shadow (gumroad), no floating-window backdrop (dusk). The aurora is a flat top wash, not animated.
383
+ - Cards/rows may fade-slide in on load; no scale-bounce.
384
+
385
+ ---
386
+
387
+ ## When to use
388
+
389
+ | Surface | Fit |
390
+ |---------|-----|
391
+ | Event feed / timeline, calendar list, discover | Strong fit |
392
+ | Account / settings, profile, billing forms | Strong fit |
393
+ | Onboarding cards, RSVP / invite surfaces | Strong fit |
394
+ | Consumer social/community product (dark) | Strong fit |
395
+ | Dense analytics dashboard (KPIs, charts) | Poor fit - use `dusk` |
396
+ | 3-pane issue tracker | Use `linear` |
397
+ | Marketing hero / landing page | Use `raycast`, `grid`, or `vercel-simple` |
398
+
399
+ Luma is for **dark consumer event/calendar/account app shells** built around a centered column and photo-led cards.
400
+
401
+ ---
402
+
403
+ ## Anti-patterns
404
+
405
+ | Avoid | Why |
406
+ |-------|-----|
407
+ | Mid-gray `#111`/`#18181b` canvas | Luma's canvas is near-pure black `#0a0a0b`; cards are the lighter step |
408
+ | Gradient on cards or buttons | The only gradient is the top aurora; chrome stays flat |
409
+ | Colored primary buttons | The primary CTA is a white pill with near-black text |
410
+ | Heavy `shadow-lg` elevation | Depth is the fill step + hairline border, never drop shadows |
411
+ | Sharp `rounded-none` / small radius | The look is large, friendly radius (16px cards, full pills) |
412
+ | A third UI accent hue | Only blue (status/links) + gold (times); other color is real cover photos |
413
+ | Uppercase letter-spaced labels | Luma labels are sentence-case muted gray |
414
+ | Sidebar app shell | Luma is a centered single column, not a sidebar layout |
415
+ | Text-only event rows | Every event/calendar row is anchored by a cover image |
416
+ | Serif type | Inter / geometric-humanist sans throughout |
417
+
418
+ ---
419
+
420
+ ## Project overrides
421
+
422
+ If the repo defines `.agents/styles/luma.md` or `.agents/styles/luma-theme.md`, prefer those tokens and components over this portable spec.
@@ -127,7 +127,7 @@ A wide left region and a rule-divided right rail. The vertical rule between them
127
127
  </div>
128
128
  <figure>
129
129
  <img className="w-full" />
130
- <figcaption className="mt-1 text-right font-sans text-xs text-[#999]">Jade Gao/AFP - Getty</figcaption>
130
+ <figcaption className="mt-1 text-right font-sans text-xs text-[#999]">Jade Gao/AFP Getty</figcaption>
131
131
  </figure>
132
132
  </article>
133
133
  ```
@@ -21,10 +21,10 @@ Two-column authentication style for sign-in, signup, OAuth, magic-code, password
21
21
 
22
22
  Use this style when the user says:
23
23
 
24
- - `/usestyle split-auth`
24
+ - `/useskill split-auth`
25
25
  - `$use-style split-auth`
26
26
  - `use split-auth`
27
- - `/usestyle signin 2pages`
27
+ - `/useskill signin 2pages`
28
28
  - `two-column auth`
29
29
  - `auth split`
30
30
  - `make the sign in page like the example`