{
    "executors": {
        "generate": {
            "implementation": "./src/executors/generate/executor",
            "schema": "./src/executors/generate/schema.json",
            "description": "Generate the architecture dependency graph and save it"
        },
        "visualize": {
            "implementation": "./src/executors/visualize/executor",
            "schema": "./src/executors/visualize/schema.json",
            "description": "Generate visual representations of the architecture graph"
        },
        "visualize-runtime": {
            "implementation": "./src/executors/visualize-runtime/executor",
            "schema": "./src/executors/visualize-runtime/schema.json",
            "description": "Render the runtime microservice graph (runtime-dependencies.json)"
        },
        "validate-runtime-architecture": {
            "implementation": "./src/executors/validate-runtime-architecture/executor",
            "schema": "./src/executors/validate-runtime-architecture/schema.json",
            "description": "Validate the runtime microservice graph: no disallowed cycles, unchanged vs committed"
        },
        "validate-no-architecture-cycles": {
            "implementation": "./src/executors/validate-no-architecture-cycles/executor",
            "schema": "./src/executors/validate-no-architecture-cycles/schema.json",
            "description": "Validate the architecture graph has no circular project dependencies"
        },
        "validate-architecture-unchanged": {
            "implementation": "./src/executors/validate-architecture-unchanged/executor",
            "schema": "./src/executors/validate-architecture-unchanged/schema.json",
            "description": "Validate the architecture graph matches the saved blessed graph"
        },
        "validate-api-relations": {
            "implementation": "./src/executors/validate-api-relations/executor",
            "schema": "./src/executors/validate-api-relations/schema.json",
            "description": "Validate every server/client api-lib dependency is implemented or used (no unexplained edges)"
        },
        "validate-api-lib-tag": {
            "implementation": "./src/executors/validate-api-lib-tag/executor",
            "schema": "./src/executors/validate-api-lib-tag/schema.json",
            "description": "Validate role:api-lib matches the code (exports an @ApiPath/@Rpc/@PubSub contract), both directions"
        },
        "validate-no-file-import-cycles": {
            "implementation": "./src/executors/validate-no-file-import-cycles/executor",
            "schema": "./src/executors/validate-no-file-import-cycles/schema.json",
            "description": "Check a project for circular file imports with madge (config-driven on/off + grace window)"
        },
        "validate-packagejson": {
            "implementation": "./src/executors/validate-packagejson/executor",
            "schema": "./src/executors/validate-packagejson/schema.json",
            "description": "Validate package.json dependencies match project.json build dependencies"
        },
        "validate-ts-in-src": {
            "implementation": "./src/executors/validate-ts-in-src/executor",
            "schema": "./src/executors/validate-ts-in-src/schema.json",
            "description": "Validate all .ts files in projects are inside the src/ directory"
        },
        "validate-checklist-docs": {
            "implementation": "./src/executors/validate-checklist-docs/executor",
            "schema": "./src/executors/validate-checklist-docs/schema.json",
            "description": "Validate the pr-gate checklists[] block: docs exist, patterns compile, ids unique, blockMessage on BLOCK"
        },
        "validate-no-any-unknown": {
            "implementation": "./src/executors/validate-no-any-unknown/executor",
            "schema": "./src/executors/validate-no-any-unknown/schema.json",
            "description": "Validate no any/unknown keywords are used - use specific types instead"
        },
        "validate-new-methods": {
            "implementation": "./src/executors/validate-new-methods/executor",
            "schema": "./src/executors/validate-new-methods/schema.json",
            "description": "Validate newly added methods don't exceed maximum line count"
        },
        "validate-modified-methods": {
            "implementation": "./src/executors/validate-modified-methods/executor",
            "schema": "./src/executors/validate-modified-methods/schema.json",
            "description": "Validate modified methods don't exceed maximum line count"
        },
        "validate-modified-files": {
            "implementation": "./src/executors/validate-modified-files/executor",
            "schema": "./src/executors/validate-modified-files/schema.json",
            "description": "Validate modified files don't exceed maximum line count"
        },
        "validate-return-types": {
            "implementation": "./src/executors/validate-return-types/executor",
            "schema": "./src/executors/validate-return-types/schema.json",
            "description": "Validate methods have explicit return type annotations"
        },
        "validate-no-inline-types": {
            "implementation": "./src/executors/validate-no-inline-types/executor",
            "schema": "./src/executors/validate-no-inline-types/schema.json",
            "description": "Validate no inline type literals are used - prefer named types"
        },
        "validate-no-implicit-any": {
            "implementation": "./src/executors/validate-no-implicit-any/executor",
            "schema": "./src/executors/validate-no-implicit-any/schema.json",
            "description": "Validate no implicit-any inferences on parameters, variables, or properties"
        },
        "validate-catch-error-pattern": {
            "implementation": "./src/executors/validate-catch-error-pattern/executor",
            "schema": "./src/executors/validate-catch-error-pattern/schema.json",
            "description": "Validate catch blocks follow standardized pattern: catch (err: unknown) { const error = toError(err); }"
        },
        "validate-no-unmanaged-exceptions": {
            "implementation": "./src/executors/validate-no-unmanaged-exceptions/executor",
            "schema": "./src/executors/validate-no-unmanaged-exceptions/schema.json",
            "description": "Validate try/catch blocks are not used outside chokepoints"
        },
        "validate-no-destructure": {
            "implementation": "./src/executors/validate-no-destructure/executor",
            "schema": "./src/executors/validate-no-destructure/schema.json",
            "description": "Validate no destructuring patterns are used - use explicit property access instead"
        },
        "validate-no-direct-api-resolver": {
            "implementation": "./src/executors/validate-no-direct-api-resolver/executor",
            "schema": "./src/executors/validate-no-direct-api-resolver/schema.json",
            "description": "Validate resolvers use services (not APIs) and components subscribe to observables (not route.snapshot.data)"
        },
        "validate-dtos": {
            "implementation": "./src/executors/validate-dtos/executor",
            "schema": "./src/executors/validate-dtos/schema.json",
            "description": "Validate DTO fields match Prisma Dbo model fields"
        },
        "validate-prisma-converters": {
            "implementation": "./src/executors/validate-prisma-converters/executor",
            "schema": "./src/executors/validate-prisma-converters/schema.json",
            "description": "Validate Prisma converter method patterns and Dto creation locations"
        },
        "validate-code": {
            "implementation": "./src/executors/validate-code/executor",
            "schema": "./src/executors/validate-code/schema.json",
            "description": "Combined validation for new methods, modified methods, and file sizes"
        },
        "help": {
            "implementation": "./src/executors/help/executor",
            "schema": "./src/executors/help/schema.json",
            "description": "Display help for @webpieces/nx-webpieces-rules commands and targets"
        },
        "validate-versions-locked": {
            "implementation": "./src/executors/validate-versions-locked/executor",
            "schema": "./src/executors/validate-versions-locked/schema.json",
            "description": "Validate package.json versions are locked (no semver ranges) and npm ci compatible"
        },
        "validate-eslint-sync": {
            "implementation": "./src/executors/validate-eslint-sync/executor",
            "schema": "./src/executors/validate-eslint-sync/schema.json",
            "description": "Validate that workspace and template eslint.webpieces.config.mjs files have identical rules"
        },
        "di-graph-generate": {
            "implementation": "./src/executors/di-graph-generate/executor",
            "schema": "./src/executors/di-graph-generate/schema.json",
            "description": "Per-project: generate the Inversify DI dependency DAG into design.json + design.md at the project root"
        },
        "validate-nx-wiring": {
            "implementation": "./src/executors/validate-nx-wiring/executor",
            "schema": "./src/executors/validate-nx-wiring/schema.json",
            "description": "Validate the webpieces validators are wired into the build via nx.json targetDefaults dependsOn"
        }
    }
}
