mustflow 1.18.16 → 1.31.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 +28 -8
- package/dist/cli/commands/adapters.js +90 -0
- package/dist/cli/commands/classify.js +3 -4
- package/dist/cli/commands/contract-lint.js +26 -6
- package/dist/cli/commands/dashboard.js +103 -4
- package/dist/cli/commands/explain-verify.js +213 -0
- package/dist/cli/commands/explain.js +48 -4
- package/dist/cli/commands/handoff.js +136 -0
- package/dist/cli/commands/run.js +302 -168
- package/dist/cli/commands/update.js +91 -61
- package/dist/cli/commands/upgrade.js +65 -0
- package/dist/cli/commands/verify.js +304 -139
- package/dist/cli/i18n/en.js +77 -4
- package/dist/cli/i18n/es.js +77 -4
- package/dist/cli/i18n/fr.js +77 -4
- package/dist/cli/i18n/hi.js +77 -4
- package/dist/cli/i18n/ko.js +77 -4
- package/dist/cli/i18n/zh.js +77 -4
- package/dist/cli/index.js +34 -42
- package/dist/cli/lib/command-registry.js +15 -0
- package/dist/cli/lib/dashboard-export.js +775 -0
- package/dist/cli/lib/dashboard-html.js +1 -1
- package/dist/cli/lib/local-index.js +33 -14
- package/dist/cli/lib/reporter.js +6 -0
- package/dist/cli/lib/run-plan.js +239 -0
- package/dist/cli/lib/templates.js +18 -3
- package/dist/cli/lib/update-diff-preview.js +163 -0
- package/dist/cli/lib/validation.js +132 -1
- package/dist/core/adapter-compatibility.js +235 -0
- package/dist/core/bounded-output.js +38 -0
- package/dist/core/change-classification.js +14 -1
- package/dist/core/change-verification.js +246 -5
- package/dist/core/check-issues.js +10 -0
- package/dist/core/command-contract-validation.js +34 -0
- package/dist/core/command-cwd.js +18 -6
- package/dist/core/command-effects.js +13 -0
- package/dist/core/command-env.js +91 -0
- package/dist/core/contract-lint.js +260 -4
- package/dist/core/contract-models.js +172 -0
- package/dist/core/dashboard-verification.js +10 -0
- package/dist/core/doc-review-triage.js +1 -0
- package/dist/core/handoff-record.js +376 -0
- package/dist/core/public-json-contracts.js +23 -0
- package/dist/core/run-performance-history.js +307 -0
- package/dist/core/run-profile.js +87 -0
- package/dist/core/run-receipt.js +217 -11
- package/dist/core/run-write-drift.js +196 -0
- package/dist/core/secret-redaction.js +39 -0
- package/dist/core/skill-route-alignment.js +90 -0
- package/dist/core/source-anchors.js +3 -5
- package/dist/core/test-selection.js +224 -0
- package/dist/core/verification-decision-graph.js +290 -0
- package/dist/core/verification-scheduler.js +96 -2
- package/package.json +3 -1
- package/schemas/README.md +15 -4
- package/schemas/adapter-compatibility-report.schema.json +184 -0
- package/schemas/change-verification-report.schema.json +286 -4
- package/schemas/commands.schema.json +55 -2
- package/schemas/contract-lint-report.schema.json +99 -0
- package/schemas/dashboard-export.schema.json +273 -0
- package/schemas/explain-report.schema.json +267 -2
- package/schemas/handoff-validation-report.schema.json +68 -0
- package/schemas/run-receipt.schema.json +183 -1
- package/templates/default/common/.mustflow/config/commands.toml +3 -1
- package/templates/default/i18n.toml +78 -234
- package/templates/default/locales/en/.mustflow/skills/INDEX.md +7 -3
- package/templates/default/locales/en/.mustflow/skills/architecture-deepening-review/SKILL.md +154 -0
- package/templates/default/locales/en/.mustflow/skills/behavior-preserving-refactor/SKILL.md +8 -3
- package/templates/default/locales/en/.mustflow/skills/code-review/SKILL.md +9 -4
- package/templates/default/locales/en/.mustflow/skills/date-number-audit/SKILL.md +19 -4
- package/templates/default/locales/en/.mustflow/skills/diff-risk-review/SKILL.md +4 -2
- package/templates/default/locales/en/.mustflow/skills/external-skill-intake/SKILL.md +141 -0
- package/templates/default/locales/en/.mustflow/skills/release-notes-authoring/SKILL.md +143 -0
- package/templates/default/locales/en/.mustflow/skills/repro-first-debug/SKILL.md +22 -8
- package/templates/default/locales/en/.mustflow/skills/skill-authoring/SKILL.md +3 -3
- package/templates/default/locales/en/.mustflow/skills/source-freshness-check/SKILL.md +22 -9
- package/templates/default/locales/en/.mustflow/skills/ui-quality-gate/SKILL.md +21 -13
- package/templates/default/locales/en/.mustflow/skills/vertical-slice-tdd/SKILL.md +167 -0
- package/templates/default/manifest.toml +16 -1
- package/templates/default/locales/es/.mustflow/skills/INDEX.md +0 -75
- package/templates/default/locales/es/.mustflow/skills/adapter-boundary/SKILL.md +0 -193
- package/templates/default/locales/es/.mustflow/skills/artifact-integrity-check/SKILL.md +0 -114
- package/templates/default/locales/es/.mustflow/skills/behavior-preserving-refactor/SKILL.md +0 -182
- package/templates/default/locales/es/.mustflow/skills/code-review/SKILL.md +0 -115
- package/templates/default/locales/es/.mustflow/skills/codebase-orientation/SKILL.md +0 -115
- package/templates/default/locales/es/.mustflow/skills/command-pattern/SKILL.md +0 -247
- package/templates/default/locales/es/.mustflow/skills/composition-over-inheritance/SKILL.md +0 -176
- package/templates/default/locales/es/.mustflow/skills/contract-sync-check/SKILL.md +0 -116
- package/templates/default/locales/es/.mustflow/skills/database-change-safety/SKILL.md +0 -155
- package/templates/default/locales/es/.mustflow/skills/date-number-audit/SKILL.md +0 -116
- package/templates/default/locales/es/.mustflow/skills/dependency-injection/SKILL.md +0 -161
- package/templates/default/locales/es/.mustflow/skills/dependency-reality-check/SKILL.md +0 -115
- package/templates/default/locales/es/.mustflow/skills/diff-risk-review/SKILL.md +0 -136
- package/templates/default/locales/es/.mustflow/skills/docs-prose-review/SKILL.md +0 -119
- package/templates/default/locales/es/.mustflow/skills/docs-update/SKILL.md +0 -97
- package/templates/default/locales/es/.mustflow/skills/external-prompt-injection-defense/SKILL.md +0 -116
- package/templates/default/locales/es/.mustflow/skills/facade-pattern/SKILL.md +0 -210
- package/templates/default/locales/es/.mustflow/skills/failure-triage/SKILL.md +0 -97
- package/templates/default/locales/es/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +0 -118
- package/templates/default/locales/es/.mustflow/skills/line-ending-hygiene/SKILL.md +0 -111
- package/templates/default/locales/es/.mustflow/skills/migration-safety-check/SKILL.md +0 -117
- package/templates/default/locales/es/.mustflow/skills/multi-agent-work-coordination/SKILL.md +0 -260
- package/templates/default/locales/es/.mustflow/skills/null-object-pattern/SKILL.md +0 -196
- package/templates/default/locales/es/.mustflow/skills/pattern-scout/SKILL.md +0 -110
- package/templates/default/locales/es/.mustflow/skills/performance-budget-check/SKILL.md +0 -121
- package/templates/default/locales/es/.mustflow/skills/project-context-authoring/SKILL.md +0 -107
- package/templates/default/locales/es/.mustflow/skills/pure-core-imperative-shell/SKILL.md +0 -212
- package/templates/default/locales/es/.mustflow/skills/readme-authoring/SKILL.md +0 -115
- package/templates/default/locales/es/.mustflow/skills/repo-improvement-loop/SKILL.md +0 -150
- package/templates/default/locales/es/.mustflow/skills/repro-first-debug/SKILL.md +0 -112
- package/templates/default/locales/es/.mustflow/skills/requirement-regression-guard/SKILL.md +0 -152
- package/templates/default/locales/es/.mustflow/skills/result-option/SKILL.md +0 -186
- package/templates/default/locales/es/.mustflow/skills/security-privacy-review/SKILL.md +0 -116
- package/templates/default/locales/es/.mustflow/skills/security-regression-tests/SKILL.md +0 -131
- package/templates/default/locales/es/.mustflow/skills/skill-authoring/SKILL.md +0 -110
- package/templates/default/locales/es/.mustflow/skills/source-freshness-check/SKILL.md +0 -111
- package/templates/default/locales/es/.mustflow/skills/state-machine-pattern/SKILL.md +0 -214
- package/templates/default/locales/es/.mustflow/skills/strategy-pattern/SKILL.md +0 -215
- package/templates/default/locales/es/.mustflow/skills/structure-discovery-gate/SKILL.md +0 -159
- package/templates/default/locales/es/.mustflow/skills/test-design-guard/SKILL.md +0 -162
- package/templates/default/locales/es/.mustflow/skills/test-maintenance/SKILL.md +0 -122
- package/templates/default/locales/es/.mustflow/skills/ui-quality-gate/SKILL.md +0 -117
- package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/SKILL.md +0 -127
- package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/assets/review-template.html +0 -286
- package/templates/default/locales/es/.mustflow/skills/visual-review-artifact/resources.toml +0 -7
- package/templates/default/locales/es/.mustflow/skills/web-asset-optimization/SKILL.md +0 -108
- package/templates/default/locales/fr/.mustflow/skills/INDEX.md +0 -75
- package/templates/default/locales/fr/.mustflow/skills/adapter-boundary/SKILL.md +0 -193
- package/templates/default/locales/fr/.mustflow/skills/artifact-integrity-check/SKILL.md +0 -114
- package/templates/default/locales/fr/.mustflow/skills/behavior-preserving-refactor/SKILL.md +0 -182
- package/templates/default/locales/fr/.mustflow/skills/code-review/SKILL.md +0 -115
- package/templates/default/locales/fr/.mustflow/skills/codebase-orientation/SKILL.md +0 -115
- package/templates/default/locales/fr/.mustflow/skills/command-pattern/SKILL.md +0 -247
- package/templates/default/locales/fr/.mustflow/skills/composition-over-inheritance/SKILL.md +0 -176
- package/templates/default/locales/fr/.mustflow/skills/contract-sync-check/SKILL.md +0 -116
- package/templates/default/locales/fr/.mustflow/skills/database-change-safety/SKILL.md +0 -155
- package/templates/default/locales/fr/.mustflow/skills/date-number-audit/SKILL.md +0 -116
- package/templates/default/locales/fr/.mustflow/skills/dependency-injection/SKILL.md +0 -161
- package/templates/default/locales/fr/.mustflow/skills/dependency-reality-check/SKILL.md +0 -115
- package/templates/default/locales/fr/.mustflow/skills/diff-risk-review/SKILL.md +0 -136
- package/templates/default/locales/fr/.mustflow/skills/docs-prose-review/SKILL.md +0 -119
- package/templates/default/locales/fr/.mustflow/skills/docs-update/SKILL.md +0 -97
- package/templates/default/locales/fr/.mustflow/skills/external-prompt-injection-defense/SKILL.md +0 -116
- package/templates/default/locales/fr/.mustflow/skills/facade-pattern/SKILL.md +0 -210
- package/templates/default/locales/fr/.mustflow/skills/failure-triage/SKILL.md +0 -97
- package/templates/default/locales/fr/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +0 -118
- package/templates/default/locales/fr/.mustflow/skills/line-ending-hygiene/SKILL.md +0 -111
- package/templates/default/locales/fr/.mustflow/skills/migration-safety-check/SKILL.md +0 -117
- package/templates/default/locales/fr/.mustflow/skills/multi-agent-work-coordination/SKILL.md +0 -260
- package/templates/default/locales/fr/.mustflow/skills/null-object-pattern/SKILL.md +0 -196
- package/templates/default/locales/fr/.mustflow/skills/pattern-scout/SKILL.md +0 -110
- package/templates/default/locales/fr/.mustflow/skills/performance-budget-check/SKILL.md +0 -121
- package/templates/default/locales/fr/.mustflow/skills/project-context-authoring/SKILL.md +0 -107
- package/templates/default/locales/fr/.mustflow/skills/pure-core-imperative-shell/SKILL.md +0 -212
- package/templates/default/locales/fr/.mustflow/skills/readme-authoring/SKILL.md +0 -115
- package/templates/default/locales/fr/.mustflow/skills/repo-improvement-loop/SKILL.md +0 -150
- package/templates/default/locales/fr/.mustflow/skills/repro-first-debug/SKILL.md +0 -112
- package/templates/default/locales/fr/.mustflow/skills/requirement-regression-guard/SKILL.md +0 -152
- package/templates/default/locales/fr/.mustflow/skills/result-option/SKILL.md +0 -186
- package/templates/default/locales/fr/.mustflow/skills/security-privacy-review/SKILL.md +0 -116
- package/templates/default/locales/fr/.mustflow/skills/security-regression-tests/SKILL.md +0 -131
- package/templates/default/locales/fr/.mustflow/skills/skill-authoring/SKILL.md +0 -110
- package/templates/default/locales/fr/.mustflow/skills/source-freshness-check/SKILL.md +0 -111
- package/templates/default/locales/fr/.mustflow/skills/state-machine-pattern/SKILL.md +0 -214
- package/templates/default/locales/fr/.mustflow/skills/strategy-pattern/SKILL.md +0 -215
- package/templates/default/locales/fr/.mustflow/skills/structure-discovery-gate/SKILL.md +0 -159
- package/templates/default/locales/fr/.mustflow/skills/test-design-guard/SKILL.md +0 -162
- package/templates/default/locales/fr/.mustflow/skills/test-maintenance/SKILL.md +0 -122
- package/templates/default/locales/fr/.mustflow/skills/ui-quality-gate/SKILL.md +0 -117
- package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/SKILL.md +0 -127
- package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/assets/review-template.html +0 -286
- package/templates/default/locales/fr/.mustflow/skills/visual-review-artifact/resources.toml +0 -7
- package/templates/default/locales/fr/.mustflow/skills/web-asset-optimization/SKILL.md +0 -108
- package/templates/default/locales/hi/.mustflow/skills/INDEX.md +0 -75
- package/templates/default/locales/hi/.mustflow/skills/adapter-boundary/SKILL.md +0 -193
- package/templates/default/locales/hi/.mustflow/skills/artifact-integrity-check/SKILL.md +0 -114
- package/templates/default/locales/hi/.mustflow/skills/behavior-preserving-refactor/SKILL.md +0 -182
- package/templates/default/locales/hi/.mustflow/skills/code-review/SKILL.md +0 -115
- package/templates/default/locales/hi/.mustflow/skills/codebase-orientation/SKILL.md +0 -115
- package/templates/default/locales/hi/.mustflow/skills/command-pattern/SKILL.md +0 -247
- package/templates/default/locales/hi/.mustflow/skills/composition-over-inheritance/SKILL.md +0 -176
- package/templates/default/locales/hi/.mustflow/skills/contract-sync-check/SKILL.md +0 -116
- package/templates/default/locales/hi/.mustflow/skills/database-change-safety/SKILL.md +0 -155
- package/templates/default/locales/hi/.mustflow/skills/date-number-audit/SKILL.md +0 -116
- package/templates/default/locales/hi/.mustflow/skills/dependency-injection/SKILL.md +0 -161
- package/templates/default/locales/hi/.mustflow/skills/dependency-reality-check/SKILL.md +0 -115
- package/templates/default/locales/hi/.mustflow/skills/diff-risk-review/SKILL.md +0 -136
- package/templates/default/locales/hi/.mustflow/skills/docs-prose-review/SKILL.md +0 -119
- package/templates/default/locales/hi/.mustflow/skills/docs-update/SKILL.md +0 -97
- package/templates/default/locales/hi/.mustflow/skills/external-prompt-injection-defense/SKILL.md +0 -116
- package/templates/default/locales/hi/.mustflow/skills/facade-pattern/SKILL.md +0 -210
- package/templates/default/locales/hi/.mustflow/skills/failure-triage/SKILL.md +0 -97
- package/templates/default/locales/hi/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +0 -118
- package/templates/default/locales/hi/.mustflow/skills/line-ending-hygiene/SKILL.md +0 -111
- package/templates/default/locales/hi/.mustflow/skills/migration-safety-check/SKILL.md +0 -117
- package/templates/default/locales/hi/.mustflow/skills/multi-agent-work-coordination/SKILL.md +0 -260
- package/templates/default/locales/hi/.mustflow/skills/null-object-pattern/SKILL.md +0 -196
- package/templates/default/locales/hi/.mustflow/skills/pattern-scout/SKILL.md +0 -110
- package/templates/default/locales/hi/.mustflow/skills/performance-budget-check/SKILL.md +0 -121
- package/templates/default/locales/hi/.mustflow/skills/project-context-authoring/SKILL.md +0 -107
- package/templates/default/locales/hi/.mustflow/skills/pure-core-imperative-shell/SKILL.md +0 -212
- package/templates/default/locales/hi/.mustflow/skills/readme-authoring/SKILL.md +0 -115
- package/templates/default/locales/hi/.mustflow/skills/repo-improvement-loop/SKILL.md +0 -150
- package/templates/default/locales/hi/.mustflow/skills/repro-first-debug/SKILL.md +0 -112
- package/templates/default/locales/hi/.mustflow/skills/requirement-regression-guard/SKILL.md +0 -152
- package/templates/default/locales/hi/.mustflow/skills/result-option/SKILL.md +0 -186
- package/templates/default/locales/hi/.mustflow/skills/security-privacy-review/SKILL.md +0 -116
- package/templates/default/locales/hi/.mustflow/skills/security-regression-tests/SKILL.md +0 -131
- package/templates/default/locales/hi/.mustflow/skills/skill-authoring/SKILL.md +0 -110
- package/templates/default/locales/hi/.mustflow/skills/source-freshness-check/SKILL.md +0 -111
- package/templates/default/locales/hi/.mustflow/skills/state-machine-pattern/SKILL.md +0 -214
- package/templates/default/locales/hi/.mustflow/skills/strategy-pattern/SKILL.md +0 -215
- package/templates/default/locales/hi/.mustflow/skills/structure-discovery-gate/SKILL.md +0 -159
- package/templates/default/locales/hi/.mustflow/skills/test-design-guard/SKILL.md +0 -162
- package/templates/default/locales/hi/.mustflow/skills/test-maintenance/SKILL.md +0 -122
- package/templates/default/locales/hi/.mustflow/skills/ui-quality-gate/SKILL.md +0 -117
- package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/SKILL.md +0 -127
- package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/assets/review-template.html +0 -286
- package/templates/default/locales/hi/.mustflow/skills/visual-review-artifact/resources.toml +0 -7
- package/templates/default/locales/hi/.mustflow/skills/web-asset-optimization/SKILL.md +0 -108
- package/templates/default/locales/ko/.mustflow/skills/INDEX.md +0 -80
- package/templates/default/locales/ko/.mustflow/skills/adapter-boundary/SKILL.md +0 -193
- package/templates/default/locales/ko/.mustflow/skills/artifact-integrity-check/SKILL.md +0 -114
- package/templates/default/locales/ko/.mustflow/skills/behavior-preserving-refactor/SKILL.md +0 -182
- package/templates/default/locales/ko/.mustflow/skills/code-review/SKILL.md +0 -118
- package/templates/default/locales/ko/.mustflow/skills/codebase-orientation/SKILL.md +0 -115
- package/templates/default/locales/ko/.mustflow/skills/command-pattern/SKILL.md +0 -247
- package/templates/default/locales/ko/.mustflow/skills/composition-over-inheritance/SKILL.md +0 -176
- package/templates/default/locales/ko/.mustflow/skills/contract-sync-check/SKILL.md +0 -116
- package/templates/default/locales/ko/.mustflow/skills/database-change-safety/SKILL.md +0 -155
- package/templates/default/locales/ko/.mustflow/skills/date-number-audit/SKILL.md +0 -116
- package/templates/default/locales/ko/.mustflow/skills/dependency-injection/SKILL.md +0 -161
- package/templates/default/locales/ko/.mustflow/skills/dependency-reality-check/SKILL.md +0 -115
- package/templates/default/locales/ko/.mustflow/skills/diff-risk-review/SKILL.md +0 -136
- package/templates/default/locales/ko/.mustflow/skills/docs-prose-review/SKILL.md +0 -119
- package/templates/default/locales/ko/.mustflow/skills/docs-update/SKILL.md +0 -107
- package/templates/default/locales/ko/.mustflow/skills/external-prompt-injection-defense/SKILL.md +0 -116
- package/templates/default/locales/ko/.mustflow/skills/facade-pattern/SKILL.md +0 -210
- package/templates/default/locales/ko/.mustflow/skills/failure-triage/SKILL.md +0 -119
- package/templates/default/locales/ko/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +0 -118
- package/templates/default/locales/ko/.mustflow/skills/line-ending-hygiene/SKILL.md +0 -111
- package/templates/default/locales/ko/.mustflow/skills/migration-safety-check/SKILL.md +0 -117
- package/templates/default/locales/ko/.mustflow/skills/multi-agent-work-coordination/SKILL.md +0 -259
- package/templates/default/locales/ko/.mustflow/skills/null-object-pattern/SKILL.md +0 -196
- package/templates/default/locales/ko/.mustflow/skills/pattern-scout/SKILL.md +0 -110
- package/templates/default/locales/ko/.mustflow/skills/performance-budget-check/SKILL.md +0 -121
- package/templates/default/locales/ko/.mustflow/skills/project-context-authoring/SKILL.md +0 -107
- package/templates/default/locales/ko/.mustflow/skills/pure-core-imperative-shell/SKILL.md +0 -212
- package/templates/default/locales/ko/.mustflow/skills/readme-authoring/SKILL.md +0 -115
- package/templates/default/locales/ko/.mustflow/skills/repo-improvement-loop/SKILL.md +0 -150
- package/templates/default/locales/ko/.mustflow/skills/repro-first-debug/SKILL.md +0 -112
- package/templates/default/locales/ko/.mustflow/skills/requirement-regression-guard/SKILL.md +0 -152
- package/templates/default/locales/ko/.mustflow/skills/result-option/SKILL.md +0 -186
- package/templates/default/locales/ko/.mustflow/skills/security-privacy-review/SKILL.md +0 -116
- package/templates/default/locales/ko/.mustflow/skills/security-regression-tests/SKILL.md +0 -131
- package/templates/default/locales/ko/.mustflow/skills/skill-authoring/SKILL.md +0 -110
- package/templates/default/locales/ko/.mustflow/skills/source-freshness-check/SKILL.md +0 -111
- package/templates/default/locales/ko/.mustflow/skills/state-machine-pattern/SKILL.md +0 -214
- package/templates/default/locales/ko/.mustflow/skills/strategy-pattern/SKILL.md +0 -215
- package/templates/default/locales/ko/.mustflow/skills/structure-discovery-gate/SKILL.md +0 -159
- package/templates/default/locales/ko/.mustflow/skills/test-design-guard/SKILL.md +0 -162
- package/templates/default/locales/ko/.mustflow/skills/test-maintenance/SKILL.md +0 -130
- package/templates/default/locales/ko/.mustflow/skills/ui-quality-gate/SKILL.md +0 -117
- package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/SKILL.md +0 -127
- package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/assets/review-template.html +0 -286
- package/templates/default/locales/ko/.mustflow/skills/visual-review-artifact/resources.toml +0 -7
- package/templates/default/locales/ko/.mustflow/skills/web-asset-optimization/SKILL.md +0 -108
- package/templates/default/locales/zh/.mustflow/skills/INDEX.md +0 -74
- package/templates/default/locales/zh/.mustflow/skills/adapter-boundary/SKILL.md +0 -193
- package/templates/default/locales/zh/.mustflow/skills/artifact-integrity-check/SKILL.md +0 -114
- package/templates/default/locales/zh/.mustflow/skills/behavior-preserving-refactor/SKILL.md +0 -182
- package/templates/default/locales/zh/.mustflow/skills/code-review/SKILL.md +0 -115
- package/templates/default/locales/zh/.mustflow/skills/codebase-orientation/SKILL.md +0 -115
- package/templates/default/locales/zh/.mustflow/skills/command-pattern/SKILL.md +0 -247
- package/templates/default/locales/zh/.mustflow/skills/composition-over-inheritance/SKILL.md +0 -176
- package/templates/default/locales/zh/.mustflow/skills/contract-sync-check/SKILL.md +0 -116
- package/templates/default/locales/zh/.mustflow/skills/database-change-safety/SKILL.md +0 -155
- package/templates/default/locales/zh/.mustflow/skills/date-number-audit/SKILL.md +0 -116
- package/templates/default/locales/zh/.mustflow/skills/dependency-injection/SKILL.md +0 -161
- package/templates/default/locales/zh/.mustflow/skills/dependency-reality-check/SKILL.md +0 -115
- package/templates/default/locales/zh/.mustflow/skills/diff-risk-review/SKILL.md +0 -136
- package/templates/default/locales/zh/.mustflow/skills/docs-prose-review/SKILL.md +0 -119
- package/templates/default/locales/zh/.mustflow/skills/docs-update/SKILL.md +0 -97
- package/templates/default/locales/zh/.mustflow/skills/external-prompt-injection-defense/SKILL.md +0 -116
- package/templates/default/locales/zh/.mustflow/skills/facade-pattern/SKILL.md +0 -210
- package/templates/default/locales/zh/.mustflow/skills/failure-triage/SKILL.md +0 -96
- package/templates/default/locales/zh/.mustflow/skills/instruction-conflict-scope-check/SKILL.md +0 -118
- package/templates/default/locales/zh/.mustflow/skills/line-ending-hygiene/SKILL.md +0 -111
- package/templates/default/locales/zh/.mustflow/skills/migration-safety-check/SKILL.md +0 -117
- package/templates/default/locales/zh/.mustflow/skills/multi-agent-work-coordination/SKILL.md +0 -260
- package/templates/default/locales/zh/.mustflow/skills/null-object-pattern/SKILL.md +0 -196
- package/templates/default/locales/zh/.mustflow/skills/pattern-scout/SKILL.md +0 -110
- package/templates/default/locales/zh/.mustflow/skills/performance-budget-check/SKILL.md +0 -121
- package/templates/default/locales/zh/.mustflow/skills/project-context-authoring/SKILL.md +0 -107
- package/templates/default/locales/zh/.mustflow/skills/pure-core-imperative-shell/SKILL.md +0 -212
- package/templates/default/locales/zh/.mustflow/skills/readme-authoring/SKILL.md +0 -115
- package/templates/default/locales/zh/.mustflow/skills/repo-improvement-loop/SKILL.md +0 -150
- package/templates/default/locales/zh/.mustflow/skills/repro-first-debug/SKILL.md +0 -112
- package/templates/default/locales/zh/.mustflow/skills/requirement-regression-guard/SKILL.md +0 -152
- package/templates/default/locales/zh/.mustflow/skills/result-option/SKILL.md +0 -186
- package/templates/default/locales/zh/.mustflow/skills/security-privacy-review/SKILL.md +0 -116
- package/templates/default/locales/zh/.mustflow/skills/security-regression-tests/SKILL.md +0 -131
- package/templates/default/locales/zh/.mustflow/skills/skill-authoring/SKILL.md +0 -110
- package/templates/default/locales/zh/.mustflow/skills/source-freshness-check/SKILL.md +0 -111
- package/templates/default/locales/zh/.mustflow/skills/state-machine-pattern/SKILL.md +0 -214
- package/templates/default/locales/zh/.mustflow/skills/strategy-pattern/SKILL.md +0 -215
- package/templates/default/locales/zh/.mustflow/skills/structure-discovery-gate/SKILL.md +0 -159
- package/templates/default/locales/zh/.mustflow/skills/test-design-guard/SKILL.md +0 -162
- package/templates/default/locales/zh/.mustflow/skills/test-maintenance/SKILL.md +0 -122
- package/templates/default/locales/zh/.mustflow/skills/ui-quality-gate/SKILL.md +0 -117
- package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/SKILL.md +0 -127
- package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/assets/review-template.html +0 -286
- package/templates/default/locales/zh/.mustflow/skills/visual-review-artifact/resources.toml +0 -7
- package/templates/default/locales/zh/.mustflow/skills/web-asset-optimization/SKILL.md +0 -108
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
mustflow_doc: skill.database-change-safety
|
|
3
|
-
locale: fr
|
|
4
|
-
canonical: false
|
|
5
|
-
revision: 1
|
|
6
|
-
lifecycle: mustflow-owned
|
|
7
|
-
authority: procedure
|
|
8
|
-
name: database-change-safety
|
|
9
|
-
description: Apply this skill when database schema, queries, transactions, ORM models, repositories, stores, indexes, cache-backed read models, retention, pagination, concurrency, idempotency, audit logs, or persistence boundaries are introduced, changed, reviewed, or reported.
|
|
10
|
-
metadata:
|
|
11
|
-
mustflow_schema: "1"
|
|
12
|
-
mustflow_kind: procedure
|
|
13
|
-
pack_id: mustflow.core
|
|
14
|
-
skill_id: mustflow.core.database-change-safety
|
|
15
|
-
command_intents:
|
|
16
|
-
- changes_status
|
|
17
|
-
- changes_diff_summary
|
|
18
|
-
- test_related
|
|
19
|
-
- test
|
|
20
|
-
- lint
|
|
21
|
-
- build
|
|
22
|
-
- docs_validate_fast
|
|
23
|
-
- test_release
|
|
24
|
-
- mustflow_check
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
# Database Change Safety
|
|
28
|
-
|
|
29
|
-
<!-- mustflow-section: purpose -->
|
|
30
|
-
## Purpose
|
|
31
|
-
|
|
32
|
-
Keep database-backed behavior explicit, scoped, recoverable where possible, and verifiable without treating database rows, ORM models, generated caches, or read models as domain truth.
|
|
33
|
-
|
|
34
|
-
Use the smallest persistence boundary that proves the risk. Do not introduce repositories, services, transactions, migrations, outbox machinery, or read models when a direct scoped query or fixture update is enough.
|
|
35
|
-
|
|
36
|
-
<!-- mustflow-section: use-when -->
|
|
37
|
-
## Use When
|
|
38
|
-
|
|
39
|
-
- A schema, migration, table, collection, ORM model, query, repository, store, transaction, index, cache, read model, audit log, or retention rule is introduced or changed.
|
|
40
|
-
- Code reads from or writes to a database, browser storage, cache, local SQLite file, external database, or generated data store.
|
|
41
|
-
- A task changes authorization, tenant scoping, pagination, sorting, soft delete, status filters, idempotency, duplicate handling, retry, or concurrency behavior around persisted data.
|
|
42
|
-
- Documentation, tests, or final reports claim that a database change is safe, fast, indexed, migrated, reversible, idempotent, or verified.
|
|
43
|
-
|
|
44
|
-
<!-- mustflow-section: do-not-use-when -->
|
|
45
|
-
## Do Not Use When
|
|
46
|
-
|
|
47
|
-
- The change is pure in-memory logic with no persisted, cached, indexed, or generated state.
|
|
48
|
-
- The task only changes external protocol mapping and no database-backed state; use `adapter-boundary`.
|
|
49
|
-
- The task only changes file or template migration behavior and no database or persistence surface; use `migration-safety-check`.
|
|
50
|
-
- The change only documents general database advice without touching or claiming project behavior.
|
|
51
|
-
|
|
52
|
-
<!-- mustflow-section: required-inputs -->
|
|
53
|
-
## Required Inputs
|
|
54
|
-
|
|
55
|
-
- Database role: source of truth, rebuildable cache, read model, runtime state, analytics store, external provider, or browser storage.
|
|
56
|
-
- Data owner and affected tables, collections, stores, indexes, caches, generated files, or read models.
|
|
57
|
-
- Read and write paths, query or ORM behavior, authorization scope, tenant or user scope, and retention expectations.
|
|
58
|
-
- Transaction boundary, idempotency, retry, duplicate-delivery, concurrency, migration, rollback, or rebuild expectations.
|
|
59
|
-
- Local database, ORM, repository, fixture, migration, cache, and test patterns.
|
|
60
|
-
- Relevant command-intent contract entries for tests, builds, docs, release checks, and mustflow validation.
|
|
61
|
-
|
|
62
|
-
<!-- mustflow-section: preconditions -->
|
|
63
|
-
## Preconditions
|
|
64
|
-
|
|
65
|
-
- The task matches the Use When conditions and does not match the Do Not Use When exclusions.
|
|
66
|
-
- Required inputs are available, or missing inputs can be reported without guessing.
|
|
67
|
-
- Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
|
|
68
|
-
- If database clients, ORM types, rows, browser storage, cache values, or provider data cross into core logic, also use `adapter-boundary`.
|
|
69
|
-
- If hidden construction or global lookup creates the database dependency, also use `dependency-injection`.
|
|
70
|
-
- If schema, data, cache, or generated state changes must move from an old state to a new state, also use `migration-safety-check`.
|
|
71
|
-
- If personal data, authentication, authorization, retention, logs, telemetry, or secret-like values are involved, also use `security-privacy-review`.
|
|
72
|
-
- If index, query-time, startup, package-size, search, count, or read-model performance claims are involved, also use `performance-budget-check`.
|
|
73
|
-
|
|
74
|
-
<!-- mustflow-section: allowed-edits -->
|
|
75
|
-
## Allowed Edits
|
|
76
|
-
|
|
77
|
-
- Update schema, query, repository, store, transaction, index, cache, read-model, fixture, test, documentation, and directly synchronized template surfaces tied to the task.
|
|
78
|
-
- Add or tighten constraints, scoping, pagination, ordering, idempotency keys, concurrency guards, retention checks, and redaction behavior when the changed surface justifies it.
|
|
79
|
-
- Mark rollback, migration, performance, privacy, or concurrency gaps as unverified when they cannot be proven.
|
|
80
|
-
- Do not expose database rows, ORM models, query builders, or provider clients as domain objects.
|
|
81
|
-
- Do not treat generated caches or read models as source of truth.
|
|
82
|
-
- Do not add broad repository methods that accept arbitrary filters unless authorization, tenant scope, and caller ownership are explicit.
|
|
83
|
-
- Do not call external APIs inside a database transaction unless a local rule explicitly accepts the coupling and a recovery path exists.
|
|
84
|
-
- Do not store raw logs, secrets, hidden reasoning, full transcripts, unnecessary provider payloads, or unbounded personal data in local state or caches.
|
|
85
|
-
|
|
86
|
-
<!-- mustflow-section: procedure -->
|
|
87
|
-
## Procedure
|
|
88
|
-
|
|
89
|
-
1. Classify the database role.
|
|
90
|
-
- Source of truth: owns current business state.
|
|
91
|
-
- Rebuildable cache: can be deleted and regenerated from files, provider data, or another source.
|
|
92
|
-
- Read model: derived for lookup, search, reporting, or dashboard use.
|
|
93
|
-
- Runtime state: coordinates in-flight work, locks, sessions, jobs, or retries.
|
|
94
|
-
- Analytics store, external provider, or browser storage: owned outside the core domain boundary.
|
|
95
|
-
2. Identify the data owner and derived surfaces. Name which table, file, provider, event log, configuration, or generated artifact owns each value.
|
|
96
|
-
3. Check schema shape: primary keys, foreign keys, unique constraints, nullable fields, defaults, check constraints, status values, timestamps, soft delete fields, tenant scope, audit fields, and retention rules.
|
|
97
|
-
4. Check query semantics: authorization scope, tenant or user scope, role or visibility filters, deleted or archived rows, draft or unpublished rows, effective dates, null handling, stale-data behavior, and error or absence handling.
|
|
98
|
-
5. Check pagination and ordering. Lists need deterministic ordering; cursor pagination needs a stable tie breaker such as a unique id in addition to a timestamp.
|
|
99
|
-
6. Check transaction boundaries. Keep database writes and external side effects separate by default; use explicit states, an outbox, an action ledger, or reconciliation when both must be coordinated.
|
|
100
|
-
7. Check idempotency, retries, duplicate delivery, and concurrency. Look for webhook duplicates, job retries, import reruns, payment callbacks, optimistic locks, compare-and-swap updates, unique-constraint races, and double state transitions.
|
|
101
|
-
8. Check indexes and workload cost. Match indexes to `WHERE`, `JOIN`, `ORDER BY`, and `GROUP BY` behavior, but account for write cost. Look for N+1 queries, expensive counts, full scans, materialized read-model needs, and search-index boundaries.
|
|
102
|
-
9. Check privacy and retention. Prefer omission or bounded metadata over storing raw payloads. Do not persist secrets, hidden reasoning, full transcripts, unbounded logs, or personal data without a clear product rule and retention path.
|
|
103
|
-
10. Check migration, rollback, and rebuild paths. If a migration claim exists, prove idempotency and recovery with `migration-safety-check` or report the gap. If the store is a cache, name the rebuild source and stale-index detection.
|
|
104
|
-
11. Check tests and fixtures. Reuse or add repository/store tests, migration fixtures, query fixtures, adapter fixtures, permission regressions, idempotency or concurrency regressions, and cache rebuild checks as justified by the risk.
|
|
105
|
-
12. Verify and report. Separate proven behavior from unverified rollback, migration, privacy, performance, live-data, or concurrency risks.
|
|
106
|
-
|
|
107
|
-
<!-- mustflow-section: postconditions -->
|
|
108
|
-
## Postconditions
|
|
109
|
-
|
|
110
|
-
- The database role and source of truth are explicit.
|
|
111
|
-
- Database rows, ORM models, generated caches, and read models do not leak into domain truth unless the local architecture intentionally owns that boundary.
|
|
112
|
-
- Queries preserve authorization, tenant or user scope, deterministic ordering, expected absence behavior, and retention rules.
|
|
113
|
-
- Transaction, external side effect, idempotency, duplicate, retry, and concurrency decisions are intentional and reported.
|
|
114
|
-
- Index, query-cost, migration, rollback, rebuild, privacy, and verification claims are tied to evidence or marked as unverified.
|
|
115
|
-
|
|
116
|
-
<!-- mustflow-section: verification -->
|
|
117
|
-
## Verification
|
|
118
|
-
|
|
119
|
-
Use configured oneshot command intents when available:
|
|
120
|
-
|
|
121
|
-
- `changes_status`
|
|
122
|
-
- `changes_diff_summary`
|
|
123
|
-
- `test_related`
|
|
124
|
-
- `test`
|
|
125
|
-
- `lint`
|
|
126
|
-
- `build`
|
|
127
|
-
- `docs_validate_fast`
|
|
128
|
-
- `test_release`
|
|
129
|
-
- `mustflow_check`
|
|
130
|
-
|
|
131
|
-
Prefer the narrowest configured test, build, docs, release, or mustflow intent that proves the changed persistence surface. Do not infer raw database, migration, package, or benchmark commands.
|
|
132
|
-
|
|
133
|
-
<!-- mustflow-section: failure-handling -->
|
|
134
|
-
## Failure Handling
|
|
135
|
-
|
|
136
|
-
- If the source of truth is unclear, stop changing persistence behavior and report the competing owners.
|
|
137
|
-
- If authorization, tenant scope, soft delete, or retention behavior cannot be confirmed, fail closed or report the missing project rule.
|
|
138
|
-
- If rollback, migration idempotency, rebuild, or stale-cache detection cannot be proven, avoid claiming safety and name the remaining recovery risk.
|
|
139
|
-
- If a performance claim lacks a configured measurement path, report it as unmeasured instead of inventing a budget.
|
|
140
|
-
- If sensitive data appears in queries, fixtures, logs, generated state, package contents, or final output, route that surface through `security-privacy-review` before continuing.
|
|
141
|
-
- If the safest fix would require live data access, destructive migration, dependency installation, or unavailable credentials, stop at that boundary and report the skipped check.
|
|
142
|
-
|
|
143
|
-
<!-- mustflow-section: output-format -->
|
|
144
|
-
## Output Format
|
|
145
|
-
|
|
146
|
-
- Database role and owner
|
|
147
|
-
- Affected read and write paths
|
|
148
|
-
- Schema, constraint, and query semantics reviewed
|
|
149
|
-
- Authorization, tenant scope, retention, and privacy checks
|
|
150
|
-
- Transaction, idempotency, retry, and concurrency decisions
|
|
151
|
-
- Index, pagination, and performance notes
|
|
152
|
-
- Migration, rollback, dry-run, rebuild, or compatibility status
|
|
153
|
-
- Tests, fixtures, or verification command intents run
|
|
154
|
-
- Skipped checks and reasons
|
|
155
|
-
- Remaining database risk
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
mustflow_doc: skill.date-number-audit
|
|
3
|
-
locale: fr
|
|
4
|
-
canonical: false
|
|
5
|
-
revision: 1
|
|
6
|
-
lifecycle: mustflow-owned
|
|
7
|
-
authority: procedure
|
|
8
|
-
name: date-number-audit
|
|
9
|
-
description: Apply this skill when a task creates, edits, or reports dates, versions, counts, durations, limits, metrics, benchmarks, prices, percentages, or other numeric facts.
|
|
10
|
-
metadata:
|
|
11
|
-
mustflow_schema: "1"
|
|
12
|
-
mustflow_kind: procedure
|
|
13
|
-
pack_id: mustflow.core
|
|
14
|
-
skill_id: mustflow.core.date-number-audit
|
|
15
|
-
command_intents:
|
|
16
|
-
- changes_status
|
|
17
|
-
- changes_diff_summary
|
|
18
|
-
- docs_validate_fast
|
|
19
|
-
- test_release
|
|
20
|
-
- mustflow_check
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
# Date and Number Audit
|
|
24
|
-
|
|
25
|
-
<!-- mustflow-section: purpose -->
|
|
26
|
-
## Purpose
|
|
27
|
-
|
|
28
|
-
Prevent code, docs, tests, and final reports from inventing, copying stale, or mis-synchronizing dates and numeric facts.
|
|
29
|
-
|
|
30
|
-
<!-- mustflow-section: use-when -->
|
|
31
|
-
## Use When
|
|
32
|
-
|
|
33
|
-
- A change adds, edits, removes, or reports a date, deadline, release version, count, duration, timeout, limit, quota, size, percentage, price, benchmark, score, coverage value, or generated-file total.
|
|
34
|
-
- Documentation summarizes how many commands, files, pages, templates, locales, tests, checks, or supported items exist.
|
|
35
|
-
- A final report or user-facing message depends on a number that may drift after code, template, package, docs, or generated-output changes.
|
|
36
|
-
- A failing check suggests a stale revision, mismatched version, wrong count, outdated date, or inconsistent numeric threshold.
|
|
37
|
-
|
|
38
|
-
<!-- mustflow-section: do-not-use-when -->
|
|
39
|
-
## Do Not Use When
|
|
40
|
-
|
|
41
|
-
- The number is a local variable, loop index, enum value, or test fixture with no public or cross-file meaning.
|
|
42
|
-
- The task only preserves existing numeric text without relying on it.
|
|
43
|
-
- A specialized skill for release versioning, dependency reality, artifact integrity, or source freshness is the narrower match.
|
|
44
|
-
|
|
45
|
-
<!-- mustflow-section: required-inputs -->
|
|
46
|
-
## Required Inputs
|
|
47
|
-
|
|
48
|
-
- The date or numeric fact and every surface that states, derives, or validates it.
|
|
49
|
-
- The source of truth for the value, such as package metadata, template metadata, schema, code constant, generated output, test assertion, or current command result.
|
|
50
|
-
- The acceptable precision and wording when a value is approximate, sampled, local-only, or time-sensitive.
|
|
51
|
-
- Relevant command-intent contract entries for docs, packaging, build, or mustflow validation.
|
|
52
|
-
|
|
53
|
-
<!-- mustflow-section: preconditions -->
|
|
54
|
-
## Preconditions
|
|
55
|
-
|
|
56
|
-
- The task matches the Use When conditions and does not match the Do Not Use When exclusions.
|
|
57
|
-
- Required inputs are available, or missing inputs can be reported without guessing.
|
|
58
|
-
- Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
|
|
59
|
-
|
|
60
|
-
<!-- mustflow-section: allowed-edits -->
|
|
61
|
-
## Allowed Edits
|
|
62
|
-
|
|
63
|
-
- Align dates and numeric facts across source files, generated metadata, tests, documentation, and final reports.
|
|
64
|
-
- Replace exact numbers with bounded or source-linked wording when exactness is not stable.
|
|
65
|
-
- Do not invent a number to make a document feel complete.
|
|
66
|
-
- Do not change behavior thresholds, timeouts, limits, or release versions unless the task and source of truth support the change.
|
|
67
|
-
|
|
68
|
-
<!-- mustflow-section: procedure -->
|
|
69
|
-
## Procedure
|
|
70
|
-
|
|
71
|
-
1. List the date or numeric facts that the task creates, edits, or reports.
|
|
72
|
-
2. Identify the source of truth for each value before changing dependent surfaces.
|
|
73
|
-
3. Search related code, templates, docs, schemas, tests, and generated metadata for duplicate statements of the same value.
|
|
74
|
-
4. Update dependent surfaces from the source of truth, or mark the value as approximate, local, sampled, or unverified when exact verification is unavailable.
|
|
75
|
-
5. Keep version numbers, template revisions, schema revisions, locale source revisions, package assertions, and public examples synchronized.
|
|
76
|
-
6. Prefer phrasing such as "about", "currently", "at the time of this check", or "from the latest generated output" only when that uncertainty is true and useful.
|
|
77
|
-
7. Run the narrowest configured verification that proves the value and dependent surfaces still agree.
|
|
78
|
-
|
|
79
|
-
<!-- mustflow-section: postconditions -->
|
|
80
|
-
## Postconditions
|
|
81
|
-
|
|
82
|
-
- Every public or cross-file date and numeric fact has a named source of truth or an explicit uncertainty note.
|
|
83
|
-
- Tests and metadata that assert numbers are synchronized with the changed source.
|
|
84
|
-
- The final report names any values that were intentionally left approximate or unverified.
|
|
85
|
-
|
|
86
|
-
<!-- mustflow-section: verification -->
|
|
87
|
-
## Verification
|
|
88
|
-
|
|
89
|
-
Use configured oneshot command intents when available:
|
|
90
|
-
|
|
91
|
-
- `changes_status`
|
|
92
|
-
- `changes_diff_summary`
|
|
93
|
-
- `docs_validate_fast`
|
|
94
|
-
- `test_release`
|
|
95
|
-
- `mustflow_check`
|
|
96
|
-
|
|
97
|
-
Use a narrower configured test, build, or docs intent when it better proves the changed numeric surface.
|
|
98
|
-
|
|
99
|
-
<!-- mustflow-section: failure-handling -->
|
|
100
|
-
## Failure Handling
|
|
101
|
-
|
|
102
|
-
- If two sources disagree, do not guess. Identify the higher-authority source or report the conflict.
|
|
103
|
-
- If a value depends on time, network state, package registry state, generated output, or external data that was not refreshed, state that boundary.
|
|
104
|
-
- If an exact number is unnecessary and expensive to keep current, rewrite the statement to avoid brittle precision.
|
|
105
|
-
- If changing a number affects behavior, activate the relevant code, test, release, or dependency skill before continuing.
|
|
106
|
-
|
|
107
|
-
<!-- mustflow-section: output-format -->
|
|
108
|
-
## Output Format
|
|
109
|
-
|
|
110
|
-
- Dates or numeric facts audited
|
|
111
|
-
- Source of truth for each value
|
|
112
|
-
- Surfaces synchronized
|
|
113
|
-
- Exact values changed or made approximate
|
|
114
|
-
- Command intents run
|
|
115
|
-
- Skipped checks and reasons
|
|
116
|
-
- Remaining date or numeric risk
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
mustflow_doc: skill.dependency-injection
|
|
3
|
-
locale: fr
|
|
4
|
-
canonical: false
|
|
5
|
-
revision: 3
|
|
6
|
-
lifecycle: mustflow-owned
|
|
7
|
-
authority: procedure
|
|
8
|
-
name: dependency-injection
|
|
9
|
-
description: Apply this skill when core or application logic creates, imports, resolves, or hides external dependencies such as databases, APIs, SDKs, filesystems, clocks, random generators, identifiers, loggers, configuration, framework request objects, AI clients, queues, or payment/email providers.
|
|
10
|
-
metadata:
|
|
11
|
-
mustflow_schema: "1"
|
|
12
|
-
mustflow_kind: procedure
|
|
13
|
-
pack_id: mustflow.core
|
|
14
|
-
skill_id: mustflow.core.dependency-injection
|
|
15
|
-
command_intents:
|
|
16
|
-
- changes_status
|
|
17
|
-
- changes_diff_summary
|
|
18
|
-
- test_related
|
|
19
|
-
- test
|
|
20
|
-
- lint
|
|
21
|
-
- build
|
|
22
|
-
- docs_validate_fast
|
|
23
|
-
- test_release
|
|
24
|
-
- mustflow_check
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
# Dependency Injection
|
|
28
|
-
|
|
29
|
-
<!-- mustflow-section: purpose -->
|
|
30
|
-
## Purpose
|
|
31
|
-
|
|
32
|
-
Keep business logic from creating, finding, or importing the tools it needs. External-world objects belong at assembly boundaries; core logic receives narrow ports, explicit values, or request context from the outside.
|
|
33
|
-
|
|
34
|
-
Dependency injection is not an abstraction quota. Use it to keep replaceable infrastructure, hidden global state, and side effects from leaking into domain and use-case code.
|
|
35
|
-
|
|
36
|
-
<!-- mustflow-section: use-when -->
|
|
37
|
-
## Use When
|
|
38
|
-
|
|
39
|
-
- Core, domain, application, service, or use-case code directly constructs a database client, external SDK, queue, file storage, logger, clock, random generator, identifier generator, AI model client, email sender, payment gateway, HTTP client, or framework object.
|
|
40
|
-
- Code reads `process.env`, current time, random values, UUIDs, files, local storage, global containers, or global loggers away from the assembly boundary.
|
|
41
|
-
- A refactor aims to make behavior easier to test without real databases, network calls, API keys, filesystem writes, current time, or random identifiers.
|
|
42
|
-
- New ports, adapters, provider modules, transaction runners, or composition roots are being introduced.
|
|
43
|
-
- A function's signature hides required collaborators or accepts broad technical objects instead of the narrow capability it actually needs.
|
|
44
|
-
- An optional collaborator should be wired as a real implementation or a safe null, no-op, disabled, identity, empty, deny-all, or failing implementation at the assembly boundary.
|
|
45
|
-
|
|
46
|
-
<!-- mustflow-section: do-not-use-when -->
|
|
47
|
-
## Do Not Use When
|
|
48
|
-
|
|
49
|
-
- The code is a pure function, value object, entity constructor, small data formatter, or internal helper with no external dependency.
|
|
50
|
-
- The task is a disposable one-off script that is not imported, tested, repeated, used in production, or connected to external services.
|
|
51
|
-
- A framework's dependency injection mechanism is already confined to the application boundary and does not leak into domain code.
|
|
52
|
-
- The only change needed is to confirm a package or tool exists; use `dependency-reality-check`.
|
|
53
|
-
|
|
54
|
-
<!-- mustflow-section: required-inputs -->
|
|
55
|
-
## Required Inputs
|
|
56
|
-
|
|
57
|
-
- The target code area and the direct dependency, global state, or hidden collaborator being introduced or removed.
|
|
58
|
-
- The intended business capability and which layer owns the rule: domain, application, infrastructure, adapter, route, worker, or assembly root.
|
|
59
|
-
- Existing local patterns for ports, adapters, fakes, transaction runners, clocks, configuration loading, and test setup.
|
|
60
|
-
- Current changed files and command-intent contract entries relevant to tests, builds, docs, release metadata, and mustflow validation.
|
|
61
|
-
|
|
62
|
-
<!-- mustflow-section: preconditions -->
|
|
63
|
-
## Preconditions
|
|
64
|
-
|
|
65
|
-
- The task matches the Use When conditions and does not match the Do Not Use When exclusions.
|
|
66
|
-
- Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
|
|
67
|
-
- If the local structure is unfamiliar, use `pattern-scout` or `codebase-orientation` before introducing new folders or naming conventions.
|
|
68
|
-
|
|
69
|
-
<!-- mustflow-section: allowed-edits -->
|
|
70
|
-
## Allowed Edits
|
|
71
|
-
|
|
72
|
-
- Define narrow consumer-owned ports where core logic needs external behavior.
|
|
73
|
-
- Move concrete client creation, environment reads, lifecycle setup, and disposal to assembly boundaries.
|
|
74
|
-
- Add infrastructure adapters that implement the ports and translate external rows, responses, errors, and identifiers into internal types.
|
|
75
|
-
- Add local fakes, fixed clocks, fixed identifiers, and contract tests when needed to preserve behavior.
|
|
76
|
-
- Wire optional collaborators with `null-object-pattern` when absence is explicit, safe, and should not leak nullable checks into business logic.
|
|
77
|
-
- Do not add a service locator, global container access, broad application dependency bag, framework decorator in domain code, or speculative interface for every class.
|
|
78
|
-
- When the dependency also crosses an external protocol, provider, database, webhook, queue, file, cache, AI model, or framework boundary, use `adapter-boundary` for the translation and failure-handling rules.
|
|
79
|
-
|
|
80
|
-
<!-- mustflow-section: procedure -->
|
|
81
|
-
## Procedure
|
|
82
|
-
|
|
83
|
-
1. Classify the code under change:
|
|
84
|
-
- Core logic: domain rules, use cases, state transitions, policy checks, calculations, and business decisions.
|
|
85
|
-
- Edge logic: routes, controllers, workers, command handlers, adapters, repositories, SDK wrappers, and assembly roots.
|
|
86
|
-
2. Find direct external dependencies before editing. Look for concrete SDK construction, database clients, HTTP clients, file APIs, environment reads, current-time calls, random or UUID generation, global loggers, global containers, framework request or response objects, and external error types.
|
|
87
|
-
3. Decide whether dependency injection is warranted. Inject only collaborators that cross a boundary, are hard to test, may change implementation, or represent hidden global state. Do not wrap pure helpers, value objects, or stable internal data structures just to add ceremony.
|
|
88
|
-
4. Define ports from the consumer's need, not from the provider's API.
|
|
89
|
-
- Prefer `PaymentGateway`, `UserRepository`, `EmailSender`, `ImageStorage`, or `TextGenerator`.
|
|
90
|
-
- Avoid provider-shaped ports such as `StripeService`, `PrismaUserStore`, `ResendMailer`, `S3ImageStorage`, or `OpenAITextGenerator` at the core boundary.
|
|
91
|
-
5. Choose the injection style:
|
|
92
|
-
- Use constructor injection or a dependency object for classes with stable collaborators.
|
|
93
|
-
- Use function-closure injection for small use cases or function-oriented modules.
|
|
94
|
-
- Use method parameters for per-call data such as actor, tenant, locale, request id, pagination, filters, or command input.
|
|
95
|
-
- Use factories only when runtime values decide the implementation, lifecycle, or resource handle.
|
|
96
|
-
6. Keep construction at the assembly boundary. Create concrete clients, load and validate configuration, register containers, open connections, and wire adapters in files such as bootstrap, server setup, worker setup, route setup, module registration, or test setup.
|
|
97
|
-
- If a dependency is optional and disabled by explicit configuration, choose the real collaborator or the safe neutral implementation here, not inside business logic.
|
|
98
|
-
- If a dependency is required, validate configuration here and fail early instead of injecting a null object.
|
|
99
|
-
7. Treat time, random values, identifiers, configuration, logging, transactions, and framework objects as dependencies.
|
|
100
|
-
- For domain decisions, prefer an already captured instant or time context over passing a clock that can be queried inside the domain.
|
|
101
|
-
- Pass fixed implementations in tests so time, identifiers, and random choices are reproducible.
|
|
102
|
-
8. Keep adapters responsible for translation. Repositories and provider adapters should convert database rows, external responses, external errors, and provider identifiers before returning to core logic.
|
|
103
|
-
9. If the injected collaborator is an external boundary, apply `adapter-boundary` before finalizing the port and adapter. Dependency injection decides how core logic receives the collaborator; adapter boundaries decide how external protocols, data, errors, timeouts, retries, idempotency, security, and observability are translated.
|
|
104
|
-
10. Keep transaction ownership explicit. Inject a transaction runner when a use case needs atomic persistence across multiple repositories. Do not hide transaction boundaries inside repositories when the use case owns the unit of work, and do not call external APIs inside a database transaction.
|
|
105
|
-
11. Reject hidden dependency patterns:
|
|
106
|
-
- no property injection for required collaborators
|
|
107
|
-
- no service locator or `container.resolve` in core logic
|
|
108
|
-
- no process-wide mutable singleton holding request state
|
|
109
|
-
- no broad `AppDeps` object when a use case needs only a few collaborators
|
|
110
|
-
- no circular service dependencies unless a smaller use case, shared policy, or event boundary has been considered first
|
|
111
|
-
12. Keep tests honest. Unit tests for core logic should use fakes or fixed collaborators and should not require a real database, real network, real API key, real email, real payment, real filesystem side effect, current time, or random UUID. Test real adapters separately with integration or contract coverage.
|
|
112
|
-
13. Verify with the narrowest configured command intents that cover the changed code, tests, template files, docs, and release metadata.
|
|
113
|
-
|
|
114
|
-
<!-- mustflow-section: postconditions -->
|
|
115
|
-
## Postconditions
|
|
116
|
-
|
|
117
|
-
- Core logic declares its collaborators through constructor parameters, function parameters, or narrow context objects.
|
|
118
|
-
- Concrete external implementation creation is easy to find at assembly boundaries.
|
|
119
|
-
- Core logic does not import provider SDKs, database clients, framework request or response objects, global containers, or external provider error types.
|
|
120
|
-
- Tests can replace external collaborators, time, identifiers, and random values without live infrastructure.
|
|
121
|
-
- Adapter boundaries translate external data and failures before they reach core logic.
|
|
122
|
-
|
|
123
|
-
<!-- mustflow-section: verification -->
|
|
124
|
-
## Verification
|
|
125
|
-
|
|
126
|
-
Use configured oneshot command intents when available:
|
|
127
|
-
|
|
128
|
-
- `changes_status`
|
|
129
|
-
- `changes_diff_summary`
|
|
130
|
-
- `test_related`
|
|
131
|
-
- `test`
|
|
132
|
-
- `lint`
|
|
133
|
-
- `build`
|
|
134
|
-
- `docs_validate_fast`
|
|
135
|
-
- `test_release`
|
|
136
|
-
- `mustflow_check`
|
|
137
|
-
|
|
138
|
-
Prefer the narrowest configured test or build intent that proves the affected boundary. Use documentation and release checks when templates, skill routes, public docs, package metadata, or installed-file surfaces change.
|
|
139
|
-
|
|
140
|
-
<!-- mustflow-section: failure-handling -->
|
|
141
|
-
## Failure Handling
|
|
142
|
-
|
|
143
|
-
- If extracting a port would duplicate an existing local interface, reuse or narrow the existing local pattern instead of creating a parallel abstraction.
|
|
144
|
-
- If a class needs many collaborators, stop before adding a giant dependency object and look for mixed responsibilities, smaller use cases, or adapter boundaries.
|
|
145
|
-
- If a framework forces decorators or container registration, keep that integration in the application boundary and do not let it shape domain types.
|
|
146
|
-
- If a direct dependency cannot be removed in one safe step, first wrap it at the smallest local boundary and report the remaining leakage.
|
|
147
|
-
- If tests still need real infrastructure after the refactor, report which dependency is still not injectable and why.
|
|
148
|
-
|
|
149
|
-
<!-- mustflow-section: output-format -->
|
|
150
|
-
## Output Format
|
|
151
|
-
|
|
152
|
-
- Dependency boundary reviewed
|
|
153
|
-
- Direct external dependencies found
|
|
154
|
-
- Injection style selected
|
|
155
|
-
- Ports and adapters added or reused
|
|
156
|
-
- Assembly boundary used
|
|
157
|
-
- External data or error translation handled
|
|
158
|
-
- Tests, fakes, or fixed collaborators added or reused
|
|
159
|
-
- Command intents run
|
|
160
|
-
- Skipped checks and reasons
|
|
161
|
-
- Remaining dependency leakage or lifecycle risk
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
mustflow_doc: skill.dependency-reality-check
|
|
3
|
-
locale: fr
|
|
4
|
-
canonical: false
|
|
5
|
-
revision: 1
|
|
6
|
-
lifecycle: mustflow-owned
|
|
7
|
-
authority: procedure
|
|
8
|
-
name: dependency-reality-check
|
|
9
|
-
description: Apply this skill when a task assumes, adds, removes, imports, invokes, or documents a package, runtime, tool, command, service, or platform capability.
|
|
10
|
-
metadata:
|
|
11
|
-
mustflow_schema: "1"
|
|
12
|
-
mustflow_kind: procedure
|
|
13
|
-
pack_id: mustflow.core
|
|
14
|
-
skill_id: mustflow.core.dependency-reality-check
|
|
15
|
-
command_intents:
|
|
16
|
-
- changes_status
|
|
17
|
-
- changes_diff_summary
|
|
18
|
-
- build
|
|
19
|
-
- test_release
|
|
20
|
-
- mustflow_check
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
# Dependency Reality Check
|
|
24
|
-
|
|
25
|
-
<!-- mustflow-section: purpose -->
|
|
26
|
-
## Purpose
|
|
27
|
-
|
|
28
|
-
Prevent code, docs, tests, and final reports from assuming unavailable packages, tools, commands, runtimes, services, or platform capabilities.
|
|
29
|
-
|
|
30
|
-
<!-- mustflow-section: use-when -->
|
|
31
|
-
## Use When
|
|
32
|
-
|
|
33
|
-
- A change adds, removes, renames, imports, invokes, or documents a dependency, tool, runtime, command, plugin, service, or platform feature.
|
|
34
|
-
- A solution relies on a package manager, binary, environment variable, browser API, operating-system command, hosted service, or optional integration.
|
|
35
|
-
- A generated instruction tells another agent or user to run a tool that may not be declared in the repository.
|
|
36
|
-
- A failure may be caused by a missing install, mismatched version, unsupported runtime, or unavailable command.
|
|
37
|
-
|
|
38
|
-
<!-- mustflow-section: do-not-use-when -->
|
|
39
|
-
## Do Not Use When
|
|
40
|
-
|
|
41
|
-
- The task only changes repository-local prose and does not mention tools, runtime behavior, package metadata, or commands.
|
|
42
|
-
- The dependency is already proven by the current task context and no dependency-facing surface changes.
|
|
43
|
-
- The user explicitly asks for a speculative design that should not be implemented or verified yet.
|
|
44
|
-
|
|
45
|
-
<!-- mustflow-section: required-inputs -->
|
|
46
|
-
## Required Inputs
|
|
47
|
-
|
|
48
|
-
- The dependency, tool, command, runtime, service, or platform capability being assumed.
|
|
49
|
-
- Package, lock, config, import, script, command-intent, or documentation files that declare or reference it.
|
|
50
|
-
- The minimum version, capability, or availability claim if one is required.
|
|
51
|
-
- Relevant command-intent contract entries for build, package, test, or documentation verification.
|
|
52
|
-
|
|
53
|
-
<!-- mustflow-section: preconditions -->
|
|
54
|
-
## Preconditions
|
|
55
|
-
|
|
56
|
-
- The task matches the Use When conditions and does not match the Do Not Use When exclusions.
|
|
57
|
-
- Required inputs are available, or missing inputs can be reported without guessing.
|
|
58
|
-
- Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
|
|
59
|
-
|
|
60
|
-
<!-- mustflow-section: allowed-edits -->
|
|
61
|
-
## Allowed Edits
|
|
62
|
-
|
|
63
|
-
- Align dependency declarations, imports, scripts, command metadata, tests, and docs that describe the same capability.
|
|
64
|
-
- Prefer existing repository dependencies and declared command intents before adding new packages or tools.
|
|
65
|
-
- Do not install packages, widen runtime requirements, or introduce new external services unless the user request and repository contract support it.
|
|
66
|
-
- Do not claim a dependency is available just because it exists on the internet or in another project.
|
|
67
|
-
|
|
68
|
-
<!-- mustflow-section: procedure -->
|
|
69
|
-
## Procedure
|
|
70
|
-
|
|
71
|
-
1. Name the assumed dependency or capability and where the task relies on it.
|
|
72
|
-
2. Check the repository declarations first: package metadata, lockfiles, config files, imports, command intents, docs, and templates.
|
|
73
|
-
3. Decide whether the dependency is present, absent, optional, transitive, host-provided, or external.
|
|
74
|
-
4. If present, verify that the requested capability and version expectation match the declared dependency.
|
|
75
|
-
5. If absent, prefer an existing local alternative. Add a new dependency only when it is necessary and within the task scope.
|
|
76
|
-
6. Keep all dependency-facing surfaces aligned: package metadata, lockfiles when intentionally updated, command contract, docs, tests, and installation notes.
|
|
77
|
-
7. Run the narrowest configured verification that proves the dependency path used by the change.
|
|
78
|
-
|
|
79
|
-
<!-- mustflow-section: postconditions -->
|
|
80
|
-
## Postconditions
|
|
81
|
-
|
|
82
|
-
- Every dependency or tool claim is backed by a repository declaration, configured command, host boundary, or explicit unverified-risk note.
|
|
83
|
-
- New dependency requirements are reflected in the appropriate metadata and public documentation.
|
|
84
|
-
- The final report states whether the dependency was existing, added, optional, unavailable, or intentionally not verified.
|
|
85
|
-
|
|
86
|
-
<!-- mustflow-section: verification -->
|
|
87
|
-
## Verification
|
|
88
|
-
|
|
89
|
-
Use configured oneshot command intents when available:
|
|
90
|
-
|
|
91
|
-
- `changes_status`
|
|
92
|
-
- `changes_diff_summary`
|
|
93
|
-
- `build`
|
|
94
|
-
- `test_release`
|
|
95
|
-
- `mustflow_check`
|
|
96
|
-
|
|
97
|
-
Use a narrower configured test, package, or docs intent when it better proves the dependency path.
|
|
98
|
-
|
|
99
|
-
<!-- mustflow-section: failure-handling -->
|
|
100
|
-
## Failure Handling
|
|
101
|
-
|
|
102
|
-
- If the dependency is missing, report the missing declaration or command instead of silently adding a workaround.
|
|
103
|
-
- If the declared version lacks the needed capability, report the mismatch and avoid claiming support.
|
|
104
|
-
- If a dependency requires network, credentials, operating-system setup, or service access, stop at that boundary and name the unchecked requirement.
|
|
105
|
-
- If generated docs would instruct users to run undeclared tools, rewrite the docs to use declared commands or mark the tool as a manual prerequisite.
|
|
106
|
-
|
|
107
|
-
<!-- mustflow-section: output-format -->
|
|
108
|
-
## Output Format
|
|
109
|
-
|
|
110
|
-
- Dependency or capability checked
|
|
111
|
-
- Repository declaration or absence
|
|
112
|
-
- Surfaces synchronized
|
|
113
|
-
- Command intents run
|
|
114
|
-
- Skipped dependency checks and reasons
|
|
115
|
-
- Remaining dependency risk
|