kotonoha 0.2.0 → 0.4.0

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README-ja.md +87 -21
  3. package/README.md +111 -20
  4. package/package.json +5 -2
  5. package/skills/consulting-analyst/SKILL.md +241 -0
  6. package/skills/consulting-analyst/assets/templates/analysis-brief.md +58 -0
  7. package/skills/consulting-analyst/assets/templates/decision-analysis.md +62 -0
  8. package/skills/consulting-analyst/assets/templates/hypothesis-evidence-ledger.md +48 -0
  9. package/skills/consulting-analyst/assets/templates/issue-tree.md +35 -0
  10. package/skills/consulting-analyst/assets/templates/synthesis-handoff.md +68 -0
  11. package/skills/consulting-analyst/references/evidence-and-hypotheses.md +80 -0
  12. package/skills/consulting-analyst/references/framework-selection.md +84 -0
  13. package/skills/consulting-analyst/references/handoff-contract.md +90 -0
  14. package/skills/japanese-prose/NOTICE.md +7 -1
  15. package/skills/japanese-prose/SKILL.md +48 -16
  16. package/skills/japanese-prose/references/review-workflow.md +57 -0
  17. package/skills/japanese-prose/references/scoring.md +6 -0
  18. package/skills/japanese-prose/scripts/core.py +6 -2
  19. package/skills/japanese-prose/scripts/invariants.py +182 -0
  20. package/skills/japanese-prose/scripts/lint.py +68 -3
  21. package/skills/japanese-prose/scripts/test_engine.py +168 -0
  22. package/skills/presentation-planner/SKILL.md +14 -0
  23. package/skills/tech-writer/SKILL.md +58 -24
  24. package/skills/tech-writer/assets/templates/blueprint.md +187 -0
  25. package/skills/tech-writer/assets/templates/white-paper.md +192 -0
  26. package/skills/tech-writer/references/doctypes/blueprint.md +81 -0
  27. package/skills/tech-writer/references/doctypes/white-paper.md +84 -0
  28. package/skills/tech-writer/references/japanese-prose-optimization.md +17 -8
  29. package/skills/tech-writer/references/style-constitution.md +10 -4
  30. package/skills/tech-writer/scripts/lint.py +10 -5
@@ -0,0 +1,192 @@
1
+ # <White Paperタイトル>
2
+
3
+ <対象読者が抱える問題、本書の中心的な結論、読後に判断できることを3文以内で記載する。>
4
+
5
+ - 発行者: <組織名>
6
+ - 著者・監修者: <氏名・役割>
7
+ - 発行日: <YYYY-MM-DD>
8
+ - 最終更新日: <YYYY-MM-DD>
9
+ - 版: <版番号>
10
+ - ステータス: Draft / In Review / Approved for Publication / Withdrawn
11
+ - 公開承認者: <氏名・役割・会議体>
12
+ - 法務・コンプライアンス・主張レビュー: <レビュー者・該当なし>
13
+ - 対象読者: <読者>
14
+ - 対象地域・業界: <範囲>
15
+ - 調査対象期間: <YYYY-MM-DD〜YYYY-MM-DD>
16
+ - 公開区分: Public / Limited / Confidential
17
+ - Analysis status: Completed / Incomplete / Not performed
18
+ - Evidence gaps: <不足する証拠、影響する判断、収集担当・期限、またはなし>
19
+ - 分析ハンドオフ: <synthesis-handoff.mdの所在、またはなし>
20
+
21
+ `Analysis status`は公開承認ステータスとは別に記録する。`Incomplete`の場合は、不足する証拠と確からしさを明示し、影響する結論・推奨事項を条件付きで記載する。判断を妨げる不足は`consulting-analyst`へ戻すか、この文書に残す。`Not performed`の場合は、分析未実施の範囲と理由を記載し、分析済みとして扱わない。
22
+
23
+ ## 要旨
24
+
25
+ <問題、調査・分析の範囲、主要な発見、結論、読者への示唆を300〜500字で記載する。本文を読まなくても中心的な判断が分かるようにする。>
26
+
27
+ ## 本書が答える問い
28
+
29
+ - 中心的な問い: <読者が判断したい問い>
30
+ - 中心的な主張: <証拠で支持または反証できる具体的な主張>
31
+ - 読者に求める次の行動: <検討、評価、実証、導入判断など>
32
+
33
+ ## 対象範囲と用語
34
+
35
+ ### 対象範囲
36
+
37
+ - 含む: <地域、業界、組織規模、技術、期間>
38
+ - 含まない: <対象外と、その理由>
39
+ - 情報の基準日: <YYYY-MM-DD>
40
+
41
+ ### 主要用語
42
+
43
+ | 用語 | 本書での定義 | 類似語との違い |
44
+ |---|---|---|
45
+ | <用語> | <定義> | <違い> |
46
+
47
+ ## 調査・分析方法
48
+
49
+ <どの情報を、どの基準で収集・評価・統合したかを記載する。>
50
+
51
+ | 方法 | 対象・件数 | 選定基準 | 分析方法 | 主な制約 |
52
+ |---|---:|---|---|---|
53
+ | 文献調査 / インタビュー / データ分析 / 実証 | <対象> | <基準> | <方法> | <制約> |
54
+
55
+ ### 証拠の評価基準
56
+
57
+ - 一次情報を優先する条件: <条件>
58
+ - 情報の新しさを判断する基準: <基準>
59
+ - 利害関係のある情報の扱い: <検証・注記方法>
60
+ - 不一致または反証となる情報の扱い: <方法>
61
+
62
+ ## <問題が重要になる背景>
63
+
64
+ <市場、制度、利用者、技術、運用などの変化を、出典付きの事実と分析者の解釈に分けて説明する。>
65
+
66
+ ## 調査から得られた主要な発見
67
+
68
+ ### <発見1を結論として表す見出し>
69
+
70
+ <発見を最初に記載し、その後に証拠、解釈、適用範囲を説明する。>
71
+
72
+ | 項目 | 内容 |
73
+ |---|---|
74
+ | 主張ID | CLM-001 |
75
+ | 主張 | <具体的な主張> |
76
+ | 関連仮説 HYP IDs | <関連HYP IDs、または理由付きN/A> |
77
+ | 分析上の発見 FND IDs | <関連FND IDs、または理由付きN/A> |
78
+ | 根拠 | EVD-001、EVD-002 |
79
+ | 確からしさ | High / Medium / Low |
80
+ | 適用範囲 | <どこまで当てはまるか> |
81
+ | 制約・反証 | <弱める条件、矛盾する証拠> |
82
+
83
+ ### <発見2を結論として表す見出し>
84
+
85
+ <必要な数だけ同じ構造で記載する。>
86
+
87
+ ## 選択肢と評価
88
+
89
+ | 選択肢 | 適する状況 | 期待効果 | 費用・負担 | リスク | 根拠 |
90
+ |---|---|---|---|---|---|
91
+ | 現状維持 | <状況> | <効果> | <負担> | <リスク> | <証拠ID> |
92
+ | <選択肢> | <状況> | <効果> | <負担> | <リスク> | <証拠ID> |
93
+
94
+ ## 推奨する考え方またはソリューションパターン
95
+
96
+ <推奨事項を、適用条件とともに記載する。製品やサービスを例示する場合は、一般的な結論と製品固有の主張を分ける。>
97
+
98
+ ```mermaid
99
+ flowchart LR
100
+ A[<課題・入力>] --> B[<推奨する能力・方式>]
101
+ B --> C[<期待する成果>]
102
+ ```
103
+
104
+ ### 適用条件
105
+
106
+ - 適する条件: <条件>
107
+ - 適さない条件: <条件>
108
+ - 事前に検証する事項: <PoC・評価・法務確認など>
109
+
110
+ ## 導入・適用時に検討する事項
111
+
112
+ | 観点 | 確認事項 | 判断材料 | 主なリスク |
113
+ |---|---|---|---|
114
+ | 組織・人材 | <確認事項> | <証拠・測定> | <リスク> |
115
+ | 業務・ガバナンス | <確認事項> | <証拠・測定> | <リスク> |
116
+ | データ・技術 | <確認事項> | <証拠・測定> | <リスク> |
117
+ | セキュリティ・法令 | <確認事項> | <証拠・測定> | <リスク> |
118
+ | 費用・運用 | <確認事項> | <証拠・測定> | <リスク> |
119
+
120
+ ## 事例または検証結果
121
+
122
+ <事例、実証、シミュレーションのどれかを明示する。代表性を保証しない場合は、その制約を記載する。>
123
+
124
+ | 項目 | 内容 |
125
+ |---|---|
126
+ | 対象 | <組織・環境・条件> |
127
+ | 実施内容 | <方法> |
128
+ | 結果 | <測定値> |
129
+ | 比較基準 | <導入前・対照・目標> |
130
+ | 制約 | <一般化できない理由> |
131
+ | 出典 | <証拠ID・URL> |
132
+ | 顧客名・数値・事例の掲載許諾 | <許諾者・許諾日・条件、または匿名化の方法> |
133
+
134
+ ## 反対意見・代替解釈・限界
135
+
136
+ - 反対意見: <有力な異論と、その根拠>
137
+ - 代替解釈: <同じ証拠から導ける別の結論>
138
+ - データの限界: <欠損、偏り、サンプル、期間>
139
+ - 将来変化する可能性: <技術、制度、市場など>
140
+ - 結論を見直す条件: <新しい証拠・閾値>
141
+
142
+ ## 結論と次の判断
143
+
144
+ <中心的な問いへの回答を簡潔に示し、対象読者が次に行う評価・合意・実証・意思決定を記載する。新しい主張は追加しない。>
145
+
146
+ ## 利害関係と開示
147
+
148
+ - 発行者と対象製品・サービスの関係: <関係・該当なし>
149
+ - 資金提供・協賛: <提供者・該当なし>
150
+ - 著者の利害関係: <内容・該当なし>
151
+ - データ提供者の関与: <収集、分析、レビューへの関与>
152
+ - AI利用: <調査・執筆・翻訳・校正での利用範囲>
153
+
154
+ ## 証拠台帳
155
+
156
+ SRCは出典の記録、EVDは分析上の証拠の記録を表す。分析ハンドオフがある場合は、関連するHYP / FND / EVD IDsを主張・発見に紐付け、元のIDと意味を保持する。出典をEVDに置き換えない。該当しないリンクは理由付き`N/A`とし、ハンドオフがない場合はHYP / FND IDsを無理に作らない。
157
+
158
+ ### 出典の記録
159
+
160
+ | 出典ID | 出典 | 種別 | 発行日 | 参照日 | 関連する証拠ID | 品質・制約 |
161
+ |---|---|---|---|---|---|---|
162
+ | SRC-001 | <著者、資料名、URL> | 一次 / 二次 | <YYYY-MM-DD> | <YYYY-MM-DD> | EVD-001 | <評価> |
163
+
164
+ ### 分析上の証拠の記録
165
+
166
+ | 証拠ID | 出典ID | 記述の種別 | 証拠または解釈 | 関連仮説 HYP IDs | 関連発見 FND IDs | 関連主張 | 品質・制約 |
167
+ |---|---|---|---|---|---|---|---|
168
+ | EVD-001 | SRC-001 | Fact / Estimate / Interpretation | <証拠、または解釈とその根拠EVD IDs> | <関連HYP IDs、またはN/A> | <関連FND IDs、またはN/A> | CLM-001 | <評価> |
169
+
170
+ Interpretationは解釈として保持し、仮説を支持する証拠には数えない。`Supported`の仮説には、その仮説を支持するFact / EstimateのEVDが必要となる。
171
+
172
+ ## 参考文献
173
+
174
+ 1. <著者・組織>『<資料名>』<発行年>、<URL>(参照日: <YYYY-MM-DD>)
175
+
176
+ ## 公開承認とレビュー記録
177
+
178
+ ステータスを`Approved for Publication`にするには、公開承認と、必須レビューの`Approved`または理由付き`N/A`が揃っていることを確認する。`Withdrawn`の場合は、撤回日と理由を記録する。
179
+
180
+ | 種別 | レビュー者・承認者 | 対象 | 判断 | 日付 | 条件・N/Aの理由 |
181
+ |---|---|---|---|---|---|
182
+ | 公開承認 | <氏名・役割・会議体> | 文書全体 | Approved / Rejected | <YYYY-MM-DD> | <条件> |
183
+ | 法務レビュー | <氏名・役割> | <対象箇所・文書全体> | Approved / Rejected / N/A | <YYYY-MM-DD> | <条件・N/Aの理由> |
184
+ | コンプライアンスレビュー | <氏名・役割> | <対象箇所・文書全体> | Approved / Rejected / N/A | <YYYY-MM-DD> | <条件・N/Aの理由> |
185
+ | 主張・数値検証 | <氏名・役割> | <CLM・EVD・事例ID> | Approved / Rejected / N/A | <YYYY-MM-DD> | <条件・N/Aの理由> |
186
+ | 顧客名・事例掲載許諾 | <許諾者・確認者> | <事例・顧客名・数値> | Approved / Rejected / N/A | <YYYY-MM-DD> | <条件・匿名化・N/Aの理由> |
187
+
188
+ ## 変更履歴
189
+
190
+ | 版 | 日付 | 変更内容 | 変更者 | レビュー者 |
191
+ |---|---|---|---|---|
192
+ | 0.1 | <YYYY-MM-DD> | 初版 | <氏名> | <氏名> |
@@ -0,0 +1,81 @@
1
+ # Blueprint type
2
+
3
+ A Blueprint defines an agreed future state and the coordinated path from the
4
+ current state to that future state. It can cover technology, business
5
+ capabilities, operating models, governance, or a combination of them. It is
6
+ broader and more directional than a system design, but more executable than a
7
+ vision statement or strategy narrative.
8
+
9
+ ## Target reader
10
+
11
+ Sponsors, architects, transformation leads, delivery owners, governance
12
+ bodies, and affected teams who must align on the destination, sequence,
13
+ decision rights, dependencies, and measures of progress.
14
+
15
+ ## Settle before writing
16
+
17
+ - The outcome and planning horizon covered by the Blueprint
18
+ - The current-state baseline and evidence supporting it
19
+ - The target capabilities and principles that constrain the future state
20
+ - The dimensions in scope: business, organization, process, data, technology,
21
+ security, governance, or operations
22
+ - The authority that approves the Blueprint and owns subsequent changes
23
+ - The level of detail needed for funding, portfolio planning, or delivery
24
+
25
+ ## Responsibility boundary
26
+
27
+ A Blueprint establishes direction, boundaries, target capabilities, major
28
+ building blocks, transformation workstreams, and sequencing. It does not
29
+ replace implementation-level system designs, detailed requirements, project
30
+ plans, operating procedures, or an investment approval proposal.
31
+
32
+ Use `system-design` when teams need buildable component, interface, data, and
33
+ deployment details. Use `technical-proposal` when the primary outcome is an
34
+ approval of one investment or approach. Use `blueprint` when multiple
35
+ initiatives or organizational and technical dimensions must converge on one
36
+ future state over time.
37
+
38
+ ## Template
39
+
40
+ Start from `assets/templates/blueprint.md`.
41
+ The template is the Japanese-language skeleton; translate its headings when
42
+ the target document is English.
43
+
44
+ ## Recommended skeleton
45
+
46
+ 1. Intended outcome, planning horizon, scope, and authority
47
+ 2. Drivers, principles, current-state baseline, and constraints
48
+ 3. Target capabilities and future-state operating and technical views
49
+ 4. Gap analysis, workstreams, dependencies, and transition states
50
+ 5. Phased roadmap with entry, exit, and decision criteria
51
+ 6. Governance, measures, risks, traceability, and change control
52
+
53
+ ## Checklist
54
+
55
+ - [ ] Is the planning horizon and approval authority explicit?
56
+ - [ ] Is `Analysis status: Completed / Incomplete / Not performed` recorded
57
+ separately from approval status, with `Evidence gaps` and the analysis
58
+ handoff location (or none)?
59
+ - [ ] For `Incomplete`, are evidence gaps and confidence visible and every
60
+ affected conclusion or recommendation expressed with conditional wording,
61
+ or returned to consulting-analyst? For `Not performed`, are the scope and
62
+ reason explicit without implying completed analysis?
63
+ - [ ] Is the current state supported by evidence rather than assumption?
64
+ - [ ] Are target capabilities stated before products or implementation detail?
65
+ - [ ] Are business, process, data, technology, security, governance, and
66
+ operations dimensions included or explicitly marked out of scope?
67
+ - [ ] Does each gap map to a workstream, owner, dependency, and target state?
68
+ - [ ] Do roadmap phases have entry conditions, exit conditions, and measurable
69
+ outcomes rather than dates alone?
70
+ - [ ] Are transition states, coexistence, migration, and decommissioning
71
+ concerns visible?
72
+ - [ ] Are decision rights, exception handling, and change control defined?
73
+ - [ ] Can strategic drivers be traced through capabilities and workstreams to
74
+ measures?
75
+ - [ ] Does traceability preserve relevant Q / HYP / FND / EVD and GAP / INT / CRT
76
+ IDs from the consulting handoff alongside driver, principle, capability,
77
+ gap, workstream, and KPI IDs? Are inapplicable links marked `N/A` with a
78
+ reason without forcing consulting IDs when no consulting handoff exists?
79
+ - [ ] Are assumptions, risks, unresolved decisions, and superseded versions
80
+ recorded?
81
+ - [ ] Does the header status match the approval outcome?
@@ -0,0 +1,84 @@
1
+ # White Paper type
2
+
3
+ A White Paper helps a defined audience understand a consequential problem,
4
+ evaluate evidence, and reach an informed conclusion. It may explain an
5
+ emerging topic, establish a point of view, or describe a solution pattern,
6
+ but it must distinguish evidence from interpretation and must not disguise
7
+ marketing claims as independent analysis.
8
+
9
+ ## Target reader
10
+
11
+ Decision-makers, practitioners, evaluators, customers, partners, regulators,
12
+ or industry readers who need a credible explanation and a defensible basis
13
+ for action.
14
+
15
+ ## Settle before writing
16
+
17
+ - The reader's decision, question, or misconception the paper addresses
18
+ - The central claim and what evidence could weaken or disprove it
19
+ - The publication scope, date boundary, geography, and intended longevity
20
+ - The research method and acceptable source quality
21
+ - The publisher's relationship to products, services, sponsors, or cited data
22
+ - The desired next action, without overstating certainty
23
+
24
+ ## Responsibility boundary
25
+
26
+ A White Paper explains and supports a position. It is not a requirements
27
+ specification, implementation design, sales brochure, academic paper, or
28
+ contractual promise. Product examples may illustrate a finding, but factual
29
+ claims, estimates, customer outcomes, and recommendations must remain
30
+ traceable to named evidence and limitations.
31
+
32
+ Use `technical-proposal` for an internal approval request, `blueprint` for a
33
+ future state and transformation roadmap, and `white-paper` for an
34
+ evidence-led public or stakeholder-facing argument.
35
+
36
+ ## Template
37
+
38
+ Start from `assets/templates/white-paper.md`.
39
+ The template is the Japanese-language skeleton; translate its headings when
40
+ the target document is English.
41
+
42
+ ## Recommended skeleton
43
+
44
+ 1. Title, abstract, target reader, central claim, and disclosure
45
+ 2. Problem definition, scope, terminology, and research method
46
+ 3. Evidence-led findings with confidence and limitations
47
+ 4. Options, solution pattern, recommendation, and adoption considerations
48
+ 5. Counterarguments, risks, boundaries, and conclusion
49
+ 6. References, evidence ledger, glossary, authorship, and revision history
50
+
51
+ ## Checklist
52
+
53
+ - [ ] Does the abstract state the problem, conclusion, audience, and practical
54
+ consequence?
55
+ - [ ] Is `Analysis status: Completed / Incomplete / Not performed` recorded
56
+ separately from publication status, with `Evidence gaps` and the analysis
57
+ handoff location (or none)?
58
+ - [ ] For `Incomplete`, are evidence gaps and confidence visible and every
59
+ affected conclusion or recommendation expressed with conditional wording,
60
+ or returned to consulting-analyst? For `Not performed`, are the scope and
61
+ reason explicit without implying completed analysis?
62
+ - [ ] Is the central claim specific enough to challenge with evidence?
63
+ - [ ] Are facts, estimates, interpretations, and recommendations visibly
64
+ distinguished?
65
+ - [ ] Does every consequential claim link to a source or evidence identifier?
66
+ - [ ] Does the evidence ledger keep SRC source records separate from EVD analysis
67
+ evidence, preserving their IDs and meaning?
68
+ - [ ] Do claims and findings link relevant HYP / FND / EVD IDs from the handoff,
69
+ marking inapplicable links `N/A` with a reason without forcing consulting
70
+ IDs when no consulting handoff exists?
71
+ - [ ] Are interpretations preserved without counting as supporting evidence,
72
+ with `Supported` hypotheses backed by relevant Fact / Estimate evidence?
73
+ - [ ] Are source date, scope, method, sample, and limitations available?
74
+ - [ ] Are contradictory evidence and credible alternatives addressed?
75
+ - [ ] Are product, sponsor, author, and data-source relationships disclosed?
76
+ - [ ] Are publication approval and legal, compliance, and claims reviews
77
+ recorded, including approval to use customer names and quantitative
78
+ claims?
79
+ - [ ] Does `Approved for Publication` match a complete approval record, with
80
+ a reason recorded for every review marked not applicable?
81
+ - [ ] Are case studies labeled and prevented from implying universal results?
82
+ - [ ] Does the recommendation state where it does not apply?
83
+ - [ ] Can readers reproduce the source trail and identify the document's
84
+ publication and revision dates?
@@ -36,8 +36,9 @@ outcome. Require it to preserve:
36
36
  - Normative force such as Must / Should / May, approval states, and
37
37
  acceptance criteria
38
38
  - Tables, code blocks, commands, schemas, frontmatter keys, and placeholders
39
- - Markdown emphasis spacing: keep half-width spaces between surrounding prose
40
- and `**strong emphasis**` delimiters
39
+ - Markdown emphasis spacing: keep ASCII half-width spaces (`U+0020`) between
40
+ surrounding prose and both sides of `**strong emphasis**` delimiters; never
41
+ substitute full-width spaces (`U+3000`), tabs, or non-breaking spaces
41
42
  - Explicit assumptions, limitations, residual risks, and unresolved items
42
43
 
43
44
  Heading wording may improve only when its meaning and hierarchy stay intact.
@@ -54,7 +55,9 @@ Never trade technical precision for conversational phrasing.
54
55
  discovered skill,
55
56
  and follow its workflow.
56
57
  2. Ask the loaded skill to review and rewrite only the Japanese prose under
57
- the frozen invariants.
58
+ the frozen invariants. Save an immutable pre-edit copy, pass the frozen
59
+ proper names and domain terms for `--protect`, and keep necessary
60
+ corrections separate from optional wording changes.
58
61
  3. Let `<japanese-prose-dir>` be the directory containing the loaded
59
62
  optimizer's `SKILL.md`. When its diagnostics are available, run the
60
63
  optimizer's scripts with their qualified paths:
@@ -81,6 +84,12 @@ Never trade technical precision for conversational phrasing.
81
84
  violating edit, give the violated invariant back to the optimizer, and
82
85
  retry within the round limit. If the violation cannot be resolved, report
83
86
  `Japanese prose optimization did not converge`.
87
+ Run `<japanese-prose-dir>/scripts/invariants.py` against the immutable
88
+ original and current target. Require a hash-bound contextual semantic
89
+ review for changed prose, following the optimizer's review workflow.
90
+ A `review_required` result or an unavailable/failed invariant gate cannot
91
+ be treated as completion. Rerun after rubber-duck edits; old review hashes
92
+ do not approve new text.
84
93
  7. Re-run kotonoha's doctype checklist and structural lint before
85
94
  rubber-duck review.
86
95
 
@@ -90,9 +99,9 @@ When this pass is in scope (a living, multi-section document whose requested
90
99
  final language is Japanese, in `write` mode), report exactly one status:
91
100
 
92
101
  - `Japanese prose optimization completed`: the registered optimizer ran and
93
- no actionable prose findings remain. Run diagnostics when available; if
94
- `uv` or a diagnostic script is unavailable, note that limitation without
95
- changing this status.
102
+ no actionable prose findings remain, and the invariant gate passed with
103
+ a current semantic review of any edits. A missing optional diagnostic may
104
+ be noted, but a missing or failed invariant gate prevents this status.
96
105
  - `Japanese prose optimization not performed`: the bundled optimizer was
97
106
  missing or unreadable, so no prose review or rewrite ran; include the
98
107
  concrete reason. A standard `npx kotonoha install` should prevent this
@@ -101,8 +110,8 @@ final language is Japanese, in `write` mode), report exactly one status:
101
110
  unresolved actionable findings or invariant violations, or the optimizer
102
111
  started but failed before producing a valid result, a required
103
112
  post-rubber-duck rerun failed or could not start because all 15 handoffs
104
- were already used; list the findings, violations, failure, and attempted
105
- fixes.
113
+ were already used, or the invariant gate/semantic review could not pass;
114
+ list the findings, violations, failure, and attempted fixes.
106
115
 
107
116
  Do not claim natural-language optimization based only on kotonoha's
108
117
  structural lint. Documents outside the scope of this pass require no Japanese
@@ -8,9 +8,11 @@ Sentence-level naturalness, vocabulary, and rhythm are out of scope here
8
8
 
9
9
  These 8 rules assume a **living, multi-section reference document** —
10
10
  README, design doc/ADR, API reference, release notes/CHANGELOG file as a
11
- whole, user manual, technical proposal, RFI/RFP (including a supplier's RFP
12
- response), or Zenn/Qiita article. Apply all 8 rules to those doctypes. For
13
- Zenn and Qiita, rule 1's article title lives in YAML frontmatter — see their
11
+ whole, user manual, requirements definition, system design, test plan,
12
+ operations runbook, migration plan, security design, technical proposal,
13
+ Blueprint, White Paper, RFI/RFP (including a supplier's RFP response), or
14
+ Zenn/Qiita article. Apply all 8 rules to those doctypes. For Zenn and Qiita,
15
+ rule 1's article title lives in YAML frontmatter — see their
14
16
  doctype reference files for the platform-specific fields. Zenn body sections
15
17
  start at `##`; Qiita body sections start at `#` and use `##` for subsections.
16
18
  Every other rule (code examples, disclosed limitations, etc.) still applies
@@ -34,7 +36,11 @@ In generated Markdown, add half-width spaces outside strong-emphasis
34
36
  delimiters when they touch surrounding prose. Write
35
37
  `これは **強調** になる` rather than `これは**強調**にならない`.
36
38
  The spaces are unnecessary at a line boundary or next to punctuation, for
37
- example `**重要**: 設定を確認する`. Never put spaces inside the delimiters.
39
+ example `**重要**: 設定を確認する`. Use ASCII spaces (`U+0020`), not
40
+ full-width spaces (`U+3000`), tabs, or non-breaking spaces, immediately before
41
+ and after emphasis embedded in prose. Write `これは **「重要」** と説明する`,
42
+ not `これは **「重要」** と説明する`. Never put spaces inside the
43
+ delimiters.
38
44
 
39
45
  ## 1. Say "what this is" and "the outcome" in the first three lines
40
46
 
@@ -246,11 +246,12 @@ def check_links(lines: list, fence_mask: list) -> list:
246
246
 
247
247
 
248
248
  def check_bold_spacing(lines: list, fence_mask: list) -> list:
249
- """Flag bold delimiters that directly touch surrounding prose.
249
+ """Flag bold delimiters with missing or non-ASCII surrounding spaces.
250
250
 
251
251
  Some Markdown renderers fail to recognize strong emphasis when `**`
252
252
  directly adjoins Japanese or other word characters. Punctuation and
253
- line boundaries do not need padding.
253
+ line boundaries do not need padding. When padding is present, it must
254
+ be an ASCII half-width space rather than a tab or Unicode space.
254
255
  """
255
256
  findings = []
256
257
  for i, line in enumerate(lines):
@@ -262,15 +263,19 @@ def check_bold_spacing(lines: list, fence_mask: list) -> list:
262
263
  after = checked[match.end()] if match.end() < len(checked) else ""
263
264
  if (before and (before.isalnum() or before == "_")) or (
264
265
  after and (after.isalnum() or after == "_")
266
+ ) or (
267
+ before and before.isspace() and before != " "
268
+ ) or (
269
+ after and after.isspace() and after != " "
265
270
  ):
266
271
  findings.append(
267
272
  Finding(
268
273
  line=i + 1,
269
274
  category="bold_spacing",
270
275
  message=(
271
- "Add half-width spaces outside '**...**' when it "
272
- "touches surrounding prose so strong emphasis "
273
- "renders consistently."
276
+ "Use ASCII half-width spaces immediately before "
277
+ "and after '**...**' when it is embedded in prose; "
278
+ "do not use full-width or other Unicode spaces."
274
279
  ),
275
280
  snippet=line.strip(),
276
281
  )