#author("2026-02-05T01:31:43+09:00","","")
#author("2026-02-05T01:31:58+09:00","","")
- plain text もブロックに分けてlevelを持たせるか?
- ndjson はタブの数

* tir outline 拡張仕様 [#y79ea362]

- tir仕様に階層構造だけ追加した仕様
- 先頭行file_attr.version=tir-outline/0.1
- plain block line = 先頭の\tの数nでoutlineレベルnを表す
- grid_attr.outline_level:nでoutlineレベルnを表す(新メンバー名)
- tir outlineはJSONかNDJSONなので空行はない
- 空行をどう扱うかはパーサー次第
- 不正なジャンプ検出(level 0 → 3)
-- これは認める既存wikiがあるので不正としない
-- plain text + custom parser,一部の wiki, プログラム生成アウトライン

tir editor : tirenvi が一段落したら tir-outlineを作ってtirenviをtir-outlineに対応させる

* outline format [#ca0ff051]

パーサーはほぼhtmlをサポートする。ということは、htmlパーサーを作って置けば読込みは出来るということか?戻すことは難しい?
 

ブロック要素だけパースできれば双方向の変換が可能。

- md <-> tir-outline
- pukiwiki <-> tir-outline
- wikimedia <-> tir-outline
- [[Google:org-mode]] <-> tir-outline
- [[Google:Asciidoc]] <-> tir-outline
- [[Google:eStructuredText]] (rst) <-> tir-outline
- [[Google:OPML]] <-> tir-outline
- [[Google:Org-roam]] export系 <-> tir-outline
- [[Google:pandoc]]
- 他にメジャーなものはありますか
- md <-> pukiwiki変換でtir-outlineは役にたたない
- md <-> pukiwiki変換を作る必要がある。あるいは中間表現。
- [[Lightweight Markup比較:https://hyperpolyglot.org/lightweight-markup]]
- [[Google:軽量マークアップ言語]]
- [[Google:Lightweight Markup]]

* ニーズ分析 [#e2c3b852]

- tir-outline + tirenvi のニーズはありますか
- 個人的には表形式を含めたアイデアプロセッサが欲しい
- しかもvimで動くもの
- 現状これはない?
- 保存する場合は専用ファイルになる。(xxx.tiro ?)
- tirenviを使えばmd(gfm)ファイルを開いてアウトライン+表の編集ができる
- もちろん箇条書き、強調表示などはそのまま"--"とかタイプする必要がある
- wenvi + tirenvi と組み合わせるとブラウザのeditabelテキストがシームレスにnvimで編集できる
- こんな感じですが、tir -> tir-outline に拡張することでニーズはどの程度あるのでしょう?

* LLM 対応 [#t2c4cf89]

- 構造化された文章は自然言語より機械言語JSONで渡した方が良い
- メンバー名などはなるべく省略しない形がよい(例:lvl -> level)
- つまりChatGPTと会話をする時は、
-- wenvi -> tirenvi+outline -> tir-outline unparse -> JSON | NDJSON(曖昧になるからダメ) -> chatGPT
- という流れが最強ですか?
- 他にChatGPTを意識したtir-outlineを作るに当たって注意することはありますか?

- LLMにお願いすることは地の文章。
- LLMにお願いすること以外はJSON
- 例えば、現状説明・目的の整理・要求仕様はJSONという書き分けが良いのですか?
- そうだとすると今まではLLMに自然言語で書いてLLMが苦労して構造を解読していたもの -> tirenvi+tir-outline が構造定義 -> LLM となります。
- tirenvi+tir-outline が人間とLLMの仲介者として働きより精度の高い利用が可能となるわけですか?

 実務的なおすすめルール(超シンプル)
 最後に、使うときのルールを1つだけ。
 「迷ったら JSON に倒す」
 事実・列挙・構造 → JSON
 依頼・評価・方針 → 日本語
 この分離が守れる限り、
 tir-outline は LLMとの会話精度を確実に引き上げます。

* tirenvi + tir-outline + LLM の未来 [#o186bb1d]

未来図を描いてみました

- WEB版chatGPTを開いて&#8984;Eを押すとnvim+tirenviが起動する
- nvimで質問・依頼事項を書き、段落を分けてoutlineで構造を書く
- nvimのバッファを閉じるとtir-LLMパーサーが走る
- tir-LLMパーサーはoutlineがない(level=0だけ)の段落は地の文にする
- tir-LLMパーサーはoutlineの段落はJSONにする
- tir-LLMパーサーはそれらをまとめてLLMに送る
- LLMは答えを、地の文+JSONで返す
- tirenviがそれを読み取ってoutlineで表示する(ここは実装上工夫が必要)

こんなことが実現可能でしょうか。もっと付け足すことはありますか?

現状ChatGPTの回答はWEB上に流れてきます。長文になるとスクロールして終了の合図は受け取りにくいです。そしてwenvi側で&#8984;a,cで回答を取り込もうとしても最初の方は切れています。しばらく待たないと全文が回復しません。また一つのちゃとが長くなると、今回の回答部分だけ切り出す必要があります。

ChatGPTの回答を取り込むにはいろいろ困難があります。解決策はありますか?APIですか?

* LLM API [#vb2e2508]
- APIは有料なんですよね、OSS開発のためだけに有料プランを選ぶのは少し敷居が高いです。
- 他に同じようなこと(JSONなどで構造を渡す)をしている製品はないのですか?
- 似たような製品がなくて、だれかスポンサーになってAPIを無料で使わせてくれたら開発するかもしれません。

- APIを無料で使う方法:ローカルLLM
-- llama.cpp
-- Ollama
-- LM Studio
-- Mistral / Qwen 系
- 構造化プロンプト製品(既存)
-- LangChain
-- LlamaIndex
-- OpenAI function calling
-- JSON Schema prompting

とりあえずは tirenvi -> tir-outline -> JSON+地の文 -> LLM の流れを作る。
LLMからの回答は自分でコピペしてnvimに貼り付ける。私の開発はここまでですね。

その先のAPI利用するところは私個人の需要が低いのでずっと先になるでしょう。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS