@hopla/claude-setup 1.12.1 → 1.14.1
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +209 -144
- package/agents/system-reviewer.md +13 -0
- package/cli.js +301 -399
- package/commands/code-review-fix.md +1 -1
- package/commands/create-prd.md +1 -1
- package/commands/execute.md +27 -8
- package/commands/guide.md +14 -8
- package/commands/guides/ai-optimized-codebase.md +1 -1
- package/commands/guides/mcp-integration.md +3 -3
- package/commands/guides/remote-coding.md +3 -3
- package/commands/guides/review-checklist.md +5 -5
- package/commands/guides/scaling-beyond-engineering.md +6 -9
- package/commands/init-project.md +12 -10
- package/commands/plan-feature.md +18 -2
- package/commands/rca.md +9 -4
- package/commands/review-plan.md +2 -2
- package/commands/validate.md +2 -2
- package/global-rules.md +18 -50
- package/hooks/env-protect.js +39 -8
- package/hooks/hooks.json +1 -1
- package/hooks/session-prime.js +39 -12
- package/hooks/tsc-check.js +21 -10
- package/package.json +1 -1
- package/skills/brainstorm/SKILL.md +7 -2
- package/skills/code-review/SKILL.md +4 -2
- package/skills/debug/SKILL.md +8 -0
- package/skills/execution-report/SKILL.md +2 -2
- package/skills/git/commit.md +20 -3
- package/skills/git/flow-detection.md +68 -0
- package/skills/git/pr.md +46 -16
- package/skills/prime/SKILL.md +1 -1
- package/skills/subagent-execution/SKILL.md +1 -1
- package/skills/tdd/SKILL.md +1 -1
- package/skills/verify/SKILL.md +11 -1
- package/skills/worktree/SKILL.md +83 -38
- package/commands/end-to-end.md +0 -67
- package/commands/git-commit.md +0 -76
- package/commands/git-pr.md +0 -138
package/commands/git-commit.md
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create a conventional commit with Git Flow awareness
|
|
3
|
-
argument-hint: "[optional: commit message or scope]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
> 🌐 **Language:** All user-facing output must match the user's language. Code, paths, and commands stay in English.
|
|
7
|
-
|
|
8
|
-
Review the current git state and create an appropriate commit.
|
|
9
|
-
|
|
10
|
-
## Step 1: Gather Context
|
|
11
|
-
|
|
12
|
-
Run these commands to understand what changed:
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
git status
|
|
16
|
-
git diff --staged
|
|
17
|
-
git diff
|
|
18
|
-
git log --oneline -5
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Step 2: Analyze Changes
|
|
22
|
-
|
|
23
|
-
- Identify what was added, modified, or deleted
|
|
24
|
-
- Determine the appropriate commit type: `feat`, `fix`, `refactor`, `docs`, `test`, `chore`, `style`
|
|
25
|
-
- Identify the scope if relevant (e.g., `auth`, `api`, `ui`)
|
|
26
|
-
- Check current branch — confirm it follows Git Flow naming (`feature/`, `fix/`, `hotfix/`, `develop`, `dev`)
|
|
27
|
-
|
|
28
|
-
## Step 3: Stage Files
|
|
29
|
-
|
|
30
|
-
Stage only the relevant files for this commit (avoid `git add -A` unless all changes belong together):
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
git add <specific files>
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Step 4: Propose Commit
|
|
37
|
-
|
|
38
|
-
Present the proposed commit message to the user **before executing**:
|
|
39
|
-
|
|
40
|
-
> "Proposed commit:
|
|
41
|
-
> `feat(products): add price filter to search endpoint`
|
|
42
|
-
>
|
|
43
|
-
> Files included: [list files]
|
|
44
|
-
> Shall I proceed?"
|
|
45
|
-
|
|
46
|
-
Wait for explicit approval before running `git commit`.
|
|
47
|
-
|
|
48
|
-
## Step 5: Version Bump (if configured)
|
|
49
|
-
|
|
50
|
-
Before committing, check the project's `CLAUDE.md` for a `## Versioning` section. If it exists:
|
|
51
|
-
|
|
52
|
-
1. Read the versioning configuration (command, trigger, files)
|
|
53
|
-
2. Check if the **trigger condition** matches (e.g., specific branches, always, etc.)
|
|
54
|
-
3. If it matches, run the version bump command
|
|
55
|
-
4. Stage the version files alongside the other changes
|
|
56
|
-
|
|
57
|
-
If no `## Versioning` section exists in the project's `CLAUDE.md`, skip this step entirely.
|
|
58
|
-
|
|
59
|
-
## Step 6: Execute Commit
|
|
60
|
-
|
|
61
|
-
Once approved, create the commit:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
git commit -m "<type>(<scope>): <description>"
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Step 7: Push Reminder
|
|
68
|
-
|
|
69
|
-
After committing, remind the user:
|
|
70
|
-
|
|
71
|
-
> "Commit created locally. Do you want to push to `origin/<branch>`?"
|
|
72
|
-
|
|
73
|
-
**Never push automatically** — wait for explicit confirmation.
|
|
74
|
-
|
|
75
|
-
If the user confirms the push (or if the branch was already pushed), suggest:
|
|
76
|
-
> "Ready to create a Pull Request? Run `/hopla-git-pr` to create one."
|
package/commands/git-pr.md
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create a GitHub Pull Request with a structured description
|
|
3
|
-
argument-hint: "[optional: base branch, defaults to develop]"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
> 🌐 **Language:** All user-facing output must match the user's language. Code, paths, and commands stay in English.
|
|
7
|
-
|
|
8
|
-
Create a Pull Request on GitHub for the current branch.
|
|
9
|
-
|
|
10
|
-
## Step 1: Gather Context
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
git status
|
|
14
|
-
git branch --show-current
|
|
15
|
-
git log --oneline origin/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null | sed 's|.*/||' || echo 'develop')..HEAD
|
|
16
|
-
git diff --stat origin/$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null | sed 's|.*/||' || echo 'develop')..HEAD
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Read the following if they exist:
|
|
20
|
-
- The plan file in `.agents/plans/` related to this feature
|
|
21
|
-
- `CLAUDE.md` — for project context
|
|
22
|
-
|
|
23
|
-
## Step 2: Determine Base Branch
|
|
24
|
-
|
|
25
|
-
**If `$1` is provided**, use it as the base branch.
|
|
26
|
-
|
|
27
|
-
**Otherwise, infer from Git Flow branch naming:**
|
|
28
|
-
|
|
29
|
-
| Current branch prefix | Base branch |
|
|
30
|
-
|---|---|
|
|
31
|
-
| `feature/*` | `develop` or `dev` |
|
|
32
|
-
| `fix/*` | `develop` or `dev` |
|
|
33
|
-
| `hotfix/*` | `main` |
|
|
34
|
-
| `release/*` | `main` |
|
|
35
|
-
|
|
36
|
-
To resolve `develop` vs `dev`: run `git branch -r` and look for `origin/develop` or `origin/dev`. Use whichever exists.
|
|
37
|
-
|
|
38
|
-
**Guard rails:**
|
|
39
|
-
- If the current branch is `main`, `master`, `develop`, or `dev` → stop and warn: "You're on `[branch]` — PRs should come from feature branches."
|
|
40
|
-
- If the branch name doesn't match any Git Flow prefix → ask the user: "I can't determine the base branch from `[branch]`. Should this PR target `develop` or `main`?"
|
|
41
|
-
- **Always show the resolved base branch in Step 5** so the user can catch mistakes before the PR is created.
|
|
42
|
-
|
|
43
|
-
## Step 3: Check Push Status
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
git status
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
If the branch hasn't been pushed yet:
|
|
50
|
-
> "Branch not pushed yet. Push to origin first?"
|
|
51
|
-
|
|
52
|
-
Wait for confirmation before pushing:
|
|
53
|
-
```bash
|
|
54
|
-
git push -u origin <branch>
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Step 4: Build PR Description
|
|
58
|
-
|
|
59
|
-
Using the commits and plan context, draft:
|
|
60
|
-
|
|
61
|
-
**Title:** `[type(scope)]: short description` — match the main commit or feature name, max 70 chars
|
|
62
|
-
|
|
63
|
-
**Body:**
|
|
64
|
-
```markdown
|
|
65
|
-
## Summary
|
|
66
|
-
- [What was built — 2-3 bullets max]
|
|
67
|
-
|
|
68
|
-
## Changes
|
|
69
|
-
- [Key files modified and why]
|
|
70
|
-
|
|
71
|
-
## Test Plan
|
|
72
|
-
- [ ] [How to verify this works]
|
|
73
|
-
- [ ] [Edge cases to check]
|
|
74
|
-
|
|
75
|
-
## Related
|
|
76
|
-
- Plan: `.agents/plans/[feature-name].md` (if exists)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Step 5: Propose and Confirm
|
|
80
|
-
|
|
81
|
-
Show the proposed PR title and body to the user:
|
|
82
|
-
> "Proposed PR:
|
|
83
|
-
> Title: `[title]`
|
|
84
|
-
> Base: `[base branch]`
|
|
85
|
-
> [body preview]
|
|
86
|
-
> Shall I create it?"
|
|
87
|
-
|
|
88
|
-
Wait for explicit approval before creating.
|
|
89
|
-
|
|
90
|
-
## Step 6: Create PR
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
gh pr create --title "[title]" --body "[body]" --base [base-branch]
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
After creating, show the PR URL to the user.
|
|
97
|
-
|
|
98
|
-
**Never merge automatically** — the PR is for human review.
|
|
99
|
-
|
|
100
|
-
After showing the PR URL, suggest:
|
|
101
|
-
> "PR created. To complete the cycle, run `/hopla-execution-report` (if not done yet) and `/hopla-system-review` after the PR is merged."
|
|
102
|
-
|
|
103
|
-
## Step 7: Post-Merge Cleanup
|
|
104
|
-
|
|
105
|
-
After the user confirms the PR was approved and merged on GitHub, run the cleanup workflow based on the branch type:
|
|
106
|
-
|
|
107
|
-
### For feature and fix branches (merged to `dev`/`develop`):
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
git checkout [base-branch]
|
|
111
|
-
git pull origin [base-branch]
|
|
112
|
-
git branch -d [merged-branch]
|
|
113
|
-
git push origin --delete [merged-branch] 2>/dev/null # skip if GitHub already deleted it
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**Important:** When `dev` is merged to `main` via PR, do NOT pull `main` back into `dev` — `dev` already has all the commits. Only sync `main` → `dev` for hotfix/release branches (see below).
|
|
117
|
-
|
|
118
|
-
### Additional steps for `hotfix/*` and `release/*` ONLY:
|
|
119
|
-
|
|
120
|
-
These branches were merged to `main` but `develop` also needs the changes:
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
git checkout develop
|
|
124
|
-
git pull origin develop
|
|
125
|
-
git merge main
|
|
126
|
-
git push origin develop
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Then create a version tag:
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
git tag -a v[version] -m "Release [version]"
|
|
133
|
-
git push origin v[version]
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Ask the user for the version number before tagging.
|
|
137
|
-
|
|
138
|
-
**Always confirm each destructive action** (branch deletion, tag creation) before executing.
|