@kennethsolomon/shipkit 3.18.0 → 3.19.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/package.json +1 -1
- package/skills/sk:laravel-deploy/SKILL.md +112 -0
- package/skills/sk:laravel-init/SKILL.md +18 -0
- package/skills/sk:setup-claude/SKILL.md +45 -0
- package/skills/sk:setup-claude/templates/.claude/agents/debugger.md +7 -0
- package/skills/sk:setup-claude/templates/.claude/agents/qa-engineer.md +8 -0
- package/skills/sk:setup-claude/templates/.claude/agents/tech-writer.md +7 -0
- package/skills/sk:setup-claude/templates/.claude/rules/laravel.md.template +11 -0
- package/skills/sk:setup-claude/templates/CLAUDE.md.template +3 -0
package/package.json
CHANGED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sk:laravel-deploy
|
|
3
|
+
description: "Deploy a Laravel application to Laravel Cloud via the `cloud` CLI. Requires /sk:gates to pass before deploying."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /sk:laravel-deploy
|
|
7
|
+
|
|
8
|
+
Deploy the current Laravel application to Laravel Cloud.
|
|
9
|
+
|
|
10
|
+
## Pre-Deploy Gate Check
|
|
11
|
+
|
|
12
|
+
**Gates must pass before any deploy.** If `/sk:gates` has not been run since the last code change, run it first:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/sk:gates
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
All quality checks (lint, tests, security, review) must be green before deploying to any environment.
|
|
19
|
+
|
|
20
|
+
## Setup (First Time)
|
|
21
|
+
|
|
22
|
+
Install the Laravel Cloud CLI if missing:
|
|
23
|
+
```bash
|
|
24
|
+
composer global require laravel/cloud-cli
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Authenticate:
|
|
28
|
+
```bash
|
|
29
|
+
cloud auth -n
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## CLI Rules
|
|
33
|
+
|
|
34
|
+
Never hardcode command signatures — always run `cloud <command> -h` to discover options at runtime.
|
|
35
|
+
|
|
36
|
+
| Operation | Flags |
|
|
37
|
+
|-----------|-------|
|
|
38
|
+
| Read | `--json -n` |
|
|
39
|
+
| Create | `--json -n` |
|
|
40
|
+
| Update | `--json -n --force` |
|
|
41
|
+
| Delete | `-n --force` (no `--json`) |
|
|
42
|
+
| Deploy | `-n` with all options explicitly |
|
|
43
|
+
|
|
44
|
+
## Deployment Workflow
|
|
45
|
+
|
|
46
|
+
### First Deploy
|
|
47
|
+
```bash
|
|
48
|
+
cloud ship -n
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Existing App
|
|
52
|
+
```bash
|
|
53
|
+
cloud repo:config
|
|
54
|
+
cloud deploy {app} {env} -n --open
|
|
55
|
+
cloud deploy:monitor -n
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Environment Variables
|
|
59
|
+
```bash
|
|
60
|
+
cloud environment:variables -n --force
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Infrastructure
|
|
64
|
+
|
|
65
|
+
**Database:**
|
|
66
|
+
```bash
|
|
67
|
+
cloud database-cluster:create --json -n
|
|
68
|
+
cloud database:create --json -n
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Cache:**
|
|
72
|
+
```bash
|
|
73
|
+
cloud cache:create --json -n
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Custom Domain:**
|
|
77
|
+
```bash
|
|
78
|
+
cloud domain:create --json -n
|
|
79
|
+
cloud domain:verify -n
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Sub-Agent Delegation
|
|
83
|
+
|
|
84
|
+
Delegate to background agents (non-blocking):
|
|
85
|
+
- `deploy:monitor` — watch deployment progress
|
|
86
|
+
- `deployment:get` — fetch deployment status
|
|
87
|
+
- `resource:list` — list infrastructure resources
|
|
88
|
+
|
|
89
|
+
Keep in main context:
|
|
90
|
+
- `cloud deploy` (need deployment ID immediately)
|
|
91
|
+
- Short status commands
|
|
92
|
+
|
|
93
|
+
## Troubleshooting
|
|
94
|
+
|
|
95
|
+
Inspect current infrastructure state:
|
|
96
|
+
```bash
|
|
97
|
+
cloud <resource>:list --json -n
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Check deployment logs:
|
|
101
|
+
```bash
|
|
102
|
+
cloud deployment:get {id} --json -n
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Official Plugin
|
|
106
|
+
|
|
107
|
+
For richer guidance with checklists for complex multi-step infrastructure operations, install the official plugin:
|
|
108
|
+
```
|
|
109
|
+
/plugin install laravel-cloud@laravel
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Docs: https://cloud.laravel.com/docs
|
|
@@ -32,6 +32,24 @@ Behavior depends on who owns the file:
|
|
|
32
32
|
- **Generated** (has `<!-- Generated by /laravel-init -->` marker): safe to edit directly with section-level updates using `<!-- BEGIN/END -->` markers
|
|
33
33
|
- **User-owned** (no marker): never edit — create `CLAUDE-sub-agents.md` alongside it and let the user copy what they want
|
|
34
34
|
|
|
35
|
+
## Optional: Official Laravel Plugins
|
|
36
|
+
|
|
37
|
+
After setup completes, suggest the two official Laravel plugins from Taylor Otwell:
|
|
38
|
+
|
|
39
|
+
> "Install official Laravel plugins? (`laravel-simplifier` for code refinement + `laravel-cloud` for deployments) [y/n]"
|
|
40
|
+
|
|
41
|
+
If yes, install each:
|
|
42
|
+
```bash
|
|
43
|
+
/plugin install laravel-simplifier@laravel
|
|
44
|
+
/plugin install laravel-cloud@laravel
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**What each adds:**
|
|
48
|
+
- `laravel-simplifier` — an Opus-powered agent that reviews recently modified PHP/Laravel code and refines it for PSR-12 compliance, Laravel conventions, and readability without changing behavior. Invoke after `/sk:execute-plan`: "Review recent changes using the laravel-simplifier agent"
|
|
49
|
+
- `laravel-cloud` — guides deployment and infrastructure management on Laravel Cloud via the `cloud` CLI. Triggers automatically when you ask about deploying. Or use `/sk:laravel-deploy` for a gate-enforced deploy workflow.
|
|
50
|
+
|
|
51
|
+
If no, skip — plugins can be installed manually at any time.
|
|
52
|
+
|
|
35
53
|
## After Running
|
|
36
54
|
|
|
37
55
|
Start with `/sk:brainstorm` to plan your feature.
|
|
@@ -176,6 +176,24 @@ composer require --dev pestphp/pest pestphp/pest-plugin-laravel
|
|
|
176
176
|
./vendor/bin/pest --init
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
+
### Laravel Official Plugins
|
|
180
|
+
|
|
181
|
+
After tool installation, suggest the two official Laravel plugins from Taylor Otwell:
|
|
182
|
+
|
|
183
|
+
> "Install official Laravel plugins? (`laravel-simplifier` for PHP code refinement + `laravel-cloud` for deployments) [y/n]"
|
|
184
|
+
|
|
185
|
+
If yes, install each — skip any already configured:
|
|
186
|
+
```bash
|
|
187
|
+
/plugin install laravel-simplifier@laravel
|
|
188
|
+
/plugin install laravel-cloud@laravel
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**What each adds:**
|
|
192
|
+
- `laravel-simplifier` — an Opus-powered agent that reviews recently modified PHP/Laravel code and refines it for PSR-12 compliance, Laravel conventions, and readability without changing behavior. Invoke after `/sk:execute-plan`: "Review recent changes using the laravel-simplifier agent"
|
|
193
|
+
- `laravel-cloud` — guides deployment and infrastructure management on Laravel Cloud via the `cloud` CLI. Triggers automatically when you ask about deploying. Also available via `/sk:laravel-deploy` for a gate-enforced workflow.
|
|
194
|
+
|
|
195
|
+
If no, skip — plugins can be installed manually at any time.
|
|
196
|
+
|
|
179
197
|
### Config Publishing (create-if-missing only)
|
|
180
198
|
|
|
181
199
|
**`phpstan.neon`:**
|
|
@@ -254,6 +272,23 @@ Use Agent tool with subagent_type="Explore" — launch all in a single message:
|
|
|
254
272
|
- Agent 3: Explore test patterns and existing test coverage for the area
|
|
255
273
|
```
|
|
256
274
|
|
|
275
|
+
### Code Refinement (after /sk:execute-plan)
|
|
276
|
+
|
|
277
|
+
After implementing code, run the `laravel-simplifier` agent to refine recently modified PHP/Laravel code:
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
Invoke the laravel-simplifier agent:
|
|
281
|
+
"Review recent changes using the laravel-simplifier agent"
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
This agent (Opus-powered, official from Taylor Otwell):
|
|
285
|
+
- Applies PSR-12 standards and Laravel conventions
|
|
286
|
+
- Reduces unnecessary nesting — prefers `match` over nested ternaries
|
|
287
|
+
- Improves variable and method naming
|
|
288
|
+
- Never changes behavior — refine only
|
|
289
|
+
|
|
290
|
+
Requires: `/plugin install laravel-simplifier@laravel`
|
|
291
|
+
|
|
257
292
|
### Parallel Quality Checks (/sk:lint)
|
|
258
293
|
|
|
259
294
|
After Pint formats files, run PHPStan and Rector in parallel (both are read-only):
|
|
@@ -309,6 +344,16 @@ When a generated CLAUDE.md exists (has `<!-- Generated by /sk:setup-claude -->`
|
|
|
309
344
|
|
|
310
345
|
This check runs every time — even if tools are installed and tasks files exist. Never short-circuit before verifying section completeness.
|
|
311
346
|
|
|
347
|
+
### Laravel Commands (CLAUDE.md Additions)
|
|
348
|
+
|
|
349
|
+
When generating or updating a CLAUDE.md for a Laravel project, append these commands to the Commands table (in addition to the standard ShipKit commands):
|
|
350
|
+
|
|
351
|
+
| Command | Purpose |
|
|
352
|
+
|---------|---------|
|
|
353
|
+
| `/sk:laravel-deploy` | Deploy to Laravel Cloud (gates must pass first) |
|
|
354
|
+
| `/sk:laravel-init` | Configure existing Laravel project with production-ready conventions |
|
|
355
|
+
| `/sk:laravel-new` | Scaffold a fresh Laravel app with production-ready conventions |
|
|
356
|
+
|
|
312
357
|
### Laravel Idempotency (extends global rules)
|
|
313
358
|
|
|
314
359
|
**Never overwrite** (in addition to global list):
|
|
@@ -6,6 +6,13 @@ allowed-tools: Read, Edit, Bash, Grep, Glob
|
|
|
6
6
|
memory: project
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
<!-- DESIGN NOTE: No `isolation: worktree` by design.
|
|
10
|
+
Debugger is invoked solo (never in parallel with other agents) and must
|
|
11
|
+
see the actual working state — the real failing code, the real test output,
|
|
12
|
+
the real stack trace. A worktree copy would give it a clean slate,
|
|
13
|
+
defeating its ability to reproduce the bug. Edit access is needed to place
|
|
14
|
+
and remove targeted debug logs during investigation. -->
|
|
15
|
+
|
|
9
16
|
# Debugger Agent
|
|
10
17
|
|
|
11
18
|
You are an expert debugger. Find root causes, not symptoms.
|
|
@@ -7,6 +7,14 @@ memory: project
|
|
|
7
7
|
background: true
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
<!-- DESIGN NOTE: No `isolation: worktree` by design.
|
|
11
|
+
qa-engineer runs as a background agent (background: true) alongside
|
|
12
|
+
backend-dev and frontend-dev during sk:team. It only creates test scenario
|
|
13
|
+
files (e.g., e2e/<feature>.spec.ts, tasks/e2e-scenarios.md) — never source
|
|
14
|
+
files. Its writes land in a separate directory tree from the implementation
|
|
15
|
+
agents' worktree changes, so file conflicts cannot occur. Isolation adds
|
|
16
|
+
overhead with no benefit here. -->
|
|
17
|
+
|
|
10
18
|
# QA Engineer Agent
|
|
11
19
|
|
|
12
20
|
You are the QA Agent in a team workflow. Your job is to write E2E test scenarios while the Backend and Frontend agents implement code in parallel.
|
|
@@ -6,6 +6,13 @@ tools: Read, Write, Edit, Grep, Glob
|
|
|
6
6
|
memory: project
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
<!-- DESIGN NOTE: No `isolation: worktree` by design.
|
|
10
|
+
tech-writer only creates and edits documentation files (README.md,
|
|
11
|
+
docs/*.md, architecture docs, inline comments). It never modifies source
|
|
12
|
+
code, migrations, or config files. Because its writes are confined to
|
|
13
|
+
documentation paths that implementation agents never touch, isolation is
|
|
14
|
+
unnecessary overhead. -->
|
|
15
|
+
|
|
9
16
|
You are a technical writer specializing in developer documentation. You make codebases comprehensible — to future contributors, to users, and to the developers themselves six months later.
|
|
10
17
|
|
|
11
18
|
## On Invocation
|
|
@@ -18,3 +18,14 @@ paths:
|
|
|
18
18
|
- **Migrations**: One logical change per migration. Never modify a published migration.
|
|
19
19
|
- **Config**: Access config via `config()` helper, never `env()` outside config files.
|
|
20
20
|
- **Strict mode**: Models use strict mode (prevent lazy loading, silently discarding attributes, accessing missing attributes).
|
|
21
|
+
|
|
22
|
+
## Code Refinement
|
|
23
|
+
|
|
24
|
+
After running `/sk:execute-plan`, use the `laravel-simplifier` agent to refine recently modified PHP/Laravel code:
|
|
25
|
+
- Applies PSR-12 standards and Laravel conventions
|
|
26
|
+
- Reduces unnecessary nesting and complexity — prefer `match` over nested ternaries
|
|
27
|
+
- Improves variable and method naming for readability
|
|
28
|
+
- Never changes behavior — refine only
|
|
29
|
+
|
|
30
|
+
Install once: `/plugin install laravel-simplifier@laravel`
|
|
31
|
+
Invoke: "Review recent changes using the laravel-simplifier agent"
|
|
@@ -310,6 +310,9 @@ Create entries in: `[ARCH_CHANGELOG_DIR]`
|
|
|
310
310
|
| `/sk:gates` | Run all quality gates in optimized parallel batches |
|
|
311
311
|
| `/sk:health` | Harness self-audit scorecard (7 categories, 0-70) |
|
|
312
312
|
| `/sk:hotfix` | Emergency fix workflow — skip design/TDD, quality gates enforced |
|
|
313
|
+
| `/sk:laravel-deploy` | Deploy to Laravel Cloud (gates must pass first) — Laravel projects only |
|
|
314
|
+
| `/sk:laravel-init` | Configure existing Laravel project with production-ready conventions |
|
|
315
|
+
| `/sk:laravel-new` | Scaffold a fresh Laravel app with production-ready conventions |
|
|
313
316
|
| `/sk:learn` | Extract reusable patterns from sessions into learned instincts |
|
|
314
317
|
| `/sk:lint` | Auto-detect and run all project linters + dependency audits |
|
|
315
318
|
| `/sk:perf` | Performance audit — bundle, N+1, Core Web Vitals, memory |
|