@codyswann/lisa 2.293.1 → 2.295.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.
Files changed (128) hide show
  1. package/cdk/create-only/.github/workflows/deploy.yml +19 -0
  2. package/dist/cli/deploy-status-adapter-github.d.ts +20 -0
  3. package/dist/cli/deploy-status-adapter-github.d.ts.map +1 -0
  4. package/dist/cli/deploy-status-adapter-github.js +167 -0
  5. package/dist/cli/deploy-status-adapter-github.js.map +1 -0
  6. package/dist/cli/deploy-status-adapter-jira.d.ts +18 -0
  7. package/dist/cli/deploy-status-adapter-jira.d.ts.map +1 -0
  8. package/dist/cli/deploy-status-adapter-jira.js +215 -0
  9. package/dist/cli/deploy-status-adapter-jira.js.map +1 -0
  10. package/dist/cli/deploy-status-adapter-linear.d.ts +16 -0
  11. package/dist/cli/deploy-status-adapter-linear.d.ts.map +1 -0
  12. package/dist/cli/deploy-status-adapter-linear.js +204 -0
  13. package/dist/cli/deploy-status-adapter-linear.js.map +1 -0
  14. package/dist/cli/deploy-status-adapter-shared.d.ts +57 -0
  15. package/dist/cli/deploy-status-adapter-shared.d.ts.map +1 -0
  16. package/dist/cli/deploy-status-adapter-shared.js +62 -0
  17. package/dist/cli/deploy-status-adapter-shared.js.map +1 -0
  18. package/dist/cli/deploy-status-adapter.d.ts +49 -0
  19. package/dist/cli/deploy-status-adapter.d.ts.map +1 -0
  20. package/dist/cli/deploy-status-adapter.js +87 -0
  21. package/dist/cli/deploy-status-adapter.js.map +1 -0
  22. package/dist/cli/deploy-status-refs.d.ts +70 -0
  23. package/dist/cli/deploy-status-refs.d.ts.map +1 -0
  24. package/dist/cli/deploy-status-refs.js +195 -0
  25. package/dist/cli/deploy-status-refs.js.map +1 -0
  26. package/dist/cli/deploy-status-sync-cmd.d.ts +23 -0
  27. package/dist/cli/deploy-status-sync-cmd.d.ts.map +1 -0
  28. package/dist/cli/deploy-status-sync-cmd.js +75 -0
  29. package/dist/cli/deploy-status-sync-cmd.js.map +1 -0
  30. package/dist/cli/deploy-status-sync-engine.d.ts +49 -0
  31. package/dist/cli/deploy-status-sync-engine.d.ts.map +1 -0
  32. package/dist/cli/deploy-status-sync-engine.js +214 -0
  33. package/dist/cli/deploy-status-sync-engine.js.map +1 -0
  34. package/dist/cli/deploy-status-sync-exec.d.ts +73 -0
  35. package/dist/cli/deploy-status-sync-exec.d.ts.map +1 -0
  36. package/dist/cli/deploy-status-sync-exec.js +95 -0
  37. package/dist/cli/deploy-status-sync-exec.js.map +1 -0
  38. package/dist/cli/gate-commands.d.ts +3 -1
  39. package/dist/cli/gate-commands.d.ts.map +1 -1
  40. package/dist/cli/gate-commands.js +26 -0
  41. package/dist/cli/gate-commands.js.map +1 -1
  42. package/dist/cli/index.d.ts +2 -7
  43. package/dist/cli/index.d.ts.map +1 -1
  44. package/dist/cli/index.js +4 -43
  45. package/dist/cli/index.js.map +1 -1
  46. package/dist/cli/kane-commands.d.ts +21 -0
  47. package/dist/cli/kane-commands.d.ts.map +1 -0
  48. package/dist/cli/kane-commands.js +44 -0
  49. package/dist/cli/kane-commands.js.map +1 -0
  50. package/dist/cli/update-check.d.ts +8 -0
  51. package/dist/cli/update-check.d.ts.map +1 -1
  52. package/dist/cli/update-check.js +4 -2
  53. package/dist/cli/update-check.js.map +1 -1
  54. package/dist/core/deploy-status-sync.d.ts +15 -0
  55. package/dist/core/deploy-status-sync.d.ts.map +1 -1
  56. package/dist/core/deploy-status-sync.js +57 -19
  57. package/dist/core/deploy-status-sync.js.map +1 -1
  58. package/dist/core/deploy-status-transition.d.ts +97 -0
  59. package/dist/core/deploy-status-transition.d.ts.map +1 -0
  60. package/dist/core/deploy-status-transition.js +134 -0
  61. package/dist/core/deploy-status-transition.js.map +1 -0
  62. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  63. package/dist/core/upstream-evidence-manifest.js +29 -8
  64. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  65. package/expo/create-only/.github/workflows/deploy.yml +13 -0
  66. package/harper-fabric/create-only/.github/workflows/deploy.yml +5 -0
  67. package/nestjs/create-only/.github/workflows/deploy.yml +14 -0
  68. package/package.json +1 -1
  69. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  71. package/plugins/lisa/rules/eager/config-resolution.md +3 -2
  72. package/plugins/lisa/rules/reference/config-resolution.md +13 -1
  73. package/plugins/lisa-agy/plugin.json +1 -1
  74. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  76. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  77. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  80. package/plugins/lisa-copilot/rules/eager/config-resolution.md +3 -2
  81. package/plugins/lisa-copilot/rules/reference/config-resolution.md +13 -1
  82. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +13 -1
  84. package/plugins/lisa-cursor/rules/config-resolution.mdc +3 -2
  85. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  87. package/plugins/lisa-expo-agy/plugin.json +1 -1
  88. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  89. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  92. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  93. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  94. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  97. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  98. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  99. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  102. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  103. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  104. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  107. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  108. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  109. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  112. package/plugins/lisa-rails-agy/plugin.json +1 -1
  113. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  114. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  117. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  118. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  119. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  122. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  123. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  124. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  125. package/plugins/src/base/rules/eager/config-resolution.md +3 -2
  126. package/plugins/src/base/rules/reference/config-resolution.md +13 -1
  127. package/rails/create-only/.github/workflows/deploy.yml +5 -0
  128. package/typescript/copy-overwrite/.github/GITHUB_ACTIONS.md +28 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.293.1",
3
+ "version": "2.295.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.293.1",
3
+ "version": "2.295.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.293.1",
3
+ "version": "2.295.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -91,7 +91,8 @@ forward cherry-picked down to the integration branch via a linked follow-up.
91
91
  `deployStatusSync` is an optional machine-written config block (`tier`, `provisioned` ids,
92
92
  `linearBinding: labels|states`, `verifiedAt`). The deploy ladder is `deploy.order` (else canonical
93
93
  `dev < staging < production`) over `deploy.branches` joined with the tracker's env-keyed done map;
94
- a configured done status whose env has no branch is a config error, and the sole
95
- `prod` `production` alias applies to the join.
94
+ a configured done status whose env has no branch is a config error unless its value is exactly
95
+ the built-in default (a sync-materialized fallback, invisible everywhere: stripped before the
96
+ union, never blocking the alias) — and the sole `prod` ↔ `production` alias applies to the join.
96
97
 
97
98
  Full reference: [reference/config-resolution.md](../reference/config-resolution.md).
@@ -636,9 +636,21 @@ configured surfaces (`deploy.branches`, the configured done map,
636
636
  configured spelling. When both spellings appear they are distinct environments
637
637
  and no aliasing occurs. No other alias exists.
638
638
 
639
+ **Materialized defaults are fallbacks.** `lisa sync` writes the full default
640
+ done map into config, so a configured done-map entry whose value is EXACTLY
641
+ the default table's value for that env is treated as a materialized fallback,
642
+ not operator intent — and it is invisible for ALL purposes: stripped before
643
+ the env-key union is computed, it never blocks the sole `prod` ↔ `production`
644
+ alias, never raises the done-without-branch error, and leaves the env exactly
645
+ as if it were unconfigured (so `branches.prod` beside a materialized
646
+ `production` entry still aliases to one prod rung). Only a value that DIFFERS
647
+ from the default is deliberate configuration: it participates in the union
648
+ (blocking the alias when it introduces the other spelling) and stays
649
+ protected by the error below.
650
+
639
651
  **Error catalog** (verbatim):
640
652
 
641
- - `Invalid deploy configuration in <source>: a done status ("<status>") is configured for environment "<env>", but deploy.branches has no "<env>" entry. Add deploy.branches.<env> (the git branch that deploys to <env>) or remove "<env>" from the done map.`
653
+ - `Invalid deploy configuration in <source>: a done status ("<status>") is configured for environment "<env>", but deploy.branches has no "<env>" entry. Add deploy.branches.<env> (the git branch that deploys to <env>) or remove "<env>" from the done map.` (custom values only — default-identical entries fall back silently)
642
654
  - `Invalid deploy.order in <source>: its environment names must exactly match the keys of deploy.branches. deploy.order has [<order-envs>]; deploy.branches has [<branch-envs>].` (also raised for duplicate `deploy.order` entries)
643
655
  - `Invalid deploy.order in <source>: every entry must be an environment name string; found <entry>.`
644
656
  - `Invalid deploy configuration in <source>: cannot order environment "<env>". Set deploy.order (environments listed lowest first, e.g. ["dev","staging","production"]) so Lisa knows the promotion order.`
@@ -32,6 +32,11 @@ jobs:
32
32
  if: ${{ github.event_name != 'push' || !startsWith(github.event.head_commit.message, 'chore(release):') }}
33
33
  runs-on: ubuntu-latest
34
34
  timeout-minutes: 30
35
+ # Declaring the environment makes GitHub emit deployment /
36
+ # deployment_status events for this run — the substrate that
37
+ # deploy-status-sync listens to. No determine_environment job exists in
38
+ # this workflow; the ternary mirrors the APP_STAGE branch logic below.
39
+ environment: ${{ github.ref_name == 'main' && 'production' || github.ref_name }}
35
40
  permissions:
36
41
  id-token: write # needed to interact with GitHub's OIDC Token endpoint.
37
42
  contents: read
@@ -149,6 +149,34 @@ an unprovisioned gate blocks nothing. Not yet wired for rails
149
149
  (`release-rails.yml` doesn't thread approval inputs) or harper-fabric (no
150
150
  release.yml call).
151
151
 
152
+ **Your deploy job declares a GitHub environment** (deploy-status-sync
153
+ substrate): the deploy job in this project's `deploy.yml` carries an
154
+ `environment:` declaration so every deploy run emits `deployment` /
155
+ `deployment_status` events — the substrate that deploy-status-sync (and
156
+ GitHub-for-Jira) listens to. Stacks with a `determine_environment` job reuse
157
+ its friendly-name resolution
158
+ (`needs.determine_environment.outputs.approval_environment`; unconfigured
159
+ branches degrade to the branch name, same as the approval gate); stacks
160
+ without one use the branch ternary
161
+ `github.ref_name == 'main' && 'production' || github.ref_name`. CDK projects
162
+ own their deploy job — declare the environment on it per the commented
163
+ snippet in the template `deploy.yml`. Exactly one deploy job per workflow
164
+ declares an environment (the job that mutates the target); release/build
165
+ bookkeeping jobs never do.
166
+
167
+ GitHub environment approvals are **per-job**. If your deploy job named the same
168
+ protected environment as the `release_approval` gate, an approval-gated run
169
+ would prompt you **twice**. To avoid that, on approval-gated runs
170
+ (`determine_environment` sets `require_approval`) the deploy job routes its
171
+ environment to `<env>-deploy` (`format('{0}-deploy', <env>)`) rather than the
172
+ bare env. Leave `<env>-deploy` **unprotected** (no required reviewers): the gate
173
+ fires once at `release_approval`, and the deploy job proceeds without a second
174
+ prompt. A gated run records two deployments — the gate against `<env>` and the
175
+ deploy job against `<env>-deploy` — and the `-deploy` suffix keeps the
176
+ `dev`/`staging`/`production` substring so GitHub-for-Jira still classifies it.
177
+ Ungated runs use the bare env; stacks without a `determine_environment` job
178
+ (rails, harper-fabric) are never gated and need no suffix.
179
+
152
180
  **Blackout Periods** (configurable):
153
181
  - Production: No weekends, no late nights (10 PM - 6 AM)
154
182
  - Holiday blackouts: Dec 24 - Jan 2, Jul 3-5, Nov 27-29