@pikku/skills 0.12.22 → 0.12.26

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 (106) hide show
  1. package/CHANGELOG.md +134 -0
  2. package/dist/skills.gen.js +1 -1
  3. package/package.json +1 -1
  4. package/skills/pikku-a11y/SKILL.md +59 -0
  5. package/skills/pikku-addon/SKILL.md +2 -2
  6. package/skills/pikku-agent/SKILL.md +67 -316
  7. package/skills/pikku-agent/references/agents.md +299 -0
  8. package/skills/{pikku-ai-vercel/SKILL.md → pikku-agent/references/runner-vercel.md} +2 -24
  9. package/skills/{pikku-ai-voice/SKILL.md → pikku-agent/references/voice.md} +1 -22
  10. package/skills/pikku-architect/SKILL.md +265 -0
  11. package/skills/pikku-auth/SKILL.md +89 -0
  12. package/skills/{pikku-better-auth/SKILL.md → pikku-auth/references/better-auth.md} +126 -34
  13. package/skills/{pikku-jose/SKILL.md → pikku-auth/references/jose.md} +1 -23
  14. package/skills/{pikku-machine-auth/SKILL.md → pikku-auth/references/machine-auth.md} +0 -23
  15. package/skills/pikku-auth/references/permissions.md +261 -0
  16. package/skills/{pikku-security/SKILL.md → pikku-auth/references/sessions.md} +0 -20
  17. package/skills/pikku-build/SKILL.md +88 -0
  18. package/skills/{pikku-build-app/SKILL.md → pikku-build/references/app.md} +76 -24
  19. package/skills/{pikku-feature/SKILL.md → pikku-build/references/feature.md} +1 -8
  20. package/skills/{pikku-build-app → pikku-build}/references/multi-app.md +56 -1
  21. package/skills/{pikku-build-platform/SKILL.md → pikku-build/references/platform.md} +22 -37
  22. package/skills/{pikku-template-clone/SKILL.md → pikku-build/references/post-clone.md} +0 -6
  23. package/skills/{pikku-build-quick/SKILL.md → pikku-build/references/quick.md} +4 -20
  24. package/skills/{pikku-build-app → pikku-build}/references/ship.md +9 -3
  25. package/skills/pikku-concepts/SKILL.md +72 -7
  26. package/skills/pikku-concepts/references/concept-mapping.md +8 -8
  27. package/skills/pikku-deploy/SKILL.md +158 -0
  28. package/skills/{pikku-deploy-azure/SKILL.md → pikku-deploy/references/azure.md} +18 -50
  29. package/skills/pikku-deploy/references/cloudflare.md +104 -0
  30. package/skills/pikku-deploy/references/express.md +92 -0
  31. package/skills/{pikku-deploy-fastify/SKILL.md → pikku-deploy/references/fastify.md} +8 -32
  32. package/skills/{pikku-deploy-lambda/SKILL.md → pikku-deploy/references/lambda.md} +6 -27
  33. package/skills/{pikku-deploy-nextjs/SKILL.md → pikku-deploy/references/nextjs.md} +9 -33
  34. package/skills/pikku-deploy/references/uws.md +72 -0
  35. package/skills/pikku-deploy/references/ws.md +75 -0
  36. package/skills/pikku-emails/SKILL.md +3 -2
  37. package/skills/pikku-fabric/SKILL.md +47 -20
  38. package/skills/{pikku-fabric-debug/SKILL.md → pikku-fabric/references/debugging.md} +0 -6
  39. package/skills/pikku-i18n/SKILL.md +62 -207
  40. package/skills/{pikku-paraglide/SKILL.md → pikku-i18n/references/enum-labels.md} +0 -6
  41. package/skills/pikku-i18n/references/messages.md +218 -0
  42. package/skills/{pikku-rtl/SKILL.md → pikku-i18n/references/rtl.md} +3 -9
  43. package/skills/pikku-knowledge/SKILL.md +15 -0
  44. package/skills/pikku-kysely/SKILL.md +13 -13
  45. package/skills/pikku-list-query/SKILL.md +163 -0
  46. package/skills/pikku-meta/SKILL.md +58 -130
  47. package/skills/{pikku-deps/SKILL.md → pikku-meta/references/audit.md} +1 -17
  48. package/skills/pikku-meta/references/meta.md +114 -0
  49. package/skills/{pikku-versioning/SKILL.md → pikku-meta/references/versioning.md} +0 -26
  50. package/skills/pikku-middleware/SKILL.md +5 -5
  51. package/skills/pikku-n8n-import/SKILL.md +0 -1
  52. package/skills/pikku-permissions/SKILL.md +75 -229
  53. package/skills/pikku-react/SKILL.md +50 -298
  54. package/skills/pikku-react/references/client.md +313 -0
  55. package/skills/{pikku-react-query/SKILL.md → pikku-react/references/react-query.md} +2 -22
  56. package/skills/{pikku-workflows-client/SKILL.md → pikku-react/references/workflows.md} +1 -22
  57. package/skills/pikku-realtime/SKILL.md +110 -251
  58. package/skills/pikku-scenario/SKILL.md +60 -45
  59. package/skills/pikku-scenario/references/persona-run.md +148 -0
  60. package/skills/pikku-seo/SKILL.md +133 -0
  61. package/skills/pikku-service-backends/SKILL.md +154 -0
  62. package/skills/pikku-service-backends/references/aws.md +106 -0
  63. package/skills/pikku-service-backends/references/backblaze.md +57 -0
  64. package/skills/pikku-service-backends/references/mongodb.md +90 -0
  65. package/skills/pikku-service-backends/references/redis.md +75 -0
  66. package/skills/pikku-service-backends/references/schema.md +63 -0
  67. package/skills/pikku-services/SKILL.md +68 -291
  68. package/skills/{pikku-audit/SKILL.md → pikku-services/references/audit.md} +0 -22
  69. package/skills/{pikku-config/SKILL.md → pikku-services/references/config.md} +1 -25
  70. package/skills/{pikku-pino/SKILL.md → pikku-services/references/pino.md} +0 -20
  71. package/skills/pikku-services/references/services.md +272 -0
  72. package/skills/pikku-software-archaeology/README.md +5 -1
  73. package/skills/pikku-software-archaeology/SKILL.md +16 -2
  74. package/skills/{pikku-product-second-opinion/example/sample-report.md → pikku-software-archaeology/example/second-opinion-sample-report.md} +1 -1
  75. package/skills/pikku-software-archaeology/references/blueprint.schema.json +1 -1
  76. package/skills/pikku-software-archaeology/references/pikku-mapping.md +3 -3
  77. package/skills/{pikku-product-second-opinion/SKILL.md → pikku-software-archaeology/references/second-opinion.md} +4 -9
  78. package/skills/pikku-webhook/SKILL.md +224 -0
  79. package/skills/pikku-wiring/SKILL.md +180 -0
  80. package/skills/{pikku-websocket/SKILL.md → pikku-wiring/references/channel.md} +2 -35
  81. package/skills/{pikku-cli/SKILL.md → pikku-wiring/references/cli.md} +1 -33
  82. package/skills/{pikku-gateway-slack/SKILL.md → pikku-wiring/references/gateway-slack.md} +0 -23
  83. package/skills/{pikku-http/SKILL.md → pikku-wiring/references/http.md} +3 -39
  84. package/skills/{pikku-mcp/SKILL.md → pikku-wiring/references/mcp.md} +0 -33
  85. package/skills/{pikku-queue/SKILL.md → pikku-wiring/references/queue.md} +1 -33
  86. package/skills/pikku-wiring/references/realtime.md +265 -0
  87. package/skills/{pikku-rpc/SKILL.md → pikku-wiring/references/rpc.md} +0 -32
  88. package/skills/{pikku-schedule/SKILL.md → pikku-wiring/references/scheduler.md} +1 -35
  89. package/skills/{pikku-trigger/SKILL.md → pikku-wiring/references/trigger.md} +0 -43
  90. package/skills/pikku-workflow/SKILL.md +39 -2
  91. package/skills/pikku-aws/SKILL.md +0 -161
  92. package/skills/pikku-backblaze/SKILL.md +0 -104
  93. package/skills/pikku-deploy-cloudflare/SKILL.md +0 -123
  94. package/skills/pikku-deploy-express/SKILL.md +0 -122
  95. package/skills/pikku-deploy-uws/SKILL.md +0 -144
  96. package/skills/pikku-mongodb/SKILL.md +0 -113
  97. package/skills/pikku-product-second-opinion/README.md +0 -43
  98. package/skills/pikku-redis/SKILL.md +0 -99
  99. package/skills/pikku-schema-ajv/SKILL.md +0 -83
  100. package/skills/pikku-schema-cfworker/SKILL.md +0 -82
  101. package/skills/pikku-ws/SKILL.md +0 -87
  102. /package/skills/{pikku-build-app → pikku-build}/references/theming.md +0 -0
  103. /package/skills/{pikku-product-second-opinion/references/report-template.md → pikku-software-archaeology/references/second-opinion-report-template.md} +0 -0
  104. /package/skills/{pikku-cli/references/complete-example.md → pikku-wiring/references/cli-complete-example.md} +0 -0
  105. /package/skills/{pikku-http → pikku-wiring}/references/http-options.md +0 -0
  106. /package/skills/{pikku-realtime/references/other-routes.md → pikku-wiring/references/realtime-other-routes.md} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,139 @@
1
1
  # @pikku/skills
2
2
 
3
+ ## 0.12.26
4
+
5
+ ### Patch Changes
6
+
7
+ - 206dc04: pikku-auth's Better Auth reference gains two-factor, security hardening and post-signup hooks
8
+ - 206dc04: pikku-react's client reference now says what `transformDate: true` costs you: a fully-zoned ISO instant arrives as a `Date` while a bare or zoneless date stays a string, so one field's runtime type follows the value — a string method on a revived one throws, and a raw one in JSX crashes the route.
9
+ - 206dc04: Add `pikku-a11y`, `pikku-seo`, `pikku-permissions`, `pikku-list-query` and
10
+ `pikku-realtime`, which lived in Fabric's sandbox image and are not about Fabric.
11
+
12
+ None of them needs a sandbox, a console or the `fabric` CLI, so a local project
13
+ gets the same guidance the hosted build agent has been getting. `pikku-realtime`
14
+ carries the SSE and channel patterns inline rather than pointing at a scaffold
15
+ command that only exists inside Fabric.
16
+
17
+ - 206dc04: pikku-build's multi-app reference now says how to decide it is two apps, not just how to clone one
18
+ - 206dc04: The corpus now fails on a bare `fabric` command, which the OSS reader has no binary for
19
+ - 206dc04: Three review fixes across the wiring skills: pikku-list-query now caps `limit` and reads `filter` as the recursive AND/OR tree it is (a `'status' in filter` check silently returns unfiltered rows for a group or an operator leaf); pikku-realtime warns that `/events/:topic` is unauthenticated so a topic must carry a projection rather than `returningAll()`, and invalidates the `[name, input]` query key instead of hand-patching a `ListOutput`; pikku-workflow replaces "each step is its own transaction" — pikku opens none — with where atomicity actually comes from, plus provider idempotency keys for retried external side effects.
20
+ - 206dc04: Give `pikku-architect`, `pikku-build`, `pikku-knowledge` and
21
+ `pikku-software-archaeology` an `installGroups`. A skill with none is skipped
22
+ whenever any group is requested, so `pikku skills install --core` never
23
+ installed these four — including the archaeology skill other tooling documents
24
+ as installed by that command.
25
+
26
+ Also qualify pikku-i18n's "do not wrap `m`" rule: wrapping the namespace is a
27
+ real tradeoff (it forgoes per-message tree-shaking) rather than a mistake, and
28
+ is worth it when it buys something the gate cannot, such as debug masking.
29
+
30
+ - 206dc04: Give `pikku-workflow` the "should this even BE a workflow?" section: the
31
+ external-boundary test, the checkout-with/without-payment split, "one durable
32
+ step is a queue worker, not a workflow", and "atomicity is a TRANSACTION, not a
33
+ workflow". It answers the question that comes before choosing a factory, and it
34
+ was only written down in Fabric's copy of the skill.
35
+
36
+ ## 0.12.25
37
+
38
+ ### Patch Changes
39
+
40
+ - 498662a: Measure a finished milestone against its plan, with `pikku knowledge plan progress`.
41
+
42
+ The reconciliation itself already existed — `planShortfall` reads pikku's generated meta under `.pikku/` and answers "was this planned function written, this route wired, this `pikkuScenario` exported" by set membership. Nothing in the CLI could run it, so the only thing closing a milestone was the build agent's own account of what it had done.
43
+
44
+ `pikku knowledge plan progress <milestone>` prints what the milestone still owes, separating what BLOCKS (the first pass) from what a later pass picks up, and exits non-zero while anything blocks. Its problems include the two checks no meta covers: a browser scenario that opens a page and asserts it is still on it, and an `on delete cascade` the plan promised that no migration declares.
45
+
46
+ Two skills follow it. The new `pikku-architect` writes the plan against the milestone note through `pikku knowledge plan set`, as a seat separate from the build — a builder who writes its own plan can build a fraction, plan only that fraction, and certify itself complete. `pikku-build` now plans each milestone before building it (§5a) and closes it on `plan progress` rather than on memory (§6a), with `pikku knowledge plan defer` as the only way an unbuilt item leaves the first pass.
47
+
48
+ Two things `plan set` needed before an architect could actually satisfy it: it now refuses a `covers` entry naming a note that does not exist, or carrying a hash that is not that note's current one — and names the correct hash, which is also the only way to obtain one. Unchecked, a placeholder hash was accepted and the note it claimed read as edited-since from the moment the milestone shipped, dropping silently back into a backlog nobody had planned. The plan's build rendering no longer names a runtime-specific command for creating a frontend, since two builds read it and each creates one a different way.
49
+
50
+ - e0bf0ce: Add a `pikku-webhook` skill covering the outgoing webhook primitive — `WebhookService` / `QueueWebhookService`, the `pikku-outgoing-webhooks` queue worker, `scaffold.webhook`, `config.webhook` (signing secret, header, retries, SSRF allowlist), receiver-side verification, and `KyselyWebhookService`'s delivery/attempt history. The corpus previously mentioned it in one table row, so agents hand-rolled `fetch` + HMAC instead of using it.
51
+
52
+ ## 0.12.24
53
+
54
+ ### Patch Changes
55
+
56
+ - 202cb72: Refuse a scenario step whose prose opens with its own actor (PKU681). The
57
+ reporter already renders the actor as the sentence's subject, so a step
58
+ authored as `'sam' creates the client` and run as `{ actor: actors.sam }`
59
+ reads "Given sam 'sam' creates the client" — and the hardcoded name desyncs
60
+ the moment the call site changes actor. Only the subject position is refused:
61
+ naming someone else mid-sentence, or an actor keyed after a role noun used as
62
+ a noun ("creates the admin client"), is left alone.
63
+
64
+ ## 0.12.23
65
+
66
+ ### Patch Changes
67
+
68
+ - f4e2e89: Add file attachments to `EmailService`.
69
+
70
+ `BaseSendEmailInput` gains an optional `attachments: EmailAttachment[]`, so it is
71
+ available on all three input variants — text, HTML and template. The new
72
+ `EmailAttachment` type is exported from `@pikku/core/services` alongside the
73
+ input types, and is shaped so that mapping it onto Resend, SendGrid, Nodemailer
74
+ or SES v2 is a straight field rename rather than a translation.
75
+
76
+ `content` is `Uint8Array | string`, where a string is always read as base64.
77
+ Both forms are accepted because both are what callers already hold: bytes come
78
+ out of a fetch or a file read, and base64 comes out of a database column or a
79
+ provider API. `Buffer` is deliberately absent from the type — it is a subclass
80
+ of `Uint8Array`, so Node callers can still pass one, while the type stays usable
81
+ in Cloudflare Workers, where `Buffer` does not exist.
82
+
83
+ `LocalEmailService` now logs attachment metadata — filename, content type,
84
+ content id, disposition and content length — instead of dropping the field
85
+ silently. The content itself is deliberately not logged.
86
+
87
+ The template-rendering wrapper documented in the emails skill rebuilt its
88
+ delegate payload field by field and therefore dropped `attachments`; it now
89
+ forwards them.
90
+
91
+ - 9022169: Cover `pikku persona run`, and give the corpus a CLI command inventory.
92
+
93
+ `pikku doc` computes the `#pikku/*` API surface and lists no CLI commands, so
94
+ for anything invoked as `pikku <cmd>` the skills corpus is the only place it
95
+ exists. Two things were missing from it.
96
+
97
+ `pikku-scenario` covered declaring personas but not running one. Its new
98
+ `references/persona-run.md` covers the virtual-user run: the seven dispositions
99
+ and what each one is for, the three credentials and which wins, the budget and
100
+ `--seed` replay, why production takes only `accountable` and why that rule is
101
+ checked at build time and again at sign-in, the role check that happens before
102
+ the first step, and `sync` / `list` / `secret`.
103
+
104
+ `pikku-concepts` gains a one-line-per-command inventory of the CLI, grouped by
105
+ what you are doing and pointing at the skill that teaches each one. A dash means
106
+ no skill covers it beyond that line, which is a reason to read `--help` rather
107
+ than assume the command does what its name suggests.
108
+
109
+ - acca415: Consolidate the skills corpus from 63 skills to 21.
110
+
111
+ The corpus had grown one skill per package and one per transport, so an agent's
112
+ first decision was a routing problem — which of ten wiring skills, which of five
113
+ auth skills — before it could reach anything that helped. Most of what those
114
+ skills carried was signatures and option keys, which `pikku doc` computes from
115
+ the compiler and cannot go stale.
116
+
117
+ Each family collapses to one chooser skill plus per-topic `references/*.md`. The
118
+ chooser answers the question the compiler cannot: which thing to pick, what
119
+ differs between the options, and what goes wrong silently. The families:
120
+
121
+ - `pikku-deploy` — eight runtime skills
122
+ - `pikku-service-backends` — six adapter skills, organised by the core interface
123
+ they implement rather than by vendor
124
+ - `pikku-wiring` — ten transport skills
125
+ - `pikku-auth` — five skills that all answered "who is this and may they",
126
+ fronted by the authentication-versus-authorization distinction
127
+ - `pikku-services` — services, config, audit and logging
128
+ - `pikku-agent` — the agent, its runner and the voice middlewares
129
+ - `pikku-react` and `pikku-i18n` — the client and localisation families
130
+ - `pikku-meta` — project metadata, contract versioning and the dependency audit
131
+ - `pikku-build` — the three build modes, feature work and post-clone cleanup
132
+ - `pikku-software-archaeology` and `pikku-fabric` — each gains its second phase
133
+
134
+ The doc-surface routing table (`LEAF_EDITORIAL`) points at the merged skills, and
135
+ the fabric install group is back to what it names: skills about Fabric.
136
+
3
137
  ## 0.12.22
4
138
 
5
139
  ### Patch Changes