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에서 보기