Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

yaml

`@json-render/yaml` を使った作業、YAMLベースのスペックストリーミング、`yaml-spec`/`yaml-edit` フェンス、またはYAMLプロンプト生成を扱う際に使用します。ストリーミングパーサー・プロンプト生成・AI SDK変換を備えた、json-render向けのYAMLワイヤーフォーマットスキルです。

description の原文を見る

YAML wire format for json-render with streaming parser, prompt generation, and AI SDK transform. Use when working with @json-render/yaml, YAML-based spec streaming, yaml-spec/yaml-edit fences, or YAML prompt generation.

SKILL.md 本文

@json-render/yaml

@json-render/core 用の YAML ワイヤフォーマット。ストリーミング YAML を経由した段階的なレンダリングと外科的な編集。

重要な概念

  • YAML ワイヤフォーマット: JSONL の代替として、コードフェンス (yaml-specyaml-edityaml-patchdiff) を使用
  • ストリーミングパーサー: YAML を段階的に解析し、diffing 経由で JSON Patch 操作を発行
  • 編集モード: Patch (RFC 6902)、merge (RFC 7396)、unified diff
  • AI SDK トランスフォーム: YAML フェンスを json-render パッチに変換する TransformStream

YAML プロンプト生成

import { yamlPrompt } from "@json-render/yaml";
import { catalog } from "./catalog";

// スタンドアロンモード (LLM は YAML のみを出力)
const systemPrompt = yamlPrompt(catalog, {
  mode: "standalone",
  editModes: ["merge"],
  customRules: ["Always use dark theme"],
});

// インラインモード (LLM が会話的に応答し、YAML をフェンスで囲む)
const chatPrompt = yamlPrompt(catalog, { mode: "inline" });

オプション:

  • system (string) — カスタムシステムメッセージの導入部
  • mode ("standalone" | "inline") — 出力モード、デフォルト "standalone"
  • customRules (string[]) — プロンプトに追加される追加ルール
  • editModes (EditMode[]) — ドキュメント化する編集モード、デフォルト ["merge"]

AI SDK トランスフォーム

pipeJsonRender の代わりとして pipeYamlRender を使用します:

import { pipeYamlRender } from "@json-render/yaml";
import { createUIMessageStream, createUIMessageStreamResponse } from "ai";

const stream = createUIMessageStream({
  execute: async ({ writer }) => {
    writer.merge(pipeYamlRender(result.toUIMessageStream()));
  },
});
return createUIMessageStreamResponse({ stream });

複数ターンの編集の場合、前のスペックを渡します:

pipeYamlRender(result.toUIMessageStream(), {
  previousSpec: currentSpec,
});

トランスフォームは 4 つのフェンスタイプを認識します:

  • yaml-spec — 完全なスペック、行ごとに段階的に解析
  • yaml-edit — 部分的な YAML を現在のスペックと深くマージ (RFC 7396)
  • yaml-patch — RFC 6902 JSON Patch 行
  • diff — シリアル化されたスペックに適用される unified diff

ストリーミングパーサー (低レベル)

import { createYamlStreamCompiler } from "@json-render/yaml";

const compiler = createYamlStreamCompiler<Spec>();

// 任意のソースから到着するチャンクをフィード
const { result, newPatches } = compiler.push("root: main\n");
compiler.push("elements:\n  main:\n    type: Card\n");

// ストリーム終了時に残りのデータをフラッシュ
const { result: final } = compiler.flush();

// 次のストリーム用にリセット (オプションで初期状態付き)
compiler.reset({ root: "main", elements: {} });

メソッド: push(chunk)flush()getResult()getPatches()reset(initial?)

編集モード (@json-render/core から)

YAML パッケージはコアからの汎用編集モードシステムを使用します:

import { buildEditInstructions, buildEditUserPrompt } from "@json-render/core";
import type { EditMode } from "@json-render/core";

// YAML フォーマット用の編集命令を生成
const instructions = buildEditInstructions({ modes: ["merge", "patch"] }, "yaml");

// 現在のスペックコンテキスト付きユーザープロンプトを構築
const userPrompt = buildEditUserPrompt({
  prompt: "Change the title to Dashboard",
  currentSpec: spec,
  config: { modes: ["merge"] },
  format: "yaml",
  serializer: (s) => yamlStringify(s, { indent: 2 }).trimEnd(),
});

フェンス定数

カスタムパーサー用に、エクスポートされた定数を使用します:

import {
  YAML_SPEC_FENCE,   // "```yaml-spec"
  YAML_EDIT_FENCE,   // "```yaml-edit"
  YAML_PATCH_FENCE,  // "```yaml-patch"
  DIFF_FENCE,        // "```diff"
  FENCE_CLOSE,       // "```"
} from "@json-render/yaml";

主要なエクスポート

エクスポート説明
yamlPromptカタログから YAML システムプロンプトを生成
createYamlTransformYAML フェンス用の AI SDK TransformStream
pipeYamlRender便利なパイプラッパー (pipeJsonRender を置き換え)
createYamlStreamCompilerパッチ発行を伴うストリーミング YAML パーサー
YAML_SPEC_FENCEyaml-spec 用フェンス定数
YAML_EDIT_FENCEyaml-edit 用フェンス定数
YAML_PATCH_FENCEyaml-patch 用フェンス定数
DIFF_FENCEdiff 用フェンス定数
FENCE_CLOSEフェンスクローズ定数
diffToPatches再エクスポート: オブジェクト diff を JSON Patch へ
deepMergeSpec再エクスポート: RFC 7396 深いマージ

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
vercel-labs
リポジトリ
vercel-labs/json-render
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/vercel-labs/json-render / ライセンス: Apache-2.0

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: vercel-labs · vercel-labs/json-render · ライセンス: Apache-2.0