# Project Analysis Schema # Defines the structure for project analysis output version: "1.0" description: Schema for analyzing project structure before documentation generation project_analysis: project: type: object required: true fields: name: type: string required: true source: package.json/name or directory name version: type: string required: false source: package.json/version description: type: string required: false source: package.json/description or README.md first paragraph type: type: enum values: [node, python, rust, go, java, dotnet, ruby, php, other] detection: node: package.json python: requirements.txt, pyproject.toml, setup.py rust: Cargo.toml go: go.mod java: pom.xml, build.gradle dotnet: "*.csproj, *.sln" ruby: Gemfile php: composer.json repository: type: string source: package.json/repository or .git/config tech_stack: type: object required: true fields: language: type: string description: Primary programming language framework: type: string description: Main application framework detection: next: "next" in dependencies react: "react" in dependencies without "next" vue: "vue" in dependencies angular: "@angular/core" in dependencies express: "express" in dependencies fastapi: "fastapi" in requirements django: "django" in requirements flask: "flask" in requirements rails: "rails" in Gemfile database: type: string description: Database system if any detection: prisma: "@prisma/client" in dependencies mongoose: "mongoose" in dependencies typeorm: "typeorm" in dependencies sequelize: "sequelize" in dependencies sqlalchemy: "sqlalchemy" in requirements ui_framework: type: string description: UI component framework if any detection: tailwind: "tailwindcss" in devDependencies mui: "@mui/material" in dependencies chakra: "@chakra-ui/react" in dependencies shadcn: "shadcn" patterns in components key_dependencies: type: array items: name: string version: string purpose: string # Plain English explanation categorization: core: Framework, runtime dependencies database: ORM, database clients auth: Authentication libraries ui: UI component libraries testing: Test frameworks build: Build tools, bundlers utility: Helper libraries structure: type: object required: true fields: source_dir: type: string description: Main source code directory detection: - src/ - app/ - lib/ - source/ directories: type: array items: path: string purpose: string # Plain English description file_count: integer key_files: array common_mappings: src/components: "UI components" src/pages: "Application pages/routes" src/api: "API route handlers" src/lib: "Utility functions and shared code" src/hooks: "Custom React hooks" src/context: "React context providers" src/store: "State management" src/types: "TypeScript type definitions" src/styles: "Global styles and themes" prisma/: "Database schema and migrations" public/: "Static assets" tests/: "Test files" __tests__/: "Test files (Jest convention)" features: type: array description: Main features/capabilities of the project items: name: string description: string # Plain English technical_notes: string # For engineers files: array # Key file paths detection_patterns: authentication: keywords: [auth, login, logout, session, jwt, oauth] files: ["**/auth/**", "**/login/**"] user_management: keywords: [user, profile, account, register, signup] files: ["**/user/**", "**/users/**"] api: keywords: [api, endpoint, route, handler] files: ["**/api/**", "**/routes/**"] database: keywords: [model, entity, schema, migration, prisma] files: ["**/models/**", "**/prisma/**"] file_upload: keywords: [upload, file, storage, s3, blob] files: ["**/upload/**", "**/storage/**"] search: keywords: [search, filter, query] files: ["**/search/**"] notifications: keywords: [notification, email, sms, push] files: ["**/notification/**", "**/email/**"] components: type: array description: UI components found in the project items: id: string # component_ name: string # PascalCase path: string description: string props: string # Props summary dependencies: array # Imported components detection: react: "export (default )?(function|const) [A-Z]" vue: "