arcane-cli 1.14.1 → 1.14.3

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/README.md CHANGED
@@ -11,6 +11,8 @@
11
11
 
12
12
  AI agents can write your code; the Arcane framework gives them the discipline to *plan it, govern it, test it, review it, and **ship** it.*
13
13
 
14
+ **[arcaneai.net](https://arcaneai.net)**
15
+
14
16
  [![npm version](https://img.shields.io/npm/v/arcane-cli?style=flat-square&color=6f9fd8&label=npm)](https://www.npmjs.com/package/arcane-cli)
15
17
  [![npm downloads](https://img.shields.io/npm/dm/arcane-cli?style=flat-square&color=6f9fd8)](https://www.npmjs.com/package/arcane-cli)
16
18
  [![CI](https://img.shields.io/github/actions/workflow/status/codemagicianhq/arcane/ci.yml?style=flat-square&branch=main&label=CI)](https://github.com/codemagicianhq/arcane/actions/workflows/ci.yml)
@@ -180,6 +182,8 @@ Every line says how it holds, because a rule nobody checks should not read like
180
182
  - The push controls stop an accidental push, not a determined operator.
181
183
  <!-- arcane:capabilities:end -->
182
184
 
185
+ **[Everything the framework does](https://arcaneai.net/capabilities)**, by theme, labelled the same way.
186
+
183
187
  ---
184
188
 
185
189
  ## Meet the agents
@@ -244,6 +244,10 @@ until the moment the release ships.
244
244
 
245
245
  **Rule (MR-15): Before each store release, list every binary version still in use, from the store releases, not from the updates published to them, and confirm each has an update path, judging each as it will stand once the release ships. An update path is either updates still published for the version's native compatibility version or an in-app prompt that sends it to the store; a version with phones on it and neither is stranded. Before the release ships, give each stranded version one (a backported update, which can carry the prompt) or record the operator's decision to leave it. Enforcement: structured spell gate (ARC-023) — spell-eas-store-deploy's runtime audit is the first step of every repeat deployment, and the release report names each stranded runtime with the route chosen for it; no executable check reads the audit's result.**
246
246
 
247
+ Anchor a published backport with a protected, annotated publish-only tag that resolves to the published
248
+ commit. Retire its temporary branch after verifying that the tag can support any future build for that
249
+ runtime. Branch a later hotfix from the tag, then tag the new published commit in turn.
250
+
247
251
  ### MR-16: Pin the Xcode wherever it can change between builds
248
252
 
249
253
  Xcode stamps its toolchain into every iOS binary it builds (`DTXcode` and `DTSDKName` in the app's
@@ -224,8 +224,16 @@ offers it).
224
224
  5. Prove it by reading the update back: `eas update:view <new-group-id> --json` must show the stranded
225
225
  runtime's `runtimeVersion`, the git branch's `gitCommitHash`, and the `branch` that
226
226
  `eas channel:view <channel>` names. The pipeline's "succeeded" is not evidence (`EV-02`).
227
- 6. Mark the git branch publish-only (its name and its first commit say so) and never merge it: it exists
228
- to publish from, and a merge would bring that old tree back into the trunk.
227
+ 6. Anchor the published commit with an annotated git tag such as
228
+ `backport/<version>-update-prompt`, then retire the temporary backport branch. Before deleting the
229
+ branch, push the tag and verify that `git rev-parse "refs/tags/<tag>^{commit}"` and the remote's
230
+ peeled tag target (`git ls-remote origin 'refs/tags/<tag>^{}'`) both equal the `gitCommitHash` read
231
+ from the published update in step 5. Also verify that any build pipeline needed
232
+ for this runtime can run from `refs/tags/<tag>` and does not require a branch-name variable. Protect
233
+ the tag against deletion or replacement with the provider's tag permissions or tag ruleset; a git
234
+ branch by itself is not a durable publication anchor. Never merge the old tree into trunk. For a
235
+ later hotfix to this runtime, create a new temporary branch from the tag and give the new published
236
+ commit its own annotated tag after the same checks.
229
237
 
230
238
  ### 2. A store update prompt
231
239
 
@@ -1,4 +1,4 @@
1
- <!-- @codemagician/arcane-ui v2.5.0 -- SEE LICENSE IN LICENSE. Generated by scripts/build-report-template.tsx. Do not edit by hand. -->
1
+ <!-- @codemagician/arcane-ui v2.10.0 -- SEE LICENSE IN LICENSE. Generated by scripts/build-report-template.tsx. Do not edit by hand. -->
2
2
  <!doctype html>
3
3
  <html lang="en">
4
4
  <head>
@@ -7,7 +7,7 @@
7
7
  <title>{{masthead.title}}</title>
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com">
9
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=Rajdhani:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap">
10
- <style>:root{--cat-platform:#7fdfff;--cat-docs:#aac0d6;--cat-process:#c3d97a;--cat-fix:#ff7a6b;--cat-decision:#ffb547;--cat-governance:#8ab4ff;--cat-feature:#5cf2a4;--cat-spell:#c9a2ff;--signal-info:#7fdfff;--signal-alert:#ff3a3a;--signal-warn:#ffb547;--signal-ok:#5cf2a4;--accent:#ffffff;--ink-70:#aac0d6;--f-mono:'JetBrains Mono', ui-monospace, monospace;--ink-30:#4f6a8a;--stroke-hair:.5px;--bg-1:#060708;--ink-50:#7c95b5;--ink-10:#1d2a3d;--ink-80:#c8d5e6;--ink-60:#9fb8d6;--f-ui:'Rajdhani', 'Chakra Petch', system-ui, sans-serif;--ink-90:#e4eaf0;--f-display:'Chakra Petch', 'Saira Condensed', system-ui, sans-serif;--bg:#000000;--r-corner:var(--r-chamfer);--r-chamfer:2px;--ink-15:#2a3e58;--ink-100:#ffffff}@media (prefers-color-scheme: light){:root{--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--accent:#595959;--ink-70:#2e4260;--ink-30:#8aaac8;--bg-1:#e4eaef;--ink-50:#435b78;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-60:#3d5578;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2;--ink-100:#070c14}}@media print{:root{--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--accent:#595959;--ink-70:#2e4260;--ink-30:#8aaac8;--bg-1:#e4eaef;--ink-50:#435b78;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-60:#3d5578;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2;--ink-100:#070c14}}:root[data-theme="dark"]{--cat-platform:#7fdfff;--cat-docs:#aac0d6;--cat-process:#c3d97a;--cat-fix:#ff7a6b;--cat-decision:#ffb547;--cat-governance:#8ab4ff;--cat-feature:#5cf2a4;--cat-spell:#c9a2ff;--signal-info:#7fdfff;--signal-alert:#ff3a3a;--signal-warn:#ffb547;--signal-ok:#5cf2a4;--accent:#ffffff;--ink-70:#aac0d6;--ink-30:#4f6a8a;--bg-1:#060708;--ink-50:#7c95b5;--ink-10:#1d2a3d;--ink-80:#c8d5e6;--ink-60:#9fb8d6;--ink-90:#e4eaf0;--bg:#000000;--ink-15:#2a3e58;--ink-100:#ffffff}:root[data-theme="light"]{--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--accent:#595959;--ink-70:#2e4260;--ink-30:#8aaac8;--bg-1:#e4eaef;--ink-50:#435b78;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-60:#3d5578;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2;--ink-100:#070c14}:root:has(#arcane-report-theme-dark:checked){--cat-platform:#7fdfff;--cat-docs:#aac0d6;--cat-process:#c3d97a;--cat-fix:#ff7a6b;--cat-decision:#ffb547;--cat-governance:#8ab4ff;--cat-feature:#5cf2a4;--cat-spell:#c9a2ff;--signal-info:#7fdfff;--signal-alert:#ff3a3a;--signal-warn:#ffb547;--signal-ok:#5cf2a4;--accent:#ffffff;--ink-70:#aac0d6;--ink-30:#4f6a8a;--bg-1:#060708;--ink-50:#7c95b5;--ink-10:#1d2a3d;--ink-80:#c8d5e6;--ink-60:#9fb8d6;--ink-90:#e4eaf0;--bg:#000000;--ink-15:#2a3e58;--ink-100:#ffffff}:root:has(#arcane-report-theme-light:checked){--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--accent:#595959;--ink-70:#2e4260;--ink-30:#8aaac8;--bg-1:#e4eaef;--ink-50:#435b78;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-60:#3d5578;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2;--ink-100:#070c14}@layer arcane-ui{.arc-badge[data-variant="pill"] {
10
+ <style>:root{--cat-platform:#7fdfff;--cat-docs:#aac0d6;--cat-process:#c3d97a;--cat-fix:#ff7a6b;--cat-decision:#ffb547;--cat-governance:#8ab4ff;--cat-feature:#5cf2a4;--cat-spell:#c9a2ff;--ink-60:#9fb8d6;--f-display:'Chakra Petch', 'Saira Condensed', system-ui, sans-serif;--f-mono:'JetBrains Mono', ui-monospace, monospace;--ink-100:#ffffff;--accent:#ffffff;--ink-50:#7c95b5;--ink-70:#aac0d6;--r-corner:var(--r-chamfer);--r-chamfer:2px;--bg-1:#060708;--ink-30:#4f6a8a;--signal-info:#7fdfff;--signal-alert:#ff3a3a;--signal-warn:#ffb547;--signal-ok:#5cf2a4;--stroke-hair:.5px;--ink-10:#1d2a3d;--ink-80:#c8d5e6;--f-ui:'Rajdhani', 'Chakra Petch', system-ui, sans-serif;--ink-90:#e4eaf0;--bg:#000000;--ink-15:#2a3e58}@media (prefers-color-scheme: light){:root{--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--ink-60:#3d5578;--ink-100:#070c14;--accent:#595959;--ink-50:#435b78;--ink-70:#2e4260;--bg-1:#e4eaef;--ink-30:#8aaac8;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2}}@media print{:root{--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--ink-60:#3d5578;--ink-100:#070c14;--accent:#595959;--ink-50:#435b78;--ink-70:#2e4260;--bg-1:#e4eaef;--ink-30:#8aaac8;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2}}:root[data-theme="dark"]{--cat-platform:#7fdfff;--cat-docs:#aac0d6;--cat-process:#c3d97a;--cat-fix:#ff7a6b;--cat-decision:#ffb547;--cat-governance:#8ab4ff;--cat-feature:#5cf2a4;--cat-spell:#c9a2ff;--ink-60:#9fb8d6;--ink-100:#ffffff;--accent:#ffffff;--ink-50:#7c95b5;--ink-70:#aac0d6;--bg-1:#060708;--ink-30:#4f6a8a;--signal-info:#7fdfff;--signal-alert:#ff3a3a;--signal-warn:#ffb547;--signal-ok:#5cf2a4;--ink-10:#1d2a3d;--ink-80:#c8d5e6;--ink-90:#e4eaf0;--bg:#000000;--ink-15:#2a3e58}:root[data-theme="light"]{--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--ink-60:#3d5578;--ink-100:#070c14;--accent:#595959;--ink-50:#435b78;--ink-70:#2e4260;--bg-1:#e4eaef;--ink-30:#8aaac8;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2}:root:has(#arcane-report-theme-dark:checked){--cat-platform:#7fdfff;--cat-docs:#aac0d6;--cat-process:#c3d97a;--cat-fix:#ff7a6b;--cat-decision:#ffb547;--cat-governance:#8ab4ff;--cat-feature:#5cf2a4;--cat-spell:#c9a2ff;--ink-60:#9fb8d6;--ink-100:#ffffff;--accent:#ffffff;--ink-50:#7c95b5;--ink-70:#aac0d6;--bg-1:#060708;--ink-30:#4f6a8a;--signal-info:#7fdfff;--signal-alert:#ff3a3a;--signal-warn:#ffb547;--signal-ok:#5cf2a4;--ink-10:#1d2a3d;--ink-80:#c8d5e6;--ink-90:#e4eaf0;--bg:#000000;--ink-15:#2a3e58}:root:has(#arcane-report-theme-light:checked){--cat-platform:#0d6179;--cat-docs:#3d5578;--cat-process:#50600f;--cat-fix:#a42f26;--cat-decision:#844c00;--cat-governance:#2856ad;--cat-feature:#136640;--cat-spell:#6b3fbf;--ink-60:#3d5578;--ink-100:#070c14;--accent:#595959;--ink-50:#435b78;--ink-70:#2e4260;--bg-1:#e4eaef;--ink-30:#8aaac8;--signal-info:#006181;--signal-alert:#b70000;--signal-warn:#824d00;--signal-ok:#086736;--ink-10:#cddae8;--ink-80:#1f2f46;--ink-90:#141e2e;--bg:#f0f4f8;--ink-15:#bdd0e2}@layer arcane-ui{.arc-badge[data-variant="pill"] {
11
11
  display: inline-flex;
12
12
  align-items: center;
13
13
  gap: 6px;
@@ -61,9 +61,75 @@ box-shadow: 0 0 6px var(--accent);
61
61
  .arc-badge[data-status="ok"]:not([data-tone]) .arc-badge__dot { background: var(--signal-ok); box-shadow: 0 0 6px var(--signal-ok); }
62
62
  .arc-badge[data-status="warn"]:not([data-tone]) .arc-badge__dot { background: var(--signal-warn); box-shadow: 0 0 6px var(--signal-warn); }
63
63
  .arc-badge[data-status="alert"]:not([data-tone]) .arc-badge__dot { background: var(--signal-alert); box-shadow: 0 0 6px var(--signal-alert); }
64
- .arc-badge[data-status="info"]:not([data-tone]) .arc-badge__dot { background: var(--signal-info); box-shadow: 0 0 6px var(--signal-info); }}#arcane-report-theme-toggle-wrap input:checked+label{color:var(--ink-90);border-color:var(--ink-30)}#arcane-report-theme-toggle-wrap input:focus-visible+label{box-shadow:0 0 0 2px var(--ink-50)}@media print{#arcane-report-theme-toggle-wrap{display:none}} body{margin:0;background:var(--bg);color:var(--ink-80);font-family:var(--f-ui),system-ui,sans-serif} a{text-decoration:none} a:hover{text-decoration:underline} code{font-family:var(--f-mono);font-size:.92em} .unwritten{color:var(--ink-50);font-style:italic}</style>
64
+ .arc-badge[data-status="info"]:not([data-tone]) .arc-badge__dot { background: var(--signal-info); box-shadow: 0 0 6px var(--signal-info); }
65
+ .arc-stat-tile[data-size="default"] {
66
+ position: relative;
67
+ border: 1px solid var(--ink-25, var(--ink-30));
68
+ background: var(--bg-1);
69
+ padding: 14px 16px;
70
+ border-radius: var(--r-corner);
71
+ overflow: hidden;
72
+ }
73
+ .arc-stat-tile[data-size="sm"] {
74
+ padding: 14px 16px;
75
+ }
76
+ .arc-stat-tile__stripe {
77
+ position: absolute;
78
+ top: 0;
79
+ left: 0;
80
+ right: 0;
81
+ height: 8px;
82
+ background-image: repeating-linear-gradient(-45deg, var(--ink-70) 0 4px, transparent 4px 8px);
83
+ opacity: .7;
84
+ }
85
+ .arc-stat-tile__code-row {
86
+ display: flex;
87
+ justify-content: flex-end;
88
+ margin-bottom: 4px;
89
+ }
90
+ .arc-stat-tile__code {
91
+ font-size: 9px;
92
+ color: var(--ink-50);
93
+ }
94
+ .arc-stat-tile__row {
95
+ display: flex;
96
+ gap: 14px;
97
+ align-items: flex-start;
98
+ }
99
+ .arc-stat-tile[data-size="default"] .arc-stat-tile__value {
100
+ font-size: 54px;
101
+ line-height: 1;
102
+ color: var(--ink-100);
103
+ text-shadow: 0 0 calc(8px * var(--glow, 0)) var(--arc-stat-tile-accent, var(--accent));
104
+ font-variant-numeric: tabular-nums;
105
+ }
106
+ .arc-stat-tile[data-size="sm"] .arc-stat-tile__value {
107
+ font-size: 26px;
108
+ font-weight: 700;
109
+ line-height: 1;
110
+ color: var(--ink-100);
111
+ font-variant-numeric: tabular-nums;
112
+ letter-spacing: -.01em;
113
+ }
114
+ .arc-stat-tile__description {
115
+ flex: 1;
116
+ font-size: 9px;
117
+ font-family: var(--f-mono);
118
+ line-height: 1.4;
119
+ color: var(--ink-60);
120
+ letter-spacing: .05em;
121
+ text-transform: uppercase;
122
+ }
123
+ .arc-stat-tile__label {
124
+ font-family: var(--f-display);
125
+ font-size: 10px;
126
+ letter-spacing: .18em;
127
+ text-transform: uppercase;
128
+ color: var(--ink-60);
129
+ margin-top: 4px;
130
+ }}#arcane-report-theme-toggle-wrap input:checked+label{color:var(--ink-90);border-color:var(--ink-30)}#arcane-report-theme-toggle-wrap input:focus-visible+label{box-shadow:0 0 0 2px var(--ink-50)}@media print{#arcane-report-theme-toggle-wrap{display:none}} body{margin:0;background:var(--bg);color:var(--ink-80);font-family:var(--f-ui),system-ui,sans-serif} a{text-decoration:none} a:hover{text-decoration:underline} code{font-family:var(--f-mono);font-size:.92em} .unwritten{color:var(--ink-50);font-style:italic}</style>
65
131
  </head>
66
132
  <body>
67
- <svg width="0" height="0" style="position:absolute;width:0;height:0" aria-hidden="true" focusable="false"><symbol id="cat-spell" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75v3.5M8 10.75v3.5M1.75 8h3.5M10.75 8h3.5M3.6 3.6l2.4 2.4M10 10l2.4 2.4M12.4 3.6 10 6M6 10l-2.4 2.4"></path></symbol><symbol id="cat-feature" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2.25" y="2.25" width="11.5" height="11.5" rx="1"></rect><path d="M8 5.25v5.5M5.25 8h5.5"></path></symbol><symbol id="cat-governance" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75 13.25 3.75v4.2c0 3.05-2.2 5.3-5.25 6.3-3.05-1-5.25-3.25-5.25-6.3v-4.2z"></path></symbol><symbol id="cat-decision" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75 14.25 8 8 14.25 1.75 8z"></path></symbol><symbol id="cat-fix" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75 13.4 4.9v6.2L8 14.25 2.6 11.1V4.9z"></path><circle cx="8" cy="8" r="2.25"></circle></symbol><symbol id="cat-process" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 8a5 5 0 0 1-8.65 3.45M3 8a5 5 0 0 1 8.65-3.45"></path><path d="M11.65 2.15v2.4h-2.4M4.35 13.85v-2.4h2.4"></path></symbol><symbol id="cat-docs" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3.75 1.75h5.75l2.75 2.75v9.75h-8.5z"></path><path d="M9.5 1.75v3h3M6 8h4M6 10.75h4"></path></symbol><symbol id="cat-platform" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2.25" y="2.25" width="11.5" height="3.75" rx=".75"></rect><rect x="2.25" y="8.25" width="11.5" height="3.75" rx=".75"></rect><path d="M4.75 4.1h.01M4.75 10.1h.01"></path><path d="M8 12v2.25"></path></symbol></svg><main><fieldset id="arcane-report-theme-toggle-wrap" role="radiogroup" style="display:flex;justify-content:flex-end;gap:4px;margin-bottom:8px;border:0;padding:0"><legend style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0">Report color theme</legend><input type="radio" id="arcane-report-theme-auto" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0" name="arcane-report-theme" checked="" value="auto"/><label for="arcane-report-theme-auto" style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);background:var(--bg-1);border:1px solid var(--ink-15);border-radius:var(--r-corner);padding:6px 10px;cursor:pointer">Auto</label><input type="radio" id="arcane-report-theme-light" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0" name="arcane-report-theme" value="light"/><label for="arcane-report-theme-light" style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);background:var(--bg-1);border:1px solid var(--ink-15);border-radius:var(--r-corner);padding:6px 10px;cursor:pointer">Light</label><input type="radio" id="arcane-report-theme-dark" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0" name="arcane-report-theme" value="dark"/><label for="arcane-report-theme-dark" style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);background:var(--bg-1);border:1px solid var(--ink-15);border-radius:var(--r-corner);padding:6px 10px;cursor:pointer">Dark</label></fieldset><div><div style="display:flex;align-items:baseline;gap:12px;margin-bottom:16px"><span style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)">{{masthead.eyebrow}}</span><span aria-hidden="true" style="flex-grow:1;height:1px;background:var(--ink-10)"></span><span style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)">{{program.slug}}</span></div><h1 style="font-family:var(--f-display);font-weight:600;font-size:30px;line-height:1.15;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0 0 10px;max-width:24ch">{{masthead.title}}</h1><p style="font-family:var(--f-ui);font-size:15px;color:var(--ink-60);margin:0 0 14px;max-width:62ch">{{masthead.dek}}</p><div style="display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--f-mono);font-size:11px;color:var(--ink-70);margin-bottom:26px"><span><span style="color:var(--ink-50)">status</span> <span style="color:var(--signal-ok)">{{program.status}}</span></span><span><span style="color:var(--ink-50)">started</span> {{program.started}}</span><span><span style="color:var(--ink-50)">completed</span> {{program.completed}}</span><span><span style="color:var(--ink-50)">baseline</span> {{program.baseline}}</span></div></div><div style="margin-bottom:20px"><dl style="display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0, 1fr);gap:1px;background:var(--ink-10);border:1px solid var(--ink-30);border-radius:var(--r-corner);margin:0">{{#stats}}<div style="background:var(--bg);display:flex;flex-direction:column-reverse"><dt style="margin:4px 16px 14px;font-family:var(--f-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60)">{{label}}</dt><dd style="margin:0"><div class="arc-stat-tile arc-stat-tile--sm" style="padding:14px 16px;padding-bottom:0"><div class="arc-num" style="font-size:26px;font-weight:700;line-height:1;color:var(--ink-100);font-variant-numeric:tabular-nums;letter-spacing:-.01em">{{value}}</div></div></dd></div>{{/stats}}</dl></div><div style="display:flex;gap:12px;align-items:stretch;margin-bottom:26px"><div style="flex-grow:1"><div style="margin-bottom:26px">{{#needsYouCount}}<div style="display:flex;align-items:baseline;gap:10px;margin-bottom:8px"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">Needs you</h2><span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{needsYouCount}} open</span></div><ul style="list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px">{{#needsYou}}<li style="border:1px solid var(--ink-15);border-left:2px solid var(--signal-warn);border-radius:var(--r-corner);background:var(--bg-1);padding:12px 16px">{{#href}}<a href="{{href}}" style="color:var(--accent)">{{title}}</a>{{/href}}{{^href}}<span style="color:var(--ink-90)">{{title}}</span>{{/href}}</li>{{/needsYou}}</ul>{{/needsYouCount}}{{^needsYouCount}}<div style="border:1px solid var(--ink-15);border-left:2px solid var(--signal-ok);border-radius:var(--r-corner);background:var(--bg-1);padding:12px 16px;display:flex;align-items:center;gap:10px"><span aria-hidden="true" style="display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--signal-ok)"></span><span style="font-family:var(--f-display);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--signal-ok)">Nothing needs you</span></div>{{/needsYouCount}}</div></div>{{#hasOutcome}}<div style="border:1px solid var(--ink-15);border-radius:var(--r-corner);background:var(--bg-1);padding:12px 16px;display:flex;align-items:center;font-family:var(--f-mono);font-size:11px;color:var(--ink-70)">{{outcome}}</div>{{/hasOutcome}}</div><div style="display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 0;border-top:1px solid var(--ink-10);border-bottom:1px solid var(--ink-10);margin-bottom:26px">{{#legend}}<span style="display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50)"><span style="color:var(--cat-{{key}})"><svg width="12" height="12" aria-hidden="true" focusable="false"><use href="#cat-{{key}}"></use></svg></span>{{label}}</span>{{/legend}}</div>{{#sections}}<div style="border:1px solid var(--ink-30);border-radius:var(--r-corner);background:var(--bg);margin-bottom:18px"><div style="display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--ink-10);background:var(--bg-1)"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">{{title}}</h2><span style="flex-grow:1"></span><span style="font-family:var(--f-mono);font-size:10px;color:var(--ink-50)">{{rowCount}}</span></div><ol style="list-style:none;margin:0;padding:0">{{#rows}}<li style="border-bottom:1px solid var(--ink-10)"><div style="display:grid;grid-template-columns:68px 1fr 128px;gap:14px;padding:13px 14px;align-items:start">{{#hasHref}}<a href="{{href}}" style="font-family:var(--f-mono);font-size:11px;color:var(--accent)">{{id}}</a>{{/hasHref}}{{^hasHref}}<span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{id}}</span>{{/hasHref}}<div><div style="font-family:var(--f-display);font-weight:600;font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-90);margin-bottom:4px">{{title}}</div><div style="font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-60);font-style:normal;max-width:58ch">{{#isUnwritten}}<span class="unwritten">unwritten</span>{{/isUnwritten}}{{^isUnwritten}}{{{descriptionHtml}}}{{/isUnwritten}}</div></div><span class="arc-badge" data-variant="pill" data-tone="{{category}}" style="justify-self:end"><svg width="12" height="12" aria-hidden="true" focusable="false"><use href="#cat-{{category}}"></use></svg>{{categoryLabel}}</span></div></li>{{/rows}}</ol></div>{{/sections}}{{#hasCorrections}}{{#corrections}}<div style="border:1px solid var(--ink-15);border-radius:var(--r-corner);background:var(--bg-1);padding:14px 16px;margin-bottom:18px"><div style="display:flex;align-items:baseline;gap:10px;margin-bottom:8px"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">Calibration</h2><span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{checked}} checked · {{corrected}} corrected · {{unverifiable}} unverifiable</span></div><div style="font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-60);max-width:62ch;margin-bottom:12px">{{scopeNote}}</div><div style="display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--ink-10);padding-top:12px">{{#highlights}}<div style="display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:baseline"><span style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal-warn)">{{categoryLabel}}</span><div><div style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.02em;color:var(--ink-90);margin-bottom:3px">{{title}}</div><div style="font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-60);font-style:normal;max-width:62ch">{{#isUnwritten}}<span class="unwritten">unwritten</span>{{/isUnwritten}}{{^isUnwritten}}{{{descriptionHtml}}}{{/isUnwritten}}</div></div></div>{{/highlights}}</div></div>{{/corrections}}{{/hasCorrections}}{{#hasParked}}<div style="border:1px solid var(--ink-15);border-radius:var(--r-corner);background:var(--bg);padding:14px 16px;margin-bottom:26px"><div style="display:flex;align-items:baseline;gap:10px;margin-bottom:10px"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">Parked</h2><span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{parkedCount}} item{{^parkedIsSingular}}s{{/parkedIsSingular}} · deliberately not built</span></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px 24px">{{#parked}}<div style="display:grid;grid-template-columns:8px 1fr;gap:10px;align-items:baseline;font-family:var(--f-ui);font-size:13px;line-height:1.4;color:var(--ink-60)"><span aria-hidden="true" style="width:8px;height:1px;background:var(--ink-30);align-self:center"></span><span><span style="color:var(--ink-80);font-weight:600">{{title}}</span> — {{reason}}</span></div>{{/parked}}</div></div>{{/hasParked}}</main><footer style="display:grid;grid-template-columns:1fr 1.4fr;gap:24px;padding-top:16px;border-top:1px solid var(--ink-10)">{{#hasCast}}<div><h2 style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);margin:0 0 8px">Cast</h2><div style="display:flex;flex-direction:column;gap:4px;font-family:var(--f-mono);font-size:11px;color:var(--ink-70)">{{#cast}}<div style="display:flex;justify-content:space-between;gap:12px;max-width:220px"><span>{{name}}</span><span style="color:var(--ink-50);font-variant-numeric:tabular-nums">{{commits}} commit{{^isSingular}}s{{/isSingular}}</span></div>{{/cast}}</div></div>{{/hasCast}}<div><h2 style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);margin:0 0 8px">Provenance</h2><div style="font-family:var(--f-mono);font-size:11px;line-height:1.7;color:var(--ink-50)">compiled from {{sourcesJoined}}<br/>as of {{compiledAtDate}} · template {{provenance.templateVersion}} · schema {{schemaVersion}} · no runtime scripts</div></div></footer>
133
+ <svg width="0" height="0" style="position:absolute;width:0;height:0" aria-hidden="true" focusable="false"><symbol id="cat-spell" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75v3.5M8 10.75v3.5M1.75 8h3.5M10.75 8h3.5M3.6 3.6l2.4 2.4M10 10l2.4 2.4M12.4 3.6 10 6M6 10l-2.4 2.4"></path></symbol><symbol id="cat-feature" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2.25" y="2.25" width="11.5" height="11.5" rx="1"></rect><path d="M8 5.25v5.5M5.25 8h5.5"></path></symbol><symbol id="cat-governance" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75 13.25 3.75v4.2c0 3.05-2.2 5.3-5.25 6.3-3.05-1-5.25-3.25-5.25-6.3v-4.2z"></path></symbol><symbol id="cat-decision" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75 14.25 8 8 14.25 1.75 8z"></path></symbol><symbol id="cat-fix" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 1.75 13.4 4.9v6.2L8 14.25 2.6 11.1V4.9z"></path><circle cx="8" cy="8" r="2.25"></circle></symbol><symbol id="cat-process" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 8a5 5 0 0 1-8.65 3.45M3 8a5 5 0 0 1 8.65-3.45"></path><path d="M11.65 2.15v2.4h-2.4M4.35 13.85v-2.4h2.4"></path></symbol><symbol id="cat-docs" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3.75 1.75h5.75l2.75 2.75v9.75h-8.5z"></path><path d="M9.5 1.75v3h3M6 8h4M6 10.75h4"></path></symbol><symbol id="cat-platform" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2.25" y="2.25" width="11.5" height="3.75" rx=".75"></rect><rect x="2.25" y="8.25" width="11.5" height="3.75" rx=".75"></rect><path d="M4.75 4.1h.01M4.75 10.1h.01"></path><path d="M8 12v2.25"></path></symbol></svg><main><fieldset id="arcane-report-theme-toggle-wrap" role="radiogroup" style="display:flex;justify-content:flex-end;gap:4px;margin-bottom:8px;border:0;padding:0"><legend style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0">Report color theme</legend><input type="radio" id="arcane-report-theme-auto" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0" name="arcane-report-theme" checked="" value="auto"/><label for="arcane-report-theme-auto" style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);background:var(--bg-1);border:1px solid var(--ink-15);border-radius:var(--r-corner);padding:6px 10px;cursor:pointer">Auto</label><input type="radio" id="arcane-report-theme-light" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0" name="arcane-report-theme" value="light"/><label for="arcane-report-theme-light" style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);background:var(--bg-1);border:1px solid var(--ink-15);border-radius:var(--r-corner);padding:6px 10px;cursor:pointer">Light</label><input type="radio" id="arcane-report-theme-dark" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0" name="arcane-report-theme" value="dark"/><label for="arcane-report-theme-dark" style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50);background:var(--bg-1);border:1px solid var(--ink-15);border-radius:var(--r-corner);padding:6px 10px;cursor:pointer">Dark</label></fieldset><div><div style="display:flex;align-items:baseline;gap:12px;margin-bottom:16px"><span style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)">{{masthead.eyebrow}}</span><span aria-hidden="true" style="flex-grow:1;height:1px;background:var(--ink-10)"></span><span style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50)">{{program.slug}}</span></div><h1 style="font-family:var(--f-display);font-weight:600;font-size:30px;line-height:1.15;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0 0 10px;max-width:24ch">{{masthead.title}}</h1><p style="font-family:var(--f-ui);font-size:15px;color:var(--ink-60);margin:0 0 14px;max-width:62ch">{{masthead.dek}}</p><div style="display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--f-mono);font-size:11px;color:var(--ink-70);margin-bottom:26px"><span><span style="color:var(--ink-50)">status</span> <span style="color:var(--signal-ok)">{{program.status}}</span></span><span><span style="color:var(--ink-50)">started</span> {{program.started}}</span><span><span style="color:var(--ink-50)">completed</span> {{program.completed}}</span><span><span style="color:var(--ink-50)">baseline</span> {{program.baseline}}</span></div></div><div style="margin-bottom:20px"><dl style="display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0, 1fr);gap:1px;background:var(--ink-10);border:1px solid var(--ink-30);border-radius:var(--r-corner);margin:0">{{#stats}}<div style="background:var(--bg);display:flex;flex-direction:column-reverse"><dt style="margin:4px 16px 14px;font-family:var(--f-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60)">{{label}}</dt><dd style="margin:0"><div class="arc-stat-tile arc-stat-tile--sm" data-size="sm" style="padding-bottom:0"><div class="arc-num arc-stat-tile__value">{{value}}</div></div></dd></div>{{/stats}}</dl></div><div style="display:flex;gap:12px;align-items:stretch;margin-bottom:26px"><div style="flex-grow:1"><div style="margin-bottom:26px">{{#needsYouCount}}<div style="display:flex;align-items:baseline;gap:10px;margin-bottom:8px"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">Needs you</h2><span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{needsYouCount}} open</span></div><ul style="list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px">{{#needsYou}}<li style="border:1px solid var(--ink-15);border-left:2px solid var(--signal-warn);border-radius:var(--r-corner);background:var(--bg-1);padding:12px 16px">{{#href}}<a href="{{href}}" style="color:var(--accent)">{{title}}</a>{{/href}}{{^href}}<span style="color:var(--ink-90)">{{title}}</span>{{/href}}</li>{{/needsYou}}</ul>{{/needsYouCount}}{{^needsYouCount}}<div style="border:1px solid var(--ink-15);border-left:2px solid var(--signal-ok);border-radius:var(--r-corner);background:var(--bg-1);padding:12px 16px;display:flex;align-items:center;gap:10px"><span aria-hidden="true" style="display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--signal-ok)"></span><span style="font-family:var(--f-display);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--signal-ok)">Nothing needs you</span></div>{{/needsYouCount}}</div></div>{{#hasOutcome}}<div style="border:1px solid var(--ink-15);border-radius:var(--r-corner);background:var(--bg-1);padding:12px 16px;display:flex;align-items:center;font-family:var(--f-mono);font-size:11px;color:var(--ink-70)">{{outcome}}</div>{{/hasOutcome}}</div><div style="display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 0;border-top:1px solid var(--ink-10);border-bottom:1px solid var(--ink-10);margin-bottom:26px">{{#legend}}<span style="display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-50)"><span style="color:var(--cat-{{key}})"><svg width="12" height="12" aria-hidden="true" focusable="false"><use href="#cat-{{key}}"></use></svg></span>{{label}}</span>{{/legend}}</div>{{#sections}}<div style="border:1px solid var(--ink-30);border-radius:var(--r-corner);background:var(--bg);margin-bottom:18px"><div style="display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--ink-10);background:var(--bg-1)"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">{{title}}</h2><span style="flex-grow:1"></span><span style="font-family:var(--f-mono);font-size:10px;color:var(--ink-50)">{{rowCount}}</span></div><ol style="list-style:none;margin:0;padding:0">{{#rows}}<li style="border-bottom:1px solid var(--ink-10)"><div style="display:grid;grid-template-columns:68px 1fr 128px;gap:14px;padding:13px 14px;align-items:start">{{#hasHref}}<a href="{{href}}" style="font-family:var(--f-mono);font-size:11px;color:var(--accent)">{{id}}</a>{{/hasHref}}{{^hasHref}}<span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{id}}</span>{{/hasHref}}<div><div style="font-family:var(--f-display);font-weight:600;font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-90);margin-bottom:4px">{{title}}</div><div style="font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-60);font-style:normal;max-width:58ch">{{#isUnwritten}}<span class="unwritten">unwritten</span>{{/isUnwritten}}{{^isUnwritten}}{{{descriptionHtml}}}{{/isUnwritten}}</div></div><span class="arc-badge" data-variant="pill" data-tone="{{category}}" style="justify-self:end"><svg width="12" height="12" aria-hidden="true" focusable="false"><use href="#cat-{{category}}"></use></svg>{{categoryLabel}}</span></div></li>{{/rows}}</ol></div>{{/sections}}{{#hasCorrections}}{{#corrections}}<div style="border:1px solid var(--ink-15);border-radius:var(--r-corner);background:var(--bg-1);padding:14px 16px;margin-bottom:18px"><div style="display:flex;align-items:baseline;gap:10px;margin-bottom:8px"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">Calibration</h2><span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{checked}} checked · {{corrected}} corrected · {{unverifiable}} unverifiable</span></div><div style="font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-60);max-width:62ch;margin-bottom:12px">{{scopeNote}}</div><div style="display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--ink-10);padding-top:12px">{{#highlights}}<div style="display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:baseline"><span style="font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal-warn)">{{categoryLabel}}</span><div><div style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.02em;color:var(--ink-90);margin-bottom:3px">{{title}}</div><div style="font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-60);font-style:normal;max-width:62ch">{{#isUnwritten}}<span class="unwritten">unwritten</span>{{/isUnwritten}}{{^isUnwritten}}{{{descriptionHtml}}}{{/isUnwritten}}</div></div></div>{{/highlights}}</div></div>{{/corrections}}{{/hasCorrections}}{{#hasParked}}<div style="border:1px solid var(--ink-15);border-radius:var(--r-corner);background:var(--bg);padding:14px 16px;margin-bottom:26px"><div style="display:flex;align-items:baseline;gap:10px;margin-bottom:10px"><h2 style="font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-90);margin:0">Parked</h2><span style="font-family:var(--f-mono);font-size:11px;color:var(--ink-50)">{{parkedCount}} item{{^parkedIsSingular}}s{{/parkedIsSingular}} · deliberately not built</span></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px 24px">{{#parked}}<div style="display:grid;grid-template-columns:8px 1fr;gap:10px;align-items:baseline;font-family:var(--f-ui);font-size:13px;line-height:1.4;color:var(--ink-60)"><span aria-hidden="true" style="width:8px;height:1px;background:var(--ink-30);align-self:center"></span><span><span style="color:var(--ink-80);font-weight:600">{{title}}</span> — {{reason}}</span></div>{{/parked}}</div></div>{{/hasParked}}</main><footer style="display:grid;grid-template-columns:1fr 1.4fr;gap:24px;padding-top:16px;border-top:1px solid var(--ink-10)">{{#hasCast}}<div><h2 style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);margin:0 0 8px">Cast</h2><div style="display:flex;flex-direction:column;gap:4px;font-family:var(--f-mono);font-size:11px;color:var(--ink-70)">{{#cast}}<div style="display:flex;justify-content:space-between;gap:12px;max-width:220px"><span>{{name}}</span><span style="color:var(--ink-50);font-variant-numeric:tabular-nums">{{commits}} commit{{^isSingular}}s{{/isSingular}}</span></div>{{/cast}}</div></div>{{/hasCast}}<div><h2 style="font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-50);margin:0 0 8px">Provenance</h2><div style="font-family:var(--f-mono);font-size:11px;line-height:1.7;color:var(--ink-50)">compiled from {{sourcesJoined}}<br/>as of {{compiledAtDate}} · template {{provenance.templateVersion}} · schema {{schemaVersion}} · no runtime scripts</div></div></footer>
68
134
  </body>
69
135
  </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arcane-cli",
3
- "version": "1.14.1",
3
+ "version": "1.14.3",
4
4
  "description": "Arcane framework CLI — scaffold and manage governance files in consuming repositories",
5
5
  "keywords": [
6
6
  "arcane",
@@ -14,7 +14,7 @@
14
14
  "scaffolding",
15
15
  "templates"
16
16
  ],
17
- "homepage": "https://github.com/codemagicianhq/arcane#readme",
17
+ "homepage": "https://arcaneai.net",
18
18
  "bugs": "https://github.com/codemagicianhq/arcane/issues",
19
19
  "repository": {
20
20
  "type": "git",