kongyo記法 — VS Code 拡張
事前の言い訳を、構文で落とす。
書いた瞬間に判定不能な文を却下し、確定した予測を書き換え不能にする。事後に要求するのは記号一つ(○ × -)の記入だけで、外れた理由の説明も、更新も、後悔も要求しない。事後の解釈はこの拡張の管轄外である。
何をするか
| 層 |
拘束 |
| 打鍵ごと |
七つの必須項の欠落、相対表現の期日、語で書かれた確率、選言、連言、禁止語彙、自判、態度だけの処置、どの項にも属さない語を、その場で却下する |
| 鋳造ウィザード |
一項ずつ訊く。各項は一文字打つたびに検査され、通らない値では次へ進めない |
| 確定 |
却下が一件でも残っていれば確定できない。確定すると [YYYY-MM-DD] の刻印と → が付く |
| 保存後 |
刻印のある行は本文を書き換えられない。編集は即座に差し戻される。許されるのは末尾記号の置換だけ |
| 解除 |
拘束は外せる。外すと台帳に記録が一行増える。罰は無い。回数が残るだけである |
| 判定待ち |
エクスプローラの「kongyo 判定待ち」に期日到来が並ぶ。バッジが件数、その場で ○ × - を押せる。起動時に期日到来を一度だけ知らせる |
| 集計 |
× の絶対数、- の絶対数、[易] を除いたブライアスコア。○ の数は集計しない |
○ の数を出さないのは、集計した瞬間に当たりやすい予測ばかりが選抜されるからで、この拡張の内部にも「当たりの件数」を返す関数は存在しない。
記法
必須項
判定文は七項をすべて持つ。一つでも空なら、それは予測ではない。
| 記号 |
項 |
内容 |
D |
期日 |
判定が返る日時。相対表現不可 |
S |
対象 |
何について言うか。集計の水準を明示(個体/集団/件数) |
O |
観測量 |
判定時に読む値。操作的定義であること |
C |
条件 |
O が満たすべき閾値または状態 |
J |
判定者 |
O を読む主体または手続き |
p |
確率 |
0.00–1.00 の数値 |
R |
処置 |
外れたときに何を書き換えるか |
五型
| 型 |
名 |
構文 |
必須項 |
P1 |
期日型 |
D までに、S の O が C になる |
D S O C J p R |
P2 |
事象型 |
T が起きたとき、S の O が C になる |
T D S O C J p R |
P3 |
継続型 |
D まで、S の O は C を保つ |
D S O C J p R |
P4 |
比較型 |
D 時点で、S₁ の O は S₂ より大/小 |
D S₁ S₂ O 比較 J p R |
P5 |
不発型 |
D までに、E は起きない |
D E J p R |
P4 と P5 は最も安い。 閾値の議論が要らず、J の裁量が入りにくい。記法に不慣れなうちは、この二型だけで運用してよい。
選言は文法に存在しない。 「A または B になる」は非文であり、二行に分割して各々に p を振る。分割の修正を適用すると、両方の行の p は空になる。前の確率を持ち越すのは、分割していないのと同じだからである。
一行の形
[2026-08-04] P1 p=0.35 D=2026-09-30 S=PR#412 O=mergedフラグ C=true J=GitHub API R=外れたら、レビュー所要日数の見積もりを+2日側へ改訂 →
- 先頭の
[YYYY-MM-DD] は記述日の刻印。台帳に確定した印であり、保存後は封になる
[易] は p ≥ 0.90 / p ≤ 0.10 の標示。付け忘れても集計からは除外される(標示の有無で抜け道を作らない)
- 末尾の
→ を、判定日に ○ × -(判定不能)へ置換する。追記ではなく置換なのはここだけ
# で始まる行はコメント。拘束の解除などの記録もここに残る
全角で書いても読む(D=2026-09-30 は D=2026-09-30 と同じ)。ただし正規形は半角で、確定時に半角へ揃う。
静的検査
| 規則 |
内容 |
不合格時 |
| C1 前後性 |
記述時刻 < D。D は絶対日付のみ |
却下 |
| C2 外部判定 |
J が自分なら、裁量の入らない判定手順を J 欄に固定する |
却下 |
| C3 反証形 |
「この予測が外れた世界」を一文で書けること。C は数値・比較・状態のいずれかを含む |
却下 |
| C4 単一観測 |
O はただ一つ |
分割して複数行に |
| C5 数値確率 |
p は数値のみ |
却下 |
| C6 例外閉包 |
「ただし」節は各々に判定可能な観測を持つ。事後追加は不可 |
却下 |
| C7 停止条件 |
R が具体的な書き換え対象と方向を指す |
却下 |
| C8 難度標示 |
p ≥ 0.90 / p ≤ 0.10 は [易] |
集計の主成分から除外 |
C3 は機械化されている。拡張は各行から「外れた世界」の一文を生成し、生成できない行を却下する。生成された文はホバーで読める。
塞がる八つの経路
| 言い訳の型 |
例 |
閉じる規則 |
| 幅寄せ |
「たぶん通る」 |
C5 |
| 両張り |
「AかBになる」 |
文法(選言なし) |
| 無期限 |
「いずれそうなる」 |
必須項 D |
| 逃げ道 |
「ただし状況が変わらなければ」 |
C6 |
| 自判 |
「うまくいったかは自分が判断する」 |
C2 |
| 定義ずらし |
「成功する」 |
C4 + 操作的定義 |
| 本質化 |
「本質的にそういう構造だ」 |
C3・C7 |
| 易問偏重 |
当たる予測ばかり書く |
C8 |
塞がらないのは事後の語りだけで、それは設計上、放置する。
使い方
発火する場面
判定が数日〜数月で返る場面(送信前・開始前・会う前)。
Ctrl+Alt+K(macOS は Cmd+Alt+K)で鋳造する。 気分の一文を選択したまま押すと、それを種にウィザードが開く。一項ずつ訊かれ、通らない値では次へ進めない
- 書けなければ
Ctrl+Alt+I で未形式化在庫へ落とす。 原文のまま残る。在庫を減らすことは目標ではない
- 週一で末尾記号を置換する。 期日が来た行には CodeLens で
○ × - が並ぶ。エクスプローラの「kongyo 判定待ち」からも、その場で押せる。理由は書かない
- 月一で集計を見る。 ステータスバーの
×n -n B=0.xxx をクリックする。集計には期日到来の一覧も並ぶ
初めてなら、コマンドパレットの「はじめに: ウォークスルーを開く」から kongyo記法 を選ぶと、五歩で一巡できる。
直接書く
.kongyo ファイル、または Markdown 中の ```kongyo フェンス(```kgy も可)の中で、P1 と打って補完を受ける。七項の骨格が入り、欠けている項は行末に ⟨欠落 D・R⟩ と出る。型と項のあいだに置いた語はどの項にも属さず、確定でも整形でも保存されないため、その場で却下される(G-STRAY)。却下が消えたら CodeLens の「確定して台帳へ」を押す(Ctrl+Alt+Enter)。
アウトライン(パンくず)には各行が 記号 型 対象 の形で並ぶ。アウトラインがそのまま判定待ちの一覧になる。
確定と拘束
確定は刻印を打ち、保存した時点で封になる。以後、その行の本文は書き換えられない。編集しようとすると差し戻され、通知に「拘束を一時解除する」が出る。解除すると台帳に一行残る。
# kongyo-note at=2026-08-04T14:22 kind=解除 ref="[2026-08-01] P1 p=0.35 …" detail="行=12"
末尾記号の置換は常に許される。判定済みの記号をさらに書き換えるのも許すが、判定書換 として記録される。破ったことは罰しない。破った回数を数えるだけである。
コマンド
| コマンド |
既定のキー |
内容 |
kongyo.cast |
Ctrl+Alt+K |
予測を鋳造する(ウィザード) |
kongyo.commitLine |
Ctrl+Alt+Enter |
現在行を確定して台帳へ追記 |
kongyo.toInventory |
Ctrl+Alt+I |
未形式化在庫へ落とす |
kongyo.judge |
|
判定日が来た予測を、無くなるまで続けて判定する |
kongyo.tally |
|
集計を表示する |
kongyo.openLedger |
|
台帳を開く |
kongyo.openInventory |
|
未形式化在庫を開く |
kongyo.unlockLine |
|
この行の拘束を一時解除する |
kongyo.showRules |
|
記法の規則を表示する |
「kongyo 判定待ち」ビュー(エクスプローラ)は、台帳に未判定の行があるワークスペースにだけ現れる。行を選べば台帳の該当行へ跳び、期日到来の行では ○ × - がインラインに並ぶ。
設定
| 設定 |
既定 |
内容 |
kongyo.ledger.path |
kongyo/予測台帳.kongyo |
台帳の位置 |
kongyo.inventory.path |
kongyo/未形式化在庫.md |
在庫の位置 |
kongyo.ledger.guard |
revert |
確定行への編集の扱い(revert / warn / off) |
kongyo.diagnostics.delay |
60 |
打鍵から検査までの遅延(ms)。0 で完全にリアルタイム |
kongyo.markdown.enable |
true |
Markdown の kongyo フェンスも検査する |
kongyo.vocabulary.enforcement |
oc |
禁止語彙の適用範囲(oc / all) |
kongyo.vocabulary.additional |
[] |
禁止語彙の追加 |
kongyo.checks.c2.* |
[] |
自判/裁量/判定手順とみなす語の追加 |
kongyo.checks.c7.rewriteVerbs |
[] |
書き換え動詞の追加 |
kongyo.checks.c7.requireRewriteVerb |
true |
R に書き換え動詞を必須にする |
kongyo.checks.c3.requireDefiniteCondition |
true |
C に閾値・状態を必須にする |
kongyo.checks.c8.autoInsertEasyMarker |
true |
確定時に [易] を自動で付す |
kongyo.decorations.enable |
true |
禁止語彙に打ち消し線 |
kongyo.inlayHints.enable |
true |
行末に欠落項 |
kongyo.codeLens.enable |
true |
確定・判定の CodeLens |
kongyo.statusBar.enable |
true |
ステータスバーの集計 |
kongyo.notifications.due |
true |
起動時に期日到来を通知 |
既定の語彙は設定から足せるが、消せない。消せる拘束は拘束ではない。
健全性と不完全性
- 健全:この記法を通った文は判定可能である
- 不完全:判定可能な思考のすべてがこの記法を通るわけではない
通らなかったものは捨てず、未形式化在庫 に原文のまま落とす。在庫の増加率は、自分の中で終わらない文がどれだけ走っているかの実測値になる。集計画面に「直近30日」として出る。
この拡張が縛るのは事前だけである。外れた予測の前で何を思うかは、拘束の外にある。
開発
npm install
npm run build # esbuild で dist/extension.js(CJS)へ束ねる
npm run watch # 変更を監視
npm run gate # 全ゲート
npm run package # .vsix を作る
F5 で拡張ホストが起動する。
構成
| 層 |
場所 |
依存 |
| 記法そのもの |
src/core/ |
VS Code に依存しない。単体テストはここだけを見る |
| エディタとの接続 |
src/extension/ |
vscode |
| 入口 |
src/extension.ts |
|
型は TypeScript 7 の最大強度で検査する(strict に加えて noUncheckedIndexedAccess exactOptionalPropertyTypes isolatedDeclarations erasableSyntaxOnly verbatimModuleSyntax ほか)。ゲートは以下を順に通す。
| 段 |
見るもの |
format:check |
Prettier |
lint:strict |
oxlint(警告も落とす) |
typecheck:ci |
型(キャッシュ無し、依存の .d.ts も掃く) |
typecheck:test:ci |
テスト・スクリプトの型(同上) |
check:decl |
isolatedDeclarations。輸出の型が当該ファイル単独で確定するか |
lint:types |
型を使う lint(no-floating-promises ほか) |
test |
単体テスト |
probe |
束ねた dist/extension.js を Node が実際に読み、activate が登録し切るか。 tsc が通ることは、束ねた JS が動くことを意味しない |
CI とリリース
- CI(
.github/workflows/ci.yml):push / PR ごとに上の全ゲートを走らせ、.vsix をパッケージして成果物に残す
- リリース(
.github/workflows/release.yml):vX.Y.Z のタグを押すと、タグと package.json の版の一致を検めてから全ゲートを通し、CHANGELOG の当該版の節をノートとして GitHub Release に .vsix を添付する
git tag v0.2.0 && git push origin v0.2.0 # リリースの手順はこれだけ
ライセンス
MIT