agentleFS
rakaarwakyrakaarwaky/agents-arwaky/skills/aes-architecture/aes-root/SKILL.md

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
  1. Very specific:

    Every rule is machine-checked by lint-arwaky-cli scan <layer-path> (see each HOW-TO § Verify).

    line 69
  2. Distinctive:

    Ask these questions in order.

    line 87
  3. Very specific:

    Create root_<concept>_<suffix> from the language HOW-TO § Template / § Section Contract.

    line 106

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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/.

LanguageFocusBody ruleHOW-TO
PythonContainer / entryWires only; no business/orchestration logicreferences/HOW-TO-MAKE-PYTHON-ROOT.md
RustContainer / entryWires only; no business/orchestration logicreferences/HOW-TO-MAKE-RUST-ROOT.md
TypeScriptContainer / entryWires only; no business/orchestration logicreferences/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.

LayerRule
NamingFile 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.
RolesContainer: wire one feature's capabilities to contracts. Entry: bootstrap the app and compose feature containers.
PrivilegeRoot may instantiate and wire components — that is its job; the only layer allowed to depend on everything below.
BehaviourNo business logic, no orchestration policy, no technical parsing, no UI behaviour — those live in capabilities / agent / utility / surface.
Registermod.rs / index.ts / package barrel as required.
Verifylint-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.

  1. Container or Entry?
    • Wire one feature → _container; bootstrap all → _entry.
  2. Does the file contain business / orchestration / parsing / UI logic?
    • Yes → move down to capabilities / agent / utility / surface.
  3. Are bindings exposed as contracts (not concretions)?
    • Concretions leak → bind to protocol/aggregate types (Arc<dyn Trait> in Rust).
  4. Does anything below root import from root?
    • Yes → invert: root depends downward only.
  5. Does lint-arwaky-cli scan <layer-path> exit 0?
    • No → fix findings, re-scan.

Workflow

  1. Determine role — Container (wire one feature) or Entry (bootstrap all).
  2. Resolve the package top. Run lint-arwaky-cli scan <layer-path> — findings are your work list.
  3. Create root_<concept>_<suffix> from the language HOW-TO § Template / § Section Contract.
  4. Wire dependencies: instantiate capabilities, bind them to contract protocol/aggregate types.
  5. Compose: the entry builds every container and starts the surface or CLI loop.
  6. 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`

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.