メインコンテンツへスキップ

AI が書くテンプレート・決定論的ランタイム

AI が生成する Excel レポートのための、決定論的ランタイム。

LLM(Claude、GPT、Gemini、Cursor、Codex、…)が template.xlsx を一度だけ書きます。xl3 は (template.xlsx + raw.xlsx) を純粋関数として result.xlsx に変換します ── 同じ入力なら、毎回同じバイト列を返します。

ワークフローモデル

エンジンはコードに、ワークフローはワークブックに。

開発者はコンバーターを一度だけ構築します。繰り返し使う業務ルール、ソーステーブルのマッピング、レイアウト、出力の形は、チームがアーカイブして引き継げるワークブックテンプレートの中にとどまります。

01

Excel で契約を定義する

__config__、source_table、XTL 式を使って、元データのワークブックをどのようにレポートへ変換するかを記述します。

02

シンプルなアップロード画面を提供する

開発者ではないメンバーが元データの Excel ファイルと承認済みテンプレートを選び、コンバーターを実行します。

03

完成したワークブックを生成する

出力はシート構成、数値書式、スタイル、結合セルをそのまま維持しつつ、値はデータから差し替えられます。

04

運用ルールをアーカイブする

テンプレートは引き継ぎの成果物となり、定期的な Excel 業務の動き方をそのまま持ち運べる 1 つのファイルに収まります。

__config__The template declares the source shape.
template.xlsxworkbook with transformation rules
B2fxB2 source_table = 1
ABC
1keyvaluenotes
2source_sheetRawworksheet to read
3source_table1column names and data rows
__config__

source_table tells the engine where the raw table starts and which columns belong to it.

開発者が選ぶ理由

定期レポートのロジックを、使い捨てスクリプトから卒業させる。

Python scripts や VBA macros、サービス固有のワークフローでも Excel を自動化できますが、業務ルールがコードやアカウント、暗黙知の中に散らばってしまいがちです。

xl3 は再利用可能なエンジンと、ワークブック固有の契約を分離します。開発者は TypeScript の統合部分を保守し、定期的な Excel 業務はそれぞれテンプレートワークブックとして持ち運べます。

運用へのフィット

ただの自動化ではなく、引き継ぎのために設計。

ワークフローを回す人がコードを読む必要はありません。安定したコンバーター、承認済みのテンプレート、そして予測可能な結果ワークブックがあれば十分です。

引き継げるテンプレート

レポートのルールはワークブックファイルに収まり、レビュー・バージョン管理・アーカイブ・次の運用担当への受け渡しがすべて可能です。

template.xlsx

運用担当にやさしい実行体験

ランタイムはブラウザページとして公開できます。元データをアップロードし、テンプレートを選び、ワークブックをダウンロードするだけです。

raw.xlsx → result.xlsx

開発者が握るエンジン

デプロイ・バリデーション・統合はコード側に残しつつ、テンプレート固有のワークフロールールは Excel の中にとどめます。

convert(template, raw)

XTL 0.1 は 70 ADRs154 conformance fixtures を備え、Stage 2 ですべてグリーンです。TypeScript リファレンス実装は @jinyoung4478/xl3 で公開されており、Porter's Guide が契約を明文化しているので、別言語への移植でも同じ挙動を再現できます。

他の選択肢との比較

同じ課題に、違うかたち。

アプローチ得意なことトレードオフ
xl3LLM が著者となる Excel パイプラインの「実行」側。モデルが一度テンプレートを書き、xl3 が毎回決定論的にレンダリングします。アルファ版。メンテナーは 1 名。XTL の機能セットは意図的に小さく、1.0 までは進化が続きます。
Direct LLM → xlsx (spreadsheet SDK function call)ざっくりとした探索的なドラフト作成や、使い切りのチャート生成。レンダリングごとに非決定論的になります。temperature を 0 にしても、スタイル・数値書式・合計が実行のたびにブレます。
Spreadsheet SDKs (SheetJS, ExcelJS, openpyxl)低レベルなワークブック生成。モデルが SDK の API 表面すべてを覚え、レンダリングのたびに再生成する必要があります。「テンプレート」はアプリケーションコードであり、持ち運べるファイルではありません。
Power Query / Office ScriptsMicrosoft 365 のワークフロー、Excel エコシステム内でのデータ整形。テナントに縛られ、ワークフローのルールがワークブックと一緒に持ち運べません。
Template engines (JXLS, xltpl, jsreport xlsx)スプレッドシート風テンプレートからのサーバーサイドレポート生成。LLM が著者となるモデルが登場する以前の設計で、テンプレート DSL も大きく、モデルが出力する前提では作られていません。
Doc-gen SaaS (Plumsail, Conga, Formstack)マネージド型のドキュメントワークフロー、連携、承認、配信。ルールはベンダーのサービスの中にあり、LLM に渡して編集してもらえる持ち運び可能なワークブックにはなりません。
Python / VBA scripts既存スプレッドシートに寄り添った、素早い使い捨て自動化。ルールはコードや担当者 1 人の頭の中にあり、モデルが出力できる成果物にはなりません。

開発者向け API

同じワークフローを、あなたのプロダクトに組み込む。

デモのフローを社内ポータルや CLI、サービスエンドポイントへ昇格させたいときは、このパッケージを使えます。運用担当の体験はファイルベースのまま、デプロイとバリデーションはアプリ側で持てます。

terminal
$npm install @jinyoung4478/xl3
example.ts
import { convert } from '@jinyoung4478/xl3';

const outputs = await convert(templateBuffer, dataBuffer);
// OutputFile[] → formatted .xlsx workbook(s)

Cookbook 01 — 5 分ではじめる · 仕様を読む · Porter's Guide