You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/prompts/sync-agent-skill.md
+28-2Lines changed: 28 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ When updating the skill:
15
15
- Do NOT create or modify any files outside `agent-skills/workleap-squide/`.
16
16
- Do NOT use TodoWrite, TaskCreate, or any task tracking tools.
17
17
- Never update a versioned skill. You can identify a versioned skill with its folder name pattern, e.g. `workleap-squide-v*`.
18
-
- Never change skill content unless you can point to a specific line in `./docs` that contradicts the current skill text. If you cannot identify the exact discrepancy, do not touch the content.
18
+
- Never change skill content unless you can point to a specific line in `./docs` that either contradicts the current skill text or documents an API/pattern the skill is missing. If you cannot identify the exact discrepancy or omission, do not touch the content.
19
19
- The SKILL.md body must stay under ~250 lines. New API content goes in the appropriate `references/` file, not in the body. Only add to the body if the content is a critical multi-file pattern that agents need in nearly every conversation.
20
20
21
21
## Excluded docs
@@ -165,4 +165,30 @@ The following issues could not be resolved after 3 retries:
165
165
<List the failed coverage questions and/or accuracy discrepancies>"
166
166
```
167
167
168
-
Then STOP. You are done.
168
+
## If you cannot complete the workflow
169
+
170
+
If anything prevents you from completing the steps above — hook failures, permission errors, tool errors, validation loops that exhaust retries, or any other unrecoverable problem — do NOT stop silently. Create a GitHub issue so the team knows the sync failed and what was lost:
171
+
172
+
```bash
173
+
gh issue create \
174
+
--title "Sync agent skill: workflow failed to complete" \
175
+
--label "bug" \
176
+
--body "## Problem
177
+
178
+
The sync-agent-skill workflow could not complete successfully.
179
+
180
+
## What failed
181
+
182
+
<Describe the step that failed and the exact error message>
183
+
184
+
## Work completed before failure
185
+
186
+
<List any skill files you modified and a brief summary of each change, or 'None' if failure occurred before any changes>
187
+
188
+
## Next steps
189
+
190
+
1. Check the workflow run logs for details
191
+
2. Fix the blocker and re-run the workflow, or apply the changes manually"
Copy file name to clipboardExpand all lines: .github/prompts/update-agent-docs.md
+27-1Lines changed: 27 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -159,4 +159,30 @@ The PR body must follow this structure:
159
159
160
160
If there are no staged changes after `git add`, output "No agent-docs update needed." and STOP.
161
161
162
-
Then STOP. You are done.
162
+
## If you cannot complete the workflow
163
+
164
+
If anything prevents you from completing the steps above — hook failures, permission errors, tool errors, validation loops, or any other unrecoverable problem — do NOT stop silently. Create a GitHub issue so the team knows the update failed and what was lost:
165
+
166
+
```bash
167
+
gh issue create \
168
+
--title "Update agent docs: workflow failed to complete" \
169
+
--label "bug" \
170
+
--body "## Problem
171
+
172
+
The update-agent-docs workflow could not complete successfully.
173
+
174
+
## What failed
175
+
176
+
<Describe the step that failed and the exact error message>
177
+
178
+
## Work completed before failure
179
+
180
+
<List any files you modified and a brief summary of each change, or 'None' if failure occurred before any changes>
181
+
182
+
## Next steps
183
+
184
+
1. Check the workflow run logs for details
185
+
2. Fix the blocker and re-run the workflow, or apply the changes manually"
Copy file name to clipboardExpand all lines: agent-skills/workleap-squide/SKILL.md
+17-23Lines changed: 17 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ description: |
11
11
(7) Squide hooks for event bus, environment variables, feature flags, logging, or bootstrapping state
12
12
(8) Error boundaries or modular architecture in Squide applications
13
13
metadata:
14
-
version: 1.5
14
+
version: 1.6
15
15
---
16
16
17
17
# Squide Framework
@@ -20,23 +20,12 @@ Squide is a React modular application shell. Use only documented APIs.
20
20
21
21
## Core Concepts
22
22
23
-
### Runtime
24
-
The `FireflyRuntime` instance is the backbone of a Squide application. Never instantiate directly - use `initializeFirefly()`.
23
+
-**Runtime**: The `FireflyRuntime` instance is the backbone of a Squide application. Never instantiate directly — use `initializeFirefly()`, which wires up plugins, logging, and the module lifecycle.
24
+
-**Modular Registration**: Modules register routes, navigation items, and MSW handlers via a registration function, assembled by the host at bootstrapping.
25
+
-**Public vs Protected Routes**: Routes default to `protected` (rendered under `ProtectedRoutes`). Use `registerPublicRoute()` for public routes. Protected routes fetch both public and protected global data.
26
+
-**Deferred Registrations**: Navigation items dependent on remote data or feature flags use two-phase registration — return a function from the registration to defer items to a second phase.
25
27
26
-
### Modular Registration
27
-
Modules register routes, navigation items, and MSW handlers via a registration function. Each module contributes its own configuration, assembled by the host at bootstrapping.
28
-
29
-
### Public vs Protected Routes
30
-
- Routes default to `protected` (rendered under `ProtectedRoutes` placeholder)
31
-
- Use `registerPublicRoute()` for public routes (rendered under `PublicRoutes` placeholder)
32
-
- Public routes only fetch public global data; protected routes fetch both public and protected data
33
-
34
-
### Deferred Registrations
35
-
Navigation items dependent on remote data or feature flags use two-phase registration:
36
-
1. First phase: Register static routes and navigation items
37
-
2. Second phase: Return a function from registration to defer navigation items
38
-
39
-
## Quick Reference
28
+
## Key Patterns
40
29
41
30
### Host Application Setup
42
31
@@ -80,15 +69,15 @@ function BootstrappingRoute() {
// Execute deferred registrations in BootstrappingRoute
202
+
// Execute deferred registrations in BootstrappingRoute.
203
+
// Wrap in useMemo — without it, a new object reference each render re-triggers all deferred registrations.
212
204
const data =useMemo(() => ({ userData }), [userData]);
213
205
useDeferredRegistrations(data);
214
206
```
215
207
208
+
**See also:** For error boundaries, testing patterns, and advanced navigation (multi-level, dynamic segments, active state), see `references/patterns.md`. For MSW setup, LaunchDarkly, Honeycomb, i18next, and Storybook integrations, see `references/integrations.md`. For plugin authoring and the full runtime API, see `references/runtime-api.md`.
209
+
216
210
## Reference Guide
217
211
218
212
For detailed API documentation beyond the patterns above, consult the reference files:
@@ -223,11 +217,11 @@ For detailed API documentation beyond the patterns above, consult the reference
223
217
-**`references/patterns.md`** — Local module setup, error boundaries, MSW request handlers, and other common patterns
Before updating this skill, read [ODR-0008](../../agent-docs/odr/0008-skill-body-reference-split.md) which explains the body/reference split. The SKILL.md body must stay under ~250 lines. New API content goes in the appropriate `references/` file — only add to the body if it is a critical multi-file pattern needed in nearly every conversation.
222
+
> **Skill maintainers:**Before updating this skill, read [ODR-0008](../../agent-docs/odr/0008-skill-body-reference-split.md). The body must stay under ~250 lines; new API content goes in the appropriate `references/` file.
229
223
230
-
When updating this skill from the official documentation, verify these common pitfalls:
224
+
When working with Squide APIs, watch for these common mistakes:
231
225
232
226
1.**`useRenderedNavigationItems` function signatures**: Must always be `(item, key, index, level)` and `(elements, key, index, level)`. These do NOT accept custom context parameters. If external values are needed (route params, location, etc.), use closures or React hooks - never suggest adding parameters to these functions.
Merge multiple deferred registration functions into a single function. Useful when a module's registration function is split across multiple files or needs to combine results from several setup steps.
> For component API signatures (`FireflyDecorator`, `withFireflyDecorator`, `withFeatureFlagsOverrideDecorator`, `initializeFireflyForStorybook`), see `references/components.md`.
0 commit comments