@codyswann/lisa 2.286.11 → 2.286.12
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/dist/core/upstream-evidence-manifest.js +2 -2
- 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/.codex-plugin/skills/lisa-verification-lifecycle/SKILL.md +2 -0
- package/plugins/lisa/skills/lisa-verification-lifecycle/SKILL.md +2 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-verification-lifecycle/SKILL.md +2 -0
- 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-verification-lifecycle/SKILL.md +2 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-verification-lifecycle/SKILL.md +2 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/SKILL.md +1 -0
- package/plugins/lisa-expo/skills/atomic-design-gluestack/SKILL.md +1 -0
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/SKILL.md +1 -0
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/SKILL.md +1 -0
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/SKILL.md +1 -0
- 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-verification-lifecycle/SKILL.md +2 -0
- package/plugins/src/expo/skills/atomic-design-gluestack/SKILL.md +1 -0
|
@@ -552,7 +552,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
552
552
|
"plugins/src/base/skills/lisa-usage-accounting/SKILL.md": "74ef854c172c74f3c1b916c547ed6945abd9852d453146268e276a8ebc35be4e",
|
|
553
553
|
"plugins/src/base/skills/lisa-use-the-product/SKILL.md": "ab3f3ab475b7c97c3409f502b80d688816b1ff4b8e3dfeec7715d93ca41e3fa0",
|
|
554
554
|
"plugins/src/base/skills/lisa-validate-tracker-mapping/SKILL.md": "ab45fdc00294c4ca9698093cb294a2aaf39a73d714fe1aa6ad686c6c34e157ba",
|
|
555
|
-
"plugins/src/base/skills/lisa-verification-lifecycle/SKILL.md": "
|
|
555
|
+
"plugins/src/base/skills/lisa-verification-lifecycle/SKILL.md": "6302896b70d8211e2f412deea8be3e42e68cf36d566759af3c937ccf5287b91c",
|
|
556
556
|
"plugins/src/base/skills/lisa-verify-prd/SKILL.md": "82f0a34e530d1940c38c9a2ee5f0d139cab4054616bdd34e73082753442871ab",
|
|
557
557
|
"plugins/src/base/skills/lisa-verify-workflow-change/SKILL.md": "d89740a4dc350a9ac0d26b1b955bf74f009775b60ee0275df3f9a50fe8be3048",
|
|
558
558
|
"plugins/src/base/skills/lisa-verify/SKILL.md": "bd97bd5965c05eafff25fcfeabe0fa7e763f96d5dcab8bf959a78679696c33f1",
|
|
@@ -566,7 +566,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
566
566
|
"plugins/src/expo/skills/add-app-clip/references/native-module.md": "b80d858d7642bad37da9e971f3fe7d984e6225c769e22fe7e03b2a0de6df3b17",
|
|
567
567
|
"plugins/src/expo/skills/apollo-client/SKILL.md": "397a3efdeae3fe1f7bb017713fbb9fe1927d5675fda39b5ec387899f525305cc",
|
|
568
568
|
"plugins/src/expo/skills/apollo-client/references/mutation-patterns.md": "987b90aed8aef765d1555ea02b28738fbc8d6eeac734272de4da8981747182fd",
|
|
569
|
-
"plugins/src/expo/skills/atomic-design-gluestack/SKILL.md": "
|
|
569
|
+
"plugins/src/expo/skills/atomic-design-gluestack/SKILL.md": "bc6ddd15b3a533d510e58e27e448cc22f57009bd90a4c4e5af836cac92157802",
|
|
570
570
|
"plugins/src/expo/skills/atomic-design-gluestack/references/atomic-levels.md": "c01c1bcd68c128e10086195467564be196f78f4f771169d827da707a677ecde3",
|
|
571
571
|
"plugins/src/expo/skills/atomic-design-gluestack/references/folder-structure.md": "7c87be20ade4d9abeaf747f8892d22cedd046f68815db3321992b1bcd477650a",
|
|
572
572
|
"plugins/src/expo/skills/atomic-design-gluestack/references/gluestack-mapping.md": "89cfedb353cc47b5b8a861753e2dd069b9a3ac7834c64827d66e9895b66d1bb5",
|
package/package.json
CHANGED
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
"brace-expansion": ">=5.0.6"
|
|
114
114
|
},
|
|
115
115
|
"name": "@codyswann/lisa",
|
|
116
|
-
"version": "2.286.
|
|
116
|
+
"version": "2.286.12",
|
|
117
117
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
118
118
|
"main": "dist/index.js",
|
|
119
119
|
"exports": {
|
|
@@ -66,6 +66,8 @@ For a user-visible Fix, or a Build change that affects user-visible behavior, th
|
|
|
66
66
|
|
|
67
67
|
The lead cannot waive, defer, or demote this regression spec as optional, "if cheap", or equivalent. The only acceptable exits are a recorded absence of an end-to-end harness for the platform, or a genuine technical blocker that is captured before merge as a linked build-ready follow-up ticket referenced from the PR and source work item.
|
|
68
68
|
|
|
69
|
+
A claim that the change is "behavior-preserving", a "no-visual-regression" refactor, or "mechanical" does NOT narrow the verification plan — it widens it to the states that can change. Static, resting-state evidence (a default-mount render, even captured at multiple breakpoints) cannot prove that a scroll-bounded, overflowing, expandable, or otherwise stateful surface is unbroken. Plan to drive the surface *into* the state that would reveal the regression — expand the tallest section, overflow the container past its bounded height, open the sheet at a short viewport, scroll to the pinned edge — and observe it there. If the state that could break cannot be reached with available tooling, record that gap explicitly; never certify parity from the resting state alone.
|
|
70
|
+
|
|
69
71
|
### 6. Execute
|
|
70
72
|
|
|
71
73
|
After implementation, run the verification plan. Execute each verification type in order.
|
|
@@ -66,6 +66,8 @@ For a user-visible Fix, or a Build change that affects user-visible behavior, th
|
|
|
66
66
|
|
|
67
67
|
The lead cannot waive, defer, or demote this regression spec as optional, "if cheap", or equivalent. The only acceptable exits are a recorded absence of an end-to-end harness for the platform, or a genuine technical blocker that is captured before merge as a linked build-ready follow-up ticket referenced from the PR and source work item.
|
|
68
68
|
|
|
69
|
+
A claim that the change is "behavior-preserving", a "no-visual-regression" refactor, or "mechanical" does NOT narrow the verification plan — it widens it to the states that can change. Static, resting-state evidence (a default-mount render, even captured at multiple breakpoints) cannot prove that a scroll-bounded, overflowing, expandable, or otherwise stateful surface is unbroken. Plan to drive the surface *into* the state that would reveal the regression — expand the tallest section, overflow the container past its bounded height, open the sheet at a short viewport, scroll to the pinned edge — and observe it there. If the state that could break cannot be reached with available tooling, record that gap explicitly; never certify parity from the resting state alone.
|
|
70
|
+
|
|
69
71
|
### 6. Execute
|
|
70
72
|
|
|
71
73
|
After implementation, run the verification plan. Execute each verification type in order.
|
|
@@ -66,6 +66,8 @@ For a user-visible Fix, or a Build change that affects user-visible behavior, th
|
|
|
66
66
|
|
|
67
67
|
The lead cannot waive, defer, or demote this regression spec as optional, "if cheap", or equivalent. The only acceptable exits are a recorded absence of an end-to-end harness for the platform, or a genuine technical blocker that is captured before merge as a linked build-ready follow-up ticket referenced from the PR and source work item.
|
|
68
68
|
|
|
69
|
+
A claim that the change is "behavior-preserving", a "no-visual-regression" refactor, or "mechanical" does NOT narrow the verification plan — it widens it to the states that can change. Static, resting-state evidence (a default-mount render, even captured at multiple breakpoints) cannot prove that a scroll-bounded, overflowing, expandable, or otherwise stateful surface is unbroken. Plan to drive the surface *into* the state that would reveal the regression — expand the tallest section, overflow the container past its bounded height, open the sheet at a short viewport, scroll to the pinned edge — and observe it there. If the state that could break cannot be reached with available tooling, record that gap explicitly; never certify parity from the resting state alone.
|
|
70
|
+
|
|
69
71
|
### 6. Execute
|
|
70
72
|
|
|
71
73
|
After implementation, run the verification plan. Execute each verification type in order.
|
|
@@ -66,6 +66,8 @@ For a user-visible Fix, or a Build change that affects user-visible behavior, th
|
|
|
66
66
|
|
|
67
67
|
The lead cannot waive, defer, or demote this regression spec as optional, "if cheap", or equivalent. The only acceptable exits are a recorded absence of an end-to-end harness for the platform, or a genuine technical blocker that is captured before merge as a linked build-ready follow-up ticket referenced from the PR and source work item.
|
|
68
68
|
|
|
69
|
+
A claim that the change is "behavior-preserving", a "no-visual-regression" refactor, or "mechanical" does NOT narrow the verification plan — it widens it to the states that can change. Static, resting-state evidence (a default-mount render, even captured at multiple breakpoints) cannot prove that a scroll-bounded, overflowing, expandable, or otherwise stateful surface is unbroken. Plan to drive the surface *into* the state that would reveal the regression — expand the tallest section, overflow the container past its bounded height, open the sheet at a short viewport, scroll to the pinned edge — and observe it there. If the state that could break cannot be reached with available tooling, record that gap explicitly; never certify parity from the resting state alone.
|
|
70
|
+
|
|
69
71
|
### 6. Execute
|
|
70
72
|
|
|
71
73
|
After implementation, run the verification plan. Execute each verification type in order.
|
|
@@ -66,6 +66,8 @@ For a user-visible Fix, or a Build change that affects user-visible behavior, th
|
|
|
66
66
|
|
|
67
67
|
The lead cannot waive, defer, or demote this regression spec as optional, "if cheap", or equivalent. The only acceptable exits are a recorded absence of an end-to-end harness for the platform, or a genuine technical blocker that is captured before merge as a linked build-ready follow-up ticket referenced from the PR and source work item.
|
|
68
68
|
|
|
69
|
+
A claim that the change is "behavior-preserving", a "no-visual-regression" refactor, or "mechanical" does NOT narrow the verification plan — it widens it to the states that can change. Static, resting-state evidence (a default-mount render, even captured at multiple breakpoints) cannot prove that a scroll-bounded, overflowing, expandable, or otherwise stateful surface is unbroken. Plan to drive the surface *into* the state that would reveal the regression — expand the tallest section, overflow the container past its bounded height, open the sheet at a short viewport, scroll to the pinned edge — and observe it there. If the state that could break cannot be reached with available tooling, record that gap explicitly; never certify parity from the resting state alone.
|
|
70
|
+
|
|
69
71
|
### 6. Execute
|
|
70
72
|
|
|
71
73
|
After implementation, run the verification plan. Execute each verification type in order.
|
|
@@ -325,6 +325,7 @@ When creating or reviewing components, verify:
|
|
|
325
325
|
| Organism in atoms folder | Misclassification | Move to organisms folder |
|
|
326
326
|
| Template with business logic | Templates handle layout only | Move logic to page |
|
|
327
327
|
| Importing organism in atom | Wrong dependency direction | Restructure component hierarchy |
|
|
328
|
+
| Spacing refactor inside a bounded-height sheet/modal | Wrapping siblings in new flex containers (e.g. margin→gap conversion) changes overflow distribution and can push a sticky footer/header out of view — pixel-faithful at rest, broken once content overflows | Route the surface through the bounded-scroll pattern: `flex-1` + `min-h-0` scroll body with a `shrink-0` pinned footer, and verify in the content-overflow state, not just the default mount |
|
|
328
329
|
|
|
329
330
|
## Testing by Atomic Level
|
|
330
331
|
|
|
@@ -326,6 +326,7 @@ When creating or reviewing components, verify:
|
|
|
326
326
|
| Organism in atoms folder | Misclassification | Move to organisms folder |
|
|
327
327
|
| Template with business logic | Templates handle layout only | Move logic to page |
|
|
328
328
|
| Importing organism in atom | Wrong dependency direction | Restructure component hierarchy |
|
|
329
|
+
| Spacing refactor inside a bounded-height sheet/modal | Wrapping siblings in new flex containers (e.g. margin→gap conversion) changes overflow distribution and can push a sticky footer/header out of view — pixel-faithful at rest, broken once content overflows | Route the surface through the bounded-scroll pattern: `flex-1` + `min-h-0` scroll body with a `shrink-0` pinned footer, and verify in the content-overflow state, not just the default mount |
|
|
329
330
|
|
|
330
331
|
## Testing by Atomic Level
|
|
331
332
|
|
|
@@ -326,6 +326,7 @@ When creating or reviewing components, verify:
|
|
|
326
326
|
| Organism in atoms folder | Misclassification | Move to organisms folder |
|
|
327
327
|
| Template with business logic | Templates handle layout only | Move logic to page |
|
|
328
328
|
| Importing organism in atom | Wrong dependency direction | Restructure component hierarchy |
|
|
329
|
+
| Spacing refactor inside a bounded-height sheet/modal | Wrapping siblings in new flex containers (e.g. margin→gap conversion) changes overflow distribution and can push a sticky footer/header out of view — pixel-faithful at rest, broken once content overflows | Route the surface through the bounded-scroll pattern: `flex-1` + `min-h-0` scroll body with a `shrink-0` pinned footer, and verify in the content-overflow state, not just the default mount |
|
|
329
330
|
|
|
330
331
|
## Testing by Atomic Level
|
|
331
332
|
|
|
@@ -326,6 +326,7 @@ When creating or reviewing components, verify:
|
|
|
326
326
|
| Organism in atoms folder | Misclassification | Move to organisms folder |
|
|
327
327
|
| Template with business logic | Templates handle layout only | Move logic to page |
|
|
328
328
|
| Importing organism in atom | Wrong dependency direction | Restructure component hierarchy |
|
|
329
|
+
| Spacing refactor inside a bounded-height sheet/modal | Wrapping siblings in new flex containers (e.g. margin→gap conversion) changes overflow distribution and can push a sticky footer/header out of view — pixel-faithful at rest, broken once content overflows | Route the surface through the bounded-scroll pattern: `flex-1` + `min-h-0` scroll body with a `shrink-0` pinned footer, and verify in the content-overflow state, not just the default mount |
|
|
329
330
|
|
|
330
331
|
## Testing by Atomic Level
|
|
331
332
|
|
|
@@ -326,6 +326,7 @@ When creating or reviewing components, verify:
|
|
|
326
326
|
| Organism in atoms folder | Misclassification | Move to organisms folder |
|
|
327
327
|
| Template with business logic | Templates handle layout only | Move logic to page |
|
|
328
328
|
| Importing organism in atom | Wrong dependency direction | Restructure component hierarchy |
|
|
329
|
+
| Spacing refactor inside a bounded-height sheet/modal | Wrapping siblings in new flex containers (e.g. margin→gap conversion) changes overflow distribution and can push a sticky footer/header out of view — pixel-faithful at rest, broken once content overflows | Route the surface through the bounded-scroll pattern: `flex-1` + `min-h-0` scroll body with a `shrink-0` pinned footer, and verify in the content-overflow state, not just the default mount |
|
|
329
330
|
|
|
330
331
|
## Testing by Atomic Level
|
|
331
332
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.286.
|
|
3
|
+
"version": "2.286.12",
|
|
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.286.
|
|
3
|
+
"version": "2.286.12",
|
|
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.286.
|
|
3
|
+
"version": "2.286.12",
|
|
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.286.
|
|
3
|
+
"version": "2.286.12",
|
|
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.286.
|
|
3
|
+
"version": "2.286.12",
|
|
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"
|
|
@@ -66,6 +66,8 @@ For a user-visible Fix, or a Build change that affects user-visible behavior, th
|
|
|
66
66
|
|
|
67
67
|
The lead cannot waive, defer, or demote this regression spec as optional, "if cheap", or equivalent. The only acceptable exits are a recorded absence of an end-to-end harness for the platform, or a genuine technical blocker that is captured before merge as a linked build-ready follow-up ticket referenced from the PR and source work item.
|
|
68
68
|
|
|
69
|
+
A claim that the change is "behavior-preserving", a "no-visual-regression" refactor, or "mechanical" does NOT narrow the verification plan — it widens it to the states that can change. Static, resting-state evidence (a default-mount render, even captured at multiple breakpoints) cannot prove that a scroll-bounded, overflowing, expandable, or otherwise stateful surface is unbroken. Plan to drive the surface *into* the state that would reveal the regression — expand the tallest section, overflow the container past its bounded height, open the sheet at a short viewport, scroll to the pinned edge — and observe it there. If the state that could break cannot be reached with available tooling, record that gap explicitly; never certify parity from the resting state alone.
|
|
70
|
+
|
|
69
71
|
### 6. Execute
|
|
70
72
|
|
|
71
73
|
After implementation, run the verification plan. Execute each verification type in order.
|
|
@@ -326,6 +326,7 @@ When creating or reviewing components, verify:
|
|
|
326
326
|
| Organism in atoms folder | Misclassification | Move to organisms folder |
|
|
327
327
|
| Template with business logic | Templates handle layout only | Move logic to page |
|
|
328
328
|
| Importing organism in atom | Wrong dependency direction | Restructure component hierarchy |
|
|
329
|
+
| Spacing refactor inside a bounded-height sheet/modal | Wrapping siblings in new flex containers (e.g. margin→gap conversion) changes overflow distribution and can push a sticky footer/header out of view — pixel-faithful at rest, broken once content overflows | Route the surface through the bounded-scroll pattern: `flex-1` + `min-h-0` scroll body with a `shrink-0` pinned footer, and verify in the content-overflow state, not just the default mount |
|
|
329
330
|
|
|
330
331
|
## Testing by Atomic Level
|
|
331
332
|
|