@hraness/design-kit 0.33.0 → 0.35.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.
Files changed (44) hide show
  1. package/README.md +19 -3
  2. package/dist/{chunk-mr1vdcjq.js → chunk-8xfssb9c.js} +6 -3
  3. package/dist/{chunk-95mpmzc9.js → chunk-c9mhn3yb.js} +1130 -442
  4. package/dist/{chunk-h4k7yv6x.js → chunk-fjf81bww.js} +28 -2
  5. package/dist/chunk-gmea6p0d.js +13 -0
  6. package/dist/index.js +5 -1
  7. package/dist/mockups/client.js +50 -15
  8. package/dist/portfolio.js +586 -85
  9. package/dist/react/index.js +141 -13
  10. package/dist/react/platform-install.js +3 -2
  11. package/dist/react/server.js +17 -3
  12. package/dist/stylex-manifest.json +1 -1
  13. package/dist/stylex.css +350 -36
  14. package/package.json +14 -3
  15. package/portfolio-inventory.json +1 -1
  16. package/src/diagrams.ts +11 -0
  17. package/src/index.ts +2 -0
  18. package/src/marketing-comparison.css +162 -0
  19. package/src/marketing-diagram.css +24 -0
  20. package/src/mockups/client.tsx +25 -17
  21. package/src/mockups.css +19 -0
  22. package/src/plain-publication.css +9 -6
  23. package/src/portfolio.generated.json +578 -86
  24. package/src/portfolio.generated.ts +578 -86
  25. package/src/portfolio.ts +73 -0
  26. package/src/product-marketing-foundation.css +29 -0
  27. package/src/product-marketing.css +136 -39
  28. package/src/react/article.tsx +2 -2
  29. package/src/react/design-gallery.tsx +37 -8
  30. package/src/react/index.ts +3 -0
  31. package/src/react/marketing-account.stylex.ts +74 -0
  32. package/src/react/marketing-account.tsx +69 -0
  33. package/src/react/marketing-comparison.stylex.ts +24 -0
  34. package/src/react/marketing-comparison.tsx +73 -0
  35. package/src/react/marketing-diagram.stylex.ts +8 -0
  36. package/src/react/marketing-diagram.tsx +33 -0
  37. package/src/react/platform-install.stylex.ts +2 -1
  38. package/src/react/platform-install.tsx +2 -1
  39. package/src/react/product-marketing.stylex.ts +144 -111
  40. package/src/react/product-marketing.tsx +83 -45
  41. package/src/react/server.ts +3 -0
  42. package/src/styles.css +2 -0
  43. package/src/typography.css +32 -0
  44. /package/dist/{chunk-4d79eskk.js → chunk-c80g58j1.js} +0 -0
@@ -3,22 +3,22 @@
3
3
  "formatVersion": 1,
4
4
  "provenance": {
5
5
  "registry": "https://hraness.com/portfolio.json",
6
- "commit": "82542df32e3b5db919c5d3778125ea2970d932f7",
7
- "committedOn": "2026-09-29",
6
+ "commit": "d75ebaa21ae0576c1d6c71e1bea23c93b866601c",
7
+ "committedOn": "2026-09-30",
8
8
  "upstreamContract": "hraness.portfolio-public/v1",
9
- "upstreamDigest": "sha256:1f3d10922cc4f7f78fe3a70fba90ee91e9c473253f6e2d5485dd8b8192762040",
9
+ "upstreamDigest": "sha256:ba365e481a8b15c4a19503b1628e1b7ae9399e47055dde02bae124183a3e1447",
10
10
  "files": [
11
11
  {
12
12
  "path": "portfolio.public.generated.json",
13
- "sha256": "30a3acc1d7f52a7c3180cfbf0fa63ebbe2c1ccc9f35e6d8cf75d559996ab2eea"
13
+ "sha256": "4c9e41dd1cb711d21a2da086de6b7d4adac2990ccda3909fa1cacf3b0ff44369"
14
14
  },
15
15
  {
16
16
  "path": "packages/brand-catalog/brands.yaml",
17
- "sha256": "357c5bb8f2dc85ed1cc097161db3f97aaef58ee3a7f9a480bf926104ab723389"
17
+ "sha256": "10f20e9d7b8ad0f108b56344c5d1b60cf3c54e6cec5e7024004b7b4f608f282c"
18
18
  },
19
19
  {
20
20
  "path": "brand-artwork.json",
21
- "sha256": "625c88ca6e24e78d80e8efbecaeb25bd88711287e86fa2f32f6bca110fe30b92"
21
+ "sha256": "7b1ba29f24352b33e666af059b8efbb273dd68269600b04d4d15ef4c94743876"
22
22
  },
23
23
  {
24
24
  "path": "projects/hraness/public/marks/act60.svg",
@@ -128,10 +128,6 @@
128
128
  "path": "projects/hraness/public/marks/system-one-skills.svg",
129
129
  "sha256": "44855079c3dea26397d798926ec5689115e084ca26367b7ab73c7b0ea8b18119"
130
130
  },
131
- {
132
- "path": "projects/hraness/public/marks/valhalla-album.svg",
133
- "sha256": "8de9218ce0ee4238cb3859a6f450ba746c26e92b0dc7d2e03953777207713602"
134
- },
135
131
  {
136
132
  "path": "projects/hraness/public/marks/valhalla.svg",
137
133
  "sha256": "ae060052dc1550a4d377e3c4ebba9f2a5e5e58be1dafe8256a2a885063e84c24"
@@ -172,10 +168,23 @@
172
168
  "long": "Long coding-agent sessions collect tool output that mattered once: test logs from runs that have since passed, file listings from before a refactor, stack traces for bugs already fixed. Every turn sends all of it to the model again. Gobstopper is a free, open-source command-line tool that finds your Claude Code and Codex sessions, shows what each compaction strategy would cut, and writes a smaller copy. Before it writes, it stores the original bytes in a content-addressed vault on your machine, so you can search for the exact record a compaction left out or restore the whole session.",
173
169
  "hero": {
174
170
  "heading": "Context compaction you can undo.",
175
- "summary": "Gobstopper keeps long coding sessions smaller. Run your agent through a local proxy, or make a smaller copy of a saved session while keeping the original for recovery.",
171
+ "summary": "Keep long coding sessions smaller, with the original available to restore.",
176
172
  "primaryAction": "Install Gobstopper",
177
173
  "secondaryAction": "How it works"
178
174
  },
175
+ "headings": {
176
+ "home-live": "Keep the recent work in view.",
177
+ "home-file-copy": "Try a smaller copy. Keep a way back.",
178
+ "home-results": "38% smaller on requests it compacted.",
179
+ "home-film": "Watch it in 75 seconds.",
180
+ "home-install": "Start with one session.",
181
+ "home-questions": "Before you install.",
182
+ "home-related": "Other tools from our studio",
183
+ "home-search-title": "Gobstopper: context compaction proxy for Claude Code and Codex",
184
+ "home-primitive-preview": "Preview the cut",
185
+ "home-primitive-original": "Keep the original",
186
+ "home-primitive-resume": "Check before resuming"
187
+ },
179
188
  "status": {
180
189
  "default": "proposed"
181
190
  },
@@ -220,6 +229,15 @@
220
229
  "primaryAction": "Install xcb",
221
230
  "secondaryAction": "See how it works"
222
231
  },
232
+ "headings": {
233
+ "home-router": "Use your quota before it resets",
234
+ "home-interfaces": "Two ways to use xcb",
235
+ "home-import-sessions": "Continue your Claude and Codex conversations",
236
+ "home-install": "Install xcb",
237
+ "home-questions": "Questions",
238
+ "home-interface-agent": "As your coding agent",
239
+ "home-interface-integration": "Inside your agent or app"
240
+ },
223
241
  "status": {
224
242
  "default": "proposed"
225
243
  },
@@ -256,10 +274,18 @@
256
274
  "long": "Picking a model means guessing at a tradeoff between quality and price, because benchmark scores and prices live in different places. aicharts plots published benchmark scores against cost and tokens per task on one chart, so the strongest option at each budget is visible instead of implied. A local collector measures your own agents' token use, so the cost question covers your work, not only the models. aicharts is free and open source.",
257
275
  "hero": {
258
276
  "heading": "See which model wins at each price.",
259
- "summary": "Benchmark scores plotted against cost and tokens per task, plus a local collector for your own agents' token use.",
277
+ "summary": "Compare model benchmark scores, prices, and the tokens each task takes.",
260
278
  "primaryAction": "Browse the charts",
261
279
  "secondaryAction": "Measure your agent"
262
280
  },
281
+ "headings": {
282
+ "home-calculator": "Subscription vs API vs GPUs",
283
+ "home-platform-group": "The agent platform",
284
+ "home-personal-group": "The personal apps",
285
+ "home-related": "Other tools from our studio",
286
+ "home-about": "About aicharts",
287
+ "home-search-title": "aicharts: AI model benchmark scores vs cost per task"
288
+ },
263
289
  "status": {
264
290
  "default": "proposed"
265
291
  },
@@ -296,10 +322,30 @@
296
322
  "long": "A new coding-agent session can read your code, but not the decisions that stayed in the last session's chat. Wordcell keeps those decisions as Markdown files beside the repository, with the plans that depend on them and the web pages and PDFs that informed them. Tie a note to the paths it explains, and an agent about to change that code runs one command to get the notes and plans for that path. Exact search, backlinks, and Git history run on your machine with no account or model, and every index rebuilds from files you can read in any editor. Wordcell is free and open source.",
297
323
  "hero": {
298
324
  "heading": "Give coding agents the decisions behind your code.",
299
- "summary": "Decisions, plans, and sources kept as Markdown beside your repository, one command away from the agent about to change a file.",
325
+ "summary": "Keep decisions, plans, and sources as Markdown beside your code.",
300
326
  "primaryAction": "Install Wordcell",
301
327
  "secondaryAction": "See an example"
302
328
  },
329
+ "headings": {
330
+ "home-related-group": "Works with Wordcell",
331
+ "home-preview": "Your agent finds the rule and names the file",
332
+ "home-install": "Save and find your first decision",
333
+ "home-agent-search": "Let your agent search and add notes",
334
+ "home-primitives": "What a vault gives you",
335
+ "home-passages": "Find the passage with the answer",
336
+ "home-scopes": "Your coding agent starts with what you already decided",
337
+ "home-fit": "How Wordcell compares",
338
+ "home-publish": "Publish your notes as a website",
339
+ "home-trust": "The record stays yours",
340
+ "home-questions": "Before you install",
341
+ "home-related": "Other tools from our studio",
342
+ "home-closing": "Give the next session what this one learned.",
343
+ "home-search-title": "Wordcell: Markdown memory for coding agents",
344
+ "home-primitive-files": "Files you own",
345
+ "home-primitive-decisions": "Find a past decision",
346
+ "home-primitive-context": "Context for the file at hand",
347
+ "home-primitive-sources": "Sources you can reopen"
348
+ },
303
349
  "status": {
304
350
  "default": "proposed"
305
351
  },
@@ -335,6 +381,25 @@
335
381
  "primaryAction": "Install Oh",
336
382
  "secondaryAction": "How it works"
337
383
  },
384
+ "headings": {
385
+ "model-title": "Keep the source with the claim.",
386
+ "trace-title": "Open the evidence behind an answer.",
387
+ "interfaces-title": "Work with the same records from a terminal, TypeScript, or an agent.",
388
+ "install-title": "Install and start with a local database.",
389
+ "kernel-title": "Keep your memory on your machine.",
390
+ "questions-title": "What to know before you install.",
391
+ "home-object-question": "Question",
392
+ "home-object-source": "Source",
393
+ "home-object-capture": "Capture",
394
+ "home-object-claim": "Claim",
395
+ "home-object-citation": "Citation",
396
+ "home-object-artifact": "Artifact",
397
+ "home-trust-local": "Local by default",
398
+ "home-trust-remote": "Remote services are opt-in",
399
+ "home-interface-cli": "CLI",
400
+ "home-interface-sdk": "TypeScript SDK",
401
+ "home-interface-skill": "Agent Skill"
402
+ },
338
403
  "status": {
339
404
  "default": "proposed"
340
405
  },
@@ -345,8 +410,8 @@
345
410
  "id": "sponge",
346
411
  "name": "Sponge",
347
412
  "oneLiner": "Local research service that keeps its sources and writes cited reports",
348
- "brandDescription": null,
349
- "canonicalUrl": "https://hraness.com/writing/the-knowledge-pack",
413
+ "brandDescription": "Sponge runs deep research on your own machine. It keeps the text of every source, writes a cited report, and reaches models through Excalibur (xcb).",
414
+ "canonicalUrl": "https://sponge.computer",
350
415
  "status": "active",
351
416
  "copyStatus": "proposed",
352
417
  "aliases": [],
@@ -363,10 +428,29 @@
363
428
  "short": "Local research service that keeps its sources and writes cited reports",
364
429
  "meta": "Sponge runs deep research on your own machine. It keeps the text of every source, writes a cited report, and reaches models through Excalibur (xcb).",
365
430
  "medium": "Sponge runs research projects on your own machine. Give it a question and sources, and it keeps their text, writes and updates a cited report, and tests new research strategies before you adopt them.",
366
- "long": "Sponge is a local research harness. Each project has a question and a set of sources, and Sponge keeps the source text, writes and updates a cited report, and records its operations so work survives restarts. A background service, terminal chat, and a macOS menu-bar app drive it. Deep mode plans the research, gathers public sources, recalls project memory, and audits a draft before it updates the report. Sponge runs on ALGAL, reaches models through Excalibur (xcb) so provider sign-ins stay there, keeps documents in Wordcell, and captures signed-in pages through GhostGet. A new strategy for brief research is tested in a sealed evaluation, and nothing changes until you adopt it or restore the previous one. Publishing makes a static Wordcell edition or puts selected documents on wordcell.io. It is in development and not yet released; it runs from a private checkout. The hosted library at sponge.computer is the earlier Sponge.",
431
+ "long": "Sponge is a local research harness. Each project has a question and a set of sources, and Sponge keeps the source text, writes and updates a cited report, and records its operations so work survives restarts. A background service that can start at login drives it, with terminal chat and status views. Deep mode plans the research, gathers public sources, recalls project memory, and audits a draft before it updates the report. Sponge runs on ALGAL, reaches models through Excalibur (xcb) so provider sign-ins stay there, keeps documents in Wordcell, and captures signed-in pages through GhostGet. A new strategy for brief research is tested in a sealed evaluation, and nothing changes until you adopt it or restore the previous one. Publishing makes a static Wordcell edition or puts selected documents on wordcell.io. It is in development, with releases in a private GitHub repository. The hosted library at sponge.computer is the earlier Sponge.",
367
432
  "hero": {
368
433
  "heading": "Deep research that runs on your own machine.",
369
- "summary": "Give it a question and sources. Sponge keeps their text, writes a cited report, and reaches models through the coding subscriptions you already pay for."
434
+ "summary": "Sponge runs as a background service with a terminal chat and a terminal status view. Ask a question, and it gathers sources, keeps their text, and writes a report that cites them.",
435
+ "primaryAction": "Read the Knowledge pack post",
436
+ "secondaryAction": "See the commands"
437
+ },
438
+ "headings": {
439
+ "archive": "notes and working documents",
440
+ "context": "context",
441
+ "home-comparison": "Four Hraness tools do the work",
442
+ "home-method": "From a question to a cited report",
443
+ "home-interfaces": "Where to find Sponge today",
444
+ "home-custody": "You decide what changes",
445
+ "home-search-title": "Sponge: A deep-research harness that runs on your machine",
446
+ "home-proof": "Start a research project from the terminal",
447
+ "home-questions": "Before you begin.",
448
+ "home-step-create": "Create a project",
449
+ "home-step-research": "Ask, or go deep",
450
+ "home-step-refresh": "Keep it current",
451
+ "home-interface-papers": "Daily papers",
452
+ "home-interface-library": "Sponge Library",
453
+ "home-interface-harness": "The research harness"
370
454
  },
371
455
  "status": {
372
456
  "default": "proposed"
@@ -408,6 +492,19 @@
408
492
  "primaryAction": "Install ALGAL",
409
493
  "secondaryAction": "See a program run"
410
494
  },
495
+ "headings": {
496
+ "home-draft": "Turn an email into a drafted reply.",
497
+ "home-process": "Keep a task running across interruptions.",
498
+ "home-host": "Your host sets the tools, models, and limits.",
499
+ "home-replay": "Every run can be replayed offline.",
500
+ "home-evolution": "Programs write programs. Your host picks which to keep.",
501
+ "home-install": "Install one binary. Run your first program.",
502
+ "home-research": "Can tested procedures improve later work?",
503
+ "home-limits": "Start locally. Know what you operate.",
504
+ "home-replay-verify": "Verify",
505
+ "home-replay-diff": "Diff",
506
+ "home-replay-diagnose": "Diagnose"
507
+ },
411
508
  "channels": {
412
509
  "homebrew": "Language and VM for agent programs that wait and resume"
413
510
  },
@@ -446,34 +543,21 @@
446
543
  "primaryAction": "Get started",
447
544
  "secondaryAction": "What works today"
448
545
  },
449
- "status": {
450
- "default": "proposed"
546
+ "headings": {
547
+ "model-title": "The people in a room run it.",
548
+ "start-title": "Start with the local tour.",
549
+ "install-and-take-the-tour": "Install and take the tour",
550
+ "choose-a-network": "Choose a network",
551
+ "sign-and-send": "Sign and send",
552
+ "work-title": "Share work across agent tools.",
553
+ "agents-title": "Let your agent join the room.",
554
+ "scope-title": "Choose who can read the conversation.",
555
+ "public-rooms": "Public rooms",
556
+ "private-rooms": "Private rooms",
557
+ "compare-title": "Choose where the work lives.",
558
+ "questions-title": "Before you install.",
559
+ "build-title": "Try the local tour."
451
560
  },
452
- "reviewedOn": "2026-09-24"
453
- }
454
- },
455
- "valhalla-album": {
456
- "id": "valhalla-album",
457
- "name": "valhalla",
458
- "oneLiner": "Five-track ambient album released as a draft and revised in public",
459
- "brandDescription": null,
460
- "canonicalUrl": "https://hraness.com/valhalla",
461
- "status": "active",
462
- "copyStatus": "proposed",
463
- "aliases": [],
464
- "mark": "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='32' height='32'%3E%3Cpath fill='%232474d4' fill-rule='evenodd' d='M5 24.8C5 18.8 9 15.2 13.8 15.2C18.6 15.2 22.6 18.8 22.6 24.8L22.6 27.5L5 27.5ZM4 25.7L23.8 25.7L23.8 26.7L4 26.7Z'/%3E%3Cpath fill='%232474d4' d='M7.4 18.6C4.4 15.8 2.8 11.6 3.2 6.4C3.3 5.7 3.7 5.3 4.1 5.9C6.8 9 9 12.4 10.5 16.3C9.5 17.3 8.4 18 7.4 18.6Z'/%3E%3Cpath fill='%232474d4' d='M19.8 21.8C20.7 15.8 21.3 10.2 21.6 5.3L24.6 5.3C24.5 10.6 24.2 17.4 23.9 23C23.2 22.4 22.4 21.9 19.8 21.8Z'/%3E%3Cpath fill='%232474d4' d='M21.6 5.3C25.2 5.5 28.2 7 29.8 9.7C27.2 9.9 24.4 9.4 22.3 8.3Z'/%3E%3C/svg%3E",
465
- "messaging": {
466
- "formatVersion": 1,
467
- "product": "valhalla-album",
468
- "names": {
469
- "name": "valhalla"
470
- },
471
- "category": "Ambient electronic album",
472
- "tagline": "Hear an album being revised in public.",
473
- "short": "Five-track ambient album released as a draft and revised in public",
474
- "meta": "valhalla is a five-track ambient electronic album by Hraness, released as a draft and revised in public on Soundfish.",
475
- "medium": "valhalla is a five-track ambient electronic album by Hraness, about 11 minutes long, released as a draft and revised in public. Listen free on Soundfish.",
476
- "long": "valhalla is a five-track ambient electronic album by Hraness, about 11 minutes long. It was released as a draft and is being revised in public: each track keeps its takes in order on Soundfish, so you can hear the album change as it is finished. Listening needs no account. The draft is the point of the release: an album is usually finished in private and published once, while valhalla stays open, so each revision leaves a dated earlier take behind it.",
477
561
  "status": {
478
562
  "default": "proposed"
479
563
  },
@@ -483,8 +567,8 @@
483
567
  "peopleblade": {
484
568
  "id": "peopleblade",
485
569
  "name": "PeopleBlade",
486
- "oneLiner": "Local personal CRM for everyone you know, built for your agent",
487
- "brandDescription": "PeopleBlade is a local personal CRM for everyone you know, built for your agent. Bring contacts from apps and exports into one private book.",
570
+ "oneLiner": "The contact book you own, built for your agent",
571
+ "brandDescription": "The contact book you own, built for your agent. PeopleBlade is a local personal CRM that gathers contacts from your apps and exports into one private book.",
488
572
  "canonicalUrl": "https://peopleblade.com",
489
573
  "status": "active",
490
574
  "copyStatus": "proposed",
@@ -497,10 +581,10 @@
497
581
  "name": "PeopleBlade",
498
582
  "command": "peopleblade"
499
583
  },
500
- "category": "Contact book for agents",
501
- "tagline": "Own your contacts across every app.",
502
- "short": "Local personal CRM for everyone you know, built for your agent",
503
- "meta": "PeopleBlade is the contact book you own, built for your personal agent. It gathers everyone you know from your apps and shows where each contact came from.",
584
+ "category": "Local personal CRM",
585
+ "tagline": "A local personal CRM for everyone you know.",
586
+ "short": "The contact book you own, built for your agent",
587
+ "meta": "The contact book you own, built for your agent. PeopleBlade is a local personal CRM that gathers contacts from your apps and exports into one private book.",
504
588
  "medium": "PeopleBlade brings your contacts from Apple Contacts, iMessage, Google Contacts, WhatsApp, LinkedIn, and more into one private book on your computer. Keep notes beside each person, and let your agent search the book from the command line.",
505
589
  "long": "PeopleBlade is a local personal CRM for everyone you know. It imports contacts from Apple Contacts, iMessage, Google Contacts, Beeper, WhatsApp, and your LinkedIn, Instagram, and X data exports into one SQLite database on your computer, and every detail keeps the source it came from. Likely duplicates wait for your review, and a shared name is never enough to join two people. Write private notes beside each person, or let your agent search and research the book with JSON commands. Your agent never receives your passwords, and imports keep no message text. The CLI is free and MIT licensed.",
506
590
  "headlines": [
@@ -508,9 +592,27 @@
508
592
  ],
509
593
  "hero": {
510
594
  "heading": "Social Blade for everyone you know.",
511
- "summary": "PeopleBlade builds one contact book on your computer from your address book, chat apps, and exports. Your agent searches it, keeps notes, and tells you which import each contact came from.",
595
+ "summary": "One private contact book. Bring your contacts together and let your agent help you stay in touch.",
512
596
  "primaryAction": "Install the free CLI",
513
- "secondaryAction": "See the workspace"
597
+ "secondaryAction": "See how it works"
598
+ },
599
+ "headings": {
600
+ "home-video": "See it work, start to finish.",
601
+ "home-unification": "Bring your contacts together.",
602
+ "home-book": "Find people and keep the context.",
603
+ "home-agent": "Let your agent work with your contacts.",
604
+ "home-comparison": "Choose the contact book that fits.",
605
+ "home-boundary": "Know what your agent can access.",
606
+ "home-related": "Other tools from our studio",
607
+ "home-cloud": "Sync only when you choose.",
608
+ "home-personal-group": "The personal apps",
609
+ "home-platform-group": "The agent platform",
610
+ "home-install": "Try it in a minute",
611
+ "home-questions": "Questions",
612
+ "home-account": "Your account",
613
+ "home-step-import": "Import what you already have",
614
+ "home-step-matches": "Accept the matches",
615
+ "home-step-agent": "Ask your agent"
514
616
  },
515
617
  "status": {
516
618
  "default": "proposed"
@@ -548,10 +650,46 @@
548
650
  "long": "TextButler is an AI butler for your messages, running on your Mac. Turn it on for the chats you choose in iMessage, WhatsApp, or Beeper, and it replies as a clearly marked assistant that keeps notes on each person in files you can edit. New installs start paused and every contact starts off. Choose a local model, your Gateway key, or a connected subscription; local-model replies are in testing. Hosted AI providers receive the context needed to write a reply. TextButler is free and MIT licensed.",
549
651
  "hero": {
550
652
  "heading": "An AI butler in your messaging apps.",
551
- "summary": "When someone you’ve turned on texts “butler”, a clearly marked AI assistant answers for you from your Mac. It writes with a local model or the AI subscription you already pay for. Claude Code, Codex, or Devin can set it up for you.",
653
+ "summary": "A clearly marked AI assistant answers the people you choose, from your Mac.",
552
654
  "primaryAction": "Have your agent set it up",
553
655
  "secondaryAction": "See how it works"
554
656
  },
657
+ "headings": {
658
+ "how-title": "From “butler” to a marked reply.",
659
+ "supports-title": "What it works with",
660
+ "models-title": "Pick what writes replies",
661
+ "setup-title": "Your agent sets it up. You stay in charge.",
662
+ "control-title": "You stay in charge",
663
+ "self-title": "Ask it yourself",
664
+ "questions-title": "Questions",
665
+ "related-title": "Other tools from our studio",
666
+ "closing-title": "Start with one person",
667
+ "where-it-stands": "Where it stands",
668
+ "messaging-apps": "Messaging apps",
669
+ "your-mac": "Your Mac",
670
+ "install-it-yourself": "Install it yourself",
671
+ "prefer-to-do-it-yourself": "Prefer to do it yourself?",
672
+ "your-agent-speaks-its-language": "Your agent speaks its language",
673
+ "it-s-there-when-you-aren-t": "It’s there when you aren’t.",
674
+ "it-never-pretends-to-be-you": "It never pretends to be you.",
675
+ "it-runs-on-your-mac": "It runs on your Mac.",
676
+ "site-title": "TextButler: an AI butler for iMessage and WhatsApp on Mac",
677
+ "home-writer-local": "A local model on your Mac",
678
+ "home-writer-key": "Qwen 3.5 Flash with your own Vercel AI Gateway key",
679
+ "home-writer-subscription": "Your Claude Code, Codex, or Devin subscription",
680
+ "home-flow-text": "Someone texts you.",
681
+ "home-flow-checks": "It checks before it speaks.",
682
+ "home-flow-indicator": "👀, right away.",
683
+ "home-flow-context": "It reads the room.",
684
+ "home-flow-model": "Your chosen model writes the reply.",
685
+ "home-flow-send": "Marked, then sent.",
686
+ "home-flow-step-in": "You can step in anytime.",
687
+ "home-setup-agent": "Ask your agent.",
688
+ "home-setup-mac": "Say yes to your Mac.",
689
+ "home-setup-person": "Turn on one person.",
690
+ "home-related-apps": "The personal apps",
691
+ "home-related-tools": "The agent platform"
692
+ },
555
693
  "status": {
556
694
  "default": "proposed"
557
695
  },
@@ -588,10 +726,45 @@
588
726
  "long": "Agents that run commands reach the web through a browser they steer click by click, or through credentials they should never hold. GhostGet is a free, open-source CLI and TypeScript SDK that gives them a third route: a fixed list of reviewed web actions. Read a URL as Markdown, keep a searchable copy on your machine, archive one media item with SHA-256 records, or act in a connected account such as Gmail, Beeper, or X through one named operation. A measured article read costs about 3,800 tokens where the raw page carries 36,000. Consequential writes need an exact preview and your confirmation, and the agent never sees a login.",
589
727
  "hero": {
590
728
  "heading": "Your agent gets the result without clicking around.",
591
- "summary": "A free CLI and TypeScript SDK for Claude Code, Codex, Cursor, and other agents that run commands. Read a page as Markdown, save a media item, or use a connected account.",
729
+ "summary": "Read pages, save media, and use connected accounts through your agent.",
592
730
  "primaryAction": "Tell your agent",
593
731
  "secondaryAction": "See it work"
594
732
  },
733
+ "headings": {
734
+ "uses-heading": "Read a page, archive one item, or act in an account.",
735
+ "how-it-works-heading": "Give your agent a web task.",
736
+ "measured-heading": "Read the page without its HTML.",
737
+ "start-heading": "Tell your agent, or run two commands.",
738
+ "interfaces-title": "Use an Agent Skill, CLI, or TypeScript SDK",
739
+ "agent-skill": "Agent Skill",
740
+ "cli": "CLI",
741
+ "typescript-sdk": "TypeScript SDK",
742
+ "control-heading": "Review accounts and approvals.",
743
+ "local-by-design-title": "Choose what your agent can do.",
744
+ "comparison-title": "How GhostGet compares with other ways agents reach the web.",
745
+ "faq-title": "Before you install.",
746
+ "guides-title": "Start with the outcome you need.",
747
+ "read-your-first-page": "Read your first page",
748
+ "capture-urls-and-archive-media": "Capture URLs and archive media",
749
+ "check-provider-support": "Check provider support",
750
+ "understand-the-security-model": "Understand the security model",
751
+ "author-a-provider-plugin": "Author a provider plugin",
752
+ "browse-the-documentation": "Browse the documentation",
753
+ "arguments-title": "Arguments and comparisons",
754
+ "how-agents-reach-the-web": "How agents reach the web",
755
+ "maker-title": "Hraness",
756
+ "related-title": "Other tools from our studio",
757
+ "related-tools": "The agent platform",
758
+ "related-apps": "The personal apps",
759
+ "final-title": "Read your first page in two commands.",
760
+ "home-providers": "Use {{PROVIDER_SURFACE_COUNT}} services from your agent.",
761
+ "home-webmcp-sites": "Plus {{WEBMCP_REGISTRY_SITE_COUNT}} sites publishing WebMCP tools"
762
+ },
763
+ "channels": {
764
+ "social": {
765
+ "imageDescription": "Named web actions for AI agents: read pages, save media, use accounts."
766
+ }
767
+ },
595
768
  "status": {
596
769
  "default": "proposed"
597
770
  },
@@ -628,10 +801,37 @@
628
801
  "long": "Soulscrape is a free, MIT-licensed agent skill that turns sources you're allowed to use into a dated dossier on one person: how they decide, write, argue, and change their mind. It runs inside Claude Code, Codex, or another agent that loads skills, with your own model and tools, and needs no Soulscrape account. Facts, stated beliefs, patterns, and speculation stay apart, and the dossier lists what the record cannot settle. Keep it private, or publish it with a free Hraness account as a web page, a JSON packet, and a Markdown copy anyone can cite.",
629
802
  "hero": {
630
803
  "heading": "See how someone thinks, and where every claim comes from.",
631
- "summary": "Give your agent the sources you're allowed to use, and it writes a dated dossier with every claim tied to its evidence.",
804
+ "summary": "Turn sources into a dated dossier, with evidence behind every claim.",
632
805
  "primaryAction": "Install the skill",
633
806
  "secondaryAction": "Browse the dossiers"
634
807
  },
808
+ "headings": {
809
+ "how-title": "From sources to a dossier",
810
+ "examples-title": "Explore a finished dossier",
811
+ "method-title": "Read the claims alongside their evidence",
812
+ "use-cases-title": "Use the research in your own work",
813
+ "install-title": "Install and write your first dossier",
814
+ "indexes-title": "Publish when you are ready",
815
+ "boundaries-title": "Keep the research within its limits",
816
+ "questions-title": "Questions",
817
+ "related-title": "Other tools from our studio",
818
+ "cta-title": "Start with one person",
819
+ "home-flow-sources": "Choose the sources",
820
+ "home-flow-read": "Read the dossier",
821
+ "home-flow-publish": "Keep it private or publish",
822
+ "home-use-agent": "Give an agent context",
823
+ "home-use-research": "Research a person",
824
+ "home-use-writing": "Write about someone",
825
+ "home-use-personas": "Prepare an authorized assistant",
826
+ "home-use-collaboration": "Work with someone",
827
+ "home-use-self": "Understand your own patterns",
828
+ "home-trust-sources": "Authorized sources",
829
+ "home-trust-purpose": "A clear purpose",
830
+ "home-trust-instructions": "Research under your instructions",
831
+ "home-trust-claims": "Claims you can check",
832
+ "home-related-apps": "The personal apps",
833
+ "home-related-tools": "The agent platform"
834
+ },
635
835
  "status": {
636
836
  "default": "proposed"
637
837
  },
@@ -657,19 +857,34 @@
657
857
  "category": "Editable icon library",
658
858
  "tagline": "Icons and illustrations you can edit as vectors.",
659
859
  "short": "Editable vector icons and illustrations, with an editor in your browser",
660
- "meta": "icon.place is a library of editable vector icons and illustrations, with 9,518 concept pages and an in-browser editor that exports SVG, PNG, or a recipe.",
661
- "medium": "icon.place is a library of editable vector icons and illustrations, with 9,518 concept pages. Drawings open in an in-browser editor for styles, palettes, and parts, and export as SVG, PNG, or a recipe.",
662
- "long": "icon.place is a library of editable vector icons and illustrations. It has 9,518 concept pages and 8,965 drawn icons, adapted from Lucide, Tabler, Phosphor, Material Symbols, Font Awesome Free, Bootstrap Icons, and others, credited on each page. A shared in-browser editor changes styles, palettes, and parts, and exports SVG, PNG, or a replayable recipe. The studio composes connected scenes from 41 pieces, and you can remix your own SVG or trace an image. A separate drawing lab runs small Qwen models in the browser through WebGPU and records each drawing run as an ALGAL program; the live site does not use it yet.",
860
+ "meta": "icon.place is a library of editable vector icons and illustrations, with an in-browser editor that exports SVG, PNG, or a recipe.",
861
+ "medium": "icon.place is a library of editable vector icons and illustrations. Drawings open in an in-browser editor for styles, palettes, and parts, and export as SVG, PNG, or a recipe.",
862
+ "long": "icon.place is a library of editable vector icons and illustrations. Its concept pages include drawn icons adapted from Lucide, Tabler, Phosphor, Material Symbols, Font Awesome Free, Bootstrap Icons, and others, credited on each page. A shared in-browser editor changes styles, palettes, and parts, and exports SVG, PNG, or a replayable recipe. The studio composes connected scenes from reusable pieces, and you can remix your own SVG or trace an image. A separate drawing lab runs small Qwen models in the browser through WebGPU and records each drawing run as an ALGAL program; the live site does not use it yet.",
863
+ "hero": {
864
+ "heading": "Icons and illustrations you can edit as vectors.",
865
+ "summary": "icon.place is a library of editable vector icons and illustrations. Drawings open in an in-browser editor for styles, palettes, and parts, and export as SVG, PNG, or a recipe.",
866
+ "primaryAction": "Open an icon",
867
+ "secondaryAction": "Browse every icon"
868
+ },
869
+ "headings": {
870
+ "home-strip": "Twelve icons from the library",
871
+ "home-techniques": "One {subject}, {count} ways.",
872
+ "home-wall": "All {count} drawn icons, on one page.",
873
+ "home-why": "Your agent can draw an SVG. Can it draw the next 500 in the same hand?",
874
+ "home-styles": "A style is code, not a prompt",
875
+ "home-primitives": "Built from composable primitives",
876
+ "home-rendering": "Generation costs almost nothing"
877
+ },
663
878
  "status": {
664
879
  "default": "proposed"
665
880
  },
666
- "reviewedOn": "2026-09-29"
881
+ "reviewedOn": "2026-09-30"
667
882
  }
668
883
  },
669
884
  "slopcamera": {
670
885
  "id": "slopcamera",
671
886
  "name": "SlopCamera",
672
- "oneLiner": "Media studio for agents: images, 3D, animation, and video to revise",
887
+ "oneLiner": "A multimedia studio for your coding agent",
673
888
  "brandDescription": "SlopCamera lets your coding agent make images, diagrams, animation, 3D scenes, and video from source files it can keep revising.",
674
889
  "canonicalUrl": "https://slopcamera.com",
675
890
  "status": "active",
@@ -691,21 +906,43 @@
691
906
  ]
692
907
  },
693
908
  "category": "Media studio for agents",
694
- "tagline": "Visual work your agent can keep revising.",
695
- "short": "Media studio for agents: images, 3D, animation, and video to revise",
909
+ "tagline": "A multimedia studio for your coding agent.",
910
+ "short": "A multimedia studio for your coding agent",
696
911
  "meta": "SlopCamera lets your coding agent make images, diagrams, animation, 3D scenes, and video from source files it can keep revising.",
697
912
  "medium": "SlopCamera is a media studio for coding agents. Codex, Claude Code, and other agents make images, diagrams, animation, 3D scenes, and edited video from source files they can keep revising.",
698
913
  "long": "Agents that write code can also make media, but generated assets usually arrive as finished files nobody can change. SlopCamera is a media studio for coding agents: images, diagrams, animation, 3D scenes, and edited video are built from source files the agent can keep revising, so a change is a new render, not a new prompt lottery. Codex, Claude Code, and other command-capable agents drive it through the CLI and skill. SlopCamera is free and open source.",
699
914
  "hero": {
700
- "heading": "Visual work your agent can keep revising.",
701
- "summary": "Ask your agent to make images, diagrams, animation, 3D scenes, or video. Keep the source files for the next revision.",
702
- "primaryAction": "Install SlopCamera",
703
- "secondaryAction": "See what agents made"
915
+ "heading": "Give your agent a multimedia studio.",
916
+ "summary": "Make images, animation, 3D scenes, and video with your coding agent. Direct the details. Keep the source.",
917
+ "primaryAction": "Install Slopcamera",
918
+ "secondaryAction": "Watch the films"
919
+ },
920
+ "headings": {
921
+ "home-examples": "Take an idea somewhere strange.",
922
+ "home-revision": "The next version starts with a sentence.",
923
+ "home-revision-original": "Original",
924
+ "home-revision-revised": "Revised",
925
+ "home-start": "What will you make first?",
926
+ "home-start-animation": "Make an animated film",
927
+ "home-start-world": "Build a little world",
928
+ "home-start-footage": "Give footage a new life",
929
+ "home-install": "Install Slopcamera for your agent.",
930
+ "home-design": "Your tools. Your files.",
931
+ "home-questions": "Common questions",
932
+ "home-cta": "Make something worth replaying.",
933
+ "home-search-title": "SlopCamera: video, diagrams and 3D your coding agent can revise",
934
+ "agent-home-examples": "See what you can make",
935
+ "agent-home-revision": "Direct it again",
936
+ "agent-home-workflow": "From an idea to a finished piece",
937
+ "agent-home-install": "Install Slopcamera",
938
+ "agent-home-tools": "Choose your tools",
939
+ "agent-home-privacy": "Cost and privacy",
940
+ "agent-home-explore": "Explore"
704
941
  },
705
942
  "status": {
706
943
  "default": "proposed"
707
944
  },
708
- "reviewedOn": "2026-09-24"
945
+ "reviewedOn": "2026-09-30"
709
946
  }
710
947
  },
711
948
  "soundfish": {
@@ -737,6 +974,20 @@
737
974
  "primaryAction": "Upload an album",
738
975
  "secondaryAction": "Hear an album page"
739
976
  },
977
+ "headings": {
978
+ "home-features": "Every album page has a player, comments, and play counts.",
979
+ "home-midi": "Sketch the next idea in the MIDI editor.",
980
+ "home-comparison": "How Soundfish compares",
981
+ "home-releases": "Recent releases",
982
+ "home-interfaces": "For listeners, makers, and agents",
983
+ "home-questions": "Common questions",
984
+ "home-search-title": "Soundfish: album pages with timestamped comments",
985
+ "home-eyebrow": "Music for agents",
986
+ "home-closing": "Share it today. Improve it at the same link.",
987
+ "home-interface-listeners": "For listeners",
988
+ "home-interface-makers": "For makers",
989
+ "home-interface-agents": "For agents"
990
+ },
740
991
  "status": {
741
992
  "default": "proposed"
742
993
  },
@@ -746,7 +997,7 @@
746
997
  "sys1": {
747
998
  "id": "sys1",
748
999
  "name": "Sys1",
749
- "oneLiner": "Answers an agent's small yes/no, choice, and score questions with probabilities",
1000
+ "oneLiner": "Saves repository check results and adds scoped code review",
750
1001
  "brandDescription": "Sys1 helps coding agents review changes against your repository's rules, with probability-scored answers from hosted Jev, a local model, or your own server.",
751
1002
  "canonicalUrl": "https://sys1.io",
752
1003
  "status": "active",
@@ -760,22 +1011,59 @@
760
1011
  "name": "Sys1",
761
1012
  "command": "sys1"
762
1013
  },
763
- "category": "Agent decision router",
764
- "tagline": "Give your agent a System 1.",
765
- "short": "Answers an agent's small yes/no, choice, and score questions with probabilities",
766
- "meta": "Sys1 answers an agent's small yes/no, choice, and score questions with probabilities, from TypeSafe's hosted Jev, a local model, or your own server.",
767
- "medium": "Sys1 keeps agents from spending big-model tokens on small decisions. It answers yes/no, choice, and score questions with probabilities from TypeSafe's hosted Jev, an experimental local model, or your own server.",
768
- "long": "Sys1 keeps agents from spending big-model tokens on small decisions. Agents ask yes/no, choice, and score questions and get validated answers with probabilities. You choose who answers: TypeSafe's hosted Jev, an experimental local model, or a compatible server you run. Its review and final-message checks are experimental and advisory. Every backend takes the same request format, Sys1 checks each answer against the question asked, and each response says which backend produced it. Call Sys1 from a Node or Bun client, embed its router, or run its local HTTP daemon for any language. Sys1 is free and MIT licensed.",
1014
+ "category": "Coding agent tools",
1015
+ "tagline": "Saved checks and code review",
1016
+ "short": "Saves repository check results and adds scoped code review",
1017
+ "meta": "Sys1 gives coding agents tools to review code, check completion claims, and get structured answers from Jev or a local model.",
1018
+ "medium": "Sys1 runs your repository check, keeps the output local, and saves a result you can inspect later. Add a scoped review when you need a second pass on the changes. Review and completion checks are advisory.",
1019
+ "long": "Sys1 runs your repository check, keeps the output local, and saves a result you can inspect later. Add a scoped review when you need a second pass on the changes. Its code review and completion checks are experimental and advisory. Agents and applications can also ask yes/no, choice, and score questions and receive validated answers with probabilities. Choose TypeSafe’s hosted Jev, an experimental local model, or a compatible server. Use the Node or Bun client, embed the router, or call its local HTTP gateway. The Sys1 site also offers System One Skills, an independent package that compacts noisy test and build output without Sys1 or a model. Sys1 is MIT licensed.",
769
1020
  "hero": {
770
- "heading": "Give your agent a System 1.",
771
- "summary": "Your agent asks small yes/no, choice, and score questions and gets validated answers with probabilities. You choose the model.",
1021
+ "heading": "Keep checks and code review together.",
1022
+ "summary": "Sys1 runs your repository check, keeps the output local, and saves a result you can inspect later. Add a scoped review when you need a second pass on the changes.",
772
1023
  "primaryAction": "Install Sys1",
773
- "secondaryAction": "Read the evaluations"
1024
+ "secondaryAction": "Explore the workflows"
1025
+ },
1026
+ "headings": {
1027
+ "review-heading": "Useful checks, inside your agent’s workflow.",
1028
+ "benchmarks-heading": "For compact output alone.",
1029
+ "launch-heading": "Meet Sys1.",
1030
+ "system-heading": "Three parts, one system.",
1031
+ "how-heading": "Use small decisions in your own code.",
1032
+ "trial-heading": "Test the decision on your task.",
1033
+ "integration-heading": "Three ways to call Sys1.",
1034
+ "ecosystem-heading": "What Sys1 connects to.",
1035
+ "install-heading": "Install Sys1.",
1036
+ "questions-heading": "Before you begin.",
1037
+ "docs-title": "Set up your first useful check",
1038
+ "getting-started-title": "Install Sys1",
1039
+ "workflows-title": "Save a check and continue its review",
1040
+ "connect-jev-title": "Connect hosted Jev for model calls",
1041
+ "audit-title": "Review changes with your agent",
1042
+ "verify-title": "Check a completion message",
1043
+ "compact-checks-title": "Compact test output",
1044
+ "system-one-title": "Ask for a structured decision",
1045
+ "integration-title": "Integration modes",
1046
+ "backends-title": "Other backends",
1047
+ "profiles-title": "Reuse application questions",
1048
+ "research-title": "Evaluate a model for your task",
1049
+ "workflow-review-heading": "Review a change against your rules",
1050
+ "workflow-completion-heading": "Check what “done” means",
1051
+ "docs-install-cli": "Install the CLI",
1052
+ "docs-first-jev-request": "Make your first Jev request",
1053
+ "docs-model-errors": "Choose the model and handle failures",
1054
+ "docs-portable-client": "Portable client",
1055
+ "docs-embedded-router": "Embedded Bun router",
1056
+ "docs-loopback-http": "Loopback HTTP"
1057
+ },
1058
+ "channels": {
1059
+ "social": {
1060
+ "imageDescription": "Keep checks and code review together."
1061
+ }
774
1062
  },
775
1063
  "status": {
776
1064
  "default": "proposed"
777
1065
  },
778
- "reviewedOn": "2026-09-29"
1066
+ "reviewedOn": "2026-09-30"
779
1067
  }
780
1068
  },
781
1069
  "sloptrade": {
@@ -810,7 +1098,18 @@
810
1098
  "heading": "AI writes the research. Your rules make the trade.",
811
1099
  "summary": "A researched build prompt your coding agent turns into a personal trading system where your rules approve every order.",
812
1100
  "primaryAction": "Get the prompt",
813
- "secondaryAction": "Read the architecture"
1101
+ "secondaryAction": "See how it works"
1102
+ },
1103
+ "headings": {
1104
+ "home-desk": "See the desk you'll own",
1105
+ "home-system": "What your agent builds",
1106
+ "home-sequence": "Start with order placement off",
1107
+ "home-access": "Who can do what",
1108
+ "home-comparison": "How it compares",
1109
+ "home-running": "What you need to run it",
1110
+ "home-buy": "Buy the prompt",
1111
+ "home-notes": "Read the design notes",
1112
+ "home-questions": "Questions"
814
1113
  },
815
1114
  "status": {
816
1115
  "default": "proposed",
@@ -884,6 +1183,9 @@
884
1183
  "primaryAction": "Play sound",
885
1184
  "secondaryAction": "Read the guides"
886
1185
  },
1186
+ "headings": {
1187
+ "home-search-title": "Free Brown, Pink & White Noise and Ocean Waves | Sleepyland"
1188
+ },
887
1189
  "status": {
888
1190
  "default": "proposed"
889
1191
  },
@@ -916,7 +1218,25 @@
916
1218
  "heading": "A daily front page that says why each story ranked.",
917
1219
  "summary": "Tech & AI, World, and Finance, one dated edition a day. Every story links the original source.",
918
1220
  "primaryAction": "Read today's edition",
919
- "secondaryAction": "See the archive"
1221
+ "secondaryAction": "See how stories are chosen"
1222
+ },
1223
+ "headings": {
1224
+ "home-search-title": "Rough Day: daily Tech & AI, World, and Finance news",
1225
+ "roughday-walkthrough-title": "See a day on Rough Day",
1226
+ "roughday-working-model-title": "How stories are chosen",
1227
+ "roughday-interfaces-title": "Other ways to read the archive",
1228
+ "roughday-evidence-title": "What each story shows",
1229
+ "roughday-compare-title": "How Rough Day compares",
1230
+ "roughday-trust-title": "Sources and privacy",
1231
+ "roughday-questions-title": "Common questions",
1232
+ "roughday-action-title": "Open the current archive.",
1233
+ "info-search-title": "How Rough Day works",
1234
+ "info-story-proof": "How to read a story",
1235
+ "info-interface-archive": "Daily archive",
1236
+ "info-interface-category": "Category link",
1237
+ "info-interface-markdown": "Markdown",
1238
+ "info-interface-feed": "Atom feed",
1239
+ "info-interface-guide": "Site guide and sitemap"
920
1240
  },
921
1241
  "status": {
922
1242
  "default": "proposed"
@@ -959,6 +1279,9 @@
959
1279
  "primaryAction": "Browse the timeline",
960
1280
  "secondaryAction": "Download the data"
961
1281
  },
1282
+ "headings": {
1283
+ "record-keeping": "How this record is kept"
1284
+ },
962
1285
  "status": {
963
1286
  "default": "proposed"
964
1287
  },
@@ -993,6 +1316,13 @@
993
1316
  "primaryAction": "Browse the index",
994
1317
  "secondaryAction": "Read the method"
995
1318
  },
1319
+ "headings": {
1320
+ "agreement": "Where kinds of evidence agree",
1321
+ "record-guide": "How to read a record",
1322
+ "evidence-kinds": "Five kinds of evidence",
1323
+ "browse": "Browse the index",
1324
+ "categories": "Categories"
1325
+ },
996
1326
  "status": {
997
1327
  "default": "proposed"
998
1328
  },
@@ -1013,7 +1343,8 @@
1013
1343
  "formatVersion": 1,
1014
1344
  "product": "act60",
1015
1345
  "names": {
1016
- "name": "act60.me"
1346
+ "name": "act60.me",
1347
+ "shortName": "ACT60"
1017
1348
  },
1018
1349
  "category": "Act 60 planner",
1019
1350
  "tagline": "Model the move to Puerto Rico before you make it.",
@@ -1022,11 +1353,49 @@
1022
1353
  "medium": "act60.me estimates Puerto Rico Act 60 savings after fees and yearly costs, with every assumption and source date beside the result. Sourced guides cover applying, federal residency, and moving; a private tracker counts your presence days.",
1023
1354
  "long": "Act 60 promises large Puerto Rico tax savings, but fees, yearly costs, and the federal residency rules decide the real number. act60.me models the move before you make it: a calculator that itemizes one-time and annual costs beside its assumptions, guides that cite the official sources and the date each was checked, and a private day tracker for the presence tests a calendar can measure. Investor applications filed in 2026 face a December 31 deadline; the guides say which rules changed and which still apply.",
1024
1355
  "hero": {
1025
- "heading": "Model the move to Puerto Rico",
1026
- "summary": "Estimate your Act 60 savings after fees and yearly costs, with every assumption and source date beside the result.",
1356
+ "heading": "Puerto Rico Act 60 calculator",
1357
+ "summary": "Estimate Act 60 savings from the export-services benefit (formerly Act 20) and the investor benefit (formerly Act 22) after fees, the investor donation, and yearly costs. Rates and source dates sit beside the result. No account needed.",
1027
1358
  "primaryAction": "Estimate your savings",
1028
1359
  "secondaryAction": "Choose your guide"
1029
1360
  },
1361
+ "headings": {
1362
+ "home-search-title": "Act 60 calculator: Puerto Rico tax savings after costs | act60.me",
1363
+ "tracker-preview-title": "See the day tracker before you sign in.",
1364
+ "how-to-read-title": "Choose the guide for your question.",
1365
+ "compare-title": "How act60.me compares",
1366
+ "benefits-title": "The business and investor benefits follow different rules.",
1367
+ "costs-title": "The estimate itemizes one-time and annual costs.",
1368
+ "requirements-title": "Plan the application, then the years after it.",
1369
+ "residence-title": "Three residence checks apply every year.",
1370
+ "steps-title": "Plan the work from filing through each later year.",
1371
+ "questions-title": "Common questions about the benefits and the move.",
1372
+ "sources-title": "Check the rules against the official sources.",
1373
+ "calculator-title": "Estimate your savings after costs",
1374
+ "home-presence-tax-home-or-closer-connection": "Presence, tax home, or closer connection",
1375
+ "home-export-services-business-treatment": "Export-services business treatment",
1376
+ "home-individual-investor-treatment": "Individual investor treatment",
1377
+ "home-applying-moving-and-daily-life": "Applying, moving, and daily life",
1378
+ "home-business-chapter-or-investor-chapter": "Business chapter or investor chapter",
1379
+ "home-grant-receipt-or-federal-residence": "Grant, receipt, or federal residence",
1380
+ "home-service-business-profit": "Service business profit",
1381
+ "home-investment-income-after-the-move": "Investment income after the move",
1382
+ "home-pass-one-day-count-option": "Pass one day-count option",
1383
+ "home-base-your-work-in-puerto-rico": "Base your work in Puerto Rico",
1384
+ "home-make-puerto-rico-the-center-of-your-life": "Make Puerto Rico the center of your life",
1385
+ "home-prepare-and-file-the-applications": "Prepare and file the applications",
1386
+ "home-build-a-real-puerto-rico-life": "Build a real Puerto Rico life",
1387
+ "home-complete-the-investor-home-commitment": "Complete the investor home commitment",
1388
+ "home-file-and-keep-proof-every-year": "File and keep proof every year",
1389
+ "pillar-calculator": "Calculator",
1390
+ "pillar-requirements": "Requirements",
1391
+ "pillar-days": "Day tracker",
1392
+ "social-image-title": "Act 60 calculator"
1393
+ },
1394
+ "channels": {
1395
+ "social": {
1396
+ "imageDescription": "Estimate Puerto Rico Act 60 savings after fees and yearly costs"
1397
+ }
1398
+ },
1030
1399
  "status": {
1031
1400
  "default": "proposed"
1032
1401
  },
@@ -1059,8 +1428,15 @@
1059
1428
  "hero": {
1060
1429
  "heading": "Give each app state you test its own URL.",
1061
1430
  "summary": "Repeatable states for browser agents: your real interface on fixture data, at a URL you can open, test, and share.",
1062
- "primaryAction": "Add Direct to a project",
1063
- "secondaryAction": "See a named state"
1431
+ "primaryAction": "install from npm",
1432
+ "secondaryAction": "read the source"
1433
+ },
1434
+ "headings": {
1435
+ "resources": "Direct resources",
1436
+ "install": "Install the Agent Skill",
1437
+ "states": "open any state by url",
1438
+ "readiness": "know when the app is ready",
1439
+ "features": "test your real feature code"
1064
1440
  },
1065
1441
  "status": {
1066
1442
  "default": "proposed"
@@ -1102,6 +1478,16 @@
1102
1478
  "primaryAction": "Run a check",
1103
1479
  "secondaryAction": "Verify a receipt"
1104
1480
  },
1481
+ "headings": {
1482
+ "how-title": "Anyone can check the score.",
1483
+ "issue-fresh-puzzles": "Issue fresh puzzles.",
1484
+ "connect-your-agent": "Connect your agent.",
1485
+ "score-each-answer": "Score each answer.",
1486
+ "keep-the-signed-result": "Keep the signed result.",
1487
+ "local-title": "Try a check on your machine.",
1488
+ "integrations-title": "Where to add a check.",
1489
+ "results-title": "Check the receipt yourself."
1490
+ },
1105
1491
  "status": {
1106
1492
  "default": "proposed"
1107
1493
  },
@@ -1144,6 +1530,17 @@
1144
1530
  "primaryAction": "Start your timeline",
1145
1531
  "secondaryAction": "See an example"
1146
1532
  },
1533
+ "headings": {
1534
+ "home-search-title": "Life timeline maker: chart your life in chapters | Lifecharts",
1535
+ "timeline-guide": "How a life timeline works",
1536
+ "home-two-ways-to-see-the-same-life": "Two ways to see the same life",
1537
+ "home-what-the-percentages-mean": "What the percentages mean",
1538
+ "home-add-a-longer-horizon": "Add a longer horizon",
1539
+ "home-save-share-and-embed": "Save, share, and embed",
1540
+ "timeline-places": "Send it to a friend or put it on your site",
1541
+ "timeline-agent": "Make it with your agent",
1542
+ "timeline-compare": "How Lifecharts compares"
1543
+ },
1147
1544
  "status": {
1148
1545
  "default": "proposed"
1149
1546
  },
@@ -1178,6 +1575,14 @@
1178
1575
  "primaryAction": "Read the latest",
1179
1576
  "secondaryAction": "Compare the cases"
1180
1577
  },
1578
+ "headings": {
1579
+ "how-the-work-gets-done": "How the work gets done",
1580
+ "compare-cases-scale-and-industries": "Compare cases, scale, and industries",
1581
+ "agent-scale": "Agent scale",
1582
+ "across-industries": "Across industries",
1583
+ "the-software-factory-field-guide": "The software factory field guide",
1584
+ "home-company-cases": "{count} company cases"
1585
+ },
1181
1586
  "status": {
1182
1587
  "default": "proposed"
1183
1588
  },
@@ -1205,6 +1610,11 @@
1205
1610
  "short": "Tests whether Alexander-inspired patterns help agents write better code",
1206
1611
  "meta": "Pattern Language sketches Alexander's Notes on the Synthesis of Form in ALGAL-form and tests whether those patterns help an agent produce better code.",
1207
1612
  "medium": "Pattern Language sketches Christopher Alexander's Notes on the Synthesis of Form as a runnable pattern language in ALGAL-form. It tests that question with executable artifacts; an advantage over ordinary prompting is not proven.",
1613
+ "hero": {
1614
+ "heading": "Alexander's notes, sketched as runnable ALGAL form.",
1615
+ "summary": "Pattern Language sketches Christopher Alexander's Notes on the Synthesis of Form as a runnable pattern language in ALGAL-form. It tests that question with executable artifacts; an advantage over ordinary prompting is not proven.",
1616
+ "primaryAction": "read the studies"
1617
+ },
1208
1618
  "status": {
1209
1619
  "default": "proposed"
1210
1620
  }
@@ -1232,6 +1642,31 @@
1232
1642
  "short": "Runs a check once, returns a short result, and keeps the full log",
1233
1643
  "meta": "System One Skills gives Devin, Claude Code, and Codex one skill that runs a noisy check once, returns a short result, and saves the full log locally.",
1234
1644
  "medium": "System One Skills gives Devin, Claude Code, and Codex one skill, system-one-verify, for long test and build logs. It runs the command once, returns a short result with the exit status, and saves the full log on your machine.",
1645
+ "hero": {
1646
+ "heading": "Give your agent shorter check results.",
1647
+ "summary": "System One Skills runs your noisy tests and builds once, returns a short result, and saves the full log. Install the system-one-verify skill for Codex, Claude Code, or Devin.",
1648
+ "primaryAction": "install the skill"
1649
+ },
1650
+ "headings": {
1651
+ "review-heading": "Add a second pass on code changes.",
1652
+ "verify-heading": "Check a completion message.",
1653
+ "workflows-heading": "Try decision workflows from source",
1654
+ "shipped-heading": "Keep noisy check output short",
1655
+ "use-it-for-a-status-decision": "Use it for a status decision.",
1656
+ "use-native-tools-for-diagnosis": "Use native tools for diagnosis.",
1657
+ "evidence-heading": "What has been measured.",
1658
+ "system-one-skills-research-candidates": "System One Skills research candidates",
1659
+ "catalog-heading": "Further compact-output research",
1660
+ "install-heading": "Install in your project.",
1661
+ "social-image-title": "Shorter test logs for your agent",
1662
+ "skills-first-check-heading": "Run your first check",
1663
+ "skills-further-reading-heading": "Further reading"
1664
+ },
1665
+ "channels": {
1666
+ "social": {
1667
+ "imageDescription": "No model or API key required."
1668
+ }
1669
+ },
1235
1670
  "status": {
1236
1671
  "default": "proposed"
1237
1672
  }
@@ -1259,12 +1694,69 @@
1259
1694
  "short": "Packages provider reads and plan checks as programs with no model calls",
1260
1695
  "meta": "GhostGet Skills packages GhostGet workflows as programs for Claude Code, Codex, and Devin, with no model calls and a receipt you can replay offline.",
1261
1696
  "medium": "GhostGet Skills packages common GhostGet workflows as programs for Claude Code, Codex, and Devin. They make no model calls, and every run leaves a receipt you can replay offline.",
1697
+ "hero": {
1698
+ "heading": "GhostGet workflows as programs you can replay.",
1699
+ "summary": "GhostGet Skills packages common GhostGet workflows as programs for Claude Code, Codex, and Devin. They make no model calls, and every run leaves a receipt you can replay offline.",
1700
+ "primaryAction": "install the skills"
1701
+ },
1262
1702
  "status": {
1263
1703
  "default": "proposed"
1264
1704
  }
1265
1705
  }
1266
1706
  }
1267
1707
  },
1708
+ "packs": [
1709
+ {
1710
+ "slug": "relationships",
1711
+ "title": "Relationships",
1712
+ "tone": "rose",
1713
+ "members": [
1714
+ "peopleblade",
1715
+ "message-like-me",
1716
+ "wrench",
1717
+ "soulscrape",
1718
+ "lifedaysleft"
1719
+ ]
1720
+ },
1721
+ {
1722
+ "slug": "knowledge",
1723
+ "title": "Knowledge",
1724
+ "tone": "indigo",
1725
+ "members": [
1726
+ "kb",
1727
+ "oh-computer",
1728
+ "sponge",
1729
+ "sloptrade",
1730
+ "roughday"
1731
+ ]
1732
+ },
1733
+ {
1734
+ "slug": "media",
1735
+ "title": "Media",
1736
+ "tone": "amber",
1737
+ "members": [
1738
+ "iconplace",
1739
+ "slopcamera",
1740
+ "soundfish"
1741
+ ]
1742
+ },
1743
+ {
1744
+ "slug": "token-maximalists",
1745
+ "title": "Tools for Token Maximalists",
1746
+ "tone": "emerald",
1747
+ "members": [
1748
+ "xcb",
1749
+ "algal",
1750
+ "gobstopper",
1751
+ "sys1",
1752
+ "aicharts",
1753
+ "direct",
1754
+ "clankdar",
1755
+ "valhalla",
1756
+ "swft"
1757
+ ]
1758
+ }
1759
+ ],
1268
1760
  "relations": [
1269
1761
  {
1270
1762
  "id": "runtime:lifedaysleft:slopcamera:uses",
@@ -1591,5 +2083,5 @@
1591
2083
  "detail": "The icon.place drawing lab runs each experiment as an ALGAL program in the browser and records the proposal, candidates, and selection as receipts it can replay; the live site does not use ALGAL yet."
1592
2084
  }
1593
2085
  ],
1594
- "digest": "sha256:d43bbc1113c077b872d2e11a4a70490cd537d5734951d0c3c4bd8e061ce583a9"
2086
+ "digest": "sha256:1af50f624f0d06ec13e1531564a8066795ae3fed732210b6f642179730100103"
1595
2087
  }