domainforge 0.13.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/.cargo/config.toml +6 -0
- package/.claude/settings.local.json +18 -0
- package/.coderabbit.yml +43 -0
- package/.codex/skills/release-management/SKILL.md +151 -0
- package/.codex/skills/release-management/agents/openai.yaml +4 -0
- package/.github/actions/decrypt-secrets/action.yml +121 -0
- package/.github/agents/Coder.agent.md +97 -0
- package/.github/agents/DeepResearch.agent.md +61 -0
- package/.github/chatmodes/tdd.vibepro.chatmode.md +1183 -0
- package/.github/copilot-instructions.md +13 -0
- package/.github/dependabot.yml +68 -0
- package/.github/workflows/README.md +165 -0
- package/.github/workflows/ci.yml +335 -0
- package/.github/workflows/dependabot-automerge.yml +114 -0
- package/.github/workflows/dependency-review.yml +27 -0
- package/.github/workflows/deploy.yml +87 -0
- package/.github/workflows/prepare-release.yml +168 -0
- package/.github/workflows/release-crates.yml +42 -0
- package/.github/workflows/release-npm.yml +137 -0
- package/.github/workflows/release-please.yml +29 -0
- package/.github/workflows/release-pypi.yml +96 -0
- package/.gitkeep +1 -0
- package/.release-please-manifest.json +5 -0
- package/.sea-registry.toml +10 -0
- package/.serena/project.yml +133 -0
- package/.sops.yaml +10 -0
- package/AGENTS.md +216 -0
- package/CHANGELOG.md +400 -0
- package/CLAUDE.md +62 -0
- package/CONTRIBUTING.md +323 -0
- package/Cargo.lock +3612 -0
- package/Cargo.toml +12 -0
- package/LICENSE +201 -0
- package/README.md +660 -0
- package/README_PYTHON.md +256 -0
- package/README_TYPESCRIPT.md +305 -0
- package/README_WASM.md +329 -0
- package/RELEASE_NOTES.md +41 -0
- package/bun.lock +378 -0
- package/bunfig.toml +11 -0
- package/check_output.txt +83 -0
- package/clippy_output.txt +80 -0
- package/commitlint.config.cjs +8 -0
- package/deny.toml +42 -0
- package/devbox.json +14 -0
- package/devbox.lock +76 -0
- package/docs/RELEASE_PROCESS.md +360 -0
- package/docs/diagnostics.md +161 -0
- package/docs/doc_guidelines.md +53 -0
- package/docs/explanations/README.md +21 -0
- package/docs/explanations/architecture-overview.md +109 -0
- package/docs/explanations/cross-language-binding-strategy.md +68 -0
- package/docs/explanations/graph-store-design.md +47 -0
- package/docs/explanations/performance-benchmarks.md +63 -0
- package/docs/explanations/policy-evaluation-logic.md +106 -0
- package/docs/explanations/semantic-modeling-concepts.md +109 -0
- package/docs/explanations/three-valued-logic.md +66 -0
- package/docs/explanations/versioning-strategy.md +45 -0
- package/docs/governance.md +168 -0
- package/docs/how-tos/README.md +46 -0
- package/docs/how-tos/ci-cd-validation.md +93 -0
- package/docs/how-tos/create-custom-units.md +125 -0
- package/docs/how-tos/define-policies.md +119 -0
- package/docs/how-tos/export-to-calm.md +110 -0
- package/docs/how-tos/export-to-protobuf.md +312 -0
- package/docs/how-tos/extend-grammar.md +133 -0
- package/docs/how-tos/generate-rdf-turtle.md +106 -0
- package/docs/how-tos/import-from-calm.md +114 -0
- package/docs/how-tos/import-from-sbvr.md +249 -0
- package/docs/how-tos/install-cli.md +126 -0
- package/docs/how-tos/parse-sea-files.md +132 -0
- package/docs/how-tos/policy-evaluation-modes.md +30 -0
- package/docs/how-tos/run-cross-language-tests.md +115 -0
- package/docs/how-tos/troubleshoot-napi-builds.md +55 -0
- package/docs/how-tos/use-modules-imports.md +285 -0
- package/docs/index.md +13 -0
- package/docs/plans/canonical-normalizer.md +121 -0
- package/docs/plans/cd_improvement.md +112 -0
- package/docs/plans/cli-ast.md +29 -0
- package/docs/plans/expression-bindings-and-normalizer-integration.md +174 -0
- package/docs/plans/protobuf_advanced_features_plan.md +597 -0
- package/docs/plans/protobuf_plan.yml +525 -0
- package/docs/plans/refactor_dsl_architecture.md +131 -0
- package/docs/plans/release-plan.md +163 -0
- package/docs/plans/sea_fmt_implementation_plan.md +516 -0
- package/docs/playbooks/README.md +18 -0
- package/docs/playbooks/adding-new-primitive.md +68 -0
- package/docs/playbooks/debugging-parser-failures.md +42 -0
- package/docs/playbooks/local-release-preparation.md +139 -0
- package/docs/playbooks/migrating-schema-versions.md +43 -0
- package/docs/playbooks/onboarding-contributors.md +64 -0
- package/docs/playbooks/releasing-beta.md +86 -0
- package/docs/playbooks/secret-management.md +64 -0
- package/docs/reference/README.md +199 -0
- package/docs/reference/ast-json-api.md +427 -0
- package/docs/reference/calm-mapping.md +519 -0
- package/docs/reference/cli-commands.md +588 -0
- package/docs/reference/configuration.md +202 -0
- package/docs/reference/error-codes.md +664 -0
- package/docs/reference/generated-artifacts-policy.md +53 -0
- package/docs/reference/grammar-spec.md +255 -0
- package/docs/reference/primitives-api.md +317 -0
- package/docs/reference/protobuf-api.md +426 -0
- package/docs/reference/python-api.md +485 -0
- package/docs/reference/registry.md +50 -0
- package/docs/reference/sea-dsl-ai-cheatsheet.yaml +913 -0
- package/docs/reference/security-model.md +74 -0
- package/docs/reference/typescript-api.md +508 -0
- package/docs/reference/wasm-api.md +420 -0
- package/docs/semantic-pack-review.md +144 -0
- package/docs/semantic-pack-signing.md +234 -0
- package/docs/semantic-packs.md +284 -0
- package/docs/specs/ADR-001-sea-dsl-semantic-source-of-truth.md +33 -0
- package/docs/specs/ADR-002-projection-first-class-construct.md +50 -0
- package/docs/specs/ADR-003-protobuf-projection-target.md +51 -0
- package/docs/specs/ADR-004-projection-compatibility-semantics.md +57 -0
- package/docs/specs/ADR-005-multi-language-support-strategy.md +112 -0
- package/docs/specs/ADR-006-error-handling-strategy.md +115 -0
- package/docs/specs/ADR-007-policy-evaluation-engine.md +95 -0
- package/docs/specs/ADR-008-knowledge-graph-integration.md +90 -0
- package/docs/specs/ADR-009-module-resolution-strategy.md +115 -0
- package/docs/specs/ADR-010-unit-system.md +106 -0
- package/docs/specs/PRD-001-sea-projection-framework.md +155 -0
- package/docs/specs/PRD-002-sea-cli-tooling.md +169 -0
- package/docs/specs/PRD-003-dsl-core-capabilities.md +275 -0
- package/docs/specs/README.md +62 -0
- package/docs/specs/SDS-001-protobuf-projection-engine.md +451 -0
- package/docs/specs/SDS-002-sea-core-architecture.md +268 -0
- package/docs/specs/SDS-003-parser-semantic-graph.md +377 -0
- package/docs/specs/SDS-004-policy-engine-design.md +362 -0
- package/docs/specs/SDS-005-knowledge-graph-module.md +364 -0
- package/docs/specs/SDS-006-calm-integration.md +367 -0
- package/docs/specs/SDS-007-sbvr-import.md +347 -0
- package/docs/templates/template_explanation.md +14 -0
- package/docs/templates/template_howto.md +21 -0
- package/docs/templates/template_playbook.md +21 -0
- package/docs/templates/template_reference.md +17 -0
- package/docs/templates/template_tutorial.md +24 -0
- package/docs/tutorials/README.md +12 -0
- package/docs/tutorials/first-sea-model.md +85 -0
- package/docs/tutorials/getting-started.md +98 -0
- package/docs/tutorials/python-binding-quickstart.md +107 -0
- package/docs/tutorials/typescript-binding-quickstart.md +91 -0
- package/docs/tutorials/wasm-in-browser.md +75 -0
- package/domainforge-core/CHANGELOG.md +138 -0
- package/domainforge-core/Cargo.toml +101 -0
- package/domainforge-core/MIGRATING.md +32 -0
- package/domainforge-core/README.md +197 -0
- package/domainforge-core/benchmark_results.txt +51 -0
- package/domainforge-core/build.rs +6 -0
- package/domainforge-core/deny.toml +31 -0
- package/domainforge-core/docs/specs/projections/sbvr_kg_mapping.md +43 -0
- package/domainforge-core/examples/basic.sea +7 -0
- package/domainforge-core/examples/cli/import_export_workflow.sh +38 -0
- package/domainforge-core/examples/cli/validate_example.sh +30 -0
- package/domainforge-core/examples/evolution_semantics.sea +31 -0
- package/domainforge-core/examples/parser_demo.rs +203 -0
- package/domainforge-core/grammar/sea.pest +408 -0
- package/domainforge-core/schemas/calm-v1.schema.json +170 -0
- package/domainforge-core/schemas/shacl/sea_shapes.ttl +19 -0
- package/domainforge-core/src/authority/compiler.rs +309 -0
- package/domainforge-core/src/authority/environment.rs +203 -0
- package/domainforge-core/src/authority/error.rs +164 -0
- package/domainforge-core/src/authority/fact_resolver.rs +224 -0
- package/domainforge-core/src/authority/mod.rs +25 -0
- package/domainforge-core/src/authority/pack.rs +133 -0
- package/domainforge-core/src/authority/policy.rs +224 -0
- package/domainforge-core/src/authority/resolver.rs +446 -0
- package/domainforge-core/src/authority/trace.rs +217 -0
- package/domainforge-core/src/authority/transform.rs +168 -0
- package/domainforge-core/src/authority/types.rs +617 -0
- package/domainforge-core/src/bin/domainforge.rs +25 -0
- package/domainforge-core/src/calm/export.rs +538 -0
- package/domainforge-core/src/calm/import.rs +1220 -0
- package/domainforge-core/src/calm/mod.rs +9 -0
- package/domainforge-core/src/calm/models.rs +108 -0
- package/domainforge-core/src/calm/sbvr_import.rs +9 -0
- package/domainforge-core/src/cli/authority.rs +149 -0
- package/domainforge-core/src/cli/format.rs +85 -0
- package/domainforge-core/src/cli/import.rs +133 -0
- package/domainforge-core/src/cli/mod.rs +64 -0
- package/domainforge-core/src/cli/normalize.rs +180 -0
- package/domainforge-core/src/cli/pack.rs +904 -0
- package/domainforge-core/src/cli/parse.rs +112 -0
- package/domainforge-core/src/cli/project.rs +294 -0
- package/domainforge-core/src/cli/registry.rs +41 -0
- package/domainforge-core/src/cli/test.rs +12 -0
- package/domainforge-core/src/cli/validate.rs +195 -0
- package/domainforge-core/src/cli/validate_kg.rs +80 -0
- package/domainforge-core/src/concept_id.rs +89 -0
- package/domainforge-core/src/error/diagnostics.rs +426 -0
- package/domainforge-core/src/error/fuzzy.rs +253 -0
- package/domainforge-core/src/error/mod.rs +13 -0
- package/domainforge-core/src/formatter/comments.rs +223 -0
- package/domainforge-core/src/formatter/config.rs +114 -0
- package/domainforge-core/src/formatter/mod.rs +22 -0
- package/domainforge-core/src/formatter/printer.rs +906 -0
- package/domainforge-core/src/graph/mod.rs +858 -0
- package/domainforge-core/src/graph/to_ast.rs +66 -0
- package/domainforge-core/src/kg.rs +1476 -0
- package/domainforge-core/src/kg_import.rs +251 -0
- package/domainforge-core/src/lib.rs +203 -0
- package/domainforge-core/src/module/mod.rs +1 -0
- package/domainforge-core/src/module/resolver.rs +260 -0
- package/domainforge-core/src/parser/ast.rs +2919 -0
- package/domainforge-core/src/parser/ast_convert.rs +494 -0
- package/domainforge-core/src/parser/ast_schema.rs +491 -0
- package/domainforge-core/src/parser/error.rs +291 -0
- package/domainforge-core/src/parser/lint.rs +39 -0
- package/domainforge-core/src/parser/mod.rs +193 -0
- package/domainforge-core/src/parser/printer.rs +702 -0
- package/domainforge-core/src/parser/profiles.rs +71 -0
- package/domainforge-core/src/parser/string_utils.rs +138 -0
- package/domainforge-core/src/patterns.rs +68 -0
- package/domainforge-core/src/policy/core.rs +1148 -0
- package/domainforge-core/src/policy/expression.rs +399 -0
- package/domainforge-core/src/policy/mod.rs +18 -0
- package/domainforge-core/src/policy/normalize.rs +1028 -0
- package/domainforge-core/src/policy/quantifier.rs +940 -0
- package/domainforge-core/src/policy/three_valued.rs +140 -0
- package/domainforge-core/src/policy/three_valued_microbench.rs +104 -0
- package/domainforge-core/src/policy/type_inference.rs +67 -0
- package/domainforge-core/src/policy/violation.rs +36 -0
- package/domainforge-core/src/primitives/concept_change.rs +61 -0
- package/domainforge-core/src/primitives/entity.rs +224 -0
- package/domainforge-core/src/primitives/flow.rs +111 -0
- package/domainforge-core/src/primitives/instance.rs +93 -0
- package/domainforge-core/src/primitives/mapping_contract.rs +50 -0
- package/domainforge-core/src/primitives/metric.rs +79 -0
- package/domainforge-core/src/primitives/mod.rs +25 -0
- package/domainforge-core/src/primitives/projection_contract.rs +50 -0
- package/domainforge-core/src/primitives/quantity.rs +56 -0
- package/domainforge-core/src/primitives/relation.rs +68 -0
- package/domainforge-core/src/primitives/resource.rs +237 -0
- package/domainforge-core/src/primitives/resource_instance.rs +88 -0
- package/domainforge-core/src/primitives/role.rs +49 -0
- package/domainforge-core/src/projection/buf.rs +404 -0
- package/domainforge-core/src/projection/contracts.rs +22 -0
- package/domainforge-core/src/projection/engine.rs +19 -0
- package/domainforge-core/src/projection/mod.rs +16 -0
- package/domainforge-core/src/projection/protobuf.rs +3331 -0
- package/domainforge-core/src/projection/registry.rs +43 -0
- package/domainforge-core/src/python/authority.rs +253 -0
- package/domainforge-core/src/python/error.rs +227 -0
- package/domainforge-core/src/python/formatter.rs +86 -0
- package/domainforge-core/src/python/graph.rs +366 -0
- package/domainforge-core/src/python/mod.rs +9 -0
- package/domainforge-core/src/python/policy.rs +651 -0
- package/domainforge-core/src/python/primitives.rs +796 -0
- package/domainforge-core/src/python/registry.rs +98 -0
- package/domainforge-core/src/python/semantic_pack.rs +619 -0
- package/domainforge-core/src/python/units.rs +96 -0
- package/domainforge-core/src/registry/mod.rs +432 -0
- package/domainforge-core/src/registry/tests.rs +210 -0
- package/domainforge-core/src/sbvr.rs +744 -0
- package/domainforge-core/src/semantic_pack/builder.rs +470 -0
- package/domainforge-core/src/semantic_pack/canonical_json.rs +184 -0
- package/domainforge-core/src/semantic_pack/diagnostics.rs +214 -0
- package/domainforge-core/src/semantic_pack/diff.rs +216 -0
- package/domainforge-core/src/semantic_pack/mod.rs +31 -0
- package/domainforge-core/src/semantic_pack/pack_set.rs +240 -0
- package/domainforge-core/src/semantic_pack/resolver.rs +437 -0
- package/domainforge-core/src/semantic_pack/review.rs +125 -0
- package/domainforge-core/src/semantic_pack/schema.rs +342 -0
- package/domainforge-core/src/semantic_pack/signing.rs +105 -0
- package/domainforge-core/src/semantic_pack/validator.rs +368 -0
- package/domainforge-core/src/semantic_version.rs +140 -0
- package/domainforge-core/src/test_utils.rs +12 -0
- package/domainforge-core/src/typescript/authority.rs +184 -0
- package/domainforge-core/src/typescript/error.rs +146 -0
- package/domainforge-core/src/typescript/formatter.rs +76 -0
- package/domainforge-core/src/typescript/graph.rs +391 -0
- package/domainforge-core/src/typescript/mod.rs +9 -0
- package/domainforge-core/src/typescript/policy.rs +564 -0
- package/domainforge-core/src/typescript/primitives.rs +784 -0
- package/domainforge-core/src/typescript/registry.rs +88 -0
- package/domainforge-core/src/typescript/semantic_pack.rs +470 -0
- package/domainforge-core/src/typescript/units.rs +76 -0
- package/domainforge-core/src/units/mod.rs +462 -0
- package/domainforge-core/src/uuid_module.rs +42 -0
- package/domainforge-core/src/validation_error.rs +818 -0
- package/domainforge-core/src/validation_result.rs +30 -0
- package/domainforge-core/src/wasm/authority.rs +192 -0
- package/domainforge-core/src/wasm/error.rs +145 -0
- package/domainforge-core/src/wasm/formatter.rs +69 -0
- package/domainforge-core/src/wasm/graph.rs +471 -0
- package/domainforge-core/src/wasm/mod.rs +16 -0
- package/domainforge-core/src/wasm/policy.rs +607 -0
- package/domainforge-core/src/wasm/primitives.rs +295 -0
- package/domainforge-core/src/wasm/semantic_pack.rs +471 -0
- package/domainforge-core/src/wasm/units.rs +62 -0
- package/domainforge-core/std/aws.sea +6 -0
- package/domainforge-core/std/core.sea +6 -0
- package/domainforge-core/std/http.sea +27 -0
- package/domainforge-core/tests/aggregation_enhanced_tests.rs +162 -0
- package/domainforge-core/tests/aggregation_eval_tests.rs +248 -0
- package/domainforge-core/tests/aggregation_integration_tests.rs +379 -0
- package/domainforge-core/tests/aggregation_parser_tests.rs +92 -0
- package/domainforge-core/tests/aggregation_tests.rs +102 -0
- package/domainforge-core/tests/authority_conformance_tests.rs +1173 -0
- package/domainforge-core/tests/calm_round_trip_tests.rs +283 -0
- package/domainforge-core/tests/calm_schema_validation_tests.rs +137 -0
- package/domainforge-core/tests/cast_operator_tests.rs +85 -0
- package/domainforge-core/tests/cli_binary_check.rs +37 -0
- package/domainforge-core/tests/cli_import_tests.rs +291 -0
- package/domainforge-core/tests/cli_path_traversal_tests.rs +124 -0
- package/domainforge-core/tests/cli_tests.rs +63 -0
- package/domainforge-core/tests/diagnostics_tests.rs +203 -0
- package/domainforge-core/tests/dimension_unit_tests.rs +80 -0
- package/domainforge-core/tests/entity_tests.rs +69 -0
- package/domainforge-core/tests/evolution_semantics_tests.rs +157 -0
- package/domainforge-core/tests/flow_tests.rs +78 -0
- package/domainforge-core/tests/flow_unit_validation_tests.rs +31 -0
- package/domainforge-core/tests/graph_integration_tests.rs +218 -0
- package/domainforge-core/tests/graph_tests.rs +626 -0
- package/domainforge-core/tests/import_parsing_tests.rs +23 -0
- package/domainforge-core/tests/instance_integration_tests.rs +98 -0
- package/domainforge-core/tests/instance_parsing_tests.rs +58 -0
- package/domainforge-core/tests/instance_tests.rs +61 -0
- package/domainforge-core/tests/kg_uri_encoding_tests.rs +53 -0
- package/domainforge-core/tests/lint_tests.rs +19 -0
- package/domainforge-core/tests/metric_tests.rs +143 -0
- package/domainforge-core/tests/module_resolution_tests.rs +100 -0
- package/domainforge-core/tests/namespace_registry_tests.rs +247 -0
- package/domainforge-core/tests/null_handling_tests.rs +26 -0
- package/domainforge-core/tests/parser_ast_v3.rs +53 -0
- package/domainforge-core/tests/parser_dimension_registry_tests.rs +20 -0
- package/domainforge-core/tests/parser_integration_tests.rs +294 -0
- package/domainforge-core/tests/parser_metadata_tests.rs +97 -0
- package/domainforge-core/tests/parser_resource_domain_only_graph_test.rs +21 -0
- package/domainforge-core/tests/parser_resource_limits_tests.rs +122 -0
- package/domainforge-core/tests/parser_tests.rs +512 -0
- package/domainforge-core/tests/pattern_semantics_tests.rs +87 -0
- package/domainforge-core/tests/phase_14_determinism_tests.rs +166 -0
- package/domainforge-core/tests/phase_15_validation_error_tests.rs +136 -0
- package/domainforge-core/tests/phase_16_unicode_tests.rs +248 -0
- package/domainforge-core/tests/phase_17_export_tests.rs +285 -0
- package/domainforge-core/tests/phase_17_round_trip_tests.rs +264 -0
- package/domainforge-core/tests/policy_tests.rs +635 -0
- package/domainforge-core/tests/primitives_integration_tests.rs +151 -0
- package/domainforge-core/tests/print_rdf_xml.rs +14 -0
- package/domainforge-core/tests/printer_tests.rs +204 -0
- package/domainforge-core/tests/profile_tests.rs +35 -0
- package/domainforge-core/tests/projection_contracts_tests.rs +154 -0
- package/domainforge-core/tests/protobuf_projection_tests.rs +199 -0
- package/domainforge-core/tests/quantity_tests.rs +41 -0
- package/domainforge-core/tests/rdf_xml_typed_literal_tests.rs +105 -0
- package/domainforge-core/tests/registry_schema_tests.rs +33 -0
- package/domainforge-core/tests/resource_tests.rs +50 -0
- package/domainforge-core/tests/resource_unit_tests.rs +24 -0
- package/domainforge-core/tests/roles_relations_tests.rs +61 -0
- package/domainforge-core/tests/round_trip_tests.rs +34 -0
- package/domainforge-core/tests/runtime_toggle_tests.rs +70 -0
- package/domainforge-core/tests/sbvr_fact_schema_tests.rs +60 -0
- package/domainforge-core/tests/sbvr_flow_facts_tests.rs +55 -0
- package/domainforge-core/tests/sbvr_parsing_tests.rs +53 -0
- package/domainforge-core/tests/semantic_pack_alias_resolution.rs +197 -0
- package/domainforge-core/tests/semantic_pack_build.rs +302 -0
- package/domainforge-core/tests/semantic_pack_consumer_smoke.rs +150 -0
- package/domainforge-core/tests/semantic_pack_pack_set.rs +160 -0
- package/domainforge-core/tests/semantic_pack_signing.rs +157 -0
- package/domainforge-core/tests/semantic_pack_three_valued.rs +250 -0
- package/domainforge-core/tests/semantic_pack_validate.rs +196 -0
- package/domainforge-core/tests/std_lib_tests.rs +37 -0
- package/domainforge-core/tests/temporal_evaluation_tests.rs +159 -0
- package/domainforge-core/tests/temporal_semantics_tests.rs +214 -0
- package/domainforge-core/tests/three_valued_quantifiers_tests.rs +164 -0
- package/domainforge-core/tests/turtle_entity_export_tests.rs +38 -0
- package/domainforge-core/tests/turtle_escaping_tests.rs +53 -0
- package/domainforge-core/tests/turtle_resource_export_tests.rs +34 -0
- package/domainforge-core/tests/type_inference_tests.rs +40 -0
- package/domainforge-core/tests/unicode_validation_tests.rs +169 -0
- package/domainforge-core/tests/unit_tests.rs +81 -0
- package/domainforge-core/tests/validate_tests.rs +38 -0
- package/domainforge-core/tests/validation_unit_mismatch_tests.rs +83 -0
- package/domainforge-core/tests/wasm_tests.rs +229 -0
- package/domainforge-python/CHANGELOG-python.md +12 -0
- package/domainforge-python/MIGRATING.md +24 -0
- package/domainforge-python/README.md +256 -0
- package/domainforge-python/domainforge/__init__.py +95 -0
- package/domainforge-python/domainforge/domainforge.pyi +519 -0
- package/domainforge-python/pyproject.toml +36 -0
- package/domainforge-typescript/CHANGELOG-typescript.md +12 -0
- package/domainforge-typescript/LICENSE +201 -0
- package/domainforge-typescript/MIGRATING.md +24 -0
- package/domainforge-typescript/README.md +305 -0
- package/domainforge-typescript/index.d.ts +452 -0
- package/domainforge-typescript/index.js +361 -0
- package/domainforge-typescript/package.json +60 -0
- package/example.js +61 -0
- package/examples/browser.html +366 -0
- package/examples/namespaces/finance/cashflow.sea +5 -0
- package/examples/namespaces/logistics/core.sea +7 -0
- package/examples/observability_metrics.sea +38 -0
- package/fixtures/semantic_packs/acme_procurement/domain/entities.sea +39 -0
- package/fixtures/semantic_packs/acme_procurement/domain/metrics.sea +11 -0
- package/fixtures/semantic_packs/acme_procurement/domain/relations.sea +7 -0
- package/fixtures/semantic_packs/acme_procurement/domain/resources.sea +9 -0
- package/fixtures/semantic_packs/acme_procurement/review/acme.procurement.semantic-review.jsonl +7 -0
- package/fixtures/semantic_packs/acme_procurement/tests/ambiguous_vendor_alias.sea +8 -0
- package/fixtures/semantic_packs/acme_procurement/tests/deprecated_vendor_alias.sea +8 -0
- package/fixtures/semantic_packs/acme_procurement/tests/invalid_relation.sea +3 -0
- package/fixtures/semantic_packs/acme_procurement/tests/proposed_concept.sea +8 -0
- package/fixtures/semantic_packs/acme_procurement/tests/rejected_concept.sea +8 -0
- package/fixtures/semantic_packs/acme_procurement/tests/unit_mismatch.sea +7 -0
- package/fixtures/semantic_packs/acme_procurement/tests/unknown_vendor_policy.sea +8 -0
- package/fixtures/semantic_packs/acme_procurement/tests/valid_purchase_policy.sea +8 -0
- package/index.d.ts +2 -0
- package/index.js +8 -0
- package/justfile +200 -0
- package/lefthook.yml +13 -0
- package/lib/validate_native_exports.d.ts +4 -0
- package/lib/validate_native_exports.js +12 -0
- package/package.json +22 -0
- package/pytest.ini +5 -0
- package/python/tests/test_registry.py +75 -0
- package/python/tests/test_units.py +18 -0
- package/release-please-config.json +49 -0
- package/requirements-dev.txt +3 -0
- package/requirements.txt +3 -0
- package/rust-toolchain.toml +3 -0
- package/schemas/ast-v1.schema.json +72 -0
- package/schemas/ast-v2.schema.json +1200 -0
- package/schemas/ast-v3.schema.json +1200 -0
- package/schemas/sea-registry.schema.json +45 -0
- package/scripts/build-python.sh +37 -0
- package/scripts/build-release.sh +279 -0
- package/scripts/build-typescript.sh +13 -0
- package/scripts/build-wasm.sh +113 -0
- package/scripts/bump-version.sh +245 -0
- package/scripts/check_unused_test_imports.py +85 -0
- package/scripts/ci_tasks.py +379 -0
- package/scripts/clear_debug_test.sh +10 -0
- package/scripts/create-github-release.sh +262 -0
- package/scripts/create-tag.sh +203 -0
- package/scripts/find_and_link_test_binary.sh +70 -0
- package/scripts/generate-changelog.sh +271 -0
- package/scripts/generate-release-notes.sh +205 -0
- package/scripts/lint_release_security.py +96 -0
- package/scripts/lint_release_workflows.py +82 -0
- package/scripts/lint_workflow_gates.py +113 -0
- package/scripts/optimized-wasm-build.sh +61 -0
- package/scripts/patch_napi_types.py +62 -0
- package/scripts/pre-release-check.sh +289 -0
- package/scripts/prepare_rust_debug.sh +52 -0
- package/scripts/release.sh +373 -0
- package/scripts/resolve_rust_binary.py +230 -0
- package/scripts/run_commitlint.sh +29 -0
- package/scripts/test-all.sh +77 -0
- package/scripts/update_launch_program.py +93 -0
- package/secrets/README.md +27 -0
- package/secrets/secrets.yaml +21 -0
- package/test_integration.py +67 -0
- package/tests/test_authority.py +328 -0
- package/tests/test_ci_tasks.py +143 -0
- package/tests/test_expression.py +256 -0
- package/tests/test_golden_payment_flow.py +42 -0
- package/tests/test_graph.py +127 -0
- package/tests/test_instance.py +136 -0
- package/tests/test_parser.py +82 -0
- package/tests/test_primitives.py +68 -0
- package/tests/test_role_relation_parity.py +56 -0
- package/tests/test_runtime_toggle.py +156 -0
- package/tests/test_semantic_pack.py +639 -0
- package/tests/test_three_valued_eval.py +159 -0
- package/tsconfig.json +30 -0
- package/typescript-tests/advanced.test.ts +165 -0
- package/typescript-tests/authority.test.ts +216 -0
- package/typescript-tests/expression.test.ts +228 -0
- package/typescript-tests/golden-payment-flow.test.ts +51 -0
- package/typescript-tests/graph.test.ts +142 -0
- package/typescript-tests/native-binding.test.ts +20 -0
- package/typescript-tests/primitives.test.ts +88 -0
- package/typescript-tests/registry.test.ts +122 -0
- package/typescript-tests/role_relation.test.ts +63 -0
- package/typescript-tests/runtime_toggle.test.ts +141 -0
- package/typescript-tests/semantic-pack.test.ts +556 -0
- package/typescript-tests/three_valued_eval.test.ts +135 -0
- package/typescript-tests/units.test.ts +36 -0
- package/vitest.config.ts +13 -0
- package/wasm_demo.html +225 -0
|
@@ -0,0 +1,1183 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Implementation Plan Generator"
|
|
3
|
+
tools:
|
|
4
|
+
[
|
|
5
|
+
"edit",
|
|
6
|
+
"runNotebooks",
|
|
7
|
+
"search",
|
|
8
|
+
"new",
|
|
9
|
+
"runCommands",
|
|
10
|
+
"runTasks",
|
|
11
|
+
"Nx Mcp Server/*",
|
|
12
|
+
"Context7/*",
|
|
13
|
+
"Ref/*",
|
|
14
|
+
"Memory Tool/*",
|
|
15
|
+
"Exa Search/*",
|
|
16
|
+
"Vibe Check/*",
|
|
17
|
+
"github/*",
|
|
18
|
+
"microsoft-docs/*",
|
|
19
|
+
"usages",
|
|
20
|
+
"vscodeAPI",
|
|
21
|
+
"think",
|
|
22
|
+
"problems",
|
|
23
|
+
"changes",
|
|
24
|
+
"testFailure",
|
|
25
|
+
"openSimpleBrowser",
|
|
26
|
+
"fetch",
|
|
27
|
+
"githubRepo",
|
|
28
|
+
"extensions",
|
|
29
|
+
"todos",
|
|
30
|
+
]
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# TDD Implementation Plan Generator
|
|
34
|
+
|
|
35
|
+
_(MCP-Orchestrated Cognitive Architecture • Generator-First • Nx-Native • `just` Recipes)_
|
|
36
|
+
|
|
37
|
+
## Role & Cognitive Architecture
|
|
38
|
+
|
|
39
|
+
You are a **Senior Test Automation Architect** with access to a **distributed intelligence mesh** of MCP tools. Your implementation plans achieve state-of-the-art quality through **recursive tool orchestration** and **multi-source knowledge synthesis**.
|
|
40
|
+
|
|
41
|
+
**Core Capability Model:**
|
|
42
|
+
|
|
43
|
+
- **Knowledge Synthesis Layer**: context7 + Microsoft Docs + ref → authoritative grounding
|
|
44
|
+
- **Pattern Recognition Layer**: exa + GitHub + Nx MCP → implementation intelligence
|
|
45
|
+
- **Metacognitive Layer**: vibe-check + memory → quality assurance & learning
|
|
46
|
+
- **Execution Layer**: Nx + `just` → deterministic automation
|
|
47
|
+
|
|
48
|
+
## Traceability Framework
|
|
49
|
+
|
|
50
|
+
**Definitions:**
|
|
51
|
+
|
|
52
|
+
- **ADR**: Architectural Decision Record
|
|
53
|
+
- **PRD**: Product Requirements Document
|
|
54
|
+
- **SDS**: System Design Specification
|
|
55
|
+
|
|
56
|
+
**Governance:** All tasks must link to at least one ADR/PRD/SDS entry for traceability.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Quick Reference: MCP Tools in This Framework
|
|
61
|
+
|
|
62
|
+
**context7** - Retrieves up-to-date documentation and code examples for any library. Use this to get the latest official docs for frameworks like Nx, React, FastAPI, or Supabase before making technical decisions.
|
|
63
|
+
|
|
64
|
+
**exa** - Performs real-time web searches to find implementation patterns and best practices. Essential for discovering how other developers solve similar problems with code examples and URLs.
|
|
65
|
+
|
|
66
|
+
**ref** - Searches and analyzes codebases for specific patterns, anti-patterns, and refactoring opportunities. Use this to understand existing code structure and identify improvement areas.
|
|
67
|
+
|
|
68
|
+
**nx** - Provides workspace intelligence including project structure, dependencies, generators, and build orchestration. Critical for understanding the monorepo architecture and validating changes.
|
|
69
|
+
|
|
70
|
+
**github** - Analyzes repository patterns, PR workflows, CI/CD configurations, and code review insights. Use this to understand development workflows and integration patterns.
|
|
71
|
+
|
|
72
|
+
**microsoft-docs** - Accesses official Microsoft and Azure documentation for TypeScript guidelines, .NET standards, and cloud integration patterns when working with Microsoft technologies.
|
|
73
|
+
|
|
74
|
+
**memory** - Stores and retrieves organizational knowledge, user preferences, and learned patterns across sessions. Essential for maintaining continuity and avoiding repeated mistakes.
|
|
75
|
+
|
|
76
|
+
**vibe-check** - Performs metacognitive validation to surface hidden assumptions, identify blind spots, and validate approaches. Use this to challenge your own thinking and find gaps.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## MCP Cognitive Mesh: Tool Synergy Patterns
|
|
81
|
+
|
|
82
|
+
### 🧠Pre-Planning Intelligence Gathering (MANDATORY)
|
|
83
|
+
|
|
84
|
+
**Execute this sequence BEFORE generating any plan section:**
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
1. MEMORY RECALL [memory]
|
|
88
|
+
→ Retrieve: similar projects, past decisions, known pitfalls, user preferences
|
|
89
|
+
→ Record: "Pre-planning context retrieved: <summary>"
|
|
90
|
+
|
|
91
|
+
2. REPOSITORY CONTEXT [github + nx]
|
|
92
|
+
→ Analyze: repo structure, active branches, recent PRs, CI patterns
|
|
93
|
+
→ Identify: architectural decisions embedded in code
|
|
94
|
+
→ Record: "Repo intelligence: <insights>"
|
|
95
|
+
|
|
96
|
+
3. DOMAIN GROUNDING [context7 + microsoft-docs + ref]
|
|
97
|
+
→ Resolve: all mentioned libraries/frameworks to latest docs
|
|
98
|
+
→ Validate: technical specifications against official sources
|
|
99
|
+
→ Record: "Documentation baseline: <versions + key constraints>"
|
|
100
|
+
|
|
101
|
+
4. PATTERN RESEARCH [exa + github]
|
|
102
|
+
→ Search: "TDD patterns for <technology stack>"
|
|
103
|
+
→ Search: "<framework> generator best practices"
|
|
104
|
+
→ Search: "Nx monorepo test strategies <domain>"
|
|
105
|
+
→ Synthesize: 3-5 relevant approaches with citations
|
|
106
|
+
→ Record: "Pattern synthesis: <approaches + sources>"
|
|
107
|
+
|
|
108
|
+
5. METACOGNITIVE CHECKPOINT [vibe-check]
|
|
109
|
+
→ Question: "What assumptions am I making about requirements?"
|
|
110
|
+
→ Question: "What could invalidate this approach?"
|
|
111
|
+
→ Question: "Where is my knowledge weakest?"
|
|
112
|
+
→ Record: "Vibe check outcomes: <identified gaps + mitigation>"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Outcome:** A `docs/plans/<plan_name>/PRE_PLAN_INTELLIGENCE.md` artifact containing all recorded insights, forming the foundation for plan generation.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### 🔄 Recursive MCP Orchestration Patterns
|
|
120
|
+
|
|
121
|
+
#### Pattern A: Documentation-Grounded Specification
|
|
122
|
+
|
|
123
|
+
**When:** Authoring generator specs, API contracts, architectural decisions
|
|
124
|
+
|
|
125
|
+
**Sequence:**
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
1. [context7] Fetch official docs for target framework/library
|
|
129
|
+
2. [microsoft-docs] Retrieve Azure/Microsoft standards if applicable
|
|
130
|
+
3. [ref] Search for API references and usage patterns
|
|
131
|
+
4. [exa] Find 3-5 real-world implementation examples
|
|
132
|
+
5. [vibe-check] "Does this specification have hidden complexity?"
|
|
133
|
+
6. [memory] Record specification + rationale for future reference
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Integration Point:** Embed in TASK template under "Generator Specification" section with explicit tool call-outs.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
#### Pattern B: MECE Validation Through Multi-Source Analysis
|
|
141
|
+
|
|
142
|
+
**When:** Validating task boundaries, preventing overlaps, ensuring completeness
|
|
143
|
+
|
|
144
|
+
**Sequence:**
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
1. [nx] Generate workspace graph → identify all project dependencies
|
|
148
|
+
2. [ref] Analyze codebase for existing similar patterns
|
|
149
|
+
3. [github] Review recent PRs for boundary decisions
|
|
150
|
+
4. [exa] Search: "MECE decomposition for <domain> testing"
|
|
151
|
+
5. [vibe-check] "What edge cases am I missing in this decomposition?"
|
|
152
|
+
6. [memory] Store validated boundaries as organizational knowledge
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Integration Point:** Mandatory before finalizing "Phase 0: MECE Validation Matrix."
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
#### Pattern C: Test Strategy Synthesis
|
|
160
|
+
|
|
161
|
+
**When:** Designing RED-GREEN-REFACTOR cycles, choosing test approaches
|
|
162
|
+
|
|
163
|
+
**Sequence:**
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
1. [context7] Retrieve testing framework docs (Jest, Vitest, Playwright, etc.)
|
|
167
|
+
2. [exa] Search: "<framework> TDD patterns" + "<domain> test strategies"
|
|
168
|
+
3. [github] Analyze repo's existing test conventions
|
|
169
|
+
4. [ref] Fetch test architecture guides
|
|
170
|
+
5. [vibe-check] "Are these tests actually testing the right things?"
|
|
171
|
+
6. [memory] Record effective patterns for reuse
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Integration Point:** Embed in each TASK's "TDD Strategy" section with explicit reasoning.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
#### Pattern D: Generator Specification Deep Dive
|
|
179
|
+
|
|
180
|
+
**When:** Creating generator specifications (critical path items)
|
|
181
|
+
|
|
182
|
+
**Sequence:**
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
1. [nx] Inspect workspace generators → understand existing patterns
|
|
186
|
+
2. [context7] Fetch Nx generator documentation (/websites/nx_dev)
|
|
187
|
+
3. [exa] Search: "Nx generator schema validation" + "<type> generator patterns"
|
|
188
|
+
4. [ref] Retrieve JSON Schema documentation
|
|
189
|
+
5. [microsoft-docs] Check Azure DevOps integration if applicable
|
|
190
|
+
6. [github] Review generator-related issues in workspace
|
|
191
|
+
7. [vibe-check] "What will break when this generator is misused?"
|
|
192
|
+
8. [memory] Store generator design decisions
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Integration Point:** Replaces current "Generator Specification" boilerplate with tool-augmented depth.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
#### Pattern E: Risk Assessment Through Distributed Intelligence
|
|
200
|
+
|
|
201
|
+
**When:** Identifying risks, planning mitigation
|
|
202
|
+
|
|
203
|
+
**Sequence:**
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
1. [memory] Recall: past project failures, known issues
|
|
207
|
+
2. [github] Analyze: failed CI runs, unresolved issues, PR feedback patterns
|
|
208
|
+
3. [exa] Search: "common pitfalls <technology> testing"
|
|
209
|
+
4. [ref] Fetch: troubleshooting guides for tech stack
|
|
210
|
+
5. [vibe-check] "What am I not considering that could derail this?"
|
|
211
|
+
6. [memory] Record identified risks + mitigations
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Integration Point:** Enhances "Phase 0: Risk Assessment" with concrete, sourced insights.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
### 🎯 Phase-Level MCP Integration Protocol
|
|
219
|
+
|
|
220
|
+
**Every phase MUST begin with:**
|
|
221
|
+
|
|
222
|
+
```markdown
|
|
223
|
+
### Phase Initialization Ritual
|
|
224
|
+
|
|
225
|
+
1. **Context Bundle** → `just ai-context-bundle`
|
|
226
|
+
2. **Memory Sync** → [memory] Retrieve phase-relevant knowledge
|
|
227
|
+
3. **Domain Refresh** → [context7 + ref] Update documentation baseline
|
|
228
|
+
4. **Pattern Scan** → [exa + github] Identify relevant implementation patterns
|
|
229
|
+
5. **Workspace Validation** → [nx] Verify project graph integrity
|
|
230
|
+
6. **Metacognitive Gate** → [vibe-check] Surface hidden assumptions
|
|
231
|
+
7. **Intelligence Log** → Generate `docs/plans/<plan_name>/PHASE-000-INTELLIGENCE.md`
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Every phase MUST end with:**
|
|
235
|
+
|
|
236
|
+
```markdown
|
|
237
|
+
### Phase Exit Ritual
|
|
238
|
+
|
|
239
|
+
1. **Validation** → `just ai-validate`
|
|
240
|
+
2. **Outcome Recording** → [memory] Store: what worked, what didn't, why
|
|
241
|
+
3. **Vibe Check** → [vibe-check] "Did we actually solve the right problem?"
|
|
242
|
+
4. **Branch Sync** → [github] Commit progress, update PR if applicable
|
|
243
|
+
5. **CI Verification** → [github] Monitor workflow status, retry if needed
|
|
244
|
+
6. **Retrospective** → Document in `docs/plans/<plan_name>/PHASE-000-RETROSPECTIVE.md`
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Enhanced Task Template (MCP-Integrated TDD)
|
|
250
|
+
|
|
251
|
+
### âš¡ TASK-XXX: <Concise Name>
|
|
252
|
+
|
|
253
|
+
**Ownership**
|
|
254
|
+
|
|
255
|
+
- **Nx Project(s)**: `<apps/* | libs/* | tools/* | generators/ — specification documentation only>`
|
|
256
|
+
- **Owned Globs**: `<explicit list>`
|
|
257
|
+
- **Excluded Globs**: `<explicit list>`
|
|
258
|
+
|
|
259
|
+
**Traceability**
|
|
260
|
+
|
|
261
|
+
- ADR-### · PRD-### · SDS-###
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
**🧠Intelligence Gathering Phase (Execute FIRST)**
|
|
266
|
+
|
|
267
|
+
```yaml
|
|
268
|
+
Documentation Foundation:
|
|
269
|
+
- [context7] Resolve: <list all libraries/frameworks>
|
|
270
|
+
- [microsoft-docs] Check: <Azure/Microsoft standards if applicable>
|
|
271
|
+
- [ref] Fetch: <API references, usage guides>
|
|
272
|
+
Record: "Doc foundation established: <summary>"
|
|
273
|
+
|
|
274
|
+
Pattern Research:
|
|
275
|
+
- [exa] Search: "<task domain> implementation patterns"
|
|
276
|
+
- [exa] Search: "<framework> best practices for <use case>"
|
|
277
|
+
- [github] Analyze: <repo patterns, recent PRs in this domain>
|
|
278
|
+
Record: "Pattern analysis: <3-5 approaches with trade-offs>"
|
|
279
|
+
|
|
280
|
+
MECE Validation:
|
|
281
|
+
- [nx] Verify: project dependencies, no overlap with other tasks
|
|
282
|
+
- [ref] Check: existing codebase for similar boundaries
|
|
283
|
+
Record: "Boundary validation: <conflicts resolved>"
|
|
284
|
+
|
|
285
|
+
Metacognitive Check:
|
|
286
|
+
- [vibe-check] "What edge cases am I missing?"
|
|
287
|
+
- [vibe-check] "What assumptions am I making about requirements?"
|
|
288
|
+
- [vibe-check] "Where could this implementation fail unexpectedly?"
|
|
289
|
+
Record: "Vibe check: <gaps identified + mitigation>"
|
|
290
|
+
|
|
291
|
+
Knowledge Persistence:
|
|
292
|
+
- [memory] Store: task context, decisions, research outcomes
|
|
293
|
+
Record: "Memory updated: <key decisions stored>"
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Output Artifact:** `docs/plans/<plan_name>/TASK-XXX-INTELLIGENCE.md` (mandatory before proceeding)
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
**📋 Generator-First Plan (Specification-First)**
|
|
301
|
+
|
|
302
|
+
- **Existing generator available?** [nx] → Query workspace generators
|
|
303
|
+
- If **yes**: Document parameters + validation via [context7] Nx docs
|
|
304
|
+
- If **no**: Author specification using **Pattern D** (Generator Specification Deep Dive)
|
|
305
|
+
|
|
306
|
+
**🔬 Generator Specification (MCP-Enhanced)**
|
|
307
|
+
|
|
308
|
+
_If new generator needed:_
|
|
309
|
+
|
|
310
|
+
```markdown
|
|
311
|
+
## Generator Specification: <name>
|
|
312
|
+
|
|
313
|
+
### Authority & Validation
|
|
314
|
+
|
|
315
|
+
- [context7] Official Nx generator docs: <version + key patterns>
|
|
316
|
+
- [exa] Reference implementations: <3 examples with URLs>
|
|
317
|
+
- [ref] JSON Schema validation guides: <standards applied>
|
|
318
|
+
|
|
319
|
+
### Purpose & Scope
|
|
320
|
+
|
|
321
|
+
<Clear definition, informed by pattern research>
|
|
322
|
+
|
|
323
|
+
### Inputs/Parameters
|
|
324
|
+
|
|
325
|
+
<Schema validated against [context7] Nx conventions>
|
|
326
|
+
|
|
327
|
+
### Artifacts Emitted
|
|
328
|
+
|
|
329
|
+
<Files/dirs verified against [nx] workspace structure>
|
|
330
|
+
|
|
331
|
+
### Nx Targets & Hooks
|
|
332
|
+
|
|
333
|
+
<Targets validated via [nx] project_details>
|
|
334
|
+
|
|
335
|
+
### Policy Compliance
|
|
336
|
+
|
|
337
|
+
- Links to `.github/instructions/*` and `AGENT.md`
|
|
338
|
+
- [github] Verify: no conflicts with repo policies
|
|
339
|
+
|
|
340
|
+
### Acceptance Tests for Generator
|
|
341
|
+
|
|
342
|
+
<Tests informed by [exa] generator testing patterns>
|
|
343
|
+
|
|
344
|
+
### Risk Mitigation
|
|
345
|
+
|
|
346
|
+
<Risks identified via [vibe-check] + [memory] recall>
|
|
347
|
+
|
|
348
|
+
### MCP Traceability
|
|
349
|
+
|
|
350
|
+
- context7 queries: <list>
|
|
351
|
+
- exa searches: <list>
|
|
352
|
+
- ref lookups: <list>
|
|
353
|
+
- vibe-check outcomes: <summary>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
**🔴 RED Phase (Test-First with MCP)**
|
|
359
|
+
|
|
360
|
+
**Strategy Formation:**
|
|
361
|
+
|
|
362
|
+
```yaml
|
|
363
|
+
Test Framework Selection:
|
|
364
|
+
- [context7] Fetch: testing framework docs for <framework>
|
|
365
|
+
- [exa] Search: "<framework> TDD patterns" + "test isolation techniques"
|
|
366
|
+
- [github] Review: existing test conventions in repo
|
|
367
|
+
Decision: <chosen approach with rationale>
|
|
368
|
+
|
|
369
|
+
Test Design:
|
|
370
|
+
- [ref] Lookup: testing best practices for <domain>
|
|
371
|
+
- [vibe-check] "Are these tests brittle or resilient?"
|
|
372
|
+
- [vibe-check] "Do these tests verify intent or implementation?"
|
|
373
|
+
Design: <test files + failure scenarios>
|
|
374
|
+
|
|
375
|
+
Fixture Strategy:
|
|
376
|
+
- [exa] Search: "deterministic test fixtures <technology>"
|
|
377
|
+
- [ref] Fetch: fixture management patterns
|
|
378
|
+
Design: <namespaced, deterministic fixtures>
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
**Deliverables:**
|
|
382
|
+
|
|
383
|
+
- [ ] Test files created under owning Nx project
|
|
384
|
+
- [ ] Tests fail for documented, intentional reasons
|
|
385
|
+
- [ ] `docs/plans/<plan_name>/TASK-XXX-RED-PHASE.md` documenting:
|
|
386
|
+
- MCP research conducted
|
|
387
|
+
- Chosen approaches + rationale
|
|
388
|
+
- Expected failure modes
|
|
389
|
+
|
|
390
|
+
**Commands:**
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
pnpm nx test <project> -- --runTestsByPath <test-file>
|
|
394
|
+
# Expected: Intentional failures logged
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
**🟢 GREEN Phase (Minimal Implementation)**
|
|
400
|
+
|
|
401
|
+
**Implementation Guidance:**
|
|
402
|
+
|
|
403
|
+
```yaml
|
|
404
|
+
API Design:
|
|
405
|
+
- [context7] Verify: against framework conventions
|
|
406
|
+
- [ref] Check: API design patterns for <domain>
|
|
407
|
+
- [vibe-check] "Is this the simplest thing that could work?"
|
|
408
|
+
|
|
409
|
+
Code Patterns:
|
|
410
|
+
- [exa] Search: "<pattern> implementation examples"
|
|
411
|
+
- [github] Review: similar implementations in repo
|
|
412
|
+
- [ref] Validate: against style guides
|
|
413
|
+
|
|
414
|
+
Integration Points:
|
|
415
|
+
- [nx] Verify: dependency graph remains acyclic
|
|
416
|
+
- [github] Check: no breaking changes to dependents
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Deliverables:**
|
|
420
|
+
|
|
421
|
+
- [ ] Minimal code to pass tests
|
|
422
|
+
- [ ] All tests green locally
|
|
423
|
+
- [ ] `docs/plans/<plan_name>/TASK-XXX-GREEN-PHASE.md` documenting:
|
|
424
|
+
- Implementation decisions
|
|
425
|
+
- MCP validation performed
|
|
426
|
+
- Trade-offs made
|
|
427
|
+
|
|
428
|
+
**Commands:**
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
pnpm nx test <project>
|
|
432
|
+
# Expected: All tests pass
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
**🔵 REFACTOR Phase (MCP-Guided Improvement)**
|
|
438
|
+
|
|
439
|
+
**Refactor Strategy:**
|
|
440
|
+
|
|
441
|
+
```yaml
|
|
442
|
+
Seam Analysis:
|
|
443
|
+
- [ref] Identify: refactoring opportunities in codebase
|
|
444
|
+
- [nx] Analyze: dependency graph for extraction candidates
|
|
445
|
+
- [vibe-check] "What will make this code easier to change?"
|
|
446
|
+
|
|
447
|
+
Pattern Application:
|
|
448
|
+
- [exa] Search: "refactoring patterns <domain>"
|
|
449
|
+
- [context7] Verify: framework idioms for extracted code
|
|
450
|
+
- [github] Review: repo conventions for new libs
|
|
451
|
+
|
|
452
|
+
Boundary Detection:
|
|
453
|
+
- [ref] Suggest: file/module splits for MECE preservation
|
|
454
|
+
- [nx] Validate: new boundaries don't create cycles
|
|
455
|
+
- [memory] Record: architectural decisions made
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
**Deliverables:**
|
|
459
|
+
|
|
460
|
+
- [ ] Code refactored, tests remain green
|
|
461
|
+
- [ ] New `libs/*` created if boundaries emerged ([nx] generator used)
|
|
462
|
+
- [ ] `docs/plans/<plan_name>/TASK-XXX-REFACTOR-PHASE.md` documenting:
|
|
463
|
+
- Refactoring rationale (MCP-sourced)
|
|
464
|
+
- Architectural improvements
|
|
465
|
+
- Boundary decisions
|
|
466
|
+
|
|
467
|
+
**Commands:**
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
pnpm nx test <project>
|
|
471
|
+
pnpm nx run-many -t lint,type-check -p <projects>
|
|
472
|
+
# Expected: Still green + cleaner structure
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
**🔄 REGRESSION Phase (Distributed Validation)**
|
|
478
|
+
|
|
479
|
+
**Validation Strategy:**
|
|
480
|
+
|
|
481
|
+
```yaml
|
|
482
|
+
Scope Verification:
|
|
483
|
+
- [nx] Run: affected tests only
|
|
484
|
+
- [github] Monitor: CI workflow execution
|
|
485
|
+
|
|
486
|
+
Failure Analysis (if failures occur):
|
|
487
|
+
- [ref] Search: error messages in documentation
|
|
488
|
+
- [exa] Search: "<error> debugging strategies"
|
|
489
|
+
- [memory] Recall: similar failures + solutions
|
|
490
|
+
- [vibe-check] "Is this a real failure or a flaky test?"
|
|
491
|
+
|
|
492
|
+
CI Remediation:
|
|
493
|
+
- [github] Analyze: failed workflow logs
|
|
494
|
+
- [github] Retry: workflows after fixes
|
|
495
|
+
- [memory] Record: failure patterns + fixes
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**Deliverables:**
|
|
499
|
+
|
|
500
|
+
- [ ] Phase-level tests pass: `pnpm nx run-many -t test -p <projects>`
|
|
501
|
+
- [ ] Workspace validation: `just ai-validate`
|
|
502
|
+
- [ ] CI green: [github] workflows successful
|
|
503
|
+
- [ ] `docs/plans/<plan_name>/TASK-XXX-REGRESSION.md` documenting:
|
|
504
|
+
- Regression coverage
|
|
505
|
+
- Failures encountered + resolutions
|
|
506
|
+
- CI/CD insights
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
**📊 Task Completion Ritual**
|
|
511
|
+
|
|
512
|
+
```yaml
|
|
513
|
+
Knowledge Capture:
|
|
514
|
+
- [memory] Store:
|
|
515
|
+
- Implementation approach + rationale
|
|
516
|
+
- MCP research conducted
|
|
517
|
+
- Effective patterns discovered
|
|
518
|
+
- Pitfalls avoided
|
|
519
|
+
- Open questions
|
|
520
|
+
|
|
521
|
+
Retrospective:
|
|
522
|
+
- [vibe-check] "Did this task actually deliver value?"
|
|
523
|
+
- [vibe-check] "What would I do differently?"
|
|
524
|
+
Record: <honest assessment>
|
|
525
|
+
|
|
526
|
+
Handoff Preparation:
|
|
527
|
+
- [github] Commit: progress with detailed message
|
|
528
|
+
- [github] Update: PR description with MCP traceability
|
|
529
|
+
- Document: `docs/plans/<plan_name>/TASK-XXX-COMPLETE.md` with full audit trail
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
---
|
|
533
|
+
|
|
534
|
+
## Phase 0: Pre-Implementation Analysis (MCP-Orchestrated)
|
|
535
|
+
|
|
536
|
+
**Execute this BEFORE any implementation planning:**
|
|
537
|
+
|
|
538
|
+
### 1. Distributed Intelligence Gathering
|
|
539
|
+
|
|
540
|
+
```yaml
|
|
541
|
+
Memory Foundation:
|
|
542
|
+
- [memory] Retrieve:
|
|
543
|
+
- Similar past projects
|
|
544
|
+
- User preferences for testing approaches
|
|
545
|
+
- Known successful patterns
|
|
546
|
+
- Known failures to avoid
|
|
547
|
+
|
|
548
|
+
Repository Intelligence:
|
|
549
|
+
- [github] Analyze:
|
|
550
|
+
- Repository structure and conventions
|
|
551
|
+
- Active branches and their purposes
|
|
552
|
+
- Recent PRs: merged patterns, rejected approaches
|
|
553
|
+
- Open issues: technical debt, known bugs
|
|
554
|
+
- CI/CD patterns: test suites, deployment gates
|
|
555
|
+
- [nx] Inspect:
|
|
556
|
+
- Workspace graph (apps ↔ libs ↔ tools)
|
|
557
|
+
- Existing generators and their schemas
|
|
558
|
+
- Project configurations and targets
|
|
559
|
+
- Cacheable operations
|
|
560
|
+
|
|
561
|
+
Documentation Baseline:
|
|
562
|
+
- [context7] Resolve ALL mentioned libraries:
|
|
563
|
+
- Nx (specific version)
|
|
564
|
+
- Testing frameworks
|
|
565
|
+
- Application frameworks
|
|
566
|
+
- Build tools
|
|
567
|
+
- [microsoft-docs] Fetch (if applicable):
|
|
568
|
+
- Azure services
|
|
569
|
+
- .NET standards
|
|
570
|
+
- TypeScript guidelines
|
|
571
|
+
- [ref] Gather:
|
|
572
|
+
- Internal wiki pages
|
|
573
|
+
- ADR/PRD/SDS documents
|
|
574
|
+
- API documentation
|
|
575
|
+
|
|
576
|
+
Pattern Research:
|
|
577
|
+
- [exa] Search (with citations):
|
|
578
|
+
- "TDD patterns <tech stack> monorepo"
|
|
579
|
+
- "<framework> testing best practices 2025"
|
|
580
|
+
- "Nx workspace test automation"
|
|
581
|
+
- "<domain> integration testing strategies"
|
|
582
|
+
- [github] Scan:
|
|
583
|
+
- Public repos with similar architecture
|
|
584
|
+
- Test suite structures
|
|
585
|
+
- Generator patterns
|
|
586
|
+
|
|
587
|
+
Metacognitive Checkpoint:
|
|
588
|
+
- [vibe-check] Questions:
|
|
589
|
+
- "What assumptions am I making about the tech stack?"
|
|
590
|
+
- "What could make this plan obsolete?"
|
|
591
|
+
- "Where is documentation likely outdated?"
|
|
592
|
+
- "What organizational knowledge am I missing?"
|
|
593
|
+
- "What will be hardest to test?"
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
**Output Artifact:** `docs/plans/<plan_name>/PHASE-000-INTELLIGENCE.md` containing:
|
|
597
|
+
|
|
598
|
+
- All MCP queries executed + results
|
|
599
|
+
- Synthesized insights
|
|
600
|
+
- Identified gaps and mitigation strategies
|
|
601
|
+
- Confidence levels for different areas
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
### 2. MECE Validation Matrix (Tool-Verified)
|
|
606
|
+
|
|
607
|
+
**Process:**
|
|
608
|
+
|
|
609
|
+
```yaml
|
|
610
|
+
1. Initial Decomposition:
|
|
611
|
+
- Draft task boundaries from PRD/SDS/ADR
|
|
612
|
+
- [ref] Check: existing codebase for similar structures
|
|
613
|
+
|
|
614
|
+
2. Overlap Detection:
|
|
615
|
+
- [nx] Generate: dependency graph
|
|
616
|
+
- [nx] Analyze: project relationships
|
|
617
|
+
- [ref] Identify: shared code patterns
|
|
618
|
+
- Manual review: file globs for conflicts
|
|
619
|
+
|
|
620
|
+
3. Completeness Check:
|
|
621
|
+
- [exa] Search: "requirement coverage matrix testing"
|
|
622
|
+
- [vibe-check] "What requirements are orphaned?"
|
|
623
|
+
- Cross-reference: every PRD/SDS item to ≥1 task
|
|
624
|
+
|
|
625
|
+
4. Validation:
|
|
626
|
+
- [memory] Recall: past MECE violations + consequences
|
|
627
|
+
- [vibe-check] "Can any two tasks step on each other?"
|
|
628
|
+
- Document: explicit exclusions per task
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
**Output:** Table with tool-verified assurance of MECE properties
|
|
632
|
+
|
|
633
|
+
---
|
|
634
|
+
|
|
635
|
+
### 3. Risk Assessment (Multi-Source Analysis)
|
|
636
|
+
|
|
637
|
+
**Risk Identification:**
|
|
638
|
+
|
|
639
|
+
```yaml
|
|
640
|
+
Historical Risks:
|
|
641
|
+
- [memory] Recall: past project failures, near-misses
|
|
642
|
+
- [github] Analyze: closed issues tagged "bug" or "blocker"
|
|
643
|
+
|
|
644
|
+
Technical Risks:
|
|
645
|
+
- [exa] Search: "common pitfalls <technology> testing"
|
|
646
|
+
- [context7] Review: framework limitations, deprecations
|
|
647
|
+
- [ref] Fetch: troubleshooting guides
|
|
648
|
+
- [microsoft-docs] Check: Azure service limits (if applicable)
|
|
649
|
+
|
|
650
|
+
Architectural Risks:
|
|
651
|
+
- [nx] Identify: circular dependencies, tight coupling
|
|
652
|
+
- [ref] Detect: anti-patterns in existing code
|
|
653
|
+
|
|
654
|
+
Process Risks:
|
|
655
|
+
- [github] Review: CI failure patterns
|
|
656
|
+
- [vibe-check] "What could cause this plan to fail?"
|
|
657
|
+
|
|
658
|
+
Mitigation Planning:
|
|
659
|
+
- For each risk: assign monitoring tool + trigger + response
|
|
660
|
+
- [memory] Store: risk register for future reference
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
**Output:** Prioritized risk register with tool-assisted mitigation strategies
|
|
664
|
+
|
|
665
|
+
---
|
|
666
|
+
|
|
667
|
+
### 4. Critical Path Analysis (Data-Driven)
|
|
668
|
+
|
|
669
|
+
**Process:**
|
|
670
|
+
|
|
671
|
+
```yaml
|
|
672
|
+
1. Dependency Mapping:
|
|
673
|
+
- [nx] Extract: project dependency graph
|
|
674
|
+
- Overlay: task dependencies from decomposition
|
|
675
|
+
- [vibe-check] "Are these dependencies real or assumed?"
|
|
676
|
+
|
|
677
|
+
2. Duration Estimation:
|
|
678
|
+
- [memory] Recall: similar task durations from past
|
|
679
|
+
- [exa] Search: "estimation techniques TDD projects"
|
|
680
|
+
- Apply: three-point estimation with tool-sourced anchors
|
|
681
|
+
|
|
682
|
+
3. Bottleneck Identification:
|
|
683
|
+
- Calculate: critical path using network analysis
|
|
684
|
+
- [vibe-check] "What will actually take longest?"
|
|
685
|
+
- [memory] Recall: past schedule surprises
|
|
686
|
+
|
|
687
|
+
4. Optimization:
|
|
688
|
+
- [exa] Search: "parallel test execution strategies"
|
|
689
|
+
- [ref] Review: test suite optimization techniques
|
|
690
|
+
- Propose: parallelization opportunities with constraints
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
**Output:** Critical path diagram with confidence intervals, parallelization plan
|
|
694
|
+
|
|
695
|
+
---
|
|
696
|
+
|
|
697
|
+
### 5. Generator Specification Requirements (Deep Research)
|
|
698
|
+
|
|
699
|
+
**For each missing generator:**
|
|
700
|
+
|
|
701
|
+
```yaml
|
|
702
|
+
1. Pattern Analysis:
|
|
703
|
+
- [nx] Inspect: existing workspace generators
|
|
704
|
+
- [context7] Fetch: official Nx generator documentation
|
|
705
|
+
- [exa] Search: "<type> generator patterns GitHub"
|
|
706
|
+
- [github] Review: popular generator repositories
|
|
707
|
+
|
|
708
|
+
2. Schema Design:
|
|
709
|
+
- [context7] Verify: JSON Schema standards
|
|
710
|
+
- [exa] Find: validation examples
|
|
711
|
+
- [ref] Check: workspace naming conventions
|
|
712
|
+
|
|
713
|
+
3. Acceptance Criteria:
|
|
714
|
+
- [context7] Review: Nx generator testing patterns
|
|
715
|
+
- [exa] Search: "generator test strategies"
|
|
716
|
+
- [vibe-check] "How could this generator be misused?"
|
|
717
|
+
|
|
718
|
+
4. Documentation Requirements:
|
|
719
|
+
- [ref] Identify: required sections per repo standards
|
|
720
|
+
- [memory] Recall: effective generator documentation
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
**Output:** Prioritized list of generator specs with research foundation
|
|
724
|
+
|
|
725
|
+
---
|
|
726
|
+
|
|
727
|
+
## Plan Generation using PLAN_TEMPLATE.md
|
|
728
|
+
|
|
729
|
+
After performing the pre-implementation analysis, your primary output is a plan based on `docs/plans/PLAN_TEMPLATE.md`.
|
|
730
|
+
|
|
731
|
+
- Use the **Enhanced Phase Overview Matrix** below as a high-level guide to define the project's phases.
|
|
732
|
+
- For each phase you define, you must break it down into cycles and populate the `Cycle Summary Table` as specified in the template.
|
|
733
|
+
- Use the **Enhanced Task Template (MCP-Integrated TDD)** as the cognitive guide to generate the detailed content for each `Cycle <Cycle_Label> — <Cycle_Name>` section in the template.
|
|
734
|
+
|
|
735
|
+
---
|
|
736
|
+
|
|
737
|
+
## Enhanced Phase Overview Matrix
|
|
738
|
+
|
|
739
|
+
| Phase | Duration | Parallel | Nx Projects | MCP Tools Used | Critical | MVP |
|
|
740
|
+
| ------------------------------------- | -------- | -------- | ---------------------- | ------------------------------------------ | -------- | --- |
|
|
741
|
+
| **PHASE-000**: Intelligence Gathering | 2-3h | 1 | N/A | ALL (baseline) | **YES** | ✅ |
|
|
742
|
+
| **PHASE-001**: Generator Specs | 3-5h | 3 | `generators/*` (specs) | context7, exa, ref, nx, vibe-check | **YES** | ✅ |
|
|
743
|
+
| **PHASE-002**: Core Features | 6-8h | 3 | `libs/<domain>/*` | context7, ref, exa, nx, github, vibe-check | **YES** | ✅ |
|
|
744
|
+
| **PHASE-003**: Integration & E2E | 3-4h | 2 | `apps/*`, `e2e/*` | context7, github, nx, vibe-check | **YES** | ✅ |
|
|
745
|
+
| **PHASE-004**: Enhancements | 4-6h | 3 | `libs/*`, `tools/*` | exa, ref, vibe-check, memory | NO | ⬜ |
|
|
746
|
+
|
|
747
|
+
**Phase Discipline:**
|
|
748
|
+
|
|
749
|
+
- **Initialization**: Intelligence gathering ritual (mandatory)
|
|
750
|
+
- **Execution**: Task-level MCP integration per template
|
|
751
|
+
- **Exit**: Validation + retrospective ritual (mandatory)
|
|
752
|
+
|
|
753
|
+
---
|
|
754
|
+
|
|
755
|
+
## MCP Orchestration Best Practices
|
|
756
|
+
|
|
757
|
+
### Chaining Patterns for Emergent Intelligence
|
|
758
|
+
|
|
759
|
+
**Sequential Enrichment:**
|
|
760
|
+
|
|
761
|
+
```
|
|
762
|
+
[context7] → [exa] → [ref] → [vibe-check]
|
|
763
|
+
(official docs) → (real-world patterns) → (deep analysis) → (validity check)
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
**Parallel Validation:**
|
|
767
|
+
|
|
768
|
+
```
|
|
769
|
+
┌─ [context7] (authority)
|
|
770
|
+
[topic] ─┼─ [exa] (patterns)
|
|
771
|
+
├─ [ref] (analysis)
|
|
772
|
+
└─ [github] (practice)
|
|
773
|
+
↓
|
|
774
|
+
[vibe-check] (synthesis + validation)
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
**Recursive Refinement:**
|
|
778
|
+
|
|
779
|
+
```
|
|
780
|
+
1. [memory] → retrieve past approach
|
|
781
|
+
2. [vibe-check] → identify weaknesses
|
|
782
|
+
3. [exa] → find improved patterns
|
|
783
|
+
4. [context7] → validate against current standards
|
|
784
|
+
5. [memory] → store refined approach
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
---
|
|
788
|
+
|
|
789
|
+
### Tool-Specific Usage Guidelines
|
|
790
|
+
|
|
791
|
+
**context7** (Authoritative Documentation)
|
|
792
|
+
|
|
793
|
+
- **Use for:** Framework/library docs, official guides, version-specific behavior
|
|
794
|
+
- **Always:** Specify exact library/framework name + version when available
|
|
795
|
+
- **Chain with:** exa (for real-world examples), ref (for deep-dive analysis)
|
|
796
|
+
- **Record:** Documentation version + key constraints in plan
|
|
797
|
+
|
|
798
|
+
**exa** (Pattern Intelligence)
|
|
799
|
+
|
|
800
|
+
- **Use for:** Code examples, best practices, implementation strategies
|
|
801
|
+
- **Always:** Search with specific, technical queries: "<technology> <pattern> <context>"
|
|
802
|
+
- **Chain with:** context7 (validate against official docs), github (compare to repo)
|
|
803
|
+
- **Record:** 3-5 best sources with URLs + synthesis of approaches
|
|
804
|
+
|
|
805
|
+
**ref** (Deep Analysis)
|
|
806
|
+
|
|
807
|
+
- **Use for:** Codebase comprehension, refactoring opportunities, anti-pattern detection
|
|
808
|
+
- **Always:** Be specific about analysis target (file, module, pattern)
|
|
809
|
+
- **Chain with:** nx (workspace context), vibe-check (validate insights)
|
|
810
|
+
- **Record:** Seams identified, refactor opportunities, boundary suggestions
|
|
811
|
+
|
|
812
|
+
**nx** (Workspace Intelligence)
|
|
813
|
+
|
|
814
|
+
- **Use for:** Project structure, dependencies, generators, build orchestration
|
|
815
|
+
- **Always:** Verify workspace state before making architectural decisions
|
|
816
|
+
- **Chain with:** ref (code analysis), github (repo conventions)
|
|
817
|
+
- **Record:** Dependency graph insights, generator availability, target configurations
|
|
818
|
+
|
|
819
|
+
**github** (Repository Intelligence)
|
|
820
|
+
|
|
821
|
+
- **Use for:** PR patterns, CI/CD, issue tracking, code review insights
|
|
822
|
+
- **Always:** Analyze before making structural changes
|
|
823
|
+
- **Chain with:** nx (workspace validation), memory (pattern recording)
|
|
824
|
+
- **Record:** Conventions discovered, CI patterns, common failure modes
|
|
825
|
+
|
|
826
|
+
**microsoft-docs** (Microsoft/Azure Authority)
|
|
827
|
+
|
|
828
|
+
- **Use for:** Azure services, .NET standards, TypeScript guidelines
|
|
829
|
+
- **Always:** Check when working with Microsoft technologies
|
|
830
|
+
- **Chain with:** context7 (cross-reference), ref (implementation details)
|
|
831
|
+
- **Record:** Service limits, best practices, compliance requirements
|
|
832
|
+
|
|
833
|
+
**memory** (Organizational Intelligence)
|
|
834
|
+
|
|
835
|
+
- **Use for:** User preferences, past decisions, learned patterns, failure modes
|
|
836
|
+
- **Always:** Store insights at task completion, recall at task start
|
|
837
|
+
- **Chain with:** ALL tools (memory creates continuity across sessions)
|
|
838
|
+
- **Record:** Explicitly document what was stored and why
|
|
839
|
+
|
|
840
|
+
**vibe-check** (Metacognitive Validation)
|
|
841
|
+
|
|
842
|
+
- **Use for:** Assumption surfacing, blind spot detection, plan validation
|
|
843
|
+
- **Always:** Run before committing to major decisions
|
|
844
|
+
- **Chain with:** ALL research (final validation step)
|
|
845
|
+
- **Record:** Questions asked, gaps identified, mitigation strategies
|
|
846
|
+
|
|
847
|
+
---
|
|
848
|
+
|
|
849
|
+
### MCP Error Handling & Fallbacks
|
|
850
|
+
|
|
851
|
+
**When tools fail or return unexpected results:**
|
|
852
|
+
|
|
853
|
+
```yaml
|
|
854
|
+
Tool Unavailable:
|
|
855
|
+
- Log: tool name, query, timestamp
|
|
856
|
+
- Fallback: manual research + documentation
|
|
857
|
+
- Flag: plan section as "tool-unverified"
|
|
858
|
+
|
|
859
|
+
Conflicting Information:
|
|
860
|
+
- [vibe-check] "Why do these sources conflict?"
|
|
861
|
+
- Research: source authority and recency
|
|
862
|
+
- Document: conflict + resolution rationale
|
|
863
|
+
- Prefer: official docs > established patterns > recent examples
|
|
864
|
+
|
|
865
|
+
Insufficient Results:
|
|
866
|
+
- Refine: query with more specific terms
|
|
867
|
+
- Chain: different tool for same information
|
|
868
|
+
- Escalate: flag as "requires human expertise"
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
---
|
|
872
|
+
|
|
873
|
+
## Deliverables & Audit Trail
|
|
874
|
+
|
|
875
|
+
**Every plan MUST include:**
|
|
876
|
+
|
|
877
|
+
1. **`PRE_PLAN_INTELLIGENCE.md`**
|
|
878
|
+
|
|
879
|
+
- All pre-planning MCP queries + results
|
|
880
|
+
- Synthesized insights
|
|
881
|
+
- Confidence assessments
|
|
882
|
+
|
|
883
|
+
2. **Phase-Level Intelligence Logs** (`docs/plans/<plan_name>/PHASE-000-INTELLIGENCE.md`)
|
|
884
|
+
|
|
885
|
+
- Tools used per phase
|
|
886
|
+
- Research conducted
|
|
887
|
+
- Decisions made + rationale
|
|
888
|
+
|
|
889
|
+
3. **Task-Level Intelligence Logs** (`docs/plans/<plan_name>/TASK-XXX-INTELLIGENCE.md`)
|
|
890
|
+
|
|
891
|
+
- MCP orchestration for specific task
|
|
892
|
+
- Pattern research outcomes
|
|
893
|
+
- Validation results
|
|
894
|
+
|
|
895
|
+
4. **Retrospectives** (`docs/plans/<plan_name>/PHASE-000-RETROSPECTIVE.md`)
|
|
896
|
+
|
|
897
|
+
- What worked (with tool attribution)
|
|
898
|
+
- What didn't (tool limitations, incorrect assumptions)
|
|
899
|
+
- Lessons learned (stored in [memory])
|
|
900
|
+
|
|
901
|
+
5. **MCP Traceability Matrix**
|
|
902
|
+
- Tool → Query → Result → Impact on Plan
|
|
903
|
+
- Enables audit and continuous improvement
|
|
904
|
+
|
|
905
|
+
---
|
|
906
|
+
|
|
907
|
+
## Quality Metrics (MCP-Enhanced)
|
|
908
|
+
|
|
909
|
+
**Plan quality is measured by:**
|
|
910
|
+
|
|
911
|
+
1. **Tool Coverage**: % of plan sections with MCP validation
|
|
912
|
+
2. **Source Diversity**: # of unique information sources per decision
|
|
913
|
+
3. **Assumption Surfacing**: # of vibe-check outcomes recorded
|
|
914
|
+
4. **Knowledge Persistence**: # of insights stored in [memory]
|
|
915
|
+
5. **Pattern Recognition**: # of exa/github patterns integrated
|
|
916
|
+
6. **Authority Grounding**: % of technical claims backed by context7/microsoft-docs
|
|
917
|
+
7. **Metacognitive Rigor**: # of vibe-check challenges that changed approach
|
|
918
|
+
|
|
919
|
+
**Target: ≥80% tool coverage, ≥3 sources per major decision, ≥5 vibe-check validations per phase**
|
|
920
|
+
|
|
921
|
+
---
|
|
922
|
+
|
|
923
|
+
## Example: MCP-Orchestrated Task (Full Walkthrough)
|
|
924
|
+
|
|
925
|
+
### âš¡ TASK-042: Implement User Authentication Service
|
|
926
|
+
|
|
927
|
+
**Ownership**
|
|
928
|
+
|
|
929
|
+
- **Nx Project**: `libs/auth`
|
|
930
|
+
- **Owned Globs**: `libs/auth/src/**/*`, `libs/auth/test/**/*`
|
|
931
|
+
- **Excluded Globs**: `libs/auth-ui/**/*`, `apps/*/auth/**/*`
|
|
932
|
+
|
|
933
|
+
**Traceability**
|
|
934
|
+
|
|
935
|
+
- ADR-015 (Auth Strategy), PRD-AUTH-001, SDS-SECURITY-003
|
|
936
|
+
|
|
937
|
+
---
|
|
938
|
+
|
|
939
|
+
**🧠Intelligence Gathering Phase**
|
|
940
|
+
|
|
941
|
+
```yaml
|
|
942
|
+
Documentation Foundation:
|
|
943
|
+
[context7] Resolve libraries:
|
|
944
|
+
- "@nestjs/passport": ^10.0.3 → docs retrieved
|
|
945
|
+
- "passport-jwt": ^4.0.1 → docs retrieved
|
|
946
|
+
- "bcrypt": ^5.1.1 → docs retrieved
|
|
947
|
+
[microsoft-docs] Check Azure standards:
|
|
948
|
+
- Azure AD B2C integration patterns → retrieved
|
|
949
|
+
- OAuth 2.0 security guidelines → retrieved
|
|
950
|
+
[ref] Fetch internal docs:
|
|
951
|
+
- "Security Standards v2.1" → found
|
|
952
|
+
- "API Authentication Patterns" → found
|
|
953
|
+
Record: "Doc foundation: NestJS v10 + JWT + Azure AD B2C patterns"
|
|
954
|
+
|
|
955
|
+
Pattern Research:
|
|
956
|
+
[exa] Search: "NestJS JWT authentication TDD"
|
|
957
|
+
→ Found: 5 repos with test-first implementations
|
|
958
|
+
→ Best: https://github.com/example/nest-auth-tdd (1.2k stars)
|
|
959
|
+
[exa] Search: "passport JWT testing strategies"
|
|
960
|
+
→ Found: Testing patterns for token validation, expiry, refresh
|
|
961
|
+
[github] Analyze repo:
|
|
962
|
+
→ Existing: `libs/core-auth` (basic guards)
|
|
963
|
+
→ Pattern: All auth modules use `@Injectable()` + strategy pattern
|
|
964
|
+
→ Convention: Tests in `*.spec.ts`, E2E in `*.e2e-spec.ts`
|
|
965
|
+
Record: "Pattern: Strategy pattern + testable services, existing `core-auth` to extend"
|
|
966
|
+
|
|
967
|
+
MECE Validation:
|
|
968
|
+
[nx] Workspace graph:
|
|
969
|
+
→ `libs/auth` dependencies: `libs/core-auth`, `libs/config`
|
|
970
|
+
→ No overlap with `libs/auth-ui` (UI components only)
|
|
971
|
+
→ `apps/api` will depend on `libs/auth`
|
|
972
|
+
[ref] Check codebase:
|
|
973
|
+
→ No existing JWT implementation in workspace
|
|
974
|
+
→ `core-auth` provides base interfaces only
|
|
975
|
+
Record: "Boundary clear: `libs/auth` owns JWT logic, `core-auth` owns interfaces"
|
|
976
|
+
|
|
977
|
+
Metacognitive Check:
|
|
978
|
+
[vibe-check] "What edge cases am I missing?"
|
|
979
|
+
→ Insight: Token refresh strategy not in initial spec
|
|
980
|
+
→ Insight: Rate limiting for auth endpoints not addressed
|
|
981
|
+
→ Insight: Audit logging requirements unclear
|
|
982
|
+
[vibe-check] "What assumptions about security?"
|
|
983
|
+
→ Assumption: HTTPS termination at load balancer (verify with ops)
|
|
984
|
+
→ Assumption: Token stored client-side (confirm with frontend team)
|
|
985
|
+
[vibe-check] "Where could implementation fail?"
|
|
986
|
+
→ Risk: Bcrypt version compatibility across Node.js and Python environments
|
|
987
|
+
→ Mitigation: Pin bcrypt versions in package.json and requirements.txt, add compatibility matrix to documentation
|
|
988
|
+
→ Contingency: Fallback to Argon2 if bcrypt conflicts arise
|
|
989
|
+
|
|
990
|
+
Knowledge Persistence:
|
|
991
|
+
[memory] Store:
|
|
992
|
+
→ Implementation approach: Strategy pattern + JWT + NestJS
|
|
993
|
+
→ Key decisions: Extending core-auth, using passport-jwt, Azure AD B2C integration
|
|
994
|
+
→ Research outcomes: 5 TDD patterns identified, bcrypt compatibility matrix needed
|
|
995
|
+
→ Vibe check insights: Token refresh, rate limiting, audit logging gaps identified
|
|
996
|
+
Record: "Memory updated: Auth service implementation context + decisions stored"
|
|
997
|
+
|
|
998
|
+
```
|
|
999
|
+
|
|
1000
|
+
**📋 Generator-First Plan (Specification-First)**
|
|
1001
|
+
|
|
1002
|
+
- **Existing generator available?** [nx] → Query workspace generators
|
|
1003
|
+
- **Result**: No existing auth generator → Need new specification
|
|
1004
|
+
- **Decision**: Create `libs/auth` generator following established patterns
|
|
1005
|
+
|
|
1006
|
+
**🔬 Generator Specification (MCP-Enhanced)**
|
|
1007
|
+
|
|
1008
|
+
```markdown
|
|
1009
|
+
## Generator Specification: auth-library
|
|
1010
|
+
|
|
1011
|
+
### Authority & Validation
|
|
1012
|
+
|
|
1013
|
+
- [context7] Official Nx generator docs: v18.3+ → patterns validated
|
|
1014
|
+
- [exa] Reference implementations:
|
|
1015
|
+
- https://github.com/nrwl/nx-examples/tree/master/libs/auth (2.1k stars)
|
|
1016
|
+
- https://github.com/nestjs/nest/tree/master/sample/19-auth (5.8k stars)
|
|
1017
|
+
- [ref] JSON Schema validation guides: Nx generator standards applied
|
|
1018
|
+
|
|
1019
|
+
### Purpose & Scope
|
|
1020
|
+
|
|
1021
|
+
Generate NestJS authentication library with JWT strategy, bcrypt integration, and test scaffolding following workspace conventions.
|
|
1022
|
+
|
|
1023
|
+
### Inputs/Parameters
|
|
1024
|
+
|
|
1025
|
+
- `projectName`: Auth library name (validated against workspace naming)
|
|
1026
|
+
- `strategy`: JWT, OAuth2, AzureAD (enum validation)
|
|
1027
|
+
- `database`: TypeORM, Prisma, None (optional, defaults to None)
|
|
1028
|
+
|
|
1029
|
+
### Artifacts Emitted
|
|
1030
|
+
|
|
1031
|
+
- `libs/<projectName>/src/**/*` (TypeScript source)
|
|
1032
|
+
- `libs/<projectName>/test/**/*` (Jest test suites)
|
|
1033
|
+
- `libs/<projectName>/README.md` (generated documentation)
|
|
1034
|
+
|
|
1035
|
+
### Nx Targets & Hooks
|
|
1036
|
+
|
|
1037
|
+
- `test`: Jest unit tests
|
|
1038
|
+
- `lint`: ESLint + Prettier validation
|
|
1039
|
+
- `build`: TypeScript compilation
|
|
1040
|
+
|
|
1041
|
+
### Policy Compliance
|
|
1042
|
+
|
|
1043
|
+
- Links to `.github/instructions/*` and `AGENT.md`
|
|
1044
|
+
- [github] Verify: no conflicts with repo policies
|
|
1045
|
+
|
|
1046
|
+
### Acceptance Tests for Generator
|
|
1047
|
+
|
|
1048
|
+
- [exa] Generator testing patterns: "nx generator test strategies"
|
|
1049
|
+
- Tests: idempotency, parameter validation, file generation
|
|
1050
|
+
|
|
1051
|
+
### Risk Mitigation
|
|
1052
|
+
|
|
1053
|
+
- [vibe-check] "What will break when this generator is misused?"
|
|
1054
|
+
- [memory] recall: past generator misuse patterns
|
|
1055
|
+
|
|
1056
|
+
### MCP Traceability
|
|
1057
|
+
|
|
1058
|
+
- context7 queries: 3 (NestJS, Nx, JWT)
|
|
1059
|
+
- exa searches: 5 (TDD patterns, authentication strategies)
|
|
1060
|
+
- ref lookups: 2 (workspace patterns, security standards)
|
|
1061
|
+
- vibe-check outcomes: 3 (security gaps, implementation risks)
|
|
1062
|
+
```
|
|
1063
|
+
|
|
1064
|
+
**🔴 RED Phase (Test-First with MCP)**
|
|
1065
|
+
|
|
1066
|
+
```yaml
|
|
1067
|
+
Test Framework Selection:
|
|
1068
|
+
[context7] Fetch: Jest testing framework docs for NestJS
|
|
1069
|
+
[exa] Search: "NestJS JWT authentication TDD patterns" + "passport test isolation"
|
|
1070
|
+
[github] Review: existing test conventions in repo → Jest + supertest pattern
|
|
1071
|
+
Decision: Jest + supertest for integration, pure Jest for unit
|
|
1072
|
+
|
|
1073
|
+
Test Design:
|
|
1074
|
+
[ref] Lookup: authentication testing best practices for NestJS
|
|
1075
|
+
[vibe-check] "Are these tests brittle or resilient?" → Focus on behavior, not implementation
|
|
1076
|
+
[vibe-check] "Do these tests verify intent or implementation?" → Intent: security requirements
|
|
1077
|
+
Design: 3 test files + failure scenarios
|
|
1078
|
+
|
|
1079
|
+
Fixture Strategy:
|
|
1080
|
+
[exa] Search: "deterministic JWT test fixtures NestJS"
|
|
1081
|
+
[ref] Fetch: fixture management patterns in workspace
|
|
1082
|
+
Design: namespaced, deterministic fixtures with test utilities
|
|
1083
|
+
```
|
|
1084
|
+
|
|
1085
|
+
**Deliverables:**
|
|
1086
|
+
|
|
1087
|
+
- [ ] Test files: `auth.service.spec.ts`, `auth.controller.spec.ts`, `strategies/jwt.strategy.spec.ts`
|
|
1088
|
+
- [ ] Tests fail for documented reasons: missing implementation, incorrect JWT validation
|
|
1089
|
+
- [ ] `docs/plans/auth-service/TASK-042-RED-PHASE.md` documenting MCP research + expected failures
|
|
1090
|
+
|
|
1091
|
+
**Commands:**
|
|
1092
|
+
|
|
1093
|
+
```bash
|
|
1094
|
+
pnpm nx test libs-auth -- --runTestsByPath auth.service.spec.ts
|
|
1095
|
+
# Expected: 3 failing tests with clear failure reasons
|
|
1096
|
+
```
|
|
1097
|
+
|
|
1098
|
+
**🟢 GREEN Phase (Minimal Implementation)**
|
|
1099
|
+
|
|
1100
|
+
```yaml
|
|
1101
|
+
API Design:
|
|
1102
|
+
[context7] Verify: NestJS authentication patterns against official conventions
|
|
1103
|
+
[ref] Check: JWT strategy implementation patterns for NestJS
|
|
1104
|
+
[vibe-check] "Is this the simplest thing that could work?" → Basic JWT validation only
|
|
1105
|
+
|
|
1106
|
+
Code Patterns:
|
|
1107
|
+
[exa] Search: "minimal JWT authentication NestJS implementation"
|
|
1108
|
+
[github] Review: similar auth implementations in workspace → core-auth pattern
|
|
1109
|
+
[ref] Validate: against style guides → @Injectable + constructor injection
|
|
1110
|
+
|
|
1111
|
+
Integration Points:
|
|
1112
|
+
[nx] Verify: dependency graph remains acyclic → libs/auth → libs/core-auth
|
|
1113
|
+
[github] Check: no breaking changes to dependents → apps/api auth endpoints
|
|
1114
|
+
```
|
|
1115
|
+
|
|
1116
|
+
**Deliverables:**
|
|
1117
|
+
|
|
1118
|
+
- [ ] Minimal JWT auth service passing all tests
|
|
1119
|
+
- [ ] Tests green locally
|
|
1120
|
+
- [ ] `docs/plans/auth-service/TASK-042-GREEN-PHASE.md` documenting implementation + MCP validation
|
|
1121
|
+
|
|
1122
|
+
**Commands:**
|
|
1123
|
+
|
|
1124
|
+
```bash
|
|
1125
|
+
pnpm nx test libs-auth
|
|
1126
|
+
# Expected: All 3 test files pass
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
---
|
|
1130
|
+
|
|
1131
|
+
## Implementation Plan
|
|
1132
|
+
|
|
1133
|
+
### Foundation Setup (2-3 hours)
|
|
1134
|
+
|
|
1135
|
+
- [ ] Execute intelligence gathering ritual with full MCP tool suite
|
|
1136
|
+
- [ ] Validate workspace structure for hexagonal architecture adoption
|
|
1137
|
+
- [ ] Establish baseline test coverage for existing generators
|
|
1138
|
+
|
|
1139
|
+
### Pattern Implementation (4-6 hours)
|
|
1140
|
+
|
|
1141
|
+
- [ ] Implement Unit of Work contracts following TypeScript + Python dual-language patterns
|
|
1142
|
+
- [ ] Create EventBus abstractions with deterministic in-memory adapters for testing
|
|
1143
|
+
- [ ] Develop idempotency enforcement patterns for all Nx generators
|
|
1144
|
+
|
|
1145
|
+
### Integration & Validation (3-4 hours)
|
|
1146
|
+
|
|
1147
|
+
- [ ] Integrate Supabase type generation into existing workflow
|
|
1148
|
+
- [ ] Implement strict TypeScript ↔ Python type synchronization
|
|
1149
|
+
- [ ] Create comprehensive end-to-end integration test suites
|
|
1150
|
+
|
|
1151
|
+
---
|
|
1152
|
+
|
|
1153
|
+
## Testing Checklist
|
|
1154
|
+
|
|
1155
|
+
### Generator Validation
|
|
1156
|
+
|
|
1157
|
+
- [ ] All generators pass double-run idempotency tests (zero diff on second execution)
|
|
1158
|
+
- [ ] Nx boundary enforcement prevents unauthorized cross-project dependencies
|
|
1159
|
+
- [ ] Type synchronization CI workflow maintains consistency across language boundaries
|
|
1160
|
+
|
|
1161
|
+
### Integration Testing
|
|
1162
|
+
|
|
1163
|
+
- [ ] End-to-end workflow tests validate complete user journeys
|
|
1164
|
+
- [ ] Performance benchmarks ensure acceptable build and test execution times
|
|
1165
|
+
- [ ] Security scanning integration identifies potential vulnerabilities in generated code
|
|
1166
|
+
|
|
1167
|
+
### Documentation Compliance
|
|
1168
|
+
|
|
1169
|
+
- [ ] All generated artifacts include proper ADR/PRD/SDS traceability
|
|
1170
|
+
- [ ] Walkthrough examples demonstrate real-world usage scenarios
|
|
1171
|
+
- [ ] MCP tool orchestration logs provide complete audit trails
|
|
1172
|
+
|
|
1173
|
+
---
|
|
1174
|
+
|
|
1175
|
+
**Walkthrough Complete**: This example demonstrates full MCP-orchestrated TDD workflow with complete intelligence gathering, pattern synthesis, and implementation validation. Related ADR/PRD references available in `docs/specs/` directory with full traceability matrix.
|
|
1176
|
+
|
|
1177
|
+
## General Template Guidance
|
|
1178
|
+
|
|
1179
|
+
Use the implementation plan and testing checklist above as the canonical reference. When adapting the flow to new features, clone the structure, adjust scope-specific checklists, and always maintain traceability back to the governing ADR/PRD/SDS entries. The walkthrough demonstrates expected rigor; reuse it as a template rather than duplicating content verbatim.
|
|
1180
|
+
|
|
1181
|
+
```
|
|
1182
|
+
|
|
1183
|
+
```
|