@natjswenson/press 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/targets.json ADDED
@@ -0,0 +1,336 @@
1
+ {
2
+ "$comment": "Every place the brand is written down. A consumer not listed here is invisible to `press check`, which is the whole failure mode this skill exists to close — so adding a consumer means adding it here, not copying tokens into it. Paths are relative to their own repo root; selection is by file presence, so this one registry works unchanged inside claude-skills, budget, local-fitness or the site.",
3
+ "targets": [
4
+ {
5
+ "id": "city-report",
6
+ "repo": "claude-skills",
7
+ "path": "skills/city-report/skills/city-report/scripts/brand.py",
8
+ "region": "tokens",
9
+ "syntax": "python",
10
+ "emitter": "python-theme",
11
+ "params": {
12
+ "env_var": "CITY_REPORT_BRAND_FILE",
13
+ "brand_line": "DATA USA",
14
+ "byline": "datausa.io · US Census ACS",
15
+ "document_kind": "CITY PROFILE",
16
+ "extras": [
17
+ "fill_steps"
18
+ ]
19
+ },
20
+ "init": {
21
+ "replaceFrom": "^import copy$",
22
+ "replaceTo": "^ return theme$"
23
+ }
24
+ },
25
+ {
26
+ "id": "resume-theme",
27
+ "repo": "claude-skills",
28
+ "path": "skills/resume/skills/resume/assets/themes/press.css",
29
+ "region": "tokens",
30
+ "syntax": "css",
31
+ "emitter": "css-vars",
32
+ "params": {
33
+ "selector": ":root",
34
+ "align": true,
35
+ "comments": false,
36
+ "vars": [
37
+ {
38
+ "token": "paper"
39
+ },
40
+ {
41
+ "token": "ink"
42
+ },
43
+ {
44
+ "token": "dim"
45
+ },
46
+ {
47
+ "token": "accent",
48
+ "name": "sig"
49
+ },
50
+ {
51
+ "token": "hair"
52
+ },
53
+ {
54
+ "token": "display_stack",
55
+ "name": "font"
56
+ },
57
+ {
58
+ "token": "serif_stack",
59
+ "name": "serif"
60
+ },
61
+ {
62
+ "token": "mono_stack",
63
+ "name": "mono"
64
+ }
65
+ ]
66
+ },
67
+ "init": {
68
+ "replaceFrom": "^:root \\{$",
69
+ "replaceTo": "^\\}$"
70
+ }
71
+ },
72
+ {
73
+ "id": "ghostwriter-card",
74
+ "repo": "claude-skills",
75
+ "path": "skills/ghostwriter/skills/ghostwriter/assets/diagram.css.example",
76
+ "region": "tokens",
77
+ "syntax": "css",
78
+ "emitter": "css-vars",
79
+ "params": {
80
+ "selector": ".card.press",
81
+ "stamp": "YN",
82
+ "vars": [
83
+ {
84
+ "token": "paper",
85
+ "comment": "warm paper canvas"
86
+ },
87
+ {
88
+ "token": "ink"
89
+ },
90
+ {
91
+ "token": "dim"
92
+ },
93
+ {
94
+ "token": "accent",
95
+ "name": "press-sig",
96
+ "comment": "THE signature accent — one loud color, used sparingly"
97
+ },
98
+ {
99
+ "token": "rule",
100
+ "comment": "heavy editorial rules"
101
+ },
102
+ {
103
+ "token": "serif_stack",
104
+ "name": "serif",
105
+ "comment": "commentary voice"
106
+ },
107
+ {
108
+ "token": "stamp",
109
+ "quote": true,
110
+ "comment": "your monogram initials (2 chars)"
111
+ },
112
+ {
113
+ "token": "term_bg",
114
+ "comment": "dark panel: only ever inside .term"
115
+ },
116
+ {
117
+ "token": "term_text"
118
+ },
119
+ {
120
+ "token": "term_dim"
121
+ },
122
+ {
123
+ "token": "term_hot"
124
+ },
125
+ {
126
+ "token": "term_prompt"
127
+ }
128
+ ],
129
+ "trailing": [
130
+ "color: var(--ink);"
131
+ ],
132
+ "comments": "explicit",
133
+ "align": true
134
+ },
135
+ "init": {
136
+ "replaceFrom": "^\\.card\\.press \\{$",
137
+ "replaceTo": "^\\}$"
138
+ }
139
+ },
140
+ {
141
+ "id": "ghostwriter-x-card",
142
+ "repo": "claude-skills",
143
+ "path": "skills/ghostwriter-x/skills/ghostwriter-x/assets/diagram.css.example",
144
+ "region": "tokens",
145
+ "syntax": "css",
146
+ "emitter": "css-vars",
147
+ "params": {
148
+ "selector": ".card.press",
149
+ "stamp": "YN",
150
+ "vars": [
151
+ {
152
+ "token": "paper",
153
+ "comment": "warm paper canvas"
154
+ },
155
+ {
156
+ "token": "ink"
157
+ },
158
+ {
159
+ "token": "dim"
160
+ },
161
+ {
162
+ "token": "accent",
163
+ "name": "press-sig",
164
+ "comment": "THE signature accent — one loud color, used sparingly"
165
+ },
166
+ {
167
+ "token": "rule",
168
+ "comment": "heavy editorial rules"
169
+ },
170
+ {
171
+ "token": "serif_stack",
172
+ "name": "serif",
173
+ "comment": "commentary voice"
174
+ },
175
+ {
176
+ "token": "stamp",
177
+ "quote": true,
178
+ "comment": "your monogram initials (2 chars)"
179
+ },
180
+ {
181
+ "token": "term_bg",
182
+ "comment": "dark panel: only ever inside .term"
183
+ },
184
+ {
185
+ "token": "term_text"
186
+ },
187
+ {
188
+ "token": "term_dim"
189
+ },
190
+ {
191
+ "token": "term_hot"
192
+ },
193
+ {
194
+ "token": "term_prompt"
195
+ }
196
+ ],
197
+ "trailing": [
198
+ "color: var(--ink);"
199
+ ],
200
+ "comments": "explicit",
201
+ "align": true
202
+ },
203
+ "init": {
204
+ "replaceFrom": "^\\.card\\.press \\{$",
205
+ "replaceTo": "^\\}$"
206
+ }
207
+ },
208
+ {
209
+ "id": "devlog-palette",
210
+ "repo": "claude-skills",
211
+ "path": "skills/devlog/skills/devlog/image-style/style-guide.example.md",
212
+ "region": "palette",
213
+ "syntax": "md",
214
+ "emitter": "md-palette",
215
+ "params": {
216
+ "omit": [
217
+ "rule",
218
+ "paper_surface",
219
+ "paper_elevated"
220
+ ]
221
+ },
222
+ "init": {
223
+ "replaceFrom": "^- \\*\\*Paper\\*\\* ",
224
+ "replaceTo": "^ outside a `\\.term` panel\\.$"
225
+ }
226
+ },
227
+ {
228
+ "$comment": "Phase 2 — external repos. Declared now so the registry documents where the brand lives, even before those repos carry a press CI step. They resolve only when `press check` runs inside their own checkout.",
229
+ "id": "budget",
230
+ "repo": "budget",
231
+ "path": "src/local_budget/report/brand.py",
232
+ "region": "tokens",
233
+ "syntax": "python",
234
+ "emitter": "python-theme",
235
+ "params": {
236
+ "env_var": "BUDGET_BRAND_FILE",
237
+ "brand_line": "LOCAL BUDGET",
238
+ "byline": "local-budget · generated offline",
239
+ "document_kind": "MONTHLY REPORT",
240
+ "extras": [
241
+ "warn"
242
+ ]
243
+ },
244
+ "init": {
245
+ "replaceFrom": "^import copy$",
246
+ "replaceTo": "^ return theme$"
247
+ }
248
+ },
249
+ {
250
+ "id": "local-fitness",
251
+ "repo": "local-fitness",
252
+ "path": "src/local_fitness/agent/branding.py",
253
+ "region": "tokens",
254
+ "syntax": "python",
255
+ "emitter": "python-theme",
256
+ "params": {
257
+ "env_var": "LOCAL_FITNESS_BRAND_FILE",
258
+ "brand_line": "LOCAL FITNESS",
259
+ "document_kind": "MORNING BRIEF",
260
+ "logging": true,
261
+ "extras": [
262
+ "mono_file"
263
+ ]
264
+ },
265
+ "init": {
266
+ "replaceFrom": "^import copy$",
267
+ "replaceTo": "^ return theme$"
268
+ }
269
+ },
270
+ {
271
+ "id": "site-tokens",
272
+ "repo": "natejswenson.io",
273
+ "path": "src/styles/global.css",
274
+ "region": "tokens",
275
+ "syntax": "css",
276
+ "emitter": "css-vars",
277
+ "params": {
278
+ "selector": ":root",
279
+ "align": true,
280
+ "comments": false,
281
+ "vars": [
282
+ {
283
+ "token": "paper",
284
+ "name": "bg"
285
+ },
286
+ {
287
+ "token": "paper_surface",
288
+ "name": "bg-surface"
289
+ },
290
+ {
291
+ "token": "paper_elevated",
292
+ "name": "bg-elevated"
293
+ },
294
+ {
295
+ "token": "ink",
296
+ "name": "fg"
297
+ },
298
+ {
299
+ "token": "dim",
300
+ "name": "fg-secondary"
301
+ },
302
+ {
303
+ "token": "ink_faint",
304
+ "name": "fg-tertiary"
305
+ },
306
+ {
307
+ "token": "accent"
308
+ },
309
+ {
310
+ "token": "rule"
311
+ },
312
+ {
313
+ "token": "term_bg",
314
+ "name": "panel"
315
+ },
316
+ {
317
+ "token": "term_text",
318
+ "name": "panel-fg"
319
+ },
320
+ {
321
+ "token": "term_dim",
322
+ "name": "panel-dim"
323
+ },
324
+ {
325
+ "token": "term_hot",
326
+ "name": "panel-hot"
327
+ },
328
+ {
329
+ "token": "term_prompt",
330
+ "name": "panel-bar"
331
+ }
332
+ ]
333
+ }
334
+ }
335
+ ]
336
+ }