# {{PROJECT_NAME}} Source Tree Standard

> **Auto-generated by AIOX** on {{GENERATED_DATE}}
> **Mode:** {{INSTALLATION_MODE}}
> **Tech Stack:** {{TECH_STACK}}

## Overview

This document defines the directory structure and file organization standards for **{{PROJECT_NAME}}**.

## Directory Structure

```
{{PROJECT_NAME}}/
├── .aiox-core/                    # AIOX configuration
│   └── core-config.yaml           # Project configuration
│
├── .github/                       # GitHub configuration
│   └── workflows/                 # CI/CD workflows
│       ├── quality-gates.yml      # Quality checks
│       └── deploy.yml             # Deployment automation
│
├── docs/                          # Documentation
│   ├── architecture/              # Project architecture docs
│   │   ├── source-tree.md         # THIS FILE
│   │   ├── coding-standards.md    # Coding conventions
│   │   └── tech-stack.md          # Technology decisions
│   ├── guides/                    # User guides
│   └── api/                       # API documentation
│
{{#if IS_NODE}}
├── src/                           # Source code
│   ├── index.{{FILE_EXT}}         # Entry point
│   ├── config/                    # Configuration modules
│   ├── services/                  # Business logic
│   ├── utils/                     # Utility functions
│   └── types/                     # TypeScript types (if applicable)
│
├── tests/                         # Test files
│   ├── unit/                      # Unit tests
│   ├── integration/               # Integration tests
│   └── fixtures/                  # Test fixtures
│
├── scripts/                       # Build and utility scripts
│
├── package.json                   # Node.js dependencies
├── tsconfig.json                  # TypeScript config (if applicable)
{{/if}}
{{#if IS_PYTHON}}
├── {{PYTHON_PACKAGE_NAME}}/       # Python package
│   ├── __init__.py                # Package init
│   ├── main.py                    # Entry point
│   ├── config/                    # Configuration
│   ├── services/                  # Business logic
│   └── utils/                     # Utilities
│
├── tests/                         # Test files
│   ├── unit/                      # Unit tests
│   ├── integration/               # Integration tests
│   └── conftest.py                # Pytest configuration
│
├── requirements.txt               # Python dependencies
├── pyproject.toml                 # Project configuration
{{/if}}
{{#if IS_GO}}
├── cmd/                           # Command entry points
│   └── {{PROJECT_NAME}}/
│       └── main.go                # Main entry point
│
├── internal/                      # Private packages
│   ├── config/                    # Configuration
│   ├── services/                  # Business logic
│   └── utils/                     # Utilities
│
├── pkg/                           # Public packages
│
├── go.mod                         # Go modules
├── go.sum                         # Dependency checksums
{{/if}}
│
├── .gitignore                     # Git ignore rules
├── .env.example                   # Environment template
└── README.md                      # Project documentation
```

## File Placement Rules

### Documentation Files

| File Pattern | Location | Purpose |
|--------------|----------|---------|
| `*.md` (project docs) | `docs/` | Project documentation |
| Architecture docs | `docs/architecture/` | Technical standards |
| User guides | `docs/guides/` | How-to documentation |
| API docs | `docs/api/` | API reference |

### Source Code

| File Pattern | Location | Purpose |
|--------------|----------|---------|
{{#if IS_NODE}}
| `*.js`, `*.ts` | `src/` | Application source code |
| `*.test.js`, `*.test.ts` | `tests/` | Test files |
| `*.d.ts` | `src/types/` | TypeScript declarations |
{{/if}}
{{#if IS_PYTHON}}
| `*.py` | `{{PYTHON_PACKAGE_NAME}}/` | Application source code |
| `test_*.py` | `tests/` | Test files |
{{/if}}
{{#if IS_GO}}
| `*.go` | `cmd/`, `internal/`, `pkg/` | Go source files |
| `*_test.go` | Same as source | Test files |
{{/if}}

### Configuration Files

| File | Location | Purpose |
|------|----------|---------|
| `.aiox-core/core-config.yaml` | Root | AIOX configuration |
| `.env`, `.env.*` | Root | Environment variables |
| `.gitignore` | Root | Git ignore rules |
{{#if IS_NODE}}
| `package.json` | Root | Node.js dependencies |
| `tsconfig.json` | Root | TypeScript configuration |
| `.eslintrc.*` | Root | ESLint configuration |
| `.prettierrc` | Root | Prettier configuration |
{{/if}}
{{#if IS_PYTHON}}
| `pyproject.toml` | Root | Python project config |
| `requirements.txt` | Root | Python dependencies |
| `.flake8` | Root | Flake8 configuration |
{{/if}}

## Anti-Patterns (Files NOT Allowed at Root)

The following files should NOT be placed at the project root:

| Pattern | Correct Location | Reason |
|---------|------------------|--------|
| `*.md` (except README) | `docs/` | Documentation belongs in docs |
{{#if IS_NODE}}
| `*.js`, `*.ts` (source) | `src/` | Source code belongs in src |
| `*.test.js` | `tests/` | Tests belong in tests |
{{/if}}
{{#if IS_PYTHON}}
| `*.py` (source) | `{{PYTHON_PACKAGE_NAME}}/` | Source code belongs in package |
| `test_*.py` | `tests/` | Tests belong in tests |
{{/if}}
| Temporary files | N/A | Should not be committed |

## Naming Conventions

### Directories

- Use **kebab-case** for directory names: `my-feature/`
- Use lowercase: `services/` not `Services/`

### Files

{{#if IS_NODE}}
- Source files: **kebab-case** - `user-service.js`
- Test files: **kebab-case** with `.test` suffix - `user-service.test.js`
- React components: **PascalCase** - `UserProfile.tsx`
{{/if}}
{{#if IS_PYTHON}}
- Source files: **snake_case** - `user_service.py`
- Test files: **snake_case** with `test_` prefix - `test_user_service.py`
{{/if}}
{{#if IS_GO}}
- Source files: **snake_case** - `user_service.go`
- Test files: **snake_case** with `_test` suffix - `user_service_test.go`
{{/if}}

---

*Generated by AIOX Documentation Integrity System*
*Template Version: 1.0.0*
