@kennethsolomon/shipkit 3.7.0 → 3.9.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 +181 -257
- package/package.json +1 -1
- package/skills/sk:fast-track/SKILL.md +80 -0
- package/skills/sk:gates/SKILL.md +97 -0
- package/skills/sk:retro/SKILL.md +124 -0
- package/skills/sk:reverse-doc/SKILL.md +116 -0
- package/skills/sk:scope-check/SKILL.md +93 -0
- package/skills/sk:setup-claude/SKILL.md +55 -0
- package/skills/sk:setup-claude/scripts/apply_setup_claude.py +207 -6
- package/skills/sk:setup-claude/templates/.claude/agents/e2e-tester.md +46 -0
- package/skills/sk:setup-claude/templates/.claude/agents/linter.md +53 -0
- package/skills/sk:setup-claude/templates/.claude/agents/perf-auditor.md +43 -0
- package/skills/sk:setup-claude/templates/.claude/agents/security-auditor.md +47 -0
- package/skills/sk:setup-claude/templates/.claude/agents/test-runner.md +42 -0
- package/skills/sk:setup-claude/templates/.claude/rules/api.md.template +14 -0
- package/skills/sk:setup-claude/templates/.claude/rules/frontend.md.template +15 -0
- package/skills/sk:setup-claude/templates/.claude/rules/laravel.md.template +15 -0
- package/skills/sk:setup-claude/templates/.claude/rules/react.md.template +14 -0
- package/skills/sk:setup-claude/templates/.claude/rules/tests.md.template +16 -0
- package/skills/sk:setup-claude/templates/.claude/settings.json.template +76 -0
- package/skills/sk:setup-claude/templates/.claude/statusline.sh +50 -0
- package/skills/sk:setup-claude/templates/CLAUDE.md.template +18 -1
- package/skills/sk:setup-claude/templates/hooks/log-agent.sh +24 -0
- package/skills/sk:setup-claude/templates/hooks/pre-compact.sh +44 -0
- package/skills/sk:setup-claude/templates/hooks/session-start.sh +53 -0
- package/skills/sk:setup-claude/templates/hooks/session-stop.sh +33 -0
- package/skills/sk:setup-claude/templates/hooks/validate-commit.sh +81 -0
- package/skills/sk:setup-claude/templates/hooks/validate-push.sh +43 -0
- package/skills/sk:setup-claude/templates/tasks/cross-platform.md.template +31 -0
- package/skills/sk:setup-optimizer/SKILL.md +2 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sk:gates
|
|
3
|
+
description: Run all quality gates in optimized parallel batches — one command instead of six
|
|
4
|
+
user_invocable: true
|
|
5
|
+
allowed_tools: Agent, Read, Write, Bash, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Gates Orchestrator
|
|
9
|
+
|
|
10
|
+
Run all quality gates (lint, test, security, perf, review, e2e) in optimized batches. Replaces manually invoking 6 separate commands.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Run `/sk:gates` after committing implementation code (step 11). This single command handles steps 12-17 of the workflow.
|
|
15
|
+
|
|
16
|
+
## Execution Strategy
|
|
17
|
+
|
|
18
|
+
Gates are organized into 4 batches for maximum parallelism while respecting dependencies:
|
|
19
|
+
|
|
20
|
+
### Batch 1 — Parallel Agents (lint + security + perf)
|
|
21
|
+
|
|
22
|
+
Launch 3 agents simultaneously:
|
|
23
|
+
|
|
24
|
+
1. **Linter agent** — runs all formatters, analyzers, dep audits
|
|
25
|
+
2. **Security auditor agent** — OWASP audit on changed files
|
|
26
|
+
3. **Performance auditor agent** — bundle, N+1, Core Web Vitals, memory
|
|
27
|
+
|
|
28
|
+
These 3 have no dependencies on each other. Run them in parallel using the Agent tool.
|
|
29
|
+
|
|
30
|
+
Wait for all 3 to complete. Collect results.
|
|
31
|
+
|
|
32
|
+
### Batch 2 — Test Agent (sequential, needs lint fixes)
|
|
33
|
+
|
|
34
|
+
After Batch 1 completes (lint may have auto-formatted code):
|
|
35
|
+
|
|
36
|
+
4. **Test runner agent** — runs all test suites, ensures 100% coverage on new code
|
|
37
|
+
|
|
38
|
+
### Batch 3 — Review (main context, needs test confirmation)
|
|
39
|
+
|
|
40
|
+
After Batch 2 completes:
|
|
41
|
+
|
|
42
|
+
5. **Review** — runs `/sk:review` in the main context (NOT as an agent) because review needs deep code understanding and access to the full conversation history
|
|
43
|
+
|
|
44
|
+
### Batch 4 — E2E Agent (needs review fixes)
|
|
45
|
+
|
|
46
|
+
After Batch 3 completes:
|
|
47
|
+
|
|
48
|
+
6. **E2E tester agent** — runs full E2E verification
|
|
49
|
+
|
|
50
|
+
## Gate Results
|
|
51
|
+
|
|
52
|
+
After all 4 batches complete, output a summary:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
=== Gate Results ===
|
|
56
|
+
Lint: clean (attempt N)
|
|
57
|
+
Security: 0 findings (attempt N)
|
|
58
|
+
Perf: 0 critical/high (attempt N)
|
|
59
|
+
Tests: X passed, 0 failed (attempt N)
|
|
60
|
+
Review: 0 issues (attempt N)
|
|
61
|
+
E2E: Y scenarios passed (attempt N)
|
|
62
|
+
|
|
63
|
+
All gates passed. Run /sk:update-task
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Failure Handling
|
|
67
|
+
|
|
68
|
+
- Each agent handles its own fix → auto-commit → re-run loop internally
|
|
69
|
+
- If any agent fails after 3 attempts → stop all gates and report to user
|
|
70
|
+
- Do NOT proceed to the next batch if the current batch has unresolved failures
|
|
71
|
+
- Update `tasks/workflow-status.md` for each gate as it completes:
|
|
72
|
+
- Steps 12-17 marked `done` with attempt count in Notes
|
|
73
|
+
|
|
74
|
+
## 3-Strike Protocol
|
|
75
|
+
|
|
76
|
+
If any single gate fails 3 times:
|
|
77
|
+
1. Stop the entire gates process
|
|
78
|
+
2. Log the failure to `tasks/progress.md`
|
|
79
|
+
3. Report to user with details of what failed and what was tried
|
|
80
|
+
4. Do NOT mark the step as done
|
|
81
|
+
|
|
82
|
+
## Model Routing
|
|
83
|
+
|
|
84
|
+
The orchestrator itself runs in the main context. Agents use their own model routing:
|
|
85
|
+
- Linter: haiku (mechanical)
|
|
86
|
+
- Test runner: sonnet
|
|
87
|
+
- Security auditor: sonnet
|
|
88
|
+
- Perf auditor: sonnet
|
|
89
|
+
- E2E tester: sonnet
|
|
90
|
+
- Review: main context model (opus or sonnet depending on profile)
|
|
91
|
+
|
|
92
|
+
| Profile | Orchestrator Model |
|
|
93
|
+
|---------|-------------------|
|
|
94
|
+
| `full-sail` | opus (inherit) |
|
|
95
|
+
| `quality` | opus (inherit) |
|
|
96
|
+
| `balanced` | sonnet |
|
|
97
|
+
| `budget` | sonnet |
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sk:retro
|
|
3
|
+
description: Post-ship retrospective analyzing velocity, blockers, and patterns to generate actionable improvements
|
|
4
|
+
user_invocable: true
|
|
5
|
+
allowed_tools: Read, Glob, Grep, Bash, Write
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Retrospective
|
|
9
|
+
|
|
10
|
+
Analyze completed work after shipping a feature to generate actionable insights for the next iteration.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Run `/sk:retro` after `/sk:finish-feature` or `/sk:release` to reflect on what went well, what didn't, and what to improve. Best run while context is fresh.
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Gather Data
|
|
19
|
+
|
|
20
|
+
Read these files to build the retrospective:
|
|
21
|
+
|
|
22
|
+
| File | What to Extract |
|
|
23
|
+
|------|----------------|
|
|
24
|
+
| `tasks/todo.md` | Planned tasks — count total, completed, dropped |
|
|
25
|
+
| `tasks/progress.md` | Work log — errors, resolutions, session timestamps |
|
|
26
|
+
| `tasks/workflow-status.md` | Step-by-step status — attempt counts, skip reasons |
|
|
27
|
+
| `tasks/findings.md` | Design decisions — were they validated? |
|
|
28
|
+
| `tasks/lessons.md` | New lessons added during this task |
|
|
29
|
+
| `tasks/tech-debt.md` | Tech debt logged during gates |
|
|
30
|
+
|
|
31
|
+
### 2. Analyze Git History
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Commits on this branch
|
|
35
|
+
git log main..HEAD --oneline --format="%h %s"
|
|
36
|
+
|
|
37
|
+
# Time span
|
|
38
|
+
git log main..HEAD --format="%ai" | tail -1 # first commit
|
|
39
|
+
git log main..HEAD --format="%ai" | head -1 # last commit
|
|
40
|
+
|
|
41
|
+
# Files changed
|
|
42
|
+
git diff main..HEAD --stat
|
|
43
|
+
|
|
44
|
+
# Commit count
|
|
45
|
+
git rev-list main..HEAD --count
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 3. Calculate Metrics
|
|
49
|
+
|
|
50
|
+
| Metric | How |
|
|
51
|
+
|--------|-----|
|
|
52
|
+
| **Completion rate** | Completed tasks / Planned tasks * 100 |
|
|
53
|
+
| **Velocity** | Commits per day, files changed per day |
|
|
54
|
+
| **Gate performance** | Extract attempt counts from workflow-status.md Notes (e.g., "clean on attempt 3") |
|
|
55
|
+
| **Blocker count** | Count "FAIL", "error", "blocked", "3-Strike" entries in tasks/progress.md |
|
|
56
|
+
| **Rework rate** | Count fix commits (fix(lint):, fix(test):, etc.) vs feature commits |
|
|
57
|
+
|
|
58
|
+
### 4. Identify Patterns
|
|
59
|
+
|
|
60
|
+
- **Recurring blocker**: Same type of issue across multiple gates?
|
|
61
|
+
- **Estimation accuracy**: Did planned scope match actual scope? (cross-ref with `/sk:scope-check` if available)
|
|
62
|
+
- **Gate friction**: Which gates required the most fix cycles?
|
|
63
|
+
- **Previous retro follow-up**: Read previous `tasks/retro-*.md` files — were action items addressed?
|
|
64
|
+
|
|
65
|
+
### 5. Generate Action Items
|
|
66
|
+
|
|
67
|
+
Produce 3-5 concrete, actionable improvements:
|
|
68
|
+
- Each action item must have: **what** to do, **why** it matters, **when** to apply it
|
|
69
|
+
- Prioritize systemic fixes over one-off patches
|
|
70
|
+
- Flag recurring unaddressed items from previous retros as process concerns
|
|
71
|
+
|
|
72
|
+
### 6. Write Report
|
|
73
|
+
|
|
74
|
+
Save to `tasks/retro-YYYY-MM-DD.md`:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
# Retrospective — [date] — [task name]
|
|
78
|
+
|
|
79
|
+
## Metrics
|
|
80
|
+
| Metric | Value |
|
|
81
|
+
|--------|-------|
|
|
82
|
+
| Planned tasks | N |
|
|
83
|
+
| Completed | X / N (Y%) |
|
|
84
|
+
| Commits | Z |
|
|
85
|
+
| Time span | A days |
|
|
86
|
+
| Files changed | B (+C/-D) |
|
|
87
|
+
| Gate attempts | lint: 1, test: 2, security: 1, ... |
|
|
88
|
+
| Blockers | K |
|
|
89
|
+
| Rework rate | R% |
|
|
90
|
+
|
|
91
|
+
## What Went Well
|
|
92
|
+
- [data-backed observation]
|
|
93
|
+
|
|
94
|
+
## What Didn't Go Well
|
|
95
|
+
- [data-backed observation, with blocker/error references]
|
|
96
|
+
|
|
97
|
+
## Patterns
|
|
98
|
+
- [recurring theme from this or previous retros]
|
|
99
|
+
|
|
100
|
+
## Action Items
|
|
101
|
+
1. **[What]** — [Why] — Apply during: [When]
|
|
102
|
+
2. ...
|
|
103
|
+
|
|
104
|
+
## Previous Action Item Follow-Up
|
|
105
|
+
- [Action from last retro] — [Addressed / Still open]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 7. Summary
|
|
109
|
+
|
|
110
|
+
Output to user:
|
|
111
|
+
```
|
|
112
|
+
Retrospective saved to tasks/retro-YYYY-MM-DD.md
|
|
113
|
+
Completion: X/N tasks (Y%) | Velocity: Z commits/day | Blockers: K
|
|
114
|
+
Top action: [most important action item]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Model Routing
|
|
118
|
+
|
|
119
|
+
| Profile | Model |
|
|
120
|
+
|---------|-------|
|
|
121
|
+
| `full-sail` | opus (inherit) |
|
|
122
|
+
| `quality` | sonnet |
|
|
123
|
+
| `balanced` | sonnet |
|
|
124
|
+
| `budget` | haiku |
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sk:reverse-doc
|
|
3
|
+
description: Generate architecture and design documentation from existing code by analyzing patterns and asking clarifying questions
|
|
4
|
+
user_invocable: true
|
|
5
|
+
allowed_tools: Read, Glob, Grep, Write, Agent
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Reverse Document
|
|
9
|
+
|
|
10
|
+
Generate documentation from existing code — work backwards from implementation to create missing design or architecture docs.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Onboarding to an existing codebase that lacks documentation
|
|
15
|
+
- Formalizing a prototype into a documented design
|
|
16
|
+
- Capturing the "why" behind existing code before refactoring
|
|
17
|
+
- Creating architecture docs for a codebase you inherited
|
|
18
|
+
|
|
19
|
+
## Arguments
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/sk:reverse-doc <type> <path>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
| Type | Output | Location |
|
|
26
|
+
|------|--------|----------|
|
|
27
|
+
| `architecture` | Architecture Decision Record | `docs/architecture/` |
|
|
28
|
+
| `design` | Design document (GDD-style) | `docs/design/` |
|
|
29
|
+
| `api` | API specification | `docs/api/` |
|
|
30
|
+
|
|
31
|
+
If no type specified, infer from the path:
|
|
32
|
+
- `src/core/`, `src/lib/`, `app/Services/` → architecture
|
|
33
|
+
- `src/components/`, `resources/views/` → design
|
|
34
|
+
- `routes/`, `app/Http/Controllers/` → api
|
|
35
|
+
|
|
36
|
+
## Steps
|
|
37
|
+
|
|
38
|
+
### Phase 1: Analyze
|
|
39
|
+
|
|
40
|
+
Launch Explore agents to analyze the target path:
|
|
41
|
+
|
|
42
|
+
1. **Structure agent**: Map the file tree, identify entry points, trace dependency chains
|
|
43
|
+
2. **Patterns agent**: Identify design patterns, abstractions, conventions used
|
|
44
|
+
3. **Data flow agent**: Trace data through the system — inputs, transformations, outputs
|
|
45
|
+
|
|
46
|
+
Synthesize findings into:
|
|
47
|
+
- **What it does** (mechanics, behavior)
|
|
48
|
+
- **How it's built** (patterns, architecture, dependencies)
|
|
49
|
+
- **What's unclear** (inconsistencies, undocumented decisions)
|
|
50
|
+
|
|
51
|
+
### Phase 2: Clarify
|
|
52
|
+
|
|
53
|
+
Ask the user 3-5 clarifying questions to distinguish intentional design from accidental implementation:
|
|
54
|
+
|
|
55
|
+
- "Is [pattern X] intentional, or would you change it in a refactor?"
|
|
56
|
+
- "What was the motivation for [architectural decision Y]?"
|
|
57
|
+
- "Are [components A and B] coupled by design, or is that tech debt?"
|
|
58
|
+
|
|
59
|
+
**Critical principle: Never assume intent. Always ask before documenting "why."**
|
|
60
|
+
|
|
61
|
+
The distinction between "what the code does" and "what the developer intended" is the entire value of this skill. Do not skip this phase.
|
|
62
|
+
|
|
63
|
+
### Phase 3: Draft
|
|
64
|
+
|
|
65
|
+
Based on analysis + user answers, generate the document:
|
|
66
|
+
|
|
67
|
+
**Architecture docs include:**
|
|
68
|
+
- System overview and purpose
|
|
69
|
+
- Component diagram (text-based)
|
|
70
|
+
- Data flow description
|
|
71
|
+
- Key design decisions with rationale (from user answers)
|
|
72
|
+
- Dependencies and interfaces
|
|
73
|
+
- Trade-offs and known limitations
|
|
74
|
+
|
|
75
|
+
**Design docs include:**
|
|
76
|
+
- Feature overview and user-facing behavior
|
|
77
|
+
- Component breakdown
|
|
78
|
+
- State management approach
|
|
79
|
+
- Interaction patterns
|
|
80
|
+
- Edge cases and error handling
|
|
81
|
+
|
|
82
|
+
**API docs include:**
|
|
83
|
+
- Endpoint inventory
|
|
84
|
+
- Request/response schemas
|
|
85
|
+
- Authentication requirements
|
|
86
|
+
- Error codes and formats
|
|
87
|
+
- Rate limits and constraints
|
|
88
|
+
|
|
89
|
+
### Phase 4: Approve
|
|
90
|
+
|
|
91
|
+
Present the draft to the user:
|
|
92
|
+
- Show key sections
|
|
93
|
+
- Highlight areas marked as "inferred" (not confirmed by user)
|
|
94
|
+
- Ask for corrections or additions
|
|
95
|
+
|
|
96
|
+
**Do not write the file until the user approves.**
|
|
97
|
+
|
|
98
|
+
### Phase 5: Write
|
|
99
|
+
|
|
100
|
+
Save the approved document to the appropriate location.
|
|
101
|
+
|
|
102
|
+
Flag follow-up work:
|
|
103
|
+
- Related areas that also need documentation
|
|
104
|
+
- Inconsistencies discovered during analysis
|
|
105
|
+
- Suggested refactoring based on documented architecture
|
|
106
|
+
|
|
107
|
+
**Do not auto-execute follow-up work.** Present it as a list for the user to decide.
|
|
108
|
+
|
|
109
|
+
## Model Routing
|
|
110
|
+
|
|
111
|
+
| Profile | Model |
|
|
112
|
+
|---------|-------|
|
|
113
|
+
| `full-sail` | opus (inherit) |
|
|
114
|
+
| `quality` | opus (inherit) |
|
|
115
|
+
| `balanced` | sonnet |
|
|
116
|
+
| `budget` | sonnet |
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sk:scope-check
|
|
3
|
+
description: Compare current implementation against the plan to detect scope creep
|
|
4
|
+
user_invocable: true
|
|
5
|
+
allowed_tools: Read, Glob, Grep, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Scope Check
|
|
9
|
+
|
|
10
|
+
Compare the current implementation against `tasks/todo.md` to detect scope creep and unplanned additions.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Run `/sk:scope-check` mid-implementation (during or after step 10) to verify you're building what was planned — no more, no less. Useful when implementation feels like it's growing beyond the original plan.
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Read the Plan
|
|
19
|
+
|
|
20
|
+
- Read `tasks/todo.md` — extract all planned tasks (checkboxes)
|
|
21
|
+
- Count total planned tasks, completed tasks, and remaining tasks
|
|
22
|
+
- List planned files/areas from task descriptions
|
|
23
|
+
|
|
24
|
+
### 2. Analyze Actual Changes
|
|
25
|
+
|
|
26
|
+
- Run `git diff main..HEAD --stat` to get files changed, insertions, deletions
|
|
27
|
+
- Run `git diff main..HEAD --name-only` to list all changed files
|
|
28
|
+
- Count new files created vs. files modified
|
|
29
|
+
- Identify files changed that are NOT mentioned in any todo.md task
|
|
30
|
+
|
|
31
|
+
### 3. Compare Planned vs. Actual
|
|
32
|
+
|
|
33
|
+
For each changed file, trace it back to a planned task:
|
|
34
|
+
- **Planned**: File change is directly described in a todo.md checkbox
|
|
35
|
+
- **Supporting**: File change is a reasonable dependency of a planned task (e.g., updating imports after moving a function)
|
|
36
|
+
- **Unplanned**: File change has no clear connection to any planned task — this is scope creep
|
|
37
|
+
|
|
38
|
+
### 4. Calculate Scope Bloat
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Planned tasks: N checkboxes in todo.md
|
|
42
|
+
Actual changes: M files changed
|
|
43
|
+
Unplanned items: U files with no matching task
|
|
44
|
+
Scope bloat: (U / M) * 100 = X%
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 5. Classify
|
|
48
|
+
|
|
49
|
+
| Classification | Bloat % | Recommendation |
|
|
50
|
+
|---------------|---------|----------------|
|
|
51
|
+
| **On Track** | 0-10% | Proceeding as planned. Minor supporting changes are normal. |
|
|
52
|
+
| **Minor Creep** | 10-25% | Some unplanned additions detected. Review if they're necessary. |
|
|
53
|
+
| **Significant Creep** | 25-50% | Scope has grown substantially. Consider splitting into separate tasks. |
|
|
54
|
+
| **Out of Control** | >50% | More unplanned work than planned. Stop and reassess with `/sk:change`. |
|
|
55
|
+
|
|
56
|
+
### 6. Output Report
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## Scope Check Report — [date]
|
|
60
|
+
|
|
61
|
+
**Plan**: [N] tasks in tasks/todo.md
|
|
62
|
+
**Completed**: [X] / [N] tasks
|
|
63
|
+
**Files changed**: [M] files (+[insertions] / -[deletions])
|
|
64
|
+
**Unplanned changes**: [U] files
|
|
65
|
+
|
|
66
|
+
### Classification: [On Track | Minor Creep | Significant Creep | Out of Control] ([X]%)
|
|
67
|
+
|
|
68
|
+
### Planned Changes
|
|
69
|
+
- [file] — task: [matching checkbox text]
|
|
70
|
+
- ...
|
|
71
|
+
|
|
72
|
+
### Supporting Changes
|
|
73
|
+
- [file] — supports: [which planned task]
|
|
74
|
+
- ...
|
|
75
|
+
|
|
76
|
+
### Unplanned Changes
|
|
77
|
+
- [file] — no matching task found
|
|
78
|
+
- ...
|
|
79
|
+
|
|
80
|
+
### Recommendation
|
|
81
|
+
[Actionable advice based on classification]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Model Routing
|
|
85
|
+
|
|
86
|
+
Read `.shipkit/config.json` from the project root if it exists.
|
|
87
|
+
|
|
88
|
+
| Profile | Model |
|
|
89
|
+
|---------|-------|
|
|
90
|
+
| `full-sail` | opus (inherit) |
|
|
91
|
+
| `quality` | sonnet |
|
|
92
|
+
| `balanced` | haiku |
|
|
93
|
+
| `budget` | haiku |
|
|
@@ -27,6 +27,7 @@ After bootstrapping a project, the recommended workflow becomes:
|
|
|
27
27
|
- `tasks/progress.md` — chronological work log + test results
|
|
28
28
|
- `tasks/lessons.md` — durable “don’t repeat mistakes” log (**never overwrite**)
|
|
29
29
|
- `tasks/security-findings.md` — security audit results from `/sk:security-check` (**never overwrite**)
|
|
30
|
+
- `tasks/cross-platform.md` — changes that need replication in companion codebase (web <-> mobile) (**never overwrite**)
|
|
30
31
|
|
|
31
32
|
### Project Commands (in `.claude/commands/`)
|
|
32
33
|
- `brainstorm.md` — invokes the global `brainstorming` skill
|
|
@@ -88,6 +89,7 @@ Never overwrite `tasks/lessons.md` — always append.
|
|
|
88
89
|
- `tasks/progress.md`
|
|
89
90
|
- `tasks/lessons.md`
|
|
90
91
|
- `tasks/security-findings.md`
|
|
92
|
+
- `tasks/cross-platform.md`
|
|
91
93
|
- `CHANGELOG.md`
|
|
92
94
|
- custom `CLAUDE.md` (anything not marked `<!-- Generated by /sk:setup-claude -->`)
|
|
93
95
|
|
|
@@ -305,6 +307,59 @@ Additionally report:
|
|
|
305
307
|
- Tools installed vs already present
|
|
306
308
|
- Config files created vs skipped
|
|
307
309
|
|
|
310
|
+
### Hooks (in `.claude/hooks/`)
|
|
311
|
+
|
|
312
|
+
Deployed from `templates/hooks/` to `.claude/hooks/` (made executable):
|
|
313
|
+
|
|
314
|
+
- `session-start.sh` — runs on SessionStart, loads context
|
|
315
|
+
- `session-stop.sh` — runs on Stop, persists session state
|
|
316
|
+
- `pre-compact.sh` — runs on PreCompact, saves context before compaction
|
|
317
|
+
- `validate-commit.sh` — PreToolUse hook for `git commit*`, validates commit messages
|
|
318
|
+
- `validate-push.sh` — PreToolUse hook for `git push*`, confirms before pushing
|
|
319
|
+
- `log-agent.sh` — SubagentStart hook, logs sub-agent launches
|
|
320
|
+
|
|
321
|
+
### Agent Definitions (in `.claude/agents/`)
|
|
322
|
+
|
|
323
|
+
Deployed from `templates/.claude/agents/` (create-if-missing):
|
|
324
|
+
|
|
325
|
+
- `e2e-tester.md` — E2E testing agent definition
|
|
326
|
+
- `linter.md` — Linting agent definition
|
|
327
|
+
- `perf-auditor.md` — Performance auditing agent
|
|
328
|
+
- `security-auditor.md` — Security auditing agent
|
|
329
|
+
- `test-runner.md` — Test execution agent
|
|
330
|
+
|
|
331
|
+
### Path-Scoped Rules (in `.claude/rules/`)
|
|
332
|
+
|
|
333
|
+
Deployed from `templates/.claude/rules/` based on detected stack:
|
|
334
|
+
|
|
335
|
+
| Rule file | Deployed when |
|
|
336
|
+
|-----------|---------------|
|
|
337
|
+
| `tests.md.template` | Always |
|
|
338
|
+
| `frontend.md.template` | Always |
|
|
339
|
+
| `api.md.template` | Always |
|
|
340
|
+
| `laravel.md.template` | Laravel detected in framework |
|
|
341
|
+
| `react.md.template` | React or Next.js detected in framework |
|
|
342
|
+
|
|
343
|
+
### Settings Generation (`.claude/settings.json`)
|
|
344
|
+
|
|
345
|
+
Rendered from `templates/.claude/settings.json.template`. Contains:
|
|
346
|
+
- Statusline configuration (points to `.claude/statusline.sh`)
|
|
347
|
+
- Permission allow/deny lists for safe Bash commands
|
|
348
|
+
- Hook wiring for all 6 hooks above
|
|
349
|
+
|
|
350
|
+
### Statusline Generation (`.claude/statusline.sh`)
|
|
351
|
+
|
|
352
|
+
Copied from `templates/.claude/statusline.sh` (made executable). Displays:
|
|
353
|
+
- Context window usage percentage
|
|
354
|
+
- Current model
|
|
355
|
+
- Current workflow step (from `tasks/workflow-status.md`)
|
|
356
|
+
- Git branch
|
|
357
|
+
- Current task name
|
|
358
|
+
|
|
359
|
+
### Cached Detection
|
|
360
|
+
|
|
361
|
+
Detection results are cached to `.shipkit/config.json` with a `detected_at` timestamp. On subsequent runs, if the cache is less than 7 days old, cached values are used instead of re-scanning. Pass `--force-detect` to bypass the cache and re-run detection from scratch.
|
|
362
|
+
|
|
308
363
|
## Templates (Source of Truth)
|
|
309
364
|
|
|
310
365
|
All output files are rendered from templates in `templates/`:
|