# Project Structure

> Repository structure and placement rules for AriaCore. Trigger: Creating files, packages, handlers, templates, styles, or tests in this repo.

- Skill: `itechdev-mx/project-structure` (Agent Skill)
- Install (CLI): `npx skillmds@latest add itechdev-mx/project-structure`
- Raw SKILL.md: https://api.skillmd.com/api/skills/itechdev-mx/project-structure/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: ITECHDEV-MX (https://skillmd.com/u/itechdev-mx)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/itechdev-mx/project-structure

---


## When to Use

Use this skill when:
- Creating a new package, file, or directory
- Deciding where code belongs
- Adding tests, templates, assets, or docs

---

## Placement Rules

1. Put behavior near its domain, not near the caller that happens to use it.
2. Keep templates in `internal/cloud/dashboard/*.templ` and generated files checked in.
3. Keep dashboard styling in `internal/cloud/dashboard/static/styles.css` unless a new static asset is clearly needed.
4. Put HTTP handlers in server packages, not in store packages.
5. Put persistence queries in store/cloudstore, not in handlers.

---

## File Creation Rules

- New route -> handler + tests in dashboard/server package
- New DB behavior -> store/cloudstore code + focused tests
- New UI partial/page -> templ component + generated `_templ.go`
- New contributor guidance -> update docs/catalog in same change

---

## Anti-Patterns

- Do not mix SQL, HTML, and transport logic in one file.
- Do not create utility packages for one-off helpers.
- Do not add package layers unless they remove real coupling.

