@gallopsystems/agent-skills 1.0.0
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/README.md +137 -0
- package/package.json +26 -0
- package/plugins/doctl/.claude-plugin/plugin.json +8 -0
- package/plugins/doctl/skills/doctl/SKILL.md +93 -0
- package/plugins/kysely-postgres/.claude-plugin/plugin.json +8 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/SKILL.md +1101 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/aggregations.ts +167 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/ctes.ts +165 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/expressions.ts +272 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/joins.ts +206 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/json-arrays.ts +398 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/mutations.ts +199 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/orderby-pagination.ts +117 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/relations.ts +176 -0
- package/plugins/kysely-postgres/skills/kysely-postgres/references/select-where.ts +146 -0
- package/plugins/linear/.claude-plugin/plugin.json +8 -0
- package/plugins/linear/skills/linear/SKILL.md +1040 -0
- package/plugins/linear/skills/linear/bin/linear.mjs +1228 -0
- package/plugins/linear/skills/linear/tech-stack.md +273 -0
- package/plugins/nitro-testing/.claude-plugin/plugin.json +8 -0
- package/plugins/nitro-testing/skills/nitro-testing/SKILL.md +497 -0
- package/plugins/nitro-testing/skills/nitro-testing/async-testing.md +270 -0
- package/plugins/nitro-testing/skills/nitro-testing/ci-setup.md +226 -0
- package/plugins/nitro-testing/skills/nitro-testing/examples/global-setup.ts +90 -0
- package/plugins/nitro-testing/skills/nitro-testing/examples/handler.test.ts +167 -0
- package/plugins/nitro-testing/skills/nitro-testing/examples/setup.ts +29 -0
- package/plugins/nitro-testing/skills/nitro-testing/examples/test-utils-index.ts +297 -0
- package/plugins/nitro-testing/skills/nitro-testing/examples/vitest.config.ts +42 -0
- package/plugins/nitro-testing/skills/nitro-testing/factories.md +278 -0
- package/plugins/nitro-testing/skills/nitro-testing/frontend-testing.md +512 -0
- package/plugins/nitro-testing/skills/nitro-testing/test-utils.md +262 -0
- package/plugins/nitro-testing/skills/nitro-testing/transaction-rollback.md +183 -0
- package/plugins/nitro-testing/skills/nitro-testing/vitest-config.md +236 -0
- package/plugins/nuxt-nitro-api/.claude-plugin/plugin.json +8 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/SKILL.md +260 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/auth-patterns.md +228 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/composables-utils.md +174 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/deep-linking.md +190 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/examples/auth-middleware.ts +32 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/examples/auth-utils.ts +51 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/examples/deep-link-page.vue +61 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/examples/service-util.ts +63 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/examples/sse-endpoint.ts +59 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/examples/validation-endpoint.ts +38 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/fetch-patterns.md +178 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/nitro-tasks.md +243 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/page-structure.md +162 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/server-services.md +238 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/sse.md +221 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/ssr-client.md +166 -0
- package/plugins/nuxt-nitro-api/skills/nuxt-nitro-api/validation.md +131 -0
- package/scripts/link-skills.mjs +252 -0
package/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Claude Skills
|
|
2
|
+
|
|
3
|
+
A collection of Claude Code skills.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
First, add the marketplace:
|
|
8
|
+
```
|
|
9
|
+
/plugin marketplace add gallop-systems/claude-skills
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Then install the skills you want:
|
|
13
|
+
```
|
|
14
|
+
/plugin install kysely-postgres@gallop-systems-claude-skills
|
|
15
|
+
/plugin install nuxt-nitro-api@gallop-systems-claude-skills
|
|
16
|
+
/plugin install nitro-testing@gallop-systems-claude-skills
|
|
17
|
+
/plugin install linear@gallop-systems-claude-skills
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Updating
|
|
21
|
+
|
|
22
|
+
Update a specific skill to the latest version:
|
|
23
|
+
```
|
|
24
|
+
/plugin update kysely-postgres@gallop-systems-claude-skills
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Auto-updates:** Third-party marketplaces don't auto-update by default. To enable:
|
|
28
|
+
1. Run `/plugin` and select **Marketplaces**
|
|
29
|
+
2. Choose `gallop-systems-claude-skills`
|
|
30
|
+
3. Select **Enable auto-update**
|
|
31
|
+
|
|
32
|
+
## Install as an npm dependency (per-repo)
|
|
33
|
+
|
|
34
|
+
For JS/TS repos, you can pin the skills to a version via your lockfile instead of
|
|
35
|
+
the marketplace. Add the package as a dev dependency:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
yarn add -D @gallopsystems/agent-skills
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
On install, a `postinstall` script symlinks the package's content into the
|
|
42
|
+
project's `.claude/` directory:
|
|
43
|
+
|
|
44
|
+
- **skills** — each directory containing a `SKILL.md` → `.claude/skills/<name>`
|
|
45
|
+
- **commands** — each `.md` file under any `commands/` directory → `.claude/commands/<name>.md`
|
|
46
|
+
|
|
47
|
+
Updating is just a version bump:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
yarn up @gallopsystems/agent-skills
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
These links are generated artifacts (they point into `node_modules` and are
|
|
54
|
+
recreated on every install), so ignore them in `.gitignore`:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
.claude/skills
|
|
58
|
+
.claude/commands
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Notes:
|
|
62
|
+
- The script never clobbers a real `.claude/skills/<name>` or `.claude/commands/<name>`
|
|
63
|
+
you authored, and only removes symlinks it created. Run `yarn unlink-skills` to
|
|
64
|
+
remove all managed links.
|
|
65
|
+
- Works out of the box with Yarn (Classic, or Berry with `nodeLinker: node-modules`)
|
|
66
|
+
and npm. **pnpm** (v10+) blocks dependency build scripts by default — add the
|
|
67
|
+
package to `pnpm.onlyBuiltDependencies` for the `postinstall` to run.
|
|
68
|
+
- Yarn Berry with the default **PnP** linker is not supported (no `node_modules`
|
|
69
|
+
folder to link from); use `nodeLinker: node-modules`.
|
|
70
|
+
|
|
71
|
+
## Available Skills
|
|
72
|
+
|
|
73
|
+
### kysely-postgres
|
|
74
|
+
|
|
75
|
+
Type-safe Kysely query patterns for PostgreSQL. Automatically activates when working in Node.js/TypeScript projects with Kysely.
|
|
76
|
+
|
|
77
|
+
Covers:
|
|
78
|
+
- Query patterns (SELECT, JOIN, WHERE, aggregations)
|
|
79
|
+
- Migrations and recommended column types
|
|
80
|
+
- JSON/JSONB and array handling
|
|
81
|
+
- String concatenation
|
|
82
|
+
- Common pitfalls to avoid
|
|
83
|
+
|
|
84
|
+
### nuxt-nitro-api
|
|
85
|
+
|
|
86
|
+
Nuxt 3 / Nitro API patterns for building type-safe full-stack applications. Automatically activates when working in Nuxt 3 projects.
|
|
87
|
+
|
|
88
|
+
Covers:
|
|
89
|
+
- Zod validation with h3 (Standard Schema support)
|
|
90
|
+
- useFetch vs $fetch vs useAsyncData
|
|
91
|
+
- Type inference (don't add manual types!)
|
|
92
|
+
- nuxt-auth-utils (OAuth, WebAuthn, middleware)
|
|
93
|
+
- Page structure (keep pages thin)
|
|
94
|
+
- Composables vs utils
|
|
95
|
+
- SSR + localStorage patterns
|
|
96
|
+
- Deep linking (URL params sync)
|
|
97
|
+
- Nitro tasks and job queues
|
|
98
|
+
- Server-Sent Events (SSE)
|
|
99
|
+
- Third-party service integrations
|
|
100
|
+
|
|
101
|
+
### nitro-testing
|
|
102
|
+
|
|
103
|
+
Test Nitro API handlers with real PostgreSQL using transaction rollback isolation. Each test runs in a transaction that auto-rolls back for complete isolation without cleanup overhead.
|
|
104
|
+
|
|
105
|
+
Covers:
|
|
106
|
+
- Transaction rollback pattern (fast, isolated, real SQL)
|
|
107
|
+
- Vitest custom fixtures (`factories`, `db`)
|
|
108
|
+
- Mock event helpers (`mockGet`, `mockPost`, `mockPatch`, `mockDelete`)
|
|
109
|
+
- Factory pattern for test data creation
|
|
110
|
+
- Global stubs for Nuxt auto-imports
|
|
111
|
+
- Async/automation testing utilities
|
|
112
|
+
- CI/CD setup with GitHub Actions and PostgreSQL
|
|
113
|
+
|
|
114
|
+
## Adding New Skills
|
|
115
|
+
|
|
116
|
+
1. Create a new plugin directory: `plugins/my-skill/`
|
|
117
|
+
2. Add `plugins/my-skill/.claude-plugin/plugin.json`:
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"name": "my-skill",
|
|
121
|
+
"description": "Short description",
|
|
122
|
+
"version": "1.0.0",
|
|
123
|
+
"author": { "name": "yeedle" }
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
3. Add `plugins/my-skill/skills/my-skill/SKILL.md` with frontmatter:
|
|
127
|
+
```yaml
|
|
128
|
+
---
|
|
129
|
+
name: my-skill
|
|
130
|
+
description: When to use this skill...
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
# Skill content here
|
|
134
|
+
```
|
|
135
|
+
4. Add any reference files alongside `SKILL.md`
|
|
136
|
+
5. Register the plugin in `.claude-plugin/marketplace.json`
|
|
137
|
+
6. Commit and push
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gallopsystems/agent-skills",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Gallop Systems Claude Code skills, symlinked into .claude/skills on install.",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/gallop-systems/claude-skills.git"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"plugins",
|
|
12
|
+
"scripts/link-skills.mjs",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"postinstall": "node scripts/link-skills.mjs",
|
|
20
|
+
"link-skills": "node scripts/link-skills.mjs",
|
|
21
|
+
"unlink-skills": "node scripts/link-skills.mjs --unlink"
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=16"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doctl
|
|
3
|
+
description: Manage DigitalOcean App Platform deployments with doctl CLI. Covers auth contexts, listing apps, monitoring deployments, and checking logs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DigitalOcean doctl CLI Patterns
|
|
7
|
+
|
|
8
|
+
This skill provides patterns for managing DigitalOcean resources via the `doctl` CLI, focused on App Platform.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
Use this skill when:
|
|
13
|
+
- Deploying or monitoring apps on DigitalOcean App Platform
|
|
14
|
+
- Switching between DigitalOcean auth contexts
|
|
15
|
+
- Checking deployment status or logs
|
|
16
|
+
- Listing apps and their deployments
|
|
17
|
+
|
|
18
|
+
## Auth Contexts
|
|
19
|
+
|
|
20
|
+
doctl supports named auth contexts for managing multiple accounts/teams.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Switch to a named context
|
|
24
|
+
doctl auth switch --context <context-name>
|
|
25
|
+
|
|
26
|
+
# List available contexts
|
|
27
|
+
doctl auth list
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Always switch context before running commands against a specific account.
|
|
31
|
+
|
|
32
|
+
## App Platform
|
|
33
|
+
|
|
34
|
+
### Listing Apps
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# List all apps (shows ID, name, ingress URL, deployment status)
|
|
38
|
+
doctl apps list
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Key columns: `ID`, `Spec Name`, `Default Ingress`, `Active Deployment ID`, `In Progress Deployment ID`.
|
|
42
|
+
|
|
43
|
+
The app ID is a UUID — you'll need it for all subsequent commands.
|
|
44
|
+
|
|
45
|
+
### Monitoring Deployments
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# List recent deployments for an app
|
|
49
|
+
doctl apps list-deployments <app-id>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Key columns: `ID`, `Cause`, `Progress` (e.g. `6/6`), `Phase`.
|
|
53
|
+
|
|
54
|
+
Deployment phases:
|
|
55
|
+
- `PENDING_BUILD` — queued
|
|
56
|
+
- `BUILDING` — build in progress
|
|
57
|
+
- `DEPLOYING` — deploying built artifacts
|
|
58
|
+
- `ACTIVE` — successfully deployed and serving traffic
|
|
59
|
+
- `SUPERSEDED` — replaced by a newer deployment
|
|
60
|
+
- `ERROR` — deployment failed
|
|
61
|
+
|
|
62
|
+
The `Cause` column shows which commit triggered the deploy.
|
|
63
|
+
|
|
64
|
+
### Deployment Logs
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Get build logs for a specific deployment
|
|
68
|
+
doctl apps logs <app-id> --deployment <deployment-id> --type build
|
|
69
|
+
|
|
70
|
+
# Get runtime logs
|
|
71
|
+
doctl apps logs <app-id> --type run
|
|
72
|
+
|
|
73
|
+
# Follow logs in real-time
|
|
74
|
+
doctl apps logs <app-id> --type run --follow
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Log types: `build`, `deploy`, `run`, `run_restarted`.
|
|
78
|
+
|
|
79
|
+
### Getting App Details
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Get full app spec (useful for seeing components, env vars, routes)
|
|
83
|
+
doctl apps get <app-id>
|
|
84
|
+
|
|
85
|
+
# Get app spec as yaml
|
|
86
|
+
doctl apps spec get <app-id>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Common Gotchas
|
|
90
|
+
|
|
91
|
+
- **Column names in `--format`**: doctl's `--format` flag is picky about column names. If you get `unknown column` errors, run the command without `--format` first to see available columns, then filter with standard tools like `head`.
|
|
92
|
+
- **Deployment auto-trigger**: Apps connected to GitHub auto-deploy on push to the configured branch. No manual deploy needed unless auto-deploy is off.
|
|
93
|
+
- **App ID vs Name**: Most commands require the app UUID, not the human-readable name. Get it from `doctl apps list`.
|