@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,62 @@
|
|
|
1
|
+
# Docs-mark — member annotation
|
|
2
|
+
|
|
3
|
+
> Skill: `/docs-mark` · Registries: `registries/common.registry.json` + `registries/design.registry.json`
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
Member (or agent after grill prompt) marks **spec** and/or **code** — **not** during round-1 `/spec` or bulk `/dev-grill-docs`.
|
|
8
|
+
|
|
9
|
+
Grill lanes ask first; member confirms → apply mark in same session.
|
|
10
|
+
|
|
11
|
+
## Mark kinds — logic (`registries/common.registry.json`)
|
|
12
|
+
|
|
13
|
+
| kind | Tag | Spec block |
|
|
14
|
+
|------|-----|------------|
|
|
15
|
+
| common | `#common:{id}` | `marks[]` + optional `commonRefs[]` on routes/endpoints |
|
|
16
|
+
| needs-common | `#needs-common:{id}` | `marks[]` — registry `status: planned` |
|
|
17
|
+
| call-external | `#call-external` | `technicalMarks[]` + `externalCalls[]` |
|
|
18
|
+
| cross-entity-service | `#cross-entity-service` | `technicalMarks[]` + `services[]` |
|
|
19
|
+
| cross-service | `#cross-service` | `technicalMarks[]` + `services[]` (alias for cross-entity-service) |
|
|
20
|
+
| derived-data | `#derived-data` | `technicalMarks[]` + `derivedData` |
|
|
21
|
+
| reuse-api | `#reuse-api` | `tags:` — signals route reuse from common/sibling; suppresses DUPLICATE_API_ROUTE |
|
|
22
|
+
|
|
23
|
+
## Mark kinds — UI (`registries/design.registry.json`)
|
|
24
|
+
|
|
25
|
+
| kind | Tag | Spec / gen |
|
|
26
|
+
|------|-----|------------|
|
|
27
|
+
| needs-component | `#needs-component: {slot}:MoXxx[:prop]` | `tags:` — bộ code HANDOFF until Mo* exists |
|
|
28
|
+
| needs-ui | `#needs-ui: {Widget}` | `tags:` — widget `planned` in design registry |
|
|
29
|
+
| common-ui | Mo* in design registry `implemented` | promote after `/prototype`; re-run flowgrid gen |
|
|
30
|
+
|
|
31
|
+
## Spec block — `marks[]` (`ir/spec.yaml`)
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
marks:
|
|
35
|
+
- id: MK-STATUS-CHIP-001
|
|
36
|
+
kind: needs-component
|
|
37
|
+
tag: "#needs-component: cell-status:MoStatusChip:label"
|
|
38
|
+
registryId: MoStatusChip
|
|
39
|
+
reason: "Cột status render custom"
|
|
40
|
+
source: docs-mark
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Registry — common / design
|
|
44
|
+
|
|
45
|
+
- `status`: `planned` | `implemented`
|
|
46
|
+
- Validate via bộ code FE / product registry scripts (not docs-hub shell)
|
|
47
|
+
|
|
48
|
+
## Workflow (each `/docs-mark` session)
|
|
49
|
+
|
|
50
|
+
1. Resolve scope: function id `W-*`/`API-*` under `surfaces/.../CMP-*/<slug>/code/` (legacy `.../modules/CMP-*/` also accepted), `ir/spec.yaml`, optional code paths. Tag business gaps `#missing_info` — do not invent fills.
|
|
51
|
+
2. Read `tags:`, `marks[]`, `technicalMarks[]`, both registries
|
|
52
|
+
3. Apply member intent — one concern per mark
|
|
53
|
+
4. Update spec YAML (`tags:` and/or `marks[]`)
|
|
54
|
+
5. Upsert correct registry entry
|
|
55
|
+
6. If `planned` → HANDOFF / `openQuestions`
|
|
56
|
+
7. Optional: `artifactgraph_remember` after confirm B
|
|
57
|
+
|
|
58
|
+
## Do not
|
|
59
|
+
|
|
60
|
+
- Rewrite full contract like `/spec`
|
|
61
|
+
- Auto-mark without member confirmation
|
|
62
|
+
- Treat `artifactgraph_gen` as required
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"bundles": {
|
|
4
|
+
"core": [
|
|
5
|
+
".cursor/extracts/core/agent-discipline.md"
|
|
6
|
+
],
|
|
7
|
+
"platform-ai": [
|
|
8
|
+
".cursor/extracts/artifact-graph.md",
|
|
9
|
+
".cursor/extracts/extract-registry.json"
|
|
10
|
+
],
|
|
11
|
+
"platform-mark": [
|
|
12
|
+
".cursor/extracts/core/agent-discipline.md",
|
|
13
|
+
".cursor/extracts/platform-mark.md",
|
|
14
|
+
".cursor/extracts/platform-mark-detect.md"
|
|
15
|
+
],
|
|
16
|
+
"artifactgraph": [
|
|
17
|
+
".cursor/extracts/core/agent-discipline.md",
|
|
18
|
+
".cursor/extracts/artifactgraph-hooks-core.md"
|
|
19
|
+
],
|
|
20
|
+
"docs-mark": [
|
|
21
|
+
".cursor/extracts/core/agent-discipline.md",
|
|
22
|
+
".cursor/extracts/docs-mark.md",
|
|
23
|
+
".cursor/extracts/docs-mark-detect.md"
|
|
24
|
+
],
|
|
25
|
+
"ux-common": [
|
|
26
|
+
".cursor/extracts/ux-common-patterns.md"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# UX gap checklists (extract only — policy in `flowgrid-ux-common.mdc`)
|
|
2
|
+
|
|
3
|
+
## 1. Flat design (shadcn admin)
|
|
4
|
+
|
|
5
|
+
**Recognize:** Flat portal chrome — borders, muted surfaces, clear typography.
|
|
6
|
+
|
|
7
|
+
**Propose when missing or off-pattern:**
|
|
8
|
+
|
|
9
|
+
- [ ] No heavy gradients/shadows on buttons, cards, table chrome.
|
|
10
|
+
- [ ] One clear primary per section; destructive only for dangerous actions.
|
|
11
|
+
- [ ] No stacked modals — prefer page, step, or inline over dialog stacks.
|
|
12
|
+
- [ ] Semantic colors; inline state near context instead of alert dialogs for read-only hints.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 2. List page & toolbar
|
|
17
|
+
|
|
18
|
+
**Recognize:** Title + primary (create) + secondary; bulk/export on list.
|
|
19
|
+
|
|
20
|
+
**Propose when missing:**
|
|
21
|
+
|
|
22
|
+
- [ ] List shell: title + main action; bulk actions on toolbar, not scattered per row.
|
|
23
|
+
- [ ] One primary intent; outline/ghost for secondary.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 3. Breadcrumb
|
|
28
|
+
|
|
29
|
+
**Recognize:** `A > B > C`, or list → detail/edit hierarchy even if not labeled “breadcrumb”.
|
|
30
|
+
|
|
31
|
+
**Propose when missing:**
|
|
32
|
+
|
|
33
|
+
- [ ] Trail or back + title reflecting module/record.
|
|
34
|
+
- [ ] Multiple entry paths (deep links) — vague Back alone is insufficient.
|
|
35
|
+
- [ ] Breadcrumb shell slot unwired → `#needs-ui:breadcrumb` or registry update.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 4. Search & filter
|
|
40
|
+
|
|
41
|
+
**Recognize:** Search box, filter dropdowns, active filter chips, reset.
|
|
42
|
+
|
|
43
|
+
**Propose when missing or unmapped:**
|
|
44
|
+
|
|
45
|
+
- [ ] Large lists or server pagination → search and/or filters (name fields).
|
|
46
|
+
- [ ] State: URL query **or** store — state choice in proposal.
|
|
47
|
+
- [ ] “No results” empty state distinct from empty list.
|
|
48
|
+
- [ ] If `#split-hook: filters` exists in design → use DSL; no duplicate filter YAML.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 5. Pagination
|
|
53
|
+
|
|
54
|
+
**Recognize:** Prev/next, page numbers, server total count.
|
|
55
|
+
|
|
56
|
+
**Propose when missing:**
|
|
57
|
+
|
|
58
|
+
- [ ] Standard paginator (no infinite scroll unless member explicitly chose it).
|
|
59
|
+
- [ ] Stay in sync with search/filter when present.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 6. Data table
|
|
64
|
+
|
|
65
|
+
**Recognize:** Column grid, sort, selection, action column — often covered by list shell DSL.
|
|
66
|
+
|
|
67
|
+
**Propose when under-specified:**
|
|
68
|
+
|
|
69
|
+
- [ ] Horizontal scroll; compact density; muted header.
|
|
70
|
+
- [ ] Status column → chip; action column → fixed width, nowrap; numbers → right-align.
|
|
71
|
+
- [ ] Long text: truncate + tooltip (default).
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 7. Table action column & disabled affordance
|
|
76
|
+
|
|
77
|
+
**Recognize:** Per-row icons/buttons; disabled by status, RBAC, or business rules.
|
|
78
|
+
|
|
79
|
+
**Propose when missing (common gap):**
|
|
80
|
+
|
|
81
|
+
- [ ] Row actions **icon-only** in table; outside table use icon + text when discoverability matters.
|
|
82
|
+
- [ ] Non-obvious disabled → **badge/chip/tooltip** with reason (“Locked”, “No permission”, …).
|
|
83
|
+
- [ ] Document `disabledReason` / preconditions in handoff.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 8. Buttons
|
|
88
|
+
|
|
89
|
+
**Recognize:** Primary/destructive/outline on forms, dialogs, toolbars.
|
|
90
|
+
|
|
91
|
+
**Propose when missing:**
|
|
92
|
+
|
|
93
|
+
- [ ] Submit/delete: `disabledReason` when blocked — not bare `disabled`.
|
|
94
|
+
- [ ] Confirm dialogs: correct primary/secondary/destructive roles.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 9. Status chip (lifecycle)
|
|
99
|
+
|
|
100
|
+
**Recognize:** Status column, detail tags, post-job badges.
|
|
101
|
+
|
|
102
|
+
**Propose when missing:**
|
|
103
|
+
|
|
104
|
+
- [ ] Text label + semantic color; consistent tone map (pending/warning, failed/danger, …).
|
|
105
|
+
- [ ] No plain text for states that need quick scanning.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 10. Confirm dialog (non-delete)
|
|
110
|
+
|
|
111
|
+
**Recognize:** Destructive actions, overwrite, cancel with side effects.
|
|
112
|
+
|
|
113
|
+
**Propose when missing:**
|
|
114
|
+
|
|
115
|
+
- [ ] Centered modal; never use confirm for form validation (use inline field errors).
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 11. Delete flow
|
|
120
|
+
|
|
121
|
+
**Recognize:** Row delete, bulk delete, soft-delete with confirm.
|
|
122
|
+
|
|
123
|
+
**Propose when DSL/handler missing or under-specified:**
|
|
124
|
+
|
|
125
|
+
- [ ] Blocking **confirm** (AlertDialog) before delete — clear cancel/confirm.
|
|
126
|
+
- [ ] After API: **result dialog** for success/error — user must acknowledge; **no** toast-only delete.
|
|
127
|
+
- [ ] Bulk: copy includes **count**; batch/endpoint explicit.
|
|
128
|
+
- [ ] API not ready → `#wire-only` / handoff — no fake success UI.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 12. Feedback (inline / toast / dialog)
|
|
133
|
+
|
|
134
|
+
**Recognize:** After save, delete, import, async jobs.
|
|
135
|
+
|
|
136
|
+
**Propose when missing:**
|
|
137
|
+
|
|
138
|
+
- [ ] Inline alert under title when still visible on light scroll.
|
|
139
|
+
- [ ] Toast ~5s for non-blocking notices — **does not** replace delete result dialog.
|
|
140
|
+
- [ ] One primary channel per action (inline OR dialog OR toast).
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 13. Form validation
|
|
145
|
+
|
|
146
|
+
**Recognize:** Create/edit, wizards, modal forms.
|
|
147
|
+
|
|
148
|
+
**Propose when missing:**
|
|
149
|
+
|
|
150
|
+
- [ ] Field-level inline errors; block submit while invalid.
|
|
151
|
+
- [ ] Submit/delete preconditions in handoff.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 14. Navigation (menu / sidebar)
|
|
156
|
+
|
|
157
|
+
**Recognize:** Module menu, active route, nested nav.
|
|
158
|
+
|
|
159
|
+
**Propose when missing:**
|
|
160
|
+
|
|
161
|
+
- [ ] Clear active state; no duplicate entries without routes.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 15. Import CSV
|
|
166
|
+
|
|
167
|
+
**Recognize:** Upload, column mapping, preview, import result.
|
|
168
|
+
|
|
169
|
+
**Propose when missing:**
|
|
170
|
+
|
|
171
|
+
- [ ] Flow: pick file → validate → confirm → result (row errors downloadable).
|
|
172
|
+
- [ ] No silent failure; feedback per section 12.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: ArtifactGraph local-first MCP protocol
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ArtifactGraph
|
|
7
|
+
|
|
8
|
+
- Product registries, templates, lexicons, and config are repository-local SSOT.
|
|
9
|
+
- Use local analyze/grill/parity/suggest before requesting cloud work.
|
|
10
|
+
- Never dump full registries or lexicons into `cloudPromptSlice`.
|
|
11
|
+
- Run only generation keys allowlisted by the current repo.
|
|
12
|
+
- Promote reviewed artifacts in the product repo, then rebuild the local index.
|
|
13
|
+
- Do not depend on `platform-repos.json`, `base-docs`, or `base-tests`.
|
|
14
|
+
|
|
15
|
+
## Cross-repo routing
|
|
16
|
+
|
|
17
|
+
- Architecture ID / C4 → bộ docs (`FLOWGRID_DOCS_ROOT`), not CodeGraph and not
|
|
18
|
+
ArtifactGraph.
|
|
19
|
+
- IR / registry / generation → bộ code / bộ test pointers
|
|
20
|
+
(`FLOWGRID_DOCS_ROOT`, `FLOWGRID_DOCS_ROOT`, `FLOWGRID_TESTS_DOC`).
|
|
21
|
+
- Symbol / call-graph of repo X → `codegraph-<key>` MCP for checkout X.
|
|
22
|
+
- ArtifactGraph is local-only: never follow those pointers, never read repo
|
|
23
|
+
maps, never scan a workspace parent, never wire CodeGraph MCP itself.
|
|
24
|
+
- Platform DNA owns map-based CodeGraph auto-wire and missing-index hints.
|
|
25
|
+
|
|
26
|
+
Hooks: `.cursor/extracts/artifactgraph-hooks-core.md`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Cross-repo index routing — call the correct per-repo index, never one giant workspace graph.
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cross-repo index routing (SSOT)
|
|
7
|
+
|
|
8
|
+
Do not merge every repository into a single workspace graph (the parent folder
|
|
9
|
+
must never be indexed). "Cross-repo" means a skill/rule knows how to reach the
|
|
10
|
+
**correct per-repo index**, one repository at a time.
|
|
11
|
+
|
|
12
|
+
**Owner:** Platform DNA. FlowGrid harness rules (bộ docs, bộ process, …) install this same
|
|
13
|
+
filename only when DNA is absent, so a destination never carries duplicate
|
|
14
|
+
`alwaysApply` routing rules under different names.
|
|
15
|
+
|
|
16
|
+
Route by intent:
|
|
17
|
+
|
|
18
|
+
- Need an architecture ID or C4 path -> bộ docs MCP (`FLOWGRID_DOCS_ROOT`). Never
|
|
19
|
+
CodeGraph for architecture Markdown.
|
|
20
|
+
- Need IR / registry / generation -> the pointer kit
|
|
21
|
+
(`FLOWGRID_DOCS_ROOT`, `FLOWGRID_DOCS_ROOT`, `FLOWGRID_TESTS_DOC`).
|
|
22
|
+
- Need a symbol or call-graph for repo `X` -> the CodeGraph MCP server for repo
|
|
23
|
+
`X` (`codegraph-<key>`, whose `--project-root` is `X`'s checkout). Do not use
|
|
24
|
+
the index of the repository currently open.
|
|
25
|
+
|
|
26
|
+
Checkout maps (machine-local only):
|
|
27
|
+
|
|
28
|
+
| System id / intent | Map |
|
|
29
|
+
|--------------------|-----|
|
|
30
|
+
| Prefix `legacy-` or clear legacy archaeology | `legacy-repos.local.json` |
|
|
31
|
+
| Platform skills / step `[system]` without `legacy-` | `platform-repos.local.json` |
|
|
32
|
+
|
|
33
|
+
Rules:
|
|
34
|
+
|
|
35
|
+
- One `.codegraph/` per repository, created locally with `codegraph init` inside
|
|
36
|
+
that repo. Never run `codegraph init` in a workspace parent.
|
|
37
|
+
- A repo without an index is reported, not auto-indexed; run the printed
|
|
38
|
+
`cd <root> && codegraph init` first.
|
|
39
|
+
- ArtifactGraph stays local-only; it is never a shared index for FE, tests, or
|
|
40
|
+
legacy repositories.
|
|
41
|
+
- Ambiguous keys → ask or Gaps; never invent sibling paths.
|
|
42
|
+
- Missing / empty `.local.json` or missing key → Gaps + `/configure-repo-maps`
|
|
43
|
+
(NL); do not hand-edit JSON or guess absolute paths.
|
|
44
|
+
- Platform DNA wires `codegraph-<key>` from both machine-local maps. Re-run
|
|
45
|
+
`platform-dna codegraph:wire` to refresh; never commit machine paths. Key
|
|
46
|
+
collision: **platform map wins**; prefer `legacy-*` keys for legacy-only
|
|
47
|
+
checkouts.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: UX gap analysis and proposals after DSL/spec policy (always-on)
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UX proposals (global)
|
|
7
|
+
|
|
8
|
+
**DSL and bundle SSOT:** `/spec`, `/update-spec`, `design.registry.json`, `gen-common`. Do not replace spec authoring with the checklist extract.
|
|
9
|
+
|
|
10
|
+
## When this applies
|
|
11
|
+
|
|
12
|
+
Prompt analysis, UI proposals, affordance review. **Primary:** `/spec` per-zone pipeline (DSL → `#needs-component` / `#needs-ui` → checklist gaps → `AskQuestion`). Also `/grill-bqa` Step B. Explicit: `/ui-proposal`.
|
|
13
|
+
|
|
14
|
+
## Flow
|
|
15
|
+
|
|
16
|
+
1. Map DSL/registry first (`#shell:`, `#pattern:`, `#ui:`, `#widget:`, generated CMN).
|
|
17
|
+
2. On match → codegen/wire only; no redundant YAML/spec.
|
|
18
|
+
3. Unmapped, missing DSL, or UI not recognized as a pattern → read **`.cursor/extracts/ux-common-patterns.md`**; apply matching **Recognize** / **Propose** sections.
|
|
19
|
+
4. **`flowgrid audit spec`** — patch `UX_*` gaps in bundle; `CONFIRM_UX_*` → `AskQuestion` using audit `(Recommended)` options.
|
|
20
|
+
5. Stable cross-project pattern → `gen-common`; never hand-duplicate common IR.
|
|
21
|
+
|
|
22
|
+
| Situation | Action |
|
|
23
|
+
|-----------|--------|
|
|
24
|
+
| Already in DSL/registry | Skip matching checklist section |
|
|
25
|
+
| Looks like list/table/breadcrumb/delete but untagged | Recognize → propose tag or CMN |
|
|
26
|
+
| Thin spec/code (silent disabled, toast-only delete, …) | Propose affordance |
|
|
27
|
+
|
|
28
|
+
## Proposal output (required format)
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
DSL: [mapped | unmapped] — registry id / #tag
|
|
32
|
+
Gap: [pattern-id or checklist section] — [1–2 sentences]
|
|
33
|
+
Propose: [#needs-ui:… | tag | handoff field]
|
|
34
|
+
Avoid: [redundant YAML/spec when DSL is sufficient]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## CMN pattern IDs (after DSL gap confirmed)
|
|
38
|
+
|
|
39
|
+
`common-flat-design`, `common-list-page`, `common-list-toolbar`, `common-breadcrumb-flow`, `common-search-filter`, `common-pagination`, `common-data-table`, `common-table-action-column`, `common-buttons`, `common-status-chip`, `common-confirm-dialog`, `common-delete-flow`, `common-feedback`, `common-form-validation`, `common-navigation`, `common-import-csv`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Platform — ~200 lines/file, ~20 lines/function; split when exceeded
|
|
3
|
+
globs: "{pages,components,composables,services,stores,models,validations,tests}/**/*.{vue,ts}"
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Code Size
|
|
8
|
+
|
|
9
|
+
Soft limits — split in the same PR when exceeded.
|
|
10
|
+
|
|
11
|
+
| Vượt ~200 dòng/file | Tách | Gợi ý Tag DSL (`/docs-mark`) |
|
|
12
|
+
|---------------------|------|------------------------------|
|
|
13
|
+
| Page `.vue` | Composable + sub-component | `#needs-component: sub-{name}:MoXxx` hoặc `#common-ui` |
|
|
14
|
+
| Composable | `useXxxForm`, `useXxxList`, … | `#common-ui` / `#needs-ui` |
|
|
15
|
+
| Service / store | File theo aggregate; action phức tạp → service | `#cross-service` / `#cross-entity-service` / `#needs-service` |
|
|
16
|
+
| E2E spec | Page Object + helper | `#e2e-test` bundle split |
|
|
17
|
+
|
|
18
|
+
| Vượt ~20 dòng/function | Tách | Gợi ý Tag DSL (`/docs-mark`) |
|
|
19
|
+
|------------------------|------|------------------------------|
|
|
20
|
+
| Submit handler | `buildPayload`, `validateBeforeSubmit`, `handleApiError` | `#needs-service` / local helper |
|
|
21
|
+
| Map/transform | Pure helpers / computed | `#derived-data` |
|
|
22
|
+
|
|
23
|
+
No padding files with blank lines. Component split: `platform-component-split.mdc`.
|
|
24
|
+
Khi file/function chạm ngưỡng vượt giới hạn, AI Agent cần chủ động đề xuất gán tag tương ứng (thông qua `/docs-mark`) và cập nhật registry (`registries/design.registry.json` hoặc `registries/common.registry.json`) để tái sử dụng sau này.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Harness state files — progress handoff between sessions
|
|
3
|
+
globs: .harness/**/*
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Harness State
|
|
8
|
+
|
|
9
|
+
- `feature_list.json` — scope, không tự đánh done khi chưa verify
|
|
10
|
+
- `progress.md` — handoff session tiếp theo
|
|
11
|
+
- `registries/page-lifecycle.registry.json` + `base-docs/platform/toolchain/PAGE-LIFECYCLE.md` — stage cao nhất từng route; `portal:gen` / `portal:remove` / `portal:lifecycle sync` tự cập nhật
|
|
12
|
+
- Khi command public cập nhật phase, ghi rõ: command, file đã đổi, verify đã chạy/chưa chạy, blocker còn lại.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: business-impact-review
|
|
3
|
+
description: Comprehensive blast-radius evaluation across repositories (Cross-repo) and functional surfaces (Cross-surface).
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /business-impact-review
|
|
8
|
+
|
|
9
|
+
Read-only analysis by default. Do not implement fixes unless explicitly asked.
|
|
10
|
+
|
|
11
|
+
**Owner:** Common Hub (Cross-Boundary Inspector). Optional rule: `flowgrid-process.mdc`.
|
|
12
|
+
|
|
13
|
+
## Checkout resolution
|
|
14
|
+
|
|
15
|
+
Cross-repo callers/callees:
|
|
16
|
+
|
|
17
|
+
| System id | Map |
|
|
18
|
+
|-----------|-----|
|
|
19
|
+
| `legacy-*` | `legacy-repos.local.json` |
|
|
20
|
+
| Otherwise | `platform-repos.local.json` |
|
|
21
|
+
|
|
22
|
+
Missing/empty map or missing key → **Gaps** + **`/configure-repo-maps`**; never
|
|
23
|
+
guess paths. Then remind `platform-dna codegraph:wire` if needed. Ambiguous
|
|
24
|
+
matches → ask or Gaps.
|
|
25
|
+
|
|
26
|
+
## Context - Action - Constraint Model (CAC)
|
|
27
|
+
|
|
28
|
+
### Context
|
|
29
|
+
Execution triggered by `/business-impact-review` against uncommitted diffs, PR branches, or specified modified files/routes spanning cross-repo (FE ↔ BE) or cross-surface boundaries.
|
|
30
|
+
|
|
31
|
+
### Action (2-Stage Phased Protocol)
|
|
32
|
+
|
|
33
|
+
#### Stage 1: Candidate Indexing & Blast-Radius Manifest
|
|
34
|
+
1. **Symbol & Route Scoping:** Extract all modified public/protected methods, API routes, Jobs, Events, Listeners, Commands, and DB schemas from diff.
|
|
35
|
+
2. **Candidate Index Generation:** Perform targeted symbol/caller indexing (using `codegraph-<key>` or caller search across repos listed in `platform-repos.local.json`/`legacy-repos.local.json`).
|
|
36
|
+
3. **Compile Candidate Manifest:** Produce an indexed list of potential blast-radius targets categorized into:
|
|
37
|
+
- Callers (FE/Mobile consumers, cross-repo API clients)
|
|
38
|
+
- Vertical process paths (Controller → Service → Repository → DB)
|
|
39
|
+
- Cross-surface listeners (Shared Events, Queue consumers, DB triggers)
|
|
40
|
+
4. **Workload Threshold Interlock (Law 2):**
|
|
41
|
+
- **If total candidates ≤ 5:** Execute Stage 2 deep inspection directly in the current session.
|
|
42
|
+
- **If total candidates > 5 (or spanning > 1 repository):**
|
|
43
|
+
- **[MANDATORY HARD STOP IN CHAT]**
|
|
44
|
+
- Author an implementation plan / Plan Mode document (brain dir / `plan.md`).
|
|
45
|
+
- Partition candidate inspection into sequential **Phases** (each phase capped at 3–5 candidate call-sites/paths).
|
|
46
|
+
- **Phase Boundary Context Pruning:** At the end of each phase, persist analysis findings into the output report on disk. For each subsequent phase, load fresh state from disk instead of maintaining full AST/diff context in conversational RAM.
|
|
47
|
+
|
|
48
|
+
#### Stage 2: Phased Deep-Dive Inspection
|
|
49
|
+
Inspect each candidate path sequentially across the vertical stack:
|
|
50
|
+
```text
|
|
51
|
+
Client/FE or Scheduler/Webhook
|
|
52
|
+
→ route/command/job
|
|
53
|
+
→ auth/middleware/context rewrite
|
|
54
|
+
→ controller/handler
|
|
55
|
+
→ service/domain
|
|
56
|
+
→ repository/model/database
|
|
57
|
+
→ event/listener/job/external API
|
|
58
|
+
→ response/error/status mapping
|
|
59
|
+
→ FE/consumer/next async hop
|
|
60
|
+
```
|
|
61
|
+
Apply `risk-classes.md`: authZ/IDOR, request bag, trust boundary, over-broad parse, null/empty, error collapsing, hardcode/magic, async context/idempotency, business rules, transactions, and contract compatibility.
|
|
62
|
+
|
|
63
|
+
### Constraints
|
|
64
|
+
- **[STRICTLY FORBIDDEN]** to rely solely on naive single-pass grep scripts that produce false negatives when member code is non-compliant or uses dynamic routing.
|
|
65
|
+
- **[STRICTLY FORBIDDEN]** to dump > 5 candidate analyses in a single chat turn.
|
|
66
|
+
- **[MANDATORY]** Write analysis findings directly to disk at each phase boundary.
|
|
67
|
+
- **[MANDATORY]** Maintain read-only analysis; do not generate or modify application code unless explicitly requested.
|
|
68
|
+
|
|
69
|
+
## Required Report
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
Summary / ship recommendation
|
|
73
|
+
Changed symbols & Candidate Index
|
|
74
|
+
Horizontal callers
|
|
75
|
+
Vertical process paths
|
|
76
|
+
Cross-Boundary Impact (FE/BE & Surfaces) <-- MANDATORY EXPLICIT SECTION
|
|
77
|
+
Findings: severity · class · evidence · impact · verify
|
|
78
|
+
Unsearched repos / residual risks
|
|
79
|
+
Targeted test plan
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Accelerators (optional)
|
|
83
|
+
|
|
84
|
+
Route per intent (rule `cross-repo-index.mdc`): never one merged
|
|
85
|
+
workspace graph — always the correct per-repo index.
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
if CodeGraph available: changed symbols + callers + call graph — for repo X use
|
|
89
|
+
its own server `codegraph-<key>` (--project-root = X's checkout), never the
|
|
90
|
+
open repo's index; unindexed repo → report `cd <root> && codegraph init`
|
|
91
|
+
else: targeted repository search/read
|
|
92
|
+
|
|
93
|
+
if bộ docs available: map process steps to CMP/CTR/FLOW docs via FLOWGRID_DOCS_ROOT
|
|
94
|
+
(never CodeGraph for architecture Markdown)
|
|
95
|
+
else: repository conventions/search
|
|
96
|
+
|
|
97
|
+
IR / registry / generation questions → pointer kits
|
|
98
|
+
(FLOWGRID_DOCS_ROOT, FLOWGRID_DOCS_ROOT, FLOWGRID_TESTS_DOC)
|
|
99
|
+
|
|
100
|
+
if ArtifactGraph available: affected tags/registries/parity
|
|
101
|
+
(local-only — never a shared index for other repos)
|
|
102
|
+
else: model review from scoped evidence
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Missing accelerators never block the review. Assign one stable `runId` at run
|
|
106
|
+
start. Report only actual `fileReads` and `contextBytes`, never invented token claims.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: configure-repo-maps
|
|
3
|
+
description: /configure-repo-maps — Merge NL checkout paths into platform-repos.local.json / legacy-repos.local.json (no git clone).
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<!-- platform-dna:configure-repo-maps-ssot -->
|
|
8
|
+
|
|
9
|
+
# /configure-repo-maps
|
|
10
|
+
|
|
11
|
+
**Purpose:** Populate local checkout directory paths into machine-local mapping files — do not clone repositories, do not alter portable catalogs.
|
|
12
|
+
|
|
13
|
+
## Hard Rules
|
|
14
|
+
|
|
15
|
+
1. **[MANDATORY]** Write ONLY to `platform-repos.local.json` and/or `legacy-repos.local.json` (merge-by-key).
|
|
16
|
+
2. **[STRICTLY FORBIDDEN]** Do NOT execute `git clone` / `git fetch` / connect remotes / download source archives.
|
|
17
|
+
3. **[STRICTLY FORBIDDEN]** Do NOT edit `platform-repos.json` / `legacy-repos.json` (portable catalogs where `root` remains `"."`).
|
|
18
|
+
4. **[STRICTLY FORBIDDEN]** Do NOT hand-edit entire JSON files on behalf of the member by pasting full files — accept natural language (NL) input and prompt for missing keys or paths.
|
|
19
|
+
5. **[MANDATORY]** Normalize absolute paths (including `~` or Windows drives) and write to `projects.<key>.root`.
|
|
20
|
+
|
|
21
|
+
## Routing
|
|
22
|
+
|
|
23
|
+
| Intent | File |
|
|
24
|
+
|--------|------|
|
|
25
|
+
| Current platform / hub (docs, portal, api, tests, …) | `platform-repos.local.json` |
|
|
26
|
+
| Prefix / concept `legacy-*`, legacy archaeology | `legacy-repos.local.json` |
|
|
27
|
+
|
|
28
|
+
## Example Prompts (NL input from user)
|
|
29
|
+
|
|
30
|
+
**Platform-only**
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
docs = base-docs at ~/ws/base-docs, portal admin at ~/ws/portal, api core at ~/ws/api
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
→ Merge `base-docs`, `portal`, `api` into `platform-repos.local.json` (prompt if keys or roles are ambiguous).
|
|
37
|
+
|
|
38
|
+
**Multi portal / API**
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
2 portals: admin at ~/ws/portal, line at ~/ws/line; 2 APIs: core at ~/ws/api-core,
|
|
42
|
+
scenario at ~/ws/api-scenario; docs = ~/ws/base-docs; tests = ~/ws/base-tests
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
→ Map one key per checkout; prompt for any missing paths.
|
|
46
|
+
|
|
47
|
+
**Legacy**
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
legacy ERP at D:\legacy\erp, key legacy-erp
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
→ Target strictly `legacy-repos.local.json`.
|
|
54
|
+
|
|
55
|
+
## After Write
|
|
56
|
+
|
|
57
|
+
1. Run `platform-dna codegraph:wire` (when utilizing Cursor + CodeGraph).
|
|
58
|
+
2. For checkouts lacking `.codegraph/`: `cd <root> && codegraph init`.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-mark
|
|
3
|
+
extractBundle: docs-mark
|
|
4
|
+
description: /docs-mark — member marks tags/registries after grill confirm.
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /docs-mark
|
|
9
|
+
|
|
10
|
+
**Owner:** ArtifactGraph (common harness)
|
|
11
|
+
Member annotation following grill A/B/C confirmation — NOT for bulk `/spec` / `/dev-grill-docs`.
|
|
12
|
+
|
|
13
|
+
Hub policy (docs hub): `platform/toolchain/PLATFORM-MARK.md` (alias: docs-mark).
|
|
14
|
+
Technical marks SSOT on the docs hub: `surfaces/common/integrations/*`,
|
|
15
|
+
`surfaces/common/data-model/derived-data.md`.
|
|
16
|
+
|
|
17
|
+
## Accelerators (optional)
|
|
18
|
+
|
|
19
|
+
When ArtifactGraph tools are available: `artifactgraph_analyze`,
|
|
20
|
+
`artifactgraph_suggest_tags`, `artifactgraph_remember`,
|
|
21
|
+
`artifactgraph_allowlist_check`, `artifactgraph_recommend_command`,
|
|
22
|
+
`artifactgraph_api_reuse_check` (confirm route reuse before applying `#reuse-api`),
|
|
23
|
+
`artifactgraph_grill_check` (re-scan for `duplicate-api-route` / missing tags after mark).
|
|
24
|
+
Missing AG tools → continue with local registry/spec edits; do not invent shell
|
|
25
|
+
fallbacks.
|
|
26
|
+
|
|
27
|
+
## Registries (on the product / FE repo)
|
|
28
|
+
|
|
29
|
+
| Layer | File | Tags |
|
|
30
|
+
|-------|------|------|
|
|
31
|
+
| UI | `registries/design.registry.json` | `#needs-component:` `#needs-ui:` `#shell:` |
|
|
32
|
+
| Logic | `registries/common.registry.json` | `#common:*` `#needs-common:*` |
|
|
33
|
+
|
|
34
|
+
Executable registry validation is **bộ code FE** (or product scripts on the
|
|
35
|
+
FE checkout). On docs hub:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
if ArtifactGraph available:
|
|
39
|
+
artifactgraph_allowlist_check(registryValidate|commonRegistry)
|
|
40
|
+
artifactgraph_recommend_command → hand off to bộ code FE
|
|
41
|
+
else:
|
|
42
|
+
note pending FE registry validate; do not invent local shell fallbacks
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Workflow
|
|
46
|
+
|
|
47
|
+
1. Feature `ir/spec.yaml` + registries (optional `artifactgraph_analyze`)
|
|
48
|
+
2. One mark / concern; member already confirmed at grill
|
|
49
|
+
3. Upsert registry · planned → HANDOFF · implemented → promote path
|
|
50
|
+
4. `artifactgraph_remember` subject after confirm B
|
|
51
|
+
|
|
52
|
+
## Do not
|
|
53
|
+
|
|
54
|
+
- Auto-tag without asking the member
|
|
55
|
+
- Put Mo* into `common.registry` (design registry only)
|
|
56
|
+
- Full contract rewrite
|
|
57
|
+
- Treat `artifactgraph_gen` as required (deprecated shim)
|
|
58
|
+
|
|
59
|
+
## Handoff
|
|
60
|
+
|
|
61
|
+
bộ code FE / product: `flowgrid gen:dry` (or repo shim) after marks change,
|
|
62
|
+
when that lane is available. Missing bộ code is a pending handoff, not a
|
|
63
|
+
docs failure.
|
|
64
|
+
|
|
65
|
+
## Compatibility
|
|
66
|
+
|
|
67
|
+
`/platform-mark` is a deprecated alias for this skill (one compatibility cycle).
|