@pikku/skills 0.12.21 → 0.12.25
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 +125 -0
- package/dist/skills.gen.js +1 -1
- package/package.json +1 -1
- package/skills/pikku-addon/SKILL.md +10 -9
- 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 +264 -0
- package/skills/pikku-auth/SKILL.md +89 -0
- package/skills/{pikku-better-auth/SKILL.md → pikku-auth/references/better-auth.md} +42 -47
- 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-permissions/SKILL.md → pikku-auth/references/permissions.md} +5 -24
- package/skills/{pikku-security/SKILL.md → pikku-auth/references/sessions.md} +3 -23
- package/skills/pikku-build/SKILL.md +87 -0
- package/skills/{pikku-build-app/SKILL.md → pikku-build/references/app.md} +77 -25
- package/skills/{pikku-feature/SKILL.md → pikku-build/references/feature.md} +1 -8
- package/skills/{pikku-build-app → pikku-build}/references/multi-app.md +1 -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} +6 -22
- package/skills/{pikku-build-app → pikku-build}/references/ship.md +7 -1
- package/skills/pikku-concepts/SKILL.md +75 -8
- 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 +20 -10
- package/skills/{pikku-fabric-debug/SKILL.md → pikku-fabric/references/debugging.md} +0 -6
- package/skills/pikku-i18n/SKILL.md +60 -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 +14 -0
- package/skills/pikku-kysely/SKILL.md +13 -13
- 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 +8 -8
- package/skills/pikku-n8n-import/SKILL.md +0 -1
- package/skills/pikku-react/SKILL.md +50 -298
- package/skills/pikku-react/references/client.md +293 -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-scenario/SKILL.md +64 -49
- package/skills/pikku-scenario/references/persona-run.md +148 -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 +15 -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 +199 -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} +4 -40
- 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-realtime/SKILL.md → pikku-wiring/references/realtime.md} +2 -25
- 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 +3 -3
- 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,130 @@
|
|
|
1
1
|
# @pikku/skills
|
|
2
2
|
|
|
3
|
+
## 0.12.25
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 498662a: Measure a finished milestone against its plan, with `pikku knowledge plan progress`.
|
|
8
|
+
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
`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.
|
|
12
|
+
|
|
13
|
+
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.
|
|
14
|
+
|
|
15
|
+
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.
|
|
16
|
+
|
|
17
|
+
- 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.
|
|
18
|
+
|
|
19
|
+
## 0.12.24
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 202cb72: Refuse a scenario step whose prose opens with its own actor (PKU681). The
|
|
24
|
+
reporter already renders the actor as the sentence's subject, so a step
|
|
25
|
+
authored as `'sam' creates the client` and run as `{ actor: actors.sam }`
|
|
26
|
+
reads "Given sam 'sam' creates the client" — and the hardcoded name desyncs
|
|
27
|
+
the moment the call site changes actor. Only the subject position is refused:
|
|
28
|
+
naming someone else mid-sentence, or an actor keyed after a role noun used as
|
|
29
|
+
a noun ("creates the admin client"), is left alone.
|
|
30
|
+
|
|
31
|
+
## 0.12.23
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- f4e2e89: Add file attachments to `EmailService`.
|
|
36
|
+
|
|
37
|
+
`BaseSendEmailInput` gains an optional `attachments: EmailAttachment[]`, so it is
|
|
38
|
+
available on all three input variants — text, HTML and template. The new
|
|
39
|
+
`EmailAttachment` type is exported from `@pikku/core/services` alongside the
|
|
40
|
+
input types, and is shaped so that mapping it onto Resend, SendGrid, Nodemailer
|
|
41
|
+
or SES v2 is a straight field rename rather than a translation.
|
|
42
|
+
|
|
43
|
+
`content` is `Uint8Array | string`, where a string is always read as base64.
|
|
44
|
+
Both forms are accepted because both are what callers already hold: bytes come
|
|
45
|
+
out of a fetch or a file read, and base64 comes out of a database column or a
|
|
46
|
+
provider API. `Buffer` is deliberately absent from the type — it is a subclass
|
|
47
|
+
of `Uint8Array`, so Node callers can still pass one, while the type stays usable
|
|
48
|
+
in Cloudflare Workers, where `Buffer` does not exist.
|
|
49
|
+
|
|
50
|
+
`LocalEmailService` now logs attachment metadata — filename, content type,
|
|
51
|
+
content id, disposition and content length — instead of dropping the field
|
|
52
|
+
silently. The content itself is deliberately not logged.
|
|
53
|
+
|
|
54
|
+
The template-rendering wrapper documented in the emails skill rebuilt its
|
|
55
|
+
delegate payload field by field and therefore dropped `attachments`; it now
|
|
56
|
+
forwards them.
|
|
57
|
+
|
|
58
|
+
- 9022169: Cover `pikku persona run`, and give the corpus a CLI command inventory.
|
|
59
|
+
|
|
60
|
+
`pikku doc` computes the `#pikku/*` API surface and lists no CLI commands, so
|
|
61
|
+
for anything invoked as `pikku <cmd>` the skills corpus is the only place it
|
|
62
|
+
exists. Two things were missing from it.
|
|
63
|
+
|
|
64
|
+
`pikku-scenario` covered declaring personas but not running one. Its new
|
|
65
|
+
`references/persona-run.md` covers the virtual-user run: the seven dispositions
|
|
66
|
+
and what each one is for, the three credentials and which wins, the budget and
|
|
67
|
+
`--seed` replay, why production takes only `accountable` and why that rule is
|
|
68
|
+
checked at build time and again at sign-in, the role check that happens before
|
|
69
|
+
the first step, and `sync` / `list` / `secret`.
|
|
70
|
+
|
|
71
|
+
`pikku-concepts` gains a one-line-per-command inventory of the CLI, grouped by
|
|
72
|
+
what you are doing and pointing at the skill that teaches each one. A dash means
|
|
73
|
+
no skill covers it beyond that line, which is a reason to read `--help` rather
|
|
74
|
+
than assume the command does what its name suggests.
|
|
75
|
+
|
|
76
|
+
- acca415: Consolidate the skills corpus from 63 skills to 21.
|
|
77
|
+
|
|
78
|
+
The corpus had grown one skill per package and one per transport, so an agent's
|
|
79
|
+
first decision was a routing problem — which of ten wiring skills, which of five
|
|
80
|
+
auth skills — before it could reach anything that helped. Most of what those
|
|
81
|
+
skills carried was signatures and option keys, which `pikku doc` computes from
|
|
82
|
+
the compiler and cannot go stale.
|
|
83
|
+
|
|
84
|
+
Each family collapses to one chooser skill plus per-topic `references/*.md`. The
|
|
85
|
+
chooser answers the question the compiler cannot: which thing to pick, what
|
|
86
|
+
differs between the options, and what goes wrong silently. The families:
|
|
87
|
+
|
|
88
|
+
- `pikku-deploy` — eight runtime skills
|
|
89
|
+
- `pikku-service-backends` — six adapter skills, organised by the core interface
|
|
90
|
+
they implement rather than by vendor
|
|
91
|
+
- `pikku-wiring` — ten transport skills
|
|
92
|
+
- `pikku-auth` — five skills that all answered "who is this and may they",
|
|
93
|
+
fronted by the authentication-versus-authorization distinction
|
|
94
|
+
- `pikku-services` — services, config, audit and logging
|
|
95
|
+
- `pikku-agent` — the agent, its runner and the voice middlewares
|
|
96
|
+
- `pikku-react` and `pikku-i18n` — the client and localisation families
|
|
97
|
+
- `pikku-meta` — project metadata, contract versioning and the dependency audit
|
|
98
|
+
- `pikku-build` — the three build modes, feature work and post-clone cleanup
|
|
99
|
+
- `pikku-software-archaeology` and `pikku-fabric` — each gains its second phase
|
|
100
|
+
|
|
101
|
+
The doc-surface routing table (`LEAF_EDITORIAL`) points at the merged skills, and
|
|
102
|
+
the fabric install group is back to what it names: skills about Fabric.
|
|
103
|
+
|
|
104
|
+
## 0.12.22
|
|
105
|
+
|
|
106
|
+
### Patch Changes
|
|
107
|
+
|
|
108
|
+
- 5ace170: Fix the `#pikku` import specifiers the skills teach.
|
|
109
|
+
|
|
110
|
+
Twenty-five examples across ten skills named a leaf that does not export the
|
|
111
|
+
symbol — `pikkuAuth`/`pikkuPermission`/`addGlobalPermission` from `#pikku/function`
|
|
112
|
+
(they are in `#pikku/auth`), `addHTTPMiddleware` from `#pikku/http` (`#pikku/middleware`),
|
|
113
|
+
`pikkuServices`/`pikkuWireServices` from `#pikku/function` (`#pikku/setup`),
|
|
114
|
+
`pikkuWorkflowFunc` from `#pikku/function` (`#pikku/workflow`), `pikkuScenario` and
|
|
115
|
+
friends from `#pikku/scenario` and from `#pikku/workflow/pikku-workflow-types.gen.js`
|
|
116
|
+
(`#pikku/scenarios`), and `defineSystemRole` from a bare `#pikku` (`#pikku/scopes`).
|
|
117
|
+
|
|
118
|
+
`pikku-addon` also claimed an addon authors against `#pikku/addon/function` and
|
|
119
|
+
`#pikku/addon/setup`. It does not: `pikku new addon` writes an `imports` map that
|
|
120
|
+
points `#pikku/*` at the addon's own `.pikku/addon/` tree, so an addon uses the
|
|
121
|
+
same subpaths an application does. The `addon` segment is the package's business,
|
|
122
|
+
never part of a specifier.
|
|
123
|
+
|
|
124
|
+
An agent following these wrote a file that took schema generation red —
|
|
125
|
+
`Package import specifier "#pikku" is not defined in package .../packages/functions/package.json`
|
|
126
|
+
— which is a failure the example, not the agent, was responsible for.
|
|
127
|
+
|
|
3
128
|
## 0.12.21
|
|
4
129
|
|
|
5
130
|
### Patch Changes
|