@sienklogic/plan-build-run 2.56.2 → 2.56.3
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/CHANGELOG.md +613 -606
- package/package.json +1 -1
- package/plugins/codex-pbr/AGENTS.md +8 -8
- package/plugins/codex-pbr/agents/executor.md +5 -5
- package/plugins/codex-pbr/agents/general.md +1 -1
- package/plugins/codex-pbr/references/config-reference.md +1 -1
- package/plugins/codex-pbr/references/git-integration.md +36 -21
- package/plugins/codex-pbr/skills/undo/SKILL.md +7 -7
- package/plugins/copilot-pbr/agents/executor.agent.md +5 -5
- package/plugins/copilot-pbr/agents/general.agent.md +1 -1
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/copilot-pbr/references/config-reference.md +1 -1
- package/plugins/copilot-pbr/references/git-integration.md +36 -21
- package/plugins/copilot-pbr/skills/begin/templates/config.json.tmpl +1 -1
- package/plugins/copilot-pbr/skills/undo/SKILL.md +7 -7
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor-pbr/agents/executor.md +5 -5
- package/plugins/cursor-pbr/agents/general.md +1 -1
- package/plugins/cursor-pbr/references/config-reference.md +1 -1
- package/plugins/cursor-pbr/references/git-integration.md +36 -21
- package/plugins/cursor-pbr/skills/begin/templates/config.json.tmpl +1 -1
- package/plugins/cursor-pbr/skills/undo/SKILL.md +7 -7
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/agents/executor.md +5 -5
- package/plugins/pbr/agents/general.md +1 -1
- package/plugins/pbr/references/archive/pbr-rules.md +1 -1
- package/plugins/pbr/references/config-reference.md +1 -1
- package/plugins/pbr/references/git-integration.md +36 -21
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +1 -1
- package/plugins/pbr/skills/undo/SKILL.md +7 -7
package/package.json
CHANGED
|
@@ -177,14 +177,14 @@ When executing a plan:
|
|
|
177
177
|
**Commit message format:**
|
|
178
178
|
|
|
179
179
|
```
|
|
180
|
-
{type}({
|
|
180
|
+
{type}({scope}): {description}
|
|
181
181
|
```
|
|
182
182
|
|
|
183
183
|
Examples:
|
|
184
|
-
- `feat(
|
|
185
|
-
- `fix(
|
|
186
|
-
- `test(
|
|
187
|
-
- `refactor(
|
|
184
|
+
- `feat(config): implement configuration loader`
|
|
185
|
+
- `fix(config): handle missing DB_PORT with default value`
|
|
186
|
+
- `test(config): add unit tests for config validation`
|
|
187
|
+
- `refactor(auth): extract auth middleware into separate module`
|
|
188
188
|
|
|
189
189
|
Types: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`
|
|
190
190
|
|
|
@@ -196,8 +196,8 @@ phase: "01-setup"
|
|
|
196
196
|
plan: "01-01"
|
|
197
197
|
status: "complete"
|
|
198
198
|
commits:
|
|
199
|
-
- "abc1234: feat(
|
|
200
|
-
- "def5678: feat(
|
|
199
|
+
- "abc1234: feat(config): implement configuration loader"
|
|
200
|
+
- "def5678: feat(database): create database connection module"
|
|
201
201
|
key_files:
|
|
202
202
|
- "src/config.ts"
|
|
203
203
|
- "src/database.ts"
|
|
@@ -291,7 +291,7 @@ Before any `git commit`, verify the message matches:
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
- **Valid types**: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`
|
|
294
|
-
- **Valid scopes**: `
|
|
294
|
+
- **Valid scopes**: a short descriptive word for what changed (e.g., `auth`, `config`, `executor`), `quick-NNN`, `planning`
|
|
295
295
|
- **Block the commit** if the format doesn't match — fix the message first
|
|
296
296
|
|
|
297
297
|
### Gate 2: Plan-Before-Build
|
|
@@ -100,7 +100,7 @@ One task = one commit. Exception: TDD tasks get 3 commits (RED, GREEN, REFACTOR)
|
|
|
100
100
|
### Commit Format
|
|
101
101
|
|
|
102
102
|
```
|
|
103
|
-
{type}({
|
|
103
|
+
{type}({scope}): {description}
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
| Type | When |
|
|
@@ -119,7 +119,7 @@ Stage only files listed in the task's `<files>`. If git commit fails with lock e
|
|
|
119
119
|
When the plan frontmatter contains a non-empty `closes_issues` array, append issue-closing syntax to the **final** commit body for the plan:
|
|
120
120
|
|
|
121
121
|
```
|
|
122
|
-
git commit -m "feat(
|
|
122
|
+
git commit -m "feat(auth): implement user auth
|
|
123
123
|
|
|
124
124
|
Closes #42
|
|
125
125
|
Closes #57"
|
|
@@ -217,9 +217,9 @@ When a task has `tdd="true"`, follow Red-Green-Refactor:
|
|
|
217
217
|
|
|
218
218
|
| Phase | Action | Test Must | Commit | If Wrong |
|
|
219
219
|
|-------|--------|-----------|--------|----------|
|
|
220
|
-
| RED | Write test from `<done>` | FAIL | `test(
|
|
221
|
-
| GREEN | Minimal code to pass | PASS | `
|
|
222
|
-
| REFACTOR | Clean up, keep behavior | PASS | `refactor(
|
|
220
|
+
| RED | Write test from `<done>` | FAIL | `test({scope}): RED - ...` | Passes? Fix test. |
|
|
221
|
+
| GREEN | Minimal code to pass | PASS | `refactor({scope}): GREEN - ...` | Fails? Fix code. |
|
|
222
|
+
| REFACTOR | Clean up, keep behavior | PASS | `refactor({scope}): REFACTOR - ...` | Breaks? Revert. |
|
|
223
223
|
|
|
224
224
|
---
|
|
225
225
|
|
|
@@ -50,7 +50,7 @@ This agent is available for ad-hoc `Task()` calls from skills or custom orchestr
|
|
|
50
50
|
|
|
51
51
|
All commits follow: `{type}({scope}): {description}`
|
|
52
52
|
- **Types**: feat, fix, refactor, test, docs, chore, wip
|
|
53
|
-
- **Scopes**:
|
|
53
|
+
- **Scopes**: descriptive word (e.g., `auth`, `api`, `executor`), `quick-{NNN}`, `planning`
|
|
54
54
|
|
|
55
55
|
## Self-Escalation
|
|
56
56
|
|
|
@@ -151,7 +151,7 @@ Controls git integration and branching strategy.
|
|
|
151
151
|
| Property | Type | Default | Description |
|
|
152
152
|
|----------|------|---------|-------------|
|
|
153
153
|
| `branching` | string | `none` | Branching strategy: `none`, `phase`, `milestone`, `disabled` |
|
|
154
|
-
| `commit_format` | string | `{type}({
|
|
154
|
+
| `commit_format` | string | `{type}({scope}): {description}` | Commit message template. Use a short descriptive word as the scope (e.g., `auth`, `config`, `executor`) rather than phase-plan numbers. |
|
|
155
155
|
| `phase_branch_template` | string | `plan-build-run/phase-{phase}-{slug}` | Phase branch name pattern |
|
|
156
156
|
| `milestone_branch_template` | string | `plan-build-run/{milestone}-{slug}` | Milestone branch name pattern |
|
|
157
157
|
| `mode` | string | `enabled` | Git mode: `enabled` or `disabled` |
|
|
@@ -7,23 +7,22 @@ Plan-Build-Run's commit conventions, commit points, branching strategy, and hook
|
|
|
7
7
|
## Commit Message Format
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
{type}({
|
|
10
|
+
{type}({scope}): {description}
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
### Components
|
|
14
14
|
|
|
15
15
|
| Part | Description | Example |
|
|
16
16
|
|------|-------------|---------|
|
|
17
|
-
| `{type}` | Conventional commit type | `feat`, `fix`, `
|
|
18
|
-
| `{
|
|
19
|
-
| `{
|
|
20
|
-
| `{description}` | Imperative, lowercase description | `implement discord oauth client` |
|
|
17
|
+
| `{type}` | Conventional commit type | `feat`, `fix`, `chore` |
|
|
18
|
+
| `{scope}` | Descriptive word for the area of change | `auth`, `executor`, `changelog` |
|
|
19
|
+
| `{description}` | Imperative, lowercase description | `add discord oauth flow` |
|
|
21
20
|
|
|
22
|
-
The format is configurable via `config.json` at `git.commit_format`. The default is `{type}({
|
|
21
|
+
The format is configurable via `config.json` at `git.commit_format`. The default is `{type}({scope}): {description}`.
|
|
23
22
|
|
|
24
23
|
### Full Example
|
|
25
24
|
```
|
|
26
|
-
feat(
|
|
25
|
+
feat(auth): implement discord oauth client
|
|
27
26
|
```
|
|
28
27
|
|
|
29
28
|
---
|
|
@@ -32,19 +31,35 @@ feat(02-01): implement discord oauth client
|
|
|
32
31
|
|
|
33
32
|
| Type | When to Use | Example |
|
|
34
33
|
|------|------------|---------|
|
|
35
|
-
| `feat` | New feature or functionality | `feat(
|
|
36
|
-
| `fix` | Bug fix (including during execution) | `fix(
|
|
37
|
-
| `refactor` | Code restructuring, no behavior change | `refactor(
|
|
38
|
-
| `test` | Adding or modifying tests | `test(
|
|
39
|
-
| `docs` | Documentation changes | `docs(
|
|
40
|
-
| `chore` | Build config, dependencies, tooling | `chore(
|
|
41
|
-
| `style` | Formatting, whitespace (no logic change) | `style(
|
|
34
|
+
| `feat` | New feature or functionality | `feat(auth): implement discord oauth client` |
|
|
35
|
+
| `fix` | Bug fix (including during execution) | `fix(api): handle null user profile from discord` |
|
|
36
|
+
| `refactor` | Code restructuring, no behavior change | `refactor(auth): extract token validation into helper` |
|
|
37
|
+
| `test` | Adding or modifying tests | `test(auth): add failing tests for oauth flow` |
|
|
38
|
+
| `docs` | Documentation changes | `docs(planning): add api endpoint documentation` |
|
|
39
|
+
| `chore` | Build config, dependencies, tooling | `chore(deps): configure typescript and eslint` |
|
|
40
|
+
| `style` | Formatting, whitespace (no logic change) | `style(auth): fix import ordering` |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Commit Type Discipline
|
|
45
|
+
|
|
46
|
+
| Type | Use For | Appears in Changelog |
|
|
47
|
+
|------|---------|---------------------|
|
|
48
|
+
| `feat` | User-visible features ONLY (new commands, new config options, changed behavior users notice) | YES |
|
|
49
|
+
| `fix` | Bug fixes users would notice | YES |
|
|
50
|
+
| `refactor` | Internal restructuring, TDD GREEN commits, code cleanup | No |
|
|
51
|
+
| `test` | Test additions including TDD RED commits | No |
|
|
52
|
+
| `docs` | Documentation (hidden — mostly planning artifacts) | No |
|
|
53
|
+
| `chore` | Build config, deps, tooling, internal scaffolding | No |
|
|
54
|
+
| `wip` | Work in progress (use sparingly) | No |
|
|
55
|
+
|
|
56
|
+
**TDD commits**: RED phase → `test({scope}): RED - ...`, GREEN phase → `refactor({scope}): GREEN - ...`, REFACTOR phase → `refactor({scope}): REFACTOR - ...`
|
|
42
57
|
|
|
43
58
|
---
|
|
44
59
|
|
|
45
60
|
## Special Commit Scopes
|
|
46
61
|
|
|
47
|
-
Beyond
|
|
62
|
+
Beyond descriptive scopes, Plan-Build-Run recognizes these additional patterns:
|
|
48
63
|
|
|
49
64
|
| Pattern | When Used | Example |
|
|
50
65
|
|---------|-----------|---------|
|
|
@@ -84,9 +99,9 @@ Each successfully completed plan task gets exactly one atomic commit. No more, n
|
|
|
84
99
|
TDD tasks (`tdd="true"`) produce exactly 3 commits following Red-Green-Refactor:
|
|
85
100
|
|
|
86
101
|
```
|
|
87
|
-
test(
|
|
88
|
-
|
|
89
|
-
refactor(
|
|
102
|
+
test(auth): RED - add failing tests for auth middleware
|
|
103
|
+
refactor(auth): GREEN - implement auth middleware to pass tests
|
|
104
|
+
refactor(auth): REFACTOR - extract token verification helper
|
|
90
105
|
```
|
|
91
106
|
|
|
92
107
|
### Commit Preconditions
|
|
@@ -125,15 +140,15 @@ When an executor applies a deviation rule during a task, the deviation is includ
|
|
|
125
140
|
```bash
|
|
126
141
|
# Standard task
|
|
127
142
|
git add src/auth/discord.ts src/auth/types.ts
|
|
128
|
-
git commit -m "feat(
|
|
143
|
+
git commit -m "feat(auth): implement Discord OAuth client with token exchange"
|
|
129
144
|
|
|
130
145
|
# Task that also installed a dependency (Rule 2)
|
|
131
146
|
git add src/auth/discord.ts src/auth/types.ts package.json package-lock.json
|
|
132
|
-
git commit -m "feat(
|
|
147
|
+
git commit -m "feat(auth): implement Discord OAuth client with token exchange"
|
|
133
148
|
|
|
134
149
|
# TDD RED
|
|
135
150
|
git add tests/auth/discord.test.ts
|
|
136
|
-
git commit -m "test(
|
|
151
|
+
git commit -m "test(auth): add failing tests for Discord OAuth flow"
|
|
137
152
|
```
|
|
138
153
|
|
|
139
154
|
---
|
|
@@ -63,9 +63,9 @@ Present grouped output:
|
|
|
63
63
|
```
|
|
64
64
|
Recent PBR commits (grouped by scope):
|
|
65
65
|
|
|
66
|
-
[
|
|
67
|
-
abc1234 feat(
|
|
68
|
-
def5678 chore(
|
|
66
|
+
[undo]
|
|
67
|
+
abc1234 feat(undo): add undo skill
|
|
68
|
+
def5678 chore(undo): register undo command
|
|
69
69
|
|
|
70
70
|
[quick-003]
|
|
71
71
|
ghi9012 fix(quick-003): fix hook path resolution
|
|
@@ -74,7 +74,7 @@ Recent PBR commits (grouped by scope):
|
|
|
74
74
|
jkl3456 docs(planning): update roadmap phase 55
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
For phase-plan scopes (NN-MM pattern), add a "Phase NN, Plan MM" annotation.
|
|
77
|
+
For descriptive scopes, show just the scope label. For phase-plan scopes (NN-MM pattern, from older commits), add a "Phase NN, Plan MM" annotation.
|
|
78
78
|
|
|
79
79
|
---
|
|
80
80
|
|
|
@@ -102,8 +102,8 @@ Display the commits that will be reverted:
|
|
|
102
102
|
```
|
|
103
103
|
The following commits will be reverted (using git revert, NOT git reset):
|
|
104
104
|
|
|
105
|
-
abc1234 feat(
|
|
106
|
-
def5678 chore(
|
|
105
|
+
abc1234 feat(undo): add undo skill
|
|
106
|
+
def5678 chore(undo): register undo command
|
|
107
107
|
|
|
108
108
|
This creates new revert commits — your history is preserved.
|
|
109
109
|
```
|
|
@@ -125,7 +125,7 @@ git revert --no-commit {hash}
|
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
After all reverts are staged, determine the commit message:
|
|
128
|
-
- Extract scope from the first commit being reverted (e.g., `
|
|
128
|
+
- Extract scope from the first commit being reverted (e.g., `undo`, `auth`, `executor`)
|
|
129
129
|
- If reverting a **single commit**: `revert({scope}): undo {original description}`
|
|
130
130
|
- If reverting **multiple commits**: `revert({scope}): undo {N} commits from {scope}`
|
|
131
131
|
|
|
@@ -100,7 +100,7 @@ One task = one commit. Exception: TDD tasks get 3 commits (RED, GREEN, REFACTOR)
|
|
|
100
100
|
### Commit Format
|
|
101
101
|
|
|
102
102
|
```
|
|
103
|
-
{type}({
|
|
103
|
+
{type}({scope}): {description}
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
| Type | When |
|
|
@@ -119,7 +119,7 @@ Stage only files listed in the task's `<files>`. If git commit fails with lock e
|
|
|
119
119
|
When the plan frontmatter contains a non-empty `closes_issues` array, append issue-closing syntax to the **final** commit body for the plan:
|
|
120
120
|
|
|
121
121
|
```
|
|
122
|
-
git commit -m "feat(
|
|
122
|
+
git commit -m "feat(auth): implement user auth
|
|
123
123
|
|
|
124
124
|
Closes #42
|
|
125
125
|
Closes #57"
|
|
@@ -217,9 +217,9 @@ When a task has `tdd="true"`, follow Red-Green-Refactor:
|
|
|
217
217
|
|
|
218
218
|
| Phase | Action | Test Must | Commit | If Wrong |
|
|
219
219
|
|-------|--------|-----------|--------|----------|
|
|
220
|
-
| RED | Write test from `<done>` | FAIL | `test(
|
|
221
|
-
| GREEN | Minimal code to pass | PASS | `
|
|
222
|
-
| REFACTOR | Clean up, keep behavior | PASS | `refactor(
|
|
220
|
+
| RED | Write test from `<done>` | FAIL | `test({scope}): RED - ...` | Passes? Fix test. |
|
|
221
|
+
| GREEN | Minimal code to pass | PASS | `refactor({scope}): GREEN - ...` | Fails? Fix code. |
|
|
222
|
+
| REFACTOR | Clean up, keep behavior | PASS | `refactor({scope}): REFACTOR - ...` | Breaks? Revert. |
|
|
223
223
|
|
|
224
224
|
---
|
|
225
225
|
|
|
@@ -50,7 +50,7 @@ This agent is available for ad-hoc `Task()` calls from skills or custom orchestr
|
|
|
50
50
|
|
|
51
51
|
All commits follow: `{type}({scope}): {description}`
|
|
52
52
|
- **Types**: feat, fix, refactor, test, docs, chore, wip
|
|
53
|
-
- **Scopes**:
|
|
53
|
+
- **Scopes**: descriptive word (e.g., `auth`, `api`, `executor`), `quick-{NNN}`, `planning`
|
|
54
54
|
|
|
55
55
|
## Self-Escalation
|
|
56
56
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.56.
|
|
4
|
+
"version": "2.56.3",
|
|
5
5
|
"description": "Plan-Build-Run — Structured development workflow for GitHub Copilot CLI. Solves context rot through disciplined agent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SienkLogic",
|
|
@@ -151,7 +151,7 @@ Controls git integration and branching strategy.
|
|
|
151
151
|
| Property | Type | Default | Description |
|
|
152
152
|
|----------|------|---------|-------------|
|
|
153
153
|
| `branching` | string | `none` | Branching strategy: `none`, `phase`, `milestone`, `disabled` |
|
|
154
|
-
| `commit_format` | string | `{type}({
|
|
154
|
+
| `commit_format` | string | `{type}({scope}): {description}` | Commit message template. Use a short descriptive word as the scope (e.g., `auth`, `config`, `executor`) rather than phase-plan numbers. |
|
|
155
155
|
| `phase_branch_template` | string | `plan-build-run/phase-{phase}-{slug}` | Phase branch name pattern |
|
|
156
156
|
| `milestone_branch_template` | string | `plan-build-run/{milestone}-{slug}` | Milestone branch name pattern |
|
|
157
157
|
| `mode` | string | `enabled` | Git mode: `enabled` or `disabled` |
|
|
@@ -7,23 +7,22 @@ Plan-Build-Run's commit conventions, commit points, branching strategy, and hook
|
|
|
7
7
|
## Commit Message Format
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
{type}({
|
|
10
|
+
{type}({scope}): {description}
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
### Components
|
|
14
14
|
|
|
15
15
|
| Part | Description | Example |
|
|
16
16
|
|------|-------------|---------|
|
|
17
|
-
| `{type}` | Conventional commit type | `feat`, `fix`, `
|
|
18
|
-
| `{
|
|
19
|
-
| `{
|
|
20
|
-
| `{description}` | Imperative, lowercase description | `implement discord oauth client` |
|
|
17
|
+
| `{type}` | Conventional commit type | `feat`, `fix`, `chore` |
|
|
18
|
+
| `{scope}` | Descriptive word for the area of change | `auth`, `executor`, `changelog` |
|
|
19
|
+
| `{description}` | Imperative, lowercase description | `add discord oauth flow` |
|
|
21
20
|
|
|
22
|
-
The format is configurable via `config.json` at `git.commit_format`. The default is `{type}({
|
|
21
|
+
The format is configurable via `config.json` at `git.commit_format`. The default is `{type}({scope}): {description}`.
|
|
23
22
|
|
|
24
23
|
### Full Example
|
|
25
24
|
```
|
|
26
|
-
feat(
|
|
25
|
+
feat(auth): implement discord oauth client
|
|
27
26
|
```
|
|
28
27
|
|
|
29
28
|
---
|
|
@@ -32,19 +31,35 @@ feat(02-01): implement discord oauth client
|
|
|
32
31
|
|
|
33
32
|
| Type | When to Use | Example |
|
|
34
33
|
|------|------------|---------|
|
|
35
|
-
| `feat` | New feature or functionality | `feat(
|
|
36
|
-
| `fix` | Bug fix (including during execution) | `fix(
|
|
37
|
-
| `refactor` | Code restructuring, no behavior change | `refactor(
|
|
38
|
-
| `test` | Adding or modifying tests | `test(
|
|
39
|
-
| `docs` | Documentation changes | `docs(
|
|
40
|
-
| `chore` | Build config, dependencies, tooling | `chore(
|
|
41
|
-
| `style` | Formatting, whitespace (no logic change) | `style(
|
|
34
|
+
| `feat` | New feature or functionality | `feat(auth): implement discord oauth client` |
|
|
35
|
+
| `fix` | Bug fix (including during execution) | `fix(api): handle null user profile from discord` |
|
|
36
|
+
| `refactor` | Code restructuring, no behavior change | `refactor(auth): extract token validation into helper` |
|
|
37
|
+
| `test` | Adding or modifying tests | `test(auth): add failing tests for oauth flow` |
|
|
38
|
+
| `docs` | Documentation changes | `docs(planning): add api endpoint documentation` |
|
|
39
|
+
| `chore` | Build config, dependencies, tooling | `chore(deps): configure typescript and eslint` |
|
|
40
|
+
| `style` | Formatting, whitespace (no logic change) | `style(auth): fix import ordering` |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Commit Type Discipline
|
|
45
|
+
|
|
46
|
+
| Type | Use For | Appears in Changelog |
|
|
47
|
+
|------|---------|---------------------|
|
|
48
|
+
| `feat` | User-visible features ONLY (new commands, new config options, changed behavior users notice) | YES |
|
|
49
|
+
| `fix` | Bug fixes users would notice | YES |
|
|
50
|
+
| `refactor` | Internal restructuring, TDD GREEN commits, code cleanup | No |
|
|
51
|
+
| `test` | Test additions including TDD RED commits | No |
|
|
52
|
+
| `docs` | Documentation (hidden — mostly planning artifacts) | No |
|
|
53
|
+
| `chore` | Build config, deps, tooling, internal scaffolding | No |
|
|
54
|
+
| `wip` | Work in progress (use sparingly) | No |
|
|
55
|
+
|
|
56
|
+
**TDD commits**: RED phase → `test({scope}): RED - ...`, GREEN phase → `refactor({scope}): GREEN - ...`, REFACTOR phase → `refactor({scope}): REFACTOR - ...`
|
|
42
57
|
|
|
43
58
|
---
|
|
44
59
|
|
|
45
60
|
## Special Commit Scopes
|
|
46
61
|
|
|
47
|
-
Beyond
|
|
62
|
+
Beyond descriptive scopes, Plan-Build-Run recognizes these additional patterns:
|
|
48
63
|
|
|
49
64
|
| Pattern | When Used | Example |
|
|
50
65
|
|---------|-----------|---------|
|
|
@@ -84,9 +99,9 @@ Each successfully completed plan task gets exactly one atomic commit. No more, n
|
|
|
84
99
|
TDD tasks (`tdd="true"`) produce exactly 3 commits following Red-Green-Refactor:
|
|
85
100
|
|
|
86
101
|
```
|
|
87
|
-
test(
|
|
88
|
-
|
|
89
|
-
refactor(
|
|
102
|
+
test(auth): RED - add failing tests for auth middleware
|
|
103
|
+
refactor(auth): GREEN - implement auth middleware to pass tests
|
|
104
|
+
refactor(auth): REFACTOR - extract token verification helper
|
|
90
105
|
```
|
|
91
106
|
|
|
92
107
|
### Commit Preconditions
|
|
@@ -125,15 +140,15 @@ When an executor applies a deviation rule during a task, the deviation is includ
|
|
|
125
140
|
```bash
|
|
126
141
|
# Standard task
|
|
127
142
|
git add src/auth/discord.ts src/auth/types.ts
|
|
128
|
-
git commit -m "feat(
|
|
143
|
+
git commit -m "feat(auth): implement Discord OAuth client with token exchange"
|
|
129
144
|
|
|
130
145
|
# Task that also installed a dependency (Rule 2)
|
|
131
146
|
git add src/auth/discord.ts src/auth/types.ts package.json package-lock.json
|
|
132
|
-
git commit -m "feat(
|
|
147
|
+
git commit -m "feat(auth): implement Discord OAuth client with token exchange"
|
|
133
148
|
|
|
134
149
|
# TDD RED
|
|
135
150
|
git add tests/auth/discord.test.ts
|
|
136
|
-
git commit -m "test(
|
|
151
|
+
git commit -m "test(auth): add failing tests for Discord OAuth flow"
|
|
137
152
|
```
|
|
138
153
|
|
|
139
154
|
---
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"git": {
|
|
46
46
|
"branching": "none",
|
|
47
|
-
"commit_format": "{type}({
|
|
47
|
+
"commit_format": "{type}({scope}): {description}",
|
|
48
48
|
"phase_branch_template": "plan-build-run/phase-{phase}-{slug}",
|
|
49
49
|
"milestone_branch_template": "plan-build-run/{milestone}-{slug}",
|
|
50
50
|
"mode": "enabled"
|
|
@@ -63,9 +63,9 @@ Present grouped output:
|
|
|
63
63
|
```
|
|
64
64
|
Recent PBR commits (grouped by scope):
|
|
65
65
|
|
|
66
|
-
[
|
|
67
|
-
abc1234 feat(
|
|
68
|
-
def5678 chore(
|
|
66
|
+
[undo]
|
|
67
|
+
abc1234 feat(undo): add undo skill
|
|
68
|
+
def5678 chore(undo): register undo command
|
|
69
69
|
|
|
70
70
|
[quick-003]
|
|
71
71
|
ghi9012 fix(quick-003): fix hook path resolution
|
|
@@ -74,7 +74,7 @@ Recent PBR commits (grouped by scope):
|
|
|
74
74
|
jkl3456 docs(planning): update roadmap phase 55
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
For phase-plan scopes (NN-MM pattern), add a "Phase NN, Plan MM" annotation.
|
|
77
|
+
For descriptive scopes, show just the scope label. For phase-plan scopes (NN-MM pattern, from older commits), add a "Phase NN, Plan MM" annotation.
|
|
78
78
|
|
|
79
79
|
---
|
|
80
80
|
|
|
@@ -102,8 +102,8 @@ Display the commits that will be reverted:
|
|
|
102
102
|
```
|
|
103
103
|
The following commits will be reverted (using git revert, NOT git reset):
|
|
104
104
|
|
|
105
|
-
abc1234 feat(
|
|
106
|
-
def5678 chore(
|
|
105
|
+
abc1234 feat(undo): add undo skill
|
|
106
|
+
def5678 chore(undo): register undo command
|
|
107
107
|
|
|
108
108
|
This creates new revert commits — your history is preserved.
|
|
109
109
|
```
|
|
@@ -125,7 +125,7 @@ git revert --no-commit {hash}
|
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
After all reverts are staged, determine the commit message:
|
|
128
|
-
- Extract scope from the first commit being reverted (e.g., `
|
|
128
|
+
- Extract scope from the first commit being reverted (e.g., `undo`, `auth`, `executor`)
|
|
129
129
|
- If reverting a **single commit**: `revert({scope}): undo {original description}`
|
|
130
130
|
- If reverting **multiple commits**: `revert({scope}): undo {N} commits from {scope}`
|
|
131
131
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.56.
|
|
4
|
+
"version": "2.56.3",
|
|
5
5
|
"description": "Plan-Build-Run — Structured development workflow for Cursor. Solves context rot through disciplined subagent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SienkLogic",
|
|
@@ -102,7 +102,7 @@ One task = one commit. Exception: TDD tasks get 3 commits (RED, GREEN, REFACTOR)
|
|
|
102
102
|
### Commit Format
|
|
103
103
|
|
|
104
104
|
```
|
|
105
|
-
{type}({
|
|
105
|
+
{type}({scope}): {description}
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
| Type | When |
|
|
@@ -121,7 +121,7 @@ Stage only files listed in the task's `<files>`. If git commit fails with lock e
|
|
|
121
121
|
When the plan frontmatter contains a non-empty `closes_issues` array, append issue-closing syntax to the **final** commit body for the plan:
|
|
122
122
|
|
|
123
123
|
```
|
|
124
|
-
git commit -m "feat(
|
|
124
|
+
git commit -m "feat(auth): implement user auth
|
|
125
125
|
|
|
126
126
|
Closes #42
|
|
127
127
|
Closes #57"
|
|
@@ -219,9 +219,9 @@ When a task has `tdd="true"`, follow Red-Green-Refactor:
|
|
|
219
219
|
|
|
220
220
|
| Phase | Action | Test Must | Commit | If Wrong |
|
|
221
221
|
|-------|--------|-----------|--------|----------|
|
|
222
|
-
| RED | Write test from `<done>` | FAIL | `test(
|
|
223
|
-
| GREEN | Minimal code to pass | PASS | `
|
|
224
|
-
| REFACTOR | Clean up, keep behavior | PASS | `refactor(
|
|
222
|
+
| RED | Write test from `<done>` | FAIL | `test({scope}): RED - ...` | Passes? Fix test. |
|
|
223
|
+
| GREEN | Minimal code to pass | PASS | `refactor({scope}): GREEN - ...` | Fails? Fix code. |
|
|
224
|
+
| REFACTOR | Clean up, keep behavior | PASS | `refactor({scope}): REFACTOR - ...` | Breaks? Revert. |
|
|
225
225
|
|
|
226
226
|
---
|
|
227
227
|
|
|
@@ -52,7 +52,7 @@ This agent is available for ad-hoc `Task()` calls from skills or custom orchestr
|
|
|
52
52
|
|
|
53
53
|
All commits follow: `{type}({scope}): {description}`
|
|
54
54
|
- **Types**: feat, fix, refactor, test, docs, chore, wip
|
|
55
|
-
- **Scopes**:
|
|
55
|
+
- **Scopes**: descriptive word (e.g., `auth`, `api`, `executor`), `quick-{NNN}`, `planning`
|
|
56
56
|
|
|
57
57
|
## Self-Escalation
|
|
58
58
|
|
|
@@ -151,7 +151,7 @@ Controls git integration and branching strategy.
|
|
|
151
151
|
| Property | Type | Default | Description |
|
|
152
152
|
|----------|------|---------|-------------|
|
|
153
153
|
| `branching` | string | `none` | Branching strategy: `none`, `phase`, `milestone`, `disabled` |
|
|
154
|
-
| `commit_format` | string | `{type}({
|
|
154
|
+
| `commit_format` | string | `{type}({scope}): {description}` | Commit message template. Use a short descriptive word as the scope (e.g., `auth`, `config`, `executor`) rather than phase-plan numbers. |
|
|
155
155
|
| `phase_branch_template` | string | `plan-build-run/phase-{phase}-{slug}` | Phase branch name pattern |
|
|
156
156
|
| `milestone_branch_template` | string | `plan-build-run/{milestone}-{slug}` | Milestone branch name pattern |
|
|
157
157
|
| `mode` | string | `enabled` | Git mode: `enabled` or `disabled` |
|
|
@@ -7,23 +7,22 @@ Plan-Build-Run's commit conventions, commit points, branching strategy, and hook
|
|
|
7
7
|
## Commit Message Format
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
{type}({
|
|
10
|
+
{type}({scope}): {description}
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
### Components
|
|
14
14
|
|
|
15
15
|
| Part | Description | Example |
|
|
16
16
|
|------|-------------|---------|
|
|
17
|
-
| `{type}` | Conventional commit type | `feat`, `fix`, `
|
|
18
|
-
| `{
|
|
19
|
-
| `{
|
|
20
|
-
| `{description}` | Imperative, lowercase description | `implement discord oauth client` |
|
|
17
|
+
| `{type}` | Conventional commit type | `feat`, `fix`, `chore` |
|
|
18
|
+
| `{scope}` | Descriptive word for the area of change | `auth`, `executor`, `changelog` |
|
|
19
|
+
| `{description}` | Imperative, lowercase description | `add discord oauth flow` |
|
|
21
20
|
|
|
22
|
-
The format is configurable via `config.json` at `git.commit_format`. The default is `{type}({
|
|
21
|
+
The format is configurable via `config.json` at `git.commit_format`. The default is `{type}({scope}): {description}`.
|
|
23
22
|
|
|
24
23
|
### Full Example
|
|
25
24
|
```
|
|
26
|
-
feat(
|
|
25
|
+
feat(auth): implement discord oauth client
|
|
27
26
|
```
|
|
28
27
|
|
|
29
28
|
---
|
|
@@ -32,19 +31,35 @@ feat(02-01): implement discord oauth client
|
|
|
32
31
|
|
|
33
32
|
| Type | When to Use | Example |
|
|
34
33
|
|------|------------|---------|
|
|
35
|
-
| `feat` | New feature or functionality | `feat(
|
|
36
|
-
| `fix` | Bug fix (including during execution) | `fix(
|
|
37
|
-
| `refactor` | Code restructuring, no behavior change | `refactor(
|
|
38
|
-
| `test` | Adding or modifying tests | `test(
|
|
39
|
-
| `docs` | Documentation changes | `docs(
|
|
40
|
-
| `chore` | Build config, dependencies, tooling | `chore(
|
|
41
|
-
| `style` | Formatting, whitespace (no logic change) | `style(
|
|
34
|
+
| `feat` | New feature or functionality | `feat(auth): implement discord oauth client` |
|
|
35
|
+
| `fix` | Bug fix (including during execution) | `fix(api): handle null user profile from discord` |
|
|
36
|
+
| `refactor` | Code restructuring, no behavior change | `refactor(auth): extract token validation into helper` |
|
|
37
|
+
| `test` | Adding or modifying tests | `test(auth): add failing tests for oauth flow` |
|
|
38
|
+
| `docs` | Documentation changes | `docs(planning): add api endpoint documentation` |
|
|
39
|
+
| `chore` | Build config, dependencies, tooling | `chore(deps): configure typescript and eslint` |
|
|
40
|
+
| `style` | Formatting, whitespace (no logic change) | `style(auth): fix import ordering` |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Commit Type Discipline
|
|
45
|
+
|
|
46
|
+
| Type | Use For | Appears in Changelog |
|
|
47
|
+
|------|---------|---------------------|
|
|
48
|
+
| `feat` | User-visible features ONLY (new commands, new config options, changed behavior users notice) | YES |
|
|
49
|
+
| `fix` | Bug fixes users would notice | YES |
|
|
50
|
+
| `refactor` | Internal restructuring, TDD GREEN commits, code cleanup | No |
|
|
51
|
+
| `test` | Test additions including TDD RED commits | No |
|
|
52
|
+
| `docs` | Documentation (hidden — mostly planning artifacts) | No |
|
|
53
|
+
| `chore` | Build config, deps, tooling, internal scaffolding | No |
|
|
54
|
+
| `wip` | Work in progress (use sparingly) | No |
|
|
55
|
+
|
|
56
|
+
**TDD commits**: RED phase → `test({scope}): RED - ...`, GREEN phase → `refactor({scope}): GREEN - ...`, REFACTOR phase → `refactor({scope}): REFACTOR - ...`
|
|
42
57
|
|
|
43
58
|
---
|
|
44
59
|
|
|
45
60
|
## Special Commit Scopes
|
|
46
61
|
|
|
47
|
-
Beyond
|
|
62
|
+
Beyond descriptive scopes, Plan-Build-Run recognizes these additional patterns:
|
|
48
63
|
|
|
49
64
|
| Pattern | When Used | Example |
|
|
50
65
|
|---------|-----------|---------|
|
|
@@ -84,9 +99,9 @@ Each successfully completed plan task gets exactly one atomic commit. No more, n
|
|
|
84
99
|
TDD tasks (`tdd="true"`) produce exactly 3 commits following Red-Green-Refactor:
|
|
85
100
|
|
|
86
101
|
```
|
|
87
|
-
test(
|
|
88
|
-
|
|
89
|
-
refactor(
|
|
102
|
+
test(auth): RED - add failing tests for auth middleware
|
|
103
|
+
refactor(auth): GREEN - implement auth middleware to pass tests
|
|
104
|
+
refactor(auth): REFACTOR - extract token verification helper
|
|
90
105
|
```
|
|
91
106
|
|
|
92
107
|
### Commit Preconditions
|
|
@@ -125,15 +140,15 @@ When an executor applies a deviation rule during a task, the deviation is includ
|
|
|
125
140
|
```bash
|
|
126
141
|
# Standard task
|
|
127
142
|
git add src/auth/discord.ts src/auth/types.ts
|
|
128
|
-
git commit -m "feat(
|
|
143
|
+
git commit -m "feat(auth): implement Discord OAuth client with token exchange"
|
|
129
144
|
|
|
130
145
|
# Task that also installed a dependency (Rule 2)
|
|
131
146
|
git add src/auth/discord.ts src/auth/types.ts package.json package-lock.json
|
|
132
|
-
git commit -m "feat(
|
|
147
|
+
git commit -m "feat(auth): implement Discord OAuth client with token exchange"
|
|
133
148
|
|
|
134
149
|
# TDD RED
|
|
135
150
|
git add tests/auth/discord.test.ts
|
|
136
|
-
git commit -m "test(
|
|
151
|
+
git commit -m "test(auth): add failing tests for Discord OAuth flow"
|
|
137
152
|
```
|
|
138
153
|
|
|
139
154
|
---
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"git": {
|
|
46
46
|
"branching": "none",
|
|
47
|
-
"commit_format": "{type}({
|
|
47
|
+
"commit_format": "{type}({scope}): {description}",
|
|
48
48
|
"phase_branch_template": "plan-build-run/phase-{phase}-{slug}",
|
|
49
49
|
"milestone_branch_template": "plan-build-run/{milestone}-{slug}",
|
|
50
50
|
"mode": "enabled"
|