kotonoha 0.5.2 → 0.5.4

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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.5.4] - 2026-11-05
11
+
12
+ ### Changed
13
+
14
+ - Allow normal Markdown host direct saves on confirmed local Windows drives
15
+ mounted through WSL (`drvfs`, `9p` or `v9fs`), without a filesystem-name-only
16
+ refusal. Require in-place updates preserving the existing Windows file object,
17
+ path/identity checks and exact readback. Do not silently redirect rejected
18
+ Vault saves to `/tmp`. Keep Python CLI, Canvas and Bases storage policies unchanged.
19
+
20
+ ## [0.5.3] - 2026-11-05
21
+
22
+ ### Breaking changes
23
+
24
+ - Reduce `obsidian-vault` to scoped local reads, static validation and exact
25
+ candidate saving. Remove standalone authoring, convention inference,
26
+ related-note recommendations, link analysis and proofreading orchestration.
27
+ Route note content to `obsidian-markdown`, Japanese wording to
28
+ `japanese-prose` and explicitly selected live-app operations to `obsidian-cli`.
29
+ Retain the v1 backend request format, validation/save gates and Canvas storage
30
+ API version 1; legacy intent labels do not restore the removed workflows.
31
+ See the [migration and storage guide](skills/obsidian-vault/references/workflow.md).
32
+
33
+ ### Added
34
+
35
+ - Add `obsidian-markdown` for note authoring/editing, Obsidian-specific syntax,
36
+ Japanese proofreading coordination and protected local-storage handoffs.
37
+ - Add `obsidian-cli` for explicitly selected official application commands,
38
+ scoped note/task/property operations and authorized development diagnostics.
39
+ - Add `defuddle` for optional web/HTML-to-Markdown or JSON extraction, with
40
+ separate network consent and reviewed handoffs instead of direct Vault writes.
41
+ - Add `knap` for optional JSON/CSV template rendering, batch previews and
42
+ Vault-external staging, with original templates and example data.
43
+ - Add JSON Canvas field and Bases expression/view references, preserving the
44
+ existing validation subsets and save workflows.
45
+ - Expose the Obsidian suite through source-checkout Skill links and verify
46
+ selective installation plus npm-tarball delivery for both hosts.
47
+
48
+ ### Changed
49
+
50
+ - Promote `0.5.3-dev.0` to stable `0.5.3`.
51
+ - Route all six capability families from `kepano/obsidian-skills` through
52
+ eleven bundled kotonoha Skills without introducing a second Canvas writer.
53
+ External tools remain optional and are not installed by kotonoha.
54
+ - Document npm and source-checkout installation for all eleven Skills.
55
+ Keep the Node.js >=18 installer requirement; the optional Knap CLI needs >=20.
56
+ - Preserve existing Vault, Canvas and Bases save workflows, one-note handoffs
57
+ and the prohibition on session-storage outputs. Official app commands require
58
+ separate authority and never bypass a refused storage operation.
59
+
10
60
  ## [0.5.1] - 2026-10-21
11
61
 
12
62
  ### Fixed
@@ -220,4 +270,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
220
270
  [0.1.5]: https://github.com/nahisaho/kotonoha/compare/v0.1.4...v0.1.5
221
271
  [0.4.2]: https://github.com/nahisaho/kotonoha/compare/d76ef4a...v0.4.2
222
272
  [0.5.0]: https://github.com/nahisaho/kotonoha/compare/v0.4.2...v0.5.0
223
- [Unreleased]: https://github.com/nahisaho/kotonoha/compare/v0.5.0...HEAD
273
+ [0.5.3]: https://github.com/nahisaho/kotonoha/compare/d665884...v0.5.3
274
+ [0.5.4]: https://github.com/nahisaho/kotonoha/compare/v0.5.3...v0.5.4
275
+ [Unreleased]: https://github.com/nahisaho/kotonoha/compare/v0.5.4...HEAD
package/README-ja.md CHANGED
@@ -1,9 +1,13 @@
1
1
  # kotonoha
2
2
 
3
- kotonohaは、GitHub CopilotとClaude Code向けのスキルを提供します。曖昧な課題の構造化から、文書化、日本語表現の改善、プレゼンテーション設計までを一連の流れとして支援します。
3
+ kotonohaは、GitHub CopilotとClaude Code向けのスキルを提供します。曖昧な課題の構造化から、文書化、日本語表現の改善、Obsidianでの知識管理、プレゼンテーション設計までを支援します。
4
4
 
5
5
  `consulting-analyst`は、課題を論点、仮説、証拠、選択肢、提言へ構造化します。分析結果を受け取った`tech-writer`は、README、設計文書、Blueprint、White Paper、提案書などへ内容を落とし込みます。日本語の表現品質は`japanese-prose`がGiNZAベースの診断で改善します。プレゼンテーションが必要な場合は、`presentation-planner`がシナリオ、スライド構成、デザイン仕様、PPTX作成スキル向けの引き継ぎ情報を生成します。
6
6
 
7
+ Obsidian向けには、Markdown記法、許可されたVault内のノート操作、JSON Canvas、Bases、公式アプリCLIを扱います。DefuddleによるWeb・HTML本文の抽出と、KnapによるJSON・CSVからのテンプレート生成にも対応します。操作ごとに、参照範囲・依存関係・保存の許可を確認します。
8
+
9
+ バージョンは **0.5.4** です(2026-11-05更新)。`obsidian-markdown`、`obsidian-cli`、`defuddle`、`knap`を含む11のスキルを同梱しています。npmパッケージを使うか、[ソースからスキルを導入する手順](#このチェックアウトからスキルを導入)を参照してください。
10
+
7
11
  [English](./README.md) | [日本語](./README-ja.md)
8
12
 
9
13
  ## kotonoha(言の葉)という名前
@@ -30,6 +34,8 @@ kotonohaは文書構造と技術的な不変条件を固定してから日本語
30
34
  - `scripts/lint.py`による構造検査。見出しレベルの飛び、言語指定のないコードブロック、未解決のプレースホルダー、不審なリンク、文章に隣接した強調記号を検出
31
35
  - コミットメッセージ本文とコードコメント・docstringを除き、すべての文書種別でMarkdownを標準形式として使用
32
36
  - 日本語を主な対象言語とし、英語文書にも対応
37
+ - Obsidianの記法説明、許可範囲のVaultノート操作、Canvas図、Bases設定の編集
38
+ - 明示的に選択したObsidianアプリ操作、Defuddleによる本文抽出、Knapによるデータからのノート生成。通信や保存への許可は個別に確認
33
39
 
34
40
  ## 対応している文書
35
41
 
@@ -63,11 +69,15 @@ Obsidianでは、[`obsidian.md`](skills/tech-writer/assets/templates/obsidian.md
63
69
 
64
70
  ## Obsidian Vaultの操作
65
71
 
66
- 専用の`obsidian-vault`は、Vaultの規約確認、Markdownノートの直接作成・編集、関連ノート候補、内部リンク診断、日本語添削を担当します。
67
- 直接編集は`kotonoha@0.4.2`に含まれます。
68
- 対象と変更内容への許可を確認し、ホストのファイルツールで本文・プロパティ・タグ・リンクを変更できます。
69
- 直接編集には専用CLIの計画ファイル、Python、uvは不要です。Obsidianアプリ、MCP、プラグインにも依存しません。
70
- 文書構成にはtech-writer、日本語添削にはjapanese-proseを利用します。
72
+ Markdownノートとテンプレートの作成・編集は`obsidian-markdown`が担当します。
73
+ 文書構成にはtech-writer、日本語の校正にはjapanese-proseを利用します。
74
+ `obsidian-vault`は、許可範囲のローカル読み取り・静的検証・確定済み候補の保存だけを担う共用基盤に縮小しました。
75
+ 直接保存はホストのファイルツールを使うため、Python、uv、専用CLIの計画ファイルは不要です。
76
+ Obsidianアプリ、MCP、プラグインにも依存しません。
77
+
78
+ 規約の推定、関連ノートの推薦、独立したリンク分析、校正作業の指揮はobsidian-vaultから削除しました。
79
+ アプリ上の検索・リンク確認には、明示的に選択したobsidian-cliを使います。これは編集上の推薦を代行する機能ではありません。
80
+ 静的検証の観測値・リンク判定、v1依頼形式、Canvas用の共用保存API版1は互換性のために維持しますが、削除した上位ワークフローは提供しません。
71
81
 
72
82
  Vault、読み取り範囲、モデルに渡す情報を利用者が明示し、指定外の内容を保持します。
73
83
  保存前の確認を求められた場合は、差分承認まで保存しません。
@@ -75,7 +85,7 @@ Vault、読み取り範囲、モデルに渡す情報を利用者が明示し、
75
85
  相対保存先はそこから解決しますが、Vaultルート基準と明示したパスや絶対パスは維持します。
76
86
  許可済みのVaultと範囲内にある対象自体を編集し、セッション領域のコピーで代替しません。
77
87
  補助ファイルへの同意と適切な保存場所も別途必要です。
78
- Obsidian関連の3スキルは、成果物だけでなく原文・候補・診断・レビュー・計画・一時ファイルもセッション領域へ保存しません。
88
+ Obsidian関連の各ワークフローは、成果物だけでなく原文・候補・診断・レビュー・計画・一時ファイルもセッション領域へ保存しません。
79
89
  指定場所の実体がセッション領域なら、書き込み前に別の場所を確認し、委譲先にも同じ制約を引き継ぎます。
80
90
  CLIの作業領域には引き続きVault外の場所が必要です。セッション領域ではない場所への同意を得て使用します。
81
91
  この制約はスキルが保存するファイルに適用し、ホストが管理する会話ログは制御しません。
@@ -85,8 +95,14 @@ CLI計画保存モードも選べます。こちらはLinux、CPython 3.12、uv
85
95
  CLI処理はオフライン・lock付きで起動します。依存関係の初回準備は別途の許可が必要です。
86
96
  依頼例、コマンド、コピーの保持と復旧は[操作ガイド](skills/obsidian-vault/references/workflow.md)を参照してください。
87
97
 
88
- 保存は必要な確認ができるローカル通常ファイルに限定し、シンボリックリンク、維持できない属性、複数ハードリンクを拒否します。
89
- 拡張属性付きファイルも保存非対応であり、SELinuxラベルなどの削除を回避策にしません。
98
+ 保存は必要な確認ができるローカル通常ファイルに限定し、シンボリックリンクや複数ハードリンクを拒否します。
99
+ Linuxでは所有者・グループ・権限を維持します。
100
+ 0.5.4から、通常の直接保存はWSL上のローカルWindowsドライブ(drvfs・9p・v9fs)にも対応します。
101
+ 既存ノートは置換せず同じ実体へ書き込み、WindowsのACL・属性を保持します。仮想的なLinux権限だけでは拒否しません。
102
+ ネットワーク共有は対象外とし、パス・実体・保存後のバイト列を検証します。保存方式が不明な編集ツールは使いません。
103
+ `/tmp`等への別出力を、許可済みVaultの更新の代わりにはしません。
104
+ Python CLI・Canvas・Basesの対応範囲は広げません。CLIでは引き続きWSLのWindowsドライブや拡張属性付き対象を拒否します。
105
+ SELinuxラベルなどの削除を回避策にしません。
90
106
  直接編集はCLIの原子的確定、ルートロック、成功記録による再実行保護を利用しません。
91
107
  保存後に読み戻して確認しますが、途中失敗や同時編集の完全な防止は保証しません。
92
108
  LLMの誤判断を完全には防げず、ホストを隔離する機能でもありません。
@@ -122,6 +138,49 @@ Node 18以上と固定依存が必要です。依存の準備は別途許可を
122
138
  直接編集にはCLIのロック・原子的確定・再実行記録はありません。
123
139
  依存の準備、4種類の独自テンプレート、原文保持、失敗時の扱いは[Bases操作ガイド](skills/obsidian-bases/references/workflow.md)を参照してください。
124
140
 
141
+ ## Obsidian記法・アプリ操作・データからのノート生成
142
+
143
+ 0.5.4は、[kepano/obsidian-skills](https://github.com/kepano/obsidian-skills)の6つの機能分野を、kotonoha独自の手順と例で扱います。
144
+ 参照した版は[`3ccff5338ea700537839b21900aa5358a0402c98`](https://github.com/kepano/obsidian-skills/tree/3ccff5338ea700537839b21900aa5358a0402c98)です(2026-11-05確認)。
145
+ 対応する実行環境や保存方法が参照先と同一という意味ではありません。既存のCanvas・Basesの検査範囲と保存制約を維持します。
146
+
147
+ | 機能 | kotonohaのSkill | 実行条件と保存先 |
148
+ |---|---|---|
149
+ | Markdownノートと記法 | [`obsidian-markdown`](skills/obsidian-markdown/SKILL.md) | 外部CLIは不要。作成・編集と日本語校正の指揮を担当し、ローカル入出力はobsidian-vaultへ引き継ぐ |
150
+ | JSON Canvas | [`obsidian-canvas`](skills/obsidian-canvas/SKILL.md) | 既存のPython検査と単一Canvasの計画承認を使用。json-canvasという別の導入名は追加しない |
151
+ | Bases | [`obsidian-bases`](skills/obsidian-bases/SKILL.md) | 既存のNode静的検査と、許可されたホストツールによる保存を使用 |
152
+ | 公式アプリCLI | [`obsidian-cli`](skills/obsidian-cli/SKILL.md) | 登録済みCLIとデスクトップアプリが必要。Vaultと対象ファイルを明示し、アプリ操作への許可を別途確認 |
153
+ | Web・HTML本文抽出 | [`defuddle`](skills/defuddle/SKILL.md) | 任意導入のDefuddleを使用。第三者サービスへの通信も含めて許可を確認し、標準出力か同意済みのVault外作業領域へ出力 |
154
+ | JSON・CSVテンプレート生成 | [`knap`](skills/knap/SKILL.md) | Knap CLIとNode 20以上が必要。検査・生成・一括出力のプレビューを行い、Vault外へ仮出力 |
155
+
156
+ 公式アプリCLIは、kotonohaの`vault.py`とは別の操作経路です。現在の公式導入手順では、1.12.7以上のインストーラーと、設定画面のGeneralからのCLI登録が必要です。
157
+ コマンドがアプリを起動する場合もあるため、起動・プラグイン実行・画面取得には明示的な許可を確認します。保存拒否を回避する代替手段には使いません。
158
+ Basesの実データを問い合わせる場合は、結果に含まれる範囲への同意も必要です。静的検査だけで実表示や式の計算結果を確認済みとは扱いません。
159
+
160
+ Defuddleは、ローカルHTMLの処理でも第三者サービスへ通信する可能性があります。オフライン処理とはみなしません。
161
+ Knapによる生成は、元情報の取得・事実確認・保存の許可を兼ねません。一括生成では全出力先をプレビューし、同意済みの空のVault外ディレクトリへ仮出力します。
162
+ 選択したノートはobsidian-markdownで内容を整え、ローカル保存だけをobsidian-vaultへ1ノートずつ渡します。
163
+ 新しい経路でもセッション領域への保存は禁止し、外部ツールやアプリ設定を自動導入・変更しません。
164
+
165
+ 依頼例:
166
+
167
+ ```text
168
+ この文章の見出し・ブロックへのリンク、入れ子のコールアウト、
169
+ YAMLプロパティを確認して。Vaultは読まず、保存もしないで。
170
+ ```
171
+
172
+ ```text
173
+ 公式Obsidian CLIで、指定したVaultのNotes/Trial.mdを読んで。
174
+ 実行前にVaultの識別情報とアプリ起動の許可を確認して。
175
+ ```
176
+
177
+ ```text
178
+ KnapでCSVの各行からノートを作るプレビューを出して。
179
+ 仮出力は同意済みのVault外ディレクトリを使い、生成・保存前に出力先を示して。
180
+ ```
181
+
182
+ 詳しい記法とコマンドは、[Markdown記法](skills/obsidian-markdown/references/syntax.md)、[アプリCLI](skills/obsidian-cli/references/commands.md)、[Canvasフィールド](skills/obsidian-canvas/references/json-canvas.md)、[Basesの式](skills/obsidian-bases/references/expressions.md)、[Knapの例](skills/knap/references/rendering.md)を参照してください。
183
+
125
184
  ## consulting-analystの機能
126
185
 
127
186
  - 文書やプレゼンテーションを作る前に、意思決定者、意思決定の問い、成果、範囲、証拠不足を定義
@@ -161,10 +220,25 @@ White Paper向けの分析を作成して
161
220
 
162
221
  - GitHub Copilot(CLIまたは対応IDEのエージェントモード)かClaude Codeがインストールされていること
163
222
  - インストーラー用のNode.js 18以上とnpm
223
+ - 対象の操作を選んだ場合のみ、登録済みのObsidianデスクトップCLI、Defuddle、Knapが必要。Knap CLIにはNode.js 20以上を使用
164
224
  - tech-writerの構造lintを実行する場合はPython 3.9以上
165
225
  - 同梱`japanese-prose`の文章lint、読解負荷分析、アウトライン抽出、用語検査、編集前後の不変条件検査を実行する場合はPython 3.10以上と`uv`。GiNZA、`ja_ginza`、spaCy、Markdown解析用の依存関係は、各スクリプトの初回実行時に`uv`が解決
166
226
 
167
- ### npmからインストール
227
+ ### このチェックアウトからスキルを導入
228
+
229
+ このソースチェックアウトには、11のスキルがすべて含まれます。
230
+ リポジトリのルートから、`/path/to/your-project`を導入先プロジェクトの絶対パスに置き換え、利用するエージェントのコマンドを1つ実行します。
231
+
232
+ ```bash
233
+ node bin/kotonoha.js install --agent copilot --target /path/to/your-project/.github/skills
234
+ node bin/kotonoha.js install --agent claude --target /path/to/your-project/.claude/skills
235
+ ```
236
+
237
+ どちらも既定では11のスキルを選択し、既存のスキルディレクトリは保持します。既存のコピーを更新する場合は、ローカルの変更を確認し、置き換える場合にだけ`--force`を追加します。
238
+ 1つだけ導入する場合は、`--skill obsidian-markdown`などを追加します。
239
+ この操作はスキルファイルのコピーのみです。Obsidian、Defuddle、Knap、Pythonの依存関係、Bases検査器の依存関係は導入しません。
240
+
241
+ ### 公開済みのnpmパッケージをインストール
168
242
 
169
243
  パッケージをインストールし、同梱CLIで各スキルを対象のスキルディレクトリへコピーします。
170
244
 
@@ -203,14 +277,14 @@ npx kotonoha install --agent all --force
203
277
 
204
278
  ### 同梱スキルをまとめてインストール
205
279
 
206
- `kotonoha install`は、まだ存在しない同梱スキルをすべてインストールします。`consulting-analyst`、`tech-writer`、`japanese-prose`、`obsidian-vault`、`obsidian-canvas`、`obsidian-bases`、`presentation-planner`を`.github/skills/`へインストールします。
280
+ `kotonoha install`は、まだ存在しない同梱スキルをすべてインストールします。公開済みパッケージを導入した環境で、全スキルを明示的に選ぶコマンドは次のとおりです。
207
281
 
208
282
  ```bash
209
- npm install --save-dev kotonoha
210
283
  npx kotonoha install --skill all
211
284
  ```
212
285
 
213
- `--skill all`が既定値であるため、`npx kotonoha install`も同じ動作です。7つのスキルがインストールされたことを確認します。0.4.1はCanvasとBasesを含まない5つでした。
286
+ `--skill all`が既定値であるため、`npx kotonoha install`も同じ動作です。導入できるスキルは、使用したパッケージに依存します。
287
+ 0.5.4には11のスキルを同梱しています。導入先プロジェクトで、すべて配置されたことを確認します。
214
288
 
215
289
  ```bash
216
290
  test -f .github/skills/consulting-analyst/SKILL.md
@@ -219,6 +293,10 @@ test -f .github/skills/japanese-prose/SKILL.md
219
293
  test -f .github/skills/obsidian-vault/SKILL.md
220
294
  test -f .github/skills/obsidian-canvas/SKILL.md
221
295
  test -f .github/skills/obsidian-bases/SKILL.md
296
+ test -f .github/skills/obsidian-markdown/SKILL.md
297
+ test -f .github/skills/obsidian-cli/SKILL.md
298
+ test -f .github/skills/defuddle/SKILL.md
299
+ test -f .github/skills/knap/SKILL.md
222
300
  test -f .github/skills/presentation-planner/SKILL.md
223
301
  ```
224
302
 
@@ -259,7 +337,7 @@ README-ja.mdの日本語を自然で読みやすい表現に修正して
259
337
  新しい日本語文書では、`このリポジトリの日本語READMEを作成して`のように依頼すると、`tech-writer`が下書きと構造レビューを行い、rubber-duck reviewの前にGiNZAベースの文章最適化を実行します。文章最適化を確実に指定する場合は、`<ファイル名>を技術文書として作成または修正し、GiNZAによる日本語表現最適化まで実施して`と指示します。
260
338
 
261
339
  既定のインストール先は、現在のプロジェクトの`.github/skills/`です。
262
- consulting-analyst、tech-writer、japanese-prose、obsidian-vault、obsidian-canvas、obsidian-bases、presentation-plannerをそれぞれのサブディレクトリに配置します。
340
+ 同梱の各スキルを、スキル名と同じサブディレクトリに配置します。
263
341
  スキルを1つだけインストールする場合や、対応している別のディレクトリを使用する場合は、次のように指定します。
264
342
 
265
343
  ```bash
@@ -349,6 +427,10 @@ cp -r skills/japanese-prose /path/to/your-repo/.github/skills/japanese-prose
349
427
  cp -r skills/obsidian-vault /path/to/your-repo/.github/skills/obsidian-vault
350
428
  cp -r skills/obsidian-canvas /path/to/your-repo/.github/skills/obsidian-canvas
351
429
  cp -r skills/obsidian-bases /path/to/your-repo/.github/skills/obsidian-bases
430
+ cp -r skills/obsidian-markdown /path/to/your-repo/.github/skills/obsidian-markdown
431
+ cp -r skills/obsidian-cli /path/to/your-repo/.github/skills/obsidian-cli
432
+ cp -r skills/defuddle /path/to/your-repo/.github/skills/defuddle
433
+ cp -r skills/knap /path/to/your-repo/.github/skills/knap
352
434
  cp -r skills/presentation-planner /path/to/your-repo/.github/skills/presentation-planner
353
435
  ```
354
436
 
@@ -395,13 +477,17 @@ skills/presentation-planner/ # シナリオ、デザイン仕様、PPTX引き継
395
477
  references/ # 責任境界、シナリオ・デザインガイド、カスタマイズ、引き継ぎ契約
396
478
  assets/scenario-templates/ # 経営判断、技術説明、データ報告向けシナリオ
397
479
  assets/design-templates/ # 経営提案、技術説明、データ報告向けYAMLデザイン
398
- skills/obsidian-vault/ # 許可範囲のMarkdown操作と共用保存API
480
+ skills/obsidian-vault/ # ローカル読み取り・検証・保存の共用基盤
399
481
  skills/obsidian-canvas/ # JSON Canvas診断、配置、承認付き保存
400
482
  scripts/ # 固定依存のオフラインCLIと独自受入データの試験
401
483
  assets/templates/ # 関係図、アイデア、手順、比較の構成例
402
484
  skills/obsidian-bases/ # Basesの直接編集と読み取り専用検査
403
485
  scripts/ # 標準入力の検査器、専用依存のlock、作業コピー用の試験
404
486
  assets/templates/ # Table、Cards、List、Kanban
487
+ skills/obsidian-markdown/ # ノート作成・編集。ローカル入出力はobsidian-vaultへ
488
+ skills/obsidian-cli/ # 明示選択した公式アプリCLI
489
+ skills/defuddle/ # 任意導入のWeb・HTML本文抽出。Vaultへ直接保存しない
490
+ skills/knap/ # 任意導入のJSON・CSV生成、プレビュー、Vault外への仮出力
405
491
  .github/skills/tech-writer # Copilot CLIが読み込むskills/tech-writerへのシンボリックリンク
406
492
  .github/skills/consulting-analyst
407
493
  .github/skills/japanese-prose
@@ -409,6 +495,10 @@ skills/obsidian-bases/ # Basesの直接編集と読み取り専用検査
409
495
  .github/skills/obsidian-vault
410
496
  .github/skills/obsidian-canvas
411
497
  .github/skills/obsidian-bases
498
+ .github/skills/obsidian-markdown
499
+ .github/skills/obsidian-cli
500
+ .github/skills/defuddle
501
+ .github/skills/knap
412
502
  ```
413
503
 
414
504
  ## 既知の制約
package/README.md CHANGED
@@ -1,21 +1,23 @@
1
1
  # kotonoha
2
2
 
3
- kotonoha provides skills for GitHub Copilot and Claude Code: consulting analysis, technical
4
- documents, Japanese prose, and presentation planning. `consulting-analyst`
5
- structures ambiguous problems into issue trees, hypotheses, evidence, option
6
- comparisons, and recommendations. `tech-writer` turns that reasoning into
7
- README, design documents, Blueprints, White Papers, proposals, and other
8
- technical documents without losing the reader. `japanese-prose` improves
9
- Japanese wording with GiNZA-based diagnostics. `presentation-planner` turns
10
- source material into a reusable presentation scenario, slide outline, design
11
- specification, and handoff for a dedicated PPTX creation skill.
12
- The `obsidian-vault` skill applies scoped Vault conventions and link diagnostics
13
- and directly creates or edits authorized Markdown notes using host file tools,
14
- with optional CLI plan-approved saving. Direct editing is included in 0.4.2.
15
- The `obsidian-canvas` skill adds scoped diagram diagnosis,
16
- layout and approval-gated Canvas edits in 0.4.2.
17
- The `obsidian-bases` skill adds direct `.base` configuration editing
18
- and a read-only static checker for Table, Cards, List and Kanban.
3
+ kotonoha provides skills for GitHub Copilot and Claude Code: consulting analysis,
4
+ technical writing, Japanese prose, Obsidian workflows and presentation planning.
5
+ Turn evidence into documents, work with scoped Vault content, and prepare
6
+ presentations without mixing drafting with unauthorized saves.
7
+
8
+ `consulting-analyst` structures problems and evidence; `tech-writer` creates
9
+ reader-focused technical documents; `japanese-prose` improves Japanese wording
10
+ with GiNZA diagnostics. `presentation-planner` prepares scenarios, slide outlines
11
+ and design specifications for a dedicated PPTX creation skill.
12
+
13
+ The Obsidian suite covers Markdown syntax, authorized Vault notes, JSON Canvas,
14
+ Bases, official app commands, web/HTML extraction and JSON/CSV template rendering.
15
+ Each workflow keeps its own scope, dependency and save requirements.
16
+
17
+ Version: **0.5.4** (updated 2026-11-05), with eleven bundled Skills, including
18
+ `obsidian-markdown`, `obsidian-cli`, `defuddle` and `knap`.
19
+ Install the npm package or use the
20
+ [source-checkout installation](#install-skills-from-this-source-checkout).
19
21
 
20
22
  [English](./README.md) | [日本語](./README-ja.md)
21
23
 
@@ -79,6 +81,10 @@ review.
79
81
  message body (plain text by convention) and code comments/docstrings
80
82
  (the target programming language's own syntax)
81
83
  - Japanese as the primary target language, with English document support
84
+ - Draft Obsidian syntax and work with authorized Vault notes, Canvas diagrams
85
+ and Bases configuration without changing unrelated content
86
+ - Use explicitly selected official Obsidian commands, optional Defuddle
87
+ extraction and Knap data-driven rendering with separate consent and save gates
82
88
 
83
89
  ## Supported document types
84
90
 
@@ -124,11 +130,19 @@ for setup, placeholder handling, and limitations.
124
130
 
125
131
  ## Working with an Obsidian Vault
126
132
 
127
- Use the dedicated `obsidian-vault` skill for Vault conventions, direct Markdown
128
- creation and editing, related-note proposals, internal-link diagnosis and Japanese
129
- proofreading. The direct-edit workflow uses host file tools without
130
- requiring Python, uv, Obsidian, MCP or plugins. Use `tech-writer` for document
131
- structure and `japanese-prose` for proofreading.
133
+ Use `obsidian-markdown` to create or edit Markdown notes and templates. It uses
134
+ `tech-writer` for structure and coordinates Japanese proofreading with
135
+ `japanese-prose`. `obsidian-vault` is now only the shared backend for scoped
136
+ local reads, static validation and saving an already prepared candidate.
137
+ Its direct-save path uses host file tools without Python, uv, Obsidian, MCP
138
+ or plugins.
139
+
140
+ Standalone convention inference, related-note recommendations, link analysis
141
+ and proofreading orchestration have been removed from `obsidian-vault`.
142
+ Use an explicitly selected `obsidian-cli` workflow for live-app search and
143
+ link inspection; it does not replace editorial recommendations.
144
+ The backend retains static observations/link evidence, the v1 request format
145
+ and Canvas storage API version 1 for compatibility, not the removed workflows.
132
146
 
133
147
  The user explicitly selects the Vault, read scopes and model-context consent.
134
148
  Direct editing requires authorization for the exact target and changes, preserves
@@ -139,7 +153,7 @@ at request start by default. Relative targets resolve there unless explicitly
139
153
  Vault-relative; absolute targets stay unchanged. Edit the authorized target
140
154
  itself, not a session-state copy. This does not broaden the permitted Vault scope;
141
155
  auxiliary copies still need separate consent and a suitable location.
142
- All three Obsidian skills prohibit saving operation files in session storage,
156
+ All Obsidian workflows prohibit saving operation files in session storage,
143
157
  including originals, candidates, diagnostics, reviews, plans and temporary files.
144
158
  If a selected directory resolves there, they ask for another location before
145
159
  writing. Delegated skills receive the same restriction. CLI workspaces still
@@ -158,9 +172,16 @@ replay protection, and must not be an automatic fallback from CLI failures.
158
172
  See the [Japanese workflow guide](skills/obsidian-vault/references/workflow.md)
159
173
  for requests, command examples, data retention and recovery.
160
174
 
161
- Saving requires verifiable local regular files and preserved ownership/modes;
162
- symlinks, multiple hard links and unsupported attributes are refused.
163
- CLI saving additionally requires a verified filesystem and refuses all xattrs,
175
+ Saving requires verifiable local regular files; symlinks and multiple hard
176
+ links are refused. Native Linux saves preserve ownership/modes.
177
+ Host direct saves also support confirmed local Windows drives through WSL
178
+ (`drvfs`/`9p`/`v9fs`), not network shares. Existing notes must be updated in place,
179
+ preserving Windows ACLs/attributes rather than replacing the file or requiring
180
+ synthetic Linux permissions. Path/identity checks and exact readback remain
181
+ mandatory; an unknown host replacement method is not sufficient.
182
+ No silent `/tmp` output may substitute for an authorized Vault update.
183
+ This profile, added in 0.5.4, does not extend Python CLI, Canvas or Bases support.
184
+ CLI saving still requires a verified Linux filesystem and refuses all xattrs,
164
185
  including SELinux labels. Never remove attributes to bypass a refusal.
165
186
  Direct-edit failure and concurrency limitations are disclosed before saving;
166
187
  neither mode eliminates post-check external edits or LLM mistakes.
@@ -209,6 +230,62 @@ or receipt protection. Rendering, real expression results and arbitrary host
209
230
  enforcement remain unverified. See the [Bases workflow](skills/obsidian-bases/references/workflow.md)
210
231
  for exact-byte preservation, four original templates and failure handling.
211
232
 
233
+ ## Obsidian syntax, app commands and data-driven notes
234
+
235
+ The 0.5.4 Skills cover all six capability families in
236
+ [kepano/obsidian-skills](https://github.com/kepano/obsidian-skills), with original
237
+ kotonoha instructions and examples. Reference snapshot:
238
+ [`3ccff5338ea700537839b21900aa5358a0402c98`](https://github.com/kepano/obsidian-skills/tree/3ccff5338ea700537839b21900aa5358a0402c98),
239
+ checked 2026-11-05. This is capability coverage, not identical runtime support:
240
+ the existing Canvas/Bases validation subsets and approval rules remain intact.
241
+
242
+ | Capability | kotonoha Skill | Runtime and save boundary |
243
+ |---|---|---|
244
+ | Markdown notes and syntax | [`obsidian-markdown`](skills/obsidian-markdown/SKILL.md) | No external CLI; owns authoring/editing, coordinates Japanese proofreading and hands local I/O to `obsidian-vault` |
245
+ | JSON Canvas | [`obsidian-canvas`](skills/obsidian-canvas/SKILL.md) | Existing locked Python backend and approved single-Canvas plans; no new `json-canvas` install name |
246
+ | Bases | [`obsidian-bases`](skills/obsidian-bases/SKILL.md) | Existing read-only Node checker and authorized host saves |
247
+ | Official application CLI | [`obsidian-cli`](skills/obsidian-cli/SKILL.md) | Registered desktop CLI and app; explicit Vault/file targets and separate live-app authority |
248
+ | Web/HTML extraction | [`defuddle`](skills/defuddle/SKILL.md) | Optional Defuddle CLI, network consent including possible third-party requests; stdout or authorized external workspace |
249
+ | JSON/CSV templates | [`knap`](skills/knap/SKILL.md) | Optional Knap CLI with Node >=20; validate, render, preview and stage outside the Vault |
250
+
251
+ The application CLI is not `vault.py` and is never a fallback for a refused
252
+ storage operation. Its official setup currently requires installer 1.12.7+
253
+ and CLI registration in Settings > General. Commands can launch Obsidian;
254
+ launches, plugins, screenshots and developer execution need explicit authority.
255
+ Live Bases queries require consent for the effective result scope.
256
+ Canvas/Bases static checks do not prove application rendering or runtime results.
257
+
258
+ Defuddle can make asynchronous third-party requests even for local HTML.
259
+ It is not an assumed offline parser. Knap rendering does not fetch a source,
260
+ verify facts or authorize a save. Its batch workflow previews all output paths
261
+ and stages into an approved empty directory. `obsidian-markdown` prepares each
262
+ selected note, then hands local saving individually to `obsidian-vault`.
263
+ No new workflow permits session-storage outputs.
264
+ The installer prepares none of these optional tools or application settings.
265
+
266
+ Example requests:
267
+
268
+ ```text
269
+ Explain heading/block links, nested callouts and YAML properties in this text.
270
+ Do not read a Vault or save a note.
271
+ ```
272
+
273
+ ```text
274
+ Using the official Obsidian app CLI, read Notes/Trial.md in my selected Vault.
275
+ Confirm the Vault identity and app-launch permission before running commands.
276
+ ```
277
+
278
+ ```text
279
+ Preview one Markdown note per CSV row with Knap. Use a consented staging
280
+ directory outside my Vault; show output paths before generating or saving.
281
+ ```
282
+
283
+ See the [Markdown syntax](skills/obsidian-markdown/references/syntax.md),
284
+ [app commands](skills/obsidian-cli/references/commands.md),
285
+ [Canvas fields](skills/obsidian-canvas/references/json-canvas.md),
286
+ [Bases expressions](skills/obsidian-bases/references/expressions.md) and
287
+ [Knap examples](skills/knap/references/rendering.md).
288
+
212
289
  ## What consulting-analyst does
213
290
 
214
291
  - Defines the decision-maker, decision question, outcome, scope, and evidence
@@ -259,13 +336,33 @@ handoff without inventing missing evidence.
259
336
 
260
337
  - GitHub Copilot (CLI or a supported IDE agent mode) or Claude Code installed
261
338
  - Node.js 18+ and npm for the installer
339
+ - Optional tools only for their selected workflows: registered Obsidian
340
+ desktop CLI, Defuddle, or Knap (Knap CLI requires Node.js 20+)
262
341
  - Python 3.9+ for tech-writer's structural lint
263
342
  - Python 3.10+ and `uv` for the edit-invariant gate and bundled GiNZA
264
343
  diagnostics such as prose lint,
265
344
  reading-load analysis, outline extraction, and terminology checks; `uv`
266
345
  resolves GiNZA, `ja_ginza`, and spaCy on first use
267
346
 
268
- ### Install from npm
347
+ ### Install Skills from this source checkout
348
+
349
+ All eleven Skills are available in this source checkout.
350
+ From the repository root, replace `/path/to/your-project` with the destination
351
+ project's absolute path and choose one command:
352
+
353
+ ```bash
354
+ node bin/kotonoha.js install --agent copilot --target /path/to/your-project/.github/skills
355
+ node bin/kotonoha.js install --agent claude --target /path/to/your-project/.claude/skills
356
+ ```
357
+
358
+ Both commands select all eleven Skills by default and preserve existing Skill
359
+ directories. To update an existing copy, review local changes first and add
360
+ `--force` only when replacement is intended. To select one Skill, add
361
+ `--skill obsidian-markdown` or another bundled name.
362
+ This copies Skill files only; it does not install Obsidian, Defuddle, Knap,
363
+ Python dependencies or the Bases checker's dependencies.
364
+
365
+ ### Install a published package from npm
269
366
 
270
367
  Install the package, then copy all packaged skills into a skill directory
271
368
  with the included CLI:
@@ -320,17 +417,15 @@ and [Claude Code Skills](https://code.claude.com/docs/en/skills).
320
417
  ### Install all bundled skills together
321
418
 
322
419
  `kotonoha install` installs every packaged skill that is not already present.
323
- The following commands install `consulting-analyst`, `tech-writer`,
324
- `japanese-prose`, `obsidian-vault`, `obsidian-canvas`, `obsidian-bases`, and `presentation-planner`
325
- into `.github/skills/`:
420
+ For an installed published package, the explicit form is:
326
421
 
327
422
  ```bash
328
- npm install --save-dev kotonoha
329
423
  npx kotonoha install --skill all
330
424
  ```
331
425
 
332
426
  `--skill all` is the default, so `npx kotonoha install` has the same behavior.
333
- Confirm that all seven skills were installed (0.4.1 had five):
427
+ The selected package determines which Skills are available; version 0.5.4
428
+ includes all eleven. In the destination project, confirm they were installed:
334
429
 
335
430
  ```bash
336
431
  test -f .github/skills/consulting-analyst/SKILL.md
@@ -339,6 +434,10 @@ test -f .github/skills/japanese-prose/SKILL.md
339
434
  test -f .github/skills/obsidian-vault/SKILL.md
340
435
  test -f .github/skills/obsidian-canvas/SKILL.md
341
436
  test -f .github/skills/obsidian-bases/SKILL.md
437
+ test -f .github/skills/obsidian-markdown/SKILL.md
438
+ test -f .github/skills/obsidian-cli/SKILL.md
439
+ test -f .github/skills/defuddle/SKILL.md
440
+ test -f .github/skills/knap/SKILL.md
342
441
  test -f .github/skills/presentation-planner/SKILL.md
343
442
  ```
344
443
 
@@ -511,6 +610,10 @@ cp -r skills/japanese-prose /path/to/your-repo/.github/skills/japanese-prose
511
610
  cp -r skills/obsidian-vault /path/to/your-repo/.github/skills/obsidian-vault
512
611
  cp -r skills/obsidian-canvas /path/to/your-repo/.github/skills/obsidian-canvas
513
612
  cp -r skills/obsidian-bases /path/to/your-repo/.github/skills/obsidian-bases
613
+ cp -r skills/obsidian-markdown /path/to/your-repo/.github/skills/obsidian-markdown
614
+ cp -r skills/obsidian-cli /path/to/your-repo/.github/skills/obsidian-cli
615
+ cp -r skills/defuddle /path/to/your-repo/.github/skills/defuddle
616
+ cp -r skills/knap /path/to/your-repo/.github/skills/knap
514
617
  cp -r skills/presentation-planner /path/to/your-repo/.github/skills/presentation-planner
515
618
  ```
516
619
 
@@ -558,13 +661,17 @@ skills/presentation-planner/ # storyline, design-spec, and PPTX handoff skill
558
661
  references/ # boundary, scenario/design guidance, customization, handoff contract
559
662
  assets/scenario-templates/ # executive, technical, and data-report narrative scenarios
560
663
  assets/design-templates/ # executive, technical, and data-report YAML designs
561
- skills/obsidian-vault/ # scoped Markdown notes and shared storage API
664
+ skills/obsidian-vault/ # scoped local read/validate/save backend and shared API
562
665
  skills/obsidian-canvas/ # JSON Canvas diagnosis, layouts, and approved saves
563
666
  scripts/ # locked offline CLI and original-fixture tests
564
667
  assets/templates/ # note map, mind map, workflow, comparison
565
668
  skills/obsidian-bases/ # direct Bases configuration and read-only validation
566
669
  scripts/ # stdin checker, private dependency lock, checkout-only tests
567
670
  assets/templates/ # Table, Cards, List, Kanban
671
+ skills/obsidian-markdown/ # note authoring/editing; local I/O uses obsidian-vault
672
+ skills/obsidian-cli/ # explicitly selected official live-app commands
673
+ skills/defuddle/ # optional web/HTML extraction, no direct Vault writes
674
+ skills/knap/ # optional JSON/CSV rendering, preview and external staging
568
675
  .github/skills/tech-writer # symlink to skills/tech-writer (where Copilot CLI reads it)
569
676
  .github/skills/consulting-analyst
570
677
  .github/skills/japanese-prose
@@ -572,6 +679,10 @@ skills/obsidian-bases/ # direct Bases configuration and read-only validati
572
679
  .github/skills/obsidian-vault
573
680
  .github/skills/obsidian-canvas
574
681
  .github/skills/obsidian-bases
682
+ .github/skills/obsidian-markdown
683
+ .github/skills/obsidian-cli
684
+ .github/skills/defuddle
685
+ .github/skills/knap
575
686
  ```
576
687
 
577
688
  ## Known limitations
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kotonoha",
3
- "version": "0.5.2",
4
- "description": "Skills for GitHub Copilot and Claude Code: consulting analysis, technical writing, Japanese prose, Obsidian vaults, Canvas and Bases, and PPTX planning.",
3
+ "version": "0.5.4",
4
+ "description": "Skills for GitHub Copilot and Claude Code: consulting, technical writing, Japanese prose, Obsidian Markdown, Canvas, Bases and CLI, Defuddle, Knap, and PPTX planning.",
5
5
  "license": "MIT",
6
6
  "author": "nahisaho",
7
7
  "repository": {