/**
 * Does It ARM Project Rules
 * Customized AI behavior for maintaining app compatibility database
 * 
 * Refactor in as small steps as possible so that tests are always passing. 
 * Be sure to thoroughly comment added code
 * Verify that it's working with a test command
 */
module.exports = {
    // Core project settings
    project: {
        name: 'doesitarm',
        type: 'astro',
        packageManager: 'pnpm',
        nodeVersion: '>=22'
    },

    // Code style preferences
    style: {
        indentSize: 4,
        maxLineLength: 72,
        quotes: 'single',
        semicolons: false
    },

    // Testing configuration 
    testing: {
        framework: 'vitest',
        pattern: 'test/**/*.test.js',
        coverage: true
    },

    // Documentation rules
    docs: {
        // Write comments as user stories instead of implementation details
        commentStyle: 'userStory',
        jsdoc: {
            required: true,
            params: true,
            returns: true
        }
    },

    // Function patterns
    functions: {
        // Prefer options object for 2+ params
        preferOptionsObject: true,
        
        // Always use named exports except for pages
        exports: 'named',
        
        // Functional components only
        reactComponents: 'functional'
    },

    // Variable naming
    naming: {
        // Avoid generic names
        forbidden: [
            'base64',
            'text',
            'data',
            'item',
            'content'
        ],
        
        // Prefer descriptive names
        preferred: {
            'base64': '*Base64',
            'text': '*Text',
            'data': '*Data',
            'content': '*Content'
        }
    },

    // Search functionality rules
    search: {
        // Stork search configuration
        stork: {
            version: '1.6.0',
            indexPath: 'static/search-index.st',
            tomlPath: 'static/stork.toml'
        }
    },

    // Build process
    build: {
        // Files to ignore
        ignore: [
            'node_modules',
            'dist',
            '.cache',
            '.DS_Store'
        ],
        
        // Required environment variables
        requiredEnv: [
            'PUBLIC_URL',
            'PUBLIC_API_DOMAIN',
            'COMMITS_SOURCE',
            'GAMES_SOURCE'
        ]
    },

    // Deployment configurations
    deployment: {
        platforms: ['netlify', 'vercel'],
        netlify: {
            buildCommand: 'pnpm run netlify-build',
            publishDir: 'dist/',
            functions: {
                directory: 'dist/functions',
                bundler: 'esbuild'
            },
            environment: {
                NPM_FLAGS: '--no-optional',
                CI: '1'
            }
        },
        vercel: {
            buildCommand: 'pnpm run vercel-build',
            distDir: 'static',
            buildSteps: [
                'test-prebuild',
                'build-lists-and-api', 
                'test-postbuild-api'
            ],
            github: {
                silent: true
            }
        }
    }
} 