Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,17 +36,20 @@
只进决策箱,⛔ 永不自裁 —— 真正设计分叉照旧升级维护者;轮报设**复审清单**专节(同代
裁清单强制审计形状)。**三样不变**:受管面照旧 draft-only + 终局两条(人工直合或授权批准
钉 head 入队,单源见主文件)、⛔ 席位永不代批;FAIL / REWORK 原样;降档保险丝原样。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

## 降档保险丝(机读)

- 席内复核/审计每场前**必调一次 `get_session`**(claude-code-remote MCP,无参)读
`external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配
置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走转录
核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- 席内复核/审计每场前**必读一次服役档**(读法与陷阱单源见 platform-readings),⛔ 自述档位不
是读数(静默降档腐蚀的恰是自述);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 本席 ⛔ 不自判清标,改走
转录核验的 fable 复核子代理 —— 标签在复核完成前原样留置,卡在队列外等待是安全态。
- **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:
钉在地板档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;
条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review` 至席内复核完成。
Expand Down
20 changes: 19 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -248,7 +248,25 @@ export const CEILINGS = new Map([
// or folded; the residual +6 could not be paid without deleting ruled clauses
// (refused on the state-machine precedent). Landed count, headroom 0, same
// convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 57],
// Raised 57 → 60 by the clear-equals-land CRITERIA encoding — the 清标即落地
// section gains the arm-precondition list it never carried: an in-seat at-tier
// PASS on record, `needs:contract-review` cleared on BOTH carriers, and ALL of
// the PR's checks green (never the required subset), with the per-pair
// mechanical reading (`check-clause2-carriers --pair`) and its exit register,
// and the governed-surface boundary restated as unchanged. The rule is the
// 2026-08-31 director batch #17 ruling, verbatim and untranslated: 「同意」,
// which ordered the text into THIS file and THIS section; the raise itself is
// authorized by the maintainer on 2026-09-01, director decision batch A,
// verbatim and untranslated: 「同意。」 — that ruling also chose the FULL
// encoding over the 58-line bare minimum, so the two extra lines are ruled
// content, not slack. Paid in place first: the downgrade-fuse bullet's
// restatement of the served-tier READING collapsed to the platform-readings
// pointer it already carried (4 lines → 3, 437 B → 353 B), the one real
// deletion the surface had; the residual +4 could not be paid without deleting
// a ruled clause, and the nearest candidates were the governed-surface
// boundary and the terminal clause (refused on the state-machine precedent).
// Landed count, headroom 0, same convention.
['.claude/skills/pm-dispatch/references/contract-review.md', 60],
// Business-perspective decision-analysis writing guide (maintainer ruling
// 2026-08-20: the four-facet analysis must argue from the business
// standpoint). Set at landed line count (headroom 0, same convention).
Expand Down
Loading