mcpField
L
low-code-generation

low-code-generation

github.com/itallstartedwithaidea開発4474 回インストール28 週間前に更新
リポジトリ

low-code-generation について

自然言語の説明やスキーマから、フォーム、テーブル、ダッシュボード、ワークフローの UI を生成するエージェント向けスキルです。複雑さに応じて JSON 設定、スキーマベースのコンポーネント、カスタム React コードを選び、管理画面や CRUD UI の作成を支援します。

主な機能

  1. 01説明やスキーマからの UI 生成
  2. 02複雑さに応じた抽象度の選択
  3. 03バリデーション付きスキーマフォーム
  4. 04ソート・フィルター対応テーブル
  5. 05ワークフローとダッシュボードのひな型

活用シーン

  1. 01管理画面や CRUD UI の迅速な構築
  2. 02データベーススキーマや API 仕様からのフォーム作成
  3. 03ソート・フィルター対応データテーブルの作成
  4. 04設定可能なウィジェットを使ったダッシュボード生成

インストール

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

$npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill low-code-generation

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

詳細

ローコード生成

googleadsagent.ai™ による Agent Skills™ の一部です

説明

ローコード生成では、自然言語による説明やスキーマ定義をもとに、AI がフォーム、テーブル、ダッシュボード、ワークフロー UI を生成します。エージェントは、ノーコードからフルコードまでの幅広い範囲にわたって、本番環境で利用できるコンポーネントを生成します。ドラッグ&ドロップ式の JSON 設定から完全にカスタマイズされた React コンポーネントまで、要件を満たす最もシンプルな成果物を常に生成します。

この幅広い選択肢を活用する原則が重要です。すべてにカスタムコードが必要なわけではなく、すべてを設定で対応できるわけでもありません。管理パネル用の CRUD テーブルには、並べ替え、フィルタリング、ページネーションを組み込んだ JSON 駆動のテーブルコンポーネントが最適です。条件付きロジックを含む複雑な複数ステップのフォームには、検証ルールを備えたフォームスキーマが適しています。カスタムの可視化を含む独自の分析ダッシュボードには、フルコードが必要です。エージェントは複雑さに応じて、適切な抽象化レベルを選択します。

このスキルは、JeecgBoot などのエンタープライズ向けローコードプラットフォームを参考に、UI を迅速に生成するためのパターンを取り入れています。検証機能を備えたスキーマ駆動型フォーム、サーバーサイド操作に対応する設定可能なデータテーブル、ドラッグ&ドロップ式のノードを使うワークフロービルダー、チャートを組み合わせるレポート生成機能などです。それぞれのパターンにより、数日かかる開発作業を数分に短縮できます。

使用する場面

  • 管理パネルや CRUD インターフェースを迅速に生成する場合
  • データベーススキーマや API 仕様からフォームを作成する場合
  • 並べ替え、フィルタリング、ページネーションに対応するデータテーブルを作成する場合
  • 設定可能なウィジェットを使ったダッシュボードのレイアウトを作成する場合
  • エンティティ関係図からアプリケーション全体のスキャフォールディングを生成する場合
  • ユーザーが「クイック UI」「管理パネル」「フォームビルダー」を求めている場合

仕組み

graph TD
    A[Input: Schema / Description] --> B[Complexity Assessment]
    B --> C{Abstraction Level}
    C -->|Zero-Code| D[JSON Config Generation]
    C -->|Low-Code| E[Schema + Custom Handlers]
    C -->|Full-Code| F[Complete Component Code]
    D --> G[Config-Driven Renderer]
    E --> H[Schema-Driven Component]
    F --> I[Custom React Component]
    G --> J[Preview + Iterate]
    H --> J
    I --> J
    J --> K[Production Output]

複雑さの評価では、フィールド数、条件付きロジック、カスタム検証、視覚的な要件を確認し、適切な抽象化レベルを選択します。管理 UI のニーズの 60%はノーコードで対応でき、30%はローコードで対応できます。フルコードは残りの 10%に限って使用します。

実装

interface FormSchema {
  title: string;
  fields: FormField[];
  layout: "vertical" | "horizontal" | "grid";
  submitAction: string;
}

interface FormField {
  name: string;
  label: string;
  type: "text" | "number" | "email" | "select" | "date" | "textarea" | "switch";
  required?: boolean;
  validation?: { min?: number; max?: number; pattern?: string; message?: string };
  options?: Array<{ label: string; value: string }>;
  dependsOn?: { field: string; value: unknown };
}

function generateForm(schema: FormSchema): string {
  const fields = schema.fields.map(f => {
    const rules = [];
    if (f.required) rules.push(`{ required: true, message: "${f.label} is required" }`);
    if (f.validation?.pattern) rules.push(`{ pattern: /${f.validation.pattern}/, message: "${f.validation.message}" }`);

    const condition = f.dependsOn
      ? `{form.getFieldValue("${f.dependsOn.field}") === ${JSON.stringify(f.dependsOn.value)} && (`
      : "";
    const conditionClose = f.dependsOn ? ")}" : "";

    return `${condition}<Form.Item name="${f.name}" label="${f.label}" rules={[${rules.join(", ")}]}>
  ${renderInput(f)}
</Form.Item>${conditionClose}`;
  });

  return `<Form layout="${schema.layout}" onFinish={handleSubmit}>
  ${fields.join("\n  ")}
  <Form.Item><Button type="primary" htmlType="submit">Submit</Button></Form.Item>
</Form>`;
}

interface TableSchema {
  entity: string;
  columns: Array<{ key: string; title: string; type: string; sortable?: boolean; filterable?: boolean }>;
  actions: Array<"view" | "edit" | "delete">;
  pagination: { pageSize: number; serverSide: boolean };
}

function generateTable(schema: TableSchema): string {
  const columns = schema.columns.map(col => ({
    title: col.title,
    dataIndex: col.key,
    sorter: col.sortable ? true : undefined,
    filters: col.filterable ? `/* dynamic from API */` : undefined,
  }));

  return `<Table
  columns={${JSON.stringify(columns, null, 2)}}
  dataSource={data}
  pagination={{ pageSize: ${schema.pagination.pageSize}, total, onChange: fetchPage }}
  loading={loading}
  rowKey="id"
/>`;
}

ベストプラクティス

  • 要件を表現できる最もシンプルな抽象化レベルから始めます
  • 標準的な CRUD にはスキーマ駆動型生成を使用し、カスタムコードは例外的なケースに限ります
  • スキーマから TypeScript 型を生成し、エンドツーエンドの型安全性を確保します
  • 検証ルールは後付けのカスタムコードではなく、スキーマに含めます
  • ユーザーが確定する前に生成された UI を調整できるよう、プレビューモードを用意します
  • 複雑さが増した際に開発者がローコードから移行できるよう、生成されたコードをエクスポートできるようにします

プラットフォームの互換性

プラットフォームサポート備考
Cursor完全対応コンポーネント生成+プレビュー
VS Code完全対応スキーマ編集+生成
Windsurf完全対応UI のスキャフォールディングに対応
Claude Code完全対応フォーム/テーブル生成
Cline完全対応ローコードコンポーネントの作成
aider部分対応コード生成のみ

関連スキル

キーワード

low-code form-generation table-generation schema-driven admin-panel crud zero-code rapid-development


© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License

コメント