Onion layers for agyloop (domain, application, infrastructure, cli), import-linter, and where new code belongs. Use before adding a module under src/agyloop/.
Scanned 9/19/2026
npx -y skills add the-vibey-project/vibey --skill agyloop-architecture --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Agyloop Architecture?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/the-vibey-project-agyloop-architecture)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: agyloop-architecture
description: Onion layers for agyloop (domain, application, infrastructure, cli), import-linter, and where new code belongs. Use before adding a module under src/agyloop/.
allowed-tools: Read Grep Glob Bash(lint-imports)
---
# agyloop architecture
Dependencies point inward. `import-linter` enforces this in CI.
```
src/agyloop/
├── domain/ # PURE. stdlib only. No I/O, no async, no third-party.
├── application/ # Protocol ports + use cases. Imports domain + stdlib.
├── infrastructure/ # Adapters. ONLY layer that may import google.antigravity.
├── cli/ # Typer. Calls application via bootstrap.
└── bootstrap.py # Composition root — the ONE module that sees every layer.
```
## Where does new code go?
1. Touches FS, network, clock, or an SDK? → `infrastructure/`, behind a
`Protocol` in `application/ports.py`. Never `import google.antigravity`
elsewhere.
2. Pure decision, zero I/O? → `domain/`. Examples: `classify.py`,
`waiting.py`, `completion.py`, `loop.py`.
3. Orchestration (port → domain → port)? → `application/`.
4. Argument parsing / terminal formatting? → `cli/`.
When in doubt, push logic inward. `lint-imports` names the broken contract.
See ADR 0001.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!