bigpowers 2.87.7 β 2.88.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/.agents/skills/commit-message/SKILL.md +4 -2
- package/.agents/skills/kickoff-branch/SKILL.md +12 -7
- package/.agents/skills/release-branch/SKILL.md +12 -6
- package/.agents/skills/survey-context/SKILL.md +11 -6
- package/.cline/skills/commit-message/SKILL.md +4 -2
- package/.cline/skills/kickoff-branch/SKILL.md +12 -7
- package/.cline/skills/release-branch/SKILL.md +12 -6
- package/.cline/skills/survey-context/SKILL.md +11 -6
- package/.codebuddy/skills/commit-message/SKILL.md +4 -2
- package/.codebuddy/skills/kickoff-branch/SKILL.md +12 -7
- package/.codebuddy/skills/release-branch/SKILL.md +12 -6
- package/.codebuddy/skills/survey-context/SKILL.md +11 -6
- package/.codex/skills/commit-message/SKILL.md +4 -2
- package/.codex/skills/kickoff-branch/SKILL.md +12 -7
- package/.codex/skills/release-branch/SKILL.md +12 -6
- package/.codex/skills/survey-context/SKILL.md +11 -6
- package/.copilot/skills/commit-message/SKILL.md +4 -2
- package/.copilot/skills/kickoff-branch/SKILL.md +12 -7
- package/.copilot/skills/release-branch/SKILL.md +12 -6
- package/.copilot/skills/survey-context/SKILL.md +11 -6
- package/.cursor/rules/commit-message.mdc +4 -2
- package/.cursor/rules/kickoff-branch.mdc +12 -7
- package/.cursor/rules/release-branch.mdc +12 -6
- package/.cursor/rules/survey-context.mdc +11 -6
- package/.gemini/extensions/bigpowers/commands/prompts/commit-message.md +4 -2
- package/.gemini/extensions/bigpowers/commands/prompts/kickoff-branch.md +12 -7
- package/.gemini/extensions/bigpowers/commands/prompts/release-branch.md +12 -6
- package/.gemini/extensions/bigpowers/commands/prompts/survey-context.md +11 -6
- package/.gemini/extensions/bigpowers/gemini-extension.json +1 -1
- package/.gemini/extensions/bigpowers/skills/commit-message/SKILL.md +4 -2
- package/.gemini/extensions/bigpowers/skills/kickoff-branch/SKILL.md +12 -7
- package/.gemini/extensions/bigpowers/skills/release-branch/SKILL.md +12 -6
- package/.gemini/extensions/bigpowers/skills/survey-context/SKILL.md +11 -6
- package/.hermes/skills/commit-message/SKILL.md +4 -2
- package/.hermes/skills/kickoff-branch/SKILL.md +12 -7
- package/.hermes/skills/release-branch/SKILL.md +12 -6
- package/.hermes/skills/survey-context/SKILL.md +11 -6
- package/.kilocode/rules/commit-message.md +4 -2
- package/.kilocode/rules/kickoff-branch.md +12 -7
- package/.kilocode/rules/release-branch.md +12 -6
- package/.kilocode/rules/survey-context.md +11 -6
- package/.mimocode/skills/commit-message/SKILL.md +4 -2
- package/.mimocode/skills/kickoff-branch/SKILL.md +12 -7
- package/.mimocode/skills/release-branch/SKILL.md +12 -6
- package/.mimocode/skills/survey-context/SKILL.md +11 -6
- package/.opencode/skills/commit-message/SKILL.md +4 -2
- package/.opencode/skills/kickoff-branch/SKILL.md +12 -7
- package/.opencode/skills/release-branch/SKILL.md +12 -6
- package/.opencode/skills/survey-context/SKILL.md +11 -6
- package/.pi/package.json +1 -1
- package/.pi/prompts/commit-message.md +4 -2
- package/.pi/prompts/kickoff-branch.md +12 -7
- package/.pi/prompts/release-branch.md +12 -6
- package/.pi/prompts/survey-context.md +11 -6
- package/.pi/skills/commit-message/SKILL.md +4 -2
- package/.pi/skills/kickoff-branch/SKILL.md +12 -7
- package/.pi/skills/release-branch/SKILL.md +12 -6
- package/.pi/skills/survey-context/SKILL.md +11 -6
- package/.qwen/skills/commit-message/SKILL.md +4 -2
- package/.qwen/skills/kickoff-branch/SKILL.md +12 -7
- package/.qwen/skills/release-branch/SKILL.md +12 -6
- package/.qwen/skills/survey-context/SKILL.md +11 -6
- package/.trae/skills/commit-message/SKILL.md +4 -2
- package/.trae/skills/kickoff-branch/SKILL.md +12 -7
- package/.trae/skills/release-branch/SKILL.md +12 -6
- package/.trae/skills/survey-context/SKILL.md +11 -6
- package/.windsurf/rules/commit-message.md +4 -2
- package/.windsurf/rules/kickoff-branch.md +12 -7
- package/.windsurf/rules/release-branch.md +12 -6
- package/.windsurf/rules/survey-context.md +11 -6
- package/.zcode/skills/commit-message/SKILL.md +4 -2
- package/.zcode/skills/kickoff-branch/SKILL.md +12 -7
- package/.zcode/skills/release-branch/SKILL.md +12 -6
- package/.zcode/skills/survey-context/SKILL.md +11 -6
- package/CHANGELOG.md +14 -0
- package/CONTRIBUTORS.md +48 -0
- package/README.md +27 -0
- package/SKILL-INDEX.md +1 -1
- package/bin/bigpowers.js +8 -0
- package/bin/init.js +39 -0
- package/extensions/omp-hooks.ts +406 -0
- package/hooks/pre/bash.sh +47 -0
- package/package.json +6 -1
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
- package/scripts/lib/golden-suite-gates.sh +2 -0
- package/scripts/lib/install-helpers.js +53 -1
- package/scripts/lib/project-runtime.sh +110 -0
- package/scripts/omp-smoke.ts +82 -0
- package/scripts/test-install-helpers.js +88 -0
- package/scripts/test-project-runtime.sh +91 -0
- package/scripts/validate-omp-extension.sh +103 -0
- package/skills/commit-message/SKILL.md +4 -2
- package/skills/kickoff-branch/SKILL.md +12 -7
- package/skills/release-branch/SKILL.md +12 -6
- package/skills/survey-context/SKILL.md +11 -6
- package/skills-lock.json +5 -5
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Reviews working-tree changes, then drafts a Conventional Commits title/body and states the semantic-release version bump a single such commit would imply. Also notes which defensive-code categories were touched. Use when the user wants to commit recent work, prepare a Conventional Commits message, or asks for semantic-release / semver-consistent messaging before git commit."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Commit Message
|
|
8
10
|
> **HARD GATE** β **HARD GATE** β Commits must follow Conventional Commits spec (type(scope): description). Do NOT use vague messages like 'fix' or 'updates.' The message must explain the 'why,' not the 'what.'
|
|
9
11
|
|
|
@@ -15,7 +17,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
15
17
|
|
|
16
18
|
## What "last chat" means
|
|
17
19
|
|
|
18
|
-
- **Primary source of truth:** `git status`, `git diff
|
|
20
|
+
- **Primary source of truth:** Read `state.yaml` `vcs.kind`. Git uses `git status`, `git diff`, and `git diff --cached`; Jujutsu uses `jj status`, `jj diff`, and `jj log -r @`. Run in the repo root.
|
|
19
21
|
- **Context:** use the current conversation to summarize *intent* and to spot **breaking** API/behavior changes that diff alone may not show.
|
|
20
22
|
- If the user tracks a session baseline (e.g. branch, tag, or `git stash create` at start), you may `git diff <baseline>..HEAD` plus uncommitted diffs; otherwise use only the index and working tree.
|
|
21
23
|
|
|
@@ -30,7 +32,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
30
32
|
7. **Deliver** β Output:
|
|
31
33
|
- Proposed **full commit message** (title + optional body + footers).
|
|
32
34
|
- **Release bump** this commit would drive: `patch` | `minor` | `major` | `none`.
|
|
33
|
-
- Optional `git
|
|
35
|
+
- Optional native command: Git `git commit -m`; Jujutsu `jj commit -m`. Never omit `-m` or run destructive commands unless asked.
|
|
34
36
|
|
|
35
37
|
## Checklist before finalizing
|
|
36
38
|
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kickoff-branch
|
|
3
3
|
model: haiku
|
|
4
|
-
description: "Create
|
|
4
|
+
description: "Create an isolated Git worktree/branch or Jujutsu workspace, then verify a clean test baseline before code. Use when starting a feature or task."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# story: e51s03
|
|
8
8
|
# story: e20s03
|
|
9
|
+
# story: e82s02
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
# Kickoff Branch
|
|
12
13
|
|
|
13
|
-
> **HARD GATE** β Direct work on `main` or
|
|
14
|
+
> **HARD GATE** β Direct Git work on `main`/`master` or reuse of an unrelated Jujutsu change is prohibited. Create a feature branch/worktree or Jujutsu workspace/change.
|
|
14
15
|
>
|
|
15
16
|
> **HARD GATE** β Do NOT proceed with development until **Preflight** passes on the default branch. Red Preflight blocks branch creation and all forward work β invoke `quick-fix` or `fix-bug` per CONVENTIONS Β§ Discovered Defects.
|
|
16
17
|
|
|
17
|
-
Create an isolated
|
|
18
|
+
Create an isolated Git worktree or Jujutsu workspace before code. **Preflight must be green** first β solo-default owns the whole tree.
|
|
18
19
|
|
|
19
20
|
## Process
|
|
20
21
|
|
|
@@ -22,9 +23,13 @@ Create an isolated working environment before touching any code. **Preflight mus
|
|
|
22
23
|
|
|
23
24
|
Ask if not already known: "What's the name of this feature or task?" Use it as the branch name slug (kebab-case, max 40 chars).
|
|
24
25
|
|
|
25
|
-
### 2.
|
|
26
|
+
### 2. Select the VCS procedure
|
|
26
27
|
|
|
27
|
-
>
|
|
28
|
+
Read `state.yaml` `vcs.kind`. For `jj`, do not run the Git blocks below: verify with `jj status` and `jj log -r '::@' -n 5`, create isolation with `jj workspace add ../<task-slug> -r @`, then run `jj -R ../<task-slug> describe -m "feat: <task>"`. Record the new stable change ID. For `git`, continue below.
|
|
29
|
+
|
|
30
|
+
### 2a. Anchor Git on the default branch (main or master)
|
|
31
|
+
|
|
32
|
+
> **HARD GATE** β Git kickoff MUST start from an updated, clean default branch in the **primary** repository root (not a linked worktree).
|
|
28
33
|
|
|
29
34
|
```bash
|
|
30
35
|
# Detect default branch
|
|
@@ -63,7 +68,7 @@ fi
|
|
|
63
68
|
- **Non-spec dirty files** (src/, scripts/, SKILL.md, β¦) still enforce the full clean-tree gate.
|
|
64
69
|
- If not on `$DEFAULT` after checkout, stop and fix before continuing.
|
|
65
70
|
|
|
66
|
-
### 3.
|
|
71
|
+
### 3. Git pre-flight & conflict resolution
|
|
67
72
|
|
|
68
73
|
Before creating the worktree, verify the target environment is clean:
|
|
69
74
|
|
|
@@ -83,7 +88,7 @@ git worktree list | grep "<task-slug>"
|
|
|
83
88
|
- **Branch exists:** If the branch exists but no worktree is attached, ask to use the existing branch (`git worktree add ../<task-slug> <task-slug>`) or delete it.
|
|
84
89
|
- **Ghost worktree:** If `git worktree list` shows the path but the directory is missing, run `git worktree prune` to clear the stale metadata. `bash scripts/cleanup-worktrees.sh` does this plus reports any worktree whose branch is already merged or deleted β advisory only, it prints the `git worktree remove`/`git branch -d` commands rather than running them, so review before acting.
|
|
85
90
|
|
|
86
|
-
### 4. Create worktree + branch
|
|
91
|
+
### 4. Create Git worktree + branch
|
|
87
92
|
|
|
88
93
|
```bash
|
|
89
94
|
# From the main repo root (not another worktree)
|
|
@@ -8,6 +8,7 @@ description: "Make the merge/PR/keep/discard decision for a feature branch, veri
|
|
|
8
8
|
<!-- story: e45s15 -->
|
|
9
9
|
<!-- story: e45s32 -->
|
|
10
10
|
<!-- story: e45s39 -->
|
|
11
|
+
<!-- story: e82s02 -->
|
|
11
12
|
<!-- story: e20s02 -->
|
|
12
13
|
|
|
13
14
|
|
|
@@ -30,7 +31,7 @@ Read `specs/state.yaml` key `workflow_mode` (`team-pr` | `solo-git`). Fall back
|
|
|
30
31
|
| **solo-local** | `workflow_mode: solo-git` | Auto: `scripts/land-branch.sh` if present, else fallback (Step 5) |
|
|
31
32
|
| **team-pr** | `workflow_mode: team-pr` (default) | `gh pr create` β `gh pr merge --squash` |
|
|
32
33
|
|
|
33
|
-
If unsure, prefer **solo-local**.
|
|
34
|
+
If unsure, prefer **solo-local**. Also read `state.yaml` `vcs.kind`: Git follows the procedures below; Jujutsu uses workspaces/bookmarks and must not call Git-only landing scripts.
|
|
34
35
|
|
|
35
36
|
## Process
|
|
36
37
|
|
|
@@ -73,16 +74,21 @@ Run `gate-trace` before merge. FAIL blocks merge; CONCERNS requires explicit ove
|
|
|
73
74
|
|
|
74
75
|
Options: **Release (solo-local)** / **Open PR** / **Keep branch** / **Discard**
|
|
75
76
|
|
|
76
|
-
### 5.
|
|
77
|
+
### 5. Integrate
|
|
77
78
|
|
|
78
|
-
Run `commit-message`
|
|
79
|
+
Run `commit-message` first. Git solo-local uses `land-branch.sh`. Jujutsu team mode explicitly advances and pushes a bookmark; `-m` is mandatory for commit/describe operations:
|
|
79
80
|
|
|
80
81
|
```bash
|
|
81
|
-
#
|
|
82
|
+
# Git solo-local
|
|
82
83
|
bash scripts/land-branch.sh <task-slug> "feat(scope): description"
|
|
83
|
-
#
|
|
84
|
+
# Jujutsu team PR
|
|
85
|
+
jj describe -m "feat(scope): description"
|
|
86
|
+
jj bookmark set <task-slug> -r @
|
|
87
|
+
jj git push -b <task-slug>
|
|
84
88
|
```
|
|
85
89
|
|
|
90
|
+
Jujutsu solo-local landing is unsupported: run `bp_require_vcs_operation "$PWD" land-branch` and stop with its remediation instead of invoking the Git backend.
|
|
91
|
+
|
|
86
92
|
### 6. Create PR (team-pr only)
|
|
87
93
|
|
|
88
94
|
Create the pull request with a **literal provenance marker** in the body so agent-generated PRs are identifiable and do not rot silently:
|
|
@@ -131,7 +137,7 @@ bash scripts/wait-for-ci.sh --timeout 600 --interval 30
|
|
|
131
137
|
|
|
132
138
|
### 8. Clean up & return
|
|
133
139
|
|
|
134
|
-
|
|
140
|
+
Git: prune worktree, delete branch, return to main. Jujutsu: `jj workspace forget <workspace>` only after integration; do not delete its bookmark implicitly. Cycle-time: see [REFERENCE.md](REFERENCE.md#cycle-time).
|
|
135
141
|
|
|
136
142
|
Report: "Branch released."
|
|
137
143
|
|
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Per-task context bootstrap β reads existing specs/ and tech-architecture docs to map the current lifecycle phase and suggest the next skill. Use at the start of any task, when returning after a break, or when unsure what to do next. For deriving a tech-stack doc from scratch, use map-codebase first."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Survey Context
|
|
8
10
|
|
|
9
11
|
Read the project's current state and give a phase map + next-skill recommendation. This is the "where am I?" skill β run it at the start of every task.
|
|
@@ -51,15 +53,18 @@ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT if
|
|
|
51
53
|
|
|
52
54
|
If `CLAUDE.md` exists at the project root, read it for project context (stack, commands, architecture, conventions).
|
|
53
55
|
|
|
54
|
-
### 4. Check
|
|
56
|
+
### 4. Check VCS state
|
|
57
|
+
|
|
58
|
+
Read `state.yaml` `vcs.kind` (or resolve `auto`). Use native identity:
|
|
55
59
|
|
|
56
60
|
```bash
|
|
57
|
-
|
|
58
|
-
git log --oneline -5
|
|
59
|
-
|
|
61
|
+
# Git
|
|
62
|
+
git status --short; git log --oneline -5; git branch --show-current
|
|
63
|
+
# Jujutsu
|
|
64
|
+
jj status; jj log -r 'mine() & ::@' -n 5
|
|
60
65
|
```
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
For Jujutsu, compare stable change IDs and bookmarks with the `vcs` block; never interpret colocated Git's detached HEAD as branch state.
|
|
63
68
|
|
|
64
69
|
### 5. Map the lifecycle phase
|
|
65
70
|
|
|
@@ -124,7 +129,7 @@ Loop through all `specs/epics/*/epic.yaml` files and print a summary of story co
|
|
|
124
129
|
|
|
125
130
|
### check-gates (absorbed)
|
|
126
131
|
|
|
127
|
-
Print
|
|
132
|
+
Print `active_flow`, validate YAML, then show `git status` or `jj status` according to `vcs.kind`. Use before handoffs or context transitions.
|
|
128
133
|
|
|
129
134
|
## Handoff
|
|
130
135
|
|
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Reviews working-tree changes, then drafts a Conventional Commits title/body and states the semantic-release version bump a single such commit would imply. Also notes which defensive-code categories were touched. Use when the user wants to commit recent work, prepare a Conventional Commits message, or asks for semantic-release / semver-consistent messaging before git commit."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Commit Message
|
|
8
10
|
> **HARD GATE** β **HARD GATE** β Commits must follow Conventional Commits spec (type(scope): description). Do NOT use vague messages like 'fix' or 'updates.' The message must explain the 'why,' not the 'what.'
|
|
9
11
|
|
|
@@ -15,7 +17,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
15
17
|
|
|
16
18
|
## What "last chat" means
|
|
17
19
|
|
|
18
|
-
- **Primary source of truth:** `git status`, `git diff
|
|
20
|
+
- **Primary source of truth:** Read `state.yaml` `vcs.kind`. Git uses `git status`, `git diff`, and `git diff --cached`; Jujutsu uses `jj status`, `jj diff`, and `jj log -r @`. Run in the repo root.
|
|
19
21
|
- **Context:** use the current conversation to summarize *intent* and to spot **breaking** API/behavior changes that diff alone may not show.
|
|
20
22
|
- If the user tracks a session baseline (e.g. branch, tag, or `git stash create` at start), you may `git diff <baseline>..HEAD` plus uncommitted diffs; otherwise use only the index and working tree.
|
|
21
23
|
|
|
@@ -30,7 +32,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
30
32
|
7. **Deliver** β Output:
|
|
31
33
|
- Proposed **full commit message** (title + optional body + footers).
|
|
32
34
|
- **Release bump** this commit would drive: `patch` | `minor` | `major` | `none`.
|
|
33
|
-
- Optional `git
|
|
35
|
+
- Optional native command: Git `git commit -m`; Jujutsu `jj commit -m`. Never omit `-m` or run destructive commands unless asked.
|
|
34
36
|
|
|
35
37
|
## Checklist before finalizing
|
|
36
38
|
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kickoff-branch
|
|
3
3
|
model: haiku
|
|
4
|
-
description: "Create
|
|
4
|
+
description: "Create an isolated Git worktree/branch or Jujutsu workspace, then verify a clean test baseline before code. Use when starting a feature or task."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# story: e51s03
|
|
8
8
|
# story: e20s03
|
|
9
|
+
# story: e82s02
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
# Kickoff Branch
|
|
12
13
|
|
|
13
|
-
> **HARD GATE** β Direct work on `main` or
|
|
14
|
+
> **HARD GATE** β Direct Git work on `main`/`master` or reuse of an unrelated Jujutsu change is prohibited. Create a feature branch/worktree or Jujutsu workspace/change.
|
|
14
15
|
>
|
|
15
16
|
> **HARD GATE** β Do NOT proceed with development until **Preflight** passes on the default branch. Red Preflight blocks branch creation and all forward work β invoke `quick-fix` or `fix-bug` per CONVENTIONS Β§ Discovered Defects.
|
|
16
17
|
|
|
17
|
-
Create an isolated
|
|
18
|
+
Create an isolated Git worktree or Jujutsu workspace before code. **Preflight must be green** first β solo-default owns the whole tree.
|
|
18
19
|
|
|
19
20
|
## Process
|
|
20
21
|
|
|
@@ -22,9 +23,13 @@ Create an isolated working environment before touching any code. **Preflight mus
|
|
|
22
23
|
|
|
23
24
|
Ask if not already known: "What's the name of this feature or task?" Use it as the branch name slug (kebab-case, max 40 chars).
|
|
24
25
|
|
|
25
|
-
### 2.
|
|
26
|
+
### 2. Select the VCS procedure
|
|
26
27
|
|
|
27
|
-
>
|
|
28
|
+
Read `state.yaml` `vcs.kind`. For `jj`, do not run the Git blocks below: verify with `jj status` and `jj log -r '::@' -n 5`, create isolation with `jj workspace add ../<task-slug> -r @`, then run `jj -R ../<task-slug> describe -m "feat: <task>"`. Record the new stable change ID. For `git`, continue below.
|
|
29
|
+
|
|
30
|
+
### 2a. Anchor Git on the default branch (main or master)
|
|
31
|
+
|
|
32
|
+
> **HARD GATE** β Git kickoff MUST start from an updated, clean default branch in the **primary** repository root (not a linked worktree).
|
|
28
33
|
|
|
29
34
|
```bash
|
|
30
35
|
# Detect default branch
|
|
@@ -63,7 +68,7 @@ fi
|
|
|
63
68
|
- **Non-spec dirty files** (src/, scripts/, SKILL.md, β¦) still enforce the full clean-tree gate.
|
|
64
69
|
- If not on `$DEFAULT` after checkout, stop and fix before continuing.
|
|
65
70
|
|
|
66
|
-
### 3.
|
|
71
|
+
### 3. Git pre-flight & conflict resolution
|
|
67
72
|
|
|
68
73
|
Before creating the worktree, verify the target environment is clean:
|
|
69
74
|
|
|
@@ -83,7 +88,7 @@ git worktree list | grep "<task-slug>"
|
|
|
83
88
|
- **Branch exists:** If the branch exists but no worktree is attached, ask to use the existing branch (`git worktree add ../<task-slug> <task-slug>`) or delete it.
|
|
84
89
|
- **Ghost worktree:** If `git worktree list` shows the path but the directory is missing, run `git worktree prune` to clear the stale metadata. `bash scripts/cleanup-worktrees.sh` does this plus reports any worktree whose branch is already merged or deleted β advisory only, it prints the `git worktree remove`/`git branch -d` commands rather than running them, so review before acting.
|
|
85
90
|
|
|
86
|
-
### 4. Create worktree + branch
|
|
91
|
+
### 4. Create Git worktree + branch
|
|
87
92
|
|
|
88
93
|
```bash
|
|
89
94
|
# From the main repo root (not another worktree)
|
|
@@ -8,6 +8,7 @@ description: "Make the merge/PR/keep/discard decision for a feature branch, veri
|
|
|
8
8
|
<!-- story: e45s15 -->
|
|
9
9
|
<!-- story: e45s32 -->
|
|
10
10
|
<!-- story: e45s39 -->
|
|
11
|
+
<!-- story: e82s02 -->
|
|
11
12
|
<!-- story: e20s02 -->
|
|
12
13
|
|
|
13
14
|
|
|
@@ -30,7 +31,7 @@ Read `specs/state.yaml` key `workflow_mode` (`team-pr` | `solo-git`). Fall back
|
|
|
30
31
|
| **solo-local** | `workflow_mode: solo-git` | Auto: `scripts/land-branch.sh` if present, else fallback (Step 5) |
|
|
31
32
|
| **team-pr** | `workflow_mode: team-pr` (default) | `gh pr create` β `gh pr merge --squash` |
|
|
32
33
|
|
|
33
|
-
If unsure, prefer **solo-local**.
|
|
34
|
+
If unsure, prefer **solo-local**. Also read `state.yaml` `vcs.kind`: Git follows the procedures below; Jujutsu uses workspaces/bookmarks and must not call Git-only landing scripts.
|
|
34
35
|
|
|
35
36
|
## Process
|
|
36
37
|
|
|
@@ -73,16 +74,21 @@ Run `gate-trace` before merge. FAIL blocks merge; CONCERNS requires explicit ove
|
|
|
73
74
|
|
|
74
75
|
Options: **Release (solo-local)** / **Open PR** / **Keep branch** / **Discard**
|
|
75
76
|
|
|
76
|
-
### 5.
|
|
77
|
+
### 5. Integrate
|
|
77
78
|
|
|
78
|
-
Run `commit-message`
|
|
79
|
+
Run `commit-message` first. Git solo-local uses `land-branch.sh`. Jujutsu team mode explicitly advances and pushes a bookmark; `-m` is mandatory for commit/describe operations:
|
|
79
80
|
|
|
80
81
|
```bash
|
|
81
|
-
#
|
|
82
|
+
# Git solo-local
|
|
82
83
|
bash scripts/land-branch.sh <task-slug> "feat(scope): description"
|
|
83
|
-
#
|
|
84
|
+
# Jujutsu team PR
|
|
85
|
+
jj describe -m "feat(scope): description"
|
|
86
|
+
jj bookmark set <task-slug> -r @
|
|
87
|
+
jj git push -b <task-slug>
|
|
84
88
|
```
|
|
85
89
|
|
|
90
|
+
Jujutsu solo-local landing is unsupported: run `bp_require_vcs_operation "$PWD" land-branch` and stop with its remediation instead of invoking the Git backend.
|
|
91
|
+
|
|
86
92
|
### 6. Create PR (team-pr only)
|
|
87
93
|
|
|
88
94
|
Create the pull request with a **literal provenance marker** in the body so agent-generated PRs are identifiable and do not rot silently:
|
|
@@ -131,7 +137,7 @@ bash scripts/wait-for-ci.sh --timeout 600 --interval 30
|
|
|
131
137
|
|
|
132
138
|
### 8. Clean up & return
|
|
133
139
|
|
|
134
|
-
|
|
140
|
+
Git: prune worktree, delete branch, return to main. Jujutsu: `jj workspace forget <workspace>` only after integration; do not delete its bookmark implicitly. Cycle-time: see [REFERENCE.md](REFERENCE.md#cycle-time).
|
|
135
141
|
|
|
136
142
|
Report: "Branch released."
|
|
137
143
|
|
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Per-task context bootstrap β reads existing specs/ and tech-architecture docs to map the current lifecycle phase and suggest the next skill. Use at the start of any task, when returning after a break, or when unsure what to do next. For deriving a tech-stack doc from scratch, use map-codebase first."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Survey Context
|
|
8
10
|
|
|
9
11
|
Read the project's current state and give a phase map + next-skill recommendation. This is the "where am I?" skill β run it at the start of every task.
|
|
@@ -51,15 +53,18 @@ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT if
|
|
|
51
53
|
|
|
52
54
|
If `CLAUDE.md` exists at the project root, read it for project context (stack, commands, architecture, conventions).
|
|
53
55
|
|
|
54
|
-
### 4. Check
|
|
56
|
+
### 4. Check VCS state
|
|
57
|
+
|
|
58
|
+
Read `state.yaml` `vcs.kind` (or resolve `auto`). Use native identity:
|
|
55
59
|
|
|
56
60
|
```bash
|
|
57
|
-
|
|
58
|
-
git log --oneline -5
|
|
59
|
-
|
|
61
|
+
# Git
|
|
62
|
+
git status --short; git log --oneline -5; git branch --show-current
|
|
63
|
+
# Jujutsu
|
|
64
|
+
jj status; jj log -r 'mine() & ::@' -n 5
|
|
60
65
|
```
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
For Jujutsu, compare stable change IDs and bookmarks with the `vcs` block; never interpret colocated Git's detached HEAD as branch state.
|
|
63
68
|
|
|
64
69
|
### 5. Map the lifecycle phase
|
|
65
70
|
|
|
@@ -124,7 +129,7 @@ Loop through all `specs/epics/*/epic.yaml` files and print a summary of story co
|
|
|
124
129
|
|
|
125
130
|
### check-gates (absorbed)
|
|
126
131
|
|
|
127
|
-
Print
|
|
132
|
+
Print `active_flow`, validate YAML, then show `git status` or `jj status` according to `vcs.kind`. Use before handoffs or context transitions.
|
|
128
133
|
|
|
129
134
|
## Handoff
|
|
130
135
|
|
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Reviews working-tree changes, then drafts a Conventional Commits title/body and states the semantic-release version bump a single such commit would imply. Also notes which defensive-code categories were touched. Use when the user wants to commit recent work, prepare a Conventional Commits message, or asks for semantic-release / semver-consistent messaging before git commit."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Commit Message
|
|
8
10
|
> **HARD GATE** β **HARD GATE** β Commits must follow Conventional Commits spec (type(scope): description). Do NOT use vague messages like 'fix' or 'updates.' The message must explain the 'why,' not the 'what.'
|
|
9
11
|
|
|
@@ -15,7 +17,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
15
17
|
|
|
16
18
|
## What "last chat" means
|
|
17
19
|
|
|
18
|
-
- **Primary source of truth:** `git status`, `git diff
|
|
20
|
+
- **Primary source of truth:** Read `state.yaml` `vcs.kind`. Git uses `git status`, `git diff`, and `git diff --cached`; Jujutsu uses `jj status`, `jj diff`, and `jj log -r @`. Run in the repo root.
|
|
19
21
|
- **Context:** use the current conversation to summarize *intent* and to spot **breaking** API/behavior changes that diff alone may not show.
|
|
20
22
|
- If the user tracks a session baseline (e.g. branch, tag, or `git stash create` at start), you may `git diff <baseline>..HEAD` plus uncommitted diffs; otherwise use only the index and working tree.
|
|
21
23
|
|
|
@@ -30,7 +32,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
30
32
|
7. **Deliver** β Output:
|
|
31
33
|
- Proposed **full commit message** (title + optional body + footers).
|
|
32
34
|
- **Release bump** this commit would drive: `patch` | `minor` | `major` | `none`.
|
|
33
|
-
- Optional `git
|
|
35
|
+
- Optional native command: Git `git commit -m`; Jujutsu `jj commit -m`. Never omit `-m` or run destructive commands unless asked.
|
|
34
36
|
|
|
35
37
|
## Checklist before finalizing
|
|
36
38
|
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kickoff-branch
|
|
3
3
|
model: haiku
|
|
4
|
-
description: "Create
|
|
4
|
+
description: "Create an isolated Git worktree/branch or Jujutsu workspace, then verify a clean test baseline before code. Use when starting a feature or task."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# story: e51s03
|
|
8
8
|
# story: e20s03
|
|
9
|
+
# story: e82s02
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
# Kickoff Branch
|
|
12
13
|
|
|
13
|
-
> **HARD GATE** β Direct work on `main` or
|
|
14
|
+
> **HARD GATE** β Direct Git work on `main`/`master` or reuse of an unrelated Jujutsu change is prohibited. Create a feature branch/worktree or Jujutsu workspace/change.
|
|
14
15
|
>
|
|
15
16
|
> **HARD GATE** β Do NOT proceed with development until **Preflight** passes on the default branch. Red Preflight blocks branch creation and all forward work β invoke `quick-fix` or `fix-bug` per CONVENTIONS Β§ Discovered Defects.
|
|
16
17
|
|
|
17
|
-
Create an isolated
|
|
18
|
+
Create an isolated Git worktree or Jujutsu workspace before code. **Preflight must be green** first β solo-default owns the whole tree.
|
|
18
19
|
|
|
19
20
|
## Process
|
|
20
21
|
|
|
@@ -22,9 +23,13 @@ Create an isolated working environment before touching any code. **Preflight mus
|
|
|
22
23
|
|
|
23
24
|
Ask if not already known: "What's the name of this feature or task?" Use it as the branch name slug (kebab-case, max 40 chars).
|
|
24
25
|
|
|
25
|
-
### 2.
|
|
26
|
+
### 2. Select the VCS procedure
|
|
26
27
|
|
|
27
|
-
>
|
|
28
|
+
Read `state.yaml` `vcs.kind`. For `jj`, do not run the Git blocks below: verify with `jj status` and `jj log -r '::@' -n 5`, create isolation with `jj workspace add ../<task-slug> -r @`, then run `jj -R ../<task-slug> describe -m "feat: <task>"`. Record the new stable change ID. For `git`, continue below.
|
|
29
|
+
|
|
30
|
+
### 2a. Anchor Git on the default branch (main or master)
|
|
31
|
+
|
|
32
|
+
> **HARD GATE** β Git kickoff MUST start from an updated, clean default branch in the **primary** repository root (not a linked worktree).
|
|
28
33
|
|
|
29
34
|
```bash
|
|
30
35
|
# Detect default branch
|
|
@@ -63,7 +68,7 @@ fi
|
|
|
63
68
|
- **Non-spec dirty files** (src/, scripts/, SKILL.md, β¦) still enforce the full clean-tree gate.
|
|
64
69
|
- If not on `$DEFAULT` after checkout, stop and fix before continuing.
|
|
65
70
|
|
|
66
|
-
### 3.
|
|
71
|
+
### 3. Git pre-flight & conflict resolution
|
|
67
72
|
|
|
68
73
|
Before creating the worktree, verify the target environment is clean:
|
|
69
74
|
|
|
@@ -83,7 +88,7 @@ git worktree list | grep "<task-slug>"
|
|
|
83
88
|
- **Branch exists:** If the branch exists but no worktree is attached, ask to use the existing branch (`git worktree add ../<task-slug> <task-slug>`) or delete it.
|
|
84
89
|
- **Ghost worktree:** If `git worktree list` shows the path but the directory is missing, run `git worktree prune` to clear the stale metadata. `bash scripts/cleanup-worktrees.sh` does this plus reports any worktree whose branch is already merged or deleted β advisory only, it prints the `git worktree remove`/`git branch -d` commands rather than running them, so review before acting.
|
|
85
90
|
|
|
86
|
-
### 4. Create worktree + branch
|
|
91
|
+
### 4. Create Git worktree + branch
|
|
87
92
|
|
|
88
93
|
```bash
|
|
89
94
|
# From the main repo root (not another worktree)
|
|
@@ -8,6 +8,7 @@ description: "Make the merge/PR/keep/discard decision for a feature branch, veri
|
|
|
8
8
|
<!-- story: e45s15 -->
|
|
9
9
|
<!-- story: e45s32 -->
|
|
10
10
|
<!-- story: e45s39 -->
|
|
11
|
+
<!-- story: e82s02 -->
|
|
11
12
|
<!-- story: e20s02 -->
|
|
12
13
|
|
|
13
14
|
|
|
@@ -30,7 +31,7 @@ Read `specs/state.yaml` key `workflow_mode` (`team-pr` | `solo-git`). Fall back
|
|
|
30
31
|
| **solo-local** | `workflow_mode: solo-git` | Auto: `scripts/land-branch.sh` if present, else fallback (Step 5) |
|
|
31
32
|
| **team-pr** | `workflow_mode: team-pr` (default) | `gh pr create` β `gh pr merge --squash` |
|
|
32
33
|
|
|
33
|
-
If unsure, prefer **solo-local**.
|
|
34
|
+
If unsure, prefer **solo-local**. Also read `state.yaml` `vcs.kind`: Git follows the procedures below; Jujutsu uses workspaces/bookmarks and must not call Git-only landing scripts.
|
|
34
35
|
|
|
35
36
|
## Process
|
|
36
37
|
|
|
@@ -73,16 +74,21 @@ Run `gate-trace` before merge. FAIL blocks merge; CONCERNS requires explicit ove
|
|
|
73
74
|
|
|
74
75
|
Options: **Release (solo-local)** / **Open PR** / **Keep branch** / **Discard**
|
|
75
76
|
|
|
76
|
-
### 5.
|
|
77
|
+
### 5. Integrate
|
|
77
78
|
|
|
78
|
-
Run `commit-message`
|
|
79
|
+
Run `commit-message` first. Git solo-local uses `land-branch.sh`. Jujutsu team mode explicitly advances and pushes a bookmark; `-m` is mandatory for commit/describe operations:
|
|
79
80
|
|
|
80
81
|
```bash
|
|
81
|
-
#
|
|
82
|
+
# Git solo-local
|
|
82
83
|
bash scripts/land-branch.sh <task-slug> "feat(scope): description"
|
|
83
|
-
#
|
|
84
|
+
# Jujutsu team PR
|
|
85
|
+
jj describe -m "feat(scope): description"
|
|
86
|
+
jj bookmark set <task-slug> -r @
|
|
87
|
+
jj git push -b <task-slug>
|
|
84
88
|
```
|
|
85
89
|
|
|
90
|
+
Jujutsu solo-local landing is unsupported: run `bp_require_vcs_operation "$PWD" land-branch` and stop with its remediation instead of invoking the Git backend.
|
|
91
|
+
|
|
86
92
|
### 6. Create PR (team-pr only)
|
|
87
93
|
|
|
88
94
|
Create the pull request with a **literal provenance marker** in the body so agent-generated PRs are identifiable and do not rot silently:
|
|
@@ -131,7 +137,7 @@ bash scripts/wait-for-ci.sh --timeout 600 --interval 30
|
|
|
131
137
|
|
|
132
138
|
### 8. Clean up & return
|
|
133
139
|
|
|
134
|
-
|
|
140
|
+
Git: prune worktree, delete branch, return to main. Jujutsu: `jj workspace forget <workspace>` only after integration; do not delete its bookmark implicitly. Cycle-time: see [REFERENCE.md](REFERENCE.md#cycle-time).
|
|
135
141
|
|
|
136
142
|
Report: "Branch released."
|
|
137
143
|
|
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Per-task context bootstrap β reads existing specs/ and tech-architecture docs to map the current lifecycle phase and suggest the next skill. Use at the start of any task, when returning after a break, or when unsure what to do next. For deriving a tech-stack doc from scratch, use map-codebase first."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Survey Context
|
|
8
10
|
|
|
9
11
|
Read the project's current state and give a phase map + next-skill recommendation. This is the "where am I?" skill β run it at the start of every task.
|
|
@@ -51,15 +53,18 @@ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT if
|
|
|
51
53
|
|
|
52
54
|
If `CLAUDE.md` exists at the project root, read it for project context (stack, commands, architecture, conventions).
|
|
53
55
|
|
|
54
|
-
### 4. Check
|
|
56
|
+
### 4. Check VCS state
|
|
57
|
+
|
|
58
|
+
Read `state.yaml` `vcs.kind` (or resolve `auto`). Use native identity:
|
|
55
59
|
|
|
56
60
|
```bash
|
|
57
|
-
|
|
58
|
-
git log --oneline -5
|
|
59
|
-
|
|
61
|
+
# Git
|
|
62
|
+
git status --short; git log --oneline -5; git branch --show-current
|
|
63
|
+
# Jujutsu
|
|
64
|
+
jj status; jj log -r 'mine() & ::@' -n 5
|
|
60
65
|
```
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
For Jujutsu, compare stable change IDs and bookmarks with the `vcs` block; never interpret colocated Git's detached HEAD as branch state.
|
|
63
68
|
|
|
64
69
|
### 5. Map the lifecycle phase
|
|
65
70
|
|
|
@@ -124,7 +129,7 @@ Loop through all `specs/epics/*/epic.yaml` files and print a summary of story co
|
|
|
124
129
|
|
|
125
130
|
### check-gates (absorbed)
|
|
126
131
|
|
|
127
|
-
Print
|
|
132
|
+
Print `active_flow`, validate YAML, then show `git status` or `jj status` according to `vcs.kind`. Use before handoffs or context transitions.
|
|
128
133
|
|
|
129
134
|
## Handoff
|
|
130
135
|
|
|
@@ -4,6 +4,8 @@ model: haiku
|
|
|
4
4
|
description: "Reviews working-tree changes, then drafts a Conventional Commits title/body and states the semantic-release version bump a single such commit would imply. Also notes which defensive-code categories were touched. Use when the user wants to commit recent work, prepare a Conventional Commits message, or asks for semantic-release / semver-consistent messaging before git commit."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
# story: e82s02
|
|
8
|
+
|
|
7
9
|
# Commit Message
|
|
8
10
|
> **HARD GATE** β **HARD GATE** β Commits must follow Conventional Commits spec (type(scope): description). Do NOT use vague messages like 'fix' or 'updates.' The message must explain the 'why,' not the 'what.'
|
|
9
11
|
|
|
@@ -15,7 +17,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
15
17
|
|
|
16
18
|
## What "last chat" means
|
|
17
19
|
|
|
18
|
-
- **Primary source of truth:** `git status`, `git diff
|
|
20
|
+
- **Primary source of truth:** Read `state.yaml` `vcs.kind`. Git uses `git status`, `git diff`, and `git diff --cached`; Jujutsu uses `jj status`, `jj diff`, and `jj log -r @`. Run in the repo root.
|
|
19
21
|
- **Context:** use the current conversation to summarize *intent* and to spot **breaking** API/behavior changes that diff alone may not show.
|
|
20
22
|
- If the user tracks a session baseline (e.g. branch, tag, or `git stash create` at start), you may `git diff <baseline>..HEAD` plus uncommitted diffs; otherwise use only the index and working tree.
|
|
21
23
|
|
|
@@ -30,7 +32,7 @@ description: "Reviews working-tree changes, then drafts a Conventional Commits t
|
|
|
30
32
|
7. **Deliver** β Output:
|
|
31
33
|
- Proposed **full commit message** (title + optional body + footers).
|
|
32
34
|
- **Release bump** this commit would drive: `patch` | `minor` | `major` | `none`.
|
|
33
|
-
- Optional `git
|
|
35
|
+
- Optional native command: Git `git commit -m`; Jujutsu `jj commit -m`. Never omit `-m` or run destructive commands unless asked.
|
|
34
36
|
|
|
35
37
|
## Checklist before finalizing
|
|
36
38
|
|