@shanyucoder/flowgrid 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +194 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/IntegrationContext.cs +56 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/IntegrationGen.csproj +16 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/NameUtil.cs +18 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/Program.cs +265 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/Templates/application_service.cs.scriban +27 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/Templates/handoff.md.scriban +15 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/Templates/infrastructure_mock.cs.scriban +20 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/Templates/presenter.cs.scriban +41 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/Templates/service_test.cs.scriban +17 -0
- package/adapters/dotnet-integration/codegen/runners/IntegrationGen/YamlMap.cs +49 -0
- package/adapters/dotnet-integration/registries/dotnet-integration.codegen.registry.json +8 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/LineContext.cs +43 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/LineGen.csproj +16 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/NameUtil.cs +12 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/Program.cs +201 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/TemplateRenderer.cs +22 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/Templates/handoff.md.scriban +15 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/Templates/service.cs.scriban +21 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/Templates/service_interface.cs.scriban +20 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/Templates/view_model.cs.scriban +28 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/Templates/view_model_test.cs.scriban +22 -0
- package/adapters/dotnet-line/codegen/runners/LineGen/YamlMap.cs +49 -0
- package/adapters/dotnet-line/registries/dotnet-line.codegen.registry.json +8 -0
- package/adapters/fastapi/codegen/runners/fast_gen/__init__.py +1 -0
- package/adapters/fastapi/codegen/runners/fast_gen/__main__.py +3 -0
- package/adapters/fastapi/codegen/runners/fast_gen/cli.py +175 -0
- package/adapters/fastapi/codegen/runners/fast_gen/plan.py +285 -0
- package/adapters/fastapi/codegen/runners/fast_gen/read_spec.py +34 -0
- package/adapters/fastapi/codegen/runners/fast_gen/registry.py +9 -0
- package/adapters/fastapi/codegen/runners/fast_gen/wire.py +28 -0
- package/adapters/fastapi/codegen/runners/fast_gen/write_files.py +232 -0
- package/adapters/fastapi/codegen/runners/generate +5 -0
- package/adapters/fastapi/codegen/runners/validate-registry.mjs +54 -0
- package/adapters/fastapi/codegen/templates/presenter.py.j2 +11 -0
- package/adapters/fastapi/codegen/templates/router.py.j2 +69 -0
- package/adapters/fastapi/codegen/templates/schemas_request.py.j2 +26 -0
- package/adapters/fastapi/codegen/templates/schemas_response.py.j2 +7 -0
- package/adapters/fastapi/codegen/templates/service_create.py.j2 +10 -0
- package/adapters/fastapi/codegen/templates/service_delete.py.j2 +10 -0
- package/adapters/fastapi/codegen/templates/service_search.py.j2 +9 -0
- package/adapters/fastapi/codegen/templates/service_update.py.j2 +11 -0
- package/adapters/fastapi/codegen/templates/store.py.j2 +1 -0
- package/adapters/fastapi/codegen/templates/test_router.py.j2 +13 -0
- package/adapters/fastapi/registries/codegen.registry.json +47 -0
- package/adapters/fastapi/registries/common.registry.json +23 -0
- package/adapters/fastapi/registries/unit-test.registry.json +12 -0
- package/adapters/fastapi/unitgen/runners/fast_unit_gen/__init__.py +1 -0
- package/adapters/fastapi/unitgen/runners/fast_unit_gen/cli.py +188 -0
- package/adapters/fastapi/unitgen/runners/generate +5 -0
- package/adapters/fastapi/unitgen/runners/validate-registry.mjs +48 -0
- package/adapters/fastapi/unitgen/templates/test_service.py.j2 +12 -0
- package/adapters/laravel/codegen/runners/README.md +45 -0
- package/adapters/laravel/codegen/runners/generate.mjs +296 -0
- package/adapters/laravel/codegen/runners/lib/codegen-registry.mjs +60 -0
- package/adapters/laravel/codegen/runners/lib/detect-existing.mjs +84 -0
- package/adapters/laravel/codegen/runners/lib/exec-artisan.mjs +86 -0
- package/adapters/laravel/codegen/runners/lib/parse-tags.mjs +49 -0
- package/adapters/laravel/codegen/runners/lib/plan.mjs +122 -0
- package/adapters/laravel/codegen/runners/lib/read-spec.mjs +30 -0
- package/adapters/laravel/codegen/runners/lib/resolve-commands.mjs +234 -0
- package/adapters/laravel/codegen/runners/lib/stub-services.mjs +91 -0
- package/adapters/laravel/codegen/runners/lib/tag-plan.mjs +155 -0
- package/adapters/laravel/codegen/runners/lib/validate.mjs +77 -0
- package/adapters/laravel/codegen/runners/lib/workspace-analysis.mjs +202 -0
- package/adapters/laravel/codegen/runners/lib/write-handoff.mjs +149 -0
- package/adapters/laravel/codegen/runners/lib/write-manifest.mjs +81 -0
- package/adapters/laravel/codegen/runners/validate-registry.mjs +52 -0
- package/adapters/laravel/php/README.md +26 -0
- package/adapters/laravel/php/bin/unit-gen.php +307 -0
- package/adapters/laravel/php/bin/validate-registry.php +61 -0
- package/adapters/laravel/php/composer.json +16 -0
- package/adapters/laravel/php/src/ArtisanRunner.php +56 -0
- package/adapters/laravel/php/src/Autoload.php +15 -0
- package/adapters/laravel/php/src/CodegenManifest.php +28 -0
- package/adapters/laravel/php/src/ParseTags.php +62 -0
- package/adapters/laravel/php/src/ProjectResolver.php +100 -0
- package/adapters/laravel/php/src/SpecExtract.php +193 -0
- package/adapters/laravel/php/src/SpecReader.php +57 -0
- package/adapters/laravel/php/src/TemplateRenderer.php +134 -0
- package/adapters/laravel/php/src/UnitPlanner.php +396 -0
- package/adapters/laravel/php/src/UnitRegistry.php +100 -0
- package/adapters/laravel/php/src/WhenEval.php +111 -0
- package/adapters/laravel/php/src/WorkspaceInspector.php +240 -0
- package/adapters/laravel/php/src/WriteFiles.php +194 -0
- package/adapters/laravel/php/templates/actions/relationship-sync.behavior.test.php.stub +50 -0
- package/adapters/laravel/php/templates/controllers/controller-invoke.test.php.stub +34 -0
- package/adapters/laravel/php/templates/queries/chain-scope.behavior.test.php.stub +34 -0
- package/adapters/laravel/php/templates/requests/default-per-page.behavior.test.php.stub +19 -0
- package/adapters/laravel/php/templates/requests/request-enriched.test.php.stub +66 -0
- package/adapters/laravel/php/templates/requests/rules-keys.behavior.test.php.stub +19 -0
- package/adapters/laravel/php/templates/resources/nested-relations.behavior.test.php.stub +25 -0
- package/adapters/laravel/php/templates/resources/openapi-shape.behavior.test.php.stub +28 -0
- package/adapters/laravel/php/templates/support/ModuleTestSupport.php.stub +32 -0
- package/adapters/laravel/registries/codegen.registry.json +190 -0
- package/adapters/laravel/registries/unit-test.registry.json +179 -0
- package/adapters/laravel/shared/project.mjs +62 -0
- package/adapters/nestjs/README.md +16 -0
- package/adapters/nestjs/nest-unitgen/runners/README.md +17 -0
- package/adapters/nestjs/nest-unitgen/runners/generate.mjs +113 -0
- package/adapters/nestjs/nest-unitgen/runners/lib/render.mjs +14 -0
- package/adapters/nestjs/nest-unitgen/runners/lib/write-files.mjs +40 -0
- package/adapters/nestjs/nest-unitgen/runners/validate-registry.mjs +35 -0
- package/adapters/nestjs/nest-unitgen/templates/commands/create.handler.spec.ts.hbs +32 -0
- package/adapters/nestjs/nest-unitgen/templates/commands/delete.handler.spec.ts.hbs +32 -0
- package/adapters/nestjs/nest-unitgen/templates/commands/update.handler.spec.ts.hbs +32 -0
- package/adapters/nestjs/nest-unitgen/templates/handlers/search.handler.spec.ts.hbs +33 -0
- package/adapters/nestjs/nest-unitgen/templates/resource/entity.resource.spec.ts.hbs +22 -0
- package/adapters/nestjs/nestgen/runners/README.md +30 -0
- package/adapters/nestjs/nestgen/runners/generate.mjs +87 -0
- package/adapters/nestjs/nestgen/runners/lib/orm-fields.mjs +253 -0
- package/adapters/nestjs/nestgen/runners/lib/plan.mjs +124 -0
- package/adapters/nestjs/nestgen/runners/lib/read-spec.mjs +52 -0
- package/adapters/nestjs/nestgen/runners/lib/render.mjs +52 -0
- package/adapters/nestjs/nestgen/runners/lib/workspace-analysis.mjs +80 -0
- package/adapters/nestjs/nestgen/runners/lib/write-files.mjs +49 -0
- package/adapters/nestjs/nestgen/runners/validate-registry.mjs +36 -0
- package/adapters/nestjs/nestgen/templates/commands/create.command.ts.hbs +3 -0
- package/adapters/nestjs/nestgen/templates/commands/create.handler.ts.hbs +34 -0
- package/adapters/nestjs/nestgen/templates/commands/delete.command.ts.hbs +3 -0
- package/adapters/nestjs/nestgen/templates/commands/delete.handler.ts.hbs +33 -0
- package/adapters/nestjs/nestgen/templates/commands/update.command.ts.hbs +6 -0
- package/adapters/nestjs/nestgen/templates/commands/update.handler.ts.hbs +34 -0
- package/adapters/nestjs/nestgen/templates/entity.controller.ts.hbs +51 -0
- package/adapters/nestjs/nestgen/templates/entity.resource.ts.hbs +45 -0
- package/adapters/nestjs/nestgen/templates/module.module.ts.hbs +38 -0
- package/adapters/nestjs/nestgen/templates/orm/prisma.entity.ts.hbs +10 -0
- package/adapters/nestjs/nestgen/templates/orm/prisma.model.prisma.hbs +9 -0
- package/adapters/nestjs/nestgen/templates/orm/typeorm.entity.ts.hbs +20 -0
- package/adapters/nestjs/nestgen/templates/queries/search.handler.ts.hbs +36 -0
- package/adapters/nestjs/nestgen/templates/queries/search.query.ts.hbs +3 -0
- package/adapters/nestjs/registries/nest-codegen.registry.json +41 -0
- package/adapters/nestjs/registries/nest-unit-test.registry.json +31 -0
- package/adapters/nextjs/codegen/runners/README.md +68 -0
- package/adapters/nextjs/codegen/runners/generate.mjs +236 -0
- package/adapters/nextjs/codegen/runners/lib/component-resolve.mjs +79 -0
- package/adapters/nextjs/codegen/runners/lib/design-registry.mjs +333 -0
- package/adapters/nextjs/codegen/runners/lib/naming.mjs +236 -0
- package/adapters/nextjs/codegen/runners/lib/page-lifecycle.mjs +258 -0
- package/adapters/nextjs/codegen/runners/lib/plan.mjs +399 -0
- package/adapters/nextjs/codegen/runners/lib/read-spec.mjs +7 -0
- package/adapters/nextjs/codegen/runners/lib/render.mjs +47 -0
- package/adapters/nextjs/codegen/runners/lib/resolve-hub-id.mjs +288 -0
- package/adapters/nextjs/codegen/runners/lib/slots.mjs +121 -0
- package/adapters/nextjs/codegen/runners/lib/web-paths.mjs +64 -0
- package/adapters/nextjs/codegen/runners/lib/write-files.mjs +106 -0
- package/adapters/nextjs/codegen/runners/validate-registry.mjs +99 -0
- package/adapters/nextjs/codegen/templates/common/confirm-dialog.hbs +81 -0
- package/adapters/nextjs/codegen/templates/common/delete-flow.hbs +106 -0
- package/adapters/nextjs/codegen/templates/create/form.tsx.hbs +45 -0
- package/adapters/nextjs/codegen/templates/create/mock.ts.hbs +15 -0
- package/adapters/nextjs/codegen/templates/create/page.tsx.hbs +12 -0
- package/adapters/nextjs/codegen/templates/create/service.ts.hbs +25 -0
- package/adapters/nextjs/codegen/templates/create/useForm.ts.hbs +59 -0
- package/adapters/nextjs/codegen/templates/create/validation.ts.hbs +16 -0
- package/adapters/nextjs/codegen/templates/list/mock.ts.hbs +25 -0
- package/adapters/nextjs/codegen/templates/list/page.custom.tsx.hbs +65 -0
- package/adapters/nextjs/codegen/templates/list/page.tsx.hbs +37 -0
- package/adapters/nextjs/codegen/templates/list/service.ts.hbs +37 -0
- package/adapters/nextjs/codegen/templates/list/useList.ts.hbs +93 -0
- package/adapters/nextjs/codegen/templates/list/useListColumns.ts.hbs +27 -0
- package/adapters/nextjs/codegen/templates/list/useListExport.ts.hbs +31 -0
- package/adapters/nextjs/codegen/templates/list/useListFilters.ts.hbs +50 -0
- package/adapters/nextjs/codegen/templates/store/store.ts.hbs +28 -0
- package/adapters/nextjs/contractgen/runners/README.md +47 -0
- package/adapters/nextjs/contractgen/runners/generate.mjs +108 -0
- package/adapters/nextjs/contractgen/runners/lib/field-zod.mjs +83 -0
- package/adapters/nextjs/contractgen/runners/lib/naming.mjs +46 -0
- package/adapters/nextjs/contractgen/runners/lib/plan.mjs +147 -0
- package/adapters/nextjs/contractgen/runners/lib/render.mjs +57 -0
- package/adapters/nextjs/contractgen/runners/lib/write-files.mjs +54 -0
- package/adapters/nextjs/contractgen/runners/validate-registry.mjs +54 -0
- package/adapters/nextjs/contractgen/templates/index.ts.hbs +8 -0
- package/adapters/nextjs/contractgen/templates/read.schema.ts.hbs +22 -0
- package/adapters/nextjs/contractgen/templates/relationships.meta.ts.hbs +23 -0
- package/adapters/nextjs/contractgen/templates/types.ts.hbs +15 -0
- package/adapters/nextjs/contractgen/templates/write.schema.ts.hbs +11 -0
- package/adapters/nextjs/registries/contract-field.registry.json +22 -0
- package/adapters/nextjs/unitgen/runners/README.md +12 -0
- package/adapters/nextjs/unitgen/runners/generate.mjs +201 -0
- package/adapters/nextjs/unitgen/runners/lib/parse-tags.mjs +67 -0
- package/adapters/nextjs/unitgen/runners/lib/plan.mjs +563 -0
- package/adapters/nextjs/unitgen/runners/lib/read-codegen.mjs +42 -0
- package/adapters/nextjs/unitgen/runners/lib/render.mjs +32 -0
- package/adapters/nextjs/unitgen/runners/lib/resolve-model.mjs +28 -0
- package/adapters/nextjs/unitgen/runners/lib/unit-registry.mjs +52 -0
- package/adapters/nextjs/unitgen/runners/lib/write-files.mjs +103 -0
- package/adapters/nextjs/unitgen/runners/lib/write-spec-tags.mjs +37 -0
- package/adapters/nextjs/unitgen/runners/validate-registry.mjs +74 -0
- package/adapters/nextjs/unitgen/templates/hooks/use-form.test.ts.hbs +51 -0
- package/adapters/nextjs/unitgen/templates/hooks/use-list.test.ts.hbs +63 -0
- package/adapters/nextjs/unitgen/templates/models/schema.test.ts.hbs +24 -0
- package/adapters/nextjs/unitgen/templates/services/service.create.test.ts.hbs +28 -0
- package/adapters/nextjs/unitgen/templates/services/service.export.test.ts.hbs +20 -0
- package/adapters/nextjs/unitgen/templates/services/service.search.test.ts.hbs +25 -0
- package/adapters/nextjs/unitgen/templates/services/service.wire.test.ts.hbs +37 -0
- package/adapters/nextjs/unitgen/templates/validations/schemas.test.ts.hbs +19 -0
- package/adapters/nuxt4/codegen/runners/README.md +83 -0
- package/adapters/nuxt4/codegen/runners/generate.mjs +236 -0
- package/adapters/nuxt4/codegen/runners/lib/component-resolve.mjs +66 -0
- package/adapters/nuxt4/codegen/runners/lib/design-registry.mjs +332 -0
- package/adapters/nuxt4/codegen/runners/lib/naming.mjs +246 -0
- package/adapters/nuxt4/codegen/runners/lib/page-lifecycle.mjs +254 -0
- package/adapters/nuxt4/codegen/runners/lib/plan.mjs +370 -0
- package/adapters/nuxt4/codegen/runners/lib/read-spec.mjs +7 -0
- package/adapters/nuxt4/codegen/runners/lib/render.mjs +47 -0
- package/adapters/nuxt4/codegen/runners/lib/resolve-hub-id.mjs +288 -0
- package/adapters/nuxt4/codegen/runners/lib/slots.mjs +121 -0
- package/adapters/nuxt4/codegen/runners/lib/write-files.mjs +106 -0
- package/adapters/nuxt4/codegen/runners/validate-registry.mjs +121 -0
- package/adapters/nuxt4/codegen/templates/create/form.vue.hbs +26 -0
- package/adapters/nuxt4/codegen/templates/create/mock.ts.hbs +11 -0
- package/adapters/nuxt4/codegen/templates/create/model.schema.ts.hbs +14 -0
- package/adapters/nuxt4/codegen/templates/create/model.types.ts.hbs +9 -0
- package/adapters/nuxt4/codegen/templates/create/page.vue.hbs +11 -0
- package/adapters/nuxt4/codegen/templates/create/service.ts.hbs +25 -0
- package/adapters/nuxt4/codegen/templates/create/useForm.ts.hbs +29 -0
- package/adapters/nuxt4/codegen/templates/create/validation.ts.hbs +12 -0
- package/adapters/nuxt4/codegen/templates/list/mock.ts.hbs +27 -0
- package/adapters/nuxt4/codegen/templates/list/model.index.ts.hbs +2 -0
- package/adapters/nuxt4/codegen/templates/list/model.schema.ts.hbs +16 -0
- package/adapters/nuxt4/codegen/templates/list/model.types.ts.hbs +9 -0
- package/adapters/nuxt4/codegen/templates/list/page.custom.vue.hbs +105 -0
- package/adapters/nuxt4/codegen/templates/list/page.vue.hbs +55 -0
- package/adapters/nuxt4/codegen/templates/list/service.ts.hbs +37 -0
- package/adapters/nuxt4/codegen/templates/list/useList.ts.hbs +82 -0
- package/adapters/nuxt4/codegen/templates/list/useListColumns.ts.hbs +21 -0
- package/adapters/nuxt4/codegen/templates/list/useListExport.ts.hbs +26 -0
- package/adapters/nuxt4/codegen/templates/list/useListFilters.ts.hbs +45 -0
- package/adapters/nuxt4/codegen/templates/partials/component-stub.vue.hbs +44 -0
- package/adapters/nuxt4/codegen/templates/store/store.ts.hbs +30 -0
- package/adapters/nuxt4/unitgen/runners/README.md +12 -0
- package/adapters/nuxt4/unitgen/runners/generate.mjs +201 -0
- package/adapters/nuxt4/unitgen/runners/lib/parse-tags.mjs +49 -0
- package/adapters/nuxt4/unitgen/runners/lib/plan.mjs +567 -0
- package/adapters/nuxt4/unitgen/runners/lib/read-codegen.mjs +42 -0
- package/adapters/nuxt4/unitgen/runners/lib/render.mjs +32 -0
- package/adapters/nuxt4/unitgen/runners/lib/unit-registry.mjs +52 -0
- package/adapters/nuxt4/unitgen/runners/lib/write-files.mjs +103 -0
- package/adapters/nuxt4/unitgen/runners/lib/write-spec-tags.mjs +37 -0
- package/adapters/nuxt4/unitgen/runners/validate-registry.mjs +74 -0
- package/adapters/nuxt4/unitgen/templates/composables/use-form.test.ts.hbs +56 -0
- package/adapters/nuxt4/unitgen/templates/composables/use-list.test.ts.hbs +59 -0
- package/adapters/nuxt4/unitgen/templates/models/schema.test.ts.hbs +24 -0
- package/adapters/nuxt4/unitgen/templates/services/service.create.test.ts.hbs +28 -0
- package/adapters/nuxt4/unitgen/templates/services/service.export.test.ts.hbs +20 -0
- package/adapters/nuxt4/unitgen/templates/services/service.search.test.ts.hbs +25 -0
- package/adapters/nuxt4/unitgen/templates/services/service.wire.test.ts.hbs +37 -0
- package/adapters/nuxt4/unitgen/templates/validations/schemas.test.ts.hbs +19 -0
- package/adapters/shared/common-gen.mjs +599 -0
- package/adapters/shared/common-ui.catalog.json +224 -0
- package/adapters/shared/css-adapters/shadcn.mjs +56 -0
- package/adapters/shared/css-adapters/winforms.mjs +46 -0
- package/adapters/shared/css-gen.mjs +87 -0
- package/adapters/shared/fe-layout-profiles.mjs +74 -0
- package/adapters/shared/fe-ui-inventory.mjs +62 -0
- package/adapters/shared/i18n-merge.mjs +56 -0
- package/adapters/shared/read-fe-ir.mjs +64 -0
- package/adapters/shared/resolve-cli.mjs +16 -0
- package/adapters/shared/resolve-hub-id.mjs +381 -0
- package/adapters/shared/surface-common.mjs +41 -0
- package/bin/flowgrid-mcp.mjs +29 -0
- package/bin/flowgrid.mjs +915 -0
- package/bin/lib/agent-mcp.mjs +70 -0
- package/bin/lib/agent-profiles.mjs +127 -0
- package/bin/lib/audit-run.mjs +96 -0
- package/bin/lib/cli-update.mjs +254 -0
- package/bin/lib/doctor.mjs +163 -0
- package/bin/lib/harness-overlay.mjs +80 -0
- package/bin/lib/harness-sync.mjs +427 -0
- package/bin/lib/init-scaffold.mjs +158 -0
- package/bin/lib/npm-registry.mjs +45 -0
- package/bin/lib/project-gitignore.mjs +39 -0
- package/dist/codegen/adapters/run-be.d.ts +13 -0
- package/dist/codegen/adapters/run-be.js +190 -0
- package/dist/codegen/adapters/run-be.js.map +1 -0
- package/dist/codegen/adapters/run.d.ts +44 -0
- package/dist/codegen/adapters/run.js +146 -0
- package/dist/codegen/adapters/run.js.map +1 -0
- package/dist/codegen/config/project-root.d.ts +13 -0
- package/dist/codegen/config/project-root.js +64 -0
- package/dist/codegen/config/project-root.js.map +1 -0
- package/dist/codegen/mcp/tools.d.ts +2 -0
- package/dist/codegen/mcp/tools.js +138 -0
- package/dist/codegen/mcp/tools.js.map +1 -0
- package/dist/codegen/registries/common.d.ts +28 -0
- package/dist/codegen/registries/common.js +54 -0
- package/dist/codegen/registries/common.js.map +1 -0
- package/dist/dna/config/project-root.d.ts +12 -0
- package/dist/dna/config/project-root.js +41 -0
- package/dist/dna/config/project-root.js.map +1 -0
- package/dist/dna/profile/detect.d.ts +14 -0
- package/dist/dna/profile/detect.js +159 -0
- package/dist/dna/profile/detect.js.map +1 -0
- package/dist/dna/profile/manifest.d.ts +17 -0
- package/dist/dna/profile/manifest.js +10 -0
- package/dist/dna/profile/manifest.js.map +1 -0
- package/dist/docs/cli/engines.d.ts +13 -0
- package/dist/docs/cli/engines.js +53 -0
- package/dist/docs/cli/engines.js.map +1 -0
- package/dist/docs/config/docs-root.d.ts +8 -0
- package/dist/docs/config/docs-root.js +66 -0
- package/dist/docs/config/docs-root.js.map +1 -0
- package/dist/docs/mcp/tools.d.ts +2 -0
- package/dist/docs/mcp/tools.js +351 -0
- package/dist/docs/mcp/tools.js.map +1 -0
- package/dist/docs/scan/ids.d.ts +29 -0
- package/dist/docs/scan/ids.js +237 -0
- package/dist/docs/scan/ids.js.map +1 -0
- package/dist/docs/scan/links.d.ts +10 -0
- package/dist/docs/scan/links.js +98 -0
- package/dist/docs/scan/links.js.map +1 -0
- package/dist/docs/scan/route.d.ts +8 -0
- package/dist/docs/scan/route.js +114 -0
- package/dist/docs/scan/route.js.map +1 -0
- package/dist/graph/analyze/analyze-bullets.d.ts +17 -0
- package/dist/graph/analyze/analyze-bullets.js +137 -0
- package/dist/graph/analyze/analyze-bullets.js.map +1 -0
- package/dist/graph/analyze/analyze-spec.d.ts +12 -0
- package/dist/graph/analyze/analyze-spec.js +249 -0
- package/dist/graph/analyze/analyze-spec.js.map +1 -0
- package/dist/graph/analyze/api-routes.d.ts +66 -0
- package/dist/graph/analyze/api-routes.js +370 -0
- package/dist/graph/analyze/api-routes.js.map +1 -0
- package/dist/graph/analyze/context-orphan.d.ts +12 -0
- package/dist/graph/analyze/context-orphan.js +229 -0
- package/dist/graph/analyze/context-orphan.js.map +1 -0
- package/dist/graph/analyze/grill-check.d.ts +31 -0
- package/dist/graph/analyze/grill-check.js +92 -0
- package/dist/graph/analyze/grill-check.js.map +1 -0
- package/dist/graph/analyze/parity-check.d.ts +25 -0
- package/dist/graph/analyze/parity-check.js +406 -0
- package/dist/graph/analyze/parity-check.js.map +1 -0
- package/dist/graph/analyze/product-paths.d.ts +13 -0
- package/dist/graph/analyze/product-paths.js +29 -0
- package/dist/graph/analyze/product-paths.js.map +1 -0
- package/dist/graph/analyze/surface-paths.d.ts +13 -0
- package/dist/graph/analyze/surface-paths.js +29 -0
- package/dist/graph/analyze/surface-paths.js.map +1 -0
- package/dist/graph/config/load-config.d.ts +30 -0
- package/dist/graph/config/load-config.js +112 -0
- package/dist/graph/config/load-config.js.map +1 -0
- package/dist/graph/config/platform-repos.d.ts +36 -0
- package/dist/graph/config/platform-repos.js +124 -0
- package/dist/graph/config/platform-repos.js.map +1 -0
- package/dist/graph/config/resolve-paths.d.ts +45 -0
- package/dist/graph/config/resolve-paths.js +121 -0
- package/dist/graph/config/resolve-paths.js.map +1 -0
- package/dist/graph/db/index-store.d.ts +67 -0
- package/dist/graph/db/index-store.js +179 -0
- package/dist/graph/db/index-store.js.map +1 -0
- package/dist/graph/gen/run-command.d.ts +40 -0
- package/dist/graph/gen/run-command.js +110 -0
- package/dist/graph/gen/run-command.js.map +1 -0
- package/dist/graph/lexicon/infer-lane.d.ts +11 -0
- package/dist/graph/lexicon/infer-lane.js +28 -0
- package/dist/graph/lexicon/infer-lane.js.map +1 -0
- package/dist/graph/lexicon/load-lexicon.d.ts +60 -0
- package/dist/graph/lexicon/load-lexicon.js +492 -0
- package/dist/graph/lexicon/load-lexicon.js.map +1 -0
- package/dist/graph/mcp/tools.d.ts +9 -0
- package/dist/graph/mcp/tools.js +326 -0
- package/dist/graph/mcp/tools.js.map +1 -0
- package/dist/graph/registry/load-registries.d.ts +27 -0
- package/dist/graph/registry/load-registries.js +111 -0
- package/dist/graph/registry/load-registries.js.map +1 -0
- package/dist/graph/types.d.ts +208 -0
- package/dist/graph/types.js +11 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/test/config/project-root.d.ts +5 -0
- package/dist/test/config/project-root.js +29 -0
- package/dist/test/config/project-root.js.map +1 -0
- package/dist/test/engines/run.d.ts +10 -0
- package/dist/test/engines/run.js +16 -0
- package/dist/test/engines/run.js.map +1 -0
- package/dist/test/mcp/tools.d.ts +2 -0
- package/dist/test/mcp/tools.js +43 -0
- package/dist/test/mcp/tools.js.map +1 -0
- package/dist/test/optional/fallback-evidence.d.ts +34 -0
- package/dist/test/optional/fallback-evidence.js +103 -0
- package/dist/test/optional/fallback-evidence.js.map +1 -0
- package/engines/cases/README.md +12 -0
- package/engines/cases/check-coverage.mjs +103 -0
- package/engines/cases/check-plans.mjs +31 -0
- package/engines/cases/gate.mjs +215 -0
- package/engines/cases/lib/audit-tc-traceability.mjs +139 -0
- package/engines/cases/lib/list-case-yaml.mjs +27 -0
- package/engines/cases/lib/parse-bundle-traceability.mjs +77 -0
- package/engines/cases/lib/render-github-catalog.mjs +141 -0
- package/engines/cases/lib/resolve-bundle-from-screen.mjs +73 -0
- package/engines/cases/lib/screen-facet-coverage.mjs +42 -0
- package/engines/cases/lib/validate-tc-schema.mjs +61 -0
- package/engines/cases/publish.mjs +4 -0
- package/engines/cases/render-cases.mjs +182 -0
- package/engines/cases/vitepress/config.ts +171 -0
- package/engines/cases/vitepress/theme/custom.css +418 -0
- package/engines/cases/vitepress/theme/index.ts +46 -0
- package/engines/codegen/adapters/shadcn.mjs +58 -0
- package/engines/codegen/adapters/winforms.mjs +46 -0
- package/engines/codegen/tokens.mjs +64 -0
- package/engines/docs/lib/load-dev-base-url.mjs +38 -0
- package/engines/docs/lib/markdown-table.mjs +65 -0
- package/engines/docs/lib/render-bundle-markdown.mjs +95 -0
- package/engines/docs/lib/render-design-tables.mjs +695 -0
- package/engines/docs/lib/render-github-catalog.mjs +194 -0
- package/engines/docs/lib/render-qa-list.mjs +57 -0
- package/engines/docs/lib/render-spec-markdown.mjs +19 -0
- package/engines/docs/lib/render-template.mjs +76 -0
- package/engines/docs/lib/route-page-probe.mjs +54 -0
- package/engines/docs/publish.mjs +4 -0
- package/engines/docs/render-docs.mjs +195 -0
- package/engines/docs/vitepress/config.ts +442 -0
- package/engines/docs/vitepress/surfaces-nav.mjs +171 -0
- package/engines/docs/vitepress/theme/custom.css +418 -0
- package/engines/docs/vitepress/theme/index.ts +46 -0
- package/engines/openapi/build-openapi-ui.mjs +72 -0
- package/engines/openapi/build-swagger-ui.mjs +72 -0
- package/engines/openapi/check-backend-spec.mjs +66 -0
- package/engines/openapi/gen-openapi.mjs +337 -0
- package/engines/openapi/render-backend-spec.mjs +170 -0
- package/engines/openapi/render-openapi.mjs +155 -0
- package/engines/shared/flowgrid-tests-docs.mjs +32 -0
- package/engines/spec/extract-i18n.mjs +74 -0
- package/engines/spec/legacy-dynamics-validate.mjs +67 -0
- package/engines/spec/lib/audit-api-gaps.mjs +198 -0
- package/engines/spec/lib/audit-bundle-gaps.mjs +582 -0
- package/engines/spec/lib/audit-e2e-coverage.mjs +381 -0
- package/engines/spec/lib/audit-fe-be-alignment.mjs +183 -0
- package/engines/spec/lib/audit-flow-gaps.mjs +151 -0
- package/engines/spec/lib/audit-legacy-gaps.mjs +73 -0
- package/engines/spec/lib/audit-scenario-coverage.mjs +175 -0
- package/engines/spec/lib/audit-testcase-bundle-cross.mjs +145 -0
- package/engines/spec/lib/audit-testcase-gaps.mjs +79 -0
- package/engines/spec/lib/audit-testcase-plan-gaps.mjs +131 -0
- package/engines/spec/lib/audit-testcase-tc.mjs +182 -0
- package/engines/spec/lib/audit-ux-affordance.mjs +269 -0
- package/engines/spec/lib/bundle-ir.mjs +360 -0
- package/engines/spec/lib/bundle-schema.mjs +199 -0
- package/engines/spec/lib/collect-screen-api-intents.mjs +69 -0
- package/engines/spec/lib/hydrate-design-api.mjs +58 -0
- package/engines/spec/lib/open-qa.mjs +66 -0
- package/engines/spec/lib/project-business-layout.mjs +214 -0
- package/engines/spec/lib/testcase-matrix-facets.mjs +9 -0
- package/engines/spec/merge-bundle.mjs +27 -0
- package/engines/spec/normalize-bundle-gen.mjs +69 -0
- package/engines/spec/split-all.mjs +78 -0
- package/engines/spec/split-bundle.mjs +45 -0
- package/engines/template-builder/runner.mjs +96 -0
- package/engines/template-builder/scanner.mjs +138 -0
- package/engines/testcase/_staging-from-portal/README-STAGING.md +13 -0
- package/engines/testcase/_staging-from-portal/runners/README.md +15 -0
- package/engines/testcase/_staging-from-portal/runners/generate.mjs +123 -0
- package/engines/testcase/_staging-from-portal/runners/lib/e2e-registry.mjs +77 -0
- package/engines/testcase/_staging-from-portal/runners/lib/plan.mjs +97 -0
- package/engines/testcase/_staging-from-portal/runners/lib/read-testcase.mjs +166 -0
- package/engines/testcase/_staging-from-portal/runners/lib/render.mjs +18 -0
- package/engines/testcase/_staging-from-portal/runners/lib/semantic-plan.mjs +178 -0
- package/engines/testcase/_staging-from-portal/runners/lib/write-files.mjs +42 -0
- package/engines/testcase/_staging-from-portal/runners/validate-registry.mjs +75 -0
- package/engines/testcase/_staging-from-portal/templates/page.ts.hbs +52 -0
- package/engines/testcase/_staging-from-portal/templates/partials/README.md +5 -0
- package/engines/testcase/_staging-from-portal/templates/spec.ts.hbs +214 -0
- package/engines/testcase/runners/README.md +27 -0
- package/engines/testcase/runners/generate-api.mjs +121 -0
- package/engines/testcase/runners/generate.mjs +161 -0
- package/engines/testcase/runners/lib/api-plan.mjs +64 -0
- package/engines/testcase/runners/lib/e2e-registry.mjs +77 -0
- package/engines/testcase/runners/lib/plan.mjs +123 -0
- package/engines/testcase/runners/lib/read-spec.mjs +37 -0
- package/engines/testcase/runners/lib/read-testcase.mjs +179 -0
- package/engines/testcase/runners/lib/render.mjs +18 -0
- package/engines/testcase/runners/lib/resolve-hub-id.mjs +324 -0
- package/engines/testcase/runners/lib/semantic-plan.mjs +178 -0
- package/engines/testcase/runners/lib/write-files.mjs +145 -0
- package/engines/testcase/runners/validate-registry.mjs +75 -0
- package/engines/testcase/templates/api.spec.ts.hbs +40 -0
- package/engines/testcase/templates/page.ts.hbs +69 -0
- package/engines/testcase/templates/partials/README.md +5 -0
- package/engines/testcase/templates/spec.ts.hbs +231 -0
- package/harness/agents/claude/rules/claude-flowgrid.mdc +9 -0
- package/harness/agents/cursor/rules/cursor-flowgrid.mdc +9 -0
- package/harness/agents/gemini_antigravity/rules/antigravity-mcp.mdc +10 -0
- package/harness/agents/kiro/rules/kiro-flowgrid.mdc +9 -0
- package/harness/be/adapters/dotnet-integration/skills/framework-rules-be/SKILL.md +21 -0
- package/harness/be/adapters/fastapi/skills/framework-rules-be/SKILL.md +27 -0
- package/harness/be/adapters/laravel/skills/framework-rules-be/SKILL.md +27 -0
- package/harness/be/extracts/artifactgraph-hooks-be.md +21 -0
- package/harness/be/extracts/risk-classes.md +69 -0
- package/harness/be/skills/api/SKILL.md +116 -0
- package/harness/be/skills/api-unit/SKILL.md +76 -0
- package/harness/be/skills/grill-api/SKILL.md +69 -0
- package/harness/be/skills/grill-api-unit/SKILL.md +57 -0
- package/harness/common/extracts/artifact-graph.md +23 -0
- package/harness/common/extracts/artifactgraph-hooks-core.md +17 -0
- package/harness/common/extracts/artifactgraph-phase-hooks.md +106 -0
- package/harness/common/extracts/core/agent-discipline.md +8 -0
- package/harness/common/extracts/docs-mark-detect.md +48 -0
- package/harness/common/extracts/docs-mark.md +62 -0
- package/harness/common/extracts/extract-registry.json +29 -0
- package/harness/common/extracts/ux-common-patterns.md +172 -0
- package/harness/common/rules/artifactgraph.mdc +26 -0
- package/harness/common/rules/cross-repo-index.mdc +47 -0
- package/harness/common/rules/flowgrid-ux-common.mdc +39 -0
- package/harness/common/rules/platform-code-size.mdc +24 -0
- package/harness/common/rules/team-flow-harness-state.mdc +12 -0
- package/harness/common/skills/business-impact-review/SKILL.md +106 -0
- package/harness/common/skills/configure-repo-maps/SKILL.md +58 -0
- package/harness/common/skills/docs-mark/SKILL.md +67 -0
- package/harness/common/skills/legacy/SKILL.md +29 -0
- package/harness/common/skills/ui-proposal/SKILL.md +28 -0
- package/harness/docs/extracts/agent-execution-protocol.md +31 -0
- package/harness/docs/extracts/architecture-core.md +71 -0
- package/harness/docs/extracts/artifactgraph-hooks-docs.md +15 -0
- package/harness/docs/extracts/artifactgraph-parity.md +10 -0
- package/harness/docs/extracts/business-process-trace.md +66 -0
- package/harness/docs/extracts/codegen/readiness.md +8 -0
- package/harness/docs/extracts/common-scope.md +65 -0
- package/harness/docs/extracts/docs-phase-hooks.md +22 -0
- package/harness/docs/extracts/extract-registry.docs.json +45 -0
- package/harness/docs/extracts/extract-registry.flowgrid-process.json +12 -0
- package/harness/docs/extracts/grill/validation.md +9 -0
- package/harness/docs/extracts/grill-docs-reconcile.md +5 -0
- package/harness/docs/extracts/qa-inbox.md +36 -0
- package/harness/docs/extracts/risk-classes.md +69 -0
- package/harness/docs/extracts/spec-core.md +5 -0
- package/harness/docs/extracts/spec-requirement.md +5 -0
- package/harness/docs/extracts/tpl-adr.md +23 -0
- package/harness/docs/extracts/tpl-arc42-chapter.md +29 -0
- package/harness/docs/extracts/tpl-cross-cutting.md +24 -0
- package/harness/docs/extracts/tpl-deployment.md +23 -0
- package/harness/docs/extracts/tpl-module.md +33 -0
- package/harness/docs/extracts/update-spec-delta.md +5 -0
- package/harness/docs/rules/agent-compliance.mdc +26 -0
- package/harness/docs/rules/docs-hub.mdc +54 -0
- package/harness/docs/rules/flowgrid-process.mdc +25 -0
- package/harness/docs/rules/team-flow-grill.mdc +31 -0
- package/harness/docs/rules/team-flow-harness-state.mdc +16 -0
- package/harness/docs/rules/team-flow-spec.mdc +36 -0
- package/harness/docs/schemas/flowgrid-docs/backend-api.schema.json +175 -0
- package/harness/docs/schemas/flowgrid-docs/missing-optional-event.schema.json +39 -0
- package/harness/docs/schemas/flowgrid-docs/spec.schema.json +643 -0
- package/harness/docs/schemas/flowgrid-docs/testcase.schema.json +29 -0
- package/harness/docs/schemas/flowgrid-process/missing-optional-event.schema.json +39 -0
- package/harness/docs/skills/adopt/SKILL.md +140 -0
- package/harness/docs/skills/api/SKILL.md +40 -0
- package/harness/docs/skills/api-integration/SKILL.md +110 -0
- package/harness/docs/skills/api-spec/SKILL.md +136 -0
- package/harness/docs/skills/api-update/SKILL.md +82 -0
- package/harness/docs/skills/architecture/SKILL.md +57 -0
- package/harness/docs/skills/architecture-grill/SKILL.md +29 -0
- package/harness/docs/skills/background-logic/SKILL.md +100 -0
- package/harness/docs/skills/build-templates/SKILL.md +47 -0
- package/harness/docs/skills/business-process/SKILL.md +109 -0
- package/harness/docs/skills/call-external/SKILL.md +32 -0
- package/harness/docs/skills/common/SKILL.md +46 -0
- package/harness/docs/skills/common-spec/SKILL.md +55 -0
- package/harness/docs/skills/cross-cutting/SKILL.md +33 -0
- package/harness/docs/skills/cross-entity-service/SKILL.md +32 -0
- package/harness/docs/skills/cross-service/SKILL.md +37 -0
- package/harness/docs/skills/db-erd/SKILL.md +29 -0
- package/harness/docs/skills/decision/SKILL.md +30 -0
- package/harness/docs/skills/deployment/SKILL.md +34 -0
- package/harness/docs/skills/docs-hub/SKILL.md +65 -0
- package/harness/docs/skills/grill/SKILL.md +46 -0
- package/harness/docs/skills/grill-api/SKILL.md +26 -0
- package/harness/docs/skills/grill-api-spec/SKILL.md +57 -0
- package/harness/docs/skills/grill-bqa/SKILL.md +119 -0
- package/harness/docs/skills/grill-common-spec/SKILL.md +43 -0
- package/harness/docs/skills/grill-dev/SKILL.md +172 -0
- package/harness/docs/skills/grill-docs/SKILL.md +79 -0
- package/harness/docs/skills/grill-integration-spec/SKILL.md +51 -0
- package/harness/docs/skills/module/SKILL.md +58 -0
- package/harness/docs/skills/openapi/SKILL.md +37 -0
- package/harness/docs/skills/overview/SKILL.md +42 -0
- package/harness/docs/skills/qa-resolve/SKILL.md +91 -0
- package/harness/docs/skills/spec/SKILL.md +240 -0
- package/harness/docs/skills/surfaces/SKILL.md +52 -0
- package/harness/docs/skills/update-spec/SKILL.md +83 -0
- package/harness/fe/adapters/dotnet-line/skills/framework-rules/SKILL.md +27 -0
- package/harness/fe/adapters/nextjs/skills/framework-rules/SKILL.md +29 -0
- package/harness/fe/adapters/nuxt4/skills/framework-rules/SKILL.md +33 -0
- package/harness/fe/extracts/artifactgraph-hooks-fe.md +15 -0
- package/harness/fe/extracts/risk-classes.md +69 -0
- package/harness/fe/rules/cross-repo-index-routing.mdc +24 -0
- package/harness/fe/rules/flowgrid-test-optional-accelerators.mdc +21 -0
- package/harness/fe/rules/platform-code-size.mdc +43 -0
- package/harness/fe/rules/platform-design-vocabulary.mdc +33 -0
- package/harness/fe/rules/team-flow-prototype.mdc +32 -0
- package/harness/fe/rules/team-flow-unit.mdc +27 -0
- package/harness/fe/skills/build-template-code/SKILL.md +42 -0
- package/harness/fe/skills/gen-common/SKILL.md +93 -0
- package/harness/fe/skills/grill-prototype/SKILL.md +41 -0
- package/harness/fe/skills/grill-test/SKILL.md +32 -0
- package/harness/fe/skills/grill-unit/SKILL.md +31 -0
- package/harness/fe/skills/model/SKILL.md +48 -0
- package/harness/fe/skills/prototype/SKILL.md +100 -0
- package/harness/fe/skills/test/SKILL.md +37 -0
- package/harness/fe/skills/unit/SKILL.md +55 -0
- package/harness/fe/skills/wire/SKILL.md +60 -0
- package/harness/shared/AGENTS.md +169 -0
- package/harness/shared/SSOT_AGENT_PROTOCOL.md +167 -0
- package/harness/shared/rules/flowgrid-code-optional-integrations.mdc +53 -0
- package/harness/shared/schemas/flowgrid-code/missing-optional-event.schema.json +62 -0
- package/harness/tests/extracts/artifactgraph-hooks-test.md +13 -0
- package/harness/tests/extracts/plans/readiness.md +14 -0
- package/harness/tests/rules/cross-repo-index-routing.mdc +24 -0
- package/harness/tests/rules/flowgrid-test-optional-accelerators.mdc +21 -0
- package/harness/tests/rules/plans-docs-first.mdc +13 -0
- package/harness/tests/skills/grill-testcase/SKILL.md +55 -0
- package/harness/tests/skills/scenario/SKILL.md +64 -0
- package/harness/tests/skills/test-api/SKILL.md +65 -0
- package/harness/tests/skills/testcase/SKILL.md +98 -0
- package/harness/tests/templates/SC.example.md +86 -0
- package/harness/tests/templates/TC.example-api.yaml +45 -0
- package/harness/tests/templates/TC.example.yaml +127 -0
- package/lexicon/registry-tags.en.txt +173 -0
- package/lexicon/testcase-taxonomy.en.txt +117 -0
- package/package.json +98 -0
- package/schemas/missing-optional-event.schema.json +37 -0
- package/schemas/testcase.schema.json +239 -0
- package/scripts/prepare-install.mjs +25 -0
- package/stacks/docs.json +21 -0
- package/stacks/dotnet-integration.json +66 -0
- package/stacks/dotnet-line.json +64 -0
- package/stacks/fastapi.json +98 -0
- package/stacks/generic.json +11 -0
- package/stacks/laravel.json +92 -0
- package/stacks/nextjs-nest.json +93 -0
- package/stacks/nextjs.json +132 -0
- package/stacks/nuxt4-nest.json +123 -0
- package/stacks/nuxt4.json +148 -0
- package/templates/project-skeleton/architecture/01-introduction/index.md +33 -0
- package/templates/project-skeleton/architecture/02-constraints/index.md +34 -0
- package/templates/project-skeleton/architecture/03-business-process/FLOW-login.md +101 -0
- package/templates/project-skeleton/architecture/03-business-process/FLOW-template.md +149 -0
- package/templates/project-skeleton/architecture/04-solution-strategy/index.md +26 -0
- package/templates/project-skeleton/architecture/07-deployment/index.md +26 -0
- package/templates/project-skeleton/architecture/08-cross-cutting/configuration.md +18 -0
- package/templates/project-skeleton/architecture/08-cross-cutting/index.md +27 -0
- package/templates/project-skeleton/architecture/08-cross-cutting/observability.md +18 -0
- package/templates/project-skeleton/architecture/08-cross-cutting/security.md +18 -0
- package/templates/project-skeleton/architecture/09-decisions/ADR-001-arc42-toc.md +31 -0
- package/templates/project-skeleton/architecture/09-decisions/index.md +13 -0
- package/templates/project-skeleton/architecture/10-quality/index.md +27 -0
- package/templates/project-skeleton/architecture/11-risks/index.md +25 -0
- package/templates/project-skeleton/architecture/12-glossary/index.md +31 -0
- package/templates/project-skeleton/architecture/index.md +1 -0
- package/templates/project-skeleton/architecture/model/workspace.dsl +71 -0
- package/templates/project-skeleton/index.md +2 -0
- package/templates/project-skeleton/overview/.gitkeep +1 -0
- package/templates/project-skeleton/overview/index.md +2 -0
- package/templates/project-skeleton/qa/README.md +11 -0
- package/templates/project-skeleton/qa/open/.gitkeep +0 -0
- package/templates/project-skeleton/surfaces/common/code/API-CMN-HEALTH-001/health.api.yaml +12 -0
- package/templates/project-skeleton/surfaces/common/code/API-CMN-HEALTH-001/index.md +12 -0
- package/templates/project-skeleton/surfaces/common/code/UI-CMN-EMPTY-001/empty.ui.yaml +14 -0
- package/templates/project-skeleton/surfaces/common/code/UI-CMN-EMPTY-001/index.md +11 -0
- package/templates/project-skeleton/surfaces/common/data-model/derived-data.md +26 -0
- package/templates/project-skeleton/surfaces/common/data-model/index.md +16 -0
- package/templates/project-skeleton/surfaces/common/index.md +32 -0
- package/templates/project-skeleton/surfaces/common/md/breadcrumb-flow/common-breadcrumb-flow.md +72 -0
- package/templates/project-skeleton/surfaces/common/md/buttons/common-buttons.md +160 -0
- package/templates/project-skeleton/surfaces/common/md/confirm-dialog/common-confirm-dialog.md +98 -0
- package/templates/project-skeleton/surfaces/common/md/data-table/common-data-table.md +91 -0
- package/templates/project-skeleton/surfaces/common/md/delete-flow/common-delete-flow.md +68 -0
- package/templates/project-skeleton/surfaces/common/md/feedback/common-feedback.md +140 -0
- package/templates/project-skeleton/surfaces/common/md/flat-design/common-flat-design.md +78 -0
- package/templates/project-skeleton/surfaces/common/md/form-validation/common-form-validation.md +74 -0
- package/templates/project-skeleton/surfaces/common/md/import-csv/common-import-csv.md +89 -0
- package/templates/project-skeleton/surfaces/common/md/list-page/common-list-page.md +102 -0
- package/templates/project-skeleton/surfaces/common/md/list-toolbar/common-list-toolbar.md +81 -0
- package/templates/project-skeleton/surfaces/common/md/navigation/common-navigation.md +70 -0
- package/templates/project-skeleton/surfaces/common/md/pagination/common-pagination.md +86 -0
- package/templates/project-skeleton/surfaces/common/md/search-filter/common-search-filter.md +96 -0
- package/templates/project-skeleton/surfaces/common/md/status-chip/common-status-chip.md +93 -0
- package/templates/project-skeleton/surfaces/common/md/table-action-column/common-table-action-column.md +90 -0
- package/templates/project-skeleton/surfaces/common/patterns/breadcrumb-flow.md +83 -0
- package/templates/project-skeleton/surfaces/common/patterns/delete-flow.md +30 -0
- package/templates/project-skeleton/surfaces/common/patterns/ui-spec.md +15 -0
- package/templates/project-skeleton/surfaces/common/yaml/breadcrumb-flow/common-breadcrumb-flow.bundle.yaml +60 -0
- package/templates/project-skeleton/surfaces/common/yaml/breadcrumb-flow/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/breadcrumb-flow/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/breadcrumb-flow/ir/spec.yaml +31 -0
- package/templates/project-skeleton/surfaces/common/yaml/buttons/common-buttons.bundle.yaml +147 -0
- package/templates/project-skeleton/surfaces/common/yaml/buttons/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/buttons/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/buttons/ir/spec.yaml +118 -0
- package/templates/project-skeleton/surfaces/common/yaml/confirm-dialog/common-confirm-dialog.bundle.yaml +89 -0
- package/templates/project-skeleton/surfaces/common/yaml/confirm-dialog/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/confirm-dialog/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/confirm-dialog/ir/spec.yaml +60 -0
- package/templates/project-skeleton/surfaces/common/yaml/data-table/common-data-table.bundle.yaml +85 -0
- package/templates/project-skeleton/surfaces/common/yaml/data-table/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/data-table/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/data-table/ir/spec.yaml +56 -0
- package/templates/project-skeleton/surfaces/common/yaml/delete-flow/common-delete-flow.bundle.yaml +59 -0
- package/templates/project-skeleton/surfaces/common/yaml/delete-flow/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/delete-flow/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/delete-flow/ir/spec.yaml +30 -0
- package/templates/project-skeleton/surfaces/common/yaml/design-system.bundle.yaml +29 -0
- package/templates/project-skeleton/surfaces/common/yaml/feedback/common-feedback.bundle.yaml +126 -0
- package/templates/project-skeleton/surfaces/common/yaml/feedback/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/feedback/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/feedback/ir/spec.yaml +97 -0
- package/templates/project-skeleton/surfaces/common/yaml/flat-design/common-flat-design.bundle.yaml +77 -0
- package/templates/project-skeleton/surfaces/common/yaml/flat-design/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/flat-design/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/flat-design/ir/spec.yaml +48 -0
- package/templates/project-skeleton/surfaces/common/yaml/form-validation/common-form-validation.bundle.yaml +66 -0
- package/templates/project-skeleton/surfaces/common/yaml/form-validation/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/form-validation/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/form-validation/ir/spec.yaml +37 -0
- package/templates/project-skeleton/surfaces/common/yaml/import-csv/common-import-csv.bundle.yaml +74 -0
- package/templates/project-skeleton/surfaces/common/yaml/import-csv/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/import-csv/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/import-csv/ir/spec.yaml +45 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-page/common-list-page.bundle.yaml +90 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-page/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-page/ir/legacy.yaml +14 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-page/ir/spec.yaml +58 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-toolbar/common-list-toolbar.bundle.yaml +86 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-toolbar/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-toolbar/ir/legacy.yaml +12 -0
- package/templates/project-skeleton/surfaces/common/yaml/list-toolbar/ir/spec.yaml +56 -0
- package/templates/project-skeleton/surfaces/common/yaml/navigation/common-navigation.bundle.yaml +68 -0
- package/templates/project-skeleton/surfaces/common/yaml/navigation/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/navigation/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/navigation/ir/spec.yaml +39 -0
- package/templates/project-skeleton/surfaces/common/yaml/pagination/common-pagination.bundle.yaml +84 -0
- package/templates/project-skeleton/surfaces/common/yaml/pagination/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/pagination/ir/legacy.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/pagination/ir/spec.yaml +53 -0
- package/templates/project-skeleton/surfaces/common/yaml/search-filter/common-search-filter.bundle.yaml +88 -0
- package/templates/project-skeleton/surfaces/common/yaml/search-filter/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/search-filter/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/search-filter/ir/spec.yaml +59 -0
- package/templates/project-skeleton/surfaces/common/yaml/status-chip/common-status-chip.bundle.yaml +89 -0
- package/templates/project-skeleton/surfaces/common/yaml/status-chip/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/status-chip/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/status-chip/ir/spec.yaml +60 -0
- package/templates/project-skeleton/surfaces/common/yaml/table-action-column/common-table-action-column.bundle.yaml +81 -0
- package/templates/project-skeleton/surfaces/common/yaml/table-action-column/ir/design.yaml +13 -0
- package/templates/project-skeleton/surfaces/common/yaml/table-action-column/ir/legacy.yaml +11 -0
- package/templates/project-skeleton/surfaces/common/yaml/table-action-column/ir/spec.yaml +52 -0
- package/templates/project-skeleton/surfaces/index.md +1 -0
- package/templates/schemas/backend-api.schema.json +174 -0
- package/templates/schemas/legacy-repos.schema.json +24 -0
- package/templates/schemas/platform-repos.schema.json +29 -0
- package/templates/schemas/spec.schema.json +718 -0
- package/templates/schemas/testcase.schema.json +28 -0
- package/templates/shared/AUTHORING-COMMON.md +109 -0
- package/templates/shared/api-contract-test.yaml +33 -0
- package/templates/shared/backend-api-integration.yaml +152 -0
- package/templates/shared/backend-api.bundle.yaml +177 -0
- package/templates/shared/backend-api.yaml +188 -0
- package/templates/shared/breadcrumb-flow.ejs +45 -0
- package/templates/shared/bundle-authoring.md +288 -0
- package/templates/shared/clients-line.yaml +18 -0
- package/templates/shared/default-layout.ejs +234 -0
- package/templates/shared/design-spec.yaml +85 -0
- package/templates/shared/entity-delta.example.yaml +45 -0
- package/templates/shared/feature.bundle.yaml +575 -0
- package/templates/shared/integration-adapter.bundle.yaml +77 -0
- package/templates/shared/integration-spec.yaml +37 -0
- package/templates/shared/ir-design.yaml +34 -0
- package/templates/shared/ir-legacy.yaml +12 -0
- package/templates/shared/ir-spec.yaml +18 -0
- package/templates/shared/line-client.bundle.yaml +65 -0
- package/templates/shared/mock-data.yaml +22 -0
- package/templates/shared/openapi.yaml +144 -0
- package/templates/shared/patterns/.gitkeep +0 -0
- package/templates/shared/patterns/admin-crud.pattern.yaml +37 -0
- package/templates/shared/qa-item.yaml +15 -0
- package/templates/shared/spec.yaml +162 -0
- package/templates/shared/testcase.yaml +2 -0
- package/templates/tests-skeleton/cases/README.md +5 -0
- package/templates/tests-skeleton/catalog/locale.yaml +7 -0
- package/templates/tests-skeleton/index.md +7 -0
- package/templates/tests-skeleton/scenarios/README.md +3 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: legacy
|
|
3
|
+
description: /legacy — Skill Modifier: Shifts source of truth from modern platform to legacy system repositories (legacy archaeology). Used in conjunction with other skills (e.g. /legacy /spec).
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /legacy — Legacy Context Modifier
|
|
8
|
+
|
|
9
|
+
**Skill Modifier:** When a member uses `/legacy` alongside another specialized skill (e.g., `/legacy /spec`, `/legacy /overview`, `/legacy /business-process`), the Agent MUST enforce the following behavioral shifts.
|
|
10
|
+
|
|
11
|
+
## Behavioral Shifts (Context Shift)
|
|
12
|
+
|
|
13
|
+
1. **Shift Source of Truth:**
|
|
14
|
+
- INSTEAD OF reading modern active repositories (`core-repos.local.json` or legacy `platform-repos.local.json`), the Agent MUST resolve paths from `legacy-repos.local.json` and conduct analysis directly against legacy codebases and documentation.
|
|
15
|
+
|
|
16
|
+
2. **Archaeology & 2-Tier Audit Mode:**
|
|
17
|
+
- Do NOT invent novel business logic or assumptions. Your role is strictly "archaeological" — extract, map, and document what ACTUALLY exists in the legacy system.
|
|
18
|
+
- **Tier 1 (Page / API Detail — `/legacy /spec`)**:
|
|
19
|
+
- ONLY audit internal page/API scope: Check **missing Validation** (field validation rules, max length, format regex...) and **Local Security** (e.g. Laravel `@csrf`, Auth guard/middleware on route, input sanitization).
|
|
20
|
+
- Do NOT perform cross-system end-to-end vulnerability audits at this level.
|
|
21
|
+
- **Tier 2 (Cross-Flow / Business Process — `/legacy /business-process`, Module, Surface)**:
|
|
22
|
+
- Audit **End-to-End Business Flow Gaps**: Check data/status misalignment between Step 1 (Screen 1) and Step 2 (Screen 2), orphan APIs/steps, broken flow steps, and missing rollback/confirmation handling on failure.
|
|
23
|
+
|
|
24
|
+
3. **Metadata Updates (When Applicable):**
|
|
25
|
+
- For design artifacts (such as YAML bundles produced by `/spec`), apply appropriate legacy metadata (e.g. `specOrigin: legacy`) per guidelines in the base skill.
|
|
26
|
+
- Always reference `legacy.dynamics.yaml` rather than default structures when specified by the base skill.
|
|
27
|
+
|
|
28
|
+
**Operational Mechanics (For Agent):**
|
|
29
|
+
This modifier HAS NO independent workflow. It represents supplementary constraints that override or activate "legacy"-specific instructions defined inside the primary `SKILL.md` file (such as `/spec`, `/module`).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-proposal
|
|
3
|
+
extractBundle: ux-common
|
|
4
|
+
description: /ui-proposal — analyze and propose UI gaps after DSL mapping; does not replace /spec or /update-spec.
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> [!CRITICAL] MANDATORY PRE-FLIGHT
|
|
9
|
+
> **[MANDATORY]** Re-read this `SKILL.md` via file-read. Do not rely on memory.
|
|
10
|
+
> **[MANDATORY]** Follow rule `flowgrid-ux-common.mdc` (flow, output template, CMN IDs).
|
|
11
|
+
> **[MANDATORY]** Load checklists from `.cursor/extracts/ux-common-patterns.md` (`extractBundle: ux-common`).
|
|
12
|
+
|
|
13
|
+
# /ui-proposal — UI gap analysis
|
|
14
|
+
|
|
15
|
+
**Owner:** Common harness.
|
|
16
|
+
|
|
17
|
+
## Use when
|
|
18
|
+
|
|
19
|
+
- Member or agent needs **analysis or proposals** for UI affordances (breadcrumb, filters, delete flow, disabled reasons, …) that are **not** mapped in DSL or are under-specified.
|
|
20
|
+
- Supplement `/spec` zone brainstorm — **do not** write bundles on behalf of `/spec` or `/update-spec`.
|
|
21
|
+
|
|
22
|
+
## Out of scope
|
|
23
|
+
|
|
24
|
+
| Need | Route |
|
|
25
|
+
|------|--------|
|
|
26
|
+
| Full bundle | `/spec` |
|
|
27
|
+
| Delta bundle | `/update-spec` |
|
|
28
|
+
| Codegen / production UI | `/prototype` or FE skills |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Agent execution protocol (bộ docs)
|
|
2
|
+
|
|
3
|
+
> Canonical **physical interlocks** (full Vietnamese CRITICAL wording):
|
|
4
|
+
> `SSOT_AGENT_PROTOCOL.md` and host `AGENTS.md`.
|
|
5
|
+
>
|
|
6
|
+
> This extract is a short pointer for skills. **Do not** treat the bullets below
|
|
7
|
+
> as a static Verification Checklist for every skill.
|
|
8
|
+
|
|
9
|
+
## Path / task SSOT
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
surfaces/<surface>/CMP-*/<slug>/ # no modules/ segment
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Seven interlocks (must follow SSOT_AGENT_PROTOCOL.md)
|
|
17
|
+
|
|
18
|
+
1. **PRE-FLIGHT:** First action = `{{FLOWGRID_READ_TOOL}}` / read target `SKILL.md`. Never memory.
|
|
19
|
+
4. **NO RAM CACHING:** Durable results → disk immediately. Prior file = next input.
|
|
20
|
+
5. **ZERO BUSINESS HALLUCINATION:** Data only from User prompt or ArtifactGraph. Gaps → AskQuestion (MUST include "Log as Tech Debt" option); if member selects "Log as Tech Debt" → `qa/open/QA-<page-id>-NNNN.yaml` + `#missing_info QA-…`. No invented business fields.
|
|
21
|
+
6. **GRILL HARD GATE:** AG re-check → micro-scope → propose → **STOP for Confirm** before product SSOT write.
|
|
22
|
+
7. **HUMAN DSL:** Common/DSL only via `/common`, `/common-spec`, `/docs-mark`, or grill Confirm. `/spec` consumes only.
|
|
23
|
+
|
|
24
|
+
## Order
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
{{FLOWGRID_READ_TOOL}} SKILL.md
|
|
28
|
+
→ durable writes immediately (No RAM)
|
|
29
|
+
→ AskQuestion or qa/open + grill Confirm before SSOT fill
|
|
30
|
+
→ common/DSL only when human-gated
|
|
31
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Architecture core (arc42 × C4 × Product)
|
|
2
|
+
|
|
3
|
+
SSOT entry: [`start-now`](../../platform/guide/start-now.md) · [`SYSTEM-DOC-STRUCTURE`](../../platform/guide/SYSTEM-DOC-STRUCTURE.md).
|
|
4
|
+
People / tree: [`platform/guide/start-now.md`](../../platform/guide/start-now.md) · [`SYSTEM-DOC-STRUCTURE.md`](../../platform/guide/SYSTEM-DOC-STRUCTURE.md)
|
|
5
|
+
|
|
6
|
+
## Operating model (business view)
|
|
7
|
+
|
|
8
|
+
`overview` → `operational areas` (Admin/Workforce/Shop-floor/Plant) → `business surfaces` → `module` → `function` · optional `FLOW-*`.
|
|
9
|
+
|
|
10
|
+
Personas/actors and interaction channels are mapped to operational areas. Runtime Portal/Client/API/Gateway remain C4 Containers.
|
|
11
|
+
|
|
12
|
+
## Layer meaning
|
|
13
|
+
|
|
14
|
+
- `overview`: PURE business document written in user language. Details personas, business purpose, and operational areas (no internal system tech specs).
|
|
15
|
+
- `surface`: who does what on which channel. Contains Page/UI technical specs (Layout, Component State) and single-API data schemas. NO system-level architecture (backend config, DB schemas).
|
|
16
|
+
- `module`: a cohesive business capability inside a surface.
|
|
17
|
+
- `function`: screen or API detail and contract.
|
|
18
|
+
- `journey`: runtime flow across systems.
|
|
19
|
+
- `Common`: shared scope at the **lowest shared folder** (module/cluster `common/`, then surface, then `surfaces/common`). See `.cursor/extracts/common-scope.md`.
|
|
20
|
+
- `API`: container or contract detail, not a surface.
|
|
21
|
+
|
|
22
|
+
## Content standards
|
|
23
|
+
|
|
24
|
+
| Layer | Prose | Diagrams / DB / sequence |
|
|
25
|
+
|-------|-------|---------------------------|
|
|
26
|
+
| Overview · Operational area · Surface · Common · Module+ | **arc42** spirit | **C4** |
|
|
27
|
+
| Function | **C4** | **C4** |
|
|
28
|
+
|
|
29
|
+
No **dynamics** wording on new trees — use **flow** / `FLOW-*` / `/journey`.
|
|
30
|
+
|
|
31
|
+
## Technical layers
|
|
32
|
+
|
|
33
|
+
1. **arc42** — TOC under `architecture/01`…`12` (*why*) — team: prefer §01 + §07 active; rest stub OK
|
|
34
|
+
2. **C4 views** — IDs inside chapters (*what*)
|
|
35
|
+
3. **Product** — `CMP-*` / `W-*` / `API-*` under `surfaces/` hoặc `overview/` (*detail*)
|
|
36
|
+
|
|
37
|
+
## ID rules
|
|
38
|
+
|
|
39
|
+
| Prefix | Path | Notes |
|
|
40
|
+
|--------|------|-------|
|
|
41
|
+
| `LND-*` `CTX-*` | `architecture/03-context/` | Overview / landscape + context |
|
|
42
|
+
| `CTR-*` | `architecture/07-deployment/` | (Deprecated in public contract except for deployment) |
|
|
43
|
+
| `FLOW-*` | `architecture/06-runtime/journeys/` | Curated flows (~10–20%) |
|
|
44
|
+
| `DEP-*` | `architecture/07-deployment/` | Optional stub |
|
|
45
|
+
| `ADR-*` | `architecture/09-decisions/` | Not `shared/adr` (redirect) |
|
|
46
|
+
| `CMP-*` `W-*` `API-*` | `surfaces/` hoặc `overview/` | **Do not rename for arc42** |
|
|
47
|
+
|
|
48
|
+
Not product journeys: `_legacy.dynamics*` · `SC-*`/`TC-*` · `/business-process-trace` (brownfield; `/flow-trace` deprecated alias).
|
|
49
|
+
|
|
50
|
+
## Format
|
|
51
|
+
|
|
52
|
+
- Architecture chapters + CMP README: **MD + Mermaid only**
|
|
53
|
+
- YAML only under `surfaces/**/code/`
|
|
54
|
+
- Prefer `sequenceDiagram` (flows) / `flowchart` (CTX/CTR) — **avoid Mermaid `C4Context`**
|
|
55
|
+
- Deployment: stub unless placement matters
|
|
56
|
+
- Reader UX: `vitepress-mermaid-renderer` (zoom/pan) + `vitepress-plugin-mermaid`
|
|
57
|
+
- **No** Mermaid MCP required
|
|
58
|
+
|
|
59
|
+
## Journey criteria (write when ≥1)
|
|
60
|
+
|
|
61
|
+
Cross ≥2 systems · hard to understand / regress · slow onboard · core domain.
|
|
62
|
+
Not every agile story.
|
|
63
|
+
|
|
64
|
+
## Forbidden
|
|
65
|
+
|
|
66
|
+
- API schemas / UI DSL in `architecture/`
|
|
67
|
+
- Personas or detailed user use-cases in `architecture/` (Architecture is purely technical)
|
|
68
|
+
- Backend load balancers, internal database schemas, or routing internals in `overview/` or `surfaces/`
|
|
69
|
+
- Duplicating Code under `05`
|
|
70
|
+
- AI inventing full prod DEP topology
|
|
71
|
+
- IcePanel/Lucid as SSOT
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# ArtifactGraph — docs hooks
|
|
2
|
+
|
|
3
|
+
- Treat this docs repo as the canonical full registry/parity hub (`surfaces/...`).
|
|
4
|
+
- Use path hints from `registries/docs-index.json` when available.
|
|
5
|
+
- Use local vocabulary suggestions for specs and documentation marks.
|
|
6
|
+
- Before `/api-spec`, `/api-integration-spec`, `/grill-with-docs`, or `/bqa-grill-docs`,
|
|
7
|
+
run `artifactgraph_api_reuse_check` to validate route uniqueness across product surfaces.
|
|
8
|
+
Docs hub is SSOT — if a route already exists in a sibling surface, apply `#reuse-api`
|
|
9
|
+
or document the divergence in `openQuestions`.
|
|
10
|
+
- Run docs/spec commands only when the current repo explicitly allowlists them.
|
|
11
|
+
- For legacy archaeology, run parity checks and resolve parity drift with member A/B/C.
|
|
12
|
+
- Architecture ID / C4 work stays in bộ docs; ArtifactGraph indexes this repo's
|
|
13
|
+
registries only and does not wire CodeGraph or follow workspace maps.
|
|
14
|
+
- Promote accepted canonical registry changes here, then rebuild the local index.
|
|
15
|
+
- Keep `/spec`, grill, dynamics, and other docs phase skills owned by the docs repo.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# ArtifactGraph — parity and context-orphan
|
|
2
|
+
|
|
3
|
+
- `parity-drift`: create/edit/API labels, validation, type, or empty policies
|
|
4
|
+
disagree. Present A/B/C and remember the member-confirmed canon.
|
|
5
|
+
- `context-orphan`: an action uses data outside the screen's displayed data
|
|
6
|
+
scope. Warn only; do not turn it into a confirmation gate.
|
|
7
|
+
- Run `artifactgraph_parity_check` locally and send only unresolved structured
|
|
8
|
+
findings in a cloud slice.
|
|
9
|
+
|
|
10
|
+
> **Glossary note:** `context-orphan` ≠ `/context` doc layer; parity `surfaces[]` ≠ Surfaces navigation layer.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Business process trace — step template
|
|
2
|
+
|
|
3
|
+
Brownfield/cross-system process evidence. Prefer skill **`/business-process-trace`**.
|
|
4
|
+
Curated product journeys: **`/journey`** → `architecture/06-runtime/journeys/` (`FLOW-*`).
|
|
5
|
+
|
|
6
|
+
## Sections only
|
|
7
|
+
|
|
8
|
+
`# title` · `## Steps` · `## Diagram` (one mermaid) · `## Gaps` (optional)
|
|
9
|
+
|
|
10
|
+
## Step types
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
page [{system}] {route}
|
|
14
|
+
api [{system}] {METHOD} {path}
|
|
15
|
+
call [{from} → {to}] {METHOD} {path} — note
|
|
16
|
+
persist [{system}] {table/model}
|
|
17
|
+
job [{system}] dispatch({ClassName})
|
|
18
|
+
event [{system}] {EventName}
|
|
19
|
+
listener [{system}] {ListenerName}
|
|
20
|
+
command [{system}] {CommandName}
|
|
21
|
+
mail [{system}] template: {relative/path}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Systems: use repo/product ids from evidence. Map roots:
|
|
25
|
+
|
|
26
|
+
| Step id | Checkout map |
|
|
27
|
+
|---------|----------------|
|
|
28
|
+
| `[mairy-fullsco]`, `[portal]`, `[api]`, … (no `legacy-` prefix) | `platform-repos.local.json` |
|
|
29
|
+
| `[legacy-erp]`, other `legacy-*` | `legacy-repos.local.json` |
|
|
30
|
+
|
|
31
|
+
Never invent sibling paths. Ambiguous keys → ask or Gaps. Cross-repo with
|
|
32
|
+
missing map/key → Gaps + `/configure-repo-maps` (then `platform-dna codegraph:wire`).
|
|
33
|
+
|
|
34
|
+
Progressive read only the needed `projects.<id>.root` — no full JSON dump.
|
|
35
|
+
|
|
36
|
+
## Missing optional accelerators
|
|
37
|
+
|
|
38
|
+
CodeGraph and other MCP accelerators are optional. Continue with targeted local
|
|
39
|
+
search/read. For each run/optional pair, emit one
|
|
40
|
+
`flowgrid.missing-optional` event (`@platform/flowgrid-process`) after fallback completes. Measure successful
|
|
41
|
+
file reads and exact raw context bytes; deduplicate retries and do not estimate
|
|
42
|
+
tokens. Contract: `.cursor/schemas/flowgrid-process/missing-optional-event.schema.json`.
|
|
43
|
+
|
|
44
|
+
## Example shape (verify in code)
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# Survey notification
|
|
48
|
+
|
|
49
|
+
## Steps
|
|
50
|
+
1. page [mairy-fullsco] `/admin/surveys/create`
|
|
51
|
+
2. api [mairy-backend] `POST /api/admin/surveys`
|
|
52
|
+
3. call [mairy-backend → mairy-scenario] `POST /api/sync/survey`
|
|
53
|
+
4. job [mairy-backend] `dispatch(SendSurveyThankYouMail)`
|
|
54
|
+
5. mail [mairy-backend] `template: resources/views/emails/survey/thank-you.blade.php`
|
|
55
|
+
|
|
56
|
+
## Diagram
|
|
57
|
+
\`\`\`mermaid
|
|
58
|
+
sequenceDiagram
|
|
59
|
+
...
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
## Gaps
|
|
63
|
+
- Cross-repo hop to [legacy-erp] needs root — run `/configure-repo-maps`
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
No UI colors/layout. After a curated promote: write/link under `architecture/06-runtime/journeys/` via `/journey`.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Codegen readiness (bộ code)
|
|
2
|
+
|
|
3
|
+
Before `/prototype` or `flowgrid gen`:
|
|
4
|
+
|
|
5
|
+
- `ir/design.yaml` exists after `flowgrid split`
|
|
6
|
+
- `gen.codegen.profile` set (`list`, `create`, `auth`, `admin-crud`, …)
|
|
7
|
+
- `entity` / `module` populated when profile requires them
|
|
8
|
+
- Run `flowgrid gen:dry` on the FE repo; fix gaps via `/grill-dev` on the docs hub
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Common + FLOW placement (lowest shared folder)
|
|
2
|
+
|
|
3
|
+
Agents MUST pick **one** `common/` using the **lowest folder that every consumer already shares**. Do not invent extra `common/` trees. `/spec` only **consumes**; create/update common only via `/common`, `/common-spec`, or `/module … common` after the user named the scope.
|
|
4
|
+
|
|
5
|
+
Numeric function folders stay numeric (`01/02/03/`). The only non-numeric directory names under a `CMP-*` are `common/` and the `CMP-*` id itself.
|
|
6
|
+
|
|
7
|
+
## 1. Who uses it? → where `common/` lives
|
|
8
|
+
|
|
9
|
+
Walk consumers (functions / clusters / modules / surfaces). Place `common/` **next to their lowest common ancestor (LCA)**.
|
|
10
|
+
|
|
11
|
+
| Consumers | Write here |
|
|
12
|
+
|-----------|------------|
|
|
13
|
+
| One function only | **No `common/`.** Keep rules on that function’s `*.bundle.yaml`. |
|
|
14
|
+
| ≥2 functions in the **same cluster** (same numeric prefix, e.g. all under `CMP-…/02/`) | `surfaces/<surface>/<CMP-id>/02/common/` |
|
|
15
|
+
| ≥2 clusters **inside one module** | `surfaces/<surface>/<CMP-id>/common/` |
|
|
16
|
+
| ≥2 modules on **one surface** | `surfaces/<surface>/common/` |
|
|
17
|
+
| ≥2 surfaces | `surfaces/common/` |
|
|
18
|
+
|
|
19
|
+
**Cluster** = first numeric segment under the module (`02/`, `03/`, …) when the module uses hierarchical IDs. Deeper share (only `02/01/*`) → `…/02/01/common/`.
|
|
20
|
+
|
|
21
|
+
Inside every `common/`:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
common/
|
|
25
|
+
patterns/ ← /common Markdown (BA/QA rules)
|
|
26
|
+
yaml/<slug>/ ← /common-spec *.bundle.yaml
|
|
27
|
+
processes/ ← module/cluster FLOW-*.md (not architecture catalog)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 2. Ambiguous scope
|
|
31
|
+
|
|
32
|
+
If the prompt does not name consumers, **stop and ask** (propose the LCA from the table). Do not default to `surfaces/common` or to a random function folder.
|
|
33
|
+
|
|
34
|
+
If the same pattern already exists at a **narrower** `common/`, **reuse it** (reference `#pattern` / `#reuse-api`). Promote to a wider `common/` only when the user confirms **new consumers outside** that folder.
|
|
35
|
+
|
|
36
|
+
## 3. Consume order (`/spec`, `/grill-*`, `/api-spec`)
|
|
37
|
+
|
|
38
|
+
From the function folder, walk **up** and use the **nearest** hit. Do not skip a module `common/` to copy into surface `common/`.
|
|
39
|
+
|
|
40
|
+
1. `…/<CMP>/<cluster…>/common/yaml/` (nearest ancestor `common/`)
|
|
41
|
+
2. `…/<CMP>/common/yaml/`
|
|
42
|
+
3. `surfaces/<surface>/common/yaml/`
|
|
43
|
+
4. `surfaces/common/yaml/`
|
|
44
|
+
|
|
45
|
+
Same walk for `patterns/` Markdown.
|
|
46
|
+
|
|
47
|
+
## 4. Business process (`FLOW-*`)
|
|
48
|
+
|
|
49
|
+
| Scope of the flow | File |
|
|
50
|
+
|-------------------|------|
|
|
51
|
+
| Org / cross-surface / “hero” catalog | `architecture/03-business-process/FLOW-*.md` (MCP `flowgrid_docs_business_processes`) |
|
|
52
|
+
| Many modules, one surface | `surfaces/<surface>/common/processes/FLOW-*.md` |
|
|
53
|
+
| Whole module, several clusters | `surfaces/<surface>/<CMP-id>/common/processes/FLOW-*.md` |
|
|
54
|
+
| One cluster / submodule only | `surfaces/<surface>/<CMP-id>/<NN>/common/processes/FLOW-*.md` |
|
|
55
|
+
|
|
56
|
+
Do **not** drop `FLOW-*.md` beside a single `W-*` bundle. Do **not** write module-internal flows only under `architecture/03-business-process/` (optional **link** from the catalog to the product path).
|
|
57
|
+
|
|
58
|
+
`/db-erd` and `/cross-service` use the **same** `common/` LCA (`common/db-erd.md`, `common/cross-service.md`), not a second invented folder name.
|
|
59
|
+
|
|
60
|
+
## 5. Forbidden
|
|
61
|
+
|
|
62
|
+
- Creating `common/` from `/spec`
|
|
63
|
+
- Textual slugs in the path (`auth/`, `cluster-name/`) except `common/` and `yaml/<bundle-slug>/`
|
|
64
|
+
- Duplicate copies of the same bundle at two LCA levels
|
|
65
|
+
- `Surfaces/Common` mixed case when the hub uses `surfaces/`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# bộ docs — phase hooks
|
|
2
|
+
|
|
3
|
+
bộ docs is an optional index over Markdown owned by the configured docs repo.
|
|
4
|
+
In consumer repos, that root comes from machine-local `FLOWGRID_DOCS_ROOT`; never
|
|
5
|
+
inspect the current FE/BE/tests repo as if it were the docs hub.
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
(1) flowgrid_docs_layout / flowgrid_docs_route / flowgrid_docs_list_ids — narrow scope
|
|
9
|
+
(2) flowgrid_docs_get_element — canonical file and targeted excerpt
|
|
10
|
+
(3) flowgrid_docs_deps_of / flowgrid_docs_dependents_of — reference impact
|
|
11
|
+
(4) flowgrid_docs_orphans / flowgrid_docs_validate_links — catalog health
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Use `FLOW-*` and `flowgrid_docs_journeys` for journeys. Keep ADRs in the configured
|
|
15
|
+
arc42 decision home and code-level IDs in the target hub's product tree.
|
|
16
|
+
|
|
17
|
+
If bộ docs is not connected, continue with targeted Markdown inspection at the
|
|
18
|
+
explicit docs root. To wire it locally from another repo:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
flowgrid init --location=local --docs-root=/absolute/path/to/docs-hub --yes
|
|
22
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"package": "@platform/flowgrid-docs",
|
|
4
|
+
"bundles": {
|
|
5
|
+
"architecture-core": [
|
|
6
|
+
".cursor/extracts/architecture-core.md",
|
|
7
|
+
".cursor/extracts/tpl-arc42-chapter.md",
|
|
8
|
+
".cursor/extracts/tpl-module.md",
|
|
9
|
+
".cursor/extracts/tpl-deployment.md",
|
|
10
|
+
".cursor/extracts/tpl-adr.md",
|
|
11
|
+
".cursor/extracts/tpl-cross-cutting.md",
|
|
12
|
+
".cursor/extracts/common-scope.md"
|
|
13
|
+
],
|
|
14
|
+
"docs-hub": [
|
|
15
|
+
".cursor/extracts/docs-phase-hooks.md",
|
|
16
|
+
".cursor/extracts/agent-execution-protocol.md",
|
|
17
|
+
".cursor/extracts/qa-inbox.md"
|
|
18
|
+
],
|
|
19
|
+
"spec-requirement": [
|
|
20
|
+
".cursor/extracts/spec-requirement.md",
|
|
21
|
+
".cursor/extracts/agent-execution-protocol.md",
|
|
22
|
+
".cursor/extracts/common-scope.md"
|
|
23
|
+
],
|
|
24
|
+
"spec-core": [
|
|
25
|
+
".cursor/extracts/spec-core.md",
|
|
26
|
+
".cursor/extracts/common-scope.md"
|
|
27
|
+
],
|
|
28
|
+
"bqa-grill": [
|
|
29
|
+
".cursor/extracts/grill/validation.md",
|
|
30
|
+
".cursor/extracts/agent-execution-protocol.md"
|
|
31
|
+
],
|
|
32
|
+
"dev-grill": [
|
|
33
|
+
".cursor/extracts/codegen/readiness.md",
|
|
34
|
+
".cursor/extracts/docs-mark-detect.md"
|
|
35
|
+
],
|
|
36
|
+
"grill-docs": [
|
|
37
|
+
".cursor/extracts/grill-docs-reconcile.md",
|
|
38
|
+
".cursor/extracts/grill/validation.md"
|
|
39
|
+
],
|
|
40
|
+
"update-spec": [
|
|
41
|
+
".cursor/extracts/update-spec-delta.md",
|
|
42
|
+
".cursor/extracts/qa-inbox.md"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Grill validation (bộ docs)
|
|
2
|
+
|
|
3
|
+
Deterministic gates before marking a bundle grill-approved:
|
|
4
|
+
|
|
5
|
+
- `flowgrid split` / `flowgrid check` on the target `*.bundle.yaml`
|
|
6
|
+
- `flowgrid render` when human-readable spec must be reviewed
|
|
7
|
+
- Page type / `codegen.profile` must match skill workflow (`/grill-bqa`, `/grill-dev`)
|
|
8
|
+
|
|
9
|
+
Do not write SSOT until the member confirms grill recommendations in chat.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# QA inbox — deferred questions (docs hub)
|
|
2
|
+
|
|
3
|
+
There is **no** `openQuestions` on YAML. Gaps use **AskQuestion** in the skill session.
|
|
4
|
+
|
|
5
|
+
## Wizard (always)
|
|
6
|
+
|
|
7
|
+
AskQuestion: MUST include your Recommended options AND an explicit "Log as Tech Debt (Pending)" option. (The UI automatically provides the 3rd "Other" option). **STOP**.
|
|
8
|
+
|
|
9
|
+
- Member picks A/B/C (Recommended) → write that fact into the real spec field (`design`, `01`, …).
|
|
10
|
+
- Member picks **Log as Tech Debt (Pending)** → create a QA file (below). Do not invent the answer.
|
|
11
|
+
- Member picks **Other** and types a decision → write that text into the spec field.
|
|
12
|
+
|
|
13
|
+
## When to create a file
|
|
14
|
+
|
|
15
|
+
1. Read `page-id` on the feature bundle / `ir/spec.yaml` (or `feature.id` on a backend `01`). Legacy bundles may still have `id`.
|
|
16
|
+
2. Glob `qa/open/QA-<id>-*.yaml`. Next seq = max `NNNN` + 1, pad 4 digits. First file → `0001`.
|
|
17
|
+
3. Write `qa/open/QA-<id>-NNNN.yaml` from `.flowgrid/templates/qa-item.yaml`.
|
|
18
|
+
4. Point the spec field at the **same** id: `#missing_info QA-<id>-NNNN` and/or `#tech-debt:QA-<id>-NNNN` and/or `pendingTechDebt[].id`.
|
|
19
|
+
5. `flowgrid split` — `ir/spec.yaml` gets `"Q&A": QA-…-0001, QA-…-0002`.
|
|
20
|
+
|
|
21
|
+
## Close (`/qa-resolve`)
|
|
22
|
+
|
|
23
|
+
Prompt: `/qa-resolve QA-<page-id>-NNNN` plus the **solution** on the following lines.
|
|
24
|
+
|
|
25
|
+
That is Confirm — do **not** AskQuestion again. Skill patches `target.path`, deletes this file, gỡ tag / `pendingTechDebt`, `flowgrid split` (and `openapi:gen` if 01).
|
|
26
|
+
|
|
27
|
+
Unknown answer → grill / `/api-spec`, not this extract.
|
|
28
|
+
|
|
29
|
+
## Do not block grill
|
|
30
|
+
|
|
31
|
+
`grillStatus` may be `done` while `qa/open/` still has files. Short `summary` prose is member review, not a QA file unless **keys** are missing.
|
|
32
|
+
|
|
33
|
+
## Not this folder
|
|
34
|
+
|
|
35
|
+
- ADR → `architecture/09-decisions`
|
|
36
|
+
- Lasting product risk → `architecture/11-risks`
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Risk classes checklist
|
|
2
|
+
|
|
3
|
+
Use with [SKILL.md](SKILL.md). Tick each class against the vertical + horizontal maps.
|
|
4
|
+
|
|
5
|
+
## AuthZ / IDOR
|
|
6
|
+
|
|
7
|
+
- [ ] Resource by id checked against current tenant (`storeId` / `hotel_id` from trusted source)
|
|
8
|
+
- [ ] Body/query `store_id` cannot switch store context for another hotel
|
|
9
|
+
- [ ] Admin/batch skip of ownership is intentional and not reachable from store UI JWT
|
|
10
|
+
- [ ] Report/filter/list-by-ids rejects foreign ids (404), not only empty data
|
|
11
|
+
|
|
12
|
+
## Request bag / contract
|
|
13
|
+
|
|
14
|
+
- [ ] ID lists use **named keys** (`ids`, `arrId`, `survey_ids`, `scenarioList`) — not bare `[1,2]` → `0=1`
|
|
15
|
+
- [ ] `$request->all()` / `query()` not treated as “array of business ids”
|
|
16
|
+
- [ ] Middleware `merge` fields (`store_id`, `storeId`, …) stripped or unused when parsing id lists
|
|
17
|
+
- [ ] Allowlist vs denylist clear for context keys vs business keys
|
|
18
|
+
|
|
19
|
+
**Context denylist (typical after ScenarioAuthentication):**
|
|
20
|
+
`store_id`, `storeId`, `service_id`, `serviceId`, `m_service_id`, `isAdmin`, `apiKey`, pagination/date noise if normalizing “all numbers”.
|
|
21
|
+
|
|
22
|
+
**ID allowlist (prefer):**
|
|
23
|
+
`ids`, `arrId`, `survey_ids`, `scenario_ids`, `scenarioList`
|
|
24
|
+
|
|
25
|
+
## Trust boundary / proxy
|
|
26
|
+
|
|
27
|
+
- [ ] Upstream 404 stays 404 (or explicit not-found JSON), not 200 + empty Resource
|
|
28
|
+
- [ ] FE `throwError` / `createError` aligned with real HTTP status
|
|
29
|
+
- [ ] JWT/`attributes` preferred over client-supplied tenant ids
|
|
30
|
+
|
|
31
|
+
## Over-broad parse
|
|
32
|
+
|
|
33
|
+
- [ ] No “every positive int in the array is an id” unless array is already allowlisted
|
|
34
|
+
- [ ] CSV/string explode paths do not swallow unrelated query params
|
|
35
|
+
|
|
36
|
+
## Null / empty
|
|
37
|
+
|
|
38
|
+
- [ ] Missing model → 404 vs empty collection semantics documented
|
|
39
|
+
- [ ] `whereIn([], …)` / empty id list behavior safe (no accidental match-all)
|
|
40
|
+
- [ ] Optional relations null-safe before property access
|
|
41
|
+
|
|
42
|
+
## Error collapsing
|
|
43
|
+
|
|
44
|
+
- [ ] Distinct failures keep distinct outcomes (authZ 404 ≠ relation-exists ≠ server error)
|
|
45
|
+
- [ ] Controller does not always return one business message when helper returns `true` for multiple reasons
|
|
46
|
+
|
|
47
|
+
## Hardcode / magic
|
|
48
|
+
|
|
49
|
+
- [ ] No production hardcode of hotel/store/survey/scenario ids
|
|
50
|
+
- [ ] Magic status/codes named or constanted when added
|
|
51
|
+
|
|
52
|
+
## Async / Jobs / Events
|
|
53
|
+
|
|
54
|
+
- [ ] Job payload carries needed tenant/service context (or reloads safely)
|
|
55
|
+
- [ ] Job path does not assume HTTP middleware ran (`merge`, `attributes->storeId`)
|
|
56
|
+
- [ ] Retries are idempotent for writes/deletes
|
|
57
|
+
- [ ] Failed pre-check cannot leave partial side effects
|
|
58
|
+
- [ ] `dispatch` callers listed in horizontal table
|
|
59
|
+
|
|
60
|
+
## Business rules
|
|
61
|
+
|
|
62
|
+
- [ ] Relation/existence gates: false positive and false negative both considered
|
|
63
|
+
- [ ] Delete/update constraints still correct after ownership changes
|
|
64
|
+
- [ ] Soft-deleted rows excluded/included as product intends
|
|
65
|
+
|
|
66
|
+
## Data / transactions
|
|
67
|
+
|
|
68
|
+
- [ ] Multi-step delete/update atomic where required
|
|
69
|
+
- [ ] Soft delete vs force delete consistency with “exists” checks
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# ADR template
|
|
2
|
+
|
|
3
|
+
Path: `architecture/09-decisions/ADR-{NNN}-{slug}.md` (or section in index)
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# ADR-{NNN} — Title
|
|
7
|
+
|
|
8
|
+
| Field | Value |
|
|
9
|
+
|-------|-------|
|
|
10
|
+
| Status | proposed / accepted / superseded |
|
|
11
|
+
| Date | YYYY-MM-DD |
|
|
12
|
+
| Deciders | |
|
|
13
|
+
|
|
14
|
+
## Context
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
## Consequences
|
|
19
|
+
|
|
20
|
+
## Related
|
|
21
|
+
|
|
22
|
+
- CMP-*, CTR-*, FLOW-*, …
|
|
23
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# arc42 chapter stub
|
|
2
|
+
|
|
3
|
+
Path: `architecture/{NN}-{slug}/index.md`
|
|
4
|
+
`status: stub | active`
|
|
5
|
+
|
|
6
|
+
## Sections
|
|
7
|
+
|
|
8
|
+
```markdown
|
|
9
|
+
# {NN} — {Title}
|
|
10
|
+
|
|
11
|
+
status: stub
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
One short paragraph (*why* this chapter exists).
|
|
16
|
+
|
|
17
|
+
## Content
|
|
18
|
+
|
|
19
|
+
TBD — fill when active.
|
|
20
|
+
|
|
21
|
+
## Out of scope
|
|
22
|
+
|
|
23
|
+
What belongs in other chapters / các module/bề mặt khác.
|
|
24
|
+
|
|
25
|
+
## See also
|
|
26
|
+
|
|
27
|
+
- Related chapter links
|
|
28
|
+
- Related IDs (`CTX-*`, `FLOW-*`, …)
|
|
29
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Cross-cutting stub
|
|
2
|
+
|
|
3
|
+
Path: `architecture/08-cross-cutting/{topic}.md` or sections under index.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# {Topic} (e.g. Security)
|
|
7
|
+
|
|
8
|
+
| Field | Value |
|
|
9
|
+
|-------|-------|
|
|
10
|
+
| Owner | TBD |
|
|
11
|
+
| Status | stub |
|
|
12
|
+
|
|
13
|
+
## Intent
|
|
14
|
+
|
|
15
|
+
One paragraph.
|
|
16
|
+
|
|
17
|
+
## Approach
|
|
18
|
+
|
|
19
|
+
TBD — link ADR / CMP / FLOW when known.
|
|
20
|
+
|
|
21
|
+
## Out of scope
|
|
22
|
+
|
|
23
|
+
Product UI DSL, full OpenAPI, test plans (`base-tests`).
|
|
24
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Deployment stub — DEP-* (optional)
|
|
2
|
+
|
|
3
|
+
Path: `architecture/07-deployment/`
|
|
4
|
+
Only write a real diagram when **placement** matters. Default = short stub.
|
|
5
|
+
|
|
6
|
+
## Sections
|
|
7
|
+
|
|
8
|
+
`# DEP-* — title` · 2–5 lines prose · optional `## Diagram` · `## Notes` (no secrets)
|
|
9
|
+
|
|
10
|
+
## Stub example
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
# DEP-local — Local developer layout
|
|
14
|
+
|
|
15
|
+
status: stub
|
|
16
|
+
|
|
17
|
+
Local WSL / Docker-compose style layout for platform bases.
|
|
18
|
+
Prod/staging topology: TBD (do not invent).
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
- No secrets; no local-machine handbook in this repo
|
|
23
|
+
```
|