aes-lint-arwaky
Skill0 starsChanged 26 days agoMITView on GitHub
AES architecture linter for Python Rust TS. Use when scanning, fixing AES101-AES506 violations.
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 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.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 70
Read the HOW-TO for the active language before fixing.
≈ “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-lint-arwaky
Purpose: Scan, diagnose, and fix AES101–AES506 violations, then re-verify to zero — using
lint-arwaky-clias the primary architecture gate (language compile/lint is fallback).Audience: Agents and engineers enforcing the AES 7-layer architecture in Python, Rust, or TypeScript codebases.
Scope: Shared CLI/MCP surface, per-language HOW-TOs, AES fix routing, verification to 0. Not: writing new layers (use
aes-*), test/bench naming (useaes-testing-suite).
Language routing
| Language | HOW-TO | Use when |
| All (shared CLI, MCP, exit codes, AES101 naming) | references/HOW-TO-USE-LINT-COMMANDS.md | Invoking scan/fix/ci, aliases, flags, MCP tools, layer matrix |
| Python | references/HOW-TO-USE-LINT-PYTHON.md | modules/, py_compile / Ruff / Mypy verify, __init__.py barrel |
| Rust | references/HOW-TO-USE-LINT-RUST.md | crates/, cargo check / clippy / nextest verify, mod.rs barrel |
| TypeScript | references/HOW-TO-USE-LINT-TYPESCRIPT.md | packages/, tsc / ESLint / vitest verify, index.ts barrel |
| Fix routing (every AES code) | references/HOW-TO-USE-LINT-ROUTING.md | Mapping a finding to its fix + owning aes-* skill |
Read the HOW-TO for the active language before fixing. Do not restate flags, subcommands, or the fix table here — they live in the HOW-TOs.
Layer chain
Bottom-up; a layer may only depend on layers below it:
taxonomy_ → utility_ → contract_ → capabilities_ → agent_ → surface_ → root_
Naming: <layer>_<concern>_<role>.<ext> (AES101). Legal suffixes per layer: AES102 matrix in
the routing HOW-TO. tests/ / benches/ are not AES layers (see aes-testing-suite).
Invariants
| Invariant | Rule | Read |
| Primary gate | lint-arwaky-cli scan (AES101–506) → 0; language compile is fallback only | Commands + language HOW-TO |
| Direction | Upper layers import downward only; never upward (AES201 CRITICAL) | Routing HOW-TO |
| Role purity | Protocol = one method per feature; aggregate = many exports, one per feature (not dump-all) | Routing + aes-contract |
| Auto-fix set | Only AES101 / AES203 / AES304 via fix (--dry-run first); AES201/205 manual | Routing HOW-TO |
| Barrel after rename | AES101 rename → update __init__.py / mod.rs / index.ts or it becomes AES501–506 | Language HOW-TO |
| Done | Re-scan to 0 + language verify pass; exit code is the gate (0/1/2) | Commands HOW-TO |
Diagnostic Tree
Scan failed or findings non-zero?
├─ exit 2 → config/parse → lint_arwaky.config.yaml / path → fix config, re-run
├─ exit 1, findings present
│ ├─ CRITICAL 🔴 AES201 / AES205 → structural; route via HOW-TO-USE-LINT-ROUTING.md (aes-contract)
│ ├─ HIGH 🟡 AES101–102, AES202, AES301–303, AES401–403, AES406, AES505–506 → fix / aes-{layer}
│ ├─ MEDIUM/LOW 🟢 AES203–204, AES305, AES404–405, AES501–504 → fix (AES101/203 auto-fix) or aes-{layer} (manual)
│ └─ After each AES101 rename → barrel update (language HOW-TO) or orphan reappears
└─ exit 0 but code unhealthy → language verify failed → HOW-TO-USE-LINT-<LANG>.md pipeline
```text
## Workflow
1. **Pre-flight** — codebase must build/parse in its own language (language HOW-TO). Violations
on broken code are unreliable.
2. **Scan** — `lint-arwaky-cli scan <target-path> --format json` (shared flags:
`HOW-TO-USE-LINT-COMMANDS.md`). Triage CRITICAL → HIGH → MEDIUM/LOW.
3. **Diagnose** — per finding: AES code, layer prefix, auto-fixable?, root cause. Full table:
`references/HOW-TO-USE-LINT-ROUTING.md`.
4. **Fix** — auto: `lint-arwaky-cli fix <path>` (`--dry-run`, optional `--filter`). Manual:
route via HOW-TO-USE-LINT-ROUTING.md to the owning `aes-*` skill.
5. **Verify** — re-scan to 0, then language verify pipeline (HOW-TO-USE-LINT-<LANG>.md).
6. **Commit** — only when asked: `fix: resolve <N> AES violations (<rules>)`.
## Verification
### Machine Checks
```bash
# Primary AES gate — must exit 0 with no findings
lint-arwaky-cli scan <target-path> --format json
echo "exit=$?" # 0 pass · 1 violations · 2 config/parse error
# Family isolation while iterating
lint-arwaky-cli import <path> --filter AES201
lint-arwaky-cli role <path> --filter AES403
lint-arwaky-cli orphan <path> --format json
```text
### Human Checks
- [ ] Pre-flight build/import/typecheck passed **before** trusting the scan.
- [ ] CRITICAL (AES201/205/304) fixed before cosmetics.
- [ ] Every fix applied from the routing HOW-TO row (or auto-fix set), not a hand-rolled edit.
- [ ] Barrel/`mod.rs`/`index.ts` updated after every AES101 rename.
- [ ] Re-scan reports **0** AES violations (exit 0).
- [ ] Language verify pipeline (HOW-TO-USE-LINT-<LANG>.md) also green.
## Pre-flight Checklist
- [ ] Target path correct (`modules/` | `crates/` | `packages/`).
- [ ] Language build/parse clean (see language HOW-TO).
- [ ] Shared invocation chosen (`aa tool run lint …` or `lint-arwaky-cli` / `lac`).
- [ ] `--format` explicit if output is consumed by a pipeline or report file.
## Common Mistakes (Anti-Patterns)
| Mistake | Correct approach |
| ------- | ---------------- |
| Skipping pre-flight; trusting findings on broken code | Build/import first — violations on red builds are noise. |
| Auto-fixing AES201/205 with `fix` | Only AES101/203/304 auto-fix; AES201/205 manual via `aes-contract`. |
| AES101 rename without barrel/`mod.rs`/`index.ts` update | Re-export immediately — otherwise AES501–506 orphan. |
| Declaring done at "mostly clean" | Done = re-scan **0** + language verify; exit code is the gate. |
| Parsing stdout instead of exit code for CI | Gate on `0`/`1`/`2`; stdout is not the contract. |
| Re-guessing fix rows from memory | Consult `HOW-TO-USE-LINT-ROUTING.md` every time. |
| Treating `tests/`/`benches/` as AES layers | They follow `aes-testing-suite` naming, not AES101–102. |
## Related Skills
`aes-taxonomy` · `aes-utility` · `aes-contract` · `aes-capabilities` ·
`aes-agent` · `aes-surface` · `aes-root` · `aes-testing-suite` · `aes-utility` ·
`aes-taxonomy`In this repository172 other files it gives its agents.
- AGENTS.mdAGENTS.md
- aes-agentSkill
- aes-capabilitiesSkill
- aes-contractSkill
- aes-docsSkill
- aes-migrationSkill
- aes-rootSkill
- 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.

