axstack 0.42.2 → 0.44.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.42.2",
3
+ "version": "0.44.0",
4
4
  "description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks T3 Code capabilities.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -151,7 +151,7 @@
151
151
  "provider": "claude",
152
152
  "modeId": "bypassPermissions",
153
153
  "thinkingOptionId": "high",
154
- "notes": "Independent explanation reviewer: always reviews every visual. Reviews consequential or complex driver-written prose or on request. Checks the exact artifact for text and source fidelity. The browser interaction pass belongs to axstack-ui-verifier. Any artifact change invalidates its review. T3 resolves Claude classes from saved capabilities; a Claude rejection holds. Design review follows design.md for every inline HTML page and every Publish article adaptation. For inline pages the reviewer itself renders exact bytes with html_preview at 728px dark and 360px light as a non-publishing self-check. For Publish the reviewer opens axstack-ui-verifier PNGs at 728px dark and 360px light plus 390px mobile and 1440px desktop, covering all four widths in both themes with paths bound to the artifact SHA-256 and recorded before review. Inspect the 1440px desktop screenshot for balanced composition, intentional horizontal margins, bounded prose measure, typography, section spacing and chart legibility. Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels. Apply Delivery's one design-only repair round within the two-round limit, disclosed cosmetic exception and unknown-render holds. Chat Mermaid and anatomy keep their existing review.",
154
+ "notes": "Independent explanation reviewer: always reviews every visual. Reviews consequential or complex driver-written prose or on request. Checks the exact artifact for text and source fidelity. The browser interaction pass belongs to axstack-ui-verifier. Any artifact change invalidates its review. T3 resolves Claude classes from saved capabilities; a Claude rejection holds. Design review follows design.md hard rules and FRONTEND-DESIGN.md (calibration defaults, restraint and quality floor) for every inline HTML page and every Publish article adaptation. For inline pages the reviewer itself renders exact bytes with html_preview at 728px dark and 360px light as a non-publishing self-check. For Publish the reviewer opens axstack-ui-verifier PNGs at 728px dark and 360px light plus 390px mobile and 1440px desktop, covering all four widths in both themes with paths bound to the artifact SHA-256 and recorded before review. Inspect the 1440px desktop screenshot for balanced composition, intentional horizontal margins, bounded prose measure, typography, section spacing and chart legibility. Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels. A page failing to look decent is a blocking design finding, repaired by the same author within the two-round visual limit. If only design findings remain after the second round, deliver the visual with each finding named. Never describe a remaining finding as fixed or a clean pass. Apply Delivery's normal holds for other failures and unknown renders. Chat Mermaid and anatomy keep their existing review.",
155
155
  "modelClass": "sonnet"
156
156
  },
157
157
  {
@@ -151,7 +151,7 @@
151
151
  "provider": "codex",
152
152
  "modeId": "full-access",
153
153
  "thinkingOptionId": "xhigh",
154
- "notes": "Independent explanation reviewer: always reviews every visual. Reviews consequential or complex driver-written prose or on request. Checks the exact artifact for text and source fidelity. The browser interaction pass belongs to axstack-ui-verifier. Any artifact change invalidates its review. Resolve the class from saved T3 capabilities at run start; rejection and unavailable settings hold without substitution. Design review follows design.md for every inline HTML page and every Publish article adaptation. For inline pages the reviewer itself renders exact bytes with html_preview at 728px dark and 360px light as a non-publishing self-check. For Publish the reviewer opens axstack-ui-verifier PNGs at 728px dark and 360px light plus 390px mobile and 1440px desktop, covering all four widths in both themes with paths bound to the artifact SHA-256 and recorded before review. Inspect the 1440px desktop screenshot for balanced composition, intentional horizontal margins, bounded prose measure, typography, section spacing and chart legibility. Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels. Apply Delivery's one design-only repair round within the two-round limit, disclosed cosmetic exception and unknown-render holds. Chat Mermaid and anatomy keep their existing review.",
154
+ "notes": "Independent explanation reviewer: always reviews every visual. Reviews consequential or complex driver-written prose or on request. Checks the exact artifact for text and source fidelity. The browser interaction pass belongs to axstack-ui-verifier. Any artifact change invalidates its review. Resolve the class from saved T3 capabilities at run start; rejection and unavailable settings hold without substitution. Design review follows design.md hard rules and FRONTEND-DESIGN.md (calibration defaults, restraint and quality floor) for every inline HTML page and every Publish article adaptation. For inline pages the reviewer itself renders exact bytes with html_preview at 728px dark and 360px light as a non-publishing self-check. For Publish the reviewer opens axstack-ui-verifier PNGs at 728px dark and 360px light plus 390px mobile and 1440px desktop, covering all four widths in both themes with paths bound to the artifact SHA-256 and recorded before review. Inspect the 1440px desktop screenshot for balanced composition, intentional horizontal margins, bounded prose measure, typography, section spacing and chart legibility. Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels. A page failing to look decent is a blocking design finding, repaired by the same author within the two-round visual limit. If only design findings remain after the second round, deliver the visual with each finding named. Never describe a remaining finding as fixed or a clean pass. Apply Delivery's normal holds for other failures and unknown renders. Chat Mermaid and anatomy keep their existing review.",
155
155
  "modelClass": "luna"
156
156
  },
157
157
  {
@@ -152,7 +152,7 @@
152
152
  "provider": "codex",
153
153
  "modeId": "full-access",
154
154
  "thinkingOptionId": "medium",
155
- "notes": "Independent Sol medium explanation reviewer: always reviews every visual. Reviews consequential or complex driver-written prose or on request. Checks the exact artifact for text and source fidelity. The browser interaction pass belongs to axstack-ui-verifier. Any artifact change invalidates its review. Resolve the class from saved T3 capabilities at run start; rejection and unavailable settings hold without substitution. Design review follows design.md for every inline HTML page and every Publish article adaptation. For inline pages the reviewer itself renders exact bytes with html_preview at 728px dark and 360px light as a non-publishing self-check. For Publish the reviewer opens axstack-ui-verifier PNGs at 728px dark and 360px light plus 390px mobile and 1440px desktop, covering all four widths in both themes with paths bound to the artifact SHA-256 and recorded before review. Inspect the 1440px desktop screenshot for balanced composition, intentional horizontal margins, bounded prose measure, typography, section spacing and chart legibility. Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels. Apply Delivery's one design-only repair round within the two-round limit, disclosed cosmetic exception and unknown-render holds. Chat Mermaid and anatomy keep their existing review.",
155
+ "notes": "Independent Sol medium explanation reviewer: always reviews every visual. Reviews consequential or complex driver-written prose or on request. Checks the exact artifact for text and source fidelity. The browser interaction pass belongs to axstack-ui-verifier. Any artifact change invalidates its review. Resolve the class from saved T3 capabilities at run start; rejection and unavailable settings hold without substitution. Design review follows design.md hard rules and FRONTEND-DESIGN.md (calibration defaults, restraint and quality floor) for every inline HTML page and every Publish article adaptation. For inline pages the reviewer itself renders exact bytes with html_preview at 728px dark and 360px light as a non-publishing self-check. For Publish the reviewer opens axstack-ui-verifier PNGs at 728px dark and 360px light plus 390px mobile and 1440px desktop, covering all four widths in both themes with paths bound to the artifact SHA-256 and recorded before review. Inspect the 1440px desktop screenshot for balanced composition, intentional horizontal margins, bounded prose measure, typography, section spacing and chart legibility. Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels. A page failing to look decent is a blocking design finding, repaired by the same author within the two-round visual limit. If only design findings remain after the second round, deliver the visual with each finding named. Never describe a remaining finding as fixed or a clean pass. Apply Delivery's normal holds for other failures and unknown renders. Chat Mermaid and anatomy keep their existing review.",
156
156
  "modelClass": "sol"
157
157
  },
158
158
  {
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env bun
2
+ // Read only the index. No hooks, configuration writes or working-tree reads.
3
+ import { readFileSync } from 'node:fs';
4
+
5
+ const ignoredPath = /(^|\/)(?:[^/]*\.lockb?|package-lock\.json|pnpm-lock\.yaml|yarn\.lock|go\.sum)$|(^|\/)(?:dist|build|__mocks__|__fixtures__|fixtures|captures)\/|\.(?:min|generated|gen)\.|\.(?:map|snap)$/i;
6
+ const asset = /\.(?:svg|png|jpe?g|gif|webp|avif|ico|bmp|tiff?|pdf|woff2?|ttf|otf|eot|mp[34]|wav|ogg|flac|webm|mov|avi|zip|gz|bz2|xz|7z|rar|tar|exe|dll|so|dylib|wasm|bin|class|jar|pyc|sqlite3?|db)$/i;
7
+ let root = process.cwd();
8
+ function git(...args) {
9
+ const result = Bun.spawnSync(['git', '--literal-pathspecs', ...args], { cwd: root });
10
+ if (result.exitCode !== 0) throw Error(result.stderr.toString().trim());
11
+ return result.stdout.toString();
12
+ }
13
+
14
+ try {
15
+ root = git('rev-parse', '--show-toplevel').trim();
16
+ const ignoreFile = git('rev-parse', '--path-format=absolute', '--git-path', 'info/token-limit-ignore').trim();
17
+ let ignores = [];
18
+ try {
19
+ ignores = readFileSync(ignoreFile, 'utf8').split(/\r?\n/)
20
+ .map((line) => line.trim()).filter((line) => line && !line.startsWith('#'))
21
+ .map((pattern) => new Bun.Glob(pattern));
22
+ } catch (error) {
23
+ if (error.code !== 'ENOENT') throw error;
24
+ }
25
+ const paths = git('diff', '--cached', '--name-only', '--diff-filter=ACMR', '-z').split('\0').filter(Boolean);
26
+ const offenders = [];
27
+ for (const path of paths) {
28
+ if (ignoredPath.test(path) || asset.test(path) || ignores.some((glob) => glob.match(path))) continue;
29
+ if (git('ls-files', '--stage', '-z', '--', path).startsWith('160000 ')) continue;
30
+ const bytes = Number(git('cat-file', '-s', `:${path}`));
31
+ if (bytes <= 20000) continue;
32
+ if (git('diff', '--cached', '--numstat', '--no-renames', '-z', '--', path).startsWith('-\t')) continue;
33
+ // Consume the blob fully: closing a pipeline at line five can cause SIGPIPE.
34
+ const firstLines = git('cat-file', 'blob', `:${path}`).split('\n', 5).join('\n');
35
+ if (/@generated|auto[- ]?generated|do not edit|code generated by/i.test(firstLines)) continue;
36
+ offenders.push(`${JSON.stringify(path)}: ${Math.floor(bytes / 4)} tokens`);
37
+ }
38
+ if (offenders.length) {
39
+ console.error(`Staged files exceed 5000 tokens (20000 bytes; tokens = floor(bytes / 4)):
40
+ ${offenders.join('\n')}
41
+
42
+ Split each file before committing:
43
+ 1. Find seams: group top-level units by responsibility.
44
+ 2. Create a folder named after the original file, with one module per responsibility.
45
+ TS: foo.ts -> foo/types.ts, foo/parse.ts, foo/index.ts.
46
+ Rust: foo.rs -> foo/mod.rs + submodules with re-exports.
47
+ Svelte: child components + a .ts module for pure logic.
48
+ Specs: one spec per describe block or behaviour.
49
+ HTML docs: one doc per topic, linked from an index.
50
+ 3. Keep the public surface stable via re-exports, or update all imports in the same commit.
51
+ 4. Move code verbatim first, then refactor in a separate commit.
52
+ 5. Aim for ~3000 tokens per file.
53
+ 6. Stage the new files and re-commit.
54
+ If truly generated or recorded data, add a glob to ${JSON.stringify(ignoreFile)}
55
+ or give the file a generated banner in its first 5 lines.`);
56
+ process.exit(1);
57
+ }
58
+ } catch (error) {
59
+ console.error(`Staged-file token check failed: ${error.message}`);
60
+ process.exit(1);
61
+ }
@@ -61,7 +61,8 @@ Dispatch every visual Explain delivers to `axstack-explainer` with a bounded
61
61
  evidence brief, including inline pages, chat Mermaid and anatomy figures.
62
62
  The `axstack-explainer` loads [design.md](references/design.md) and reads
63
63
  [FRONTEND-DESIGN.md](references/frontend-design/FRONTEND-DESIGN.md) for every inline HTML page
64
- and every Publish article adaptation.
64
+ and every Publish article adaptation, using frontend-design as the sole design authority
65
+ subject to design.md's hard rules.
65
66
  Never load either reference for chat Mermaid or anatomy figures.
66
67
  Explicitly requested standalone HTML files keep their existing review and Visual QA.
67
68
  Plain-prose answers stay driver-written; other phases retain their own Mermaid
@@ -14,22 +14,18 @@ naming the held page and the reason.
14
14
  Whiteboard-defense plain prose still requires `axstack-explainer-review`.
15
15
  If a required author or reviewer seat is unavailable, hold the visual and
16
16
  answer in plain prose naming the held visual.
17
- Replace a visual still failing checks after two repair rounds with the same
18
- author by plain prose with the reason.
19
- For inline HTML pages and Publish article adaptations, apply [design.md](design.md):
20
- a named tell is blocking for one design-only repair round with the same author,
21
- counting within the two-round visual limit.
22
- Never start a second design-only round.
23
- A cosmetic tell remaining in fresh exact-byte renders becomes a disclosed
24
- non-blocking design exception, recorded in evidence and named in delivery.
25
- Never describe the exception as fixed or a clean design pass.
26
- This exception never waives source-fidelity, security, asset, theme, layout,
27
- accessibility, interaction or publication requirements.
28
- A tell causing any such defect keeps that defect's normal hold and repair rules.
17
+ Except for design-only findings below, replace a visual still failing checks after
18
+ two repair rounds with the same author by plain prose with the reason.
19
+ For inline HTML pages and Publish article adaptations, judge the exact-byte renders
20
+ against [FRONTEND-DESIGN.md](frontend-design/FRONTEND-DESIGN.md), including its calibration defaults,
21
+ restraint and quality floor, plus [design.md](design.md)'s hard rules.
22
+ A page failing to look decent is a blocking design finding, repaired by the same author within the two-round visual limit.
23
+ If only design findings remain after the second round, deliver the visual with each finding named and recorded in evidence.
24
+ Never describe a remaining finding as fixed or a clean pass.
25
+ Hard-rule, fidelity, security, asset, theme, accessibility, layout-defect, interaction
26
+ and publication failures keep their normal holds and repair rules.
29
27
  An unavailable, unreadable or stale render leaves design review unknown and holds
30
28
  the visual or publication; inline delivery may use the plain-prose fallback above.
31
- An unknown check is never a tell that expires after one round.
32
- Overall look is advisory.
33
29
 
34
30
  The driver never writes a substitute visual.
35
31
  Each repair round returns findings to the same author and rechecks the exact final bytes.
@@ -1,37 +1,14 @@
1
1
  # Design
2
2
 
3
- Apply precedence in this order: 1) Axstack page rules for the output kind plus this file's subject, colour, motion, font and no-notes rules, 2) source fidelity, 3) named tells, 4) frontend-design for approach and everything else.
4
- Inline pages favour restraint; published articles may vary boldly within levels 1–3.
5
-
6
- Named tells:
7
- - Eyebrow labels or tiny tracked caps.
8
- - A single styled accent word.
9
- - Gradients, glass or resting shadows.
10
- - Emoji or decorative blobs.
11
- - Rows of identical cards or bordered boxes.
12
- - More than two typefaces or five sizes.
13
- - Body text outside full ink or default left alignment.
14
-
15
- Diagram edges and arrows, timeline order, tables and code paths are content, not ornament.
16
- Anatomy follows its kit.
17
- A behaviour required by a higher-priority rule is never a tell.
18
-
19
- The actual subject and question determine structure.
20
- Never stop to confirm the subject.
21
- Inline colour: `--background` is ground, `--foreground` is ink, `--muted-foreground` serves only secondary text, `--ring` is the single accent.
22
- Published articles may use a small named palette checked in light and dark.
23
- Motion is static by default; any animation is CSS-only and respects reduced motion.
24
- Inline pages use only T3 font variables.
25
- Published articles use system font stacks.
26
- Never use font files or network requests.
27
- Never keep design notes or history across pages; frontend-design's note-keeping hint does not apply.
28
-
29
- ## Standalone Publish layout
30
-
31
- Give standalone Publish articles mobile gutters, a bounded prose measure and intentional horizontal margins for balanced desktop composition.
32
- Centre the reading column or use a deliberate asymmetric layout that balances the whole viewport.
33
- Set readable body typography and line height, clear heading hierarchy and generous section spacing for standalone articles.
34
- Size chart labels, values, units and spacing for legibility at mobile and desktop widths in both themes.
35
- Choose dimensions and rhythm for the article's content; the inline T3 frame supplies its own surrounding space.
36
-
37
- Credit: [taste-skill](https://github.com/Leonxlnx/taste-skill/tree/f624f37a) (MIT, `Leonxlnx/taste-skill` at `f624f37a`) and [frontend-design](frontend-design/PROVENANCE.md).
3
+ [FRONTEND-DESIGN.md](frontend-design/FRONTEND-DESIGN.md) is the sole design authority for every visual choice — palette, typography, layout, spacing, structure, motion and self-critique — on every inline HTML page and every Publish article adaptation.
4
+ These hard rules win on conflict.
5
+
6
+ - Never load network resources or font files. Inline pages use T3 font variables or system font stacks. Published articles use system font stacks.
7
+ - Inline pages follow the live T3 theme: derive every colour from T3 theme variables — ground from `--background`, ink from `--foreground`, all other colours via `color-mix()` with them or T3 semantic/chart variables (`--muted-foreground`, `--accent`, `--success`, `--warning`, `--destructive`, `--info`, `--chart-1`…`--chart-6`). Keep every colour legible in light and dark. `var()` fallbacks are allowed for standalone viewing. Never switch inline palettes on `prefers-color-scheme`; T3's theme leaves that query unchanged. Never redefine T3's own variables in inline pages. Published articles support light and dark via `prefers-color-scheme` outside T3.
8
+ - Keep pages responsive down to 360px with visible keyboard focus, reduced motion respected and sufficient contrast in both themes.
9
+ - Never stop to confirm the subject: the brief and evidence are the subject.
10
+ - Never keep design notes or history across pages. This overrides frontend-design's note hint.
11
+ - Source fidelity beats any design choice: diagram edges, order, tables and code paths show the source.
12
+ - For non-anatomy inline pages only, follow [inline-pages.md](inline-pages.md): its Embed fit and Page rules sections also win on conflict. Anatomy follows its own kit.
13
+
14
+ Credit: [frontend-design](frontend-design/PROVENANCE.md).
@@ -9,5 +9,4 @@ Commit: `41bbe19d1a1a7eaab5e7bb9050a417e5c6cffc8f`
9
9
  Git blob: `f433b1a53f5b830a205fd2df78e2b34974656c7b`.
10
10
 
11
11
  License: Apache-2.0; the complete upstream licence accompanies this reference.
12
- This payload is not registered as a skill. Axstack's owned design guidance
13
- sets precedence and scope in `../design.md`.
12
+ This payload is not registered as a skill. Axstack's hard rules live in `../design.md`.
@@ -7,21 +7,25 @@ The driver publishes the page in its own thread.
7
7
 
8
8
  Use T3 theme variables and follow the live theme.
9
9
  Only an explicit user theme request overrides the page theme.
10
- Use `--background`, `--foreground`, `--muted-foreground`, `--ring`,
11
- `--font-sans`, and `--font-mono` for their named purposes.
12
-
13
- Use fluid width, with zero outer horizontal padding.
14
- Never use an outer frame, banner, or viewport heights.
15
- Anatomy may retain its figure card as an inner panel with at least 16px padding
16
- and `var(--radius)`; its page wrapper still has zero gutters and no background.
17
- Let content set the page height. Use fixed chart heights.
18
- Set frame `height` to the larger contentHeight of the two previews, capped at 2000.
10
+ For inline pages other than anatomy, follow [design.md](design.md) for the theme rule and visual design authority.
11
+ Anatomy follows its own kit.
19
12
 
20
13
  Choose the page shape from its content rather than a fixed template.
21
14
  Map stages to a connected diagram, sequence to a timeline, comparison to side
22
- by side or table, and separate equal items to a list.
23
- Prefer diagrams and timelines. Avoid grids of bordered boxes.
24
- Keep borders minimal and use color only where it has meaning.
15
+ by side or table, and separate equal items to a list; frontend-design can refine this content-shape mapping guidance.
16
+
17
+ ## Embed fit
18
+
19
+ The T3 frame is borderless on the thread background, with its left edge aligned to reply text.
20
+ Use fluid width with zero horizontal padding on the outermost element.
21
+ Never add an outer card, border or banner title.
22
+ A banner title means an outer header block or band; an ordinary page heading is allowed.
23
+ Keep html, body and the outermost element without a background colour.
24
+ Give any inner box with its own background at least 16px padding on every side and `var(--radius)` corners.
25
+ Anatomy may retain its figure card as an inner panel with at least 16px padding and `var(--radius)`; its page wrapper still has zero gutters and no background.
26
+ Never use viewport heights.
27
+ Let content set the page height. Use fixed chart heights.
28
+ Set frame `height` to the larger contentHeight of the two previews, capped at 2000.
25
29
 
26
30
  ## Page rules
27
31
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  For inline pages, follow [Inline pages](inline-pages.md) instead of this checklist.
4
4
 
5
- Design review against [design.md](design.md) covers every inline HTML page and every Publish article adaptation.
5
+ Design review against [design.md](design.md) hard rules and [FRONTEND-DESIGN.md](frontend-design/FRONTEND-DESIGN.md) covers every inline HTML page and every Publish article adaptation, including its calibration defaults, restraint and quality floor.
6
6
  For inline pages, the reviewer itself renders exact bytes with `html_preview` at
7
7
  728px dark and 360px light as a non-publishing self-check.
8
8
  This supplements the driver's required previews and any verifier pass.
@@ -14,7 +14,10 @@ bounded prose measure, typography, section spacing and chart legibility.
14
14
  Inspect the 360px and 390px mobile screenshots for gutters, readable text and chart labels.
15
15
  Check every width and theme for clipping and horizontal scroll, recording defects and observations.
16
16
  The driver forwards those paths and SHA-256; changed bytes require fresh screenshots and review.
17
- Apply [Delivery](delivery.md)'s one-round design repair, disclosed cosmetic exception and unknown-render holds.
17
+ A page failing to look decent is a blocking design finding, repaired by the same author within the two-round visual limit.
18
+ If only design findings remain after the second round, deliver the visual with each finding named.
19
+ Never describe a remaining finding as fixed or a clean pass.
20
+ Follow [Delivery](delivery.md) for other failure holds and unknown-render holds.
18
21
  Chat Mermaid, anatomy and explicitly requested standalone HTML files keep their existing review and Visual QA.
19
22
  Interaction checks remain with `axstack-ui-verifier`; source-fidelity review is unchanged.
20
23
 
@@ -162,6 +162,13 @@ applied or found not applicable in the `Simplification:` line of the
162
162
  [section 5 implementation receipt](#5-verify-and-return-the-candidate),
163
163
  including evidence and retained complexity.
164
164
 
165
+ Before every commit, the author runs the
166
+ [staged-file token gate](../axstack/scripts/check-staged-file-tokens.js)
167
+ with `bun` from the target repository.
168
+ If the gate fails, split files per its instructions before retrying.
169
+ Never bypass the staged-file token gate.
170
+ Record the staged-file token gate result in the implementation receipt.
171
+
165
172
  ## 5. Verify and return the candidate
166
173
 
167
174
  Run the acceptance checks and affected integration boundaries. Record commands,
@@ -189,6 +196,7 @@ Owner: <profile + session ID + worktree>
189
196
  Scope: <approved spec + capability | small-change intent | maintenance snapshot>
190
197
  Shape: <total> lines vs base <sha>; bulk: <buckets>; theme: <one line>
191
198
  TDD: <normal red/green | structure-preserving old-green/same-check-new-green evidence | F-repair base-green/removal-inversion-red/rewording-green evidence>
199
+ Token limit: <staged-file gate command + observed result before each commit>
192
200
  Simplification: <applied | not-applicable> — evidence: <diff locations and checks>; retained complexity: <necessary complexity and why>
193
201
  Acceptance: <checks + observed results>
194
202
  Dependencies: <parent revisions or none>
@@ -42,12 +42,10 @@ to remove private paths, IDs, credentials, prompts, messages and internal record
42
42
  For public mode, run Explain's [self-contained asset check](../axstack-explain/references/inline-pages.md#check-the-exact-bytes).
43
43
  Reuse Explain's [page rules](../axstack-explain/references/inline-pages.md#page-rules)
44
44
  and [Visual QA](../axstack-explain/references/visual-qa.md) for checks and verifier routing.
45
- [Inline zero-padding embed rules](../axstack-explain/references/inline-pages.md#shape-and-theme) apply only to T3 frames.
46
- Use [design.md](../axstack-explain/references/design.md) for standalone Publish layout.
47
45
 
48
46
  Send the article adaptation, including art direction and standalone light/dark theme,
49
47
  to `axstack-explainer` with a bounded brief.
50
- The explainer follows Explain's [design guidance](../axstack-explain/references/design.md)
48
+ The explainer loads and follows Explain's [design guidance](../axstack-explain/references/design.md)
51
49
  and reads [frontend-design](../axstack-explain/references/frontend-design/FRONTEND-DESIGN.md).
52
50
  Require inline defaults and `prefers-color-scheme` so the article works outside T3;
53
51
  honor an explicit user theme request.
@@ -59,13 +57,19 @@ covering all four widths in both themes, and record screenshots with paths,
59
57
  their artifact SHA-256 and the Explain QA results.
60
58
  Require a fresh independent `axstack-explainer-review` on the final bytes.
61
59
  The driver forwards the verifier PNG paths and bound artifact SHA-256 for the
62
- reviewer's design review against design.md, alongside source-fidelity review.
63
- Apply Explain's [Delivery](../axstack-explain/references/delivery.md) one-round design repair
64
- and disclosed cosmetic exception; that exception leaves all other requirements binding.
60
+ reviewer's design review against FRONTEND-DESIGN.md (calibration defaults, restraint
61
+ and quality floor) plus design.md's hard rules, alongside source-fidelity review.
62
+ A page failing to look decent is a blocking design finding, repaired by the same author within the two-round visual limit.
63
+ If only design findings remain after the second round, deliver the visual with each finding named and recorded in evidence.
64
+ Never describe a remaining finding as fixed or a clean pass.
65
+ Follow Explain's [Delivery](../axstack-explain/references/delivery.md) for normal holds
66
+ on hard-rule, fidelity, security, asset, theme, accessibility, layout-defect,
67
+ interaction and publication failures.
65
68
  Any subsequent byte change invalidates checks and review: repeat this step.
66
- Hold publication while any required check or review is missing or failed.
67
- Unavailable, unreadable or stale renders leave design review unknown and hold publication;
68
- unknown is never passed or a cosmetic exception.
69
+ Hold publication while any required check or review is missing or failed, except for
70
+ the design-only delivery after the second round above.
71
+ Unavailable, unreadable or stale renders leave design review unknown and hold publication.
72
+ Never treat unknown design review as a pass.
69
73
 
70
74
  ## 3. Publish from the driver
71
75