@skilly-hand/skilly-hand 0.10.0 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/README.md +0 -6
- package/catalog/README.md +1 -0
- package/catalog/catalog-index.json +1 -0
- package/catalog/skills/react-guidelines/SKILL.md +188 -0
- package/catalog/skills/react-guidelines/agents/component-creator.md +88 -0
- package/catalog/skills/react-guidelines/agents/react-tester.md +111 -0
- package/catalog/skills/react-guidelines/manifest.json +41 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,51 @@ All notable changes to this project are documented in this file.
|
|
|
16
16
|
### Removed
|
|
17
17
|
- _None._
|
|
18
18
|
|
|
19
|
+
## [0.10.3] - 2026-04-04
|
|
20
|
+
[View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.10.3)
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- _None._
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- _None._
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- _None._
|
|
30
|
+
|
|
31
|
+
### Removed
|
|
32
|
+
- _None._
|
|
33
|
+
|
|
34
|
+
## [0.10.2] - 2026-04-04
|
|
35
|
+
[View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.10.2)
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
- _None._
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- _None._
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
- _None._
|
|
45
|
+
|
|
46
|
+
### Removed
|
|
47
|
+
- _None._
|
|
48
|
+
|
|
49
|
+
## [0.10.1] - 2026-04-04
|
|
50
|
+
[View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.10.1)
|
|
51
|
+
|
|
52
|
+
### Added
|
|
53
|
+
- _None._
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
- Removed the `AI Integrated Structures` subsection from `README.md` to keep assistant compatibility docs focused on current install targets.
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
- _None._
|
|
60
|
+
|
|
61
|
+
### Removed
|
|
62
|
+
- _None._
|
|
63
|
+
|
|
19
64
|
## [0.10.0] - 2026-04-04
|
|
20
65
|
[View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.10.0)
|
|
21
66
|
|
package/README.md
CHANGED
|
@@ -121,12 +121,6 @@ Skills are installed into `.skilly-hand/` with the correct format for each tool:
|
|
|
121
121
|
| Windsurf | `.windsurf/skills/`, `AGENTS.md` |
|
|
122
122
|
| TRAE | `.trae/skills/`, `AGENTS.md` |
|
|
123
123
|
|
|
124
|
-
### AI Integrated Structures
|
|
125
|
-
|
|
126
|
-
- Antigravity: rules at `~/.gemini/GEMINI.md` (global) and workspace `.agents/rules/` (with `.agent/rules/` backward support); skills at `.agents/skills/` or `~/.gemini/antigravity/skills/`; MCP config at `~/.gemini/antigravity/mcp_config.json`.
|
|
127
|
-
- Windsurf: AGENTS-based directory scoping via `AGENTS.md`, rules in `.windsurf/rules/`, skills in `.windsurf/skills/` (plus `.agents/skills/` compatibility), MCP config at `~/.codeium/mcp_config.json`.
|
|
128
|
-
- TRAE: project rules in `.trae/rules/` with `AGENTS.md` support, skills in `.trae/skills/` (optional `.agents/skills/` compatibility toggle), MCP project config via `.trae/mcp.json` and manual/marketplace management in-app.
|
|
129
|
-
|
|
130
124
|
---
|
|
131
125
|
|
|
132
126
|
## Project Structure
|
package/catalog/README.md
CHANGED
|
@@ -10,6 +10,7 @@ Published portable skills consumed by the `skilly-hand` CLI.
|
|
|
10
10
|
| `figma-mcp-0to1` | Guide users from Figma MCP installation and authentication through first canvas creation, with function-level tool coverage and operational recovery patterns. | figma, mcp, workflow, design | all |
|
|
11
11
|
| `frontend-design` | Project-aware frontend design skill that detects the existing tech stack, UI libraries, CSS variables, and design tokens before proposing any UI work. | frontend, design, workflow, ui | all |
|
|
12
12
|
| `life-guard` | Review code, decisions, and artifacts through a multi-perspective committee and a domain expert safety guard, then synthesize a structured verdict. | core, workflow, review, quality | all |
|
|
13
|
+
| `react-guidelines` | Guide React code generation and review using latest stable React verification and modern framework best practices. | react, frontend, workflow, best-practices | all |
|
|
13
14
|
| `skill-creator` | Create and standardize AI skills with reusable structure, metadata rules, and templates. | core, workflow, authoring | all |
|
|
14
15
|
| `spec-driven-development` | Plan, execute, and verify multi-step work through versioned specs with small, testable tasks. | core, workflow, planning | all |
|
|
15
16
|
| `test-driven-development` | Guide implementation using the RED → GREEN → REFACTOR TDD cycle: write a failing test first, write the minimum code to pass, then refactor while tests stay green. | testing, workflow, quality, core | all |
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# React Guidelines
|
|
2
|
+
|
|
3
|
+
## When to Use
|
|
4
|
+
|
|
5
|
+
Use this skill when:
|
|
6
|
+
|
|
7
|
+
- You are generating React components, hooks, or supporting modules.
|
|
8
|
+
- You are refactoring existing React code to current framework patterns.
|
|
9
|
+
- You are reviewing React code quality and framework-alignment in a React workspace.
|
|
10
|
+
|
|
11
|
+
Do not use this skill for:
|
|
12
|
+
|
|
13
|
+
- Non-React frontend stacks (Angular, Vue, Svelte, or framework-agnostic UI tasks).
|
|
14
|
+
- Deep architecture decisions outside code artifact generation/review scope.
|
|
15
|
+
- Pure test-strategy design unrelated to React implementation details.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Routing Map
|
|
20
|
+
|
|
21
|
+
Choose sub-agents by intent:
|
|
22
|
+
|
|
23
|
+
| Intent | Sub-agent |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| Create, refactor, or review React components | [agents/component-creator.md](agents/component-creator.md) |
|
|
26
|
+
| Write or review React tests | [agents/react-tester.md](agents/react-tester.md) |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Standard Execution Sequence
|
|
31
|
+
|
|
32
|
+
1. Run latest stable React preflight checks.
|
|
33
|
+
2. Route to the smallest matching sub-agent by task intent.
|
|
34
|
+
3. Apply the sub-agent checklist before finalizing generated code or review output.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Critical Patterns
|
|
39
|
+
|
|
40
|
+
### Pattern 1: Latest Stable React Preflight (Mandatory)
|
|
41
|
+
|
|
42
|
+
Before generating or changing React code:
|
|
43
|
+
|
|
44
|
+
1. Check the latest stable React release:
|
|
45
|
+
`npm view react version`
|
|
46
|
+
2. Check the project's installed or declared React version:
|
|
47
|
+
`npm ls react` or inspect `package.json`.
|
|
48
|
+
3. Verify release alignment using official version documentation:
|
|
49
|
+
`https://react.dev/versions`
|
|
50
|
+
4. If versions diverge, generate content for latest stable APIs and call out upgrade steps.
|
|
51
|
+
|
|
52
|
+
Never hardcode a specific React major/minor as the default baseline.
|
|
53
|
+
|
|
54
|
+
### Pattern 2: Modern React Defaults for New Code
|
|
55
|
+
|
|
56
|
+
Use these defaults unless project constraints explicitly prevent them:
|
|
57
|
+
|
|
58
|
+
| Area | Default |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| Component model | Function components with pure render logic |
|
|
61
|
+
| State + derivation | `useState`/`useReducer` + derived values without redundant state |
|
|
62
|
+
| Reuse | Composition and custom hooks over inheritance |
|
|
63
|
+
| Boundaries | Apply `'use client'` or `'use server'` only where required |
|
|
64
|
+
| Rendering patterns | Suspense-ready async boundaries where applicable |
|
|
65
|
+
| Debug/profiling | StrictMode-safe behavior and optional Profiler instrumentation |
|
|
66
|
+
|
|
67
|
+
### Pattern 3: Hook and Purity Guardrails
|
|
68
|
+
|
|
69
|
+
- Follow Rules of Hooks consistently.
|
|
70
|
+
- Keep Components and Hooks pure.
|
|
71
|
+
- Avoid unnecessary Effects; prefer deriving values in render when possible.
|
|
72
|
+
- Keep state minimal and colocated near usage.
|
|
73
|
+
- For component-specific work, apply [agents/component-creator.md](agents/component-creator.md).
|
|
74
|
+
- For testing-specific work, apply [agents/react-tester.md](agents/react-tester.md).
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Decision Tree
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
Is this a React project (react dependency present)?
|
|
82
|
+
NO -> Do not apply this skill
|
|
83
|
+
YES -> Continue
|
|
84
|
+
|
|
85
|
+
Is this a create/generate task?
|
|
86
|
+
YES -> Run latest stable preflight, then generate with modern defaults
|
|
87
|
+
NO -> Continue
|
|
88
|
+
|
|
89
|
+
Is this a refactor task?
|
|
90
|
+
YES -> Preserve behavior, migrate incrementally to modern React patterns
|
|
91
|
+
NO -> Continue
|
|
92
|
+
|
|
93
|
+
Is this a review task?
|
|
94
|
+
YES -> Validate latest-stable alignment + hook/purity checklist
|
|
95
|
+
NO -> Apply the minimal React guidance needed for the request
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Code Examples
|
|
101
|
+
|
|
102
|
+
### Example 1: Pure Function Component with Derived State
|
|
103
|
+
|
|
104
|
+
```tsx
|
|
105
|
+
import { useMemo, useState } from "react";
|
|
106
|
+
|
|
107
|
+
type CounterBadgeProps = {
|
|
108
|
+
label: string;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export function CounterBadge({ label }: CounterBadgeProps) {
|
|
112
|
+
const [count, setCount] = useState(0);
|
|
113
|
+
const isNonZero = useMemo(() => count > 0, [count]);
|
|
114
|
+
|
|
115
|
+
return (
|
|
116
|
+
<button type="button" onClick={() => setCount((value) => value + 1)}>
|
|
117
|
+
{label}: {count} {isNonZero ? "active" : "idle"}
|
|
118
|
+
</button>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Example 2: Server/Client Boundary Split
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
// app/user-panel.tsx
|
|
127
|
+
import { UserPanelClient } from "./user-panel-client";
|
|
128
|
+
|
|
129
|
+
export default async function UserPanel() {
|
|
130
|
+
const user = await fetch("/api/user").then((r) => r.json());
|
|
131
|
+
return <UserPanelClient name={user.name} />;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// app/user-panel-client.tsx
|
|
135
|
+
"use client";
|
|
136
|
+
|
|
137
|
+
export function UserPanelClient({ name }: { name: string }) {
|
|
138
|
+
return <p>Hello, {name}</p>;
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Review Checklist
|
|
145
|
+
|
|
146
|
+
- Latest stable React preflight was completed before code generation/refactor.
|
|
147
|
+
- New artifacts use function-first, composition-first patterns.
|
|
148
|
+
- Hooks follow call-order rules and purity constraints.
|
|
149
|
+
- `'use client'`/`'use server'` directives are only used where boundary semantics require them.
|
|
150
|
+
- Suspense/StrictMode/Profiler guidance is considered when relevant to behavior.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Commands
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Latest stable React version
|
|
158
|
+
npm view react version
|
|
159
|
+
|
|
160
|
+
# Workspace React version
|
|
161
|
+
npm ls react
|
|
162
|
+
|
|
163
|
+
# Build catalog index
|
|
164
|
+
npm run build
|
|
165
|
+
|
|
166
|
+
# Sync catalog README table
|
|
167
|
+
npm run catalog:sync
|
|
168
|
+
|
|
169
|
+
# Validate catalog manifests and files
|
|
170
|
+
npm run catalog:check
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Resources
|
|
176
|
+
|
|
177
|
+
- React reference: https://react.dev/reference/react
|
|
178
|
+
- React Hooks reference: https://react.dev/reference/react/hooks
|
|
179
|
+
- React Components reference: https://react.dev/reference/react/components
|
|
180
|
+
- React APIs reference: https://react.dev/reference/react/apis
|
|
181
|
+
- React Server Components directives: https://react.dev/reference/rsc/directives
|
|
182
|
+
- React versions: https://react.dev/versions
|
|
183
|
+
- Rules of Hooks: https://react.dev/reference/rules/rules-of-hooks
|
|
184
|
+
- Components and Hooks must be pure: https://react.dev/reference/rules/components-and-hooks-must-be-pure
|
|
185
|
+
- Suspense: https://react.dev/reference/react/Suspense
|
|
186
|
+
- StrictMode: https://react.dev/reference/react/StrictMode
|
|
187
|
+
- Fragment: https://react.dev/reference/react/Fragment
|
|
188
|
+
- Profiler: https://react.dev/reference/react/Profiler
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# React Component Creator
|
|
2
|
+
|
|
3
|
+
## When to Use
|
|
4
|
+
|
|
5
|
+
Use this sub-agent when:
|
|
6
|
+
|
|
7
|
+
- Creating a new React component.
|
|
8
|
+
- Refactoring an existing React component to modern patterns.
|
|
9
|
+
- Reviewing component implementation details and composition patterns.
|
|
10
|
+
|
|
11
|
+
Do not use this sub-agent for:
|
|
12
|
+
|
|
13
|
+
- Framework-agnostic architecture decisions.
|
|
14
|
+
- Test-only tasks (use `react-tester`).
|
|
15
|
+
- Non-React frameworks.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Core Rules
|
|
20
|
+
|
|
21
|
+
- Prefer function components and composition-first design.
|
|
22
|
+
- Keep render logic pure and deterministic.
|
|
23
|
+
- Keep state minimal; derive values from props/state instead of duplicating state.
|
|
24
|
+
- Use custom hooks to encapsulate reusable stateful behavior.
|
|
25
|
+
- Follow Rules of Hooks in all code paths.
|
|
26
|
+
- Use `'use client'` only for interactive/client-only modules; keep server components free of client-only hooks.
|
|
27
|
+
- For interactive elements, include keyboard and ARIA semantics.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Template Snippets
|
|
32
|
+
|
|
33
|
+
### Minimal Pure Function Component
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
type BadgeProps = {
|
|
37
|
+
label: string;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export function Badge({ label }: BadgeProps) {
|
|
41
|
+
return <span>{label}</span>;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Composition + Custom Hook
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
import { useState } from "react";
|
|
49
|
+
|
|
50
|
+
function useToggle(initial = false) {
|
|
51
|
+
const [on, setOn] = useState(initial);
|
|
52
|
+
return { on, toggle: () => setOn((value) => !value) };
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function ToggleButton() {
|
|
56
|
+
const { on, toggle } = useToggle();
|
|
57
|
+
return (
|
|
58
|
+
<button type="button" aria-pressed={on} onClick={toggle}>
|
|
59
|
+
{on ? "On" : "Off"}
|
|
60
|
+
</button>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Suspense Boundary
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import { Suspense } from "react";
|
|
69
|
+
|
|
70
|
+
export function ProfileSection() {
|
|
71
|
+
return (
|
|
72
|
+
<Suspense fallback={<p>Loading profile...</p>}>
|
|
73
|
+
<ProfileContent />
|
|
74
|
+
</Suspense>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Review Checklist
|
|
82
|
+
|
|
83
|
+
- Component is function-based and render-pure.
|
|
84
|
+
- State is minimal and colocated; derived values are not redundantly stored.
|
|
85
|
+
- Hook calls follow Rules of Hooks.
|
|
86
|
+
- Composition is preferred over inheritance or over-abstraction.
|
|
87
|
+
- Client/server boundary directives are correctly scoped.
|
|
88
|
+
- Accessibility semantics are present for interactive controls.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# React Tester
|
|
2
|
+
|
|
3
|
+
## When to Use
|
|
4
|
+
|
|
5
|
+
Use this sub-agent when:
|
|
6
|
+
|
|
7
|
+
- Adding or updating React component or hook tests.
|
|
8
|
+
- Reviewing React tests for correctness and modern usage.
|
|
9
|
+
- Choosing test patterns for async rendering, Suspense, and transitions.
|
|
10
|
+
|
|
11
|
+
Do not use this sub-agent for:
|
|
12
|
+
|
|
13
|
+
- Component implementation guidance without tests (use `component-creator`).
|
|
14
|
+
- Framework-agnostic testing standards not tied to React behavior.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Runner Policy
|
|
19
|
+
|
|
20
|
+
- Default: Use the repository's existing configured runner and testing library.
|
|
21
|
+
- Do not introduce test-runner migration inside unrelated feature tasks.
|
|
22
|
+
- Keep assertions focused on user-visible behavior and public contracts.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Core Testing Patterns
|
|
27
|
+
|
|
28
|
+
- Ensure all stateful updates and async UI flows are wrapped in React-safe test flows (`act` semantics are respected by the testing setup).
|
|
29
|
+
- Prefer user-observable assertions over implementation details.
|
|
30
|
+
- Test Suspense fallbacks and resolved UI states when async boundaries exist.
|
|
31
|
+
- Test transitions and deferred updates based on visible outcomes.
|
|
32
|
+
- Keep mocks narrow and explicit at integration boundaries.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Command Matrix
|
|
37
|
+
|
|
38
|
+
| Scenario | Preferred Command | Fallback |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| Run all tests | Project test command (for example `npm test`) | Workspace equivalent |
|
|
41
|
+
| Watch mode | Project watch command | Workspace equivalent |
|
|
42
|
+
| Coverage | Project coverage command | Workspace equivalent |
|
|
43
|
+
| Single suite/file | Project targeted test command | Workspace equivalent |
|
|
44
|
+
|
|
45
|
+
Always align commands with the workspace's existing test setup.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Decision Tree
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Is this a component behavior test?
|
|
53
|
+
YES -> Assert rendered output, interactions, and accessibility semantics
|
|
54
|
+
NO -> Continue
|
|
55
|
+
|
|
56
|
+
Is this a custom hook test?
|
|
57
|
+
YES -> Test observable state transitions and returned contracts
|
|
58
|
+
NO -> Continue
|
|
59
|
+
|
|
60
|
+
Is behavior async or Suspense-based?
|
|
61
|
+
YES -> Assert fallback state and resolved state deterministically
|
|
62
|
+
NO -> Continue
|
|
63
|
+
|
|
64
|
+
Does behavior involve transitions/deferred rendering?
|
|
65
|
+
YES -> Assert user-visible final state, not internal scheduling details
|
|
66
|
+
NO -> Use direct synchronous assertions
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Test Snippets
|
|
72
|
+
|
|
73
|
+
### Component Interaction Test
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { render, screen } from "@testing-library/react";
|
|
77
|
+
import userEvent from "@testing-library/user-event";
|
|
78
|
+
import { ToggleButton } from "./toggle-button";
|
|
79
|
+
|
|
80
|
+
it("toggles pressed state", async () => {
|
|
81
|
+
const user = userEvent.setup();
|
|
82
|
+
render(<ToggleButton />);
|
|
83
|
+
|
|
84
|
+
const button = screen.getByRole("button", { name: "Off" });
|
|
85
|
+
await user.click(button);
|
|
86
|
+
|
|
87
|
+
expect(screen.getByRole("button", { name: "On" })).toHaveAttribute("aria-pressed", "true");
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Suspense Fallback Test
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
import { render, screen } from "@testing-library/react";
|
|
95
|
+
import { ProfileSection } from "./profile-section";
|
|
96
|
+
|
|
97
|
+
it("shows fallback before async content resolves", () => {
|
|
98
|
+
render(<ProfileSection />);
|
|
99
|
+
expect(screen.getByText("Loading profile...")).toBeInTheDocument();
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Review Checklist
|
|
106
|
+
|
|
107
|
+
- Tests respect existing runner/library configuration.
|
|
108
|
+
- `act`-safe patterns are preserved for stateful and async updates.
|
|
109
|
+
- Assertions validate user-visible behavior and contracts.
|
|
110
|
+
- Suspense/transition scenarios are tested where relevant.
|
|
111
|
+
- Mocks are limited to necessary boundaries.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "react-guidelines",
|
|
3
|
+
"title": "React Guidelines",
|
|
4
|
+
"description": "Guide React code generation and review using latest stable React verification and modern framework best practices.",
|
|
5
|
+
"portable": true,
|
|
6
|
+
"tags": ["react", "frontend", "workflow", "best-practices"],
|
|
7
|
+
"detectors": ["react"],
|
|
8
|
+
"detectionTriggers": ["auto"],
|
|
9
|
+
"installsFor": ["all"],
|
|
10
|
+
"agentSupport": ["codex", "claude", "cursor", "gemini", "copilot", "antigravity", "windsurf", "trae"],
|
|
11
|
+
"skillMetadata": {
|
|
12
|
+
"author": "skilly-hand",
|
|
13
|
+
"last-edit": "2026-04-04",
|
|
14
|
+
"license": "Apache-2.0",
|
|
15
|
+
"version": "1.0.0",
|
|
16
|
+
"changelog": "Added new react-guidelines skill with component and testing sub-agent routing; improves React-specific generation and review consistency with latest-stable preflight checks; affects portable catalog skill discovery and React workflow guidance",
|
|
17
|
+
"auto-invoke": "Generating, reviewing, or refactoring React code artifacts in React projects",
|
|
18
|
+
"allowed-modes": [
|
|
19
|
+
"component-creator",
|
|
20
|
+
"react-tester"
|
|
21
|
+
],
|
|
22
|
+
"allowed-tools": [
|
|
23
|
+
"Read",
|
|
24
|
+
"Edit",
|
|
25
|
+
"Write",
|
|
26
|
+
"Glob",
|
|
27
|
+
"Grep",
|
|
28
|
+
"Bash",
|
|
29
|
+
"WebFetch",
|
|
30
|
+
"WebSearch",
|
|
31
|
+
"Task",
|
|
32
|
+
"SubAgent"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
{ "path": "SKILL.md", "kind": "instruction" },
|
|
37
|
+
{ "path": "agents/component-creator.md", "kind": "instruction" },
|
|
38
|
+
{ "path": "agents/react-tester.md", "kind": "instruction" }
|
|
39
|
+
],
|
|
40
|
+
"dependencies": []
|
|
41
|
+
}
|