@codyswann/lisa 2.191.1 → 2.191.2
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 +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +33 -6
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +33 -6
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +33 -6
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +33 -6
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +33 -6
package/package.json
CHANGED
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"ws": ">=8.20.1"
|
|
96
96
|
},
|
|
97
97
|
"name": "@codyswann/lisa",
|
|
98
|
-
"version": "2.191.
|
|
98
|
+
"version": "2.191.2",
|
|
99
99
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
100
100
|
"main": "dist/index.js",
|
|
101
101
|
"exports": {
|
|
@@ -38,9 +38,29 @@ Use plain `gh` + `git` so Claude and Codex execute identically.
|
|
|
38
38
|
|
|
39
39
|
## 1. Enable auto-merge
|
|
40
40
|
|
|
41
|
+
Before enabling auto-merge, capture the live PR head and compare it to
|
|
42
|
+
`verify_commit`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
head_sha=$(gh pr view <pr> --json headRefOid -q .headRefOid)
|
|
46
|
+
test "$head_sha" = "<verify_commit>"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If they differ, reset `verify_commit` to the live head only after confirming the
|
|
50
|
+
new head contains the intended fix, or stop and report the mismatch. Never enable
|
|
51
|
+
auto-merge against a stale head you have not verified.
|
|
52
|
+
|
|
41
53
|
`gh pr merge <pr> --auto --<merge_method>`. Enabling auto-merge is **not terminal**
|
|
42
54
|
— continue the loop below until the PR is actually `MERGED` or `CLOSED`.
|
|
43
55
|
|
|
56
|
+
If any later step will push commits, temporarily remove the auto-merge latch
|
|
57
|
+
before the push when GitHub exposes that mutation (`disablePullRequestAutoMerge`),
|
|
58
|
+
or otherwise treat the push as a merge race: immediately re-read `headRefOid`,
|
|
59
|
+
reset `verify_commit` to the pushed head, wait until that head's checks have
|
|
60
|
+
started, then re-enable auto-merge. Do not leave auto-merge armed while a
|
|
61
|
+
required fix, CodeRabbit follow-up, generated artifact update, or CI auto-fix is
|
|
62
|
+
still in flight.
|
|
63
|
+
|
|
44
64
|
- **Capability fallback**: if the repo disallows auto-merge, do not fail. Keep
|
|
45
65
|
watching; once checks are green, the review gate is clear, and `mergeable == MERGEABLE`,
|
|
46
66
|
run `gh pr merge <pr> --<merge_method>` directly.
|
|
@@ -99,17 +119,23 @@ surface the file list and merge state.
|
|
|
99
119
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
100
120
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
101
121
|
Fix the underlying code inline — **never lower thresholds, skip tests, or disable
|
|
102
|
-
checks** to force green.
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
checks** to force green. Before pushing the fix, disarm auto-merge or classify the
|
|
123
|
+
run as race-prone, then after the push re-read the PR head, update `verify_commit`
|
|
124
|
+
to that exact SHA, wait for checks on that head to start, and only then resume
|
|
125
|
+
auto-merge. When the root cause is an upstream Lisa template/postinstall bug
|
|
126
|
+
rather than this project's code, fix it upstream and propagate down rather than
|
|
127
|
+
patching only here.
|
|
105
128
|
|
|
106
129
|
### d. Review comments — human and bot (CodeRabbit, etc.)
|
|
107
130
|
Delegate to the `pull-request-review` skill with the PR number. It owns the whole
|
|
108
131
|
comment cycle: fetch every unresolved human + bot thread (with resolution state via
|
|
109
132
|
GraphQL), implement valid feedback (commit + push), reply to invalid feedback, and
|
|
110
133
|
resolve every thread via `resolveReviewThread` so the branch-protection
|
|
111
|
-
thread-resolution gate clears.
|
|
112
|
-
|
|
134
|
+
thread-resolution gate clears. If that skill needs to push a commit, auto-merge
|
|
135
|
+
must be disabled first when possible; when it returns, re-read `headRefOid`, reset
|
|
136
|
+
`verify_commit` to the returned/pushed head, wait for that head's checks to start,
|
|
137
|
+
then re-enable auto-merge and continue. Do not re-implement review handling here
|
|
138
|
+
— it is the single source of truth for review-thread handling.
|
|
113
139
|
|
|
114
140
|
### e. Review gate stall (`reviewDecision == CHANGES_REQUESTED`)
|
|
115
141
|
After the requested changes are addressed and threads resolved, the prior
|
|
@@ -138,7 +164,8 @@ git merge-base --is-ancestor <verify_commit> origin/<baseRefName> # exit 0 = s
|
|
|
138
164
|
Also confirm the merge commit's parent is your fixed head, not a stale one. If a
|
|
139
165
|
late commit (CI auto-fix, CodeRabbit follow-up) raced past the merge, it did **not**
|
|
140
166
|
ship — fix forward with a new commit/PR and re-drive. Re-confirm after any commit
|
|
141
|
-
that lands while auto-merge is enabled
|
|
167
|
+
that lands while auto-merge is enabled; a successful merge of an older head is a
|
|
168
|
+
failed drive-to-merge outcome, not a successful closeout.
|
|
142
169
|
|
|
143
170
|
## 4. Terminal states
|
|
144
171
|
|
|
@@ -38,9 +38,29 @@ Use plain `gh` + `git` so Claude and Codex execute identically.
|
|
|
38
38
|
|
|
39
39
|
## 1. Enable auto-merge
|
|
40
40
|
|
|
41
|
+
Before enabling auto-merge, capture the live PR head and compare it to
|
|
42
|
+
`verify_commit`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
head_sha=$(gh pr view <pr> --json headRefOid -q .headRefOid)
|
|
46
|
+
test "$head_sha" = "<verify_commit>"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If they differ, reset `verify_commit` to the live head only after confirming the
|
|
50
|
+
new head contains the intended fix, or stop and report the mismatch. Never enable
|
|
51
|
+
auto-merge against a stale head you have not verified.
|
|
52
|
+
|
|
41
53
|
`gh pr merge <pr> --auto --<merge_method>`. Enabling auto-merge is **not terminal**
|
|
42
54
|
— continue the loop below until the PR is actually `MERGED` or `CLOSED`.
|
|
43
55
|
|
|
56
|
+
If any later step will push commits, temporarily remove the auto-merge latch
|
|
57
|
+
before the push when GitHub exposes that mutation (`disablePullRequestAutoMerge`),
|
|
58
|
+
or otherwise treat the push as a merge race: immediately re-read `headRefOid`,
|
|
59
|
+
reset `verify_commit` to the pushed head, wait until that head's checks have
|
|
60
|
+
started, then re-enable auto-merge. Do not leave auto-merge armed while a
|
|
61
|
+
required fix, CodeRabbit follow-up, generated artifact update, or CI auto-fix is
|
|
62
|
+
still in flight.
|
|
63
|
+
|
|
44
64
|
- **Capability fallback**: if the repo disallows auto-merge, do not fail. Keep
|
|
45
65
|
watching; once checks are green, the review gate is clear, and `mergeable == MERGEABLE`,
|
|
46
66
|
run `gh pr merge <pr> --<merge_method>` directly.
|
|
@@ -99,17 +119,23 @@ surface the file list and merge state.
|
|
|
99
119
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
100
120
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
101
121
|
Fix the underlying code inline — **never lower thresholds, skip tests, or disable
|
|
102
|
-
checks** to force green.
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
checks** to force green. Before pushing the fix, disarm auto-merge or classify the
|
|
123
|
+
run as race-prone, then after the push re-read the PR head, update `verify_commit`
|
|
124
|
+
to that exact SHA, wait for checks on that head to start, and only then resume
|
|
125
|
+
auto-merge. When the root cause is an upstream Lisa template/postinstall bug
|
|
126
|
+
rather than this project's code, fix it upstream and propagate down rather than
|
|
127
|
+
patching only here.
|
|
105
128
|
|
|
106
129
|
### d. Review comments — human and bot (CodeRabbit, etc.)
|
|
107
130
|
Delegate to the `pull-request-review` skill with the PR number. It owns the whole
|
|
108
131
|
comment cycle: fetch every unresolved human + bot thread (with resolution state via
|
|
109
132
|
GraphQL), implement valid feedback (commit + push), reply to invalid feedback, and
|
|
110
133
|
resolve every thread via `resolveReviewThread` so the branch-protection
|
|
111
|
-
thread-resolution gate clears.
|
|
112
|
-
|
|
134
|
+
thread-resolution gate clears. If that skill needs to push a commit, auto-merge
|
|
135
|
+
must be disabled first when possible; when it returns, re-read `headRefOid`, reset
|
|
136
|
+
`verify_commit` to the returned/pushed head, wait for that head's checks to start,
|
|
137
|
+
then re-enable auto-merge and continue. Do not re-implement review handling here
|
|
138
|
+
— it is the single source of truth for review-thread handling.
|
|
113
139
|
|
|
114
140
|
### e. Review gate stall (`reviewDecision == CHANGES_REQUESTED`)
|
|
115
141
|
After the requested changes are addressed and threads resolved, the prior
|
|
@@ -138,7 +164,8 @@ git merge-base --is-ancestor <verify_commit> origin/<baseRefName> # exit 0 = s
|
|
|
138
164
|
Also confirm the merge commit's parent is your fixed head, not a stale one. If a
|
|
139
165
|
late commit (CI auto-fix, CodeRabbit follow-up) raced past the merge, it did **not**
|
|
140
166
|
ship — fix forward with a new commit/PR and re-drive. Re-confirm after any commit
|
|
141
|
-
that lands while auto-merge is enabled
|
|
167
|
+
that lands while auto-merge is enabled; a successful merge of an older head is a
|
|
168
|
+
failed drive-to-merge outcome, not a successful closeout.
|
|
142
169
|
|
|
143
170
|
## 4. Terminal states
|
|
144
171
|
|
|
@@ -38,9 +38,29 @@ Use plain `gh` + `git` so Claude and Codex execute identically.
|
|
|
38
38
|
|
|
39
39
|
## 1. Enable auto-merge
|
|
40
40
|
|
|
41
|
+
Before enabling auto-merge, capture the live PR head and compare it to
|
|
42
|
+
`verify_commit`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
head_sha=$(gh pr view <pr> --json headRefOid -q .headRefOid)
|
|
46
|
+
test "$head_sha" = "<verify_commit>"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If they differ, reset `verify_commit` to the live head only after confirming the
|
|
50
|
+
new head contains the intended fix, or stop and report the mismatch. Never enable
|
|
51
|
+
auto-merge against a stale head you have not verified.
|
|
52
|
+
|
|
41
53
|
`gh pr merge <pr> --auto --<merge_method>`. Enabling auto-merge is **not terminal**
|
|
42
54
|
— continue the loop below until the PR is actually `MERGED` or `CLOSED`.
|
|
43
55
|
|
|
56
|
+
If any later step will push commits, temporarily remove the auto-merge latch
|
|
57
|
+
before the push when GitHub exposes that mutation (`disablePullRequestAutoMerge`),
|
|
58
|
+
or otherwise treat the push as a merge race: immediately re-read `headRefOid`,
|
|
59
|
+
reset `verify_commit` to the pushed head, wait until that head's checks have
|
|
60
|
+
started, then re-enable auto-merge. Do not leave auto-merge armed while a
|
|
61
|
+
required fix, CodeRabbit follow-up, generated artifact update, or CI auto-fix is
|
|
62
|
+
still in flight.
|
|
63
|
+
|
|
44
64
|
- **Capability fallback**: if the repo disallows auto-merge, do not fail. Keep
|
|
45
65
|
watching; once checks are green, the review gate is clear, and `mergeable == MERGEABLE`,
|
|
46
66
|
run `gh pr merge <pr> --<merge_method>` directly.
|
|
@@ -99,17 +119,23 @@ surface the file list and merge state.
|
|
|
99
119
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
100
120
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
101
121
|
Fix the underlying code inline — **never lower thresholds, skip tests, or disable
|
|
102
|
-
checks** to force green.
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
checks** to force green. Before pushing the fix, disarm auto-merge or classify the
|
|
123
|
+
run as race-prone, then after the push re-read the PR head, update `verify_commit`
|
|
124
|
+
to that exact SHA, wait for checks on that head to start, and only then resume
|
|
125
|
+
auto-merge. When the root cause is an upstream Lisa template/postinstall bug
|
|
126
|
+
rather than this project's code, fix it upstream and propagate down rather than
|
|
127
|
+
patching only here.
|
|
105
128
|
|
|
106
129
|
### d. Review comments — human and bot (CodeRabbit, etc.)
|
|
107
130
|
Delegate to the `pull-request-review` skill with the PR number. It owns the whole
|
|
108
131
|
comment cycle: fetch every unresolved human + bot thread (with resolution state via
|
|
109
132
|
GraphQL), implement valid feedback (commit + push), reply to invalid feedback, and
|
|
110
133
|
resolve every thread via `resolveReviewThread` so the branch-protection
|
|
111
|
-
thread-resolution gate clears.
|
|
112
|
-
|
|
134
|
+
thread-resolution gate clears. If that skill needs to push a commit, auto-merge
|
|
135
|
+
must be disabled first when possible; when it returns, re-read `headRefOid`, reset
|
|
136
|
+
`verify_commit` to the returned/pushed head, wait for that head's checks to start,
|
|
137
|
+
then re-enable auto-merge and continue. Do not re-implement review handling here
|
|
138
|
+
— it is the single source of truth for review-thread handling.
|
|
113
139
|
|
|
114
140
|
### e. Review gate stall (`reviewDecision == CHANGES_REQUESTED`)
|
|
115
141
|
After the requested changes are addressed and threads resolved, the prior
|
|
@@ -138,7 +164,8 @@ git merge-base --is-ancestor <verify_commit> origin/<baseRefName> # exit 0 = s
|
|
|
138
164
|
Also confirm the merge commit's parent is your fixed head, not a stale one. If a
|
|
139
165
|
late commit (CI auto-fix, CodeRabbit follow-up) raced past the merge, it did **not**
|
|
140
166
|
ship — fix forward with a new commit/PR and re-drive. Re-confirm after any commit
|
|
141
|
-
that lands while auto-merge is enabled
|
|
167
|
+
that lands while auto-merge is enabled; a successful merge of an older head is a
|
|
168
|
+
failed drive-to-merge outcome, not a successful closeout.
|
|
142
169
|
|
|
143
170
|
## 4. Terminal states
|
|
144
171
|
|
|
@@ -38,9 +38,29 @@ Use plain `gh` + `git` so Claude and Codex execute identically.
|
|
|
38
38
|
|
|
39
39
|
## 1. Enable auto-merge
|
|
40
40
|
|
|
41
|
+
Before enabling auto-merge, capture the live PR head and compare it to
|
|
42
|
+
`verify_commit`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
head_sha=$(gh pr view <pr> --json headRefOid -q .headRefOid)
|
|
46
|
+
test "$head_sha" = "<verify_commit>"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If they differ, reset `verify_commit` to the live head only after confirming the
|
|
50
|
+
new head contains the intended fix, or stop and report the mismatch. Never enable
|
|
51
|
+
auto-merge against a stale head you have not verified.
|
|
52
|
+
|
|
41
53
|
`gh pr merge <pr> --auto --<merge_method>`. Enabling auto-merge is **not terminal**
|
|
42
54
|
— continue the loop below until the PR is actually `MERGED` or `CLOSED`.
|
|
43
55
|
|
|
56
|
+
If any later step will push commits, temporarily remove the auto-merge latch
|
|
57
|
+
before the push when GitHub exposes that mutation (`disablePullRequestAutoMerge`),
|
|
58
|
+
or otherwise treat the push as a merge race: immediately re-read `headRefOid`,
|
|
59
|
+
reset `verify_commit` to the pushed head, wait until that head's checks have
|
|
60
|
+
started, then re-enable auto-merge. Do not leave auto-merge armed while a
|
|
61
|
+
required fix, CodeRabbit follow-up, generated artifact update, or CI auto-fix is
|
|
62
|
+
still in flight.
|
|
63
|
+
|
|
44
64
|
- **Capability fallback**: if the repo disallows auto-merge, do not fail. Keep
|
|
45
65
|
watching; once checks are green, the review gate is clear, and `mergeable == MERGEABLE`,
|
|
46
66
|
run `gh pr merge <pr> --<merge_method>` directly.
|
|
@@ -99,17 +119,23 @@ surface the file list and merge state.
|
|
|
99
119
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
100
120
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
101
121
|
Fix the underlying code inline — **never lower thresholds, skip tests, or disable
|
|
102
|
-
checks** to force green.
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
checks** to force green. Before pushing the fix, disarm auto-merge or classify the
|
|
123
|
+
run as race-prone, then after the push re-read the PR head, update `verify_commit`
|
|
124
|
+
to that exact SHA, wait for checks on that head to start, and only then resume
|
|
125
|
+
auto-merge. When the root cause is an upstream Lisa template/postinstall bug
|
|
126
|
+
rather than this project's code, fix it upstream and propagate down rather than
|
|
127
|
+
patching only here.
|
|
105
128
|
|
|
106
129
|
### d. Review comments — human and bot (CodeRabbit, etc.)
|
|
107
130
|
Delegate to the `pull-request-review` skill with the PR number. It owns the whole
|
|
108
131
|
comment cycle: fetch every unresolved human + bot thread (with resolution state via
|
|
109
132
|
GraphQL), implement valid feedback (commit + push), reply to invalid feedback, and
|
|
110
133
|
resolve every thread via `resolveReviewThread` so the branch-protection
|
|
111
|
-
thread-resolution gate clears.
|
|
112
|
-
|
|
134
|
+
thread-resolution gate clears. If that skill needs to push a commit, auto-merge
|
|
135
|
+
must be disabled first when possible; when it returns, re-read `headRefOid`, reset
|
|
136
|
+
`verify_commit` to the returned/pushed head, wait for that head's checks to start,
|
|
137
|
+
then re-enable auto-merge and continue. Do not re-implement review handling here
|
|
138
|
+
— it is the single source of truth for review-thread handling.
|
|
113
139
|
|
|
114
140
|
### e. Review gate stall (`reviewDecision == CHANGES_REQUESTED`)
|
|
115
141
|
After the requested changes are addressed and threads resolved, the prior
|
|
@@ -138,7 +164,8 @@ git merge-base --is-ancestor <verify_commit> origin/<baseRefName> # exit 0 = s
|
|
|
138
164
|
Also confirm the merge commit's parent is your fixed head, not a stale one. If a
|
|
139
165
|
late commit (CI auto-fix, CodeRabbit follow-up) raced past the merge, it did **not**
|
|
140
166
|
ship — fix forward with a new commit/PR and re-drive. Re-confirm after any commit
|
|
141
|
-
that lands while auto-merge is enabled
|
|
167
|
+
that lands while auto-merge is enabled; a successful merge of an older head is a
|
|
168
|
+
failed drive-to-merge outcome, not a successful closeout.
|
|
142
169
|
|
|
143
170
|
## 4. Terminal states
|
|
144
171
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.2",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.2",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.2",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.2",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.191.
|
|
3
|
+
"version": "2.191.2",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -38,9 +38,29 @@ Use plain `gh` + `git` so Claude and Codex execute identically.
|
|
|
38
38
|
|
|
39
39
|
## 1. Enable auto-merge
|
|
40
40
|
|
|
41
|
+
Before enabling auto-merge, capture the live PR head and compare it to
|
|
42
|
+
`verify_commit`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
head_sha=$(gh pr view <pr> --json headRefOid -q .headRefOid)
|
|
46
|
+
test "$head_sha" = "<verify_commit>"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If they differ, reset `verify_commit` to the live head only after confirming the
|
|
50
|
+
new head contains the intended fix, or stop and report the mismatch. Never enable
|
|
51
|
+
auto-merge against a stale head you have not verified.
|
|
52
|
+
|
|
41
53
|
`gh pr merge <pr> --auto --<merge_method>`. Enabling auto-merge is **not terminal**
|
|
42
54
|
— continue the loop below until the PR is actually `MERGED` or `CLOSED`.
|
|
43
55
|
|
|
56
|
+
If any later step will push commits, temporarily remove the auto-merge latch
|
|
57
|
+
before the push when GitHub exposes that mutation (`disablePullRequestAutoMerge`),
|
|
58
|
+
or otherwise treat the push as a merge race: immediately re-read `headRefOid`,
|
|
59
|
+
reset `verify_commit` to the pushed head, wait until that head's checks have
|
|
60
|
+
started, then re-enable auto-merge. Do not leave auto-merge armed while a
|
|
61
|
+
required fix, CodeRabbit follow-up, generated artifact update, or CI auto-fix is
|
|
62
|
+
still in flight.
|
|
63
|
+
|
|
44
64
|
- **Capability fallback**: if the repo disallows auto-merge, do not fail. Keep
|
|
45
65
|
watching; once checks are green, the review gate is clear, and `mergeable == MERGEABLE`,
|
|
46
66
|
run `gh pr merge <pr> --<merge_method>` directly.
|
|
@@ -99,17 +119,23 @@ surface the file list and merge state.
|
|
|
99
119
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
100
120
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
101
121
|
Fix the underlying code inline — **never lower thresholds, skip tests, or disable
|
|
102
|
-
checks** to force green.
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
checks** to force green. Before pushing the fix, disarm auto-merge or classify the
|
|
123
|
+
run as race-prone, then after the push re-read the PR head, update `verify_commit`
|
|
124
|
+
to that exact SHA, wait for checks on that head to start, and only then resume
|
|
125
|
+
auto-merge. When the root cause is an upstream Lisa template/postinstall bug
|
|
126
|
+
rather than this project's code, fix it upstream and propagate down rather than
|
|
127
|
+
patching only here.
|
|
105
128
|
|
|
106
129
|
### d. Review comments — human and bot (CodeRabbit, etc.)
|
|
107
130
|
Delegate to the `pull-request-review` skill with the PR number. It owns the whole
|
|
108
131
|
comment cycle: fetch every unresolved human + bot thread (with resolution state via
|
|
109
132
|
GraphQL), implement valid feedback (commit + push), reply to invalid feedback, and
|
|
110
133
|
resolve every thread via `resolveReviewThread` so the branch-protection
|
|
111
|
-
thread-resolution gate clears.
|
|
112
|
-
|
|
134
|
+
thread-resolution gate clears. If that skill needs to push a commit, auto-merge
|
|
135
|
+
must be disabled first when possible; when it returns, re-read `headRefOid`, reset
|
|
136
|
+
`verify_commit` to the returned/pushed head, wait for that head's checks to start,
|
|
137
|
+
then re-enable auto-merge and continue. Do not re-implement review handling here
|
|
138
|
+
— it is the single source of truth for review-thread handling.
|
|
113
139
|
|
|
114
140
|
### e. Review gate stall (`reviewDecision == CHANGES_REQUESTED`)
|
|
115
141
|
After the requested changes are addressed and threads resolved, the prior
|
|
@@ -138,7 +164,8 @@ git merge-base --is-ancestor <verify_commit> origin/<baseRefName> # exit 0 = s
|
|
|
138
164
|
Also confirm the merge commit's parent is your fixed head, not a stale one. If a
|
|
139
165
|
late commit (CI auto-fix, CodeRabbit follow-up) raced past the merge, it did **not**
|
|
140
166
|
ship — fix forward with a new commit/PR and re-drive. Re-confirm after any commit
|
|
141
|
-
that lands while auto-merge is enabled
|
|
167
|
+
that lands while auto-merge is enabled; a successful merge of an older head is a
|
|
168
|
+
failed drive-to-merge outcome, not a successful closeout.
|
|
142
169
|
|
|
143
170
|
## 4. Terminal states
|
|
144
171
|
|