@ccoalm/ccl-skills 0.15.2 → 0.15.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.
@@ -655,3 +655,4 @@ The pending classification above is superseded by the executed source comparison
655
655
  | Continuation recovers the current request and original authorized proposal, scopes blockers to dependent work, and uses a method checkpoint instead of renewing permission for necessary review | `product-rd-workflow` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/product-rd-workflow/SKILL.md#do not stop at a recommendation | updated | Owner key `product-rd-workflow/SKILL.md`. `test_ai_coding_implementation_gates.sh` binds the entry rules to `product-rd-workflow/references/pre-final-continuation-gate.md`; applied trigger and boundary removals fail their owning assertions and restored controls pass. The current suite passes. Classification fixtures cover inherited review authority, explicit review limits and out-of-scope review; their labels are not proof of tool execution or universal runtime improvement. |
656
656
  | A complete checkpoint may bind source-refuted findings without rewriting external receipts or refreshing review authority | `code-review` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/code-review/scripts/review_gate.py; bank-evidence: file:specs/continuation-control/routing-evidence.md#The code-review routing comparison must preserve | updated | Owner key `code-review/SKILL.md`. `code-review/scripts/test_review_client_compat.py` exercises `CompletionFindingDispositionTest`: the former passed-only predicate rejected complete same-candidate refutation evidence; the current 17 focused tests pass. Original ordered receipt hashes, canonical occurrence coverage, disposition evidence and candidate bindings remain checked; omitted or altered evidence, duplicate dispositions and unresolved findings are rejected. Validation establishes binding and coverage, not the truth of source reasoning. |
657
657
  | Extraction reviewer limits bound each receipt sequence; source disposition, method changes and complete cumulative history govern necessary continuation under existing task authority | `skill-extraction-workflow` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: command:skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh | updated | Owner key `skill-extraction-workflow/SKILL.md`. The warning-family source check failed against the former mandatory-human-warning clause. Seven applied warning and delegation mutations failed their owning assertions with unchanged and restored controls passing; the current implementation-gate suite passes. `skill-extraction-workflow/references/dual-track-review-gate.md` preserves per-sequence bounds, source findings, cumulative spending and genuine decision boundaries. The new owner rows also repair a reproduced impact-chain failure for missing owner evidence; they do not turn source checks into runtime or external-review passes. |
658
+ | Writing decisions use reader benefit, ordering meaning, topic expectation and copy context while preserving valid state-focused prose | `tighten-doc` | result-class: failure; behavioral-evidence: RED-baseline; observed-failure: yes; firing-path: file:skills/tighten-doc/SKILL.md#首句须准确预告本段内容,叙事或推导可按阅读目的组织 | updated | Owner key `tighten-doc/SKILL.md`. consolidation: merged into FORM, sentence-level rules and WORKFLOW 3. In a constructed fresh-context application pair, the unchanged rules retained a misleading preservation-method opener over collection locations and left a required placeholder reminder outside copied code. The candidate corrected the topic and carried the reminder inside valid Python; acronym, ordering, parameter and unknown-actor cases remained passing controls. The comparison used the same input with tools disabled; code outputs were checked. These observations establish bounded application behavior, not general delivery gains. Existing names, KEEP, comment protection, material conditions, execution-card order and code-correctness ownership remain. The reader handbook mirrors the conditional summaries; the required reference provides examples and JSON syntax boundaries. |
@@ -59,11 +59,11 @@ owner · 硬规则 · 完成标准/DoD · 里程碑 · 数值阈值 · the real
59
59
  - **外部基线 / 标准值入文档 = 独立标注 + 命名来源 + 内部门(若有)仍权威。** 引用外部 benchmark、行业阈值、标准默认值(评测目标、性能预算、参考 SLO 等)时,放成独立的列 / 行 / 标注并配命名来源超链,别和本系统自己的验收门 / 阈值混写成同一个数。**当本系统有自己的验收门时**显式声明本系统门为准、外部值只作对标参考(反模式:把外部基线直接当验收标准,读者误以为外部数就是上线门);**若文档本身即标准 / 评测报告 / 无内部门**,则标清来源 / 范围 / 权威,别杜撰一个内部门。**评自己的稿是这条的另一半**:**评自己产出的文档的可实测呈现属性(加粗密度、句长、结构层级)时,或为可发现性词汇(包 / 仓库的 `description`、`keywords`、tags / topics、搜索面标题词、产品定位名词)选词时**,先按事先冻结的抽样框取同体裁公开样本建实测基准,再下判断 / 选词——**这两类只是已知实例:其他属性只要问的是「相对同类如何」且有同体裁公开样本,同样适用,不得因没被点名就放过;但内部验收门、硬限额与对错 / 安全的直接核验照门判、不记「未对标」;**门里若含「同类怎么做」的前提,它仍欠本条****;没测就在用它**之前**记「未对标 + 原因」,**成本 / 限流不是豁免,只是把结论降级**;**待发布 / 未公开的名字与定位词不拿去外部检索**(查询即送出,按 `product-rd-workflow` artifact-egress 门处理)。**分布定位只是描述、不是裁决**,自己的审美不是分布。**触发本条即先读 `references/self-benchmark-baseline.md` 并照它执行**——抽样框冻结与纳排、不得挑样、中英分开、阈值核源、词频读法、frontmatter 归属都在那。
60
60
  - No inline `|` / pipe-delimited lists (RACI / 分工) — break into bullets or a table.
61
61
  - Short sentences, one point per line, enumerations as tables.
62
- - **表达形式匹配内容**:分支关系 / 状态迁移复杂到文字难扫时优先**图**(mermaid 等);字段对比、分桶属性、owner/gate/证据矩阵优先**表**;线性步骤用编号列表;一两点判断一句话或 bullet。别为单个判断加**装饰性**多桶图,但桶间有不同 owner / 阈值 / 例外 / 后果时**必须结构化**(该结构别压成一句)。**目标环境不稳定渲染图时**,文字版流程为准、图只作辅助。**callout / 图内文字 = 概览形态,只承一个要点**:callout 塞成多点密块("一坨")就拆开或降到正文 / 表。**图种由主张形态定**(有事件触发→状态机 / 消息序→时序 / 随完成流转→流程);**画了必须有标题与图例、连线单向且标签具体**;**量级对比别全压进表**。余下见 `references/figure-and-table-craft.md`。
63
- - **代码进代码块,不进段落**:**多行 / 独立执行步骤 / 长 flag 串命令 / 多命令序列**放代码块(带 lang),不写成段落里的纯文本或一长串内联 `code`。**短的随文 one-liner / 表达式、对照表单元格、「用 `func()`」式符号引用可留 inline**,只要不长到影响扫读(与上面的表格单元格 / 内联引用规则一致,别硬塞进代码块)。多语言对照两端形态对齐——一端给了代码块,另一端别写成「Go:`call(...)`」式内联段落。
62
+ - **表达形式匹配内容**:分支关系 / 状态迁移复杂到文字难扫时优先**图**(mermaid 等);字段对比、分桶属性、owner/gate/证据矩阵优先**表**;顺序有意义的列表用编号,否则用 bullet,逐项核对语法平行与逻辑同类;一两点判断可写一句话。别为单个判断加**装饰性**多桶图,但桶间有不同 owner / 阈值 / 例外 / 后果时**必须结构化**(该结构别压成一句)。**目标环境不稳定渲染图时**,文字版流程为准、图只作辅助。**callout / 图内文字 = 概览形态,只承一个要点**:callout 塞成多点密块("一坨")就拆开或降到正文 / 表。**图种由主张形态定**(有事件触发→状态机 / 消息序→时序 / 随完成流转→流程);**画了必须有标题与图例、连线单向且标签具体**;**量级对比别全压进表**。余下见 `references/figure-and-table-craft.md`。
63
+ - **代码进代码块,不进段落**:**多行 / 独立执行步骤 / 长 flag 串命令 / 多命令序列**放带 lang 的代码块。**随文的短 one-liner / 表达式、表格单元格、`func()` 式符号引用可留 inline**,以不妨碍扫读为限。多语言对照两端形态对齐;随复制必需的说明:支持注释则放块内,否则随附;长篇原理放正文。
64
64
  - **Enumeration sections (依赖/兜底/分工/里程碑 子项) = multi-line sub-bullets, NOT a `;`-collapsed single line.** Readability beats compactness here; a `- 依赖:A;B;C;D` run is hard to scan — split to `- 依赖:` + one `- A` sub-bullet per item. Do not collapse to one `;` line just for parity with another card; parity is not a reason to reduce scanability. Single-line `;` is only for a true 2-item short pointer where sub-bullets would be heavier than the content.
65
65
  - Table cells that list multiple skills, owners, checks, environments, or evidence items should be split into multiple lines or shorter rows. A readable table beats a compressed cell when the cell is used as an execution checklist.
66
- - Terms unified and glossed once in a 白话 section (e.g. 红灯 = 卡住/NO-GO 到点必升级; 排障手册 = 排障 SOP). Also catch **intra-doc term drift**: the same concept written two different ways in one doc → align to that doc's prevailing term. Drift includes **unit drift in a sequenced ladder** (a milestone list mixing 第N周 and N天 — align the lone odd unit to the ladder's prevailing one).
66
+ - Terms unified and glossed once in a 白话 section (e.g. 红灯 = 卡住/NO-GO 到点必升级; 排障手册 = 排障 SOP). Also catch **intra-doc term drift**: the same concept written two different ways in one doc → align to that doc's prevailing term. Drift includes **unit drift in a sequenced ladder** (a milestone list mixing 第N周 and N天 — align the lone odd unit to the ladder's prevailing one). 陌生或自造缩写仅在明显缩短且反复使用时引入;正式名称按下条保留。
67
67
  - A column/section header must match what its cells actually hold (a "文档化进度" header over cells that hold 现状 is a defect — rename the header to the truth). An editorial paren in a header/heading that restates an intro rule is the same 编辑性括号 as DELETE #9 — cut it.
68
68
  - **Reader-facing published docs: the problem is unexplained or non-navigable internal references, not the names themselves**. Fix three recurring reader-blockers: ① internal repo paths used as navigation (`see README.md`) a non-author can't follow → name the human destination or link the published doc; ② opaque internal gate/code labels (`R0` / `F4`-style) → plain-name or drop the code; ③ unglossed in-house English / abbreviations (`mTLS` / `PTY` / `SLO`) → 中文化 or gloss at first use. **Keep** anything the reader actually operates on or that is a public convention / protocol / API / field / contract / standard name (`AGENTS.md`, `CODEOWNERS`, `package.json`, well-known abbrevs) — gloss if unfamiliar, don't delete.
69
69
  - **A cell must fit its column's semantic role.** A 负责人/owner column entry must be a who (person/role), a 事项/规则 column a what (a parseable clause). Over-terse text — including a value the user dictated in an earlier pass — that no longer parses as that column's type ("业务真值+ 误差" in a 负责人 column; "…必需的指标建立" as a 规则 clause) is a 病句 (DELETE #7). On re-review, read each dictated/compressed value back **in its column context**, not in isolation; flag it with the rule even if the user set it (don't silently override, but don't pass it as clean either).
@@ -103,14 +103,14 @@ For a 域卡/执行卡 (a card that sets WHAT a domain must achieve + who owns i
103
103
 
104
104
  > 英文文档:用完整 Strunk 规则(含被本节剔除的语法/标点条),本节只是中文交付子集。
105
105
 
106
- - 主动语态、点名施动者:写"谁做什么",不写"被…/由…完成"(呼应 DELETE #4 无动作语气词)。
106
+ - 主动语态优先;责任或动作取决于谁执行时点名施动者。对象或状态是重点、施动者无关时可用被动表达;不为改语态编造主体。
107
107
  - 肯定式陈述:直接说"必须 X",不绕"不是不 X / 并非没有"。
108
108
  - 具体优于空泛:用 数字/对象/阈值,删"全面提升/大力推进/高度重视/至关重要"这类空话(呼应 KEEP 的数值阈值)。
109
109
  - 删冗词的定式:把"是否…的问题/在…的情况下/做出…的决定/关于…方面"压成 "是否…/…时/决定…/…"。
110
110
  - 歧义代词消歧:它 / 它们 / 其 必须先有名词、后有代词,指代名词离得远或中间插入另一名词就直接重复名词;指示词 这 / 那 / 该 / 此 要么换成名词,要么后接名词(「这会拖慢构建」→「这次全量扫描会拖慢构建」)。
111
111
  - 相关词靠拢、少套从句:修饰语紧挨被修饰对象,长定语拆短句,避免一句里多层"的…的…"。
112
112
  - 强调位放句首或句尾:最该被记住的词别埋在句子中间。
113
- - 结论前置(BLUF / 倒金字塔,业内通行做法):bullet、段落开头先放**结论 / 动作 / 信息词**,例子和非结论性背景后置——读者扫读,埋在后面的结论会被跳过。**但会改变结论的条件不算"例子"**:凡是改变结论、适用范围、红线 / NO-GO / 阈值 / 例外 / 责任边界的条件,必须与结论同句同屏,不得降级到后面或塞进括号弱化(如「满足 A、B、C 时,做 X」,不要用括号把条件视觉降级)。作用范围:bullet/段落级,区别于上一条词级"强调位";只重排各 bullet/段落内部,不得为前置结论删除或降级 KEEP 项,执行卡仍按固定骨架排序。
113
+ - 结论前置(BLUF / 倒金字塔):供扫读的 bullet、段落默认以**结论 / 动作 / 主题信息**开头,例子和非结论性背景后置;首句须准确预告本段内容,叙事或推导可按阅读目的组织。**改变结论、适用范围、红线 / NO-GO / 阈值 / 例外 / 责任边界的条件必须与结论同句同屏**,不得后置或塞括号弱化。只重排 bullet/段落内部,不得删除或降级 KEEP 项,执行卡仍按固定骨架排序。
114
114
  - 防分词歧义:中文动宾或多义连写串可能被切成另一个意思——「门禁止血」会读成「门 / 禁止 / 血」。加分隔、连接词或重排消歧(「门禁来止血」)。只改**真实会误读、误切后动作/对象/责任会变**的词组;通行术语、项目内已定义术语、读者熟悉的短词不为消歧而重写,避免 churn。
115
115
 
116
116
  ## 中文自然表达(吸收 humanizer-cn 的交付文档子集)
@@ -143,7 +143,7 @@ Never destroy collaborative comments. Before editing a collaborative doc, fetch
143
143
  0. 读者批注:判根因类、全文修同类(`references/annotation-driven-revision.md`)。
144
144
  1. Extract the decided-points checklist from the current text.
145
145
  2. Apply the DELETE list; keep everything in KEEP.
146
- 3. Rewrite to FORM; confirm every decided point still present.
146
+ 3. Rewrite to FORM; confirm every decided point still present. 遇缩写、列表、首句、示例说明或语态,读 `references/writing-judgments.md` 判条件。
147
147
  4. Dirty-scan = 0 (no internal codes / agent names / meta / Day-Week tokens, no bare-URL refs, no AI腔/广告腔/假深度, no `|`). A keyword grep is a **fixed-token prefilter, not sufficient** — the 元语自证 / 修辞尾 / 废话-prefix / 跨节重复 classes aren't fixed tokens, so dirty-scan-0 needs the grep **plus** a human read against the DELETE/FORM rubric. "脏扫 0" claimed from grep alone is the false-clean failure.
148
148
  5. Push back, respecting the COMMENT-SAFE rule.
149
149
 
@@ -0,0 +1,63 @@
1
+ # 写作判断方法
2
+
3
+ 用于落实入口的 FORM 与句子层规则。先判断读者、阅读目的和原文事实,再改表达;下面的方法不改变 KEEP、批注保护或实质 owner 的职责。
4
+
5
+ ## 缩写是否值得引入
6
+
7
+ 1. 先识别读者实际要操作的名称、公共协议、API、字段和标准名称,沿用入口的名称保留规则;不熟悉时首次解释。
8
+ 2. 对其余陌生或自造缩写,同时检查是否明显缩短、是否在本文反复使用。两者成立才值得引入,并在首次出现时解释;只用一次通常直接写全称或白话。
9
+ 3. 改完检查全篇同一概念是否仍用同一名称;缩写次数和节省字数只辅助判断,不设通用硬阈值。
10
+
11
+ 例如,一页展览介绍只提一次“标本登记记录”,直接写全称即可,不必先造一个英文简称。打印操作要求选择 `PDF` 格式时,保留用户要选择的格式名。
12
+
13
+ ## 列表是否表达了正确关系
14
+
15
+ 1. 试着交换相邻两项。若会改变执行结果、先后关系、排名或编号引用的含义,保留有序表达;否则通常改为 bullet。编号确有稳定查找用途时可保留,并说明用途。
16
+ 2. 逐项核对语法形式,也核对逻辑类别:同一层应共同回答一个问题。步骤中的条件、原因或结果放回所属步骤,必要时另组;不为排得整齐删掉条件。
17
+ 3. 按信息量选呈现形式。两条短信息可以写成一句话;复杂对比仍用表,不因项目数少就压成密句。
18
+
19
+ 例如,“选择展签模板 → 填写已核实的名称 → 预览展签”有执行顺序;“展签提供中文、英文、盲文”是并列选项。“填写名称、纸张尺寸、预览展签”混合了动作与属性,应把纸张尺寸移到参数说明,或在事实支持时改成选择尺寸的步骤。
20
+
21
+ ## 首句是否准确引导阅读
22
+
23
+ 1. 先只读首句,说出读者会预期本段回答什么;再读全段,核对主体内容是否兑现这个预期。
24
+ 2. 供扫读的说明、报告和操作文档,优先把真正的主题、结论或动作前置。若一句话无法覆盖本段多个独立主题,拆段;若本段没有支持结论的证据,就写主题,不补造结论。
25
+ 3. 叙事、推导或特意设置的问题可按阅读目的保留顺序。无论怎样组织,影响结论的条件仍按入口规则与结论一起呈现;不设固定句数或段长。
26
+
27
+ 例如,“本柜介绍标本的保存方法”后面若只列采集地点,首句会误导。可以据实改为“本柜标本来自以下采集地点”;若保存方法和采集地点都需要讲,则分段说明。
28
+
29
+ ## 说明放正文还是代码注释
30
+
31
+ 1. 假设读者只复制代码块:仍需知道的占位值、使用条件或局部设计原因,在语法支持时放在对应代码旁的注释里。严格 JSON 等不支持注释的格式用随附说明,并明确只复制数据块会遗漏哪些条件;保持有效载荷合法。
32
+ 2. 长篇原理和背景放正文。需要理解某项条件才能使用代码时,按上一条在注释或随附说明中保留简短提醒,再指向正文;不要复制整段原理当注释。
33
+ 3. 样例本身先满足正确、安全和可运行的要求;注释不能补救错误实现。实质代码、依赖或验证方法的问题交对应开发或测试 owner,润色不自行改变行为。
34
+
35
+ 下面的占位值说明应随展签示例一起复制:
36
+
37
+ ```python
38
+ # “示例标本”是占位名称;打印前替换为已核实的展签名称。
39
+ specimen_name = "示例标本"
40
+ print(f"标本:{specimen_name}")
41
+ ```
42
+
43
+ ## 是否需要点名施动者
44
+
45
+ 1. 读者要据此分工、执行或追责时,写清谁做什么;确需责任人却缺信息时才标明待确认,不推测补人名或角色。
46
+ 2. 只描述对象或状态、施动者不影响理解时,保留自然表达,不额外布置追查任务。例如“标本已被移至恒温柜”无需为了主动语态改成某位工作人员完成的动作。
47
+ 3. 判断遗漏主体是否妨碍下一步,而非搜索“被、由”后全部替换。
48
+
49
+ ## 应用检查
50
+
51
+ 检查修改后的成文,也检查不该改变的对照。这里只定义可证伪判据,不代表已经做过任务验证。
52
+
53
+ | 场景 | 应观察到的结果 |
54
+ | --- | --- |
55
+ | 短展览介绍中只出现一次的陌生简称 | 直接写全称或白话,不因“首次已解释”就保留无益缩写 |
56
+ | 操作菜单里的正式格式名 | 保留实际名称,必要时解释,不为中文化破坏查找 |
57
+ | 展签制作步骤与可选语言 | 前者保留顺序,后者表达并列关系 |
58
+ | 同层混入动作和纸张属性 | 归回对应步骤或参数说明,内容和条件不丢失 |
59
+ | 首句承诺介绍保存方法,正文只讲采集地点 | 据实改首句或拆段,不补造保存事实 |
60
+ | 有阅读目的的叙事或推导 | 保留合适顺序,不机械套首句结论 |
61
+ | 只复制展签示例代码 | 占位值提醒随行,代码仍可运行 |
62
+ | 严格 JSON 等无注释格式 | 保持有效语法,必要条件放随附说明,不往载荷里塞注释 |
63
+ | 已知状态与待执行分工 | 状态句不硬造主体,分工句不隐去必要责任人 |
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": 1,
3
3
  "npmPackage": "@ccoalm/ccl-skills",
4
- "version": "0.15.2",
5
- "sourceCommit": "ea649086e8f1c51e81364b2a94b08fadc1128365",
4
+ "version": "0.15.3",
5
+ "sourceCommit": "8940c5f48eb94073c0ea5d6e5b1df75576c214f4",
6
6
  "sourceState": "clean",
7
7
  "files": [
8
8
  {
@@ -2132,7 +2132,7 @@
2132
2132
  },
2133
2133
  {
2134
2134
  "path": "marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md",
2135
- "sha256": "a622745a40ca220f5f77dc3c84a94f433c609adf27aed775af82df26a52503a4",
2135
+ "sha256": "019973bf6f665c75205ad19180ec653073ea1a17c0fcd9c31577d5168c0bb42e",
2136
2136
  "mode": 420
2137
2137
  },
2138
2138
  {
@@ -2920,6 +2920,11 @@
2920
2920
  "sha256": "851a5c469a2832131c485f958b7e3ad7f8f2fba445133ae9359d63996b24cbd5",
2921
2921
  "mode": 420
2922
2922
  },
2923
+ {
2924
+ "path": "marketplace/plugins/ccl-skills/skills/tighten-doc/references/writing-judgments.md",
2925
+ "sha256": "261ee326d2e830f7e02e12d6e1fe12f601f36d9b9d586829fe56f2c9908603a8",
2926
+ "mode": 420
2927
+ },
2923
2928
  {
2924
2929
  "path": "marketplace/plugins/ccl-skills/skills/tighten-doc/scripts/AGENTS.md",
2925
2930
  "sha256": "f8e211e223305ad9535531fd3abede8884d859a0fda01e103e6ef1700909c478",
@@ -3182,7 +3187,7 @@
3182
3187
  },
3183
3188
  {
3184
3189
  "path": "marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md",
3185
- "sha256": "75b0c8fb65803056d9b7535b300a37a3a26fb0125b20adbbcd7cb14ba7461991",
3190
+ "sha256": "8e0515c398c573c270650bdef1aeaed01ebfa1939b30aca397c29305c59773f8",
3186
3191
  "mode": 420
3187
3192
  },
3188
3193
  {
@@ -3428,5 +3433,5 @@
3428
3433
  "mode": 420
3429
3434
  }
3430
3435
  ],
3431
- "snapshotHash": "e42471992f654d5e75b902ac23ed963dc2a4252fbdeda2d0c4e87c33f57c00f2"
3436
+ "snapshotHash": "67f504b1e9ac879276dc0a32bb06517b1c7581dbbfa73c79d0d85cab25e690c8"
3432
3437
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ccoalm/ccl-skills",
3
- "version": "0.15.2",
3
+ "version": "0.15.3",
4
4
  "description": "Reusable workflows that help coding agents plan, build, test, review, and release software — for Claude Code, Codex, and OpenCode",
5
5
  "keywords": ["skills", "agent-skills", "claude", "claude-code", "codex", "opencode", "agent", "ai", "ai-agents", "cli", "anthropic", "developer-tools"],
6
6
  "type": "module",