近年、ChatGPTやClaudeなどの大規模言語モデル(LLM)が急速に普及し、コード補完やバグ修正といった「開発支援AI」が現実のものとなってきました。
しかし、現実のソフトウェア開発では次の2つの壁が依然として存在しています:
- トークン制限(128kを超えるような巨大リポジトリ)
- 断片化(コードが多言語・複数ファイルに散在している)
この問題を解決するために、私は .janicre
という構造記述形式を提案し、Zenodo にて論文として公開しました(DOI取得済み)。
今後の予定.
- とある国際会議に提出予定
.janicreとは何か?

.janicre
は、LLMがソフトウェアの目的や構造、理論的背景を理解できるようにする**中間表現スキーマ(intermediate representation)**です。
「コードという言語」→「構造という言語」→ LLMに通じる“共通言語”
これは、PythonやJavaScript、HTMLなどの異なる言語で構成されたプロジェクトを、1つのJSON-YAMLベースのマニフェストに統合することを目的としています。

.janicre
は、LLM(大規模言語モデル)が**ソフトウェアの「目的」や「仕組み」**を理解しやすくするための「設計図フォーマット」です。普通のコードはPython、JavaScript、HTMLなどバラバラに書かれていて複雑ですが、
.janicre
を使えば、それらを**1つの整理された“マップ”**としてまとめられます。この“マップ”はJSONやYAML形式でできており、プロジェクト全体の目的・構造・入出力・各パーツの役割などをわかりやすく書き出すことができます。
つまり、LLMにとっては「コードそのもの」ではなく「コードの意味や設計」を直接読めるようになるのです。
✅ 特徴
- 目的や入出力(IO Contract)を明示
- モジュールの関係性(component tree)を記述
- 各ユニットの役割・理論背景を記述可能
- コードを含まないため、セキュアに共有可能
例:アーケードゲームの構造
"global_objective": {
"purpose": "Arcade-style browser game with UI and audio",
"technical_category": "Web Frontend - Vue.js / JavaScript",
"use_cases": ["Browser-based canvas game", "HTML5 audio game"]
}
"units": [
{
"name": "startGame",
"type": "method",
"purpose": "Initialize and start game loop",
"detail": {
"input": "-",
"output": "Game running",
"steps": ["Init flags", "Play BGM", "Launch animation"]
}
}
]
なぜLLMに有効なのか?
TransformerベースのLLMは「文脈の意味順序」を重視します。 .janicre
はこの構造化アテンションに最適化されており、
- 🔍 全体→モジュール→関数 というツリー型で意味を伝え
- 🔒 コードリークを防ぎつつ目的や理論を説明
- ⏱️ O(log N) のトークン数で巨大プロジェクトを要約
といった点で、従来の“全文プロンプト”やRAGよりも高効率・高精度な補助が期待できます。
論文情報と今後の展望
- 論文: .janicre: A Minimal Structural Specification Language for LLM-Aware Software Systems
- DOI:
10.5281/zenodo.10934040
- 著者:Tomoya Okazaki(単著)
- ライセンス:CC BY-SA 4.0(継承義務あり)
今後は、
- arXivへのアップロード
- janicre-cli(自動マニフェスト生成ツール)の公開
などを予定しています。
ご興味のある方へ
.janicre
スキーマやCLI生成ツールの再利用・共同研究・商用利用については、 ぜひ以下メールまでご連絡ください。
→ 本構造に基づいた研究やプロジェクトコラボは積極的に歓迎しています!