コンテンツ制作 · mattpocock/skills

writing-shape

執筆(exploit):素材を段落ごとに記事へと成形する。

L2 ローカル · 作業ディレクトリ限定V1 コミット固定ファイル書き込みDual-pass Audit
Author mattpocockGitHub mattpocock/skills ↗Stars 257659License MIT(GitHub API spdx MIT;仓库根 LICENSE: Copyright (c) 2026 Matt Pocock)Commit 3cca18b368
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

exploit に位置づけられ、素材ファイルは読み取り専用:ユーザーから提供された素材の山をインプット pile として扱い、通読した上で構成をコミットし、段落ごとに採掘する。素材ファイル自体の編集は明示的に禁止。

skills/in-progress/writing-shape/SKILL.md
This is **exploit**: the exploring is done, the pile is fixed: commit to a structure and mine the pile to fill it. Do not edit the raw material file: it is read-only to this skill.
writing-beats と同じく exploit に属するが形態が異なる:beats がビートに沿った進行の分岐をたどるのに対し、shape は段落単位の段階的な具現化と明示的なフォーマットの議論を進める。

メインループ:pile を通読 → ユーザーと prerequisites を設定 → 2〜3 個の候補 opening(それぞれ異なる論点を提示)からユーザーに選択または掛け合わせを強制 → 段落ごとに肉付け → 1 段落ごとにディスクへ書き出し → ユーザーが停止するまでループ。

skills/in-progress/writing-shape/SKILL.md
**Draft 2–3 candidate openings.** Each opening should imply a different thesis or angle for the article. Show all of them. Force the user to pick or compose a hybrid. The chosen opening defines what the rest of the article must do.
ステップ 4:「ask "given this opening, what does the reader need to hear next?" Pull material from the pile to answer.」——段落ごとの展開は「読者が次に何を聞く必要があるか」によって駆動される。

各段落の確定前にフォーマットを議論:段落/リスト/表/callout/引用/コードブロックの選択は自覚的かつ論理的に説明可能でなければならず、明確なトレードオフの指針を提示する。

skills/in-progress/writing-shape/SKILL.md
Argue about the form the next block takes: a paragraph, a list, a table, a callout, a quote, a code block. Each format choice should be deliberate and defensible.
トレードオフ指針の実例:「Prose vs. list. Prose carries argument; lists carry parallel items. If items aren't truly parallel, prose is better.」、「Table vs. repeated structure. If the same shape repeats 3+ times with the same fields, a table.」

grounding 制約は beats と共通:各ブロックはすでに grounding 済みの概念のみを使用可能。「読者が次に何を聞く必要があるか」の答えに必要な前提が欠けている場合は、まず前提ブロックを補う。

skills/in-progress/writing-shape/SKILL.md
Every **concept** has to be **grounded** before a block can lean on it: the reader either walked in knowing it or met it in an earlier block. A block that reaches for an ungrounded concept loses the reader.
「When you ask "what does the reader need to hear next?", an ungrounded concept the next move needs is itself the answer: ground it first…This is the gap-naming of Pulling from the pile one level up.」

リバース・grilling の対話感:反転した grilling セッション(「何に注目しているか」から「記事が何を論証し、どういう順序で読ませるか」へ転換)。甘い接続表現を許さず反論し、役割を果たしていない段落を削ぎ落とす。

skills/in-progress/writing-shape/SKILL.md
This is a grilling session inverted. In ideation, the question was "what are you actually noticing?" Here it's "what is this article actually arguing, and in what order does the reader need to hear it?" Push back. Refuse to let weak transitions slide. If a paragraph doesn't earn its place, cut it.
反論フレーズ集の例:「What does this paragraph do for the reader that the previous one didn't?」、「The opening promised X. We've drifted to Y. Either re-thread it or change the opening.」

素材の不足を明示的に指摘(gap-naming):記事に必要な要素が pile に不足している場合、無理に書いたりスキップしたりせず、ユーザーに補完を直接求める。

skills/in-progress/writing-shape/SKILL.md
If the pile lacks something the article needs, name the gap explicitly: "We need an example here and the pile doesn't have one. Give me one now or we cut this section."
明示的なスコープ外(Out of scope):pile 外からの新たな素材の発掘、素材ファイルの変更、公開/レイアウト調整/ユーザーが求めていない frontmatter の追加は行わない。

2コア機能

01あらゆる形式の素材 pile(断片リスト/非構造化散文/文字起こし)を通読し、全体像を把握・評価する
022〜3 個の候補 opening の提示と選択(または掛け合わせ)の強制により、冒頭で記事全体の責務を確定する
03実行中の grounding リストに基づいてブロックごとの論理的到達性を管理する
04フォーマットの議論:散文/リスト/callout/表/引用/コードブロックの明示的な取捨選択
05不足素材の明示的指摘(gap-naming)と、採掘場のような pile からの素材再構成
06段落ごとの即時ディスク書き出しと、上書き防止のための書き込み前ディスク再読み込み

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
作業ディレクトリを限定
管理者向け
操作ログを保持
判定根拠(ファイルパスと抜粋)
  • 本地工作目录: ファイル読み書きと成果物出力:ユーザー指定の独立した記事ファイル:ブロック単位での追記、ユーザーの要求に応じた特定段落のインプレース書き換え。素材ファイルは明示的に読み取り専用。
監査ノート: ローカルファイル操作のみ:素材ファイルの読み込み(読み取り専用、編集は明示的に禁止)、ユーザー指定の独立した記事ファイルへの書き込み(ブロック単位の追記+ユーザー要求時のインプレース段落変更)。スクリプト実行、外部ネットワーク送信、認証情報の読み取り、削除コマンドはなし。留意点:書き込みパスはユーザー指定(「ask once and remember the path」)。記事ファイルと素材ファイルは分離されており、素材が汚染されることはない。

5二重目の独立検証

  • [ok] 素材只读声明 — 'Do not edit the raw material file: it is read-only to this skill.' 原文在;Out of scope 段重复 'Editing the raw material file'。
  • [ok] 候选 opening 强制选择 + 杂交选项 — 'Force the user to pick or compose a hybrid. The chosen opening defines what the rest of the article must do.' 原文在。
  • [ok] 逐段生长循环 + 格式辩论 — 'Grow paragraph by paragraph' 步骤与 'Argue about the form the next block takes…Each format choice should be deliberate and defensible.' 均在;Format arguments 五组取舍原文在。
  • [ok] grounding 机制 — Grounding 节 + 'Keep a running list of what's grounded' 原文在;与 beats 概念一致。
  • [ok] 写前重读磁盘 / 就地改段不盲覆盖 — 'Re-read the file from disk before every write…Never overwrite blindly. If the user wants a paragraph rewritten, edit that specific paragraph in place' 原文在。
  • [ok] 文件写入范围 — 仅用户指定文章文件;素材文件只读;无删除/移动/其它路径指令。
  • [ok] 外部依赖为空 — token 扫描零命中;grilling 仅为概念引用('grilling session inverted'),无 Skill-tool 调用指令。
  • [ok] 元数据 + beta 状态 — GitHub API MIT/257659/2026-09-04;本地 HEAD == 3cca18b;in-progress README 列为 beta。

6結論

  • 冒頭で記事全体の責務を確定:候補 opening の強制選択により、執筆途中で論点が拡散するのを防止。
  • フォーマット決定の明示化:各ブロックで散文/リスト/表/callout/引用/コードのどれを採用するか論理的に説明可能にし、無意識な散文化を排除。
  • gap-naming:pile の不足分は無理に書かずスキップもせず明確に要求するため、素材不足によって記事の質が妥協されない。
  • 素材ファイルの読み取り専用化+書き込み前のディスク再読み込みにより、ユーザー資産の破壊を二重に防止。
  • 編集者としてのスタンス:反論の提示、不要な段落の削除、冒頭の約束からのブレの検知を行い、単なるタイピストではなくシニアエディターのように振る舞う。
  • 最適な用途: 手元にある素材の山(断片メモの収集結果、インタビュー、メモなど)を一本の首尾一貫した記事に仕上げたい執筆者に最適。特に、モデルを編集パートナーとして捉え、段落ごとにフォーマットや論証を議論したい人に向いている。writing-fragments と連結することで一連のパイプラインを構成可能。
    不向きな用途: 素材がまだ探索段階にあるケース(まずは explore を推奨);一括での高速生成や厳密なアウトライン主導の執筆を求めるユーザー;素材の不足をユーザー自身が補えない状況;プラットフォーム向けレイアウトや frontmatter 出力を必要とする公開フロー(明示的にスコープ外)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload writing-shape.tar.gz
    sha256: f8d01b68a6c6dcdf…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 3cca18b368.