Skip to main content

aidd-structure

Enforces source code structuring and interdependency best practices. Use when creating folders, moving files, adding imports, or when the user asks about architecture, layering, or module dependencies.

ソース情報

リポジトリ
paralleldrive/riteway
ソースの最終更新活動
2026年3月17日 20:30
検出された SKILL.md の言語
英語
スター
1,196
フォーク
40

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
aidd-structure
description
Enforces source code structuring and interdependency best practices. Use when creating folders, moving files, adding imports, or when the user asks about architecture, layering, or module dependencies.
# Standard folder structure ``` types ← services ← plugins ← components ↑ ↑ ↑ └─────────┴─────────┘ (types only depend on types) ``` ## Dependency rules ```sudolang LayerDependency { layer: "components" | "plugins" | "services" | "types" mayDependOn: String[] mustNotDependOn: String[] } DependencyRules [ { layer: "components", mayDependOn: ["plugins (Observe<Data>, void actions)", "types"], mustNotDependOn: ["services"] }, { layer: "plugins", mayDependOn: ["services", "types", "other plugins"], mustNotDependOn: [] }, { layer: "services", mayDependOn: ["other services", "types"], mustNotDependOn: ["components", "plugins"] }, { layer: "types", mayDependOn: ["other types"], mustNotDependOn: ["everything else"] } ] Constraints { Never: components → services Never: services → components or plugins Never: types → anything except types } ``` --- ## components UI components or elements (also called "elements"). **From plugins:** only Observe<Data> for reactive re-renders and void-returning action functions. ## plugins (if using @adobe/data/ecs for state) ECS Database.Plugin declarations. Usually depend on services, types, and other plugins. ## services Asynchronous data services, each in its own folder. Immutable data only. Adhere to [namespace](../aidd-namespace/SKILL.md) guidelines. **Async patterns only:** Observe<Data>, Promise<Data>, AsyncGenerator<Data>, void actions. **External code** depends only on interfaces, never on implementations. ## types Pure functional types and associated pure functions. Adhere to [namespace](../aidd-namespace/SKILL.md) guidelines. ## Nested structure When a component has implementation-specific sub-parts, mirror the root structure inside it: ``` components/my-component/ components/ plugins/ types/ ``` --- ## Execute ```sudolang fn whenAddingOrMovingCode() { Constraints { Place code in the correct layer (components, plugins, services, types) Check dependencies against the dependency rules Fix any violations (e.g. components importing services) } } ```
GitHubで見る