mcpField
A
await-widget

await-widget

github.com/await-widget開発1860 回インストール1 日前に更新
リポジトリ

await-widget について

Await ウィジェットを構築する AI コーディングエージェント向けのルーティング技能です。インストール済みランタイムの型宣言やタスク別ガイドへ案内し、iOS の描画モデルにおけるタイムラインの仕組みと制約を説明します。

主な機能

  1. 01設計・リソースガイドへの振り分け
  2. 02ランタイム型宣言を API の基準にする
  3. 03iOS ウィジェットのタイムラインコールバックの説明
  4. 04TSX コンポーネントとホストブリッジ API の説明
  5. 05ビュー階層とタイムラインの最小化

活用シーン

  1. 01AI コーディングエージェントで Await ウィジェットを構築
  2. 02ウィジェットのレイアウトや可読性の指針を確認
  3. 03ローカル SVG、画像、音声リソースを選択
  4. 04未対応 API や過剰なタイムライン項目を避ける

インストール

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

$npx skills add https://github.com/await-widget/skills --skill await-widget

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

同梱ファイル

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

.gitignore
docs-source/
index.md
docs-source/guides/
connection.md
create-a-widget.md
design.md
panels.md
resources.md
timeline.md
widget-button.md
examples/
package.json
examples/2048/
index.tsx
examples/Activity Timer/
index.tsx
examples/Calendar/
index.tsx
examples/Checklist/
index.tsx
examples/Drum Pad/
index.tsx
examples/Flip Album/
index.tsx
examples/Flip Clock/
index.tsx
examples/Health/
index.tsx
examples/Icon Shuffle/
index.tsx
simple-icons.json
examples/Image/
index.tsx
examples/Link/
index.tsx
examples/Location/
index.tsx
examples/Music Pad/
index.tsx
examples/Music Player/
index.tsx
examples/Panels/
index.tsx
examples/Piano/assets/
add.svg
fall.svg
left.svg
lift.svg

詳細

スキルをインストールする

このドキュメントは、AI コーディングエージェントで Await ウィジェットを作成するための await-widget スキルに付属しています。作業を始める前に、スキルをインストールしてください。

npx skills add await-widget/skills

使用時の更新

このスキルを npx skills add でインストールした場合は、実行のたびに最初に更新を確認してください。グローバルインストールの場合は npx skills update await-widget -g を実行し、プロジェクトへのインストールの場合は、インストール先プロジェクトのルートで npx skills update await-widget -p を実行してください。コマンドの完了後、インストール済みの SKILL.md を再度読み込み、タスクの残りの作業では最新の指示に従ってください。

ルーティング

このスキルは、完全なリファレンスではなく、ルーティングレイヤーとして扱ってください。

ユーザーがインストールした @await-widget/runtime の宣言と、このスキルの docs-source/ ディレクトリにあるタスク固有のドキュメントを併用してください。これらのパスは、ユーザーのワークスペースではなく、この SKILL.md ファイルを基準に解決してください。ガイドのディレクトリについては docs-source/index.md を参照し、現在のタスクに必要なガイドだけを読んでください。

docs-source/guides/design.md では、ウィジェットのサイズ、レイアウトのルール、読みやすさとコンテンツ、アニメーションの安定性、ボタンについて説明しています。docs-source/guides/resources.md では、ローカルの SVG、画像、音声アセットについて説明しています。

概要

Await ウィジェットは SwiftUI 風の命名を使った TSX 構文で記述しますが、React、DOM、SwiftUI ではありません。構文と命名は借用していますが、API の仕様は @await-widget/runtime の型によって全面的に定義されています。

Await は iOS に 2 つのコールバック関数を提供します。widgetTimeline() は日時付きのエントリーを返し、widget(entry) は iOS が指定したエントリーのビューを返します。これらの関数をいつ呼び出すかは iOS が決定し、バッテリー効率を保つため、タイムラインの更新要求が頻繁すぎる場合は拒否されることがあります。

[1] iOS decides when to update the widget
     │
     ▼ calls
[2] widgetTimeline()
     │
     ▼ returns Entry[]
[3] { entry@09:00, entry@09:01, entry@09:02, ... }
     │
     ▼ iOS specifies entry@09:01, calls
[4] widget(entry)
     │
     ▼ returns the widget view

コアとなるルール

  • 利用可能なすべての API と型は、node_modules/@await-widget/runtime/types/*.d.ts で定義されています。これらのファイルを信頼できる唯一の情報源として扱ってください。HTML DOM、ブラウザーおよび Node の API(fetch を含む)、CSS、React 風のフックや状態管理など、これらの宣言に含まれない API や機能は使用しないでください。
  • TSX コンポーネントは await モジュールからインポートします(例:import {Text, ZStack} from 'await';)。コンポーネント、プロパティ、モディファイアの定義は node_modules/@await-widget/runtime/types/await.d.ts にあります。
  • ブリッジ API はホストが提供するグローバル(Await、AwaitStore、AwaitNetwork、AwaitMusic など)です。これらは直接使用し、インポートしないでください。シグネチャは node_modules/@await-widget/runtime/types/bridge.d.ts にあります。
  • コンポーネント属性は、初期化属性またはモディファイアのいずれかです。モディファイアは同じコンポーネントで繰り返し使用でき、その順序も SwiftUI のモディファイアと同様に重要です。TSX 要素で同じモディファイアを複数回使う必要がある場合は、属性名に一意のサフィックス(例:frame_ や frame_1)を付け、TSX の構文エラーを避けてください。
  • ウィジェットのビューツリーは、必要以上に増やさず、最小限に保ってください。iOS ウィジェットは厳しいメモリー制限のもとで動作します。ウィジェットのコストはおおむね「タイムラインエントリー数 × ビューツリーのノード数」に比例するため、時間の経過に伴って明らかに異なる状態を表示する必要がない限り、タイムラインエントリーは 1 つにしてください。

コメント