用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/LedgerHQ/ledger-live --skill devtools-import-boundary命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | devtools-import-boundary |
| description | Enforce import boundaries inside the devtools scope. Use for any work in "devtools/**". |
Every @devtools/* package is self-contained. The only permitted cross-package imports within the devtools scope are listed in the table below; all others are forbidden.
| Package | May import from @devtools/* |
|---|---|
@devtools/registry | any @devtools/<tool> |
@devtools/shell | @devtools/transport, @devtools/registry |
@devtools/bindings | @devtools/registry only |
@devtools/wire | @devtools/transport, @devtools/protocols |
@devtools/protocols | @devtools/transport only |
@devtools/relay | @devtools/transport only |
@devtools/transport-panel | @devtools/transport only |
@devtools/<tool> | none |
All other @devtools/* → @devtools/* imports are forbidden.
The devtools architecture decouples tools from the shell through the registry. The shell lazy-loads tools via metadata.loader; tools never know the shell exists. If a tool imports the shell or another tool directly:
If bindings or shell import a tool package directly (instead of through the registry):
DevToolsConfig.import() split point disappears, defeating code-splitting.Cross-cutting concerns (shared types, utilities) must not live in a tool package. Extract them to a standalone library with no @devtools/* scope, then import that from whichever packages need it.
App state and wiring for a tool arrive as props, built in @devtools/bindings — the single sanctioned bridge to Ledger Live internals. A tool that needs more data from the app gets new props, not a new import.
When adding a new package under devtools/, its README.md must state:
@devtools/* packages it may import, per the table above.@devtools/* imports are forbidden, with a pointer to this rule.Place and organize Ledger Wallet code in the DDD monorepo. Use when creating, moving, or reviewing code under apps, features, domain, shared, or support; deciding which layer owns a concern; structuring packages and flow steps; or checking package names, dependency boundaries, platform variants, and legacy imports.
A new-architecture package (shared/, domain/, features/) exposes its API through barrels that contain nothing but `export *`, and keeps its private code in an internals location. Read this when creating a package under shared/, domain/ or features/, when editing any `index.*` file, or when a `lint:structure` check fails.
A new-architecture package (shared/, domain/, features/) exposes its API through barrels that contain nothing but `export *`, and keeps its private code in an internals location. Read this when creating a package under shared/, domain/ or features/, when editing any `index.*` file, or when a `lint:structure` check fails.
基于 SOC 职业分类