@codyswann/lisa 2.13.0 → 2.15.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/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/rules/base-rules.md +1 -0
- package/plugins/lisa/skills/git-submit-pr/SKILL.md +3 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/rules/base-rules.md +1 -0
- package/plugins/src/base/skills/git-submit-pr/SKILL.md +3 -1
- package/rails/create-only/.github/workflows/claude-sync-down-branches.yml +37 -0
- package/typescript/create-only/.github/workflows/claude-sync-down-branches.yml +37 -0
package/package.json
CHANGED
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"lodash": ">=4.18.1"
|
|
80
80
|
},
|
|
81
81
|
"name": "@codyswann/lisa",
|
|
82
|
-
"version": "2.
|
|
82
|
+
"version": "2.15.0",
|
|
83
83
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
84
84
|
"main": "dist/index.js",
|
|
85
85
|
"exports": {
|
|
@@ -56,6 +56,7 @@ Git Discipline:
|
|
|
56
56
|
- When opening a PR, watch the PR. If any status checks fail, fix them. For all bot code reviews, if the feedback is valid, implement it and push the change to the PR. Then resolve the feedback. If the feedback is not valid, reply to the feedback explaining why it's not valid and then resolve the feedback. Do this in a loop until the PR is able to be merged and then merge it.
|
|
57
57
|
- When merging a PR into an environment branch (dev, staging, main), watch the resultant deploy until it fully succeeds. If it fails for any reason, fix the failure and then open a new PR with the fix.
|
|
58
58
|
- When referencing a PR in a response, always include the url
|
|
59
|
+
- **Promotion PRs (environment branch → environment branch — e.g., `dev` → `staging`, `staging` → `main`) MUST be merged with a regular merge commit (`gh pr merge --merge`), NEVER squash-merged.** Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into a single commit titled with the PR title, which (a) strips the `[skip ci]` markers so the release workflow re-runs and double-bumps the version on the destination branch, and (b) breaks the release workflow's promotion-detection regex (which inspects the merge-commit subject for `Merge branch 'X' into Y` or `Merge pull request #N from .../<env-branch>`). The merge commit produced by `--merge` keeps the subject clean and the per-commit `[skip ci]` markers attached where they belong. Feature PRs (anything → `dev`) use `--squash` as usual.
|
|
59
60
|
|
|
60
61
|
Testing Discipline:
|
|
61
62
|
- Never skip or disable any tests or quality checks.
|
|
@@ -24,7 +24,9 @@ Push current branch and create or update a pull request. Optional hint: $ARGUMEN
|
|
|
24
24
|
- Check for existing PR on this branch
|
|
25
25
|
- If exists: Update description with latest changes
|
|
26
26
|
- If not: Create PR with comprehensive description (not a draft)
|
|
27
|
-
5. **Auto-merge**:
|
|
27
|
+
5. **Auto-merge**: Choose merge strategy by PR type:
|
|
28
|
+
- **Promotion PRs** (env → env, e.g. `dev` → `staging`): use `gh pr merge --auto --merge` (never squash). Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into one commit titled with the PR title, stripping the `[skip ci]` markers and breaking the release workflow's promotion-detection regex — the destination branch then double-bumps its version. `--merge` keeps each `chore(release)` commit (and its `[skip ci]` marker) intact under a clean merge commit subject the workflow can recognize.
|
|
29
|
+
- **Feature PRs** (anything → `dev`): use `gh pr merge --auto --squash`.
|
|
28
30
|
|
|
29
31
|
### PR Description Format
|
|
30
32
|
|
|
@@ -56,6 +56,7 @@ Git Discipline:
|
|
|
56
56
|
- When opening a PR, watch the PR. If any status checks fail, fix them. For all bot code reviews, if the feedback is valid, implement it and push the change to the PR. Then resolve the feedback. If the feedback is not valid, reply to the feedback explaining why it's not valid and then resolve the feedback. Do this in a loop until the PR is able to be merged and then merge it.
|
|
57
57
|
- When merging a PR into an environment branch (dev, staging, main), watch the resultant deploy until it fully succeeds. If it fails for any reason, fix the failure and then open a new PR with the fix.
|
|
58
58
|
- When referencing a PR in a response, always include the url
|
|
59
|
+
- **Promotion PRs (environment branch → environment branch — e.g., `dev` → `staging`, `staging` → `main`) MUST be merged with a regular merge commit (`gh pr merge --merge`), NEVER squash-merged.** Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into a single commit titled with the PR title, which (a) strips the `[skip ci]` markers so the release workflow re-runs and double-bumps the version on the destination branch, and (b) breaks the release workflow's promotion-detection regex (which inspects the merge-commit subject for `Merge branch 'X' into Y` or `Merge pull request #N from .../<env-branch>`). The merge commit produced by `--merge` keeps the subject clean and the per-commit `[skip ci]` markers attached where they belong. Feature PRs (anything → `dev`) use `--squash` as usual.
|
|
59
60
|
|
|
60
61
|
Testing Discipline:
|
|
61
62
|
- Never skip or disable any tests or quality checks.
|
|
@@ -24,7 +24,9 @@ Push current branch and create or update a pull request. Optional hint: $ARGUMEN
|
|
|
24
24
|
- Check for existing PR on this branch
|
|
25
25
|
- If exists: Update description with latest changes
|
|
26
26
|
- If not: Create PR with comprehensive description (not a draft)
|
|
27
|
-
5. **Auto-merge**:
|
|
27
|
+
5. **Auto-merge**: Choose merge strategy by PR type:
|
|
28
|
+
- **Promotion PRs** (env → env, e.g. `dev` → `staging`): use `gh pr merge --auto --merge` (never squash). Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into one commit titled with the PR title, stripping the `[skip ci]` markers and breaking the release workflow's promotion-detection regex — the destination branch then double-bumps its version. `--merge` keeps each `chore(release)` commit (and its `[skip ci]` marker) intact under a clean merge commit subject the workflow can recognize.
|
|
29
|
+
- **Feature PRs** (anything → `dev`): use `gh pr merge --auto --squash`.
|
|
28
30
|
|
|
29
31
|
### PR Description Format
|
|
30
32
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# This file was created by Lisa on first setup.
|
|
2
|
+
# You can customize this file — Lisa will not overwrite it.
|
|
3
|
+
#
|
|
4
|
+
# Back-syncs merges down the env chain so hotfixes propagate.
|
|
5
|
+
# Example: PR merged to main -> opens a sync PR to staging.
|
|
6
|
+
# PR merged to staging -> opens a sync PR to dev.
|
|
7
|
+
#
|
|
8
|
+
# Customize for your project:
|
|
9
|
+
# - `branches`: list each branch that should *trigger* a back-sync
|
|
10
|
+
# (typically the keys of `chain` below).
|
|
11
|
+
# - `chain`: JSON map of source -> target. Examples:
|
|
12
|
+
# 3-env: '{"main":"staging","staging":"dev"}'
|
|
13
|
+
# 2-env main/staging: '{"main":"staging"}'
|
|
14
|
+
# 2-env master/preprod: '{"master":"preprod"}'
|
|
15
|
+
|
|
16
|
+
name: Claude Sync Down Branches
|
|
17
|
+
|
|
18
|
+
on:
|
|
19
|
+
pull_request:
|
|
20
|
+
types: [closed]
|
|
21
|
+
branches: [main, staging]
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: write
|
|
25
|
+
pull-requests: write
|
|
26
|
+
issues: write
|
|
27
|
+
actions: read
|
|
28
|
+
id-token: write
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
sync:
|
|
32
|
+
if: github.event.pull_request.merged == true
|
|
33
|
+
uses: CodySwannGT/lisa/.github/workflows/reusable-claude-sync-down-branches.yml@main
|
|
34
|
+
with:
|
|
35
|
+
chain: '{"main":"staging","staging":"dev"}'
|
|
36
|
+
secrets:
|
|
37
|
+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# This file was created by Lisa on first setup.
|
|
2
|
+
# You can customize this file — Lisa will not overwrite it.
|
|
3
|
+
#
|
|
4
|
+
# Back-syncs merges down the env chain so hotfixes propagate.
|
|
5
|
+
# Example: PR merged to main -> opens a sync PR to staging.
|
|
6
|
+
# PR merged to staging -> opens a sync PR to dev.
|
|
7
|
+
#
|
|
8
|
+
# Customize for your project:
|
|
9
|
+
# - `branches`: list each branch that should *trigger* a back-sync
|
|
10
|
+
# (typically the keys of `chain` below).
|
|
11
|
+
# - `chain`: JSON map of source -> target. Examples:
|
|
12
|
+
# 3-env: '{"main":"staging","staging":"dev"}'
|
|
13
|
+
# 2-env main/staging: '{"main":"staging"}'
|
|
14
|
+
# 2-env master/preprod: '{"master":"preprod"}'
|
|
15
|
+
|
|
16
|
+
name: Claude Sync Down Branches
|
|
17
|
+
|
|
18
|
+
on:
|
|
19
|
+
pull_request:
|
|
20
|
+
types: [closed]
|
|
21
|
+
branches: [main, staging]
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: write
|
|
25
|
+
pull-requests: write
|
|
26
|
+
issues: write
|
|
27
|
+
actions: read
|
|
28
|
+
id-token: write
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
sync:
|
|
32
|
+
if: github.event.pull_request.merged == true
|
|
33
|
+
uses: CodySwannGT/lisa/.github/workflows/reusable-claude-sync-down-branches.yml@main
|
|
34
|
+
with:
|
|
35
|
+
chain: '{"main":"staging","staging":"dev"}'
|
|
36
|
+
secrets:
|
|
37
|
+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|