@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.
- package/CHANGELOG.md +134 -0
- package/dist/skills.gen.js +1 -1
- package/package.json +1 -1
- package/skills/pikku-a11y/SKILL.md +59 -0
- package/skills/pikku-addon/SKILL.md +2 -2
- package/skills/pikku-agent/SKILL.md +67 -316
- package/skills/pikku-agent/references/agents.md +299 -0
- package/skills/{pikku-ai-vercel/SKILL.md → pikku-agent/references/runner-vercel.md} +2 -24
- package/skills/{pikku-ai-voice/SKILL.md → pikku-agent/references/voice.md} +1 -22
- package/skills/pikku-architect/SKILL.md +265 -0
- package/skills/pikku-auth/SKILL.md +89 -0
- package/skills/{pikku-better-auth/SKILL.md → pikku-auth/references/better-auth.md} +126 -34
- package/skills/{pikku-jose/SKILL.md → pikku-auth/references/jose.md} +1 -23
- package/skills/{pikku-machine-auth/SKILL.md → pikku-auth/references/machine-auth.md} +0 -23
- package/skills/pikku-auth/references/permissions.md +261 -0
- package/skills/{pikku-security/SKILL.md → pikku-auth/references/sessions.md} +0 -20
- package/skills/pikku-build/SKILL.md +88 -0
- package/skills/{pikku-build-app/SKILL.md → pikku-build/references/app.md} +76 -24
- package/skills/{pikku-feature/SKILL.md → pikku-build/references/feature.md} +1 -8
- package/skills/{pikku-build-app → pikku-build}/references/multi-app.md +56 -1
- package/skills/{pikku-build-platform/SKILL.md → pikku-build/references/platform.md} +22 -37
- package/skills/{pikku-template-clone/SKILL.md → pikku-build/references/post-clone.md} +0 -6
- package/skills/{pikku-build-quick/SKILL.md → pikku-build/references/quick.md} +4 -20
- package/skills/{pikku-build-app → pikku-build}/references/ship.md +9 -3
- package/skills/pikku-concepts/SKILL.md +72 -7
- package/skills/pikku-concepts/references/concept-mapping.md +8 -8
- package/skills/pikku-deploy/SKILL.md +158 -0
- package/skills/{pikku-deploy-azure/SKILL.md → pikku-deploy/references/azure.md} +18 -50
- package/skills/pikku-deploy/references/cloudflare.md +104 -0
- package/skills/pikku-deploy/references/express.md +92 -0
- package/skills/{pikku-deploy-fastify/SKILL.md → pikku-deploy/references/fastify.md} +8 -32
- package/skills/{pikku-deploy-lambda/SKILL.md → pikku-deploy/references/lambda.md} +6 -27
- package/skills/{pikku-deploy-nextjs/SKILL.md → pikku-deploy/references/nextjs.md} +9 -33
- package/skills/pikku-deploy/references/uws.md +72 -0
- package/skills/pikku-deploy/references/ws.md +75 -0
- package/skills/pikku-emails/SKILL.md +3 -2
- package/skills/pikku-fabric/SKILL.md +47 -20
- package/skills/{pikku-fabric-debug/SKILL.md → pikku-fabric/references/debugging.md} +0 -6
- package/skills/pikku-i18n/SKILL.md +62 -207
- package/skills/{pikku-paraglide/SKILL.md → pikku-i18n/references/enum-labels.md} +0 -6
- package/skills/pikku-i18n/references/messages.md +218 -0
- package/skills/{pikku-rtl/SKILL.md → pikku-i18n/references/rtl.md} +3 -9
- package/skills/pikku-knowledge/SKILL.md +15 -0
- package/skills/pikku-kysely/SKILL.md +13 -13
- package/skills/pikku-list-query/SKILL.md +163 -0
- package/skills/pikku-meta/SKILL.md +58 -130
- package/skills/{pikku-deps/SKILL.md → pikku-meta/references/audit.md} +1 -17
- package/skills/pikku-meta/references/meta.md +114 -0
- package/skills/{pikku-versioning/SKILL.md → pikku-meta/references/versioning.md} +0 -26
- package/skills/pikku-middleware/SKILL.md +5 -5
- package/skills/pikku-n8n-import/SKILL.md +0 -1
- package/skills/pikku-permissions/SKILL.md +75 -229
- package/skills/pikku-react/SKILL.md +50 -298
- package/skills/pikku-react/references/client.md +313 -0
- package/skills/{pikku-react-query/SKILL.md → pikku-react/references/react-query.md} +2 -22
- package/skills/{pikku-workflows-client/SKILL.md → pikku-react/references/workflows.md} +1 -22
- package/skills/pikku-realtime/SKILL.md +110 -251
- package/skills/pikku-scenario/SKILL.md +60 -45
- package/skills/pikku-scenario/references/persona-run.md +148 -0
- package/skills/pikku-seo/SKILL.md +133 -0
- package/skills/pikku-service-backends/SKILL.md +154 -0
- package/skills/pikku-service-backends/references/aws.md +106 -0
- package/skills/pikku-service-backends/references/backblaze.md +57 -0
- package/skills/pikku-service-backends/references/mongodb.md +90 -0
- package/skills/pikku-service-backends/references/redis.md +75 -0
- package/skills/pikku-service-backends/references/schema.md +63 -0
- package/skills/pikku-services/SKILL.md +68 -291
- package/skills/{pikku-audit/SKILL.md → pikku-services/references/audit.md} +0 -22
- package/skills/{pikku-config/SKILL.md → pikku-services/references/config.md} +1 -25
- package/skills/{pikku-pino/SKILL.md → pikku-services/references/pino.md} +0 -20
- package/skills/pikku-services/references/services.md +272 -0
- package/skills/pikku-software-archaeology/README.md +5 -1
- package/skills/pikku-software-archaeology/SKILL.md +16 -2
- package/skills/{pikku-product-second-opinion/example/sample-report.md → pikku-software-archaeology/example/second-opinion-sample-report.md} +1 -1
- package/skills/pikku-software-archaeology/references/blueprint.schema.json +1 -1
- package/skills/pikku-software-archaeology/references/pikku-mapping.md +3 -3
- package/skills/{pikku-product-second-opinion/SKILL.md → pikku-software-archaeology/references/second-opinion.md} +4 -9
- package/skills/pikku-webhook/SKILL.md +224 -0
- package/skills/pikku-wiring/SKILL.md +180 -0
- package/skills/{pikku-websocket/SKILL.md → pikku-wiring/references/channel.md} +2 -35
- package/skills/{pikku-cli/SKILL.md → pikku-wiring/references/cli.md} +1 -33
- package/skills/{pikku-gateway-slack/SKILL.md → pikku-wiring/references/gateway-slack.md} +0 -23
- package/skills/{pikku-http/SKILL.md → pikku-wiring/references/http.md} +3 -39
- package/skills/{pikku-mcp/SKILL.md → pikku-wiring/references/mcp.md} +0 -33
- package/skills/{pikku-queue/SKILL.md → pikku-wiring/references/queue.md} +1 -33
- package/skills/pikku-wiring/references/realtime.md +265 -0
- package/skills/{pikku-rpc/SKILL.md → pikku-wiring/references/rpc.md} +0 -32
- package/skills/{pikku-schedule/SKILL.md → pikku-wiring/references/scheduler.md} +1 -35
- package/skills/{pikku-trigger/SKILL.md → pikku-wiring/references/trigger.md} +0 -43
- package/skills/pikku-workflow/SKILL.md +39 -2
- package/skills/pikku-aws/SKILL.md +0 -161
- package/skills/pikku-backblaze/SKILL.md +0 -104
- package/skills/pikku-deploy-cloudflare/SKILL.md +0 -123
- package/skills/pikku-deploy-express/SKILL.md +0 -122
- package/skills/pikku-deploy-uws/SKILL.md +0 -144
- package/skills/pikku-mongodb/SKILL.md +0 -113
- package/skills/pikku-product-second-opinion/README.md +0 -43
- package/skills/pikku-redis/SKILL.md +0 -99
- package/skills/pikku-schema-ajv/SKILL.md +0 -83
- package/skills/pikku-schema-cfworker/SKILL.md +0 -82
- package/skills/pikku-ws/SKILL.md +0 -87
- /package/skills/{pikku-build-app → pikku-build}/references/theming.md +0 -0
- /package/skills/{pikku-product-second-opinion/references/report-template.md → pikku-software-archaeology/references/second-opinion-report-template.md} +0 -0
- /package/skills/{pikku-cli/references/complete-example.md → pikku-wiring/references/cli-complete-example.md} +0 -0
- /package/skills/{pikku-http → pikku-wiring}/references/http-options.md +0 -0
- /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
|