ordito-update-block
Ordito の 書き込みスキル(更新スキル, 仕様 §7.1)。IR ストアの1ブロックを差分更新する(§3.4)。
いつ使うか / 使わないか
- 使う: ユーザーが「この知見を記載する」ことに同意した後、該当ブロックの内容を IR に反映するとき。
- 使わない: HTML を作り直したいとき(それは
ordito-generate)。未反映の検出(ordito-detect-stale)。 - このスキルは 確認しない。「記載しますか?」の y/n は呼び出すAIエージェントがユーザーに尋ね、yes のときだけ本スキルを呼ぶ。
- このスキルは 生成しない(§5.4: 書き込みは生成を引き起こさない)。
入力(JSON; stdin か --input <file>)
{ "doc": "guides/quickstart", "block_id": "b2", "patch": { "text": "新しい本文…" }, "ir_dir": "samples/ir" }
doc(必須): ドキュメント id。block_id(必須): 更新するブロック id(tabs 内も可)。patch(必須): ブロックにマージする内容フィールド(トップレベルを上書き。配列は丸ごと置換)。id・typeは変更不可(ブロックの同一性・種別は不変条件。指定するとエラー)。patch 適用後に語彙スキーマ検証を行い、 不適合なら書き込まずエラーにする(不正な IR をストアに残さない)。ir_dir(任意): IR ストアの場所。省略時はordito.config.jsonのirDir(無ければsamples/ir)で解決。dry_run(任意, bool): true なら書き込まず before/after プレビューだけ返す。二段確認の一段目で「こう変わります」を 提示するのに使える(確定するには dry_run なしで再実行)。
出力(JSON)
{ ok, doc, block_id, changed, updated_at, before, after, generated:false, note }
changed:false のときは内容に変化が無く、書き込みも updated_at 更新もしていない(冪等)。
実行
echo '{"doc":"guides/quickstart","block_id":"b2","patch":{"text":"…"}}' \
| node "${CLAUDE_SKILL_DIR}/update-block.js"
更新後は meta.updated_at が進むので、ordito-detect-stale が当該ページを「未反映」として拾えるようになる。