@rune-kit/rune 2.10.0 → 2.12.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/LICENSE +21 -21
- package/README.md +65 -6
- package/commands/rune.md +168 -168
- package/compiler/__tests__/detect-invariants.test.js +136 -0
- package/compiler/__tests__/doctor-mesh.test.js +229 -0
- package/compiler/__tests__/hook-dispatch.test.js +91 -0
- package/compiler/__tests__/hooks-antigravity.test.js +118 -0
- package/compiler/__tests__/hooks-cursor.test.js +139 -0
- package/compiler/__tests__/hooks-install.test.js +305 -0
- package/compiler/__tests__/hooks-merge.test.js +204 -0
- package/compiler/__tests__/hooks-tiers.test.js +519 -0
- package/compiler/__tests__/hooks-windsurf.test.js +115 -0
- package/compiler/__tests__/inject-claude-md.test.js +152 -0
- package/compiler/__tests__/load-invariants.test.js +408 -0
- package/compiler/__tests__/onboard-invariants.test.js +240 -0
- package/compiler/adapters/hooks/antigravity.js +140 -0
- package/compiler/adapters/hooks/claude.js +166 -0
- package/compiler/adapters/hooks/cursor.js +191 -0
- package/compiler/adapters/hooks/index.js +82 -0
- package/compiler/adapters/hooks/tier-emitter.js +182 -0
- package/compiler/adapters/hooks/windsurf.js +202 -0
- package/compiler/bin/rune.js +196 -6
- package/compiler/commands/hook-dispatch.js +87 -0
- package/compiler/commands/hooks/install.js +120 -0
- package/compiler/commands/hooks/merge.js +211 -0
- package/compiler/commands/hooks/presets.js +116 -0
- package/compiler/commands/hooks/status.js +112 -0
- package/compiler/commands/hooks/tiers.js +221 -0
- package/compiler/commands/hooks/uninstall.js +94 -0
- package/compiler/doctor.js +236 -0
- package/contexts/dev.md +34 -34
- package/contexts/research.md +43 -43
- package/contexts/review.md +55 -55
- package/extensions/ai-ml/PACK.md +88 -88
- package/extensions/ai-ml/skills/ai-agents.md +172 -172
- package/extensions/ai-ml/skills/code-sandbox.md +187 -187
- package/extensions/ai-ml/skills/deep-research.md +146 -146
- package/extensions/ai-ml/skills/embedding-search.md +66 -66
- package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
- package/extensions/ai-ml/skills/llm-architect.md +125 -125
- package/extensions/ai-ml/skills/llm-integration.md +64 -64
- package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
- package/extensions/ai-ml/skills/rag-patterns.md +66 -66
- package/extensions/ai-ml/skills/web-extraction.md +114 -114
- package/extensions/analytics/PACK.md +92 -92
- package/extensions/analytics/skills/ab-testing.md +72 -72
- package/extensions/analytics/skills/dashboard-patterns.md +83 -83
- package/extensions/analytics/skills/data-validation.md +68 -68
- package/extensions/analytics/skills/funnel-analysis.md +81 -81
- package/extensions/analytics/skills/sql-patterns.md +57 -57
- package/extensions/analytics/skills/statistical-analysis.md +79 -79
- package/extensions/analytics/skills/tracking-setup.md +71 -71
- package/extensions/backend/PACK.md +104 -104
- package/extensions/backend/skills/api-patterns.md +84 -84
- package/extensions/backend/skills/async-pipeline.md +193 -193
- package/extensions/backend/skills/auth-patterns.md +97 -97
- package/extensions/backend/skills/background-jobs.md +133 -133
- package/extensions/backend/skills/caching-patterns.md +108 -108
- package/extensions/backend/skills/cli-generation.md +133 -133
- package/extensions/backend/skills/database-patterns.md +87 -87
- package/extensions/backend/skills/middleware-patterns.md +104 -104
- package/extensions/chrome-ext/PACK.md +93 -93
- package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
- package/extensions/chrome-ext/skills/cws-publish.md +104 -104
- package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
- package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
- package/extensions/chrome-ext/skills/ext-storage.md +133 -133
- package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
- package/extensions/content/PACK.md +96 -96
- package/extensions/content/skills/blog-patterns.md +88 -88
- package/extensions/content/skills/cms-integration.md +131 -131
- package/extensions/content/skills/content-scoring.md +107 -107
- package/extensions/content/skills/i18n.md +83 -83
- package/extensions/content/skills/mdx-authoring.md +137 -137
- package/extensions/content/skills/reference.md +1014 -1014
- package/extensions/content/skills/seo-patterns.md +67 -67
- package/extensions/content/skills/video-repurpose.md +153 -153
- package/extensions/devops/PACK.md +101 -101
- package/extensions/devops/skills/chaos-testing.md +67 -67
- package/extensions/devops/skills/ci-cd.md +75 -75
- package/extensions/devops/skills/docker.md +58 -58
- package/extensions/devops/skills/edge-serverless.md +163 -163
- package/extensions/devops/skills/infra-as-code.md +158 -158
- package/extensions/devops/skills/kubernetes.md +110 -110
- package/extensions/devops/skills/monitoring.md +57 -57
- package/extensions/devops/skills/server-setup.md +64 -64
- package/extensions/devops/skills/ssl-domain.md +42 -42
- package/extensions/ecommerce/PACK.md +116 -116
- package/extensions/ecommerce/skills/cart-system.md +79 -79
- package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
- package/extensions/ecommerce/skills/order-management.md +126 -126
- package/extensions/ecommerce/skills/payment-integration.md +472 -472
- package/extensions/ecommerce/skills/shopify-dev.md +69 -69
- package/extensions/ecommerce/skills/subscription-billing.md +93 -93
- package/extensions/ecommerce/skills/tax-compliance.md +117 -117
- package/extensions/gamedev/PACK.md +142 -142
- package/extensions/gamedev/skills/asset-pipeline.md +74 -74
- package/extensions/gamedev/skills/audio-system.md +129 -129
- package/extensions/gamedev/skills/camera-system.md +87 -87
- package/extensions/gamedev/skills/ecs.md +98 -98
- package/extensions/gamedev/skills/game-loops.md +72 -72
- package/extensions/gamedev/skills/input-system.md +199 -199
- package/extensions/gamedev/skills/multiplayer.md +180 -180
- package/extensions/gamedev/skills/particles.md +105 -105
- package/extensions/gamedev/skills/physics-engine.md +89 -89
- package/extensions/gamedev/skills/scene-management.md +146 -146
- package/extensions/gamedev/skills/threejs-patterns.md +90 -90
- package/extensions/gamedev/skills/webgl.md +71 -71
- package/extensions/mobile/PACK.md +106 -106
- package/extensions/mobile/skills/app-store-connect.md +152 -152
- package/extensions/mobile/skills/app-store-prep.md +66 -66
- package/extensions/mobile/skills/deep-linking.md +109 -109
- package/extensions/mobile/skills/flutter.md +60 -60
- package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
- package/extensions/mobile/skills/native-bridge.md +66 -66
- package/extensions/mobile/skills/ota-updates.md +97 -97
- package/extensions/mobile/skills/push-notifications.md +111 -111
- package/extensions/mobile/skills/react-native.md +82 -82
- package/extensions/saas/PACK.md +116 -116
- package/extensions/saas/skills/billing-integration.md +200 -200
- package/extensions/saas/skills/feature-flags.md +130 -130
- package/extensions/saas/skills/multi-tenant.md +103 -103
- package/extensions/saas/skills/onboarding-flow.md +139 -139
- package/extensions/saas/skills/subscription-flow.md +95 -95
- package/extensions/saas/skills/team-management.md +144 -144
- package/extensions/security/PACK.md +99 -99
- package/extensions/security/skills/api-security.md +140 -140
- package/extensions/security/skills/compliance.md +68 -68
- package/extensions/security/skills/owasp-audit.md +64 -64
- package/extensions/security/skills/pentest-patterns.md +77 -77
- package/extensions/security/skills/secret-mgmt.md +65 -65
- package/extensions/security/skills/supply-chain.md +65 -65
- package/extensions/trading/PACK.md +80 -80
- package/extensions/trading/skills/chart-components.md +55 -55
- package/extensions/trading/skills/experiment-loop.md +125 -125
- package/extensions/trading/skills/fintech-patterns.md +47 -47
- package/extensions/trading/skills/indicator-library.md +58 -58
- package/extensions/trading/skills/quant-analysis.md +111 -111
- package/extensions/trading/skills/realtime-data.md +58 -58
- package/extensions/trading/skills/trade-logic.md +104 -104
- package/extensions/ui/PACK.md +130 -130
- package/extensions/ui/skills/a11y-audit.md +91 -91
- package/extensions/ui/skills/animation-patterns.md +127 -127
- package/extensions/ui/skills/component-patterns.md +100 -100
- package/extensions/ui/skills/design-decision.md +108 -108
- package/extensions/ui/skills/design-system.md +68 -68
- package/extensions/ui/skills/landing-patterns.md +155 -155
- package/extensions/ui/skills/palette-picker.md +173 -173
- package/extensions/ui/skills/react-health.md +90 -90
- package/extensions/ui/skills/type-system.md +125 -125
- package/extensions/ui/skills/web-vitals.md +153 -153
- package/extensions/zalo/PACK.md +145 -145
- package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
- package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
- package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
- package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
- package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
- package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
- package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
- package/hooks/auto-format/index.cjs +48 -48
- package/hooks/hooks.json +111 -111
- package/hooks/post-session-reflect/index.cjs +189 -189
- package/hooks/pre-compact/index.cjs +95 -95
- package/hooks/run-hook.cmd +1 -1
- package/hooks/secrets-scan/index.cjs +100 -100
- package/hooks/session-start/index.cjs +71 -71
- package/hooks/typecheck/index.cjs +65 -65
- package/package.json +63 -63
- package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
- package/references/ui-pro-max-data/charts.csv +26 -26
- package/references/ui-pro-max-data/colors.csv +161 -161
- package/references/ui-pro-max-data/styles.csv +68 -68
- package/references/ui-pro-max-data/typography.csv +74 -74
- package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
- package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
- package/skills/adversary/SKILL.md +283 -283
- package/skills/asset-creator/SKILL.md +157 -157
- package/skills/audit/SKILL.md +147 -2
- package/skills/autopsy/SKILL.md +335 -335
- package/skills/ba/SKILL.md +85 -1
- package/skills/brainstorm/SKILL.md +380 -342
- package/skills/browser-pilot/SKILL.md +169 -168
- package/skills/constraint-check/SKILL.md +165 -165
- package/skills/context-engine/SKILL.md +408 -404
- package/skills/cook/SKILL.md +917 -863
- package/skills/db/SKILL.md +273 -273
- package/skills/debug/SKILL.md +465 -465
- package/skills/dependency-doctor/SKILL.md +265 -235
- package/skills/deploy/SKILL.md +274 -231
- package/skills/design/DESIGN-REFERENCE.md +365 -365
- package/skills/design/SKILL.md +590 -589
- package/skills/doc-processor/SKILL.md +254 -254
- package/skills/docs/SKILL.md +374 -374
- package/skills/docs-seeker/SKILL.md +178 -177
- package/skills/fix/SKILL.md +332 -330
- package/skills/git/SKILL.md +339 -339
- package/skills/hallucination-guard/SKILL.md +220 -219
- package/skills/incident/SKILL.md +254 -253
- package/skills/integrity-check/SKILL.md +169 -169
- package/skills/journal/SKILL.md +241 -240
- package/skills/launch/SKILL.md +344 -344
- package/skills/logic-guardian/SKILL.md +269 -251
- package/skills/marketing/SKILL.md +351 -289
- package/skills/mcp-builder/SKILL.md +425 -425
- package/skills/neural-memory/SKILL.md +359 -362
- package/skills/onboard/SKILL.md +432 -403
- package/skills/onboard/references/invariants-template.md +76 -0
- package/skills/onboard/scripts/detect-invariants.js +439 -0
- package/skills/onboard/scripts/inject-claude-md.js +150 -0
- package/skills/onboard/scripts/onboard-invariants.js +194 -0
- package/skills/perf/SKILL.md +347 -346
- package/skills/plan/SKILL.md +435 -428
- package/skills/preflight/SKILL.md +415 -415
- package/skills/problem-solver/SKILL.md +380 -284
- package/skills/rescue/SKILL.md +474 -474
- package/skills/research/SKILL.md +4 -0
- package/skills/retro/SKILL.md +3 -1
- package/skills/review/SKILL.md +614 -588
- package/skills/review-intake/SKILL.md +249 -249
- package/skills/safeguard/SKILL.md +200 -200
- package/skills/sast/SKILL.md +190 -190
- package/skills/scaffold/SKILL.md +328 -287
- package/skills/scope-guard/SKILL.md +183 -180
- package/skills/scout/SKILL.md +269 -263
- package/skills/sentinel/SKILL.md +384 -381
- package/skills/sentinel-env/SKILL.md +254 -254
- package/skills/sequential-thinking/SKILL.md +234 -234
- package/skills/session-bridge/SKILL.md +595 -543
- package/skills/session-bridge/scripts/load-invariants.js +397 -0
- package/skills/skill-forge/SKILL.md +581 -581
- package/skills/skill-router/SKILL.md +3 -0
- package/skills/slides/SKILL.md +19 -0
- package/skills/surgeon/SKILL.md +215 -215
- package/skills/team/SKILL.md +557 -537
- package/skills/test/SKILL.md +620 -614
- package/skills/trend-scout/SKILL.md +145 -145
- package/skills/verification/SKILL.md +334 -326
- package/skills/video-creator/SKILL.md +201 -201
- package/skills/watchdog/SKILL.md +168 -168
- package/skills/worktree/SKILL.md +140 -140
package/skills/git/SKILL.md
CHANGED
|
@@ -1,339 +1,339 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: git
|
|
3
|
-
description: Specialized git operations — semantic commits, PR descriptions, branch management, conflict resolution guidance. Replaces ad-hoc git commands with a dedicated, convention-aware utility.
|
|
4
|
-
metadata:
|
|
5
|
-
author: runedev
|
|
6
|
-
version: "0.3.0"
|
|
7
|
-
layer: L3
|
|
8
|
-
model: haiku
|
|
9
|
-
group: utility
|
|
10
|
-
tools: "Read, Bash, Glob, Grep"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# git
|
|
14
|
-
|
|
15
|
-
## Purpose
|
|
16
|
-
|
|
17
|
-
Specialized git operations utility. Handles semantic commits, PR descriptions, branch naming, and changelog generation with consistent conventions. Replaces scattered git logic across cook Phase 7 and other skills with a single, convention-aware utility.
|
|
18
|
-
|
|
19
|
-
## Triggers
|
|
20
|
-
|
|
21
|
-
- Called by `cook` Phase 7 for commit creation
|
|
22
|
-
- Called by `scaffold` Phase 8 for initial commit
|
|
23
|
-
- Called by `team` for parallel branch/PR management
|
|
24
|
-
- Called by `docs` for changelog generation
|
|
25
|
-
- Called by `launch` for release tagging
|
|
26
|
-
- `/rune git commit` — manual semantic commit
|
|
27
|
-
- `/rune git pr` — manual PR generation
|
|
28
|
-
- `/rune git branch <description>` — generate branch name
|
|
29
|
-
- `/rune git changelog` — generate changelog from commits
|
|
30
|
-
- `/rune git release <version>` — create tagged release with changelog
|
|
31
|
-
|
|
32
|
-
## Calls (outbound)
|
|
33
|
-
|
|
34
|
-
None — pure L3 utility. Reads git state, produces git commands/output.
|
|
35
|
-
|
|
36
|
-
## Called By (inbound)
|
|
37
|
-
|
|
38
|
-
- `cook` (L1): Phase 7 — create semantic commit after implementation
|
|
39
|
-
- `scaffold` (L1): Phase 8 — initial commit with generated project
|
|
40
|
-
- `team` (L1): parallel PR management across workstreams
|
|
41
|
-
- `launch` (L1): release tagging and changelog
|
|
42
|
-
- `docs` (L2): changelog generation sub-workflow
|
|
43
|
-
- User: `/rune git` direct invocation
|
|
44
|
-
|
|
45
|
-
## Modes
|
|
46
|
-
|
|
47
|
-
### Commit Mode (default)
|
|
48
|
-
|
|
49
|
-
Analyze staged changes and produce a semantic commit.
|
|
50
|
-
|
|
51
|
-
### PR Mode
|
|
52
|
-
|
|
53
|
-
Analyze full branch diff against base and produce a pull request.
|
|
54
|
-
|
|
55
|
-
### Branch Mode
|
|
56
|
-
|
|
57
|
-
Generate a branch name from a task description.
|
|
58
|
-
|
|
59
|
-
### Changelog Mode
|
|
60
|
-
|
|
61
|
-
Generate changelog entries from commit history.
|
|
62
|
-
|
|
63
|
-
## Executable Steps
|
|
64
|
-
|
|
65
|
-
### Commit Mode
|
|
66
|
-
|
|
67
|
-
#### Step 1 — Analyze Staged Changes
|
|
68
|
-
|
|
69
|
-
Read `git diff --staged` and `git status`. Classify the change:
|
|
70
|
-
|
|
71
|
-
| Type | Signal | Prefix |
|
|
72
|
-
|------|--------|--------|
|
|
73
|
-
| New feature | New files, new exports, new routes | `feat` |
|
|
74
|
-
| Bug fix | Changed logic in existing code, test fix | `fix` |
|
|
75
|
-
| Refactor | Structural change, no behavior change | `refactor` |
|
|
76
|
-
| Test | Only test files changed | `test` |
|
|
77
|
-
| Documentation | Only .md, comments, JSDoc changed | `docs` |
|
|
78
|
-
| Build/CI | Config files, CI pipelines, Dockerfile | `chore` |
|
|
79
|
-
| Performance | Optimization, caching, query improvement | `perf` |
|
|
80
|
-
|
|
81
|
-
#### Step 2 — Detect Scope
|
|
82
|
-
|
|
83
|
-
Extract scope from file paths:
|
|
84
|
-
- `src/auth/*` → scope: `auth`
|
|
85
|
-
- `src/components/Button.tsx` → scope: `ui`
|
|
86
|
-
- `api/routes/users.ts` → scope: `api`
|
|
87
|
-
- Multiple directories → omit scope or use most relevant
|
|
88
|
-
- Root config files → scope: `config`
|
|
89
|
-
|
|
90
|
-
#### Step 3 — Generate Commit Message
|
|
91
|
-
|
|
92
|
-
Format: `<type>(<scope>): <description>`
|
|
93
|
-
|
|
94
|
-
Rules:
|
|
95
|
-
- Description: imperative mood, lowercase first letter, no period
|
|
96
|
-
- Max 72 characters for subject line
|
|
97
|
-
- If > 5 files changed → add body with bullet summary
|
|
98
|
-
- If breaking change detected (removed export, changed API signature, schema change) → add `!` suffix and `BREAKING CHANGE:` footer
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
feat(auth): add JWT refresh token rotation
|
|
102
|
-
|
|
103
|
-
- Add refresh token endpoint with sliding window expiry
|
|
104
|
-
- Store token family for reuse detection
|
|
105
|
-
- Add middleware to validate refresh tokens
|
|
106
|
-
|
|
107
|
-
BREAKING CHANGE: /api/auth/refresh now requires refresh_token in body instead of cookie
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
#### Step 4 — Execute
|
|
111
|
-
|
|
112
|
-
Run `git commit` with the generated message. If pre-commit hooks fail → report the failure, do not `--no-verify`.
|
|
113
|
-
|
|
114
|
-
### PR Mode
|
|
115
|
-
|
|
116
|
-
#### Step 1 — Analyze Branch
|
|
117
|
-
|
|
118
|
-
Read ALL commits on the current branch vs base branch using `git log <base>..HEAD` and `git diff <base>...HEAD`.
|
|
119
|
-
|
|
120
|
-
Do NOT just look at the latest commit — PRs include ALL branch commits.
|
|
121
|
-
|
|
122
|
-
#### Step 2 — Generate PR
|
|
123
|
-
|
|
124
|
-
```markdown
|
|
125
|
-
## Summary
|
|
126
|
-
<1-3 bullet points covering ALL changes, not just the last commit>
|
|
127
|
-
|
|
128
|
-
## Changes
|
|
129
|
-
- [grouped by feature/area]
|
|
130
|
-
|
|
131
|
-
## Test Plan
|
|
132
|
-
- [ ] [specific test scenarios]
|
|
133
|
-
|
|
134
|
-
## Breaking Changes
|
|
135
|
-
- [if any — list explicitly]
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Title: < 70 characters, descriptive of the full change set.
|
|
139
|
-
|
|
140
|
-
#### Step 3 — Execute
|
|
141
|
-
|
|
142
|
-
Run `gh pr create` with generated title and body. If no remote branch → push with `-u` first.
|
|
143
|
-
|
|
144
|
-
### Branch Mode
|
|
145
|
-
|
|
146
|
-
#### Step 1 — Parse Task
|
|
147
|
-
|
|
148
|
-
Extract key intent from task description:
|
|
149
|
-
- Feature → `feat/short-kebab-description`
|
|
150
|
-
- Bug fix → `fix/issue-number-or-description`
|
|
151
|
-
- Refactor → `refactor/module-name`
|
|
152
|
-
- Chore → `chore/description`
|
|
153
|
-
|
|
154
|
-
Rules:
|
|
155
|
-
- Max 50 characters total
|
|
156
|
-
- Kebab-case, no uppercase
|
|
157
|
-
- Include issue number if referenced: `fix/123-login-crash`
|
|
158
|
-
|
|
159
|
-
#### Step 2 — Execute
|
|
160
|
-
|
|
161
|
-
Run `git checkout -b <branch-name>` from current branch.
|
|
162
|
-
|
|
163
|
-
### Changelog Mode
|
|
164
|
-
|
|
165
|
-
#### Step 1 — Read History
|
|
166
|
-
|
|
167
|
-
Read commits since last tag (`git log $(git describe --tags --abbrev=0)..HEAD`) or since specified reference.
|
|
168
|
-
|
|
169
|
-
#### Step 2 — Group and Format
|
|
170
|
-
|
|
171
|
-
Group commits by conventional commit type. Format as [Keep a Changelog](https://keepachangelog.com/):
|
|
172
|
-
|
|
173
|
-
```markdown
|
|
174
|
-
## [Unreleased]
|
|
175
|
-
|
|
176
|
-
### Added
|
|
177
|
-
- New feature description (#PR)
|
|
178
|
-
|
|
179
|
-
### Fixed
|
|
180
|
-
- Bug fix description (#PR)
|
|
181
|
-
|
|
182
|
-
### Changed
|
|
183
|
-
- Change description (#PR)
|
|
184
|
-
|
|
185
|
-
### Removed
|
|
186
|
-
- Removed feature (#PR)
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
Link to PRs/issues when references found in commit messages.
|
|
190
|
-
|
|
191
|
-
### Release Mode
|
|
192
|
-
|
|
193
|
-
Create a version tag with release artifacts.
|
|
194
|
-
|
|
195
|
-
**Triggers:**
|
|
196
|
-
- `/rune git release <version>` — create release for specified version
|
|
197
|
-
- Called by `launch` (L1) during release pipeline
|
|
198
|
-
- Called by `deploy` (L2) after successful production deploy
|
|
199
|
-
|
|
200
|
-
#### Step 1 — Validate Version
|
|
201
|
-
|
|
202
|
-
Parse version string. Must follow semver (`major.minor.patch`):
|
|
203
|
-
- Breaking changes → major bump
|
|
204
|
-
- New features → minor bump
|
|
205
|
-
- Bug fixes → patch bump
|
|
206
|
-
|
|
207
|
-
Check `git tag -l` to ensure version doesn't already exist.
|
|
208
|
-
|
|
209
|
-
#### Step 2 — Generate Release Artifacts
|
|
210
|
-
|
|
211
|
-
1. **Changelog**: Run Changelog Mode to generate entries since last tag
|
|
212
|
-
2. **Version bump**: Update version in `package.json`, `pyproject.toml`, `Cargo.toml`, or equivalent
|
|
213
|
-
3. **Release notes**: Summarize changes for GitHub Release body
|
|
214
|
-
|
|
215
|
-
#### Step 3 — Tag and Push
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
git add <version-files>
|
|
219
|
-
git commit -m "chore: bump version to v<version>"
|
|
220
|
-
git tag -a v<version> -m "Release v<version>"
|
|
221
|
-
git push origin master --tags
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
#### Step 4 — Create GitHub Release
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
gh release create v<version> --title "v<version>" --notes "<release-notes>"
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
#### Step 5 — Notify
|
|
231
|
-
|
|
232
|
-
If deploy reports customer email list available (via rune-pay `/admin/emails`), flag for notification.
|
|
233
|
-
|
|
234
|
-
## Output Format
|
|
235
|
-
|
|
236
|
-
### Commit Mode
|
|
237
|
-
```
|
|
238
|
-
<type>(<scope>): <description>
|
|
239
|
-
|
|
240
|
-
[optional body — bullet summary if > 5 files changed]
|
|
241
|
-
|
|
242
|
-
[BREAKING CHANGE: description — if breaking change detected]
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
### PR Mode
|
|
246
|
-
```
|
|
247
|
-
Title: <type>: <short description> (< 70 chars)
|
|
248
|
-
|
|
249
|
-
## Summary
|
|
250
|
-
- [bullet points covering ALL branch changes]
|
|
251
|
-
|
|
252
|
-
## Changes
|
|
253
|
-
- [grouped by feature/area]
|
|
254
|
-
|
|
255
|
-
## Test Plan
|
|
256
|
-
- [ ] [specific test scenarios]
|
|
257
|
-
|
|
258
|
-
## Breaking Changes
|
|
259
|
-
- [if any]
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
### Branch Mode
|
|
263
|
-
```
|
|
264
|
-
<type>/<short-kebab-description>
|
|
265
|
-
```
|
|
266
|
-
Examples: `feat/jwt-refresh`, `fix/123-login-crash`, `refactor/auth-module`
|
|
267
|
-
|
|
268
|
-
### Changelog Mode
|
|
269
|
-
```markdown
|
|
270
|
-
## [Unreleased]
|
|
271
|
-
|
|
272
|
-
### Added
|
|
273
|
-
- Feature description (#PR)
|
|
274
|
-
|
|
275
|
-
### Fixed
|
|
276
|
-
- Bug fix description (#PR)
|
|
277
|
-
|
|
278
|
-
### Changed
|
|
279
|
-
- Change description (#PR)
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### Release Mode
|
|
283
|
-
```
|
|
284
|
-
## Release: v<version>
|
|
285
|
-
- **Tag**: v<version>
|
|
286
|
-
- **Commits**: [count] since last release
|
|
287
|
-
- **Changelog**: [path to CHANGELOG.md]
|
|
288
|
-
- **GitHub Release**: [URL]
|
|
289
|
-
- **Artifacts**: version bump, changelog, tag, release
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
## Constraints
|
|
293
|
-
|
|
294
|
-
1. MUST use conventional commit format — no freeform messages
|
|
295
|
-
2. MUST analyze full diff before generating message — don't guess from file names alone
|
|
296
|
-
3. MUST detect breaking changes — missing BREAKING CHANGE footer causes downstream issues
|
|
297
|
-
4. MUST NOT use `--no-verify` — if hooks fail, report and fix
|
|
298
|
-
5. MUST NOT force push unless explicitly requested by user
|
|
299
|
-
6. PR mode MUST analyze ALL commits on branch, not just the latest
|
|
300
|
-
7. MUST respect project's existing commit conventions if detected (check recent git log)
|
|
301
|
-
|
|
302
|
-
## Sharp Edges
|
|
303
|
-
|
|
304
|
-
| Failure Mode | Severity | Mitigation |
|
|
305
|
-
|---|---|---|
|
|
306
|
-
| Commit message doesn't match actual changes | HIGH | Step 1 reads full diff, not just file names |
|
|
307
|
-
| PR description covers only last commit | HIGH | Step 1 reads ALL commits on branch |
|
|
308
|
-
| Missing breaking change detection | HIGH | Check: removed exports, changed function signatures, schema changes |
|
|
309
|
-
| Branch name too long or has special characters | LOW | Max 50 chars, kebab-case only |
|
|
310
|
-
| Force push without user consent | CRITICAL | Constraint 5: never force push unless explicitly requested |
|
|
311
|
-
| Ignoring project's existing conventions | MEDIUM | Check recent `git log --oneline -10` for existing style |
|
|
312
|
-
|
|
313
|
-
## Done When
|
|
314
|
-
|
|
315
|
-
### Commit Mode
|
|
316
|
-
- Staged diff analyzed and change type classified
|
|
317
|
-
- Scope extracted from file paths
|
|
318
|
-
- Semantic commit message generated (subject + body if needed)
|
|
319
|
-
- Breaking changes detected and flagged
|
|
320
|
-
- Commit executed (or failure reported)
|
|
321
|
-
|
|
322
|
-
### PR Mode
|
|
323
|
-
- All branch commits analyzed (not just latest)
|
|
324
|
-
- Summary covers full change set
|
|
325
|
-
- Test plan included
|
|
326
|
-
- PR created with `gh pr create`
|
|
327
|
-
|
|
328
|
-
### Branch Mode
|
|
329
|
-
- Branch name follows convention
|
|
330
|
-
- Branch created from current HEAD
|
|
331
|
-
|
|
332
|
-
### Changelog Mode
|
|
333
|
-
- All commits since last tag grouped by type
|
|
334
|
-
- Formatted as Keep a Changelog
|
|
335
|
-
- PR/issue references linked
|
|
336
|
-
|
|
337
|
-
## Cost Profile
|
|
338
|
-
|
|
339
|
-
~500-2000 tokens input, ~200-800 tokens output. Haiku — git operations are mechanical and convention-based, no deep reasoning needed.
|
|
1
|
+
---
|
|
2
|
+
name: git
|
|
3
|
+
description: Specialized git operations — semantic commits, PR descriptions, branch management, conflict resolution guidance. Replaces ad-hoc git commands with a dedicated, convention-aware utility.
|
|
4
|
+
metadata:
|
|
5
|
+
author: runedev
|
|
6
|
+
version: "0.3.0"
|
|
7
|
+
layer: L3
|
|
8
|
+
model: haiku
|
|
9
|
+
group: utility
|
|
10
|
+
tools: "Read, Bash, Glob, Grep"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# git
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Specialized git operations utility. Handles semantic commits, PR descriptions, branch naming, and changelog generation with consistent conventions. Replaces scattered git logic across cook Phase 7 and other skills with a single, convention-aware utility.
|
|
18
|
+
|
|
19
|
+
## Triggers
|
|
20
|
+
|
|
21
|
+
- Called by `cook` Phase 7 for commit creation
|
|
22
|
+
- Called by `scaffold` Phase 8 for initial commit
|
|
23
|
+
- Called by `team` for parallel branch/PR management
|
|
24
|
+
- Called by `docs` for changelog generation
|
|
25
|
+
- Called by `launch` for release tagging
|
|
26
|
+
- `/rune git commit` — manual semantic commit
|
|
27
|
+
- `/rune git pr` — manual PR generation
|
|
28
|
+
- `/rune git branch <description>` — generate branch name
|
|
29
|
+
- `/rune git changelog` — generate changelog from commits
|
|
30
|
+
- `/rune git release <version>` — create tagged release with changelog
|
|
31
|
+
|
|
32
|
+
## Calls (outbound)
|
|
33
|
+
|
|
34
|
+
None — pure L3 utility. Reads git state, produces git commands/output.
|
|
35
|
+
|
|
36
|
+
## Called By (inbound)
|
|
37
|
+
|
|
38
|
+
- `cook` (L1): Phase 7 — create semantic commit after implementation
|
|
39
|
+
- `scaffold` (L1): Phase 8 — initial commit with generated project
|
|
40
|
+
- `team` (L1): parallel PR management across workstreams
|
|
41
|
+
- `launch` (L1): release tagging and changelog
|
|
42
|
+
- `docs` (L2): changelog generation sub-workflow
|
|
43
|
+
- User: `/rune git` direct invocation
|
|
44
|
+
|
|
45
|
+
## Modes
|
|
46
|
+
|
|
47
|
+
### Commit Mode (default)
|
|
48
|
+
|
|
49
|
+
Analyze staged changes and produce a semantic commit.
|
|
50
|
+
|
|
51
|
+
### PR Mode
|
|
52
|
+
|
|
53
|
+
Analyze full branch diff against base and produce a pull request.
|
|
54
|
+
|
|
55
|
+
### Branch Mode
|
|
56
|
+
|
|
57
|
+
Generate a branch name from a task description.
|
|
58
|
+
|
|
59
|
+
### Changelog Mode
|
|
60
|
+
|
|
61
|
+
Generate changelog entries from commit history.
|
|
62
|
+
|
|
63
|
+
## Executable Steps
|
|
64
|
+
|
|
65
|
+
### Commit Mode
|
|
66
|
+
|
|
67
|
+
#### Step 1 — Analyze Staged Changes
|
|
68
|
+
|
|
69
|
+
Read `git diff --staged` and `git status`. Classify the change:
|
|
70
|
+
|
|
71
|
+
| Type | Signal | Prefix |
|
|
72
|
+
|------|--------|--------|
|
|
73
|
+
| New feature | New files, new exports, new routes | `feat` |
|
|
74
|
+
| Bug fix | Changed logic in existing code, test fix | `fix` |
|
|
75
|
+
| Refactor | Structural change, no behavior change | `refactor` |
|
|
76
|
+
| Test | Only test files changed | `test` |
|
|
77
|
+
| Documentation | Only .md, comments, JSDoc changed | `docs` |
|
|
78
|
+
| Build/CI | Config files, CI pipelines, Dockerfile | `chore` |
|
|
79
|
+
| Performance | Optimization, caching, query improvement | `perf` |
|
|
80
|
+
|
|
81
|
+
#### Step 2 — Detect Scope
|
|
82
|
+
|
|
83
|
+
Extract scope from file paths:
|
|
84
|
+
- `src/auth/*` → scope: `auth`
|
|
85
|
+
- `src/components/Button.tsx` → scope: `ui`
|
|
86
|
+
- `api/routes/users.ts` → scope: `api`
|
|
87
|
+
- Multiple directories → omit scope or use most relevant
|
|
88
|
+
- Root config files → scope: `config`
|
|
89
|
+
|
|
90
|
+
#### Step 3 — Generate Commit Message
|
|
91
|
+
|
|
92
|
+
Format: `<type>(<scope>): <description>`
|
|
93
|
+
|
|
94
|
+
Rules:
|
|
95
|
+
- Description: imperative mood, lowercase first letter, no period
|
|
96
|
+
- Max 72 characters for subject line
|
|
97
|
+
- If > 5 files changed → add body with bullet summary
|
|
98
|
+
- If breaking change detected (removed export, changed API signature, schema change) → add `!` suffix and `BREAKING CHANGE:` footer
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
feat(auth): add JWT refresh token rotation
|
|
102
|
+
|
|
103
|
+
- Add refresh token endpoint with sliding window expiry
|
|
104
|
+
- Store token family for reuse detection
|
|
105
|
+
- Add middleware to validate refresh tokens
|
|
106
|
+
|
|
107
|
+
BREAKING CHANGE: /api/auth/refresh now requires refresh_token in body instead of cookie
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
#### Step 4 — Execute
|
|
111
|
+
|
|
112
|
+
Run `git commit` with the generated message. If pre-commit hooks fail → report the failure, do not `--no-verify`.
|
|
113
|
+
|
|
114
|
+
### PR Mode
|
|
115
|
+
|
|
116
|
+
#### Step 1 — Analyze Branch
|
|
117
|
+
|
|
118
|
+
Read ALL commits on the current branch vs base branch using `git log <base>..HEAD` and `git diff <base>...HEAD`.
|
|
119
|
+
|
|
120
|
+
Do NOT just look at the latest commit — PRs include ALL branch commits.
|
|
121
|
+
|
|
122
|
+
#### Step 2 — Generate PR
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## Summary
|
|
126
|
+
<1-3 bullet points covering ALL changes, not just the last commit>
|
|
127
|
+
|
|
128
|
+
## Changes
|
|
129
|
+
- [grouped by feature/area]
|
|
130
|
+
|
|
131
|
+
## Test Plan
|
|
132
|
+
- [ ] [specific test scenarios]
|
|
133
|
+
|
|
134
|
+
## Breaking Changes
|
|
135
|
+
- [if any — list explicitly]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Title: < 70 characters, descriptive of the full change set.
|
|
139
|
+
|
|
140
|
+
#### Step 3 — Execute
|
|
141
|
+
|
|
142
|
+
Run `gh pr create` with generated title and body. If no remote branch → push with `-u` first.
|
|
143
|
+
|
|
144
|
+
### Branch Mode
|
|
145
|
+
|
|
146
|
+
#### Step 1 — Parse Task
|
|
147
|
+
|
|
148
|
+
Extract key intent from task description:
|
|
149
|
+
- Feature → `feat/short-kebab-description`
|
|
150
|
+
- Bug fix → `fix/issue-number-or-description`
|
|
151
|
+
- Refactor → `refactor/module-name`
|
|
152
|
+
- Chore → `chore/description`
|
|
153
|
+
|
|
154
|
+
Rules:
|
|
155
|
+
- Max 50 characters total
|
|
156
|
+
- Kebab-case, no uppercase
|
|
157
|
+
- Include issue number if referenced: `fix/123-login-crash`
|
|
158
|
+
|
|
159
|
+
#### Step 2 — Execute
|
|
160
|
+
|
|
161
|
+
Run `git checkout -b <branch-name>` from current branch.
|
|
162
|
+
|
|
163
|
+
### Changelog Mode
|
|
164
|
+
|
|
165
|
+
#### Step 1 — Read History
|
|
166
|
+
|
|
167
|
+
Read commits since last tag (`git log $(git describe --tags --abbrev=0)..HEAD`) or since specified reference.
|
|
168
|
+
|
|
169
|
+
#### Step 2 — Group and Format
|
|
170
|
+
|
|
171
|
+
Group commits by conventional commit type. Format as [Keep a Changelog](https://keepachangelog.com/):
|
|
172
|
+
|
|
173
|
+
```markdown
|
|
174
|
+
## [Unreleased]
|
|
175
|
+
|
|
176
|
+
### Added
|
|
177
|
+
- New feature description (#PR)
|
|
178
|
+
|
|
179
|
+
### Fixed
|
|
180
|
+
- Bug fix description (#PR)
|
|
181
|
+
|
|
182
|
+
### Changed
|
|
183
|
+
- Change description (#PR)
|
|
184
|
+
|
|
185
|
+
### Removed
|
|
186
|
+
- Removed feature (#PR)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Link to PRs/issues when references found in commit messages.
|
|
190
|
+
|
|
191
|
+
### Release Mode
|
|
192
|
+
|
|
193
|
+
Create a version tag with release artifacts.
|
|
194
|
+
|
|
195
|
+
**Triggers:**
|
|
196
|
+
- `/rune git release <version>` — create release for specified version
|
|
197
|
+
- Called by `launch` (L1) during release pipeline
|
|
198
|
+
- Called by `deploy` (L2) after successful production deploy
|
|
199
|
+
|
|
200
|
+
#### Step 1 — Validate Version
|
|
201
|
+
|
|
202
|
+
Parse version string. Must follow semver (`major.minor.patch`):
|
|
203
|
+
- Breaking changes → major bump
|
|
204
|
+
- New features → minor bump
|
|
205
|
+
- Bug fixes → patch bump
|
|
206
|
+
|
|
207
|
+
Check `git tag -l` to ensure version doesn't already exist.
|
|
208
|
+
|
|
209
|
+
#### Step 2 — Generate Release Artifacts
|
|
210
|
+
|
|
211
|
+
1. **Changelog**: Run Changelog Mode to generate entries since last tag
|
|
212
|
+
2. **Version bump**: Update version in `package.json`, `pyproject.toml`, `Cargo.toml`, or equivalent
|
|
213
|
+
3. **Release notes**: Summarize changes for GitHub Release body
|
|
214
|
+
|
|
215
|
+
#### Step 3 — Tag and Push
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
git add <version-files>
|
|
219
|
+
git commit -m "chore: bump version to v<version>"
|
|
220
|
+
git tag -a v<version> -m "Release v<version>"
|
|
221
|
+
git push origin master --tags
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### Step 4 — Create GitHub Release
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
gh release create v<version> --title "v<version>" --notes "<release-notes>"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
#### Step 5 — Notify
|
|
231
|
+
|
|
232
|
+
If deploy reports customer email list available (via rune-pay `/admin/emails`), flag for notification.
|
|
233
|
+
|
|
234
|
+
## Output Format
|
|
235
|
+
|
|
236
|
+
### Commit Mode
|
|
237
|
+
```
|
|
238
|
+
<type>(<scope>): <description>
|
|
239
|
+
|
|
240
|
+
[optional body — bullet summary if > 5 files changed]
|
|
241
|
+
|
|
242
|
+
[BREAKING CHANGE: description — if breaking change detected]
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### PR Mode
|
|
246
|
+
```
|
|
247
|
+
Title: <type>: <short description> (< 70 chars)
|
|
248
|
+
|
|
249
|
+
## Summary
|
|
250
|
+
- [bullet points covering ALL branch changes]
|
|
251
|
+
|
|
252
|
+
## Changes
|
|
253
|
+
- [grouped by feature/area]
|
|
254
|
+
|
|
255
|
+
## Test Plan
|
|
256
|
+
- [ ] [specific test scenarios]
|
|
257
|
+
|
|
258
|
+
## Breaking Changes
|
|
259
|
+
- [if any]
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Branch Mode
|
|
263
|
+
```
|
|
264
|
+
<type>/<short-kebab-description>
|
|
265
|
+
```
|
|
266
|
+
Examples: `feat/jwt-refresh`, `fix/123-login-crash`, `refactor/auth-module`
|
|
267
|
+
|
|
268
|
+
### Changelog Mode
|
|
269
|
+
```markdown
|
|
270
|
+
## [Unreleased]
|
|
271
|
+
|
|
272
|
+
### Added
|
|
273
|
+
- Feature description (#PR)
|
|
274
|
+
|
|
275
|
+
### Fixed
|
|
276
|
+
- Bug fix description (#PR)
|
|
277
|
+
|
|
278
|
+
### Changed
|
|
279
|
+
- Change description (#PR)
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Release Mode
|
|
283
|
+
```
|
|
284
|
+
## Release: v<version>
|
|
285
|
+
- **Tag**: v<version>
|
|
286
|
+
- **Commits**: [count] since last release
|
|
287
|
+
- **Changelog**: [path to CHANGELOG.md]
|
|
288
|
+
- **GitHub Release**: [URL]
|
|
289
|
+
- **Artifacts**: version bump, changelog, tag, release
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Constraints
|
|
293
|
+
|
|
294
|
+
1. MUST use conventional commit format — no freeform messages
|
|
295
|
+
2. MUST analyze full diff before generating message — don't guess from file names alone
|
|
296
|
+
3. MUST detect breaking changes — missing BREAKING CHANGE footer causes downstream issues
|
|
297
|
+
4. MUST NOT use `--no-verify` — if hooks fail, report and fix
|
|
298
|
+
5. MUST NOT force push unless explicitly requested by user
|
|
299
|
+
6. PR mode MUST analyze ALL commits on branch, not just the latest
|
|
300
|
+
7. MUST respect project's existing commit conventions if detected (check recent git log)
|
|
301
|
+
|
|
302
|
+
## Sharp Edges
|
|
303
|
+
|
|
304
|
+
| Failure Mode | Severity | Mitigation |
|
|
305
|
+
|---|---|---|
|
|
306
|
+
| Commit message doesn't match actual changes | HIGH | Step 1 reads full diff, not just file names |
|
|
307
|
+
| PR description covers only last commit | HIGH | Step 1 reads ALL commits on branch |
|
|
308
|
+
| Missing breaking change detection | HIGH | Check: removed exports, changed function signatures, schema changes |
|
|
309
|
+
| Branch name too long or has special characters | LOW | Max 50 chars, kebab-case only |
|
|
310
|
+
| Force push without user consent | CRITICAL | Constraint 5: never force push unless explicitly requested |
|
|
311
|
+
| Ignoring project's existing conventions | MEDIUM | Check recent `git log --oneline -10` for existing style |
|
|
312
|
+
|
|
313
|
+
## Done When
|
|
314
|
+
|
|
315
|
+
### Commit Mode
|
|
316
|
+
- Staged diff analyzed and change type classified
|
|
317
|
+
- Scope extracted from file paths
|
|
318
|
+
- Semantic commit message generated (subject + body if needed)
|
|
319
|
+
- Breaking changes detected and flagged
|
|
320
|
+
- Commit executed (or failure reported)
|
|
321
|
+
|
|
322
|
+
### PR Mode
|
|
323
|
+
- All branch commits analyzed (not just latest)
|
|
324
|
+
- Summary covers full change set
|
|
325
|
+
- Test plan included
|
|
326
|
+
- PR created with `gh pr create`
|
|
327
|
+
|
|
328
|
+
### Branch Mode
|
|
329
|
+
- Branch name follows convention
|
|
330
|
+
- Branch created from current HEAD
|
|
331
|
+
|
|
332
|
+
### Changelog Mode
|
|
333
|
+
- All commits since last tag grouped by type
|
|
334
|
+
- Formatted as Keep a Changelog
|
|
335
|
+
- PR/issue references linked
|
|
336
|
+
|
|
337
|
+
## Cost Profile
|
|
338
|
+
|
|
339
|
+
~500-2000 tokens input, ~200-800 tokens output. Haiku — git operations are mechanical and convention-based, no deep reasoning needed.
|