mcpField
M
makedsl

makedsl

github.com/qfeius開発0296 回インストール3 日前に更新
リポジトリ

makedsl について

makedslは、Makeプラットフォーム向けのYAML DSLを設計・生成するエージェントスキルです。App、エンティティ、フィールド、リレーションのモデリングを扱い、Schema設計と実行時の読み込みやデータ操作を区別します。

主な機能

  1. 01Appとエンティティのモデリング
  2. 02フィールドとリレーションの定義
  3. 03Make DSLのYAML生成
  4. 04Meta APIとData APIの参照指針

活用シーン

  1. 01Make AppのSchema設計
  2. 02エンティティと関連のモデリング
  3. 03makecli提出用DSLの準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/qfeius/make-platform-skills --skill makedsl

インストール後、Claude Code で/makedslを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
DataAPIDesign.md
DepartmentFieldDesign.md
EntityDataFilterUsage.md
FieldDesign.md
FileFieldDesign.md
MetaAPIDesign.md
RelationDesign.md
UserFieldDesign.md

詳細

makedsl の使い方

make platform または make 开发平台向けの DSL を設計または生成する場合に、このスキルを使用します。 make platform は Kubernetes と Ansible から設計の考え方を取り入れており、ビジネスモデルを DSL で定義し、 その後、DataAPI を通じてデータに対する CRUD-LS を実行します。 生成した DSL(yaml)ファイルは、makecli を使用して make platform(make 开发者平台)に送信してください。

CanvasTable の表示、列、レンダラー、セル編集には canvas-table-integration を使用してください。スキーマモデリングのセマンティクスは makedsl の担当です。

ランタイムの境界

方針を確認した後、アプリの承認入口、承認の新規作成フィールド、ステータス表示を生成するには、make-app-approval を使用してください。bpmDefinitionKey はランタイムの Meta から返されます。qfei_process_instance_status と qfei_is_locked はプラットフォームのシステムフィールドです。DSL で同名のビジネスフィールドを新規作成したり、「保存済み」のために新しい承認ステータスを追加したりしないでください。既存のビジネスライフサイクルフィールドはそのまま維持してください。

  • DSL YAML は設計およびデプロイ時の入力であり、公開済みの App Service に必須のランタイムファイルではありません。
  • /dsl/00-app.yaml などのコンテナーパスをハードコードする Service 起動ロジックを生成しないでください。
  • 公開済みの Service は、Make のリモートスキーマ API または環境から提供される設定を読み込む必要があります。ローカルの DSL ファイルは、開発、フィクスチャ、テスト、makecli apply で使用できますが、k8s の起動に必要な唯一のソースにしてはいけません。
  • Service がオフライン開発用のローカルスキーマをフォールバックとして必要とする場合は、その用途を明示し、リモートスキーマのパスとフォールバックのパスの両方をテストしてください。
  • フロントエンドのビルドまたは公開済み App のランタイムでリモートスキーマが必要な場合は、ローカルの DSL ファイルを読み込むのではなく、@references/MetaAPIDesign.md にある Meta Service API を使用してください。

参照マップ

トピック参照先
Make Meta API のスキーマアクセスreferences/MetaAPIDesign.md
Make Data API とリレーションのペイロードreferences/DataAPIDesign.md
リレーションの宣言references/RelationDesign.md
基本フィールド DSL と LookupFieldreferences/FieldDesign.md
ユーザーフィールドの設計references/UserFieldDesign.md
部門フィールドの設計references/DepartmentFieldDesign.md
ファイルフィールドの設計references/FileFieldDesign.md
Entity データフィルターの使用方法references/EntityDataFilterUsage.md

DSL 定義

APP

論理的には、データベースの 1 つのデータベースに対応します。

APP DSL
key: <KEY> # 创建后不可更新, 只允许英文字符、数字、下划线, 长度 2-20
name: String # 必填, 用户可见的展示名称, 允许中英文数字下划线, 长度 2-20
type: Make.App
meta:
  version: SemanticVersion
properties:
  timezone: String? # 可选,如 "Asia/Shanghai"、"UTC";若未指定,使用系统默认"Asia/Shanghai"
  description: String?
制約条件
  • すべての App の key は、作成後に更新できず、1 つの org 内で一意です。
  • すべての App の key は、アンダースコア(_)で始めることはできません。アンダースコアで始まる名前は予約キーワードです。
  • すべての App の name は、ユーザーに表示される名前です。
App の例
key: MatrixProject
name: 烽火项目管理
type: Make.App
meta:
  version: 1.0.0
properties:
  description: 烽火项目管理演示项目

Entity

論理的には、データベースの table に対応するテーブルです。基盤の実装では、${App}.${Entity} が TiDB の Table として扱われます。

Entity DSL
key: <KEY> # 仅英文字符、数字、下划线, 长度 2-20, 创建后不可更新
name: String # 必填, 用户可见的展示名称, 允许中英文数字下划线, 长度 2-20
type: Make.Entity
appKey: <Make.App>
meta:
  version: SemanticVersion
properties:
  fields:
    - Make.Field
    - Make.Field
    - ...
制約条件
  • すべての Entity の key は、作成後に更新できず、1 つの App 内で一意です。
  • すべての Entity の key は、アンダースコア(_)で始めることはできません。アンダースコアで始まる名前は予約キーワードです。
  • すべての Entity の name は、ユーザーに表示される名前です。
Entity の例
プロジェクト Entity
key: project
name: 项目
type: Make.Entity
appKey: <Make.App>
meta:
  version: 1.0.0
properties:
  fields:
    - key: project_name
      name: 项目名称
      type: Make.Field.Text
      meta:
        version: 1.0.0
      properties: null
    - key: project_description
      name: 项目描述
      type: Make.Field.TextArea
      meta:
        version: 1.0.0
      properties: null
タスク Entity
key: task
name: 任务
type: Make.Entity
appKey: <Make.App>
meta:
  version: 1.0.0
properties:
  fields:
    - key: task_name
      name: 任务名称
      type: Make.Field.Text
      meta:
        version: 1.0.0
      properties: null
    - key: task_description
      name: 任务描述
      type: Make.Field.TextArea
      meta:
        version: 1.0.0
      properties: null
    - key: task_status
      name: 任务状态
      type: Make.Field.SingleSelect
      meta:
        version: 1.0.0
      properties:
        options:
          - label: "待处理"
            value: "todo"
          - label: "进行中"
            value: "doing"
          - label: "已完成"
            value: "done"

Relation | リレーション

  • Relation は、Entity 間の関係、つまりどの Entity 同士が何対何で関連するかを記述する純粋な構造宣言です。表示ロジックは含みません。(詳しくは @references/RelationDesign.md を参照してください)
  • 関連データの表示には LookupField を使用します(詳しくは @references/FieldDesign.md を参照してください)。
  • 関連データを書き込む際は、Data API の data.qfei_relation に関連オブジェクトを明示的に渡す必要があります。(詳しくは @references/DataAPIDesign.md を参照してください)

Field | フィールド

論理的には、データベースの table の 1 つの column に対応し、1 つの Entity に複数の Field が含まれます。 詳しくは @references/FieldDesign.md を参照してください。

Record | レコード

論理的には、データベースの table の 1 つの row に対応し、1 つの Entity に複数の Record が含まれます。

DataAPI | データ CRUD-LS

データ操作については、@references/DataAPIDesign.md を参照してください。

MetaAPI | メタデータとスキーマ

フロントエンドのビルド、ランタイムでのスキーマ読み込み、Entity/Field/Relation のメタデータ取得については、@references/MetaAPIDesign.md を参照してください。

コメント