@1aboveio/skills 1.0.16 → 1.0.17

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 (82) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/.codex-plugin/resources.json +143 -143
  3. package/package.json +4 -4
  4. package/skills/app-dev/airflow/SKILL.md +1 -1
  5. package/skills/app-dev/android-development/SKILL.md +9 -7
  6. package/skills/app-dev/android-development/references/feature-work.md +3 -2
  7. package/skills/app-dev/android-development/references/gotchas.md +13 -0
  8. package/skills/app-dev/android-development/references/setup.md +8 -5
  9. package/skills/app-dev/android-development/references/ui-journeys.md +83 -11
  10. package/skills/app-dev/app-debug/SKILL.md +1 -1
  11. package/skills/app-dev/better-auth/SKILL.md +1 -1
  12. package/skills/app-dev/data-catalog/SKILL.md +1 -1
  13. package/skills/app-dev/data-quality/SKILL.md +1 -1
  14. package/skills/app-dev/ios-foundation/SKILL.md +1 -1
  15. package/skills/app-dev/monorepo/SKILL.md +1 -1
  16. package/skills/app-dev/nextjs-fullstack/SKILL.md +1 -1
  17. package/skills/app-dev/prisma-setup/SKILL.md +1 -1
  18. package/skills/app-dev/pyspark/SKILL.md +1 -1
  19. package/skills/app-dev/python-backend/SKILL.md +1 -1
  20. package/skills/app-dev/shadcn/SKILL.md +1 -1
  21. package/skills/app-dev/zod-v4/SKILL.md +1 -1
  22. package/skills/cicd/cloud-build/SKILL.md +1 -1
  23. package/skills/cicd/cloud-debug/SKILL.md +1 -1
  24. package/skills/cicd/cloud-deploy/SKILL.md +1 -1
  25. package/skills/cicd/docker/SKILL.md +1 -1
  26. package/skills/cicd/github-actions/SKILL.md +1 -1
  27. package/skills/cicd/github-flow/SKILL.md +1 -1
  28. package/skills/cicd/google-cloud/SKILL.md +1 -1
  29. package/skills/cicd/mergify/SKILL.md +1 -1
  30. package/skills/cicd/podman/SKILL.md +1 -1
  31. package/skills/content/article-review/SKILL.md +1 -1
  32. package/skills/content/article-to-image/SKILL.md +1 -1
  33. package/skills/content/flowchart-svg/SKILL.md +1 -1
  34. package/skills/content/image-gen/SKILL.md +1 -1
  35. package/skills/content/mermaid/SKILL.md +1 -1
  36. package/skills/content/wechat-article-writer/SKILL.md +1 -1
  37. package/skills/content/wechat-publisher/SKILL.md +1 -1
  38. package/skills/content/wechat-search/SKILL.md +1 -1
  39. package/skills/content/xai-search/SKILL.md +1 -1
  40. package/skills/core/distill-writing/SKILL.md +1 -1
  41. package/skills/core/doc-to-md/SKILL.md +1 -1
  42. package/skills/core/editorial-review/SKILL.md +1 -1
  43. package/skills/core/house-style/SKILL.md +1 -1
  44. package/skills/core/plain-language/SKILL.md +1 -1
  45. package/skills/core/polish-cn/SKILL.md +1 -1
  46. package/skills/core/reg-parser/SKILL.md +1 -1
  47. package/skills/core/terminology/SKILL.md +1 -1
  48. package/skills/core/write-doc/SKILL.md +1 -1
  49. package/skills/core/write-report/SKILL.md +1 -1
  50. package/skills/engineering/better-review/SKILL.md +1 -1
  51. package/skills/engineering/e2e-test/SKILL.md +1 -1
  52. package/skills/engineering/engineering/SKILL.md +1 -1
  53. package/skills/engineering/engineering-runtime/SKILL.md +1 -1
  54. package/skills/engineering/engineering-runtime/coherence/workflow.json +13 -13
  55. package/skills/engineering/ensure-coverage/SKILL.md +1 -1
  56. package/skills/engineering/golden-path/SKILL.md +1 -1
  57. package/skills/engineering/harness-runtime/SKILL.md +1 -1
  58. package/skills/engineering/harness-runtime/agent-catalog.mjs +2 -1
  59. package/skills/engineering/resolve-issues/SKILL.md +11 -9
  60. package/skills/engineering/resolve-issues/references/exploration.md +60 -18
  61. package/skills/engineering/resolve-issues/references/implementation.md +1 -1
  62. package/skills/engineering/resolve-issues/references/preflight.md +47 -22
  63. package/skills/engineering/resolve-issues/references/review.md +2 -1
  64. package/skills/engineering/resolve-issues/references/shared-modules.md +58 -4
  65. package/skills/engineering/resolve-issues/references/task-plan.md +30 -10
  66. package/skills/engineering/resolve-issues/scripts/findings-reuse.mjs +1 -1
  67. package/skills/engineering/resolve-issues/scripts/next-actions.mjs +7 -7
  68. package/skills/engineering/resolve-issues/scripts/plan-sync.mjs +1 -1
  69. package/skills/engineering/resolve-issues/scripts/size-check.mjs +6 -5
  70. package/skills/engineering/resolve-release/SKILL.md +1 -1
  71. package/skills/engineering/rush-issues/SKILL.md +1 -1
  72. package/skills/engineering/rush-release/SKILL.md +1 -1
  73. package/skills/engineering/test-quality/SKILL.md +1 -1
  74. package/skills/risk-compliance/compliance-audit/SKILL.md +1 -1
  75. package/skills/risk-compliance/contract-compare/SKILL.md +1 -1
  76. package/skills/risk-compliance/contract-review/SKILL.md +1 -1
  77. package/skills/risk-compliance/doc-authenticity/SKILL.md +1 -1
  78. package/skills/risk-compliance/fraud-detection/SKILL.md +1 -1
  79. package/skills/risk-compliance/payment-analysis/SKILL.md +1 -1
  80. package/skills/risk-compliance/portfolio-payment-analysis/SKILL.md +1 -1
  81. package/skills/risk-compliance/similar-domain/SKILL.md +1 -1
  82. package/skills/risk-compliance/tld-detection/SKILL.md +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1aboveio/skills",
3
- "version": "1.0.16",
3
+ "version": "1.0.17",
4
4
  "description": "Every 1aboveio skill package in one: install once, then choose which packages Pi loads with npx @1aboveio/skills select.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,8 +28,8 @@
28
28
  "nativeCodex": {
29
29
  "schemaVersion": 1,
30
30
  "metadataPath": ".codex-plugin/resources.json",
31
- "metadataDigest": "efea727f2b53be74c1dad921e4d976e9a4bf22054a5461217bea9a5983de48cc",
32
- "releaseIdentity": "357a73a8819a5c43f9e6d935ece7e5efc38519d0b83e0984798677c4cb9dfc0d"
31
+ "metadataDigest": "4ae04aa79316f8a7cc9df45582d19e332321316012dac6843be1eb21d2b1a385",
32
+ "releaseIdentity": "d4a51368dcc414b3136d3b6f51a6aeeeea77429a101eb65f36f7878e00032494"
33
33
  },
34
34
  "pi": {
35
35
  "skills": [
@@ -260,7 +260,7 @@
260
260
  ]
261
261
  }
262
262
  ],
263
- "digest": "26eb35331224e4dd2e0e8ef13bafd6383af21ae416bcf9e5acc28e68c6b45221"
263
+ "digest": "ae9b2ca5b33484b68e892b41976bcc054562385ef7dc7db94bf86ab42e369d0d"
264
264
  },
265
265
  "publishConfig": {
266
266
  "registry": "https://registry.npmjs.org/",
@@ -2,7 +2,7 @@
2
2
  name: airflow
3
3
  description: Airflow DAG architecture and conventions. Use when designing, writing, reviewing, testing, or debugging Airflow DAGs and tasks, including TaskGroups, data intervals, timezone-aware date parameters, CLI validation, environment-based scheduling, and pytest integrity tests.
4
4
  user-invocable: true
5
- release-version: 0.48.0
5
+ release-version: 0.48.1
6
6
  ---
7
7
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
8
  # Airflow DAG Development Patterns
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: android-development
3
3
  description: "Prove and debug Expo / React Native apps on an owned Android emulator. Use for Android startup/rendering failures, Metro or ADB problems, UiAutomator/harness failures, APK builds, SDK/NDK/JDK workspace setup, native journey validation, and choosing Kotlin/Compose versus React Native for Android flows. Reproduce failed Android CI checkpoints off CI before fixing and redispatching. Standalone invocation offers Project or Session; init persists repo conventions. NOT for workflow YAML, CI speed or runners (github-actions), browser tests (e2e-test), iOS (ios-foundation), plain Jest tests, or signing/store release."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Android development
@@ -60,13 +60,15 @@ The contract, other languages and the Maestro/Detox mapping are in
60
60
 
61
61
  ## UI journey tool
62
62
 
63
- The skill references Maestro; it does not bundle or install it. A repo with no journey tool
64
- is offered Maestro for new single-device journeys; a repo with a working harness keeps it
65
- and adds Maestro flows alongside. Run it on the session's own emulator
66
- (`maestro --device <serial>`) and convert its output with
63
+ The skill references Maestro; it does not bundle or install it. Offer Maestro for new
64
+ single-device journeys when the repo has no journey tool. Keep an existing sufficient
65
+ harness; adding Maestro needs a concrete benefit and repo authorization, not just an
66
+ installed CLI. Maestro uses the same work loop and validation ladder. Run it on the
67
+ session's own emulator (`maestro --device <serial>`) and convert its output with
67
68
  [maestro_failure.py](scripts/maestro_failure.py), which writes the record above. Read
68
- [UI journeys](references/ui-journeys.md) for the device-ownership cost, evidence layout, MCP
69
- use and the cases that stay custom.
69
+ [UI journeys](references/ui-journeys.md) before selecting or running Maestro flows, for
70
+ starting state, permissions, device ownership, execution evidence and the cases that
71
+ stay custom.
70
72
 
71
73
  ## Validation ladder
72
74
 
@@ -173,8 +173,9 @@ at L2. Required CI and L3 obligations remain assigned, not silently waived or ma
173
173
  rule for unreproduced or intermittent failures; report uncertainty until evidence
174
174
  supports the cause.
175
175
  - Report source SHA, commands, results and remaining gaps at review handoff. For device
176
- checks, include the selected scenarios, `PASS` markers and cleanup exit. For a failure,
177
- name the earliest failing checkpoint and link retained evidence; preserve failed attempts.
176
+ checks, include the selected scenarios, per-scenario results (`PASS` markers or the
177
+ journey tool's report) and cleanup exit. For a failure, name the earliest failing
178
+ checkpoint and link retained evidence; preserve failed attempts.
178
179
  Separate build duration, device-check duration and total worker time when discussing cost.
179
180
  Reuse existing logs to distinguish cold/warm builds, build count, ABI, test packaging,
180
181
  runtime startup and edit-to-feedback time. Do not infer a task's cost from total job time,
@@ -20,8 +20,10 @@ the product.
20
20
  | Backend tool, CI only | a Backend-backed step gets a 5xx in CI only; the log names a missing program (`Browser was not found at the configured executablePath`) |
21
21
  | adb transport, mid-journey | `connection terminated: read failed` in the adb trace after boot, then lost `adb reverse`: usually guest RAM |
22
22
  | UiAutomator server | `RemoteDisconnected` while the adb transport stays up: the on-device server was relaunched |
23
+ | Maestro driver | driver readiness fails while a setup uiautomator2 process is still alive: see [device ownership](ui-journeys.md#device-ownership) |
23
24
  | Journey harness | a wait right after a navigation times out while the destination is on screen |
24
25
  | Journey harness, short screen | a wait for a label times out only on a short or landscape screen, which shows the content above it |
26
+ | Journey adapter | an offscreen target stays hidden while scrolls move away from it |
25
27
  | Product assertion | a screen or state mismatch with a screenshot |
26
28
 
27
29
  Then match the signal against [gotchas.md](gotchas.md). If nothing
@@ -143,6 +145,17 @@ matches, [confirm the suspected cause](#confirm-a-suspected-cause) before changi
143
145
 
144
146
  ## Journey harness
145
147
 
148
+ ### A scroll adapter moves away from the target
149
+
150
+ - **Signal:** a custom comparison adapter times out on an offscreen target even though it
151
+ sends scroll gestures; a fake UI that exposes all targets can still pass.
152
+ - **Cause:** Maestro's requested scroll direction describes the content to reach, not the
153
+ finger movement. Mapping `DOWN` to a downward finger swipe reverses the intended scroll.
154
+ - **Fix:** for `DOWN` toward later content, swipe the finger up; for `UP` toward earlier
155
+ content, swipe the finger down. In the adapter test, keep the target offscreen until the
156
+ correct gesture moves it into view. Wrong-direction gestures must not reveal it merely
157
+ because a gesture count was reached. Check both directions where the adapter supports them.
158
+
146
159
  ### A navigation check passes on the previous screen
147
160
 
148
161
  - **Signal:** intermittently, a wait right after the next tap times out even though the
@@ -228,9 +228,11 @@ does not stop that server: use a verified private endpoint on a shared host and
228
228
  through the caller's owner. Capture the command's exit status, the final summary line and,
229
229
  when the journey failed, the `NATIVE_FAILURE` line and its `failure.json`.
230
230
 
231
- Expect every selected scenario's `PASS` marker, screenshots, and backend and Metro logs
232
- when the selected variant uses those services. Preserve the failed checkpoint's evidence
233
- before cleanup. A release build with embedded assets does not require Metro by default.
231
+ Expect every selected scenario's result (`PASS` marker or the journey tool's report),
232
+ required screenshots, and backend and Metro logs when the selected variant uses those
233
+ services. For Maestro's result and screenshot rules, read [UI journeys](ui-journeys.md#evidence).
234
+ Preserve the failed checkpoint's evidence before cleanup. A release build with embedded
235
+ assets does not require Metro by default.
234
236
 
235
237
  ## Owned development session
236
238
 
@@ -385,8 +387,9 @@ For setup proof only. Record:
385
387
  - Each stage's exit status and duration.
386
388
  - The APK's SHA-256 (`shasum -a 256` or `sha256sum`) and its per-ABI `lib/` entries
387
389
  (`unzip -l`), checked on the APK itself rather than inferred from Gradle flags.
388
- - The journey's `PASS` markers and the cleanup results: database dropped, emulator exited,
389
- container removed, no listeners left on the backend or Metro ports.
390
+ - The journey's per-scenario results (`PASS` markers or the journey tool's report) and
391
+ cleanup results: database dropped, emulator exited, container removed, no listeners
392
+ left on the backend or Metro ports.
390
393
  - Earlier failed or incomplete attempts. A later pass does not erase them.
391
394
 
392
395
  State what the run does not prove: tablet, accessibility (TalkBack), physical devices,
@@ -8,47 +8,113 @@ skill references it; it does not bundle or install it, and adding it is the repo
8
8
  | Situation | Recommendation |
9
9
  | --- | --- |
10
10
  | Repo has no UI journey tool | Offer Maestro for new single-device journeys. It replaces hand-written adb/UiAutomator launch, poll, capture and assertion code. |
11
- | Repo has a working harness | Keep the harness. Add Maestro flows for new journeys alongside it; do not migrate existing cases. |
11
+ | Repo has a working harness | Reuse it when sufficient. Add Maestro only for a concrete benefit with repo authorization; an installed CLI alone is not a reason to add or migrate journeys. |
12
12
  | Coordinated multi-device case | Keep the custom harness. Maestro sharding runs independent flows, and a shard cannot depend on another. |
13
13
 
14
- ## Device ownership
14
+ Maestro changes the UI journey driver, not the [work loop or validation ladder](../SKILL.md#work-loop).
15
+ Use focused flows at the applicable L0/L1 check, candidate-APK journeys at L2, and assigned
16
+ acceptance journeys at L3. Source tests and required backend/native checks keep their roles.
15
17
 
16
- Run against the emulator the session owns and name it, so Maestro never starts or picks its
17
- own device:
18
+ ## Starting state and permissions
18
19
 
19
- ```bash
20
- maestro --device "$ANDROID_SERIAL" test --test-output-dir "$LOG_DIR" ./maestro-flows
21
- ```
20
+ Declare each flow's intended starting app state and permissions in its YAML or owned
21
+ fixture setup, and check included subflows and hooks for resets:
22
+
23
+ - For a warm-runtime check, keep the running app or use `launchApp: {stopApp: false}`
24
+ to foreground it. Plain `launchApp` stops and relaunches the app by default, so it
25
+ cannot preserve the process whose state the check needs.
26
+ - For restart, upgrade or fresh-install checks, use the checkpoint's required setup.
27
+ `clearState: true` and `clearState` clear Android app data; they do not install the
28
+ candidate APK or prove a fresh installation or upgrade. Clear only authorized disposable
29
+ state. If a reset removes debug endpoint preferences, restore them through the existing
30
+ owner and verify the app's actual code source before continuing.
31
+ - Set permissions for permission-sensitive journeys. `launchApp` allows all permissions
32
+ by default; use the required denied or unset state to exercise denial or prompts.
33
+ An auto-granted run does not prove the permission-request journey.
34
+
35
+ ## Device ownership
36
+
37
+ Run against the emulator the session owns and name it with `maestro --device <serial>`.
38
+ Use the status handling under [Evidence](#evidence) inside the existing journey owner.
22
39
 
23
40
  Each session installs and starts Maestro's driver packages (`dev.mobile.maestro`,
24
41
  `dev.mobile.maestro.test`) through `am instrument`. That cost lands on the session's first
25
42
  flow, not on every step, so run every flow of the case in one session instead of one session
26
43
  per flow.
27
44
 
45
+ Keep mutating checks exclusive on that device, including existing harness and Maestro
46
+ runs. Reuse the existing runtime owner; Maestro is not a second emulator, backend or
47
+ cleanup owner.
48
+
49
+ If setup started a `setupUiAutomator` uiautomator2 process, have its owner verify ownership,
50
+ stop it and wait for it to exit before starting Maestro; a live setup driver can block
51
+ Maestro driver readiness. Restart that setup driver only after Maestro has fully exited,
52
+ if it is still needed. Never stop a peer's process; coordinate with its owner instead.
53
+
54
+ When comparing a custom journey adapter with Maestro, check scroll direction and prove
55
+ offscreen targets with the [scroll-direction gotcha](gotchas.md#a-scroll-adapter-moves-away-from-the-target).
56
+
28
57
  ## Evidence
29
58
 
59
+ Record the selected flows, executed assertions, run exit status, app/source identity and
60
+ cleanup outcome. Accept the harness's `PASS` markers or Maestro's per-flow results/JUnit
61
+ report as scenario results; a zero exit with no selected flows is not a pass. For JUnit,
62
+ use `--format junit --output <owned-report-path>`; the report is separate from
63
+ `--test-output-dir`. Capture successful checkpoints with `takeScreenshot` when the
64
+ assignment requires visual evidence; normal passing flows have no automatic screenshots.
65
+
30
66
  `--test-output-dir` receives one session folder holding one self-contained folder per flow:
31
67
  `manifest.json`, `commands.json` (one entry per executed step), the failing step's
32
68
  `screenshots/` image and `screen-hierarchy/` JSON, and `logs/device-logcat.txt`. Convert that
33
69
  into the [device failure record](diagnosis.md#record-the-failed-device-case) instead of
34
70
  adding the journey helper:
35
71
 
72
+ Give each case/attempt a new owned `LOG_DIR`, shared with its existing launcher so its
73
+ partial-record fallback looks in the same directory. Retain earlier attempts separately;
74
+ reusing a runtime does not mean reusing a failure-record destination. Confirm the pinned
75
+ Maestro supports these flags and output layout before using the example.
76
+
77
+ Run this body as the existing owner's journey command. Guard both commands so `set -e`
78
+ cannot skip conversion or cleanup after a failure. The owner retains its bounded cleanup
79
+ after the journey exits; this is not a new launcher or an acceptance checker.
80
+
36
81
  ```bash
37
- python3 <skill-base-dir>/scripts/maestro_failure.py --maestro-dir "$LOG_DIR/2026-07-31_173617" \
38
- --evidence-dir "$LOG_DIR" --case "$DEVICE_CASE"
82
+ maestro_status=0
83
+ maestro --device "$ANDROID_SERIAL" test --test-output-dir "$LOG_DIR/maestro" \
84
+ --format junit --output "$LOG_DIR/report.xml" ./maestro-flows || maestro_status=$?
85
+ conversion_status=0
86
+ python3 <skill-base-dir>/scripts/maestro_failure.py --maestro-dir "$LOG_DIR/maestro" \
87
+ --evidence-dir "$LOG_DIR" --case "$DEVICE_CASE" || conversion_status=$?
88
+ printf 'maestro_exit=%s conversion_exit=%s\n' "$maestro_status" "$conversion_status"
89
+ if [ "$maestro_status" -ne 0 ]; then
90
+ exit "$maestro_status"
91
+ fi
92
+ exit "$conversion_status"
39
93
  ```
40
94
 
95
+ Convert this invocation's finalized output before teardown. If startup or driver failure
96
+ left no usable failed-step output, retain raw CLI logs and the original status and use
97
+ the existing owner's partial-record fallback before cleanup. Conversion errors are
98
+ evidence-processing failures, not replacements for the original test failure.
99
+
41
100
  It takes the session folder or one flow folder, writes `failure.json` into `--evidence-dir`
42
101
  (the flow folder by default) and prints the one `NATIVE_FAILURE` line for the first failed
43
102
  step. A passing flow writes nothing, and an existing record is never replaced. The artifact
44
103
  fields name the Maestro files (`screenshots/…`, `screen-hierarchy/…`, `logs/…`) rather than
45
104
  copying them into the adb names, so the failing frame and its hierarchy stay paired.
46
105
 
106
+ Converter exit zero means processing completed, not that tests passed: a recorded failure
107
+ also returns zero, and empty or incomplete step output may produce no record. Establish
108
+ success from the executed assertions and per-flow results above, never from the converter
109
+ or absence of `NATIVE_FAILURE`.
110
+
47
111
  ## Agents
48
112
 
49
113
  `maestro mcp` gives an agent `list_devices`, `inspect_screen`, `take_screenshot` and `run`.
50
- Explore the screen and draft a flow with it; the committed YAML flow is the proof, not the
51
- MCP session that found the selectors.
114
+ Explore the screen and draft a repeatable YAML flow with it. Proof comes from executing
115
+ the flow against the identified candidate with assertions that establish the claimed
116
+ behavior and retained results. Committing YAML or finding selectors in MCP does not prove
117
+ the journey passed.
52
118
 
53
119
  ## Limits
54
120
 
@@ -56,3 +122,9 @@ MCP session that found the selectors.
56
122
  on custom harness code.
57
123
  - Authentication codes still come from the harness's disposable database, passed into a flow
58
124
  with `maestro test -e` or resolved by its `runScript`; do not add a second fixture path.
125
+
126
+ ## Sources
127
+
128
+ - [Launch state and permissions](https://docs.maestro.dev/reference/commands-available/launchapp)
129
+ - [Android state clearing](https://docs.maestro.dev/reference/commands-available/clearstate)
130
+ - [Reports and artifacts](https://docs.maestro.dev/maestro-flows/workspace-management/test-reports-and-artifacts)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: app-debug
3
3
  description: "Diagnose runtime failures in deployed Cloud Run services — 5xx/422 errors, tracebacks, Next.js SSR/hydration or Server Action failures, DB/Secret Manager connection errors, cold-start timeouts, container OOM. NOT for build or deploy failures (cloud-debug)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # App Debug
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: better-auth
3
3
  description: "Add or debug Better Auth for Next.js App Router: login, sessions, protected routes, middleware, OAuth (including Feishu/Lark), cookies, Prisma, and Auth.js migration."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Better Auth for Next.js
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: data-catalog
3
3
  description: "Column definitions for warehouse tables, written inside the Spark/PySpark or SQL script that builds each table (CATALOG_TABLE / CATALOG_FIELDS, or a `-- @field` comment block), with a generated markdown catalog in docs/catalog/ and a CI check that fails a PR whose catalog is stale. Use when writing or changing a table script that adds, renames, removes, or changes the meaning of an output column or feature; when asked what a warehouse column or feature means; to set a repo up ('init the data catalog', 'generate the data dictionary', '字段字典', 'add catalog CI'); or to audit existing SQL or Spark scripts for undocumented columns. NOT for implementing or tuning the Spark job itself (pyspark), DAG wiring (airflow), or general workflow YAML (github-actions)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Data catalog
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: data-quality
3
3
  description: "Check a published warehouse table's data against its data-catalog definitions with read-only SELECTs: columns never filled or stuck at one value, counts below zero, ratios outside 0–1, declared values that never appear and undeclared values that do. Then classify each finding as a wrong definition, wrong code, or wrong data. Use when asked whether a table's data is right, to profile or sanity-check a dwd/ads table, to find dead or constant columns, to check a column's values against its documented list, after a pipeline change ships, or when a data-catalog definition and the data might disagree. NOT for validating a Spark change before it ships (pyspark canary and reconciliation), writing definitions (data-catalog), or monitoring dashboards."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Data quality
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ios-foundation
3
3
  description: "Set up and prove an Expo / React Native native iOS workspace from an assigned or fresh isolated workspace to a manual Login smoke on an owned iOS Simulator: isolated workspace and private caches, Xcode/runtime/CocoaPods preflight, frozen install with `pod install --deployment`, platform-scoped prebuild, an ad-hoc-signed Debug simulator build, a private simulator by exact UDID, Metro on a free port, a disposable PostgreSQL backend with owned cleanup, and the evidence record (setup proof only; feature work reports the smoke result). Use for 'set up iOS', 'build the iOS app', 'run the app on the iOS simulator', 'add iOS to the React Native app', 'prove the iOS build', or when a pod install, xcodebuild, simulator boot, Metro connection or Keychain session fails. NOT for Android (android-development), signing, TestFlight or App Store release, or general workflow YAML (github-actions)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # iOS foundation
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: monorepo
3
3
  description: Turborepo architecture for shared packages, pnpm workspaces, DAL boundaries, and pipelines.
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Turborepo Monorepo Architecture
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: nextjs-fullstack
3
3
  description: "Build or debug Next.js App Router features with React 19 — pages/layouts/route handlers, Server/Client Components, Server Actions, forms, middleware, DAL, strict TypeScript, Zod — plus our conventions: nuqs URL state, SWR cache, Skeleton/Progress + Sonner feedback, drag-and-drop upload, the portal app shell, list pages as filter/sort/paginate tables. shadcn component mechanics: see the shadcn skill."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Next.js 16 Fullstack Development
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: prisma-setup
3
3
  description: Use when adding or debugging Prisma with PostgreSQL, Next.js, or Turborepo, including schema.prisma, prisma.config.ts, client generation, migrations, seeds, relations, adapters, and DAL/database-layer setup. Triggers on phrases like "Prisma schema", "prisma migrate", "schema.prisma", "seed the database", "PrismaClient error", "relation issue", or "database layer".
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Prisma v7 Setup Guide
@@ -12,7 +12,7 @@ description: >
12
12
  Connect, spark-submit, Hudi commits, backfills, validate-only canaries,
13
13
  cluster reconciliation, or Spark event-log profiling — including warehouse
14
14
  job timeouts, empty Hudi writes, or EMR/Dataproc performance regressions.
15
- release-version: 0.48.0
15
+ release-version: 0.48.1
16
16
  ---
17
17
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
18
18
  # PySpark
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: python-backend
3
3
  description: "Python backend architecture for FastAPI, Tortoise ORM, Pydantic Settings, loguru, and uv. Also: uv.lock installs in CI/Docker via a proxy or mirror (`uv sync --frozen` bypasses it), slow uv installs on runners, relocking."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Python Backend Conventions
@@ -2,7 +2,7 @@
2
2
  name: shadcn
3
3
  description: "Add or debug shadcn/ui in a React/Next.js project: components.json, shadcn init/add, presets, registries, Tailwind styling, base/radix/aria composition, component fixes, and list-index pages — where the default is the DiceUI data table with filter/sort/pagination in the URL via nuqs, not a bare shadcn Table."
4
4
  allowed-tools: Bash(npx shadcn@latest *), Bash(pnpm dlx shadcn@latest *), Bash(bunx --bun shadcn@latest *)
5
- release-version: 0.48.0
5
+ release-version: 0.48.1
6
6
  ---
7
7
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
8
  # shadcn/ui
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: zod-v4
3
3
  description: Zod v4 schema conventions and v3 migration for errors, validators, objects, enums, records, and async parsing.
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Zod v3 to v4 Migration
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: cloud-build
3
3
  description: "Build or debug Cloud Build pipelines for Cloud Run: cloudbuild.yaml, triggers, Artifact Registry, builds, migrations, deploys, secrets, VPC, notifications. Use cloud-deploy for staged promotion. NOT for GitHub Actions PR checks (github-actions)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Cloud Build Direct Deploy to Cloud Run
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: cloud-debug
3
3
  description: "Debug Cloud Build or Deploy failures: builds, deployments, health checks, and pipeline errors. Inputs: service, build ID, region. NOT for GitHub Actions runs (github-actions) or runtime errors in a running service (app-debug)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Cloud Build & Cloud Deploy Debug Skill
@@ -5,7 +5,7 @@ description: >
5
5
  CI/CD pipelines with staged promotion, verification gates, or GitFlow branching.
6
6
  Also use when debugging Cloud Deploy pipeline failures. NOT for simple single-container
7
7
  deploys — use cloud-build instead.
8
- release-version: 0.48.0
8
+ release-version: 0.48.1
9
9
  ---
10
10
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
11
11
  # Cloud Deploy + Skaffold + Kustomize for Cloud Run
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: docker
3
3
  description: Docker/Podman container architecture and build patterns. Read when designing or reviewing containerization, Dockerfile structure, multi-stage builds, PyPI mirror support, or docker-compose setup for Python/uv projects, and when a Dockerfile's dependency install misses the layer cache on every build (build args such as a commit SHA or version declared too early) or an image build is slow in CI.
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Docker Build Patterns
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: github-actions
3
3
  description: "Author, review, audit, profile, optimize, or debug GitHub Actions workflows (.github/workflows/*.yml): run-history audits, job and step timing, resource bottlenecks, before/after comparisons, conditional CI by changed path, the one required gate check, PR and merge-queue lanes, sharding, workers, caching, self-hosted runners, timeouts, concurrency, permissions and action pinning, post-deploy verification, npm publishing. Use for 'set up CI', 'CI is slow', 'profile CI', 'optimize our pipeline', 'audit CI for redundant or wasted jobs', 'why is this check stuck expected or never started', 'harden this workflow', or 'browser not found on the runner'. NOT for pushing, opening, or merging a PR, or writing CI conventions into CONTRIBUTING.md (github-flow), queue rules or a check unmet inside Mergify (mergify), Playwright config and specs (e2e-test), cloudbuild.yaml or Cloud Run deploys (cloud-build), or which gates a repo must prove (ensure-coverage)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # GitHub Actions
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: github-flow
3
3
  description: "Deliver a change after the commit: push, open a PR, wait for checks, and merge to main through the repo's flow (direct push, pull request, or merge queue). Use whenever you commit or finish a change, when CONTRIBUTING.md has a Delivery section, and for asks like 'commit this', 'push it', 'open a PR', 'ship it', 'land it', 'get it merged'. Also: declare a repo's delivery flow, or write the CI conventions and Delivery section into CONTRIBUTING.md on request. NOT for writing workflow YAML (github-actions), Mergify config or a stuck queued PR (mergify), cutting a release (resolve-release), or PRs that resolve-issues or rush-issues deliver."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # GitHub Flow
@@ -5,7 +5,7 @@ description: >
5
5
  project management. Use when configuring GCP resources, managing service
6
6
  accounts, setting up IAP access, configuring VPC networks, managing secrets,
7
7
  or debugging cloud infrastructure.
8
- release-version: 0.48.0
8
+ release-version: 0.48.1
9
9
  ---
10
10
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
11
11
  # Google Cloud Platform (GCP) Skill
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mergify
3
3
  description: "Mergify merge queue and stacked PRs (`mergify stack`): config, rules, queue status, delivery. Use whenever a merge queue or stack is involved, including plain asks ('watch #123 till it merges', 'where is #412 in the queue', 'push this stack'): `gh pr view`/`gh pr checks` cannot see a dequeue; use `mergify queue show` and the bundled watcher. Also: a hook saying 'use mergify stack push', a missing Change-Id; authoring or debugging `.mergify.yml`, queue rules, merge protections, batch size, the ruleset making merges queue-only; enqueue policy (`@mergifyio queue` vs `auto_merge_conditions`); a push dequeuing a queued PR; bypass actors; freezing a branch. Failures: a PR stuck, queued but never merging, or merged unqueued; CI green on GitHub but unmet in Mergify; a batch going red or bisecting; a queue check missing rather than failing. Outranks the vendor mergify-* skills. NOT for pushing a PR in a repo without stack hooks (github-flow), workflow YAML (github-actions), or GCP deploy pipelines (cloud-deploy)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Mergify Merge Queue
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: podman
3
3
  description: "Debug, design, or fix Podman: rootless/rootful containers, pods, podman-compose, the socket and systemd services, Docker-compatible API (DOCKER_HOST/CONTAINER_HOST), networking, volumes, SELinux labels, Docker migration, and CI/SSH provisioning of rootless sockets (user lingering, XDG_RUNTIME_DIR). Covers FailedToOpenSocket and systemctl --user DBUS/XDG errors."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Podman Operations
@@ -6,7 +6,7 @@ description: >
6
6
  Use when a user shares an article, pastes article text, sends a URL, or asks to
7
7
  review, rate, critique, evaluate, 评价, 点评, 分析, or 看看 any article, post, or 文章.
8
8
  Default template is 公众号-支付行业.
9
- release-version: 0.48.0
9
+ release-version: 0.48.1
10
10
  ---
11
11
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
12
12
  # 文章评审引擎
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: article-to-image
3
3
  description: "Generate article cover images: WeChat banner/square (公众号封面), Xiaohongshu (小红书封面), LinkedIn banner, general wide. Brainstorms 4 visual directions from the article, then renders each format with correct aspect ratios and title-safe zones. Use when given an article and asked for covers, banners, or 出图."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Article-to-Image
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: flowchart-svg
3
3
  description: Create polished flowcharts directly as SVG and export PNG copies. Use when asked to draw, design, render, or deliver process diagrams, architecture diagrams, consulting workflows, decision flows, swimlanes, or other flowcharts as image files, especially when final outputs must include .svg and .png versions.
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Flowchart SVG
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: image-gen
3
3
  description: Generate an image from a text prompt with OpenAI gpt-image-2 or Google Nano Banana (Gemini), saved to an image file. Use whenever the user asks to generate, create, make, draw, paint, render, or design an image, picture, illustration, photo, artwork, logo, icon, avatar, banner, hero image, thumbnail, poster, wallpaper, sticker, or concept art — including phrasings like "an image of X", "a picture of X", "show me what X would look like", or a request for a visual for a slide, blog post, README, or social post. Also triggers on Chinese phrasings such as 生成图片, 画一张图, 做一张海报, 设计一个 logo. NOT for charts or data visualizations (dataviz), flowcharts or architecture diagrams (flowchart-svg), or editing an existing image file.
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Image Generation
@@ -2,7 +2,7 @@
2
2
  name: mermaid
3
3
  description: Create and edit Mermaid diagrams for architecture, API flows, database schemas, workflows, and data models.
4
4
  user-invocable: true
5
- release-version: 0.48.0
5
+ release-version: 0.48.1
6
6
  ---
7
7
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
8
  # Mermaid Diagram Creation
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: wechat-article-writer
3
3
  description: "Write WeChat 公众号 articles in Chinese content styles — 踩坑型 (pitfall-story), 实操型 (how-to), 对比型 (comparison), 观察型 (industry insight) — in the account's house style from the nearest WRITING.md. Use for drafting from scratch, rewriting a draft, adapting source material into a publishable article, or picking the right style. NOT for business or technical documents (write-doc)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # WeChat Article Writer (公众号写作)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: wechat-publisher
3
3
  description: "Publish articles to a WeChat Official Account (公众号) via API: push Markdown to the draft box (or auto-publish with --publish), convert Markdown to WeChat HTML, upload images to the media library. Requires AppID + AppSecret + whitelisted server IP on a 认证订阅号/服务号. Consumes wechat-article-writer's Markdown."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # WeChat Publisher (公众号发布)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: wechat-search
3
3
  description: "Search WeChat 公众号 articles via Sogou Weixin, or read/summarize an article from a mp.weixin.qq.com URL (读/分析/总结) — suggest proactively when such a URL appears. Use for Chinese WeChat content, industry reports, competitor or trending topics. Requires Chrome Browser Relay. NOT general web search (web_search)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # WeChat Article Search & Reader (搜狗微信搜索)
@@ -9,7 +9,7 @@ metadata:
9
9
  type: secret
10
10
  required: true
11
11
  description: API key for direct xAI or the explicitly configured Responses gateway
12
- release-version: 0.48.0
12
+ release-version: 0.48.1
13
13
  ---
14
14
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
15
15
  # xAI Search (X/Twitter + Web)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: distill-writing
3
3
  description: "Learn a house writing style from approved sample documents, or save an explicitly stated project document preference, into WRITING.md and writing/templates/. Use for sample-based style learning, house-style setup or refresh, and requests such as 'remember this for future PRDs' or 'make this our report default', including handoffs from write-doc, write-report or plain-language. Preserve manual edits and separate document types. NOT for drafting a document (write-doc) or analytical report (write-report) or saving chat-only preferences (plain-language)."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Distill a writing style
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: doc-to-md
3
3
  description: "Convert documents (PDF, DOCX, PPTX, XLSX, images) to Markdown so agents can read them. Use as the preprocessing step whenever binary files need to enter agent context — contract review, compliance audit, document analysis, evidence review."
4
- release-version: 0.48.0
4
+ release-version: 0.48.1
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # doc-to-md