Project Structure Rules
Guidelines for defining and maintaining the project’s directory structure, naming conventions, and architecture.
File: project-structure-rules.mdc
Purpose
The Project Structure Rules establish a consistent framework for organizing files, directories, and modules within the project, ensuring logical organization, maintainability, and scalability.
Key Principles
Logical Organization: Files and directories organized by purpose
Consistent Naming: Clear and predictable naming conventions
Component Isolation: Separation of concerns in project components
Scalable Architecture: Structure supports project growth
Accessibility: Easy location of project elements
Documentation Alignment: Structure reflected in documentation
Detailed Contents
Directory Structure
Guidelines for project-level organization:
Root directory contents
Top-level directory organization
Configuration file placement
Documentation directory structure
Source code organization
Test directory structure
Asset organization
Build artifact management
Module Organization
Standards for structuring code modules:
Module boundary definitions
Dependency management between modules
Interface and implementation separation
Public vs. private components
Module versioning approach
Cross-module communication patterns
File Naming Conventions
Rules for consistent file naming:
File naming pattern by file type
Case conventions (camelCase, snake_case, etc.)
Special file name designations
Version indicators in filenames
Temporary file conventions
Generated file naming patterns
Component Structure
Guidelines for internal component organization:
Component directory organization
Required files for components
Component interface definitions
Resource organization within components
Component metadata requirements
Component testing structure
Configuration Management
Standards for configuration organization:
Environment-specific configuration approach
Configuration file formats and locations
Default configuration handling
Secret management approach
Configuration documentation requirements
Configuration validation process
Resource Organization
Guidelines for managing project resources:
Static resource directory structure
Resource naming conventions
Resource versioning approach
Resource referencing standards
Resource optimization requirements
Internationalization resource structure
Build System Structure
Standards for build configuration:
Build script organization
Build configuration file placement
Build artifact organization
CI/CD configuration location
Build dependency management
Build environment configuration
Test Organization
Guidelines for organizing tests:
Test directory structure
Test file naming conventions
Test resource management
Mock and fixture organization
Test configuration placement
Test report output location
Documentation Structure
Standards for documentation organization:
Documentation file formats
Documentation directory hierarchy
API documentation organization
User guide structure
Developer documentation placement
Code example organization
Dependency Management
Guidelines for managing external dependencies:
Dependency declaration location
Dependency version management approach
Third-party code integration structure
Vendor code management
Package organization
Dependency documentation requirements
Version Control Structure
Standards for repository organization:
Branch naming conventions
Repository organization for monorepo/multi-repo
Version tagging approach
Ignore file configuration
Repository-specific configuration
Pre-commit hook organization
Deployment Structure
Guidelines for deployment configuration:
Deployment script organization
Environment configuration structure
Service definition organization
Container configuration placement
Infrastructure-as-code organization
Release artifact structure
Rationale
The Project Structure Rules provide several key benefits:
Maintainability: Clear structure makes code easier to maintain
Onboarding: New team members can quickly understand the project organization
Scalability: Structure supports growth without requiring reorganization
Consistency: Prevents ad-hoc organization decisions that create confusion
Efficiency: Developers can quickly locate and organize project elements