master-skill 0.12.14 → 0.12.15

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.
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "master-skill",
11
11
  "description": "FoJin-powered Buddhist AI persona framework — source-grounded, boundary-aware, fidelity-tested, runtime-ready. 15 prebuilt masters across 印度/汉传/藏传/南传 plus compare, debate, and curriculum meta-skills.",
12
- "version": "0.12.14",
12
+ "version": "0.12.15",
13
13
  "source": "./",
14
14
  "author": {
15
15
  "name": "xr843",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "master-skill",
3
3
  "description": "FoJin-powered Buddhist AI persona framework — source-grounded, boundary-aware, fidelity-tested, runtime-ready. 15 prebuilt masters across 印度/汉传/藏传/南传 plus compare, debate, and curriculum meta-skills.",
4
- "version": "0.12.14",
4
+ "version": "0.12.15",
5
5
  "author": {
6
6
  "name": "xr843",
7
7
  "email": "xr843@users.noreply.github.com"
@@ -2,7 +2,7 @@
2
2
  "name": "master-skill",
3
3
  "displayName": "Master Skill",
4
4
  "description": "FoJin-powered Buddhist AI persona framework — source-grounded, boundary-aware, fidelity-tested, runtime-ready. 15 prebuilt masters across 印度/汉传/藏传/南传.",
5
- "version": "0.12.14",
5
+ "version": "0.12.15",
6
6
  "author": {
7
7
  "name": "xr843",
8
8
  "email": "xr843@users.noreply.github.com"
package/README.md CHANGED
@@ -172,6 +172,8 @@ Master-skill 的核心不是"角色扮演提示词集合",而是一个可验
172
172
 
173
173
  **这一列不能推进 v1.0 门禁。** 门禁定义在 Anthropic(`claude-sonnet-4-6`)那一列上,两个模型是两把尺子,不混算。Anthropic 那一列至今只有 2026-08-18 的一次部分运行(84 / 211 条,因账户余额耗尽中断),当时的「零伪造引文」已于 2026-08-31 撤回——那次审计实际一条都没有运行。
174
174
 
175
+ **这些数字属于 `06b8142` 那棵树。** 此后人设内容与夹具本身都改过(见 CHANGELOG 的 0.12.x 各条:经文摘要的表述、路由指向、宗派名清洗等),没有重测——重测要再跑一次付费全量运行。夹具条数仍是 211,但那不代表内容没变。
176
+
175
177
  这些是**关键词与引用字符串的覆盖检查,不是教义正确性,也不是 LLM 判分的答案质量**。详见 [BASELINE-deepseek.md](eval/reports/BASELINE-deepseek.md)(全量运行)、[ADJUDICATION.md](eval/reports/ADJUDICATION.md)(逐条裁定)、[BASELINE.md](eval/reports/BASELINE.md)(Anthropic 部分运行与撤回记录)与[元技能复测报告](eval/reports/0.11.0-e97ded0-deepseek-metaskills.json)。
176
178
 
177
179
  ---
package/README_EN.md CHANGED
@@ -190,6 +190,8 @@ The 211 fixtures (`prebuilt/*/tests/fidelity.jsonl`) run mechanical checks again
190
190
 
191
191
  **This column cannot advance the v1.0 gate.** The gate is defined on the Anthropic (`claude-sonnet-4-6`) column; two models are two instruments and are never pooled. That column still holds only one partial run, from 2026-08-18 (84 / 211, stopped when the account ran out of credit), whose "zero fabricated citations" was retracted on 2026-08-31 — the audit had not actually run on a single case.
192
192
 
193
+ **These numbers belong to the tree at `06b8142`.** Persona content and the fixtures themselves have changed since (see the 0.12.x entries in the CHANGELOG: how sutta summaries are framed, where routing points, lineage sanitization), and nothing has been re-measured — that needs another paid full run. The fixture count is still 211, which does not mean their content is unchanged.
194
+
193
195
  These are **keyword and citation-string coverage checks, not doctrinal correctness and not LLM-judged answer quality**. Details: [BASELINE-deepseek.md](eval/reports/BASELINE-deepseek.md) (the full run), [ADJUDICATION.md](eval/reports/ADJUDICATION.md) (case-by-case rulings), [BASELINE.md](eval/reports/BASELINE.md) (the Anthropic partial run and its retraction), and the [meta-skill re-run report](eval/reports/0.11.0-e97ded0-deepseek-metaskills.json).
194
196
 
195
197
  ---
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "master-skill",
3
3
  "description": "FoJin-powered Buddhist AI persona framework — source-grounded, boundary-aware, fidelity-tested, runtime-ready. 15 prebuilt masters across 印度/汉传/藏传/南传.",
4
- "version": "0.12.14",
4
+ "version": "0.12.15",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
@@ -1,42 +1,42 @@
1
- : ; # Polyglot wrapper — runs as cmd.exe on Windows, bash on Unix.
2
- : ; # Dispatch $1 by name. This line once read `exec bash "$0" "$@"`,
3
- : ; # which re-exec'd this same file forever; hooks.json runs the wrapper
4
- : ; # with "async": false, so every session start spun until the harness
5
- : ; # hook timeout while 2>/dev/null hid the cause. Keep this half POSIX
6
- : ; # the file has no shebang, so /bin/sh interprets it, and that is dash
7
- : ; # on Debian/Ubuntu where ${@:2} is a "Bad substitution" error.
8
- : ; HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"
9
- : ; HOOK="${1:-}"
10
- : ; [ "$#" -gt 0 ] && shift
11
- : ; exec bash "$HOOK_DIR/$HOOK" "$@"
12
- : ; exit 1
13
- @echo off
14
- setlocal enabledelayedexpansion
15
-
16
- set "HOOK=%~1"
17
- set "HOOK_DIR=%~dp0"
18
-
19
- :: Try common Git for Windows bash locations
20
- for %%B in (
21
- "C:\Program Files\Git\bin\bash.exe"
22
- "C:\Program Files (x86)\Git\bin\bash.exe"
23
- "%LOCALAPPDATA%\Programs\Git\bin\bash.exe"
24
- ) do (
25
- if exist %%B (
26
- %%B "%HOOK_DIR%%HOOK%" %2 %3 %4 %5
27
- rem !...!, not %...%: cmd.exe expands %ERRORLEVEL% while parsing the
28
- rem whole parenthesized block, so it would freeze to the value from
29
- rem before the loop and report every hook failure as success. This is
30
- rem what `setlocal enabledelayedexpansion` above is for.
31
- exit /b !ERRORLEVEL!
32
- )
33
- )
34
-
35
- :: Fallback: try bash from PATH
36
- where bash >nul 2>&1 && (
37
- bash "%HOOK_DIR%%HOOK%" %2 %3 %4 %5
38
- exit /b !ERRORLEVEL!
39
- )
40
-
41
- :: No bash found — exit silently
42
- exit /b 0
1
+ : ; # Polyglot wrapper — runs as cmd.exe on Windows, bash on Unix. Dispatches $1
2
+ : ; # by name. This line once read `exec bash "$0" "$@"`, which re-exec'd this
3
+ : ; # same file forever; hooks.json runs the wrapper with "async": false, so every
4
+ : ; # session start spun until the harness hook timeout while 2>/dev/null hid the
5
+ : ; # cause. Keep this half POSIX the file has no shebang, so /bin/sh interprets
6
+ : ; # it, and that is dash on Debian/Ubuntu where ${@:2} is a "Bad substitution".
7
+ : ; # It is ONE line, ending in a comment, because the file ships with CRLF: cmd.exe
8
+ : ; # mis-parses the LF original (measured it echoed a comment as a command and
9
+ : ; # emitted no JSON), and under bash a CR would otherwise end up inside a command
10
+ : ; # word. Everything after the `#` — including that CR — is a comment.
11
+ : ; HOOK_DIR="$(cd "$(dirname "$0")" && pwd)"; HOOK="${1:-}"; [ "$#" -gt 0 ] && shift; exec bash "$HOOK_DIR/$HOOK" "$@" #
12
+ : ; exit 1 #
13
+ @echo off
14
+ setlocal enabledelayedexpansion
15
+
16
+ set "HOOK=%~1"
17
+ set "HOOK_DIR=%~dp0"
18
+
19
+ :: Try common Git for Windows bash locations
20
+ for %%B in (
21
+ "C:\Program Files\Git\bin\bash.exe"
22
+ "C:\Program Files (x86)\Git\bin\bash.exe"
23
+ "%LOCALAPPDATA%\Programs\Git\bin\bash.exe"
24
+ ) do (
25
+ if exist %%B (
26
+ %%B "%HOOK_DIR%%HOOK%" %2 %3 %4 %5
27
+ rem !...!, not %...%: cmd.exe expands %ERRORLEVEL% while parsing the
28
+ rem whole parenthesized block, so it would freeze to the value from
29
+ rem before the loop and report every hook failure as success. This is
30
+ rem what `setlocal enabledelayedexpansion` above is for.
31
+ exit /b !ERRORLEVEL!
32
+ )
33
+ )
34
+
35
+ :: Fallback: try bash from PATH
36
+ where bash >nul 2>&1 && (
37
+ bash "%HOOK_DIR%%HOOK%" %2 %3 %4 %5
38
+ exit /b !ERRORLEVEL!
39
+ )
40
+
41
+ :: No bash found — exit silently
42
+ exit /b 0
@@ -68,13 +68,35 @@ emit_modes_only() {
68
68
  fi
69
69
  }
70
70
 
71
- if ! command -v python3 >/dev/null 2>&1; then
72
- emit_modes_only "python3 not found"
71
+ # Find an interpreter that actually runs. On Windows `python3` is a Microsoft
72
+ # Store alias stub: it exists, so `command -v python3` succeeds, and running it
73
+ # exits without executing anything. Measured 2026-09-18 through the cmd.exe
74
+ # wrapper on Windows 11 — every session fell back to "listing modes only", so
75
+ # the fifteen masters never reached the model there. The real interpreter is
76
+ # python.exe or the py launcher; desktop/src/cli.rs already knew this.
77
+ PY_BIN=""
78
+ PY_ARG=""
79
+ for candidate in ${MASTER_SKILL_PYTHON:-} python3 python py; do
80
+ command -v "$candidate" >/dev/null 2>&1 || continue
81
+ if [ "$candidate" = "py" ]; then
82
+ if py -3 -c "import sys" >/dev/null 2>&1; then
83
+ PY_BIN="py"
84
+ PY_ARG="-3"
85
+ break
86
+ fi
87
+ elif "$candidate" -c "import sys" >/dev/null 2>&1; then
88
+ PY_BIN="$candidate"
89
+ break
90
+ fi
91
+ done
92
+
93
+ if [ -z "$PY_BIN" ]; then
94
+ emit_modes_only "no working python3/python/py"
73
95
  exit 0
74
96
  fi
75
97
 
76
98
  if [ -z "$PLUGIN_ROOT" ] || [ ! -f "$SCRIPT_DIR/session_start.py" ]; then
77
99
  emit_modes_only "could not locate session_start.py"
78
- elif ! python3 "$SCRIPT_DIR/session_start.py" "$PLUGIN_ROOT"; then
100
+ elif ! "$PY_BIN" $PY_ARG "$SCRIPT_DIR/session_start.py" "$PLUGIN_ROOT"; then
79
101
  emit_modes_only "session_start.py failed"
80
102
  fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "master-skill",
3
- "version": "0.12.14",
3
+ "version": "0.12.15",
4
4
  "type": "module",
5
5
  "description": "FoJin-powered Buddhist AI persona framework — source-grounded, boundary-aware, fidelity-tested, runtime-ready. 15 pre-built masters across 印度 / 汉传 / 藏传 / 南传, plus /compare-masters, /master-debate, and /master-curriculum.",
6
6
  "bin": {