定義が唯一の正
画面は PageDefinition に集約される。YAML / JSON / API のどれで持ってきても、内部では同じ定義に収束する。
一覧・並べ替え・行の編集削除・入力フォーム・必須チェックまで、これで全部。Dart は1行も書かない。
# yaml-language-server: $schema=https://github.com/ASIL-E-Hatake/hatake/raw/main/spec/hatake-page.schema.json
# hatake — MasterPage example: 部門マスタ (Department master)
dsl_version: "1.0"
page:
type: master
id: dept_master
title: 部門マスタ
repository: deptRepository
key: code
table:
rowActions: [edit, delete]
columns:
- { field: code, label: 部門コード, sortable: true }
- { field: name, label: 部門名 }
form:
sections:
- title: 基本情報
fields:
- { field: code, label: 部門コード, type: text, required: true }
- { field: name, label: 部門名, type: text, required: true }
actions:
- { id: create, type: create, label: 新規登録 }書いたら推測で終わらせずに検証する。知らないキーは黙って捨てられるので、「書いた気になって効いていない」を防ぐのはこれ。
npx hatake validate dept_master.yaml人と AI が書くのは定義だけ。PageDefinition が唯一の正で、Renderer は業務を知らない。 データの流れと層の責務も 図解 にある。
上の YAML を貼って、その場で画面にできる場がある。プレイグラウンド。
sortble → sortable の間違い?)?yaml= に載る)ので、そのままレビューに貼れるブラウザだけで動く(Flutter Web)。インストールも登録も要らない。
| やりたいこと | 行き先 |
|---|---|
| 「こうしたい」から書き方を引く | 機能別の書き方 |
| 全体像を絵で見る | 図解 |
| 動いている画面を触る | デモ |
| 自分で書いた定義を試す | プレイグラウンド |
| 自分の AI に hatake を書かせる | AI に書かせる |
| 導入手順・仕組み・写経用サンプル | GitHub のドキュメント |
業務ロジック、ワークフローエンジン、DB、認証、認可、バックエンド API、ORM。持たないと決めているので、そこは普通に自分のコードで書く。境界は 仕組みと責務分担 にある。