@ericrisco/rsc 0.1.50 → 0.1.52
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/manifest.json +17 -17
- package/package.json +1 -1
- package/skills/forecasting/SKILL.md +17 -17
- package/skills/game-storytelling/SKILL.md +14 -39
- package/skills/gamedev-multiplayer/SKILL.md +35 -48
- package/skills/gamedev-pathing/SKILL.md +20 -29
- package/skills/gamedev-shipping/SKILL.md +28 -44
- package/skills/godot/SKILL.md +17 -36
- package/skills/grants/SKILL.md +2 -20
- package/skills/harness/SKILL.md +26 -85
- package/skills/harness/evals/cases.yaml +1 -1
- package/skills/hiring/SKILL.md +14 -26
- package/skills/instagram-api/SKILL.md +12 -22
- package/skills/machine-learning/SKILL.md +21 -53
- package/skills/observability/SKILL.md +2 -4
- package/skills/rag/SKILL.md +21 -38
- package/skills/security-scan/SKILL.md +46 -67
- package/skills/security-scan/references/tools.md +0 -1
- package/skills/security-scan/references/triage.md +0 -1
- package/skills/tauri/SKILL.md +6 -11
- package/skills/webhooks/SKILL.md +17 -34
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gamedev-pathing
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when making NPCs, enemies, or units navigate a level — grid vs waypoint vs navmesh, A*/JPS, navmesh baking and agent radius, off-mesh links, steering, RVO crowd avoidance, and flow fields in Godot 4.x, Unity, Unreal. NOT collision response or character controllers (that is gamedev-physics), NOT aggro or difficulty design (that is game-design)."
|
|
4
4
|
tags: [pathfinding, navmesh, navigation, steering, a-star]
|
|
5
5
|
recommends: [godot, unity, unreal, gamedev-physics]
|
|
6
6
|
profiles: [full]
|
|
@@ -102,7 +102,8 @@ Combine either as a **weighted sum** (simple) or **priority/arbitration** (avoid
|
|
|
102
102
|
**Local avoidance (RVO / ORCA):** each agent picks a velocity that is collision-free assuming neighbours
|
|
103
103
|
share the burden (*reciprocal* — hence no oscillating "dance"). This is avoidance, **not** collision
|
|
104
104
|
*response*: it changes intended velocity *before* moving; the physics/collision solver is a separate,
|
|
105
|
-
last-resort backstop (→ `gamedev-physics`). For dense crowds use the
|
|
105
|
+
last-resort backstop (→ [`gamedev-physics`](../gamedev-physics/SKILL.md)). For dense crowds use the
|
|
106
|
+
engine's crowd/avoidance system.
|
|
106
107
|
|
|
107
108
|
**Flow fields** — for **many agents → one (or few) goals** (RTS swarm, tower-defense creeps): run one
|
|
108
109
|
**Dijkstra from the goal** over the grid to build a cost/integration field, derive a per-cell direction
|
|
@@ -182,30 +183,26 @@ AICon->MoveToActor(TargetActor, /*AcceptanceRadius*/ 50.f); // or MoveToLocati
|
|
|
182
183
|
4. Costs/holes: **`NavModifierVolume`** + `NavArea` classes. Off-mesh: **`NavLinkProxy`**. Crowd
|
|
183
184
|
avoidance: enable the **Detour Crowd** manager (or `DetourCrowdAIController`) for RVO on many agents.
|
|
184
185
|
|
|
185
|
-
> High-level BT *design* (states, aggro, difficulty) is `game-design
|
|
186
|
+
> High-level BT *design* (states, aggro, difficulty) is [`game-design`](../game-design/SKILL.md); this skill wires the BT's
|
|
186
187
|
> movement/EQS tasks to navigation, not the decision tree's semantics.
|
|
187
188
|
|
|
188
|
-
##
|
|
189
|
+
## Anti-patterns
|
|
189
190
|
|
|
190
|
-
-
|
|
191
|
-
- Bake covers **static** geometry; runtime-spawned meshes need a rebake, a carving obstacle, or a nav link.
|
|
192
|
-
- Path returns empty when start/end are **off the navmesh** or in disconnected islands — snap to nearest poly and check reachability first.
|
|
193
|
-
- Avoidance (RVO) ≠ collision (physics). Agents can still overlap under pressure; that is expected, not a physics bug.
|
|
194
|
-
- Off-mesh links are **directional and manual** — a jump-down link does not imply a jump-up link.
|
|
195
|
-
- Smooth grid paths (funnel / string-pull) or agents walk visible zig-zag staircases.
|
|
196
|
-
|
|
197
|
-
## Anti-patterns / rationalizations → STOP
|
|
198
|
-
|
|
199
|
-
| Rationalization | Reality / do instead |
|
|
191
|
+
| Anti-pattern | Do instead |
|
|
200
192
|
| --- | --- |
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
193
|
+
| Running a full A* every frame | Path on goal-change (or throttled) and steer between frames — per-frame search melts CPU at scale. |
|
|
194
|
+
| One navmesh bake shared by every unit | Radius/height differ; bake per agent size or use agent-type profiles. |
|
|
195
|
+
| Baking with a placeholder agent radius | Bake with the real radius — mismatch is the top "stuck in doorways / clipping walls" cause. |
|
|
196
|
+
| Treating agents that clip through each other as a physics bug | Missing **local avoidance**; enable RVO/crowd — that is the navigation layer. |
|
|
197
|
+
| Expecting RVO to prevent every overlap | Avoidance ≠ collision. Agents can still overlap under pressure; that is expected, not a physics bug. |
|
|
198
|
+
| Expecting a **static** bake to see runtime-spawned geometry | Set Dynamic runtime generation / rebake, or add a carving obstacle or nav link. |
|
|
199
|
+
| Hand-rolling your own grid A* in Unity/Unreal | Reinvents the built-in navmesh; use `NavMeshAgent` / `AAIController::MoveTo`. |
|
|
200
|
+
| 500 zombies each running A* to the player | That's a **flow field**: one Dijkstra from the goal, agents sample cells. |
|
|
201
|
+
| Setting `agent.destination` and reading the path the same frame | Path is async (`pathPending`); gate on it before trusting `remainingDistance`. |
|
|
202
|
+
| Inflating `h` because a bigger heuristic seems smarter | Over-estimating `h` breaks A* optimality; keep it admissible (or weight it *knowingly*). |
|
|
203
|
+
| Trusting a path query that came back empty | Start/end are **off the navmesh** or in disconnected islands — snap to the nearest poly and check reachability first. |
|
|
204
|
+
| Assuming an off-mesh link works both ways | Links are **directional and manual** — a jump-down link does not imply a jump-up link. |
|
|
205
|
+
| Feeding raw grid paths to the mover | Smooth them (funnel / string-pull) or agents walk visible zig-zag staircases. |
|
|
209
206
|
|
|
210
207
|
## Related skills
|
|
211
208
|
|
|
@@ -213,7 +210,7 @@ AICon->MoveToActor(TargetActor, /*AcceptanceRadius*/ 50.f); // or MoveToLocati
|
|
|
213
210
|
- [`unity`](../unity/SKILL.md) — Unity/C# project setup; here for the NavMesh + AI Navigation package details.
|
|
214
211
|
- [`unreal`](../unreal/SKILL.md) — UE5/Blueprint/C++; here for RecastNavMesh + AIController/BT/EQS wiring.
|
|
215
212
|
- [`gamedev-physics`](../gamedev-physics/SKILL.md) — collision *response*, rigidbodies, character controllers; steering decides intended velocity, physics resolves the contact.
|
|
216
|
-
- `game-design` — high-level enemy behaviour, aggro, encounter/difficulty design (what the AI *decides*, not how it *moves*).
|
|
213
|
+
- [`game-design`](../game-design/SKILL.md) — high-level enemy behaviour, aggro, encounter/difficulty design (what the AI *decides*, not how it *moves*).
|
|
217
214
|
|
|
218
215
|
## Checklist
|
|
219
216
|
|
|
@@ -234,9 +231,3 @@ the project's navigation decisions in `02-DOCS/wiki/stack/gamedev-pathing.md` (i
|
|
|
234
231
|
`02-DOCS/wiki/index.md`): engine + version, chosen representation, bake settings (agent sizes, cell
|
|
235
232
|
size), avoidance/crowd choice, custom links/areas. Read it first on every use; bump its `Updated` date
|
|
236
233
|
when a convention changes. No `02-DOCS/` layer? Skip silently — conventions are *recorded, not gated*.
|
|
237
|
-
|
|
238
|
-
## See Also — local references (read when)
|
|
239
|
-
|
|
240
|
-
- `references/search-algorithms.md` — representations, A*/Dijkstra/JPS/HPA* pseudocode, heuristics & admissibility, tie-breaking, any-angle, funnel smoothing.
|
|
241
|
-
- `references/navmesh-workflow.md` — bake-parameter table, areas/costs, off-mesh links, obstacles vs carving vs partial rebake, per-engine baking, debugging.
|
|
242
|
-
- `references/steering-and-avoidance.md` — steering primitives, path following, boids weights, RVO/ORCA intuition, crowds, flow-field construction.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gamedev-shipping
|
|
3
|
-
description: "Use when exporting,
|
|
3
|
+
description: "Use when exporting, packaging, signing, or publishing a game — export presets per engine, macOS notarization, cross-origin isolation for threaded web builds, Android AAB/keystore, iOS provisioning, store submission (Steam, Play, App Store, itch.io), headless build CI. NOT gameplay code inside the artifact (that is `godot`, `unity`, `unreal`), NOT hosting a web app or container (that is `deployment`)."
|
|
4
4
|
tags: [export, build, release, packaging, store, steam, itch, notarization, webassembly, aab]
|
|
5
5
|
recommends: [godot, unity, unreal, deployment]
|
|
6
6
|
profiles: [full]
|
|
@@ -29,21 +29,14 @@ Godot templates·Unity Build Profiles·Unreal Shipping desktop·web·mobile
|
|
|
29
29
|
| Android | JDK **17**, target a recent API level | AAB required for Google Play (new apps + updates). APK only for sideload/itch/direct. |
|
|
30
30
|
| iOS/macOS | Xcode 16+, `notarytool` | `altool` notarization is dead — use `xcrun notarytool`. |
|
|
31
31
|
|
|
32
|
-
## When to use
|
|
32
|
+
## When NOT to use — and who owns it instead
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
- Automating headless exports in CI, or setting version/build numbers.
|
|
41
|
-
- Shrinking build size / startup time before release.
|
|
42
|
-
|
|
43
|
-
**NOT for (route elsewhere, say so, stop):**
|
|
44
|
-
- Writing gameplay, shaders, netcode, or any runtime logic → the **engine** skill (`godot`/`unity`/`unreal`) or `gamedev-shaders`/`gamedev-multiplayer`. This skill packages code; it does not write it.
|
|
45
|
-
- Hosting a normal web app, API, or container (Dockerfile, Coolify, Vercel, VPS) → **`deployment`**. A WebAssembly game is *static files*; only its **headers** are special (below).
|
|
46
|
-
- Designing game feel, economy, or narrative → `game-design` / `game-storytelling`.
|
|
34
|
+
| Ask | Owner | Why the line is there |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| Gameplay, shaders, netcode, physics — any runtime logic | `../godot/SKILL.md`, `../unity/SKILL.md`, `../unreal/SKILL.md`, `../gamedev-shaders/SKILL.md`, `../gamedev-multiplayer/SKILL.md`, `../gamedev-physics/SKILL.md` | This skill packages code, it does not write it. The boundary is the export button. |
|
|
37
|
+
| Hosting a normal web app, API or container (Dockerfile, Coolify, Vercel, VPS) | `../deployment/SKILL.md` | A WebAssembly game is *static files*; only its **headers** are special (below). Borrow its Actions + header-setting patterns. |
|
|
38
|
+
| Game feel, economy, narrative | `../game-design/SKILL.md`, `../game-storytelling/SKILL.md` | Design intent, not packaging. |
|
|
39
|
+
| Signing-key and CI secret handling in general | `../secure-coding/SKILL.md` | The practice this skill assumes for keystores/certs. |
|
|
47
40
|
|
|
48
41
|
## Decision rules (settle these before touching a build)
|
|
49
42
|
|
|
@@ -96,7 +89,8 @@ RunUAT BuildCookRun -project="Game.uproject" -platform=Win64 \
|
|
|
96
89
|
Android adds `-distribution` for an AAB; iOS requires a Mac + provisioning. Run the platform
|
|
97
90
|
**Turnkey**/SDK setup once (Android Studio + NDK, or Xcode) or the cook fails.
|
|
98
91
|
|
|
99
|
-
→ full per-engine preset/flag tables:
|
|
92
|
+
→ full per-engine preset/flag tables: [references/mobile-and-desktop.md](references/mobile-and-desktop.md)
|
|
93
|
+
and [references/stores-and-ci.md](references/stores-and-ci.md).
|
|
100
94
|
|
|
101
95
|
## Per-platform
|
|
102
96
|
|
|
@@ -141,7 +135,8 @@ files are fine. Where to set them:
|
|
|
141
135
|
`COEP: require-corp` also means every cross-origin subresource (fonts, analytics, embeds) must
|
|
142
136
|
send CORP/CORS or it's blocked. **Godot C#/.NET has no web export at all** — use GDScript.
|
|
143
137
|
|
|
144
|
-
→
|
|
138
|
+
→ per-host configs, the service-worker shim, COEP subresource fallout, a self-test snippet and the
|
|
139
|
+
Godot vs Unity web specifics: [references/web-export-headers.md](references/web-export-headers.md).
|
|
145
140
|
|
|
146
141
|
### Mobile
|
|
147
142
|
|
|
@@ -162,7 +157,8 @@ Keep the keystore + passwords out of git (CI secret). `versionCode` must increas
|
|
|
162
157
|
then upload to App Store Connect / TestFlight via Xcode Organizer or **Transporter**. `CFBundleVersion`
|
|
163
158
|
must increase per upload.
|
|
164
159
|
|
|
165
|
-
→ full keystore
|
|
160
|
+
→ full keystore + Play App Signing, provisioning/TestFlight, Windows Authenticode and Linux
|
|
161
|
+
AppImage/Flatpak walkthroughs: [references/mobile-and-desktop.md](references/mobile-and-desktop.md).
|
|
166
162
|
|
|
167
163
|
## Store prep
|
|
168
164
|
|
|
@@ -174,7 +170,8 @@ must increase per upload.
|
|
|
174
170
|
- **itch.io**: `butler push build/ user/game:channel --userversion 1.2.3` — channel name (e.g. `windows`, `html5`) picks the platform.
|
|
175
171
|
- **Mac App Store**: Apple Distribution cert + App Sandbox entitlements (not Developer ID); notarization is handled by App Store submission.
|
|
176
172
|
|
|
177
|
-
→ Steamworks/SteamPipe VDF, butler channels, Play/App Store checklists:
|
|
173
|
+
→ Steamworks/SteamPipe VDF, butler channels, Play/App Store submission checklists:
|
|
174
|
+
[references/stores-and-ci.md](references/stores-and-ci.md).
|
|
178
175
|
|
|
179
176
|
## CI/CD for builds
|
|
180
177
|
|
|
@@ -186,7 +183,7 @@ Headless export in GitHub Actions; version from the run/commit so every artifact
|
|
|
186
183
|
- **Signing in CI**: import the keystore/cert from an encrypted secret at runtime, never commit it. macOS notarization runs on a `macos-latest` runner with `notarytool` + an App Store Connect API key.
|
|
187
184
|
- **Versioning**: semver tag for releases; a monotonic build number from `github.run_number` or the git commit count feeds `versionCode`/`CFBundleVersion`/Steam build description.
|
|
188
185
|
|
|
189
|
-
→ ready workflows
|
|
186
|
+
→ ready per-engine workflows with signing: [references/stores-and-ci.md](references/stores-and-ci.md).
|
|
190
187
|
|
|
191
188
|
## Ship-time optimization
|
|
192
189
|
|
|
@@ -195,26 +192,19 @@ Headless export in GitHub Actions; version from the run/commit so every artifact
|
|
|
195
192
|
- **Startup**: small boot scene, stream/preload heavy assets, compress the `.pck`/data, use Ogg Vorbis over WAV. Web: enable gzip/brotli on `.wasm`/`.pck`.
|
|
196
193
|
- **Budgets**: set a per-platform size budget (web especially — every MB is download latency) and check the final artifact against it before submitting.
|
|
197
194
|
|
|
198
|
-
## Anti-patterns
|
|
195
|
+
## Anti-patterns
|
|
199
196
|
|
|
200
|
-
|
|
|
197
|
+
| Anti-pattern | Do instead |
|
|
201
198
|
| --- | --- |
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
|
|
|
210
|
-
|
|
|
211
|
-
|
|
212
|
-
## Related skills
|
|
213
|
-
|
|
214
|
-
- `godot`, `unity`, `unreal` — write the game; this skill exports/ships what they build. Draw the line at the export button.
|
|
215
|
-
- `deployment` — Docker/CI/hosting for **web apps & APIs**; borrow its GitHub Actions + header-setting patterns, but a WebAssembly game is static files, not a container.
|
|
216
|
-
- `gamedev-shaders`, `gamedev-multiplayer`, `gamedev-physics` — runtime subsystems packaged into the ship artifact, not configured here.
|
|
217
|
-
- `secure-coding` — signing-key and secret handling this skill assumes for keystores/certs in CI.
|
|
199
|
+
| Web build works locally, host it later | Set COOP/COEP now; `file://` and simple servers hide the `SharedArrayBuffer` failure. |
|
|
200
|
+
| Planning a Godot C# web export | It doesn't exist in 4.x. GDScript for web, or no web. |
|
|
201
|
+
| Treating notarization as optional | On macOS, no notarize + staple = Gatekeeper blocks the app for every user. |
|
|
202
|
+
| Shipping an APK to the Play Store | Play requires **AAB** for new apps and updates. |
|
|
203
|
+
| Committing the keystore so CI can sign | Keystore/cert live in encrypted CI secrets, never in git. |
|
|
204
|
+
| Shipping the Development/Debug config | Ship Godot release / Unity IL2CPP release / Unreal **Shipping** — debug leaks console + is slow. |
|
|
205
|
+
| Export templates "close enough" (4.5 vs 4.5.1) | Godot templates must match the editor build exactly or export breaks. |
|
|
206
|
+
| Uncompressed textures | Per-platform compression (ASTC/BCn/ETC2) — raw textures blow memory + size. |
|
|
207
|
+
| Reusing an old versionCode/CFBundleVersion | Both must strictly increase or the store rejects the upload. |
|
|
218
208
|
|
|
219
209
|
## Checklist
|
|
220
210
|
|
|
@@ -228,9 +218,3 @@ Headless export in GitHub Actions; version from the run/commit so every artifact
|
|
|
228
218
|
- [ ] Store assets: icons, splash, screenshots, metadata, age rating done.
|
|
229
219
|
- [ ] Version/build number set from CI and traceable.
|
|
230
220
|
- [ ] Textures compressed per platform; build size within budget.
|
|
231
|
-
|
|
232
|
-
## References
|
|
233
|
-
|
|
234
|
-
- `references/web-export-headers.md` — cross-origin isolation deep dive: COOP/COEP per host (Netlify/Vercel/nginx/itch/GitHub Pages), the `coi-serviceworker` shim, COEP subresource fallout, self-test snippet, Godot vs Unity web specifics.
|
|
235
|
-
- `references/mobile-and-desktop.md` — Android keystore + Gradle template + Play App Signing; iOS provisioning/TestFlight; full macOS codesign→notarytool→staple; Windows Authenticode; Linux AppImage/Flatpak.
|
|
236
|
-
- `references/stores-and-ci.md` — Steamworks/SteamPipe VDF upload, itch.io butler channels, Play/App Store submission checklists, and per-engine GitHub Actions headless-build workflows with signing.
|
package/skills/godot/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: godot
|
|
3
|
-
description: "Use when writing, reviewing, or debugging Godot 4.x games in GDScript
|
|
3
|
+
description: "Use when writing, reviewing, or debugging Godot 4.x games in GDScript or C# — scenes, nodes, custom Resources, autoload/EventBus signals, typed GDScript, CharacterBody2D/3D movement, GUT/gdUnit4 — or porting Godot 3 APIs to 4. NOT Unity/Unreal (that is `unity`/`unreal`), NOT `.gdshader` code (`gamedev-shaders`), NOT GDExtension C++ tooling (`cpp`)."
|
|
4
4
|
tags: [godot, gdscript, game-dev, csharp, godot4]
|
|
5
5
|
recommends: [gamedev-shaders, gamedev-multiplayer, gamedev-physics, gamedev-pathing, gamedev-shipping, game-design, cpp]
|
|
6
6
|
profiles: [full]
|
|
@@ -9,9 +9,9 @@ origin: risco
|
|
|
9
9
|
|
|
10
10
|
# Godot 4.x (GDScript + C#)
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
Build 2D and 3D the way the engine is designed: scenes as reusable units, composition over deep node
|
|
13
|
+
trees, signals for decoupling, static typing for speed and safety. GDScript (typed) is primary; C#
|
|
14
|
+
parity snippets sit beside it.
|
|
15
15
|
|
|
16
16
|
## Version contract — read first
|
|
17
17
|
|
|
@@ -111,8 +111,11 @@ Keep gameplay logic in nodes; let the bus carry the *notification*, not the beha
|
|
|
111
111
|
children in `_init`.
|
|
112
112
|
- **Prefer unique names**: mark a node **Unique Name in Owner** (`%`) and access `%HealthBar`
|
|
113
113
|
instead of the fragile, refactor-breaking `get_node("../../UI/HealthBar")`. `$Foo` is fine for a
|
|
114
|
-
direct child.
|
|
114
|
+
direct child — `get_node`/`$` on a missing path returns `null` and errors.
|
|
115
115
|
- Cache node lookups in `@onready` vars; don't call `get_node` every frame.
|
|
116
|
+
- **Freeing**: call `queue_free()` (safe, end of frame), not `free()` mid-signal. Guard reused refs
|
|
117
|
+
with `is_instance_valid(node)`.
|
|
118
|
+
- Never busy-wait; `await get_tree().create_timer(1.0).timeout` or `await` a signal.
|
|
116
119
|
|
|
117
120
|
```gdscript
|
|
118
121
|
extends CharacterBody2D
|
|
@@ -286,34 +289,12 @@ like any other library. That is native-tooling territory → pair with `cpp`.
|
|
|
286
289
|
- Validate a project before shipping: open in the editor once (catches broken `.tscn`/`.tres`),
|
|
287
290
|
then export-check per platform. Details → `references/export-and-testing.md`.
|
|
288
291
|
|
|
289
|
-
##
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
## Related skills
|
|
300
|
-
|
|
301
|
-
- [`game-design`](../game-design/SKILL.md) — mechanics, loops, and feel *before* you script them.
|
|
302
|
-
- [`gamedev-shaders`](../gamedev-shaders/SKILL.md) — `.gdshader` / visual shaders (out of scope here).
|
|
303
|
-
- [`gamedev-physics`](../gamedev-physics/SKILL.md) — joints, RigidBody tuning, deep collision layers.
|
|
304
|
-
- [`gamedev-pathing`](../gamedev-pathing/SKILL.md) — NavigationAgent, A*, steering beyond the basics.
|
|
305
|
-
- [`gamedev-multiplayer`](../gamedev-multiplayer/SKILL.md) — `MultiplayerSynchronizer`/RPC/netcode.
|
|
306
|
-
- [`gamedev-shipping`](../gamedev-shipping/SKILL.md) — store builds, signing, platform export at scale.
|
|
307
|
-
- [`cpp`](../cpp/SKILL.md) — the GDExtension / `godot-cpp` native side and its CMake/build tooling.
|
|
308
|
-
|
|
309
|
-
## Checklist
|
|
310
|
-
|
|
311
|
-
- [ ] Zero Godot 3 APIs — checked every line against the ban-list (`yield`/`onready`/`instance()`/`KinematicBody`/`Spatial`/string `connect`/`File`).
|
|
312
|
-
- [ ] `move_and_slide()` called with **no args**; `velocity` set as a property; not multiplied by `delta` twice.
|
|
313
|
-
- [ ] Overridden lifecycle methods call `super()` where a base defines them.
|
|
314
|
-
- [ ] Signals connected via Callable (`x.sig.connect(_on_x)`), named past-tense, disconnected/one-shot where needed.
|
|
315
|
-
- [ ] Everything typed (`:` / `:=`, typed params/returns, typed Arrays); no stray `Variant`.
|
|
316
|
-
- [ ] Physics in `_physics_process`, visuals in `_process`; rate-based values scaled by `delta`.
|
|
317
|
-
- [ ] Node access via `@onready` + `%UniqueName`, not deep `get_node("../..")` chains.
|
|
318
|
-
- [ ] `.tscn`/`.tres` not hand-corrupted; project opens in-editor before export.
|
|
319
|
-
- [ ] C# snippets use `partial`, `[Export]`/`[Signal]`, `base._Ready()`, PascalCase (if C# requested).
|
|
292
|
+
## Hand off to
|
|
293
|
+
|
|
294
|
+
Mechanics, loops, and feel *before* you script them → [`game-design`](../game-design/SKILL.md).
|
|
295
|
+
`.gdshader` / visual shaders → [`gamedev-shaders`](../gamedev-shaders/SKILL.md). Joints, RigidBody
|
|
296
|
+
tuning, deep collision layers → [`gamedev-physics`](../gamedev-physics/SKILL.md). NavigationAgent,
|
|
297
|
+
A*, steering → [`gamedev-pathing`](../gamedev-pathing/SKILL.md). `MultiplayerSynchronizer`/RPC/netcode
|
|
298
|
+
→ [`gamedev-multiplayer`](../gamedev-multiplayer/SKILL.md). Store builds, signing, platform export at
|
|
299
|
+
scale → [`gamedev-shipping`](../gamedev-shipping/SKILL.md). The GDExtension / `godot-cpp` native side
|
|
300
|
+
and its CMake/build tooling → [`cpp`](../cpp/SKILL.md).
|
package/skills/grants/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: grants
|
|
3
|
-
description: "Use when
|
|
3
|
+
description: "Use when pursuing non-dilutive public or foundation funding — money you neither repay nor give equity for: finding a fit call, go/no-go, registration (UEI/PIC/BDNS), or writing the rubric-scored application, logic model, budget justification, or LOI. NOT an equity round (that is `fundraising`), NOT a paying-customer SOW (that is `proposals`)."
|
|
4
4
|
tags: [grants, subsidies, fundraising-nondilutive, public-funding, grant-writing]
|
|
5
5
|
recommends: [fundraising, proposals, financial-model, pitch-deck, bookkeeping, contracts]
|
|
6
6
|
origin: risco
|
|
@@ -12,19 +12,7 @@ origin: risco
|
|
|
12
12
|
|
|
13
13
|
You are a **reviewer-minded application writer**. Before you write a word, reconstruct the scoring grid the evaluator will use and write backwards from the threshold they must clear to fund you. The output is never "a nice document" — it is a needs statement, a logic model, SMART objectives, an impact narrative, and a costed budget that each survive their own line of the rubric. Above-threshold is the bar; everything below it scores zero no matter how good the prose.
|
|
14
14
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
Use when:
|
|
18
|
-
|
|
19
|
-
- Building a fit shortlist of grants, public subsidies, or foundation calls an org qualifies for.
|
|
20
|
-
- Deciding **go/no-go** on a specific call — eligibility, fit, effort vs. expected value, deadline vs. registration lead time.
|
|
21
|
-
- Writing the application against a published evaluation rubric: needs, logic model, objectives, workplan, impact, budget justification.
|
|
22
|
-
- Writing a **Letter of Inquiry / concept note** to a foundation.
|
|
23
|
-
- Building the **logic model / theory of change / SMART objectives**, or the impact section.
|
|
24
|
-
- Writing and justifying a **budget** so it survives allowability and indirect-cost rules.
|
|
25
|
-
- Registering an eligible entity: US UEI via SAM.gov, EU PIC, finding the Spanish BDNS convocatoria.
|
|
26
|
-
|
|
27
|
-
Do NOT use when — route instead:
|
|
15
|
+
## Route elsewhere
|
|
28
16
|
|
|
29
17
|
| The ask | Owner |
|
|
30
18
|
|---|---|
|
|
@@ -36,8 +24,6 @@ Do NOT use when — route instead:
|
|
|
36
24
|
| Post-award ledgers, fund accounting, spend tracking | `bookkeeping` |
|
|
37
25
|
| Pricing, packaging, what to charge customers | `pricing` |
|
|
38
26
|
|
|
39
|
-
The one-sentence boundary: `grants` owns the pursuit and writing of money scored by a **reviewer against a published rubric**; the moment it is **equity or a round** it is `fundraising`, and the moment the document persuades a **paying customer** it is `proposals`.
|
|
40
|
-
|
|
41
27
|
## The non-dilutive landscape
|
|
42
28
|
|
|
43
29
|
Three lanes, and the rules live in different documents in each. Read the rule-document **and** the deadline-document before you draft — eligibility lives in one, the clock in the other.
|
|
@@ -162,10 +148,6 @@ Hard caps are real and enforced: Horizon Europe Part B is **40 pages** for stand
|
|
|
162
148
|
| Generic LOI with no fit argument | LOIs filter on alignment first | Lead with funder-fit, then credibility, then impact |
|
|
163
149
|
| Indirect line guessed or padded | Breaches the 15% de minimis with no negotiated rate | Use ≤15% MTDC, or declare your negotiated rate |
|
|
164
150
|
|
|
165
|
-
## Jurisdiction quick-reference
|
|
166
|
-
|
|
167
|
-
EU (Funding & Tenders portal, PIC, Horizon evaluation criteria, page limits), US (Grants.gov, SAM.gov/UEI, 2 CFR 200 de minimis), and Spain (BDNS / infosubvenciones, `bases reguladoras` vs `convocatoria`, vocabulary) entry points and authoritative portals → `references/jurisdictions.md`.
|
|
168
|
-
|
|
169
151
|
## Optional self-check
|
|
170
152
|
|
|
171
153
|
`scripts/verify.sh path/to/application.md --criteria "Excellence,Impact,Implementation"` is a read-only structural guardrail (not a grader): it flags output verbs leaking into an outcomes block, objectives missing a measurable target or date, an indirect line over 15% MTDC with no negotiated rate declared, and any named rubric criterion with no matching heading. It exits 0 on a clean or empty file. The real rigor is the capability eval, not the linter.
|
package/skills/harness/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: harness
|
|
3
|
-
description: "Use
|
|
3
|
+
description: "Use when governing a workspace's control plane, code or not — the `01-TOOLS/` tooling layer, the `02-DOCS/` chaos→knowledge wiki, the root Knowledge map. Audits it, migrates legacy `XX-*` folders, scaffolds provider tooling, sweeps the inbox, writes root CLAUDE.md/AGENTS.md. NOT the bootstrap front door (that is `init`, which hands off here)."
|
|
4
4
|
tags: [harness, company, ops, docs, wiki, connect, tools, knowledge]
|
|
5
5
|
recommends: [init]
|
|
6
6
|
profiles: [minimal, core, full]
|
|
@@ -18,8 +18,9 @@ The **harness** is the control plane of a workspace. A workspace need not be cod
|
|
|
18
18
|
|
|
19
19
|
Two on-ramps feed it. **Ingest**: the user drops any file in any format into `inbox/`, and the
|
|
20
20
|
Auto-Ingest Sweep extracts, classifies, cross-links and compiles it — then goes for a walk,
|
|
21
|
-
discovering un-ingested documents anywhere in the workspace, bounded by `.rscignore`
|
|
22
|
-
de-duplicated through the `wiki/.ingested.json`
|
|
21
|
+
discovering un-ingested documents anywhere in the workspace, bounded by `.rscignore` (baseline:
|
|
22
|
+
`references/ingest-ignore-defaults.md`) and de-duplicated through the `wiki/.ingested.json`
|
|
23
|
+
ledger. **Worklog**: every meaningful session of
|
|
23
24
|
work is itself a raw source in `raw/worklog/`, captured on `PreCompact`/`SessionEnd`, at a commit
|
|
24
25
|
milestone, or by the daily curation pass.
|
|
25
26
|
|
|
@@ -35,7 +36,8 @@ The **harness** is the control plane of a workspace. A workspace need not be cod
|
|
|
35
36
|
|
|
36
37
|
It compounds on its own: every Ingest, Sweep and Query triggers a Maintenance Pass (lint, score
|
|
37
38
|
recomputation, gap detection, Related sweep), a Micro-Improve runs every N interactions, and Deep
|
|
38
|
-
Improve runs on request or on the daily schedule
|
|
39
|
+
Improve runs on request or on the daily schedule (`references/daily-curation-automation.md` — on
|
|
40
|
+
Claude Code, wire it via the `schedule` skill). Protocol → `references/wiki-protocol.md`;
|
|
39
41
|
formats → `references/ingest-formats.md`; capture → `references/wiki-worklog-template.md`;
|
|
40
42
|
vault → `references/obsidian-scaffolding.md`.
|
|
41
43
|
- **The Knowledge map** — the `## Knowledge map` section of the root `CLAUDE.md` that indexes the wiki (including the `harness/` topic) and is read by every other skill before it works in its area.
|
|
@@ -78,45 +80,7 @@ for harness-level choices, but defer concrete deploy mechanics to `deployment`,
|
|
|
78
80
|
|
|
79
81
|
The skill proposes, the user confirms, the skill executes. Every destructive operation (deleting a legacy folder, merging into an existing `CLAUDE.md`) requires explicit consent quoted back from the user, not inferred.
|
|
80
82
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
- A workspace has grown organically and needs the canonical `01-TOOLS` / `02-DOCS` structure.
|
|
84
|
-
- Old numbered folders (`00-TOOLS`, `03-NOTES`, `04-LEGACY`…) exist and need to be consolidated.
|
|
85
|
-
- A new project is being kicked off and needs the harness from day one.
|
|
86
|
-
- Provider integrations exist in code but there's no operational tooling for them.
|
|
87
|
-
|
|
88
|
-
**Do NOT use when:**
|
|
89
|
-
- The user only wants to add a single tool — they can `cp -r 01-TOOLS/_TEMPLATE 01-TOOLS/<X>` manually.
|
|
90
|
-
- The user wants to refactor runtime code — this skill is operational tooling only, never runtime.
|
|
91
|
-
|
|
92
|
-
## Architecture
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
harness/
|
|
96
|
-
├── SKILL.md ← this file (the protocol)
|
|
97
|
-
├── references/
|
|
98
|
-
│ ├── providers.yaml ← detector catalog with full file bodies per provider
|
|
99
|
-
│ ├── claude-md-template.md ← root CLAUDE.md template
|
|
100
|
-
│ ├── agents-md-template.md ← root AGENTS.md template
|
|
101
|
-
│ ├── tools-readme-template.md ← 01-TOOLS/README.md catalog template
|
|
102
|
-
│ ├── audit-report-template.md ← exact format of the audit report shown to user
|
|
103
|
-
│ ├── wiki-protocol.md ← embedded wiki protocol + Inbox/Worklog Sweep + Continuous Improvement
|
|
104
|
-
│ ├── ingest-formats.md ← multiformat Fetch (PDF, image, CSV, JSON, html…)
|
|
105
|
-
│ ├── ingest-ignore-defaults.md ← what the sweep skips by default (the .rscignore baseline)
|
|
106
|
-
│ ├── inbox-readme-template.md ← the inbox/README.md drop-zone contract
|
|
107
|
-
│ ├── wiki-raw-template.md ← format for raw/<topic>/*.md
|
|
108
|
-
│ ├── wiki-worklog-template.md ← format for raw/worklog/*.md (work-driven capture)
|
|
109
|
-
│ ├── wiki-article-template.md ← format for wiki/<topic>/*.md (OKF frontmatter + markdown links)
|
|
110
|
-
│ ├── wiki-index-template.md ← format for wiki/index.md (machine catalog; .base = human nav)
|
|
111
|
-
│ ├── obsidian-scaffolding.md ← .base views, .gitignore, attachments, .obsidian config
|
|
112
|
-
│ ├── daily-curation-automation.md ← portable scheduled compounding pass (the third trigger)
|
|
113
|
-
│ ├── wiki-archive-template.md ← format for archived query answers
|
|
114
|
-
│ └── wiki-gaps-template.md ← format for wiki/gaps.md (Knowledge Gaps log)
|
|
115
|
-
├── assets/
|
|
116
|
-
│ └── _TEMPLATE/ ← per-tool boilerplate (cp -r seed)
|
|
117
|
-
└── examples/
|
|
118
|
-
└── audit-example.md ← walked-through audit on a synthetic project
|
|
119
|
-
```
|
|
83
|
+
**Out of scope:** adding a single tool — the user does `cp -r 01-TOOLS/_TEMPLATE 01-TOOLS/<X>` manually, no need for the full protocol; and refactoring runtime code — this skill is operational tooling only, never runtime.
|
|
120
84
|
|
|
121
85
|
## Protocol — five phases
|
|
122
86
|
|
|
@@ -148,7 +112,7 @@ Walk the workspace root and gather:
|
|
|
148
112
|
|
|
149
113
|
Render **two artifacts**:
|
|
150
114
|
|
|
151
|
-
1. **A compact text summary in the conversation** — 1–3 sentences per section, the full destructive-ops list, the consent prompt. This keeps the terminal flow fast.
|
|
115
|
+
1. **A compact text summary in the conversation** — 1–3 sentences per section, the full destructive-ops list, the consent prompt, in the format of `references/audit-report-template.md`. This keeps the terminal flow fast. A full walked-through audit on a synthetic project: `examples/audit-example.md`.
|
|
152
116
|
2. **A full HTML report at `<workspace_root>/02-DOCS/audits/audit-YYYY-MM-DD-HHMM.html`** using `references/audit-report-template.html`. Self-contained (inline CSS, no CDN). Includes color-coded action tables, collapsible legacy-folder sections, highlighted destructive ops, and the consent prompt. **Gitignored** (per-run artifact).
|
|
153
117
|
|
|
154
118
|
If `02-DOCS/audits/` does not exist, create it (with `.gitkeep`) before writing — even on first run, before Phase 4 builds the rest of `02-DOCS/`. Same for `02-DOCS/` itself: the audits subdirectory is the only piece allowed to materialize during Phase 2; the rest waits until APPLY. Never write the audit HTML at the workspace root.
|
|
@@ -184,7 +148,7 @@ Execute in this exact order. Each step writes to disk; abort and report on first
|
|
|
184
148
|
1. **Root files.**
|
|
185
149
|
- If `CLAUDE.md` does not exist: render `references/claude-md-template.md` with the scan data and write it.
|
|
186
150
|
- If `CLAUDE.md` exists: read it, compute a section-level diff against the template, and apply ONLY additive merges. Never delete user content. Never overwrite a section the user has customized. Append missing sections at the end with an `<!-- added by harness YYYY-MM-DD -->` marker.
|
|
187
|
-
- Same logic for `AGENTS.md`.
|
|
151
|
+
- Same logic for `AGENTS.md`, rendered from `references/agents-md-template.md`.
|
|
188
152
|
2. **Create `01-TOOLS/` skeleton.**
|
|
189
153
|
- Create `01-TOOLS/` directory.
|
|
190
154
|
- Copy `assets/_TEMPLATE/` to `01-TOOLS/_TEMPLATE/`. This template is **generic boilerplate with placeholders (`<NOMBRE_TOOL>`, `<TOOL>_API_KEY`)**. The user copies it manually when adding a tool NOT in the catalog. The skill itself does NOT use `_TEMPLATE/` to generate the detected tools — those come from `providers.yaml`.
|
|
@@ -198,7 +162,7 @@ Execute in this exact order. Each step writes to disk; abort and report on first
|
|
|
198
162
|
4. **Migrate legacy `XX-*` folders.**
|
|
199
163
|
- For each TOOLING file: move to its mapped destination in `01-TOOLS/<X>/`. If the destination file already exists from step 3, the legacy file goes to `01-TOOLS/<X>/migrated/<original-name>` so nothing is overwritten. The user resolves manually.
|
|
200
164
|
- For each DOCS file: move to `02-DOCS/raw/migrated/<original-folder>/<path>`.
|
|
201
|
-
- For each AMBIGUOUS file: leave in place. Record in the verification report.
|
|
165
|
+
- For each AMBIGUOUS file: leave in place. Record in the verification report. Never force-classify — a file moved to the wrong place is harder to recover than one left where the user put it.
|
|
202
166
|
5. **Verify migration.**
|
|
203
167
|
- Count files moved vs files originally present. They must match (moved + ambiguous-remaining = original).
|
|
204
168
|
- If counts don't match, abort and report. Don't proceed to deletion.
|
|
@@ -216,7 +180,14 @@ Execute in this exact order. Each step writes to disk; abort and report on first
|
|
|
216
180
|
- Each `01-TOOLS/<TOOL>/README.md` and `CREDENTIALS.md`.
|
|
217
181
|
- Every file under `02-DOCS/raw/migrated/` (from legacy `XX-*` migration in step 4).
|
|
218
182
|
- Root `CLAUDE.md` and `AGENTS.md`.
|
|
219
|
-
- Use
|
|
183
|
+
- Use these templates verbatim; `wiki-protocol.md` is the source of truth for `02-DOCS`, so do NOT invent a different structure or format:
|
|
184
|
+
- `references/wiki-raw-template.md` — `raw/<topic>/*.md`.
|
|
185
|
+
- `references/wiki-article-template.md` — `wiki/<topic>/*.md` (OKF v0.1 frontmatter + relative markdown links + `## Related`).
|
|
186
|
+
- `references/wiki-index-template.md` — `wiki/index.md` (machine catalog; the `.base` views are the human navigation).
|
|
187
|
+
- `references/wiki-gaps-template.md` — `wiki/gaps.md` (Knowledge Gaps log).
|
|
188
|
+
- `references/wiki-dashboard-template.html` — the live wiki dashboard, regenerated by Maintenance Pass.
|
|
189
|
+
- `references/wiki-archive-template.html` — archived query answers (point-in-time, never edited).
|
|
190
|
+
- `references/wiki-deep-improve-report-template.html` — Deep Improve run reports.
|
|
220
191
|
|
|
221
192
|
### Phase 5 — VERIFY
|
|
222
193
|
|
|
@@ -304,20 +275,13 @@ Opt out of the size nudge with `.rsc/.no-claudemd-check`.
|
|
|
304
275
|
|
|
305
276
|
## Invariants
|
|
306
277
|
|
|
307
|
-
|
|
308
|
-
breaking
|
|
309
|
-
|
|
310
|
-
1. **
|
|
311
|
-
2. **
|
|
312
|
-
3. **
|
|
313
|
-
4. **
|
|
314
|
-
5. **No overwrite without merge.** Existing `CLAUDE.md`, `AGENTS.md`, or tool files are merged additively. The skill never deletes user content.
|
|
315
|
-
6. **Destructive ops require a second consent quoting the path.** "Yes, delete `00-TOOLS`" is different from a generic "yes, proceed".
|
|
316
|
-
7. **Ambiguous files preserve the legacy folder.** Don't force-classify. If you can't classify with confidence, leave it.
|
|
317
|
-
8. **Idempotent.** Running the skill twice produces no extra side effects. Re-scanning a project already canonical detects "nothing to do".
|
|
318
|
-
9. **Out-of-scope dirs are invisible.** `node_modules/`, `.venv/`, `.next/`, `__pycache__/`, `.git/`, `dist/`, `build/`, `.dart_tool/` are never read for detection and never touched.
|
|
319
|
-
10. **`references/wiki-protocol.md` is the source of truth for `02-DOCS`.** Do not invent a different wiki structure.
|
|
320
|
-
11. **Subproject internals are out of scope.** `.env.example`, `requirements.txt`, `package.json`, source files inside subprojects are READ for detection only. They are NEVER moved, renamed, modified, or deleted. The skill operates exclusively on workspace-root artifacts (`CLAUDE.md`, `AGENTS.md`, `01-TOOLS/`, `02-DOCS/`, and `XX-*` legacy folders at the root level).
|
|
278
|
+
The consent, merge and `.env` rules live with the phases that enforce them above. These four are
|
|
279
|
+
scope rules that no single phase owns, and breaking one destroys something the user cannot get back:
|
|
280
|
+
|
|
281
|
+
1. **No speculative tools.** A tool is created if and only if the detector found evidence in the user's code. No "we should probably have a Sentry tool too".
|
|
282
|
+
2. **Idempotent.** Running the skill twice produces no extra side effects. Re-scanning a project already canonical detects "nothing to do".
|
|
283
|
+
3. **Out-of-scope dirs are invisible.** `node_modules/`, `.venv/`, `.next/`, `__pycache__/`, `.git/`, `dist/`, `build/`, `.dart_tool/` are never read for detection and never touched.
|
|
284
|
+
4. **Subproject internals are out of scope.** `.env.example`, `requirements.txt`, `package.json`, source files inside subprojects are READ for detection only. They are NEVER moved, renamed, modified, or deleted. The skill operates exclusively on workspace-root artifacts (`CLAUDE.md`, `AGENTS.md`, `01-TOOLS/`, `02-DOCS/`, and `XX-*` legacy folders at the root level).
|
|
321
285
|
|
|
322
286
|
## Red flags — abort and re-plan
|
|
323
287
|
|
|
@@ -327,30 +291,7 @@ If any of these occur, stop and report:
|
|
|
327
291
|
- The AUDIT shows zero detected tools AND zero legacy folders AND `CLAUDE.md`/`AGENTS.md` already exist → there's nothing for the skill to do. Tell the user.
|
|
328
292
|
- The user types anything ambiguous after AUDIT → do not infer consent.
|
|
329
293
|
- Migration verification (step 5 of APPLY) shows file count mismatch → abort, don't delete anything.
|
|
330
|
-
- The catalog has no entry for a provider obviously present in code → tell the user, suggest adding
|
|
331
|
-
|
|
332
|
-
## References
|
|
333
|
-
|
|
334
|
-
- `references/providers.yaml` — full provider catalog with detectors and per-file content. Edit this to add a new provider; don't edit `SKILL.md`.
|
|
335
|
-
- `references/claude-md-template.md` — root `CLAUDE.md` template.
|
|
336
|
-
- `references/agents-md-template.md` — root `AGENTS.md` template.
|
|
337
|
-
- `references/tools-readme-template.md` — `01-TOOLS/README.md` catalog template.
|
|
338
|
-
- `references/audit-report-template.md` — text summary format for the in-conversation audit summary.
|
|
339
|
-
- `references/audit-report-template.html` — HTML format for the full per-run audit artifact written to `02-DOCS/audits/`.
|
|
340
|
-
- `references/wiki-protocol.md` — embedded protocol for the `02-DOCS/` chaos→knowledge layer (initialization, **Inbox Sweep**, **Worklog Sweep**, ingest, query, lint, **Continuous Improvement**: Maintenance Pass, Micro-Improve, Deep Improve; Obsidian-native conventions).
|
|
341
|
-
- `references/ingest-formats.md` — multiformat Fetch: how any input (PDF, image, CSV/Excel, JSON/API, html, docx, email, unknown binary) becomes `raw/` markdown with the original preserved in `_originals/`.
|
|
342
|
-
- `references/inbox-readme-template.md` — the `inbox/README.md` drop-zone contract shown to the user.
|
|
343
|
-
- `references/wiki-raw-template.md` — format for `02-DOCS/raw/<topic>/*.md`.
|
|
344
|
-
- `references/wiki-worklog-template.md` — format for `02-DOCS/raw/worklog/*.md` (the work-driven capture; the session as a raw source).
|
|
345
|
-
- `references/wiki-article-template.md` — format for `02-DOCS/wiki/<topic>/*.md` (OKF v0.1 frontmatter + relative markdown links + `## Related`).
|
|
346
|
-
- `references/wiki-index-template.md` — format for `02-DOCS/wiki/index.md` (machine catalog; the `.base` views are the human navigation).
|
|
347
|
-
- `references/obsidian-scaffolding.md` — the vault scaffolding: `.base` views, `.gitignore`, `attachments/`, `.obsidian` config (no vector DB / RAG).
|
|
348
|
-
- `references/daily-curation-automation.md` — portable scheduled compounding pass; on Claude Code wired via the `schedule` skill.
|
|
349
|
-
- `references/wiki-archive-template.html` — HTML format for archived query answers (point-in-time, never edited).
|
|
350
|
-
- `references/wiki-dashboard-template.html` — HTML format for the live wiki dashboard, regenerated by Maintenance Pass.
|
|
351
|
-
- `references/wiki-deep-improve-report-template.html` — HTML format for Deep Improve run reports.
|
|
352
|
-
- `references/wiki-gaps-template.md` — format for `02-DOCS/wiki/gaps.md` (Knowledge Gaps log).
|
|
353
|
-
- `assets/_TEMPLATE/` — the boilerplate copied into every new tool.
|
|
294
|
+
- The catalog has no entry for a provider obviously present in code → tell the user, suggest adding an entry to `references/providers.yaml` (that file, never `SKILL.md`, is where providers are added), don't fake one.
|
|
354
295
|
|
|
355
296
|
This skill is fully self-contained. No external sub-skill required.
|
|
356
297
|
|
|
@@ -28,7 +28,7 @@ should_trigger:
|
|
|
28
28
|
should_not_trigger:
|
|
29
29
|
- prompt: "I want to add a single Sentry tool folder to 01-TOOLS. Just copy the template and wire it up."
|
|
30
30
|
route_to: "none"
|
|
31
|
-
why: "SKILL.md '
|
|
31
|
+
why: "SKILL.md 'Out of scope' is explicit: adding a single tool is a manual `cp -r 01-TOOLS/_TEMPLATE 01-TOOLS/<X>` — the full SCAN/AUDIT/APPLY harness is overkill, no skill needed."
|
|
32
32
|
|
|
33
33
|
- prompt: "Refactor the runtime database layer in my FastAPI service to use async SQLAlchemy sessions."
|
|
34
34
|
route_to: "fastapi"
|