@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,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test
|
|
3
|
+
description: /test — Playwright E2E from tests-hub plan YAML (FE only).
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /test
|
|
8
|
+
|
|
9
|
+
**Owner:** bộ test (`--type=fe`)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
flowgrid testcase:gen:dry --tests-docs=/path/to/tests-hub --docs-root=/path/to/docs-hub -- --id TC-…
|
|
13
|
+
flowgrid testcase:gen --tests-docs=/path/to/tests-hub --docs-root=/path/to/docs-hub -- --id TC-…
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Use `FLOWGRID_TESTS_DOC` (or `--tests-docs`) when the tests hub is not local.
|
|
17
|
+
Use `FLOWGRID_DOCS_ROOT` for docs evidence. Route Functions/W-* evidence through
|
|
18
|
+
bộ docs, and symbols or call graphs for repo X through the Platform DNA-wired
|
|
19
|
+
`codegraph-<repo-key>` server for checkout X. Never use a workspace-parent
|
|
20
|
+
graph or ask the member to hand-edit MCP configuration.
|
|
21
|
+
|
|
22
|
+
## Accelerators (optional)
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
if local ArtifactGraph available: recommend/check generation allowlist (this repo)
|
|
26
|
+
else: local deterministic search, then run flowgrid testcase:gen directly
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
ArtifactGraph never follows `FLOWGRID_DOCS_ROOT` / `FLOWGRID_TESTS_DOC`; plan
|
|
30
|
+
YAML and docs evidence flow only through those bộ test pointers.
|
|
31
|
+
|
|
32
|
+
Assign one stable `runId` at run start. If ArtifactGraph is missing, complete
|
|
33
|
+
the local fallback, count successful file reads and exact raw bytes read into
|
|
34
|
+
context, then emit exactly one `flowgrid.missing-optional` JSON event for the
|
|
35
|
+
`runId` + `artifactgraph` pair. Deduplicate retries. Validate against
|
|
36
|
+
`.cursor/schemas/flowgrid-test/missing-optional-event.schema.json`; report only actual
|
|
37
|
+
`fileReads` and `contextBytes`, never estimated token or savings claims.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: unit
|
|
3
|
+
description: /unit — unit test generation from codegen manifests via bộ code.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /unit
|
|
8
|
+
|
|
9
|
+
**Owner:** bộ code (`--type=fe`)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm run codegen:unit:dry -- --id W-AD-AUTH-001
|
|
13
|
+
npm run codegen:unit -- --id W-AD-AUTH-001
|
|
14
|
+
|
|
15
|
+
# Fallback direct CLI if wrappers missing:
|
|
16
|
+
flowgrid unit-gen:dry --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-AD-AUTH-001
|
|
17
|
+
flowgrid unit-gen --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-AD-AUTH-001
|
|
18
|
+
flowgrid unit-registry --adapter=nuxt4
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
You MUST run the codegen script (`npm run codegen:unit` or `flowgrid unit-gen`) FIRST to generate the skeleton and basic implementation from IR, before attempting to fill in any gaps, implement logic, or add missing tests manually.
|
|
22
|
+
|
|
23
|
+
Requires a prior codegen manifest under the docs hub `generated/` folder (when applicable).
|
|
24
|
+
`--docs-root` / `FLOWGRID_DOCS_ROOT` is the canonical registry/IR pointer;
|
|
25
|
+
local ArtifactGraph never replaces it.
|
|
26
|
+
|
|
27
|
+
## Docs Root Resolution
|
|
28
|
+
|
|
29
|
+
1. If `FLOWGRID_DOCS_ROOT` is set (non-empty), use it as the canonical
|
|
30
|
+
registry/IR pointer for locating codegen manifests.
|
|
31
|
+
2. If `FLOWGRID_DOCS_ROOT` is **not** set, fall back to Platform DNA
|
|
32
|
+
configuration (`platform-dna`) to resolve the docs hub path.
|
|
33
|
+
Platform DNA discovery is slower and more error-prone, so always prefer
|
|
34
|
+
an explicit `FLOWGRID_DOCS_ROOT` when available.
|
|
35
|
+
|
|
36
|
+
## Route
|
|
37
|
+
|
|
38
|
+
Architecture/C4 → bộ docs (`FLOWGRID_DOCS_ROOT`); IR/registry/gen →
|
|
39
|
+
`FLOWGRID_DOCS_ROOT`; symbols/call-graph for repo X → Platform DNA-wired
|
|
40
|
+
`codegraph-<repo-key>`. Never workspace-parent graphs or member-edited MCP.
|
|
41
|
+
Local ArtifactGraph is allowlist/tag hints for this repo only.
|
|
42
|
+
|
|
43
|
+
`dotnet-line` is not supported by these separate unit commands: its primary
|
|
44
|
+
`gen` pass already bundles generated test source.
|
|
45
|
+
|
|
46
|
+
## Accelerators (optional)
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
if local ArtifactGraph available: recommend/check the FE repo's unit-gen allowlist
|
|
50
|
+
else: run flowgrid unit-gen directly
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Missing ArtifactGraph never blocks unit generation. Complete the direct,
|
|
54
|
+
deterministic bộ code fallback first, then follow
|
|
55
|
+
`.cursor/rules/flowgrid-code-optional-integrations.mdc` for once-per-run telemetry.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wire
|
|
3
|
+
description: /wire — replace prototype mocks with real API wiring (bộ code FE lane).
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /wire
|
|
8
|
+
|
|
9
|
+
**Owner:** bộ code (`--type=fe`)
|
|
10
|
+
|
|
11
|
+
Use after `/prototype` when tags/handoff mark `#wire-only` or real API integration is required.
|
|
12
|
+
Keep generation through bộ code adapters; resolve canonical docs evidence
|
|
13
|
+
through `FLOWGRID_DOCS_ROOT` and do not invent sibling layout.
|
|
14
|
+
|
|
15
|
+
## Docs Root Resolution
|
|
16
|
+
|
|
17
|
+
1. If `FLOWGRID_DOCS_ROOT` is set (non-empty), use it as the canonical
|
|
18
|
+
pointer for resolving IR/handoff evidence.
|
|
19
|
+
2. If `FLOWGRID_DOCS_ROOT` is **not** set, fall back to Platform DNA
|
|
20
|
+
configuration (`platform-dna`) to resolve the docs hub path.
|
|
21
|
+
Platform DNA discovery is slower and more error-prone, so always prefer
|
|
22
|
+
an explicit `FLOWGRID_DOCS_ROOT` when available.
|
|
23
|
+
|
|
24
|
+
## Route
|
|
25
|
+
|
|
26
|
+
IR/handoff via `FLOWGRID_DOCS_ROOT`; architecture IDs via bộ docs
|
|
27
|
+
(`FLOWGRID_DOCS_ROOT`); BE/FE symbols via per-repo `codegraph-<key>`; ArtifactGraph
|
|
28
|
+
local tags only. Never workspace-parent graphs or member-edited MCP.
|
|
29
|
+
|
|
30
|
+
## Accelerators (optional)
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
if local ArtifactGraph available: local FE tags/allowlist slice for wire readiness
|
|
34
|
+
else: model review from scoped HANDOFF + registry evidence
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Missing ArtifactGraph never blocks wiring. Complete the scoped model fallback
|
|
38
|
+
first, then follow `.cursor/rules/flowgrid-code-optional-integrations.mdc` for
|
|
39
|
+
once-per-run telemetry with observed metrics only.
|
|
40
|
+
|
|
41
|
+
## Pre-wire (tests hub)
|
|
42
|
+
|
|
43
|
+
- **[MANDATORY]** Resolve **tests-docs** (`FLOWGRID_TESTS_DOC`) and **e2e-root** (FE `tests/e2e` or project convention).
|
|
44
|
+
- **[MANDATORY]** `flowgrid cases:gate --strict` on TC YAML for the screen being wired (when gate is enabled for the team).
|
|
45
|
+
|
|
46
|
+
## Post-wire (audit đầu ra)
|
|
47
|
+
|
|
48
|
+
- **[MANDATORY]** After mocks are removed and real API is connected, run:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
flowgrid audit e2e --e2e-root <playwright-dir> --tests-docs "$FLOWGRID_TESTS_DOC" --screen <W-*>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Optional: pass explicit `cases/**/TC-*.yaml` paths instead of `--tests-docs`.
|
|
55
|
+
|
|
56
|
+
- Parse JSON: `missingInPlaywright`, `matrixRowsUncovered`, `orphanTestCases`, `orphanSpecs`, `gaps[]`.
|
|
57
|
+
- **[MANDATORY]** Fix or defer every `critical` / `warning` gap before marking wire done; log deferrals in `qa/open` if team policy allows.
|
|
58
|
+
- **[RECOMMENDED]** `flowgrid audit fe-be <bundle.yaml>` when integration exposed contract drift.
|
|
59
|
+
|
|
60
|
+
Ref: `docs/references/skills/wire.md` · engine `engines/spec/lib/audit-e2e-coverage.mjs`.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# {{FLOWGRID_AGENT_LABEL}} Workspace Rules — bộ docs Physical Interlocks
|
|
2
|
+
|
|
3
|
+
> [!CRITICAL]
|
|
4
|
+
> These are **PHYSICAL INTERLOCKS**, not casual checklist reminders.
|
|
5
|
+
> Generated at `flowgrid init` for agent `{{FLOWGRID_AGENT_ID}}` → `{{FLOWGRID_AGENT_DIR}}/{{FLOWGRID_OVERLAY_FILE}}`.
|
|
6
|
+
> Synchronized with `SSOT_AGENT_PROTOCOL.md`.
|
|
7
|
+
> Any violation of these laws → run **FAILED**. Chat-only "done" = **STRICTLY REJECTED**.
|
|
8
|
+
>
|
|
9
|
+
> **[STRICTLY FORBIDDEN]** Do NOT use the list below as a static Verification Checklist in place of dynamic workflow steps derived from `SKILL.md`.
|
|
10
|
+
> The checklist **MUST** be derived from the active skill's **Workflow + Accelerators** — never static or copy-pasted.
|
|
11
|
+
|
|
12
|
+
**Path SSOT:** `surfaces/<surface>/CMP-*/<slug>/` (NO `modules/` segment)
|
|
13
|
+
**Task tracking:** Checklist in chat thread (≤5 items) or implementation plan artifact / Plan Mode (large tasks). **DO NOT** create physical `TODO.md` files in the repository.
|
|
14
|
+
**Skill root:** `{{FLOWGRID_AGENT_DIR}}/skills/<name>/SKILL.md`
|
|
15
|
+
**Tools:** read=`{{FLOWGRID_READ_TOOL}}` · write=`{{FLOWGRID_WRITE_TOOL}}`
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## LAW 1 — CRITICAL RULE FOR PRE-FLIGHT CHECK
|
|
20
|
+
|
|
21
|
+
In any thread (new or continuing), whenever a user requests to run a skill or feature, the **MANDATORY FIRST ACTION** is to invoke `{{FLOWGRID_READ_TOOL}}` directly on the target `SKILL.md` to load the current standards.
|
|
22
|
+
|
|
23
|
+
**STRICTLY FORBIDDEN** to rely on speculative memory or context from prior turns.
|
|
24
|
+
|
|
25
|
+
Without first invoking `{{FLOWGRID_READ_TOOL}}` on `SKILL.md` → **FORBIDDEN** to generate plans, YAML files, or any product artifacts.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## LAW 2 — CRITICAL RULE FOR TASK TRACKING & SESSION TOKEN HORIZON (Anti Flat-Check & Compaction Protection)
|
|
30
|
+
|
|
31
|
+
**Objective:** Prevent incomplete delivery, superficial checking, and session max-length token overflow (auto-compaction/truncation).
|
|
32
|
+
|
|
33
|
+
Immediately after Pre-flight, the agent **MUST** evaluate the total workload (including gaps from audit scripts, user questions, and action items) against the **Session Max-Length Horizon**:
|
|
34
|
+
|
|
35
|
+
### Workload & Token Safeguard Gate (The 5 / 10 Threshold Rule)
|
|
36
|
+
1. **Small Scope (≤5 items, single screen/API):**
|
|
37
|
+
- Accumulates < 30k trajectory tokens — well within safe single-session limits.
|
|
38
|
+
- List dynamic checklist (`- [ ]`) directly in the **chat thread**.
|
|
39
|
+
- Check off items (`[x]`) with concrete file/diff evidence as each completes.
|
|
40
|
+
- Execute wizard questions one at a time directly in the chat thread.
|
|
41
|
+
2. **Buffer Scope (6–9 items):**
|
|
42
|
+
- Permitted in chat ONLY if items are isolated, single-turn scalar string/label fills without deep file re-reading.
|
|
43
|
+
- If items involve structural changes or multi-file dependencies → MUST escalate to an implementation plan.
|
|
44
|
+
3. **Large Scope (≥10 items, multi-screen/cross-repo, OR audit script outputs extensive gaps):**
|
|
45
|
+
- **MANDATORY HARD STOP IN CHAT:** Strictly forbidden from dumping all items into the active chat session, which guarantees single-turn truncation and session auto-compaction.
|
|
46
|
+
- **Environment Plan Gate:** Author a structured implementation plan using the host environment's plan mechanism:
|
|
47
|
+
- **Antigravity:** `implementation_plan.md` in `<appDataDir>/brain/<conversation-id>/`.
|
|
48
|
+
- **Cursor:** Plan Mode / Plan document / `plan.md`.
|
|
49
|
+
- **Claude Code / Windsurf / Others:** Structured plan artifact or scratchpad (`plan.md` / `implementation_plan.md`).
|
|
50
|
+
- **Repository Cleanliness:** Regardless of host agent, **NEVER** commit temporary plan scratchpads into the production codebase repo.
|
|
51
|
+
- **Phase Slicing:** Partition workload into discrete **Phases** (each phase capped at 3–5 items).
|
|
52
|
+
- **Phase Boundary & Context Offloading:** At the completion of each phase, immediately write persistent physical files to disk. For the next phase, load fresh state from disk instead of accumulating verbose conversation history, insulating the workflow against context loss.
|
|
53
|
+
|
|
54
|
+
**Question Protocol (mandatory in both chat thread and implementation plan):**
|
|
55
|
+
|
|
56
|
+
- Every question **MUST** be explicitly numbered (`Question 1`, `Question 2`, etc.).
|
|
57
|
+
- Every question **MUST** provide **≥3 options**: (1) Concrete choice labeled `(Recommended)`, (2) `Other` (free text input), and (3) `Log as Tech Debt (Pending)`.
|
|
58
|
+
- **Chat Wizards (Small Scope):** Render one question at a time, awaiting user response before proceeding.
|
|
59
|
+
- **Implementation Plans (Large Scope):** Consolidate numbered questions within their respective phases in the plan document.
|
|
60
|
+
|
|
61
|
+
**CRITICAL — Physical File Policy:**
|
|
62
|
+
|
|
63
|
+
- **STRICTLY FORBIDDEN** to create a physical `TODO.md` file inside the target repository.
|
|
64
|
+
- **STRICTLY FORBIDDEN** to merely copy the static "Verification Checklist" from the end of `SKILL.md`.
|
|
65
|
+
- Each Workflow step = one checklist item. Each Accelerator branch = one `if available / else fallback` entry.
|
|
66
|
+
- **STRICTLY FORBIDDEN** to combine steps, batch check-off items, or output static generic checklists.
|
|
67
|
+
|
|
68
|
+
The verification checklist at the bottom of a skill serves only to audit evidence against derived steps — never as the checklist source itself.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## LAW 3 — CRITICAL RULE FOR EXECUTION (Plan Before Write)
|
|
73
|
+
|
|
74
|
+
**STRICTLY FORBIDDEN** to batch actions together without planning. **STRICTLY FORBIDDEN** to create redundant standalone plan files (`*-plan.md`).
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## LAW 4 — CRITICAL RULE — PHYSICAL OUTPUT IMMEDIATELY (No RAM Caching)
|
|
79
|
+
|
|
80
|
+
Whenever the agent generates a persistent result, it **MUST NOT** retain it solely in RAM or chat context.
|
|
81
|
+
|
|
82
|
+
**MANDATORY TO USE TOOL `{{FLOWGRID_WRITE_TOOL}}` TO WRITE PHYSICAL FILES IMMEDIATELY.**
|
|
83
|
+
|
|
84
|
+
Physical output of step N = Physical input of step N+1.
|
|
85
|
+
|
|
86
|
+
**Exception:** Unconfirmed Grill proposals remain on the **Chat Thread**. After member confirmation → update product SSOT and **Artifact Registry** directly.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## LAW 5 — CRITICAL RULE FOR DATA ORIGIN (Zero Business Hallucination)
|
|
91
|
+
|
|
92
|
+
The agent is permitted to populate specifications from strictly **2 sources**:
|
|
93
|
+
|
|
94
|
+
1. User prompt
|
|
95
|
+
2. History / evidence in ArtifactGraph Registry
|
|
96
|
+
|
|
97
|
+
**STRICTLY FORBIDDEN** to invent fields, validations, database columns, flows, or domain tags.
|
|
98
|
+
|
|
99
|
+
Any missing detail **MUST** remain empty or be tagged `#missing_info` and deferred to `/grill`.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## LAW 6 — CRITICAL RULE FOR GRILL PROCESS (Hard Confirmation Gate)
|
|
104
|
+
|
|
105
|
+
When inspecting `#missing_info` or gaps, Grill **MUST** follow 4 steps:
|
|
106
|
+
|
|
107
|
+
1. **Re-check ArtifactGraph** (if available) — other members may have committed updates.
|
|
108
|
+
2. **Micro-scoping:** Isolate strictly the missing block/field. Do not alter settled sections.
|
|
109
|
+
3. **Proposal:** Present via **wizard form** in the **Chat Thread** — one question at a time with ≥3 options (Recommended, Other, Tech Debt). Never create physical proposal files.
|
|
110
|
+
4. **Hard Confirmation Gate:** The agent is **STRICTLY FORBIDDEN** from overwriting product files unilaterally. The agent **MUST** pause and await member confirmation. Only after explicit confirmation is the agent permitted to write to SSOT.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## LAW 7 — CRITICAL RULE FOR DSL REGISTRY (Human-Dictated)
|
|
115
|
+
|
|
116
|
+
Human leads are the **exclusive authority** for establishing and updating DSL/Common standards.
|
|
117
|
+
|
|
118
|
+
The agent has **NO AUTHORITY** to unilaterally decide what constitutes "Common".
|
|
119
|
+
|
|
120
|
+
The agent acts strictly as a clerk, permitted to register or update DSL/Common in only **3** passive cases:
|
|
121
|
+
|
|
122
|
+
1. User explicitly invokes `/common` or `/common-spec`.
|
|
123
|
+
2. User explicitly invokes `/docs-mark` to record rules or tags.
|
|
124
|
+
3. User explicitly confirms a `/grill` proposal.
|
|
125
|
+
|
|
126
|
+
In standard `/spec` runs, the sole duty is to **consume existing common definitions**.
|
|
127
|
+
|
|
128
|
+
**STRICTLY FORBIDDEN** to invent or overwrite common/DSL definitions without authorization.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## LAW 8 — CRITICAL RULE FOR ARTIFACTGRAPH MCP & CROSS-REPO ROUTING
|
|
133
|
+
|
|
134
|
+
**1. Boundaries & Ownership:**
|
|
135
|
+
- ArtifactGraph manages solely `artifactgraph.json`, `registries/*.json`, `templates`, and `lexicon/` within the current repository.
|
|
136
|
+
- It does **NOT** manage Architecture Markdown (owned by bộ docs), Code Generators (owned by bộ code/bộ test), or Symbol Indexes (owned by CodeGraph).
|
|
137
|
+
|
|
138
|
+
**2. Cross-Repo Routing:**
|
|
139
|
+
- **STRICTLY FORBIDDEN** to use ArtifactGraph for broad cross-repo scanning or entire workspace graphs. Route by ownership:
|
|
140
|
+
- Architecture ID / C4 path → Delegate to **bộ docs** (`FLOWGRID_DOCS_ROOT`).
|
|
141
|
+
- IR / registry / generation → Delegate to **Owning Kit** (`FLOWGRID_DOCS_ROOT`, `FLOWGRID_DOCS_ROOT`, `FLOWGRID_TESTS_DOC`).
|
|
142
|
+
- Symbol / Call-graph lookups for repo X → Use **CodeGraph MCP** for repo X (`codegraph-<key>`).
|
|
143
|
+
|
|
144
|
+
**3. Protocol for MCP Usage:**
|
|
145
|
+
- **Status & Rebuild:** Use `artifactgraph_status`. If stale, call `artifactgraph_rebuild`.
|
|
146
|
+
- **Analyze:** Prioritize `artifactgraph_analyze`, `artifactgraph_grill_check`, or `artifactgraph_parity_check`.
|
|
147
|
+
- **Remember:** Only use `artifactgraph_remember` AFTER member confirms options during Grill.
|
|
148
|
+
- **Handoff:** Use `artifactgraph_allowlist_check` + `artifactgraph_recommend_command` to retrieve permitted commands; hand off to corresponding kit/script. Never run `artifactgraph_gen`.
|
|
149
|
+
- **Cloud Prompt:** Send `cloudPromptSlice` only for unresolved work items.
|
|
150
|
+
- **Setup:** If indices are missing, direct member to run `artifactgraph init` with the appropriate `--type=`.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Mandatory Lock Sequence
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
{{FLOWGRID_READ_TOOL}} SKILL.md
|
|
158
|
+
→ For every persistent result: {{FLOWGRID_WRITE_TOOL}} IMMEDIATELY (No RAM)
|
|
159
|
+
→ Data source: User | ArtifactGraph only; tag gaps with #missing_info
|
|
160
|
+
→ Grill: 4-step protocol + STOP for Confirmation before writing SSOT
|
|
161
|
+
→ Common/DSL: only via /common|/common-spec|/docs-mark|Confirm
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Isolation & Fake Reports Policy
|
|
165
|
+
|
|
166
|
+
- **MANDATORY** to execute **strictly one** skill as requested by the user. **STRICTLY FORBIDDEN** to merge sibling skills.
|
|
167
|
+
- **STRICTLY FORBIDDEN** to generate fake Markdown reports when the skill requires YAML/bundle output.
|
|
168
|
+
|
|
169
|
+
Full wording: `SSOT_AGENT_PROTOCOL.md` (located in `{{FLOWGRID_AGENT_DIR}}/`).
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# SSOT Agent Protocol — Physical Interlocks (bộ docs)
|
|
2
|
+
|
|
3
|
+
> [!CRITICAL]
|
|
4
|
+
> These are **PHYSICAL INTERLOCKS**, not casual reminders.
|
|
5
|
+
> Any violation of these laws → run **FAILED**. Chat-only "done" = **STRICTLY REJECTED**.
|
|
6
|
+
>
|
|
7
|
+
> Path SSOT: `surfaces/<surface>/CMP-*/<slug>/` (NO `modules/` segment).
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## LAW 1 — CRITICAL RULE FOR PRE-FLIGHT CHECK
|
|
12
|
+
|
|
13
|
+
**Objective:** Eliminate refusal to read original specification files.
|
|
14
|
+
|
|
15
|
+
In any thread (new or continuing), whenever a user requests to run a skill or feature, the **MANDATORY FIRST ACTION** is to invoke `{{FLOWGRID_READ_TOOL}}` (or equivalent read tool) directly on the target `SKILL.md` to load the current standards.
|
|
16
|
+
|
|
17
|
+
**STRICTLY FORBIDDEN** to rely on speculative memory or context from prior turns.
|
|
18
|
+
|
|
19
|
+
Without first invoking `{{FLOWGRID_READ_TOOL}}` on `SKILL.md` → **FORBIDDEN** to generate plans, YAML files, or any product artifacts.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## LAW 2 — CRITICAL RULE FOR TASK TRACKING & SESSION TOKEN HORIZON (Anti Flat-Check & Compaction Protection)
|
|
24
|
+
|
|
25
|
+
**Objective:** Prevent incomplete delivery, superficial checking, and session max-length token overflow (auto-compaction/truncation).
|
|
26
|
+
|
|
27
|
+
Immediately after Pre-flight, the agent **MUST** evaluate the total workload (including gaps from audit scripts, user questions, and action items) against the **Session Max-Length Horizon**:
|
|
28
|
+
|
|
29
|
+
### Workload & Token Safeguard Gate (The 5 / 10 Threshold Rule)
|
|
30
|
+
1. **Small Scope (≤5 items, single screen/API):**
|
|
31
|
+
- Accumulates < 30k trajectory tokens — well within safe single-session limits.
|
|
32
|
+
- List dynamic checklist (`- [ ]`) directly in the **chat thread**.
|
|
33
|
+
- Check off items (`[x]`) with concrete file/diff evidence as each completes.
|
|
34
|
+
- Execute wizard questions one at a time directly in the chat thread.
|
|
35
|
+
2. **Buffer Scope (6–9 items):**
|
|
36
|
+
- Permitted in chat ONLY if items are isolated, single-turn scalar string/label fills without deep file re-reading.
|
|
37
|
+
- If items involve structural changes or multi-file dependencies → MUST escalate to an implementation plan.
|
|
38
|
+
3. **Large Scope (≥10 items, multi-screen/cross-repo, OR audit script outputs extensive gaps):**
|
|
39
|
+
- **MANDATORY HARD STOP IN CHAT:** Strictly forbidden from dumping all items into the active chat session, which guarantees single-turn truncation and session auto-compaction.
|
|
40
|
+
- **Environment Plan Gate:** Author a structured implementation plan using the host environment's plan mechanism:
|
|
41
|
+
- **Antigravity:** `implementation_plan.md` in `<appDataDir>/brain/<conversation-id>/`.
|
|
42
|
+
- **Cursor:** Plan Mode / Plan document / `plan.md`.
|
|
43
|
+
- **Claude Code / Windsurf / Others:** Structured plan artifact or scratchpad (`plan.md` / `implementation_plan.md`).
|
|
44
|
+
- **Repository Cleanliness:** Regardless of host agent, **NEVER** commit temporary plan scratchpads into the production codebase repo.
|
|
45
|
+
- **Phase Slicing:** Partition workload into discrete **Phases** (each phase capped at 3–5 items).
|
|
46
|
+
- **Phase Boundary & Context Offloading:** At the completion of each phase, immediately write persistent physical files to disk. For the next phase, load fresh state from disk instead of accumulating verbose conversation history, insulating the workflow against context loss.
|
|
47
|
+
|
|
48
|
+
**Question Protocol (mandatory in both chat thread and implementation plan):**
|
|
49
|
+
|
|
50
|
+
- Every question **MUST** be explicitly numbered (`Question 1`, `Question 2`, etc.).
|
|
51
|
+
- Every question **MUST** provide **≥3 options**: (1) Concrete choice labeled `(Recommended)`, (2) `Other` (free text input), and (3) `Log as Tech Debt (Pending)`.
|
|
52
|
+
- **Chat Wizards (Small Scope):** Render one question at a time, awaiting user response before proceeding.
|
|
53
|
+
- **Implementation Plans (Large Scope):** Consolidate numbered questions within their respective phases in the plan document.
|
|
54
|
+
|
|
55
|
+
**CRITICAL — Physical File Policy:**
|
|
56
|
+
|
|
57
|
+
- **STRICTLY FORBIDDEN** to create a physical `TODO.md` file inside the target repository.
|
|
58
|
+
- **STRICTLY FORBIDDEN** to merely copy the static "Verification Checklist" from the end of `SKILL.md`.
|
|
59
|
+
- Each Workflow step = one checklist item. Each Accelerator branch = one `if available / else fallback` entry.
|
|
60
|
+
- **STRICTLY FORBIDDEN** to combine steps, batch check-off items, or output static generic checklists.
|
|
61
|
+
|
|
62
|
+
The verification checklist at the bottom of a skill serves only to audit evidence against derived steps — never as the checklist source itself.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## LAW 3 — CRITICAL RULE FOR EXECUTION (Plan Before Write)
|
|
67
|
+
|
|
68
|
+
**Objective:** Prevent raw unvalidated generation directly in RAM.
|
|
69
|
+
|
|
70
|
+
**STRICTLY FORBIDDEN** to batch actions together without planning. **STRICTLY FORBIDDEN** to create redundant standalone plan files (`*-plan.md`).
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## LAW 4 — CRITICAL RULE — PHYSICAL OUTPUT IMMEDIATELY (No RAM Caching)
|
|
75
|
+
|
|
76
|
+
**Objective:** Eliminate context truncation and loss of state.
|
|
77
|
+
|
|
78
|
+
Whenever the agent generates a persistent result (plan, proposal, bundle, step summary), it **MUST NOT** retain it solely in RAM or chat context.
|
|
79
|
+
|
|
80
|
+
**MANDATORY** to write physical files immediately using the appropriate tool.
|
|
81
|
+
|
|
82
|
+
Physical output of step N = Physical input of step N+1 (read from disk, do not rely on memory).
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## LAW 5 — CRITICAL RULE FOR DATA ORIGIN (Zero Business Hallucination)
|
|
87
|
+
|
|
88
|
+
**Objective:** Forbid inventing business logic when prompt information is missing.
|
|
89
|
+
|
|
90
|
+
The agent is permitted to populate specifications from strictly **2 sources**:
|
|
91
|
+
|
|
92
|
+
1. User prompt
|
|
93
|
+
2. Evidence from ArtifactGraph Registry (when MCP is available)
|
|
94
|
+
|
|
95
|
+
**STRICTLY FORBIDDEN** to invent fields, validations, database columns, flows, or domain tags.
|
|
96
|
+
|
|
97
|
+
Any missing detail **MUST** remain empty or be tagged `#missing_info` and deferred to `/grill`.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## LAW 6 — CRITICAL RULE FOR GRILL PROCESS (Hard Confirmation Gate)
|
|
102
|
+
|
|
103
|
+
**Objective:** Restrict grilling to localized analysis; prevent unapproved scope creep.
|
|
104
|
+
|
|
105
|
+
When inspecting `#missing_info` or gaps, Grill **MUST** follow 4 steps:
|
|
106
|
+
|
|
107
|
+
1. **Re-check ArtifactGraph** (if available) — other members may have committed updates.
|
|
108
|
+
2. **Micro-scoping:** Isolate strictly the missing block/field. Do not alter settled sections.
|
|
109
|
+
3. **Proposal:** Present via **wizard form** in the **Chat Thread** — one question at a time with ≥3 options (Recommended, Other, Tech Debt).
|
|
110
|
+
4. **Hard Confirmation Gate:** Wait for member confirmation in chat. Only after explicit confirmation is the agent permitted to update product SSOT (`.bundle.yaml`) and Artifact Registry.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## LAW 7 — CRITICAL RULE FOR DSL REGISTRY (Human-Dictated)
|
|
115
|
+
|
|
116
|
+
**Objective:** Prevent unauthorized modifications to Common and DSL assets.
|
|
117
|
+
|
|
118
|
+
Human leads are the **exclusive authority** for establishing and updating DSL/Common standards.
|
|
119
|
+
|
|
120
|
+
The agent has **NO AUTHORITY** to unilaterally decide what constitutes "Common".
|
|
121
|
+
|
|
122
|
+
The agent acts strictly as a clerk, permitted to register or update DSL/Common in only **3** passive cases:
|
|
123
|
+
|
|
124
|
+
1. User explicitly invokes `/common` or `/common-spec`.
|
|
125
|
+
2. User explicitly invokes `/docs-mark` to record rules or tags.
|
|
126
|
+
3. User explicitly confirms a `/grill` proposal.
|
|
127
|
+
|
|
128
|
+
In standard `/spec` runs, the sole duty is to **consume existing common definitions**.
|
|
129
|
+
|
|
130
|
+
**STRICTLY FORBIDDEN** to invent or overwrite common/DSL definitions without authorization.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## LAW 8 — CRITICAL RULE FOR ARTIFACTGRAPH MCP & CROSS-REPO ROUTING
|
|
135
|
+
|
|
136
|
+
**1. Boundaries & Ownership:**
|
|
137
|
+
- ArtifactGraph manages solely `artifactgraph.json`, `registries/*.json`, `templates`, and `lexicon/` within the current repository.
|
|
138
|
+
- It does **NOT** manage Architecture Markdown (owned by bộ docs), Code Generators (owned by bộ code/bộ test), or Symbol Indexes (owned by CodeGraph).
|
|
139
|
+
|
|
140
|
+
**2. Cross-Repo Routing:**
|
|
141
|
+
- **STRICTLY FORBIDDEN** to use ArtifactGraph for broad cross-repo scanning or entire workspace graphs. Route by ownership:
|
|
142
|
+
- Architecture ID / C4 path → Delegate to **bộ docs** (`FLOWGRID_DOCS_ROOT`).
|
|
143
|
+
- IR / registry / generation → Delegate to **Owning Kit** (`FLOWGRID_DOCS_ROOT`, `FLOWGRID_DOCS_ROOT`, `FLOWGRID_TESTS_DOC`).
|
|
144
|
+
- Symbol / Call-graph lookups for repo X → Use **CodeGraph MCP** for repo X (`codegraph-<key>`).
|
|
145
|
+
|
|
146
|
+
**3. Protocol for MCP Usage:**
|
|
147
|
+
- **Status & Rebuild:** Use `artifactgraph_status`. If stale, call `artifactgraph_rebuild`.
|
|
148
|
+
- **Analyze:** Prioritize `artifactgraph_analyze`, `artifactgraph_grill_check`, or `artifactgraph_parity_check`.
|
|
149
|
+
- **Remember:** Only use `artifactgraph_remember` AFTER member confirms options during Grill.
|
|
150
|
+
- **Handoff:** Use `artifactgraph_allowlist_check` + `artifactgraph_recommend_command` to retrieve permitted commands; hand off to corresponding kit/script. Never run `artifactgraph_gen`.
|
|
151
|
+
- **Cloud Prompt:** Send `cloudPromptSlice` only for unresolved work items.
|
|
152
|
+
- **Setup:** If indices are missing, direct member to run `artifactgraph init` with the appropriate `--type=`.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Mandatory Lock Sequence for Each Skill Run
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
1) {{FLOWGRID_READ_TOOL}} SKILL.md → Law 1
|
|
160
|
+
2) Derive dynamic checklist → Law 2
|
|
161
|
+
3) Write immediately upon producing durable results (No RAM) → Law 4
|
|
162
|
+
4) Sourced exclusively from User | ArtifactGraph; tag gaps → Law 5
|
|
163
|
+
5) Grill: 4-step protocol + STOP for Confirmation → Law 6
|
|
164
|
+
6) Common/DSL: only via /common|/common-spec|/docs-mark|Confirm → Law 7
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Host overlay Antigravity: see `AGENTS.md` (synchronized Laws 1–8).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: bộ code-owned fallback and telemetry for optional integrations
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# bộ code optional integrations
|
|
7
|
+
|
|
8
|
+
ArtifactGraph and CodeGraph are optional accelerators. Their absence or
|
|
9
|
+
unavailability must never abort a bộ code-owned generation, dry-run,
|
|
10
|
+
validation, or review.
|
|
11
|
+
|
|
12
|
+
Full cross-repo routing (architecture → bộ docs, IR → pointer roots, symbols →
|
|
13
|
+
per-repo `codegraph-<key>`) lives in `cross-repo-index-routing.mdc`.
|
|
14
|
+
|
|
15
|
+
## Docs registry hub
|
|
16
|
+
|
|
17
|
+
- FE reads canonical IR/registries from the member-selected docs repo through
|
|
18
|
+
`FLOWGRID_DOCS_ROOT` (written from `--docs-root` at init). Never infer a
|
|
19
|
+
sibling checkout.
|
|
20
|
+
- ArtifactGraph in an FE/BE repo indexes that repo only; it does **not** follow
|
|
21
|
+
`FLOWGRID_DOCS_ROOT` and must not be used as the bridge to docs.
|
|
22
|
+
- Use ArtifactGraph only for local allowlist/tag hints. Missing local
|
|
23
|
+
ArtifactGraph never changes where bộ code reads canonical docs input.
|
|
24
|
+
- bộ docs, when installed as a consumer, uses its separate `FLOWGRID_DOCS_ROOT`
|
|
25
|
+
pointer for architecture ID/path queries — never CodeGraph for C4.
|
|
26
|
+
- CodeGraph, when used, must be the Platform DNA-wired `codegraph-<repo-key>`
|
|
27
|
+
for that checkout. bộ code never writes those MCP entries itself. Missing
|
|
28
|
+
or unindexed checkouts fall back and emit telemetry; never invent a graph or
|
|
29
|
+
`codegraph init` a workspace parent.
|
|
30
|
+
|
|
31
|
+
For each optional integration that cannot be used:
|
|
32
|
+
|
|
33
|
+
1. Continue the owned workflow with its documented deterministic validation or
|
|
34
|
+
direct adapter fallback. Where judgment is required, use the documented
|
|
35
|
+
model fallback; where repository evidence is required, use targeted local
|
|
36
|
+
search and file reads.
|
|
37
|
+
2. Complete the fallback before emitting telemetry. Do not emit an absence
|
|
38
|
+
event before or instead of the fallback.
|
|
39
|
+
3. Emit exactly one event for each `(runId, optional)` pair, including across
|
|
40
|
+
retries. Deduplicate repeated discovery or connection failures in the same
|
|
41
|
+
run.
|
|
42
|
+
4. Validate the event against
|
|
43
|
+
`.cursor/schemas/flowgrid-code/missing-optional-event.schema.json`.
|
|
44
|
+
5. Set `event` to `flowgrid.missing-optional`, `package` to
|
|
45
|
+
`@platform/flowgrid-code`, and name the unavailable optional as `ArtifactGraph`
|
|
46
|
+
or `CodeGraph`.
|
|
47
|
+
6. Report the fallback actually completed and the actual failure reason.
|
|
48
|
+
`metrics.fileReads` is the number of successful fallback file reads and
|
|
49
|
+
`metrics.contextBytes` is the total UTF-8 bytes those reads added to
|
|
50
|
+
context. Start both counters at zero, increment from observed operations,
|
|
51
|
+
and never estimate, predict, or copy planned values.
|
|
52
|
+
|
|
53
|
+
Use one stable, non-empty `runId` for the entire owned command or agent run.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://platform.local/schemas/flowgrid-code/missing-optional-event.schema.json",
|
|
4
|
+
"title": "FlowGrid bộ code missing optional dependency event",
|
|
5
|
+
"description": "Emitted once per FlowGrid bộ code run and missing optional dependency, after the owned fallback completes.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"event",
|
|
10
|
+
"package",
|
|
11
|
+
"runId",
|
|
12
|
+
"optional",
|
|
13
|
+
"reason",
|
|
14
|
+
"fallback",
|
|
15
|
+
"metrics"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"event": {
|
|
19
|
+
"const": "flowgrid.missing-optional"
|
|
20
|
+
},
|
|
21
|
+
"package": {
|
|
22
|
+
"const": "@platform/flowgrid-code"
|
|
23
|
+
},
|
|
24
|
+
"runId": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1
|
|
27
|
+
},
|
|
28
|
+
"optional": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": [
|
|
31
|
+
"ArtifactGraph",
|
|
32
|
+
"CodeGraph"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"reason": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
},
|
|
39
|
+
"fallback": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"minLength": 1
|
|
42
|
+
},
|
|
43
|
+
"metrics": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"required": [
|
|
47
|
+
"fileReads",
|
|
48
|
+
"contextBytes"
|
|
49
|
+
],
|
|
50
|
+
"properties": {
|
|
51
|
+
"fileReads": {
|
|
52
|
+
"type": "integer",
|
|
53
|
+
"minimum": 0
|
|
54
|
+
},
|
|
55
|
+
"contextBytes": {
|
|
56
|
+
"type": "integer",
|
|
57
|
+
"minimum": 0
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# ArtifactGraph — test hooks
|
|
2
|
+
|
|
3
|
+
- Use the installed testcase taxonomy for scenario, coverage, and dimension
|
|
4
|
+
suggestions on the current tests repo's own plans only.
|
|
5
|
+
- Resolve known E2E bundles from the current product index (local).
|
|
6
|
+
- Full product registry/IR remains in docs. bộ test reads cross-repo evidence
|
|
7
|
+
through `FLOWGRID_DOCS_ROOT` / `FLOWGRID_TESTS_DOC`; ArtifactGraph does not
|
|
8
|
+
follow those pointers.
|
|
9
|
+
- Architecture ID / C4 lookups go to bộ docs (`FLOWGRID_DOCS_ROOT`). Symbol /
|
|
10
|
+
call-graph lookups go to the target repo's `codegraph-<key>` MCP — Platform
|
|
11
|
+
DNA owns that auto-wire, not ArtifactGraph.
|
|
12
|
+
- Run testcase generation only when the current repo allowlists it.
|
|
13
|
+
- Keep `/testcase` and `/grill-testcase` phase skills owned by the test repo.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Tests hub plans readiness
|
|
2
|
+
|
|
3
|
+
**Who:** `/testcase`, `/grill-testcase`
|
|
4
|
+
**Not:** FE `/test` Playwright gen
|
|
5
|
+
|
|
6
|
+
## Gate
|
|
7
|
+
|
|
8
|
+
1. [ ] Design `W-*` / rules / acceptance tồn tại trên **docs hub** (SSOT)
|
|
9
|
+
2. [ ] `surface` → `CMP-*` (module) → `SC-*` (GWT + examples + coverage_plan)
|
|
10
|
+
3. [ ] Mỗi `TC-*` dùng `coverage[]` (không `type`); refs + bridge FE đủ gen
|
|
11
|
+
4. [ ] `registries/tests-index.json` cập nhật
|
|
12
|
+
5. [ ] `flowgrid cases:gate --strict --docs-root $FLOWGRID_DOCS_ROOT` (schema + audit + bundle trace + SC coverage) · `pnpm cases:render` (MD member VI)
|
|
13
|
+
6. [ ] Grill: không còn `spec_hole` mở; coverage_gap đã xử lý hoặc backlog có chủ
|
|
14
|
+
7. [ ] Handoff FE chỉ sau grill-testcase OK
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Route cross-repo evidence to the owning per-repo index
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cross-repo index routing
|
|
7
|
+
|
|
8
|
+
- Architecture IDs and Functions/W-* paths belong to bộ docs through `FLOWGRID_DOCS_ROOT`.
|
|
9
|
+
Never use CodeGraph as the architecture index.
|
|
10
|
+
- Test plans use `FLOWGRID_TESTS_DOC`; docs evidence uses
|
|
11
|
+
`FLOWGRID_DOCS_ROOT`; IR/registry/generation follows its owning pointer such as
|
|
12
|
+
`FLOWGRID_DOCS_ROOT`.
|
|
13
|
+
- For symbols or call graphs in repo X, call the Platform DNA-wired
|
|
14
|
+
`codegraph-<repo-key>` MCP whose `--project-root` is checkout X. Never query
|
|
15
|
+
the index of the currently open repo for another repo.
|
|
16
|
+
- Cross-index MCP entries come from Platform DNA using
|
|
17
|
+
`platform-repos.local.json` / `legacy-repos.local.json`. Do not ask members to
|
|
18
|
+
hand-edit `.cursor/mcp.json`, and never commit machine-local roots.
|
|
19
|
+
- Only use a checkout-specific CodeGraph server when that checkout exists and
|
|
20
|
+
already has `.codegraph/`. If it is not indexed, report:
|
|
21
|
+
`cd <root> && codegraph init`.
|
|
22
|
+
- Never initialize or scan a workspace parent. Keep one CodeGraph index per
|
|
23
|
+
repo. ArtifactGraph remains local to the current repo and is never a shared
|
|
24
|
+
docs or cross-repo index.
|