aes-root
Skill0 starsChanged 26 days agoMITView on GitHub
AES composition root and entry wiring for Python Rust TS. Use when creating container entry files.
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 69
Every rule is machine-checked by lint-arwaky-cli scan <layer-path> (see each HOW-TO § Verify).
- Distinctive: line 87
Ask these questions in order.
- Very specific: line 106
Create root_<concept>_<suffix> from the language HOW-TO § Template / § Section Contract.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
aes-root
Purpose: Scaffold AES composition roots — containers wire capabilities to contracts; entries bootstrap and start the process. Audience: The agent creating or validating a container or entry file. Scope: Python, Rust, and TypeScript
root_<concept>_<container|entry>files (plus documented barrel/entry exceptions).
The layer decides which suffix, which imports, and which structure apply.
Rules, templates, section contracts, and Verify blocks live in the language HOW-TUs under references/.
| Language | Focus | Body rule | HOW-TO |
| Python | Container / entry | Wires only; no business/orchestration logic | references/HOW-TO-MAKE-PYTHON-ROOT.md |
| Rust | Container / entry | Wires only; no business/orchestration logic | references/HOW-TO-MAKE-RUST-ROOT.md |
| TypeScript | Container / entry | Wires only; no business/orchestration logic | references/HOW-TO-MAKE-TYPESCRIPT-ROOT.md |
The layer chain:
root (constructs everything below) → agent / surface / capabilities / contract / utility / taxonomy — nothing below imports root
Each file answers one layer's job. A method or import in the wrong layer is the defect this skill exists to prevent.
Invariants
Every rule is machine-checked by lint-arwaky-cli scan <layer-path> (see each HOW-TO § Verify).
A rule cannot drift from the gate. Cite the linter, not this file, when pointing at a rule.
| Layer | Rule |
| Naming | File root_<concept>_container or root_<concept>_entry (AES101/AES102). Documented exceptions: main.rs, lib.rs, mod.rs, __init__.py, index.ts, barrel/entry files, etc. |
| Roles | Container: wire one feature's capabilities to contracts. Entry: bootstrap the app and compose feature containers. |
| Privilege | Root may instantiate and wire components — that is its job; the only layer allowed to depend on everything below. |
| Behaviour | No business logic, no orchestration policy, no technical parsing, no UI behaviour — those live in capabilities / agent / utility / surface. |
| Register | mod.rs / index.ts / package barrel as required. |
| Verify | lint-arwaky-cli scan <layer-path> → 0. Language compile is fallback only. |
Split details, templates, and Section Contract tables: read the language HOW-TO — do not restate them here.
Diagnostic Tree
Ask these questions in order. The first "No" dictates your next action.
- Container or Entry?
- Wire one feature →
_container; bootstrap all →_entry.
- Wire one feature →
- Does the file contain business / orchestration / parsing / UI logic?
- Yes → move down to capabilities / agent / utility / surface.
- Are bindings exposed as contracts (not concretions)?
- Concretions leak → bind to protocol/aggregate types (
Arc<dyn Trait>in Rust).
- Concretions leak → bind to protocol/aggregate types (
- Does anything below root import from root?
- Yes → invert: root depends downward only.
- Does
lint-arwaky-cli scan <layer-path>exit 0?- No → fix findings, re-scan.
Workflow
- Determine role — Container (wire one feature) or Entry (bootstrap all).
- Resolve the package top. Run
lint-arwaky-cli scan <layer-path>— findings are your work list. - Create
root_<concept>_<suffix>from the language HOW-TO § Template / § Section Contract. - Wire dependencies: instantiate capabilities, bind them to contract protocol/aggregate types.
- Compose: the entry builds every container and starts the surface or CLI loop.
- Register the module, verify with
lint-arwaky-cli scan.
Verification
Machine Checks
lint-arwaky-cli scan <layer-path> # AES101/102, AES201–205, AES401–406 → must be 0
# Fallback only: language compile (python -c import / cargo check / npx tsc --noEmit)
```text
A pass means naming, imports, primitives, and roles are clean. Structural judgement
(tier choice, block order, helper-vs-utility, "orchestration only") is **manual** — see HOW-TO § Rules.
### Human Checks
A machine pass does not mean the file is right. Layer purpose, structural order, and
"only what this layer may do" still need a reader (HOW-TO § Rules).
---
## Pre-flight Checklist
- [ ] `lint-arwaky-cli scan <layer-path>` exits 0.
- [ ] Every touched HOW-TO's `Verify` block was executed.
- [ ] File registered in the right barrel for its language: `__init__.py` (Python), `mod.rs` (Rust),
or `index.ts` (TypeScript).
- [ ] Language fallback compile clean if the HOW-TO lists it.
- [ ] Related skills considered for the next layer up/down.
---
## Common Mistakes (Anti-Patterns)
The linter covers naming, imports, and primitives. These need a reader (HOW-TO § Rules):
- **Business / orchestration / parsing / UI logic in root**: forbidden — route down a layer.
- **Concretions visible above root**: bind to contracts so agents/surfaces see interfaces, not classes.
- **Wrong suffix / undocumented name**: `_container` or `_entry` only (exceptions listed in HOW-TO).
- **Restating HOW-TO rules in SKILL.md**: delegate — this file only routes.
---
## Related Skills
- `aes-capabilities`
- `aes-agent`
- `aes-surface`
- `aes-contract`In this repository172 other files it gives its agents.
- AGENTS.mdAGENTS.md
- aes-agentSkill
- aes-capabilitiesSkill
- aes-contractSkill
- aes-docsSkill
- aes-lint-arwakySkill
- aes-migrationSkill
- aes-surfaceSkill
- aes-taxonomySkill
- aes-testing-suiteSkill
- aes-utilitySkill
- build-with-aiSkill
- omni-model-inventorySkill
- omnirouteSkill
- xai-apiSkill
- android-emulator-linux-gpsSkill
- chromium-profile-provisioningSkill
- computer-useSkill
- flatpak-chromium-automationSkill
- qwen-web-arwaky-devSkill
- qwen-webSkill
- cleanup-consolidateSkill
- codacy-analysis-cliSkill
- codacy-cloud-cliSkill
- codacy-code-reviewSkill
- codebase-inspectionSkill
- coderabbit-reviewSkill
- code-reviewSkill
- configure-codacy-cloudSkill
- configure-codacySkill
- fix-bypassSkill
- fix-markdown-inline-htmlSkill
- fixture-dir-pruningSkill
- harness-source-auditSkill
- no-mistakesSkill
- report-linter-false-positiveSkill
- reviewSkill
- setup-coverageSkill
- strict-code-quality-reviewSkill
- architecture-diagramSkill
- ascii-artSkill
- ascii-videoSkill
- baoyu-infographicSkill
- blender-arwakySkill
- claude-designSkill
- comfyuiSkill
- design-mdSkill
- excalidrawSkill
- game-assetsSkill
- gif-searchSkill
- imagineSkill
- manim-videoSkill
- p5jsSkill
- popular-web-designsSkill
- pretextSkill
- psd-overlay-verificationSkill
- psd-timelapse-workflowSkill
- sketchSkill
- songseeSkill
- songwriting-and-ai-musicSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

