gm-skill 2.0.1848 → 2.0.1850

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.
@@ -1047,13 +1047,12 @@ function probeUnsupervisedWatcher(spoolDir) {
1047
1047
  }
1048
1048
 
1049
1049
  function resolveNodeRuntime() {
1050
- const isNodeExe = (p) => /(^|[\\/])node(\.exe)?$/i.test(String(p || ''));
1051
1050
  const candidates = [];
1052
- if (isNodeExe(process.env.GM_NODE_PATH)) candidates.push(process.env.GM_NODE_PATH);
1053
- if (isNodeExe(process.execPath)) candidates.push(process.execPath);
1051
+ if (process.env.PLUGKIT_RUNTIME) candidates.push(process.env.PLUGKIT_RUNTIME);
1052
+ candidates.push('bun');
1054
1053
  try {
1055
1054
  const which = process.platform === 'win32' ? 'where' : 'which';
1056
- const out = require('child_process').spawnSync(which, ['node'], { encoding: 'utf8', windowsHide: true });
1055
+ const out = require('child_process').spawnSync(which, ['bun'], { encoding: 'utf8', windowsHide: true });
1057
1056
  if (out && out.stdout) {
1058
1057
  const first = out.stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean)[0];
1059
1058
  if (first) candidates.push(first);
@@ -1062,6 +1061,21 @@ function resolveNodeRuntime() {
1062
1061
  for (const c of candidates) {
1063
1062
  try { const r = require('child_process').spawnSync(c, ['--version'], { stdio: 'ignore', windowsHide: true }); if (r && r.status === 0) return c; } catch (_) {}
1064
1063
  }
1064
+ const isNodeExe = (p) => /(^|[\\/])node(\.exe)?$/i.test(String(p || ''));
1065
+ const nodeCandidates = [];
1066
+ if (isNodeExe(process.env.GM_NODE_PATH)) nodeCandidates.push(process.env.GM_NODE_PATH);
1067
+ if (isNodeExe(process.execPath)) nodeCandidates.push(process.execPath);
1068
+ try {
1069
+ const which = process.platform === 'win32' ? 'where' : 'which';
1070
+ const out = require('child_process').spawnSync(which, ['node'], { encoding: 'utf8', windowsHide: true });
1071
+ if (out && out.stdout) {
1072
+ const first = out.stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean)[0];
1073
+ if (first) nodeCandidates.push(first);
1074
+ }
1075
+ } catch (_) {}
1076
+ for (const c of nodeCandidates) {
1077
+ try { const r = require('child_process').spawnSync(c, ['--version'], { stdio: 'ignore', windowsHide: true }); if (r && r.status === 0) return c; } catch (_) {}
1078
+ }
1065
1079
  return process.execPath;
1066
1080
  }
1067
1081
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.1848",
3
+ "version": "2.0.1850",
4
4
  "description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform binary, verifies SHA256, and starts the spool watcher daemon. Includes plugkit-wasm-wrapper for WASM-based spool watching.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -117,12 +117,14 @@ function clearVerbActive() {
117
117
 
118
118
  process.on('uncaughtException', (err) => {
119
119
  try { console.error('[plugkit-wasm] uncaught:', err && err.stack || err); } catch (_) {}
120
+ try { killAllTasks('crash:uncaughtException'); } catch (_) {}
120
121
  emitShutdownReason('uncaughtException', err);
121
122
  process.exit(1);
122
123
  });
123
124
 
124
125
  process.on('unhandledRejection', (reason) => {
125
126
  try { console.error('[plugkit-wasm] unhandled rejection:', reason && reason.stack || reason); } catch (_) {}
127
+ try { killAllTasks('crash:unhandledRejection'); } catch (_) {}
126
128
  emitShutdownReason('unhandledRejection', reason instanceof Error ? reason : new Error(String(reason)));
127
129
  process.exit(1);
128
130
  });
@@ -745,23 +747,23 @@ function aggregateCpuProfile(profile, topN) {
745
747
  const BROWSER_RUNNER_BIN = process.env.GM_BROWSER_RUNNER_BIN || 'playwriter';
746
748
 
747
749
  function findBrowserRunner() {
748
- const npmR = spawnSync('npm', ['root', '-g'], { encoding: 'utf-8', shell: true });
749
- if (npmR.status === 0 && npmR.stdout.trim()) {
750
- const root = npmR.stdout.trim().split(/\r?\n/).pop();
751
- const binJs = path.join(root, BROWSER_RUNNER_BIN, 'bin.js');
750
+ const bunGlobalRoots = [
751
+ path.join(os.homedir(), '.bun', 'install', 'global', 'node_modules', BROWSER_RUNNER_BIN, 'bin.js'),
752
+ ];
753
+ for (const binJs of bunGlobalRoots) {
752
754
  if (fs.existsSync(binJs)) return { cmd: process.execPath, baseArgs: [binJs], shell: false };
753
755
  }
754
756
  const whichCmd = process.platform === 'win32' ? 'where' : 'which';
757
+ const bunR = spawnSync(whichCmd, ['bun'], { encoding: 'utf-8', shell: true });
758
+ if (bunR.status === 0 && bunR.stdout.trim()) {
759
+ return { cmd: 'bun', baseArgs: ['x', `${BROWSER_RUNNER_BIN}@latest`], shell: true };
760
+ }
755
761
  const r = spawnSync(whichCmd, [BROWSER_RUNNER_BIN], { encoding: 'utf-8', shell: true });
756
762
  if (r.status === 0 && r.stdout.trim()) {
757
763
  const candidates = r.stdout.split(/\r?\n/).map(l => l.trim()).filter(Boolean);
758
764
  const cmd = candidates.find(c => c.toLowerCase().endsWith('.cmd')) || candidates.find(c => !c.toLowerCase().endsWith('.ps1')) || candidates[0];
759
765
  if (cmd) return { cmd, baseArgs: [], shell: process.platform === 'win32' };
760
766
  }
761
- const bunR = spawnSync(whichCmd, ['bun'], { encoding: 'utf-8', shell: true });
762
- if (bunR.status === 0 && bunR.stdout.trim()) {
763
- return { cmd: 'bun', baseArgs: ['x', `${BROWSER_RUNNER_BIN}@latest`], shell: true };
764
- }
765
767
  const npxR = spawnSync(whichCmd, ['npx'], { encoding: 'utf-8', shell: true });
766
768
  if (npxR.status === 0 && npxR.stdout.trim()) {
767
769
  return { cmd: 'npx', baseArgs: ['-y', BROWSER_RUNNER_BIN], shell: true };
@@ -2116,8 +2118,25 @@ function nextTaskId(cwd) {
2116
2118
  return `t${n}`;
2117
2119
  }
2118
2120
 
2121
+ let _jsRuntimeCmd = null;
2122
+ function resolveJsRuntimeCmd() {
2123
+ if (_jsRuntimeCmd) return _jsRuntimeCmd;
2124
+ if (!/(^|[\\/])node(\.exe)?$/i.test(String(process.execPath || ''))) {
2125
+ _jsRuntimeCmd = process.execPath;
2126
+ return _jsRuntimeCmd;
2127
+ }
2128
+ try {
2129
+ const which = process.platform === 'win32' ? 'where' : 'which';
2130
+ const out = spawnSync(which, ['bun'], { encoding: 'utf-8', windowsHide: true });
2131
+ const first = (out && out.stdout || '').split(/\r?\n/).map((s) => s.trim()).filter(Boolean)[0];
2132
+ if (first) { _jsRuntimeCmd = first; return _jsRuntimeCmd; }
2133
+ } catch (_) {}
2134
+ _jsRuntimeCmd = process.execPath;
2135
+ return _jsRuntimeCmd;
2136
+ }
2137
+
2119
2138
  function langToCmd(lang, code) {
2120
- if (lang === 'nodejs' || lang === 'js' || lang === 'javascript' || lang === 'node') return { cmd: process.execPath, args: ['-e', code], stdinCode: null };
2139
+ if (lang === 'nodejs' || lang === 'js' || lang === 'javascript' || lang === 'node') return { cmd: resolveJsRuntimeCmd(), args: ['-e', code], stdinCode: null };
2121
2140
  if (lang === 'python' || lang === 'py') return { cmd: 'python', args: ['-c', code], stdinCode: null };
2122
2141
  if (lang === 'bash' || lang === 'sh' || lang === 'shell' || lang === 'zsh') return { cmd: 'bash', args: ['-c', code], stdinCode: null };
2123
2142
  if (lang === 'powershell' || lang === 'ps1') return { cmd: 'powershell', args: ['-NoProfile', '-NonInteractive', '-Command', code], stdinCode: null };
@@ -2125,10 +2144,15 @@ function langToCmd(lang, code) {
2125
2144
  return null;
2126
2145
  }
2127
2146
 
2147
+ const TASK_MAX_TIMEOUT_MS = 10 * 60 * 1000;
2148
+
2128
2149
  function spawnTask({ cwd, lang, code, timeoutMs }) {
2129
2150
  const id = nextTaskId(cwd);
2130
2151
  const built = langToCmd(lang, code);
2131
2152
  if (!built) return { ok: false, error: `unsupported lang: ${lang}` };
2153
+ if (!Number.isFinite(timeoutMs) || timeoutMs <= 0 || timeoutMs > TASK_MAX_TIMEOUT_MS) {
2154
+ timeoutMs = TASK_MAX_TIMEOUT_MS;
2155
+ }
2132
2156
  const outLog = taskOutPath(cwd, id, 'stdout');
2133
2157
  const errLog = taskOutPath(cwd, id, 'stderr');
2134
2158
  let outFd = null, errFd = null;
@@ -2261,6 +2285,43 @@ function killAllTasks(reason) {
2261
2285
  return killed;
2262
2286
  }
2263
2287
 
2288
+ function pidAliveLocal(pid) {
2289
+ if (!Number.isFinite(pid) || pid <= 0) return false;
2290
+ try { process.kill(pid, 0); return true; } catch (_) { return false; }
2291
+ }
2292
+
2293
+ function sweepOrphanedTaskMetaOnBoot(cwd) {
2294
+ let swept = 0;
2295
+ try {
2296
+ const dir = tasksDir(cwd);
2297
+ const now = Date.now();
2298
+ for (const name of fs.readdirSync(dir)) {
2299
+ if (!/^t\d+\.json$/.test(name)) continue;
2300
+ const metaPath = path.join(dir, name);
2301
+ let meta = null;
2302
+ try { meta = JSON.parse(fs.readFileSync(metaPath, 'utf-8')); } catch (_) { continue; }
2303
+ if (!meta || meta.status !== 'running') continue;
2304
+ const stale = !pidAliveLocal(meta.pid) || (meta.deadline_ms && now > meta.deadline_ms);
2305
+ if (!stale) continue;
2306
+ if (pidAliveLocal(meta.pid)) {
2307
+ try {
2308
+ if (process.platform === 'win32') {
2309
+ spawnSync('taskkill', ['/F', '/T', '/PID', String(meta.pid)], { stdio: 'ignore', windowsHide: true, timeout: 3000 });
2310
+ } else {
2311
+ try { process.kill(-meta.pid, 'SIGKILL'); } catch (_) { try { process.kill(meta.pid, 'SIGKILL'); } catch (_) {} }
2312
+ }
2313
+ } catch (_) {}
2314
+ }
2315
+ meta.status = 'reaped-on-boot';
2316
+ meta.ended_ms = now;
2317
+ try { fs.writeFileSync(metaPath, JSON.stringify(meta, null, 2)); } catch (_) {}
2318
+ swept += 1;
2319
+ }
2320
+ } catch (_) {}
2321
+ if (swept > 0) logEvent('plugkit', 'task.bootSweepReaped', { cwd: cwd || process.cwd(), count: swept });
2322
+ return swept;
2323
+ }
2324
+
2264
2325
  function hostTaskProc(action, params) {
2265
2326
  switch (action) {
2266
2327
  case 'spawn': return spawnTask(params);
@@ -3394,6 +3455,8 @@ async function runSpoolWatcher(instance, spoolDir) {
3394
3455
  process.exit(0);
3395
3456
  }
3396
3457
 
3458
+ try { sweepOrphanedTaskMetaOnBoot(process.cwd()); } catch (_) {}
3459
+
3397
3460
  setInterval(() => {
3398
3461
  try { reapTimedOutTasks(); } catch (_) {}
3399
3462
  }, 5000);
@@ -194,14 +194,13 @@ function spawnWatcher(bootReason) {
194
194
  }
195
195
 
196
196
  const isNodeExe = (p) => /(^|[\\/])node(\.exe)?$/i.test(String(p || ''));
197
- const resolveNode = () => {
197
+ const resolveRuntime = () => {
198
198
  const candidates = [];
199
- if (isNodeExe(process.env.PLUGKIT_RUNTIME)) candidates.push(process.env.PLUGKIT_RUNTIME);
200
- if (isNodeExe(process.execPath)) candidates.push(process.execPath);
201
- if (process.env.GM_NODE_PATH) candidates.push(process.env.GM_NODE_PATH);
199
+ if (process.env.PLUGKIT_RUNTIME) candidates.push(process.env.PLUGKIT_RUNTIME);
200
+ candidates.push('bun');
202
201
  try {
203
202
  const which = process.platform === 'win32' ? 'where' : 'which';
204
- const out = spawnSync(which, ['node'], { encoding: 'utf8', windowsHide: true });
203
+ const out = spawnSync(which, ['bun'], { encoding: 'utf8', windowsHide: true });
205
204
  if (out && out.stdout) {
206
205
  const first = out.stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean)[0];
207
206
  if (first) candidates.push(first);
@@ -210,9 +209,23 @@ function spawnWatcher(bootReason) {
210
209
  for (const c of candidates) {
211
210
  try { const r = spawnSync(c, ['--version'], { stdio: 'ignore', windowsHide: true }); if (r && r.status === 0) return c; } catch (_) {}
212
211
  }
212
+ const nodeCandidates = [];
213
+ if (isNodeExe(process.execPath)) nodeCandidates.push(process.execPath);
214
+ if (process.env.GM_NODE_PATH) nodeCandidates.push(process.env.GM_NODE_PATH);
215
+ try {
216
+ const which = process.platform === 'win32' ? 'where' : 'which';
217
+ const out = spawnSync(which, ['node'], { encoding: 'utf8', windowsHide: true });
218
+ if (out && out.stdout) {
219
+ const first = out.stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean)[0];
220
+ if (first) nodeCandidates.push(first);
221
+ }
222
+ } catch (_) {}
223
+ for (const c of nodeCandidates) {
224
+ try { const r = spawnSync(c, ['--version'], { stdio: 'ignore', windowsHide: true }); if (r && r.status === 0) return c; } catch (_) {}
225
+ }
213
226
  return process.execPath;
214
227
  };
215
- let cmd = resolveNode();
228
+ let cmd = resolveRuntime();
216
229
  let args = [wrapper, 'spool'];
217
230
 
218
231
  let logFd = null;
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1848",
3
+ "version": "2.0.1850",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1848",
3
+ "version": "2.0.1850",
4
4
  "description": "Canonical universal harness — AI-native software engineering via skill-driven orchestration; bootstraps plugkit for task execution and session isolation. Install in any AI coding agent host.",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -43,7 +43,7 @@ Use **especially** for:
43
43
  - Research questions (turning ideas into research kernels)
44
44
  - Engineering failures (root cause analysis, repair paths)
45
45
  - Product/positioning work (audience, launch strategy)
46
- - High-strangeness problems (mixing themes into research)
46
+ - Mixed-theme problems (combining unrelated ideas into research)
47
47
 
48
48
  ## How to Use
49
49
 
@@ -53,16 +53,6 @@ Use **especially** for:
53
53
  shoot + [your problem]
54
54
  ```
55
55
 
56
- Examples:
57
-
58
- ```
59
- shoot + Seven Millennium Problems
60
- shoot + should I quit my job
61
- shoot + Death + AI
62
- shoot + P vs NP
63
- shoot + How to fix my broken deployment pipeline
64
- ```
65
-
66
56
  ### The Engine Returns
67
57
 
68
58
  A structured route containing:
@@ -113,51 +103,25 @@ You get:
113
103
 
114
104
  Use the engine for *depth*, WFGY-Method for *direction*.
115
105
 
116
- ## Modes and Use Cases
106
+ ## Modes
117
107
 
118
- ### Seven Millennium Problems
108
+ ### Theorem and Formal Work
119
109
 
120
- Shoot the flagship: all seven famous unsolved mathematics problems simultaneously using the same underlying engine logic.
121
-
122
- ```
123
- shoot + Seven Millennium Problems
124
- ```
110
+ Shoot a theorem or formal problem; the engine returns a proof-route structure that can be checked against a formal verification standard.
125
111
 
126
- See `references/seven-millennium-problems.md` for the flagship claim and what it does and does not assert.
112
+ ### Mixing Themes
127
113
 
128
- ### Baseline-50 + Frontier-50
129
-
130
- - **Baseline-50**: Known-truth math problems (check engine accuracy)
131
- - **Frontier-50**: Unknown century-level problems (explore frontier)
132
-
133
- ### High-Strangeness Math Lab
134
-
135
- Mix two unrelated themes and let the engine find the mathematical skeleton:
114
+ Give the engine two unrelated themes and let it find the mathematical skeleton underneath them:
136
115
 
137
116
  ```
138
117
  shoot + [theme 1] + [theme 2]
139
118
  ```
140
119
 
141
- Examples:
142
- - Death + AI -> digital exit operators, hell-state boundaries
143
- - Dream + Physics -> dream-observer collapse, reality drift
144
- - Love + Source Poisoning -> attachment trust graph, false-closure lemmas
120
+ See `references/research-kernel-extraction.md` for how mixed themes become research kernels.
145
121
 
146
- See `references/research-kernel-extraction.md` for how strange themes become research kernels.
122
+ ### Everyday Problems
147
123
 
148
- ### Everyday Shoot Modes
149
-
150
- The same engine works on everyday problems:
151
-
152
- | Mode | Use For |
153
- |---|---|
154
- | Life Decision Shoot | Quitting, moving, major choices |
155
- | Relationship Shoot | Conversations, behavior, hidden tension |
156
- | Work / Career Shoot | Bottlenecks, career drift, stuck loops |
157
- | Product / Startup Shoot | Positioning, audience, launch route |
158
- | Research / Learning Shoot | Turning ideas into research kernels |
159
- | Engineering / Debugging Shoot | Root cause, system debt, repair paths |
160
- | Meme / Absurd Shoot | Small, weird, funny targets made structured |
124
+ The same engine works on ordinary decisions, work problems, product questions, and engineering failures — any well-specified target benefits from being shot into a route rather than answered directly.
161
125
 
162
126
  ## Verification
163
127
 
@@ -178,7 +142,6 @@ This skill does not:
178
142
 
179
143
  See `references/` directory for:
180
144
  - `route-structure.md` — what a route is and how it is structured
181
- - `seven-millennium-problems.md` — the flagship demonstration
182
145
  - `research-kernel-extraction.md` — turning ideas into research kernels
183
146
  - `route-inspection-guide.md` — how to verify and attack a route
184
147
  - `skills/polaris-protocol/SKILL.md` — the Polaris Protocol tree root and state machine
@@ -1,25 +1,15 @@
1
1
  # Research Kernel Extraction — Fifth-Dimension Engine
2
2
 
3
- The High-Strangeness Math Lab is a Fifth-Dimension Engine mode that turns two unrelated themes into a theorem-shaped research kernel. The same mechanic generalizes to ordinary research questions.
3
+ Mixing two unrelated themes turns them into a theorem-shaped research kernel. The same mechanic generalizes to ordinary research questions.
4
4
 
5
5
  ## The mechanic
6
6
 
7
- Give the engine two strange themes. It finds the mathematical skeleton underneath them.
7
+ Give the engine two unrelated themes. It finds the mathematical skeleton underneath them.
8
8
 
9
9
  ```
10
10
  shoot + [theme 1] + [theme 2]
11
11
  ```
12
12
 
13
- Upstream examples:
14
-
15
- | Input | Possible kernel |
16
- |---|---|
17
- | Death + AI | Digital exit operator, hell-state boundary |
18
- | Dream + Physics | Dream-observer collapse, reality drift functional |
19
- | Meme + Epidemic | Narrative infection number, meme mutation bound |
20
- | Love + Source Poisoning | Attachment trust graph, false-closure lemma |
21
- | JudgmentDay + Tension Universe | Seven-Trumpet grand challenge system |
22
-
23
13
  ## From myth to model
24
14
 
25
15
  The engine's job is to move a target from symbol to structure:
@@ -31,17 +21,11 @@ The engine's job is to move a target from symbol to structure:
31
21
 
32
22
  ## Everyday research use
33
23
 
34
- The same pattern works without strangeness:
35
-
36
- ```
37
- shoot + why do distributed consensus algorithms face a safety-liveness-cost tradeoff?
38
- ```
39
-
40
- The engine returns a route: candidate theoretical bounds, objections, open questions. You then verify the lemmas and expand the open debt into real research.
24
+ The same pattern works without strangeness — shoot an ordinary open research question directly. The engine returns a route: candidate theoretical bounds, objections, open questions. You then verify the lemmas and expand the open debt into real research.
41
25
 
42
26
  ## What this does NOT claim
43
27
 
44
- - It does not claim the strange pairing is itself a theorem. It claims the engine can propose a structure worth attacking.
28
+ - It does not claim a strange pairing is itself a theorem. It claims the engine can propose a structure worth attacking.
45
29
  - It does not replace domain expertise or formal proof. The kernel is a starting point for inspection, not a result.
46
30
 
47
31
  See `../SKILL.md` for the engine interface and `route-inspection-guide.md` for how to verify what comes back.
@@ -63,7 +63,7 @@ CLOSED --next atom------------------------------------> COMPILED
63
63
  ## Canonical syntax (pro-rata — use exactly this)
64
64
 
65
65
  - **Compile first. Execute one active atom. Verify before unlock. Claim only what is supported.** (Goal Compiler)
66
- - **shoot + [your problem]** — the Fifth-Dimension Engine interface. Examples: `shoot + Seven Millennium Problems`, `shoot + Death + AI`, `shoot + should I quit my job`.
66
+ - **shoot + [your problem]** — the Fifth-Dimension Engine interface.
67
67
  - **ΔS = 1 − cos(I, G)** — drift between current state (I) and goal (G). Without a real embedding call, ΔS is a qualitative label ("ΔS looks high here"), never a computed decimal — unless a real `similarity` verb is available (see WFGY-Method).
68
68
 
69
69
  "Compile first. Then shoot." is the spine of the whole protocol.
@@ -1,41 +0,0 @@
1
- # Seven Millennium Problems — the Fifth-Dimension Engine flagship
2
-
3
- This is the flagship demonstration of WFGY 5.0's Fifth-Dimension Engine.
4
-
5
- ## The claim, stated precisely
6
-
7
- > One engine. One underlying logic. One simultaneous attack on all seven Millennium Problems.
8
-
9
- - **Same engine** — the seven problems are not handled by seven unrelated methods.
10
- - **Same logic** — the underlying route structure is generated from one high-dimensional engine.
11
- - **Seven together** — the Seven Millennium Problems are treated as one world-scale proof target.
12
- - **Open engine** — you can run it, inspect it, challenge it, and shoot again.
13
-
14
- The current public evidence layer behind this includes experiment packages with raw outputs, parsed outputs, verdict files, token accounting, audit records, and SHA256 integrity records. Those are the public evidence layer, not the main product surface.
15
-
16
- ## How to run it
17
-
18
- ```
19
- shoot + Seven Millennium Problems
20
- ```
21
-
22
- Or, more generally:
23
-
24
- ```
25
- Use WFGY 5.0 Fifth-Dimension Engine to simultaneously shoot the seven Millennium Problems.
26
- ```
27
-
28
- For mathematics specifically, the upstream also points to Native Lean no-sorry materials — because theorem-complete work plus Native Lean no-sorry is one of the hardest standards in formal mathematics.
29
-
30
- ## What this does NOT claim
31
-
32
- - It does **not** claim the seven are handled separately. The core claim is one engine, one underlying logic.
33
- - It does **not** claim this is only a replay of a fixed result. The point is that the same engine logic can shoot the seven again.
34
- - It does **not** claim every shoot becomes a final theorem. A shoot creates a structured route; final proof depends on verification, review, formalization, or testing.
35
- - It does **not** ask you to believe the author. The engine and prompt are public — run it yourself.
36
-
37
- ## Why it matters as a stress test
38
-
39
- Mathematics is the hardest stress test for a structured-reasoning engine: the output is formally checkable. If the route structure holds up to inspection and formalization, that is real evidence. If it does not, the inspection itself is the value — you caught the weakness before promoting it to a claim.
40
-
41
- See `../SKILL.md` for the engine interface, and `skills/polaris-protocol/SKILL.md` for where this sits in the Polaris Protocol state machine.