vouchington-tooling 0.6.3 → 0.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vouchington-tooling",
3
- "version": "0.6.3",
3
+ "version": "0.7.1",
4
4
  "description": "Vouchington CLI and extractable tooling libraries.",
5
5
  "homepage": "https://github.com/vouchington/vouchington-tooling/tree/main/packages/vouchington-tooling#readme",
6
6
  "bugs": {
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "name": "agent-workflow",
6
6
  "plugin": "vouchington-workflow",
7
- "pluginVersion": "0.6.3",
7
+ "pluginVersion": "0.7.0",
8
8
  "path": "agent-workflow/SKILL.md"
9
9
  },
10
10
  {
@@ -17,13 +17,13 @@
17
17
  {
18
18
  "name": "blackboard",
19
19
  "plugin": "vouchington-workflow",
20
- "pluginVersion": "0.6.3",
20
+ "pluginVersion": "0.7.0",
21
21
  "path": "blackboard/SKILL.md"
22
22
  },
23
23
  {
24
24
  "name": "dependabot",
25
25
  "plugin": "vouchington-workflow",
26
- "pluginVersion": "0.6.3",
26
+ "pluginVersion": "0.7.0",
27
27
  "path": "dependabot/SKILL.md",
28
28
  "prerequisites": ["github-actions-checklist"]
29
29
  },
@@ -36,26 +36,26 @@
36
36
  {
37
37
  "name": "git-commit-checklist",
38
38
  "plugin": "vouchington-workflow",
39
- "pluginVersion": "0.6.3",
39
+ "pluginVersion": "0.7.0",
40
40
  "path": "git-commit-checklist/SKILL.md"
41
41
  },
42
42
  {
43
43
  "name": "github-actions-authoring",
44
44
  "plugin": "vouchington-workflow",
45
- "pluginVersion": "0.6.3",
45
+ "pluginVersion": "0.7.0",
46
46
  "path": "github-actions-authoring/SKILL.md",
47
47
  "prerequisites": ["github-actions-checklist"]
48
48
  },
49
49
  {
50
50
  "name": "github-actions-checklist",
51
51
  "plugin": "vouchington-workflow",
52
- "pluginVersion": "0.6.3",
52
+ "pluginVersion": "0.7.0",
53
53
  "path": "github-actions-checklist/SKILL.md"
54
54
  },
55
55
  {
56
56
  "name": "github-issue",
57
57
  "plugin": "vouchington-workflow",
58
- "pluginVersion": "0.6.3",
58
+ "pluginVersion": "0.7.0",
59
59
  "path": "github-issue/SKILL.md"
60
60
  },
61
61
  {
@@ -68,25 +68,25 @@
68
68
  {
69
69
  "name": "npm-publishing",
70
70
  "plugin": "vouchington-workflow",
71
- "pluginVersion": "0.6.3",
71
+ "pluginVersion": "0.7.0",
72
72
  "path": "npm-publishing/SKILL.md"
73
73
  },
74
74
  {
75
75
  "name": "organize-github-issues",
76
76
  "plugin": "vouchington-workflow",
77
- "pluginVersion": "0.6.3",
77
+ "pluginVersion": "0.7.0",
78
78
  "path": "organize-github-issues/SKILL.md"
79
79
  },
80
80
  {
81
81
  "name": "package-json-checklist",
82
82
  "plugin": "vouchington-workflow",
83
- "pluginVersion": "0.6.3",
83
+ "pluginVersion": "0.7.0",
84
84
  "path": "package-json-checklist/SKILL.md"
85
85
  },
86
86
  {
87
87
  "name": "planning",
88
88
  "plugin": "vouchington-workflow",
89
- "pluginVersion": "0.6.3",
89
+ "pluginVersion": "0.7.0",
90
90
  "path": "planning/SKILL.md"
91
91
  },
92
92
  {
@@ -110,43 +110,49 @@
110
110
  {
111
111
  "name": "pr-description",
112
112
  "plugin": "vouchington-workflow",
113
- "pluginVersion": "0.6.3",
113
+ "pluginVersion": "0.7.0",
114
114
  "path": "pr-description/SKILL.md"
115
115
  },
116
116
  {
117
117
  "name": "retrospective",
118
118
  "plugin": "vouchington-workflow",
119
- "pluginVersion": "0.6.3",
119
+ "pluginVersion": "0.7.0",
120
120
  "path": "retrospective/SKILL.md"
121
121
  },
122
122
  {
123
123
  "name": "retrospective-distill",
124
124
  "plugin": "vouchington-workflow",
125
- "pluginVersion": "0.6.3",
125
+ "pluginVersion": "0.7.0",
126
126
  "path": "retrospective-distill/SKILL.md"
127
127
  },
128
128
  {
129
129
  "name": "review-ci-logs",
130
130
  "plugin": "vouchington-workflow",
131
- "pluginVersion": "0.6.3",
131
+ "pluginVersion": "0.7.0",
132
132
  "path": "review-ci-logs/SKILL.md"
133
133
  },
134
134
  {
135
135
  "name": "review-github-issue-taxonomy",
136
136
  "plugin": "vouchington-workflow",
137
- "pluginVersion": "0.6.3",
137
+ "pluginVersion": "0.7.0",
138
138
  "path": "review-github-issue-taxonomy/SKILL.md"
139
139
  },
140
140
  {
141
141
  "name": "revisit-followups",
142
142
  "plugin": "vouchington-workflow",
143
- "pluginVersion": "0.6.3",
143
+ "pluginVersion": "0.7.0",
144
144
  "path": "revisit-followups/SKILL.md"
145
145
  },
146
+ {
147
+ "name": "stacked-prs",
148
+ "plugin": "vouchington-workflow",
149
+ "pluginVersion": "0.7.0",
150
+ "path": "stacked-prs/SKILL.md"
151
+ },
146
152
  {
147
153
  "name": "static-analysis-checklist",
148
154
  "plugin": "vouchington-workflow",
149
- "pluginVersion": "0.6.3",
155
+ "pluginVersion": "0.7.0",
150
156
  "path": "static-analysis-checklist/SKILL.md"
151
157
  },
152
158
  {
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: stacked-prs
3
+ description: Recognize a native GitHub stacked pull request and drain it from the bottom-most ready layer up, rather than waiting for the whole stack to be ready first.
4
+ ---
5
+
6
+ # Stacked pull requests
7
+
8
+ Use whenever a change is submitted as a chain of native GitHub stacked pull requests instead of a
9
+ single PR. Read local `AGENTS.md` and `CLAUDE.md` first: they own whether this repository adopts
10
+ stacking at all, the tooling used to create, rebase, and merge a stack, and who may authorize a
11
+ merge.
12
+
13
+ A stack is a sequence of branches, each submitted as its own pull request, where every PR but the
14
+ bottom-most one targets the PR below it as its base branch instead of targeting the default branch
15
+ directly. GitHub tracks a chain like this as a single stack, and its own documentation on merging
16
+ stacked pull requests is explicit about what a merge then does: "the selected pull request and all
17
+ unmerged pull requests below it land on the base branch together as a single operation, ordered
18
+ from the bottom up," and merging one is only possible once everything below it already satisfies
19
+ whatever this repository requires to merge — you cannot merge an isolated middle layer on its own.
20
+ That is dedicated stack-merge behavior, not the ordinary single-branch merge semantics a generic
21
+ "merge this PR" action assumes, and it comes with its own restrictions: GitHub does not support
22
+ auto-merge for stacked pull requests at all, and a plain, non-stack-aware merge mechanism is not
23
+ guaranteed to reproduce this cascade correctly. A mid-stack PR's base ref being an unmerged branch,
24
+ not the default branch, is the sign to slow down and confirm the merge path in use actually
25
+ understands stacks before treating it as routine.
26
+
27
+ Drain a stack from the bottom, one layer at a time, merging each bottom-most layer as soon as it
28
+ becomes ready rather than waiting for every layer above it to be ready first. A stack should stay as
29
+ short as it can be: every layer that remains unmerged keeps accumulating rebase surface, CI cost,
30
+ and drift against the default branch, and that cost compounds for every layer still stacked above
31
+ it. Because stacked pull requests do not auto-merge, draining only happens through a deliberate
32
+ merge action taken each time a layer becomes ready — nothing lands on its own just because it is
33
+ ready.
34
+
35
+ Merging a given layer lands that layer and every unmerged layer below it in the same operation, so
36
+ whatever merge target is used must name the bottom-most unmerged layer specifically, not a higher
37
+ one, to land exactly the increment intended for that drain step: naming a higher layer either merges
38
+ more than intended, when everything below also happens to be ready, or is simply unavailable, when
39
+ it is not. Once a layer merges, GitHub retargets the next unmerged layer onto the default branch
40
+ directly, so it becomes the new bottom — treat it the same way on the next drain step.
41
+
42
+ When a drain stalls — something on the stack needs human attention, or a layer closes without
43
+ merging — but the bottom-most layer is otherwise ready to merge, stop before yielding: report the
44
+ stack's current state layer by layer, and ask whether to merge that ready bottom layer before
45
+ continuing. Do not leave a ready bottom layer sitting under a blocked or stalled upper layer without
46
+ saying so.
47
+
48
+ Do not invent a default branch, a stacking tool or its command catalog, an exact merge-selector
49
+ syntax, or a merge-authorization policy. A consumer wrapper or local instruction file owns those
50
+ choices for this repository.