@pikku/skills 0.12.17 → 0.12.19

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/skills",
3
- "version": "0.12.17",
3
+ "version": "0.12.19",
4
4
  "description": "The Pikku agent skills — the instruction set coding agents read to build, wire and deploy Pikku projects",
5
5
  "author": "yasser.fadl@gmail.com",
6
6
  "license": "MIT",
@@ -322,7 +322,12 @@ Why it parked is the whole story, and it is `statusReason`, not `status`:
322
322
  accepts them for that deploy.
323
323
  - `needs_config` — a declared secret or variable has no value covering the
324
324
  stage. The CLI names them. `--auto-approve` will **not** force this through;
325
- set the values (`pikku fabric secrets set <name>`) and re-attach.
325
+ set the values and re-attach — `pikku fabric secrets set <name>` for a
326
+ declared secret, `pikku fabric variables set <name> --value <v>` for a declared
327
+ variable. They are separate stores: a secret is sealed to the stage and cannot
328
+ be read back, a variable is stored plainly and can (`variables get`). `set`
329
+ reads the value as JSON when it parses, so `--value true` is the boolean on a
330
+ stage exactly as it is from `.env`, and `--value '"true"'` is the string.
326
331
  - `needs_attention` — the plan is red. Nothing to approve.
327
332
 
328
333
  `--sync` defaults to a 900s ceiling; `--timeout <seconds>` moves it. On timeout
@@ -213,14 +213,14 @@ The **feature is the run unit**: `--flows` on a scenario whose every feature ent
213
213
 
214
214
  A scenario records what someone was **trying to do**, never the keystrokes they used to do it. This is the one decision that determines whether a suite survives its first redesign, and it applies to every step name you write.
215
215
 
216
- | Action ladder — wrong | Intent ladder — right |
217
- | ----------------------------------- | --------------------------------------------------- |
218
- | `Given opens /shop` | `Given the shopper is browsing the shop` |
219
- | `When clicks the category filter` | `When the shopper buys the £5 strawberry milkshake` |
220
- | `And clicks "Drinks"` | `Then it is in their basket` |
221
- | `And clicks the first product card` | |
222
- | `And clicks Add to basket` | |
223
- | `Then sees "1 item"` | |
216
+ | Action ladder — wrong | Intent ladder — right |
217
+ | ----------------------------------- | ----------------------------------------------- |
218
+ | `Given opens /shop` | `Given shopper is browsing the shop` |
219
+ | `When clicks the category filter` | `When shopper buys the £5 strawberry milkshake` |
220
+ | `And clicks "Drinks"` | `Then it is in their basket` |
221
+ | `And clicks the first product card` | |
222
+ | `And clicks Add to basket` | |
223
+ | `Then sees "1 item"` | |
224
224
 
225
225
  Three things go wrong with the left-hand column, and all three are expensive:
226
226
 
@@ -313,7 +313,7 @@ await scenario.when(
313
313
  { name: '£5 strawberry milkshake' },
314
314
  { actor: actors.shopper }
315
315
  )
316
- // reporter renders: When the shopper buys the £5 strawberry milkshake ✓ 1.2s
316
+ // reporter renders: When shopper buys the £5 strawberry milkshake ✓ 1.2s
317
317
  ```
318
318
 
319
319
  **Every intent step begins by arriving.** `ensureOnShop` is not defensive noise — it is what lets a scenario start at any step, run alone, and be reordered without touching it. It checks first and navigates only if needed, so a scenario already on the shop pays nothing. This is about the _browser's_ starting position, not the database: there is still no state reset (see above), and you still scope what you create.
@@ -489,7 +489,7 @@ await scenario.given(
489
489
  { qty: 1 },
490
490
  { actor: actors.shopper }
491
491
  )
492
- // reporter renders: Given the shopper buys 1 apples ✓ 412ms
492
+ // reporter renders: Given shopper buys 1 apples ✓ 412ms
493
493
  ```
494
494
 
495
495
  Rules that bite: