create-yss-spec 3.4.8 → 3.4.10
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 +1 -1
- package/package.json +1 -1
- package/src/template/attach-planner.js +5 -0
- package/src/template/sync-planner.js +5 -0
- package/template/.agents/skills/.strategic-design-skills-manifest.json +5 -5
- package/template/.agents/skills/alibaba-java-code-style/SKILL.md +2 -2
- package/template/.agents/skills/archify/SKILL.md +2 -19
- package/template/.agents/skills/archify/references/geometry-and-routing.md +20 -0
- package/template/.agents/skills/code-review/SKILL.md +3 -33
- package/template/.agents/skills/code-review/references/candidate-capture.md +33 -0
- package/template/.agents/skills/code-review/references/yss-review-standards.md +3 -5
- package/template/.agents/skills/codebase-design/SKILL.md +2 -2
- package/template/.agents/skills/competitive-intelligence/SKILL.md +1 -1
- package/template/.agents/skills/diagnosing-bugs/SKILL.md +6 -2
- package/template/.agents/skills/formily-foundation/SKILL.md +1 -1
- package/template/.agents/skills/formily-step-flow/SKILL.md +3 -2
- package/template/.agents/skills/frontend-commit/SKILL.md +6 -6
- package/template/.agents/skills/grilling/SKILL.md +2 -2
- package/template/.agents/skills/implement/SKILL.md +1 -1
- package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +3 -3
- package/template/.agents/skills/implementation-repo-onboarding/references/write-scope.md +5 -0
- package/template/.agents/skills/improve-codebase-architecture/SKILL.md +10 -6
- package/template/.agents/skills/java-backend-commit/SKILL.md +5 -5
- package/template/.agents/skills/llm-wiki/SKILL.md +1 -1
- package/template/.agents/skills/prototype/SKILL.md +1 -1
- package/template/.agents/skills/prototype-review/SKILL.md +1 -1
- package/template/.agents/skills/resolving-merge-conflicts/SKILL.md +2 -2
- package/template/.agents/skills/tdd/SKILL.md +1 -1
- package/template/.agents/skills/to-questionnaire/SKILL.md +4 -2
- package/template/.agents/skills/to-spec/SKILL.md +3 -3
- package/template/.agents/skills/to-tickets/SKILL.md +7 -7
- package/template/.agents/skills/using-git-worktrees/SKILL.md +13 -11
- package/template/.agents/skills/wait-what/SKILL.md +1 -1
- package/template/.agents/skills/wayfinder/SKILL.md +4 -2
- package/template/.agents/skills/writing-for-agents/SKILL.md +9 -73
- package/template/.agents/skills/writing-for-agents/references/writing-principles.md +76 -0
- package/template/.agents/skills/yss-api-integration/SKILL.md +2 -2
- package/template/.agents/skills/yss-application/SKILL.md +12 -0
- package/template/.agents/skills/yss-audit-log/SKILL.md +3 -1
- package/template/.agents/skills/yss-audit-log/assets/AuditLogAspect.java +1 -0
- package/template/.agents/skills/yss-audit-log/assets/YssAuditLogPrintSubscriberImpl.java +1 -0
- package/template/.agents/skills/yss-audit-log/assets/YssAuditLogSysManagerSubscriberImpl.java +1 -0
- package/template/.agents/skills/yss-audit-log/assets/YssAuditPublishService.java +1 -0
- package/template/.agents/skills/yss-backend-spec-review/SKILL.md +6 -0
- package/template/.agents/skills/yss-backend-spec-review/references/check-inputs.md +2 -2
- package/template/.agents/skills/yss-backend-spec-review/references/standards-coverage.md +39 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +5 -34
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/command-examples.md +32 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/generator-maintenance.md +7 -0
- package/template/.agents/skills/yss-design-system/SKILL.md +2 -2
- package/template/.agents/skills/yss-domain/SKILL.md +17 -5
- package/template/.agents/skills/yss-domain/references/domain-layer-guide.md +2 -2
- package/template/.agents/skills/yss-domain/references/existing-project.md +5 -0
- package/template/.agents/skills/yss-dto/SKILL.md +13 -10
- package/template/.agents/skills/yss-dto/references/wire-validation-checklist.md +14 -0
- package/template/.agents/skills/yss-exception/SKILL.md +2 -2
- package/template/.agents/skills/yss-formily-schema-generator/SKILL.md +12 -12
- package/template/.agents/skills/yss-hook/SKILL.md +8 -44
- package/template/.agents/skills/yss-hook/references/use-request.md +42 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +3 -5
- package/template/.agents/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +7 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +5 -1
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-mybatis/SKILL.md +10 -0
- package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +3 -1
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +5 -32
- package/template/.agents/skills/yss-openapi-governance/references/governance-output.md +34 -0
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +12 -6
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +3 -5
- package/template/.agents/skills/yss-prototype-stage/references/existing-ui-entry.md +7 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
- package/template/.agents/skills/yss-repository/SKILL.md +13 -1
- package/template/.agents/skills/yss-repository/references/profiles/existing-domain-driven-maven.md +7 -0
- package/template/.agents/skills/yss-repository/references/profiles/existing-layered-mvc-maven.md +7 -0
- package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +3 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +3 -1
- package/template/.agents/skills/yss-stage-decision/references/strategic-handoff-routing.md +3 -0
- package/template/.agents/skills/yss-tactical-design/SKILL.md +3 -3
- package/template/.agents/skills/yss-tactical-design/references/strategic-handoff-routing.md +5 -0
- package/template/.agents/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.agents/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
- package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
- package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +5 -3
- package/template/.agents/skills/yss-validation/SKILL.md +1 -1
- package/template/.agents/skills/yss-web-controller/SKILL.md +16 -7
- package/template/.agents/skills/ytable-usage/SKILL.md +2 -2
- package/template/.codex/skills/alibaba-java-code-style/SKILL.md +2 -2
- package/template/.codex/skills/archify/SKILL.md +2 -19
- package/template/.codex/skills/archify/references/geometry-and-routing.md +20 -0
- package/template/.codex/skills/code-review/SKILL.md +3 -33
- package/template/.codex/skills/code-review/references/candidate-capture.md +33 -0
- package/template/.codex/skills/code-review/references/yss-review-standards.md +3 -5
- package/template/.codex/skills/codebase-design/SKILL.md +2 -2
- package/template/.codex/skills/competitive-intelligence/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/mcp/server.cjs +2 -1
- package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +9 -32
- package/template/.codex/skills/data-analytics/skills/analyze-data-quality/references/quality-checks.md +29 -0
- package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +4 -4
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/SKILL.md +12 -22
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/cli.py +5 -10
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/plan.py +47 -49
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/tests/test_delivery_plan.py +45 -0
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/SKILL.md +4 -5
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/build-report/specifications/mcp-app-report.md +1 -1
- package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/index/SKILL.md +4 -4
- package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +2 -2
- package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +4 -4
- package/template/.codex/skills/data-analytics/skills/user-context/SKILL.md +16 -14
- package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/automation-config.md +1 -1
- package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-examples.md +1 -1
- package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding.md +7 -7
- package/template/.codex/skills/data-analytics/skills/user-context/references/source-category-runtime.md +7 -7
- package/template/.codex/skills/data-analytics/skills/user-context/scripts/data_analytics_preflight.py +4 -2
- package/template/.codex/skills/data-analytics/skills/user-context/scripts/validate_user_context_preflight.py +5 -5
- package/template/.codex/skills/data-analytics/skills/user-context/tests/test_state_helpers.py +3 -3
- package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +7 -71
- package/template/.codex/skills/data-analytics/skills/validate-data/references/validation-methods.md +70 -0
- package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +4 -4
- package/template/.codex/skills/data-analytics/src/analytics-app/App.tsx +1 -1
- package/template/.codex/skills/data-analytics/src/analytics-app-core.md +1 -1
- package/template/.codex/skills/diagnosing-bugs/SKILL.md +6 -2
- package/template/.codex/skills/formily-foundation/SKILL.md +1 -1
- package/template/.codex/skills/formily-step-flow/SKILL.md +3 -2
- package/template/.codex/skills/frontend-commit/SKILL.md +6 -6
- package/template/.codex/skills/grilling/SKILL.md +2 -2
- package/template/.codex/skills/implement/SKILL.md +1 -1
- package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +3 -3
- package/template/.codex/skills/implementation-repo-onboarding/references/write-scope.md +5 -0
- package/template/.codex/skills/improve-codebase-architecture/SKILL.md +10 -6
- package/template/.codex/skills/java-backend-commit/SKILL.md +5 -5
- package/template/.codex/skills/llm-wiki/SKILL.md +1 -1
- package/template/.codex/skills/product-design/references/critical-overrides.md +3 -4
- package/template/.codex/skills/product-design/skills/audit/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/design-qa/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/get-context/SKILL.md +2 -1
- package/template/.codex/skills/product-design/skills/ideate/SKILL.md +2 -50
- package/template/.codex/skills/product-design/skills/ideate/references/image-prompt-patterns.md +51 -0
- package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +6 -6
- package/template/.codex/skills/product-design/skills/index/SKILL.md +2 -2
- package/template/.codex/skills/product-design/skills/prototype/SKILL.md +6 -6
- package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/user-context/SKILL.md +1 -1
- package/template/.codex/skills/prototype/SKILL.md +1 -1
- package/template/.codex/skills/prototype-review/SKILL.md +1 -1
- package/template/.codex/skills/resolving-merge-conflicts/SKILL.md +2 -2
- package/template/.codex/skills/tdd/SKILL.md +1 -1
- package/template/.codex/skills/to-questionnaire/SKILL.md +4 -2
- package/template/.codex/skills/to-spec/SKILL.md +3 -3
- package/template/.codex/skills/to-tickets/SKILL.md +7 -7
- package/template/.codex/skills/using-git-worktrees/SKILL.md +13 -11
- package/template/.codex/skills/wait-what/SKILL.md +1 -1
- package/template/.codex/skills/wayfinder/SKILL.md +4 -2
- package/template/.codex/skills/writing-for-agents/SKILL.md +9 -73
- package/template/.codex/skills/writing-for-agents/references/writing-principles.md +76 -0
- package/template/.codex/skills/yss-api-integration/SKILL.md +2 -2
- package/template/.codex/skills/yss-application/SKILL.md +12 -0
- package/template/.codex/skills/yss-audit-log/SKILL.md +3 -1
- package/template/.codex/skills/yss-audit-log/assets/AuditLogAspect.java +1 -0
- package/template/.codex/skills/yss-audit-log/assets/YssAuditLogPrintSubscriberImpl.java +1 -0
- package/template/.codex/skills/yss-audit-log/assets/YssAuditLogSysManagerSubscriberImpl.java +1 -0
- package/template/.codex/skills/yss-audit-log/assets/YssAuditPublishService.java +1 -0
- package/template/.codex/skills/yss-backend-spec-review/SKILL.md +6 -0
- package/template/.codex/skills/yss-backend-spec-review/references/check-inputs.md +2 -2
- package/template/.codex/skills/yss-backend-spec-review/references/standards-coverage.md +39 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +5 -34
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/command-examples.md +32 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/generator-maintenance.md +7 -0
- package/template/.codex/skills/yss-design-system/SKILL.md +2 -2
- package/template/.codex/skills/yss-domain/SKILL.md +17 -5
- package/template/.codex/skills/yss-domain/references/domain-layer-guide.md +2 -2
- package/template/.codex/skills/yss-domain/references/existing-project.md +5 -0
- package/template/.codex/skills/yss-dto/SKILL.md +13 -10
- package/template/.codex/skills/yss-dto/references/wire-validation-checklist.md +14 -0
- package/template/.codex/skills/yss-exception/SKILL.md +2 -2
- package/template/.codex/skills/yss-formily-schema-generator/SKILL.md +12 -12
- package/template/.codex/skills/yss-hook/SKILL.md +8 -44
- package/template/.codex/skills/yss-hook/references/use-request.md +42 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +3 -5
- package/template/.codex/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +7 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +5 -1
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-mybatis/SKILL.md +10 -0
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +3 -1
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +5 -32
- package/template/.codex/skills/yss-openapi-governance/references/governance-output.md +34 -0
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +12 -6
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +3 -5
- package/template/.codex/skills/yss-prototype-stage/references/existing-ui-entry.md +7 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
- package/template/.codex/skills/yss-repository/SKILL.md +13 -1
- package/template/.codex/skills/yss-repository/references/profiles/existing-domain-driven-maven.md +7 -0
- package/template/.codex/skills/yss-repository/references/profiles/existing-layered-mvc-maven.md +7 -0
- package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +3 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +3 -1
- package/template/.codex/skills/yss-stage-decision/references/strategic-handoff-routing.md +3 -0
- package/template/.codex/skills/yss-tactical-design/SKILL.md +3 -3
- package/template/.codex/skills/yss-tactical-design/references/strategic-handoff-routing.md +5 -0
- package/template/.codex/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.codex/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
- package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
- package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +5 -3
- package/template/.codex/skills/yss-validation/SKILL.md +1 -1
- package/template/.codex/skills/yss-web-controller/SKILL.md +16 -7
- package/template/.codex/skills/ytable-usage/SKILL.md +2 -2
- package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +2 -2
- package/template/.cursor/skills/archify/SKILL.md +2 -19
- package/template/.cursor/skills/archify/references/geometry-and-routing.md +20 -0
- package/template/.cursor/skills/code-review/SKILL.md +3 -33
- package/template/.cursor/skills/code-review/references/candidate-capture.md +33 -0
- package/template/.cursor/skills/code-review/references/yss-review-standards.md +3 -5
- package/template/.cursor/skills/codebase-design/SKILL.md +2 -2
- package/template/.cursor/skills/competitive-intelligence/SKILL.md +1 -1
- package/template/.cursor/skills/diagnosing-bugs/SKILL.md +6 -2
- package/template/.cursor/skills/formily-foundation/SKILL.md +1 -1
- package/template/.cursor/skills/formily-step-flow/SKILL.md +3 -2
- package/template/.cursor/skills/frontend-commit/SKILL.md +6 -6
- package/template/.cursor/skills/grilling/SKILL.md +2 -2
- package/template/.cursor/skills/implement/SKILL.md +1 -1
- package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +3 -3
- package/template/.cursor/skills/implementation-repo-onboarding/references/write-scope.md +5 -0
- package/template/.cursor/skills/improve-codebase-architecture/SKILL.md +10 -6
- package/template/.cursor/skills/java-backend-commit/SKILL.md +5 -5
- package/template/.cursor/skills/llm-wiki/SKILL.md +1 -1
- package/template/.cursor/skills/prototype/SKILL.md +1 -1
- package/template/.cursor/skills/prototype-review/SKILL.md +1 -1
- package/template/.cursor/skills/resolving-merge-conflicts/SKILL.md +2 -2
- package/template/.cursor/skills/tdd/SKILL.md +1 -1
- package/template/.cursor/skills/to-questionnaire/SKILL.md +4 -2
- package/template/.cursor/skills/to-spec/SKILL.md +3 -3
- package/template/.cursor/skills/to-tickets/SKILL.md +7 -7
- package/template/.cursor/skills/using-git-worktrees/SKILL.md +13 -11
- package/template/.cursor/skills/wait-what/SKILL.md +1 -1
- package/template/.cursor/skills/wayfinder/SKILL.md +4 -2
- package/template/.cursor/skills/writing-for-agents/SKILL.md +9 -73
- package/template/.cursor/skills/writing-for-agents/references/writing-principles.md +76 -0
- package/template/.cursor/skills/yss-api-integration/SKILL.md +2 -2
- package/template/.cursor/skills/yss-application/SKILL.md +12 -0
- package/template/.cursor/skills/yss-audit-log/SKILL.md +3 -1
- package/template/.cursor/skills/yss-audit-log/assets/AuditLogAspect.java +1 -0
- package/template/.cursor/skills/yss-audit-log/assets/YssAuditLogPrintSubscriberImpl.java +1 -0
- package/template/.cursor/skills/yss-audit-log/assets/YssAuditLogSysManagerSubscriberImpl.java +1 -0
- package/template/.cursor/skills/yss-audit-log/assets/YssAuditPublishService.java +1 -0
- package/template/.cursor/skills/yss-backend-spec-review/SKILL.md +6 -0
- package/template/.cursor/skills/yss-backend-spec-review/references/check-inputs.md +2 -2
- package/template/.cursor/skills/yss-backend-spec-review/references/standards-coverage.md +39 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +5 -34
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/command-examples.md +32 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/generator-maintenance.md +7 -0
- package/template/.cursor/skills/yss-design-system/SKILL.md +2 -2
- package/template/.cursor/skills/yss-domain/SKILL.md +17 -5
- package/template/.cursor/skills/yss-domain/references/domain-layer-guide.md +2 -2
- package/template/.cursor/skills/yss-domain/references/existing-project.md +5 -0
- package/template/.cursor/skills/yss-dto/SKILL.md +13 -10
- package/template/.cursor/skills/yss-dto/references/wire-validation-checklist.md +14 -0
- package/template/.cursor/skills/yss-exception/SKILL.md +2 -2
- package/template/.cursor/skills/yss-formily-schema-generator/SKILL.md +12 -12
- package/template/.cursor/skills/yss-hook/SKILL.md +8 -44
- package/template/.cursor/skills/yss-hook/references/use-request.md +42 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +3 -5
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +7 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +5 -1
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-mybatis/SKILL.md +10 -0
- package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +3 -1
- package/template/.cursor/skills/yss-openapi-governance/SKILL.md +5 -32
- package/template/.cursor/skills/yss-openapi-governance/references/governance-output.md +34 -0
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +12 -6
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +3 -5
- package/template/.cursor/skills/yss-prototype-stage/references/existing-ui-entry.md +7 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
- package/template/.cursor/skills/yss-repository/SKILL.md +13 -1
- package/template/.cursor/skills/yss-repository/references/profiles/existing-domain-driven-maven.md +7 -0
- package/template/.cursor/skills/yss-repository/references/profiles/existing-layered-mvc-maven.md +7 -0
- package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +3 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +3 -1
- package/template/.cursor/skills/yss-stage-decision/references/strategic-handoff-routing.md +3 -0
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +3 -3
- package/template/.cursor/skills/yss-tactical-design/references/strategic-handoff-routing.md +5 -0
- package/template/.cursor/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.cursor/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
- package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
- package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +5 -3
- package/template/.cursor/skills/yss-validation/SKILL.md +1 -1
- package/template/.cursor/skills/yss-web-controller/SKILL.md +16 -7
- package/template/.cursor/skills/ytable-usage/SKILL.md +2 -2
- package/template/.pi/skills/alibaba-java-code-style/SKILL.md +2 -2
- package/template/.pi/skills/archify/SKILL.md +2 -19
- package/template/.pi/skills/archify/references/geometry-and-routing.md +20 -0
- package/template/.pi/skills/code-review/SKILL.md +3 -33
- package/template/.pi/skills/code-review/references/candidate-capture.md +33 -0
- package/template/.pi/skills/code-review/references/yss-review-standards.md +3 -5
- package/template/.pi/skills/codebase-design/SKILL.md +2 -2
- package/template/.pi/skills/competitive-intelligence/SKILL.md +1 -1
- package/template/.pi/skills/diagnosing-bugs/SKILL.md +6 -2
- package/template/.pi/skills/formily-foundation/SKILL.md +1 -1
- package/template/.pi/skills/formily-step-flow/SKILL.md +3 -2
- package/template/.pi/skills/frontend-commit/SKILL.md +6 -6
- package/template/.pi/skills/grilling/SKILL.md +2 -2
- package/template/.pi/skills/implement/SKILL.md +1 -1
- package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +3 -3
- package/template/.pi/skills/implementation-repo-onboarding/references/write-scope.md +5 -0
- package/template/.pi/skills/improve-codebase-architecture/SKILL.md +10 -6
- package/template/.pi/skills/java-backend-commit/SKILL.md +5 -5
- package/template/.pi/skills/llm-wiki/SKILL.md +1 -1
- package/template/.pi/skills/prototype/SKILL.md +1 -1
- package/template/.pi/skills/prototype-review/SKILL.md +1 -1
- package/template/.pi/skills/resolving-merge-conflicts/SKILL.md +2 -2
- package/template/.pi/skills/tdd/SKILL.md +1 -1
- package/template/.pi/skills/to-questionnaire/SKILL.md +4 -2
- package/template/.pi/skills/to-spec/SKILL.md +3 -3
- package/template/.pi/skills/to-tickets/SKILL.md +7 -7
- package/template/.pi/skills/using-git-worktrees/SKILL.md +13 -11
- package/template/.pi/skills/wait-what/SKILL.md +1 -1
- package/template/.pi/skills/wayfinder/SKILL.md +4 -2
- package/template/.pi/skills/writing-for-agents/SKILL.md +9 -73
- package/template/.pi/skills/writing-for-agents/references/writing-principles.md +76 -0
- package/template/.pi/skills/yss-api-integration/SKILL.md +2 -2
- package/template/.pi/skills/yss-application/SKILL.md +12 -0
- package/template/.pi/skills/yss-audit-log/SKILL.md +3 -1
- package/template/.pi/skills/yss-audit-log/assets/AuditLogAspect.java +1 -0
- package/template/.pi/skills/yss-audit-log/assets/YssAuditLogPrintSubscriberImpl.java +1 -0
- package/template/.pi/skills/yss-audit-log/assets/YssAuditLogSysManagerSubscriberImpl.java +1 -0
- package/template/.pi/skills/yss-audit-log/assets/YssAuditPublishService.java +1 -0
- package/template/.pi/skills/yss-backend-spec-review/SKILL.md +6 -0
- package/template/.pi/skills/yss-backend-spec-review/references/check-inputs.md +2 -2
- package/template/.pi/skills/yss-backend-spec-review/references/standards-coverage.md +39 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +5 -34
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/command-examples.md +32 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/generator-maintenance.md +7 -0
- package/template/.pi/skills/yss-design-system/SKILL.md +2 -2
- package/template/.pi/skills/yss-domain/SKILL.md +17 -5
- package/template/.pi/skills/yss-domain/references/domain-layer-guide.md +2 -2
- package/template/.pi/skills/yss-domain/references/existing-project.md +5 -0
- package/template/.pi/skills/yss-dto/SKILL.md +13 -10
- package/template/.pi/skills/yss-dto/references/wire-validation-checklist.md +14 -0
- package/template/.pi/skills/yss-exception/SKILL.md +2 -2
- package/template/.pi/skills/yss-formily-schema-generator/SKILL.md +12 -12
- package/template/.pi/skills/yss-hook/SKILL.md +8 -44
- package/template/.pi/skills/yss-hook/references/use-request.md +42 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +3 -5
- package/template/.pi/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +7 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +5 -1
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-mybatis/SKILL.md +10 -0
- package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +3 -1
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +5 -32
- package/template/.pi/skills/yss-openapi-governance/references/governance-output.md +34 -0
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +12 -6
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +3 -5
- package/template/.pi/skills/yss-prototype-stage/references/existing-ui-entry.md +7 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
- package/template/.pi/skills/yss-repository/SKILL.md +13 -1
- package/template/.pi/skills/yss-repository/references/profiles/existing-domain-driven-maven.md +7 -0
- package/template/.pi/skills/yss-repository/references/profiles/existing-layered-mvc-maven.md +7 -0
- package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +3 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +3 -1
- package/template/.pi/skills/yss-stage-decision/references/strategic-handoff-routing.md +3 -0
- package/template/.pi/skills/yss-tactical-design/SKILL.md +3 -3
- package/template/.pi/skills/yss-tactical-design/references/strategic-handoff-routing.md +5 -0
- package/template/.pi/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.pi/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
- package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
- package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +5 -3
- package/template/.pi/skills/yss-validation/SKILL.md +1 -1
- package/template/.pi/skills/yss-web-controller/SKILL.md +16 -7
- package/template/.pi/skills/ytable-usage/SKILL.md +2 -2
- package/template/AGENTS.md +2 -0
- package/template/CONTEXT.md +2 -1
- package/template/README.md +1 -0
- package/template/docs/agents/issue-tracker.md +7 -0
- package/template/docs/process/contract-reading.md +46 -0
- package/template/docs/process/lifecycle-artifact-map.md +2 -2
- package/template/docs/process/lifecycle-registry-baseline.json +2 -1
- package/template/docs/process/lifecycle-registry.yaml +10 -4
- package/template/docs/process/schemas/api-contract-decision-v2.schema.json +198 -0
- package/template/docs/process/schemas/digital-human-task-package.schema.json +68 -4
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +259 -0
- package/template/docs/process/schemas/stage-tracking.schema.json +259 -0
- package/template/docs/process/stage-tracking.md +62 -0
- package/template/docs/process/strategic-handoff-package.md +8 -0
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +2 -0
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +1 -0
- package/template/docs/user-guide//351/230/266/346/256/265/346/216/245/345/205/245/344/270/216/344/272/247/347/211/251/345/244/215/347/224/250/344/275/277/347/224/250/346/211/213/345/206/214.md +243 -0
- package/template/scripts/api-contract-decision +16 -0
- package/template/scripts/backend-standards-coverage +26 -0
- package/template/scripts/complete-backend-delivery +17 -0
- package/template/scripts/contract +13 -0
- package/template/scripts/dispatch-slice-task +13 -0
- package/template/scripts/lib/api-contract-decision.mjs +45 -4
- package/template/scripts/lib/approval-record.mjs +1 -1
- package/template/scripts/lib/approved-execution-context.mjs +35 -7
- package/template/scripts/lib/backend-architecture.mjs +2 -2
- package/template/scripts/lib/backend-delivery-terminal.mjs +51 -0
- package/template/scripts/lib/backend-platform-provenance.mjs +1 -1
- package/template/scripts/lib/backend-platform.mjs +1 -1
- package/template/scripts/lib/backend-review.mjs +58 -20
- package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
- package/template/scripts/lib/backend-standards-coverage.mjs +237 -0
- package/template/scripts/lib/context-contract.mjs +1 -1
- package/template/scripts/lib/context-reconciliation.mjs +1 -1
- package/template/scripts/lib/contract-source.mjs +22 -0
- package/template/scripts/lib/contract-views.mjs +109 -0
- package/template/scripts/lib/delivery-preflight.mjs +3 -2
- package/template/scripts/lib/digital-human-roles.mjs +1 -1
- package/template/scripts/lib/existing-backend-architecture.mjs +4 -3
- package/template/scripts/lib/existing-ui-baseline.mjs +4 -2
- package/template/scripts/lib/first-slice-artifacts.mjs +1 -1
- package/template/scripts/lib/frontend-delivery-boundary.mjs +1 -1
- package/template/scripts/lib/frontend-delivery.mjs +1 -1
- package/template/scripts/lib/harness-execution-scope.mjs +15 -1
- package/template/scripts/lib/implementation-contract-compiler.mjs +4 -4
- package/template/scripts/lib/json-schema.mjs +19 -4
- package/template/scripts/lib/lifecycle-context-query.mjs +5 -1
- package/template/scripts/lib/lifecycle-controls.mjs +1 -1
- package/template/scripts/lib/lifecycle-execution-scope.mjs +92 -0
- package/template/scripts/lib/lifecycle-registry.mjs +2 -1
- package/template/scripts/lib/lifecycle-transition.mjs +25 -4
- package/template/scripts/lib/openapi-draft-validation.mjs +2 -1
- package/template/scripts/lib/profile-skill-sync.mjs +46 -5
- package/template/scripts/lib/skill-registry.mjs +1 -1
- package/template/scripts/lib/slice-contract-preparation.mjs +16 -14
- package/template/scripts/lib/slice-contract-views.mjs +1 -1
- package/template/scripts/lib/slice-contract.mjs +18 -3
- package/template/scripts/lib/slice-execution-preflight.mjs +7 -3
- package/template/scripts/lib/slice-repositories.mjs +1 -1
- package/template/scripts/lib/slice-task-package.mjs +3 -2
- package/template/scripts/lib/stage-tracking-migration.mjs +176 -0
- package/template/scripts/lib/stage-tracking.mjs +184 -0
- package/template/scripts/lib/strategic-handoff-consumption.mjs +5 -4
- package/template/scripts/lib/strategic-handoff-io.mjs +5 -2
- package/template/scripts/lib/strategic-handoff-routing.mjs +31 -0
- package/template/scripts/lib/strategic-handoff.mjs +4 -2
- package/template/scripts/lib/task-package.mjs +2 -0
- package/template/scripts/lib/technical-design-boundary.mjs +4 -2
- package/template/scripts/lib/ui-baseline.mjs +1 -1
- package/template/scripts/lib/user-decision.mjs +1 -1
- package/template/scripts/lib/validation-phase.mjs +72 -0
- package/template/scripts/stage-tracking +25 -0
- package/template/scripts/strategic-consumer-entry +47 -0
- package/template/scripts/verify-context-reconciliation +4 -3
- package/template/scripts/verify-lifecycle-checkpoint +10 -0
- package/template/skills-lock.json +65 -63
- package/template.snapshot.json +4 -4
|
@@ -32,7 +32,9 @@ execution_result:
|
|
|
32
32
|
result:
|
|
33
33
|
executed_at:
|
|
34
34
|
constraint_results:
|
|
35
|
-
-
|
|
35
|
+
- constraint_id: # 后端审查时为 canonical 稳定 ID
|
|
36
|
+
applicability_basis: [] # 后端覆盖工具派生依据
|
|
37
|
+
constraint:
|
|
36
38
|
status: passed | failed | not-applicable
|
|
37
39
|
evidence_ref:
|
|
38
40
|
doubt_driven_review:
|
|
@@ -70,3 +72,5 @@ execution_result:
|
|
|
70
72
|
专项 skill 自报 `implemented` 不等于最终通过,生命周期编排器和独立 Reviewer 必须复核。
|
|
71
73
|
|
|
72
74
|
`verification_results` 不得为空,每项必须包含非空 `command`、`result` 和 `executed_at`。路径校验按完整目录边界判断,`apps/backend/project1-escape` 不属于 `apps/backend/project1/`;Harness 内路径还必须通过项目路径策略。完整重路由时旧合同必须标记 `stale`,新合同版本递增并保留旧合同引用、失效原因和触发器。
|
|
75
|
+
|
|
76
|
+
后端独立审查在既有 constraint_results 中消费稳定规则 ID、规则/代码/证据摘要与完整适用性集合;输入增加 scope_kind 与 standards_coverage_ref/digest。见 yss-backend-spec-review/references/standards-coverage.md。实现者结果不代替独立 code-review;历史未携带新字段的报告只读兼容。
|
|
@@ -20,11 +20,11 @@ description: 在生命周期已批准的脚手架合同下生成通用 YSS 分
|
|
|
20
20
|
|
|
21
21
|
调用本技能前由生命周期编排器展示 `scripts/backend-platforms` 的精确版本清单及兼容状态,并通过 `gate.backend-architecture-platform-approved` 把架构、Spring Boot、Java 和 YSS 父 POM/BOM 合并展示、取得真实用户确认;生成器不提问、不猜版本、不使用 `x` 或 `latest`。已有批准且当前的选择展示摘要后复用;既有工程核验并复用登记值,不触发该门禁。
|
|
22
22
|
|
|
23
|
-
-
|
|
23
|
+
- 精确候选版本与可选状态只读取 `scripts/backend-platforms` 和共享平台清单,不在此复制版本表;候选不等于可生成。
|
|
24
24
|
- 独立子项目可继承主项目组合或覆盖,必须逐项目确认(允许一次确认明确列出的项目);同一 Maven Reactor 使用一个平台。
|
|
25
25
|
- 只开放共享兼容清单中已有真实 YSS 构建、依赖和启动证据的组合。缺少兼容父 POM、BOM、starter 或相应能力证据即 `blocked`;不替换官方组件、不降级回退。
|
|
26
26
|
- 新生成合同必须有 `platform_configuration` v2,与架构决策、Maven 坐标及兼容条目摘要一致。Boot、Java、YSS 坐标或依赖配方变化时回生命周期重新确认并编译合同;仅追加同配置验证记录不重复确认,仍核验证据有效性。
|
|
27
|
-
- Spring MVC、Servlet、Validation、Jackson 和 starter 坐标消费共享平台清单;
|
|
27
|
+
- Spring MVC、Servlet、Validation、Jackson 和 starter 坐标消费共享平台清单;Java 下限和允许组合由当前平台条目决定。Jakarta 转换不包括 `javax.sql` 等 Java SE API。
|
|
28
28
|
- 平台候选维护验证产物标记 `platform_verification=candidate`,不能交给业务生成、升级完成等级或进入首切片验证。测试夹具不证明 YSS 兼容。
|
|
29
29
|
|
|
30
30
|
版本清单、合同字段、候选验证和支持晋级规则见 仓库共享合同 `docs/engineering/backend-platforms.md`。
|
|
@@ -16,11 +16,21 @@ description: 用于 YSS MyBatis / MyBatis-Plus 组件能力核验、接入决策
|
|
|
16
16
|
|
|
17
17
|
## 稳定决策规则
|
|
18
18
|
|
|
19
|
+
<a id="mybatis.binding"></a>
|
|
20
|
+
<!-- yss-rule {"id":"mybatis.binding","when":"mybatis","level":"mandatory","evidence":"code-and-verification"} -->
|
|
19
21
|
- 基类、Mapper 注解、XML 位置和扫描范围以批准 Profile、当前工程基线及当前组件源码共同决定;不得在既有体系外再造 Mapper 抽象。
|
|
22
|
+
<a id="mybatis.pagination"></a>
|
|
23
|
+
<!-- yss-rule {"id":"mybatis.pagination","when":"pagination","level":"mandatory","evidence":"code-and-verification"} -->
|
|
20
24
|
- 一条查询 seam 只能有一个分页责任模型。核对实际插件/切面开关、拦截范围、参数绑定条件和返回 total 的责任,不以“依赖已引入”代替行为验证。
|
|
25
|
+
<a id="mybatis.batch"></a>
|
|
26
|
+
<!-- yss-rule {"id":"mybatis.batch","when":"batch","level":"mandatory","evidence":"code-and-verification"} -->
|
|
21
27
|
- 批量写入必须证明是组件当前支持的 SQL 级批量能力,并验证分批大小、字段填充、主键和数据库方言;循环单条写入不能冒充批量 SQL。
|
|
22
28
|
- 多数据源实例创建不等于动态路由、线程上下文切换或事务传播。先做 capability check;组件未提供的路由能力必须由批准的上层适配承担。
|
|
29
|
+
<a id="mybatis.mapping"></a>
|
|
30
|
+
<!-- yss-rule {"id":"mybatis.mapping","when":"mybatis","level":"mandatory","evidence":"code-and-verification"} -->
|
|
23
31
|
- Mapper/XML、逻辑删除、审计字段、主键策略、动态排序/分组白名单和参数绑定必须与数据合同一致;任何 SQL/DDL/索引新影响返回 `new_impacts`。
|
|
32
|
+
<a id="mybatis.transaction"></a>
|
|
33
|
+
<!-- yss-rule {"id":"mybatis.transaction","when":"mybatis","level":"mandatory","evidence":"code-and-verification"} -->
|
|
24
34
|
- 事务边界归批准的 Application 用例或 MVC service/core;Repository 不临时声明新的业务事务。
|
|
25
35
|
|
|
26
36
|
## 任务分流
|
|
@@ -5,6 +5,8 @@ description: "审查 YSS OpenAPI Draft 的需求覆盖、页面动作、响应
|
|
|
5
5
|
|
|
6
6
|
# YSS OpenAPI Draft Review
|
|
7
7
|
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
8
10
|
Use this skill after OpenAPI Draft creation and before Engineering Baseline / YSS DDD Review. It is a fail-closed contract review skill for design-time OpenAPI files under `docs/.scratch/<feature>/api/`; it does not bundle JSON or generate Orval clients.
|
|
9
11
|
|
|
10
12
|
## Required Inputs
|
|
@@ -51,7 +53,7 @@ Block if any of these are true:
|
|
|
51
53
|
- Pagination does not align with the `PageResult` profile or documented exception, or exposes `offset` / `needTotalCount` / `tempTotalCount` as client input.
|
|
52
54
|
- A response omits `x-yss-response-wrapper`, uses the compatibility `com.yss.cloud.dto.response` package for a new contract, writes Java generic notation as an OAS schema, or fails `YssResultMeta` + `allOf` + concrete `data` mapping.
|
|
53
55
|
- `code` is modeled as arbitrary object, `dataType` loses explicit nullability, or computed fields such as `totalPages` lack target wire evidence.
|
|
54
|
-
-
|
|
56
|
+
- An in-scope behavior lacks a contract-test seam. Select import, mapping coverage, validation, review, publish, export or optimistic-locking seams only when the Spec/API actually includes that behavior; record a reasoned not-applicable for absent operations. A read-only query does not acquire write/import/publish requirements.
|
|
55
57
|
- YAML contains lifecycle frontmatter / root metadata, or the proposed JSON client input is not explicitly deferred until Freeze and governance export.
|
|
56
58
|
|
|
57
59
|
## Output Contract
|
|
@@ -5,6 +5,8 @@ description: "维护、校验、冻结或导出 YSS OpenAPI 3.1 设计合同;
|
|
|
5
5
|
|
|
6
6
|
# YSS OpenAPI Governance
|
|
7
7
|
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
8
10
|
本 skill 负责 YSS OpenAPI 的 **YAML-first** 工作流:
|
|
9
11
|
|
|
10
12
|
```text
|
|
@@ -113,35 +115,6 @@ pnpm exec redocly bundle \
|
|
|
113
115
|
|
|
114
116
|
## 输出契约
|
|
115
117
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
### YAML Authority
|
|
121
|
-
- YAML: <docs/.scratch/<feature>/api/<feature>.yaml>
|
|
122
|
-
- OAS: 3.1.0
|
|
123
|
-
- YAML SHA-256: <sha256>
|
|
124
|
-
- Freeze record: <path / ref>
|
|
125
|
-
|
|
126
|
-
### Validation
|
|
127
|
-
- Lint command and result: <locked pnpm command / result>
|
|
128
|
-
- Validation record: <docs/.scratch/<feature>/api/<feature>-validation.yaml / verifier result / matching YAML SHA-256>
|
|
129
|
-
- YSS DTO wire profile: <`.agents/skills/yss-dto/references/openapi-wire-profile.yaml`, schema_version, verifier result>
|
|
130
|
-
- P0 field traceability: <source / operationId / schema / property path / shape / requiredness / constraints / error-test summary>
|
|
131
|
-
- Wrapper conformance: <`x-yss-response-wrapper`, `YssResultMeta`, `allOf`, concrete data schema, direction and forbidden-field result>
|
|
132
|
-
- `$ref` policy / approved exceptions: <details>
|
|
133
|
-
- Blocking findings: <file:line grounded finding>
|
|
134
|
-
|
|
135
|
-
### JSON Derivative
|
|
136
|
-
- JSON: <docs/.scratch/<feature>/api/<feature>.json>
|
|
137
|
-
- JSON SHA-256: <sha256>
|
|
138
|
-
- Redocly CLI / lockfile: <version and lock reference>
|
|
139
|
-
- Bundle command and metafile: <command / path>
|
|
140
|
-
- JSON validation result: <pass / blocked>
|
|
141
|
-
|
|
142
|
-
### Downstream Handoff
|
|
143
|
-
- Canonical JSON / frontend materialization SHA-256: <same sha / blocked>
|
|
144
|
-
- Frontend materialization path: <frontend/openapi/openapi.json / blocked>
|
|
145
|
-
- Existing frontend code generation: <manual command in target repository / blocked reason>
|
|
146
|
-
- Template boundary: <no frontend configuration, code-generation execution, or CI change>
|
|
147
|
-
```
|
|
118
|
+
执行治理或导出时,按 [输出契约](references/governance-output.md) 记录 YAML 权威、当前校验证据、JSON 派生与交接。不能只给自然语言完成声明;未冻结时不生成可供实现消费的 JSON。
|
|
119
|
+
|
|
120
|
+
API Contract Decision 可用 `scripts/api-contract-decision prepare` 自动生成来源摘要;v1 显式迁移用 `migrate --version <新版本> --output <新路径>`。候选保持 draft,审查、Freeze 绑定和工程契约批准仍由现有生命周期核验。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
## 输出契约
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
### Governance Result
|
|
5
|
+
<Draft / Approved for Freeze / Blocked / JSON Exported>
|
|
6
|
+
|
|
7
|
+
### YAML Authority
|
|
8
|
+
- YAML: <docs/.scratch/<feature>/api/<feature>.yaml>
|
|
9
|
+
- OAS: 3.1.0
|
|
10
|
+
- YAML SHA-256: <sha256>
|
|
11
|
+
- Freeze record: <path / ref>
|
|
12
|
+
|
|
13
|
+
### Validation
|
|
14
|
+
- Lint command and result: <locked pnpm command / result>
|
|
15
|
+
- Validation record: <docs/.scratch/<feature>/api/<feature>-validation.yaml / verifier result / matching YAML SHA-256>
|
|
16
|
+
- YSS DTO wire profile: <`.agents/skills/yss-dto/references/openapi-wire-profile.yaml`, schema_version, verifier result>
|
|
17
|
+
- P0 field traceability: <source / operationId / schema / property path / shape / requiredness / constraints / error-test summary>
|
|
18
|
+
- Wrapper conformance: <`x-yss-response-wrapper`, `YssResultMeta`, `allOf`, concrete data schema, direction and forbidden-field result>
|
|
19
|
+
- `$ref` policy / approved exceptions: <details>
|
|
20
|
+
- Blocking findings: <file:line grounded finding>
|
|
21
|
+
|
|
22
|
+
### JSON Derivative
|
|
23
|
+
- JSON: <docs/.scratch/<feature>/api/<feature>.json>
|
|
24
|
+
- JSON SHA-256: <sha256>
|
|
25
|
+
- Redocly CLI / lockfile: <version and lock reference>
|
|
26
|
+
- Bundle command and metafile: <command / path>
|
|
27
|
+
- JSON validation result: <pass / blocked>
|
|
28
|
+
|
|
29
|
+
### Downstream Handoff
|
|
30
|
+
- Canonical JSON / frontend materialization SHA-256: <same sha / blocked>
|
|
31
|
+
- Frontend materialization path: <frontend/openapi/openapi.json / blocked>
|
|
32
|
+
- Existing frontend code generation: <manual command in target repository / blocked reason>
|
|
33
|
+
- Template boundary: <no frontend configuration, code-generation execution, or CI change>
|
|
34
|
+
```
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yss-product-lifecycle
|
|
3
|
-
description: 编排 YSS
|
|
3
|
+
description: 编排 YSS 研发全生命周期;当阶段、产物、门禁或 Skill 路由不清晰时使用。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# YSS Product Lifecycle
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
合同阅读:`scripts/contract view`;见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
10
|
+
主控识别请求、仓库身份和可信阶段,计算 frontier、派发与验收工作单元;专项 Skill 负责设计、实现和独立审查。
|
|
9
11
|
|
|
10
12
|
文档按 `document_writing` 条件调用 `i-have-adhd`,并传递 `docs/process/document-writing.md` 规范。
|
|
11
13
|
|
|
@@ -21,7 +23,7 @@ description: 编排 YSS 产品或模块从机会调研到 Spec、原型、技术
|
|
|
21
23
|
| 数字人角色、运行时和会签策略 | `docs/agents/digital-human-roles.yaml` |
|
|
22
24
|
| 影响面、裁剪和模板维护强度 | `docs/process/harness-process-tailoring.md`、`docs/process/maintenance-intensity.yaml` |
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
用 `scripts/query-lifecycle-context` 查询合同:
|
|
25
27
|
|
|
26
28
|
```bash
|
|
27
29
|
scripts/query-lifecycle-context --mode route --stage stage.plan --work-unit work-unit.plan-requirements --include execution_efficiency
|
|
@@ -54,6 +56,8 @@ Plan 入口读取 `docs/plan/README.md` 和 `docs/process/plan-migration.md`,
|
|
|
54
56
|
|
|
55
57
|
聚合批准见 `gate_consolidation`。普通功能默认一个独立审查者,按能力缺口、冲突或外部制度增员;相邻检查组合审查、逐项留证。
|
|
56
58
|
|
|
59
|
+
项目职责与后端终点见 `execution_scopes`;恢复、编译和派发必须复验。保留产品设计门禁,后端交付不等于业务完成或发布。
|
|
60
|
+
|
|
57
61
|
### 用户决定
|
|
58
62
|
|
|
59
63
|
按角色表 `user_decision_policy` 和 `references/user-decisions.md` 先展示可审阅资产、范围、风险及后续动作,再取得提问者或其指定生物人的原始回复。数字人、超时和默认项不能代答。已有授权优先用 `continuation_ref` 核验延续;未知/实质变化或强制审批缺失才重新决定。缺陷和缺证据阻断,建议记待办;合同、验证及外部动作授权仍须满足。
|
|
@@ -67,11 +71,11 @@ Plan 入口读取 `docs/plan/README.md` 和 `docs/process/plan-migration.md`,
|
|
|
67
71
|
1. 从真实资产重建当前状态,查询当前 mode、stage、work-unit 及必要合同子树。
|
|
68
72
|
2. 评估影响面、上游新鲜度、门禁和阻塞,选择第一个未阻塞工作单元;不把 `not-applicable` 当作豁免。
|
|
69
73
|
3. 原生工作单元由主控持有正式资产;专项工作通过结构化任务包派发,只调用编排合同允许的 model-invoked skill。
|
|
70
|
-
4.
|
|
74
|
+
4. `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等兼容入口只可由用户显式调用。主控先预检输入、路径和门禁;入口按 `matt_invocation_boundary` 写入其产物并回交验收,不批准或改变 Ticket 就绪状态。原生资产仍归主控。
|
|
71
75
|
5. 先对照用户目标逐项验收,检查遗漏诉求、错误假设与尚未解决的问题,再验收 `Workflow Execution Result`:工作单元、合同、允许写路径、`context_reconciliation`、证据、实际验证、延期 seam、漂移和下一路由必须可核验。实现派发额外绑定当前 Slice Implementation Contract v3;其他阶段不得伪造该合同。
|
|
72
76
|
6. 在授权边界内继续下一工作单元;遇到人工决定、新授权、证据冲突、专项失败或合并/发布结论时暂停。暂停不得阻断无依赖的独立工作。
|
|
73
77
|
|
|
74
|
-
每个 `project-instance`
|
|
78
|
+
每个 `project-instance` 工作单元批准或流转前,回写稳定术语到唯一根 `CONTEXT.md`,并生成通过校验的 `context_reconciliation`。候选术语、错误路径、摘要漂移或未决冲突必须阻断。质量标准只由 `engineering-baseline` 定义一次;高风险影响按裁剪合同补充反证和残余风险。
|
|
75
79
|
|
|
76
80
|
## 面向业务角色
|
|
77
81
|
|
|
@@ -85,10 +89,12 @@ Plan → Spec(含正式草稿、恢复与显式 `to-spec`)写入前,按 `d
|
|
|
85
89
|
|
|
86
90
|
## 结果与暂停
|
|
87
91
|
|
|
88
|
-
|
|
92
|
+
咨询直接回答;工作单元保留完整结果,对外仅展示当前决定所需信息。
|
|
89
93
|
|
|
90
94
|
工作单元结果至少包含:模式、仓库身份、当前阶段和工作单元、影响面、资产与门禁状态、证据、新鲜度、Ticket/垂直切片/合同状态、`ready-for-agent` 结论、阻塞项、本轮动作、下一工作单元、暂停或继续理由、Ticket 同步和 Git checkpoint 判断。
|
|
91
95
|
|
|
92
96
|
暂停会签时追加门禁 ID、`role_id`、`runtime_id`、会签文件路径、推荐答案和恢复动作;恢复前运行适用验证器。只有同一候选快照通过全部适用审查轴与 fresh verification,才能提出合并、发布或完成结论;发布仍须生物人决定。
|
|
93
97
|
|
|
94
98
|
专项合同加载索引见 `references/orchestration.md`。
|
|
99
|
+
|
|
100
|
+
Plan / Spec / Design 追踪按 `docs/process/stage-tracking.md`。
|
package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml
CHANGED
|
@@ -53,7 +53,7 @@ review_verification:
|
|
|
53
53
|
|
|
54
54
|
checkpoint_policy:
|
|
55
55
|
strategy: consolidated
|
|
56
|
-
flush_on: [human_pause, handoff, implementation_entry, merge, release]
|
|
56
|
+
flush_on: [stage_exit, human_pause, handoff, implementation_entry, merge, release]
|
|
57
57
|
flush_immediately_on: [blocked, responsibility_changed, asset_approval]
|
|
58
58
|
preserve_stage_causality: true
|
|
59
59
|
required_stage_trace_fields: [stage, upstream_refs, artifact_refs, gate_decisions, downstream_impacts]
|
|
@@ -481,6 +481,15 @@ work_unit_routes:
|
|
|
481
481
|
skills: [yss-ui, yss-design-system, code-review]
|
|
482
482
|
applies_when: ui_impact
|
|
483
483
|
not_applicable_reason: no_ui_impact
|
|
484
|
+
work-unit.backend-delivery:
|
|
485
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
486
|
+
primary_skill: yss-product-lifecycle
|
|
487
|
+
supporting_skills: [code-review]
|
|
488
|
+
skills: [yss-product-lifecycle, code-review]
|
|
489
|
+
applies_when: execution_scope_plan_to_backend
|
|
490
|
+
not_applicable_reason: outside_plan_to_backend_execution_scope
|
|
491
|
+
verifier: scripts/complete-backend-delivery
|
|
492
|
+
completion: current-source-and-exported-package-verified
|
|
484
493
|
work-unit.code-review:
|
|
485
494
|
native: {source: yss-product-lifecycle, skill: code-review, invocation_mode: model-invoked}
|
|
486
495
|
primary_skill: code-review
|
|
@@ -628,6 +637,11 @@ transition_graph:
|
|
|
628
637
|
work-unit.technical-analysis: [work-unit.implementation-repository-preparation]
|
|
629
638
|
work-unit.implementation-repository-preparation: [work-unit.ticket-decomposition]
|
|
630
639
|
work-unit.ticket-decomposition: [work-unit.slice-implementation]
|
|
640
|
+
work-unit.slice-implementation: [work-unit.frontend-implementation-verification, work-unit.code-review]
|
|
641
|
+
work-unit.frontend-implementation-verification: [work-unit.code-review]
|
|
642
|
+
work-unit.code-review: [work-unit.release-and-retrospective, work-unit.slice-implementation, work-unit.backend-delivery]
|
|
643
|
+
work-unit.backend-delivery: []
|
|
644
|
+
work-unit.release-and-retrospective: []
|
|
631
645
|
forbidden_shortcuts:
|
|
632
646
|
- {from: work-unit.spec-synthesis, to: work-unit.implementation-repository-preparation}
|
|
633
647
|
- {from: work-unit.prototype-design, to: work-unit.implementation-repository-preparation}
|
|
@@ -1030,6 +1044,7 @@ ready_for_agent:
|
|
|
1030
1044
|
parent_ticket_as_implementation_ref: forbidden
|
|
1031
1045
|
|
|
1032
1046
|
frontend_implementation_plan:
|
|
1047
|
+
scope_interpretation: product_ui_impact_requires_design_but_only_owned_frontend_implementation_requires_this_plan
|
|
1033
1048
|
applies_when: [ui_impact]
|
|
1034
1049
|
required_before: [ready_for_agent]
|
|
1035
1050
|
required: [prototype_ref, spec_ref, visual_baseline, route_and_page_inventory, baseline_case_ids, desktop_viewport, narrow_viewport, state_cases, pnpm_commands]
|
|
@@ -1196,3 +1211,50 @@ gate_consolidation:
|
|
|
1196
1211
|
invalidation: affected_dependencies_or_authorization_change_only
|
|
1197
1212
|
historical_gate_records: read_only_no_automatic_approval_migration
|
|
1198
1213
|
verifier: scripts/verify-lifecycle-checkpoint
|
|
1214
|
+
|
|
1215
|
+
# 项目 opt-in 只选择此权威策略,不能传入自定义工作单元白名单。
|
|
1216
|
+
execution_scopes:
|
|
1217
|
+
plan-to-backend:
|
|
1218
|
+
activation_ref: .yss-execution-scope.yaml
|
|
1219
|
+
validator: scripts/lib/lifecycle-execution-scope.mjs
|
|
1220
|
+
terminal_work_unit: work-unit.backend-delivery
|
|
1221
|
+
terminal_record: .yss-backend-delivery.json
|
|
1222
|
+
allowed_work_units: [work-unit.entry-triage, work-unit.plan-opportunity, work-unit.plan-requirements, work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis, work-unit.prototype-design, work-unit.technical-analysis, work-unit.implementation-repository-preparation, work-unit.scaffold-generation, work-unit.ticket-decomposition, work-unit.slice-implementation, work-unit.code-review, work-unit.backend-delivery]
|
|
1223
|
+
route_overrides:
|
|
1224
|
+
work-unit.code-review: [work-unit.slice-implementation, work-unit.backend-delivery]
|
|
1225
|
+
work-unit.slice-implementation: [work-unit.code-review]
|
|
1226
|
+
work-unit.backend-delivery: []
|
|
1227
|
+
product_ui_design: retain-all-triggered-gates
|
|
1228
|
+
implementation_delivery_roles: [backend]
|
|
1229
|
+
implementation_ui_impact: false
|
|
1230
|
+
downstream_frontend_required_when_product_ui_impact: [owner, ticket_ref, verification_plan, target_version]
|
|
1231
|
+
consumer_capabilities: [backend-technical-design]
|
|
1232
|
+
completion_claim: backend-delivery-only
|
|
1233
|
+
business_completion: forbidden
|
|
1234
|
+
release: forbidden
|
|
1235
|
+
resume: revalidate-current-scope-approvals-and-delivery
|
|
1236
|
+
|
|
1237
|
+
# Package wire IDs remain immutable; each target resolves its own executable entry.
|
|
1238
|
+
consumer_entry_routes:
|
|
1239
|
+
yss-full-lifecycle:
|
|
1240
|
+
backend-technical-design:
|
|
1241
|
+
source_work_unit: work-unit.technical-design
|
|
1242
|
+
target_work_unit: work-unit.technical-analysis
|
|
1243
|
+
plan-to-backend:
|
|
1244
|
+
backend-technical-design:
|
|
1245
|
+
source_work_unit: work-unit.technical-design
|
|
1246
|
+
target_work_unit: work-unit.technical-analysis
|
|
1247
|
+
harness.backend-delivery:
|
|
1248
|
+
backend-technical-design:
|
|
1249
|
+
source_work_unit: work-unit.technical-design
|
|
1250
|
+
target_work_unit: work-unit.technical-design
|
|
1251
|
+
|
|
1252
|
+
stage_tracking:
|
|
1253
|
+
contract: docs/process/stage-tracking.md
|
|
1254
|
+
schema: docs/process/schemas/stage-tracking.schema.json
|
|
1255
|
+
verifier: scripts/stage-tracking
|
|
1256
|
+
configuration: tracker.lifecycle_tracking_version
|
|
1257
|
+
machine_state_owner: checkpoint.stage_tracking
|
|
1258
|
+
transition_checkpoint_ref: checkpoint_ref
|
|
1259
|
+
flush_on: [stage_exit, blocked, responsibility_changed, asset_approval]
|
|
1260
|
+
preserves: [ticket-state, gate-approval, profile-scope]
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
1. 按 `orchestration-contract.yaml.request_triage` 理解请求并选择模式,再识别仓库身份、任务规模和影响面;问题理解与澄清细节见 [请求分诊协议](request-triage.md)。
|
|
6
6
|
2. `setup readiness`:每个任务只执行一次,核对 tracker、五态标签和领域文档布局,并在本轮缓存结果;仅在 tracker、主远端、真实标签或配置变化时重查。
|
|
7
|
-
3. 加载父 Ticket/checkpoint
|
|
7
|
+
3. 加载父 Ticket/checkpoint 与真实资产,计算最近可信阶段;按 `docs/process/stage-tracking.md` 登记、恢复并核验当前阶段工作项,写入前确保 checkpoint 已持久化,工作单元结果带 checkpoint_ref。
|
|
8
8
|
4. 评估资产、门禁和 `stale`,选择第一个未阻塞工作单元。进入 `work-unit.slice-implementation` 前,必须先通过 `scripts/lib/lifecycle-transition.mjs` 的 Ticket 正式化、垂直切片绑定和合法 `next_route` 校验;父 Ticket、缺少垂直切片或 `ready-for-human` 的切片一律 `blocked`。
|
|
9
9
|
5. 执行最小生命周期工作单元:主控先按 `docs/process/schemas/digital-human-task-package.schema.json` 编译并校验任务包,再只实际调用允许的 model-invoked skill;原生工作单元可直接持有正式资产,Matt 兼容 user-invoked skill 仅作为 workflow reference,仍由用户显式启动。将结果归一化为 `Workflow Execution Result`,验收输出并回写状态与证据。任务包的 `contract.kind` 按工作单元选择;只有实现子任务使用 `slice-implementation` 并消费 Slice Implementation Contract,其他阶段不伪造该合同。
|
|
10
10
|
6. 若仍在授权和自动推进边界内,回到第 3 步;否则暂停。
|
|
11
11
|
|
|
12
12
|
不要仅输出下一个提示词后结束 `orchestrate`/`resume`。不要因进入业务代码阶段而退出主控;应把实现交给专项 skill,并在返回后继续核验。
|
|
13
13
|
|
|
14
|
-
连续阶段自动推进时累积 Ticket 同步和 Git
|
|
14
|
+
连续阶段自动推进时累积 Ticket 同步和 Git 判断证据,在阶段退出、人工暂停、handoff、进入实现、合并或发布边界集中 checkpoint。发生阻塞、责任人变化或资产需要单独批准时立即落 checkpoint,不因合并记录而丢失阶段因果关系。
|
|
15
15
|
|
|
16
16
|
## 执行成本
|
|
17
17
|
|
|
@@ -5,6 +5,8 @@ description: Use when a YSS feature has product-design impact on a primary flow,
|
|
|
5
5
|
|
|
6
6
|
# YSS Prototype Stage
|
|
7
7
|
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
8
10
|
把产品设计影响收敛为跨 Agent 一致的原型交付物、证据和生命周期回流合同。它不替代 `yss-product-lifecycle` 的门禁裁决,也不把原型当作生产前端代码。
|
|
9
11
|
|
|
10
12
|
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `docs/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
|
|
@@ -66,11 +68,7 @@ Design QA 合并 visual、layout、interaction、content、accessibility、cross
|
|
|
66
68
|
|
|
67
69
|
## 既有 UI 的交接入口
|
|
68
70
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
通过 `gate.product-design-approved` 的现有用户决定协议确认当前基线 manifest 原字节,Handoff v5 明确声明 `ui_baseline_kind: existing-ui-baseline`。截图、代码可运行或旧原型批准都不能替代该确认;本技能只能准备审阅资产,不代答或批准。发现任何 UI 改动,包括后端行为导致的体验变化,回到上述原型流程;新设计继续保留现有原型与验证要求。
|
|
72
|
-
|
|
73
|
-
消费者以 `scripts/preflight-delivery` 检查交付前提,再由 `scripts/lib/ui-baseline.mjs` 分派原型与既有基线。前端使用 Strategic Preflight v2 和 Delivery Acceptance v3 的通用 `baseline_case_ids` 承接;通过仅说明输入可核验,不授予写代码权限。
|
|
71
|
+
确认 UI、交互、状态和权限体验均无改动的跨仓既有工程,读取 [既有 UI 分支](references/existing-ui-entry.md),使用 existing-ui-baseline v1 和当前真实用户确认。任何 UI 改动回到上面的原型流程;输入核验不授予实现权限。
|
|
74
72
|
|
|
75
73
|
## AntD 组件补充
|
|
76
74
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## 既有 UI 的交接入口
|
|
2
|
+
|
|
3
|
+
现有工程需要跨仓交接且确认 UI、交互、状态和权限体验均无改动时,先读取 `docs/process/existing-ui-baseline.md`,使用独立 `existing-ui-baseline` v1,不进入 H1/H2 原型构建。绑定固定源码、锁文件、实际构建、原始动作、PNG 截图和真实 API 交换证据;可离线审阅不等于可离线运行原型。
|
|
4
|
+
|
|
5
|
+
通过 `gate.product-design-approved` 的现有用户决定协议确认当前基线 manifest 原字节,Handoff v5 明确声明 `ui_baseline_kind: existing-ui-baseline`。截图、代码可运行或旧原型批准都不能替代该确认;本技能只能准备审阅资产,不代答或批准。发现任何 UI 改动,包括后端行为导致的体验变化,回到上述原型流程;新设计继续保留现有原型与验证要求。
|
|
6
|
+
|
|
7
|
+
消费者以 `scripts/preflight-delivery` 检查交付前提,再由 `scripts/lib/ui-baseline.mjs` 分派原型与既有基线。前端使用 Strategic Preflight v2 和 Delivery Acceptance v3 的通用 `baseline_case_ids` 承接;通过仅说明输入可核验,不授予写代码权限。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
|
-
import { existsSync } from "
|
|
4
|
-
import { mkdir,
|
|
3
|
+
import { existsSync, readFile, readdir } from "../../../../scripts/lib/validation-phase.mjs";
|
|
4
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { pathToFileURL } from "node:url";
|
|
7
7
|
import { parseDocument, stringify } from "../../../../scripts/vendor/yaml.mjs";
|
|
@@ -10,21 +10,31 @@ description: 用于按批准的 YSS 架构与持久化合同实现或重构 PO
|
|
|
10
10
|
## 架构分流
|
|
11
11
|
|
|
12
12
|
1. 读取当前 Slice Implementation Contract 的 `architecture_identity`、`persistence_profile`、实现仓登记、数据合同、`allowed_write_paths` 和预期证据。
|
|
13
|
-
2.
|
|
13
|
+
2. 将架构身份与当前工程基线、既有工程观测(生成 Manifest 只证明历史来源)和 `docs/agents/yss-skill-registry.yaml` 核对;成熟度以注册表为准,不能把 `draft` 称为已支持。
|
|
14
14
|
3. 根据 `architecture_profile` **且只**加载一个文件:
|
|
15
15
|
- [target-domain-model](references/profiles/target-domain-model.md)
|
|
16
16
|
- [layered-mvc-service](references/profiles/layered-mvc-service.md)
|
|
17
17
|
- [mvc-data-analysis-v1](references/profiles/mvc-data-analysis-v1.md)
|
|
18
|
+
- [existing-domain-driven-maven](references/profiles/existing-domain-driven-maven.md)
|
|
19
|
+
- [existing-layered-mvc-maven](references/profiles/existing-layered-mvc-maven.md)
|
|
18
20
|
4. Profile 缺失、身份冲突、Manifest 漂移或数据输入不完整时返回 `blocked` / `drift` / `new_impacts`,不得选择“最像”的分支继续。
|
|
19
21
|
|
|
20
22
|
## 共用规则
|
|
21
23
|
|
|
24
|
+
<a id="repository.ownership"></a>
|
|
25
|
+
<!-- yss-rule {"id":"repository.ownership","when":"persistence","level":"mandatory","evidence":"code-and-verification"} -->
|
|
22
26
|
- 只实现批准合同已有的结构与 seam,不创建或改写 Domain Gateway、Application Query Port、service/core 接口或 Web/API DTO。
|
|
23
27
|
- 持久化 Profile 命中 MyBatis 时加载 `yss-mybatis`,以当前组件能力索引核验基类、分页、批量、扫描、XML 和数据源行为;本 Skill 不复制这些规则。
|
|
24
28
|
- POJO、转换和 Java 规范分别消费 Registry 编译出的 `lombok`、`mapstruct`、`alibaba-java-code-style`;不在此重复其注解和处理器规则。
|
|
29
|
+
<a id="repository.mapping"></a>
|
|
30
|
+
<!-- yss-rule {"id":"repository.mapping","when":"persistence","level":"mandatory","evidence":"code-and-verification"} -->
|
|
25
31
|
- 数据合同必须显式覆盖主键、逻辑删除、审计字段、空值、枚举/值对象映射和敏感字段;动态排序、分组与过滤必须使用批准白名单和参数绑定。
|
|
32
|
+
<a id="repository.transaction"></a>
|
|
33
|
+
<!-- yss-rule {"id":"repository.transaction","when":"persistence","level":"mandatory","evidence":"code-and-verification"} -->
|
|
26
34
|
- 事务归所选 Profile 的用例边界。Repository/Gateway Adapter 不临时新增业务事务,也不把数据库异常原文或凭据暴露给上层。
|
|
27
35
|
- 基础机械结构只有在合同标记 `controlled-generation`、metadata 完整且目标文件不存在时才可受控生成;查询语义、分页、并发、事务和迁移行为使用 `behavior-tdd`。
|
|
36
|
+
<a id="repository.sql"></a>
|
|
37
|
+
<!-- yss-rule {"id":"repository.sql","when":"persistence","level":"mandatory","evidence":"code-and-verification"} -->
|
|
28
38
|
- 发现 SQL、DDL、索引、数据模型或 API schema 新影响时立即暂停并返回 `new_impacts`,不能以 TODO 代替合同重编译。
|
|
29
39
|
|
|
30
40
|
## 产物与证据
|
|
@@ -46,3 +56,5 @@ description: 用于按批准的 YSS 架构与持久化合同实现或重构 PO
|
|
|
46
56
|
## 新脚手架平台约束
|
|
47
57
|
|
|
48
58
|
消费批准切片架构身份中的 `platform_configuration`,并与工程 Manifest、effective POM 和依赖树核对。命中 MyBatis 时,`framework.mybatis` 必须从该配置指向的 compatibility 条目解析出对当前架构有效的 `component_binding`;构件、摘要、源码 tree、证据或绑定状态不一致时回合同编译器阻断。Validation namespace、Jackson、starter 和处理器版本只消费解析后的精确平台事实,不在本 Skill 中按 Boot 大版本推导。不得在业务实现中升级、降级或替换 YSS 组件;平台迁移使用独立迁移工作单元。详见仓库共享合同 `docs/engineering/backend-platforms.md`。
|
|
59
|
+
|
|
60
|
+
只读审计可先盘点、记录缺失合同;不得用实施前置要求阻止发现既有违规。整改仍需批准合同,不因缺少生成 Manifest 阻断已有效登记的既有工程。
|
package/template/.agents/skills/yss-repository/references/profiles/existing-domain-driven-maven.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# existing-domain-driven-maven
|
|
2
|
+
|
|
3
|
+
复用注册表中的既有 DDD 身份及当前工程基线、观测 Manifest、build_units/role_paths。实际源码根和端口责任决定落点,不要求生成目录、类名或脚手架 Manifest。
|
|
4
|
+
|
|
5
|
+
领域聚合经 Domain Gateway,展示读模型经 Application Query Port;Infrastructure 只实现已有端口。
|
|
6
|
+
|
|
7
|
+
遵守主 Skill 的数据映射、白名单、参数绑定和持久化往返规则;业务事务归已批准用例层。Mapper 能力按 yss-mybatis 当前平台证据选择。无分页/批量需求不建空实现。角色无法映射记录 missing_evidence;改变端口、数据或架构回合同编译器。
|
package/template/.agents/skills/yss-repository/references/profiles/existing-layered-mvc-maven.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# existing-layered-mvc-maven
|
|
2
|
+
|
|
3
|
+
复用注册表中的既有 MVC 身份及当前工程基线、观测 Manifest、build_units/role_paths。实际源码根和端口责任决定落点,不要求生成目录、类名或脚手架 Manifest。
|
|
4
|
+
|
|
5
|
+
持久层实现已登记的 service/core 用例接口;不创建 DDD Gateway、聚合或 Application Query Port。
|
|
6
|
+
|
|
7
|
+
遵守主 Skill 的数据映射、白名单、参数绑定和持久化往返规则;业务事务归已批准用例层。Mapper 能力按 yss-mybatis 当前平台证据选择。无分页/批量需求不建空实现。角色无法映射记录 missing_evidence;改变端口、数据或架构回合同编译器。
|
|
@@ -2,6 +2,7 @@ import assert from "node:assert/strict";
|
|
|
2
2
|
import { access, readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import test from "node:test";
|
|
5
|
+
import { parseDocument } from "../../../../scripts/vendor/yaml.mjs";
|
|
5
6
|
import { fileURLToPath } from "node:url";
|
|
6
7
|
|
|
7
8
|
const repositorySkillRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
@@ -15,7 +16,8 @@ async function text(target) {
|
|
|
15
16
|
test("repository router exposes exactly the registered profile entry points", async () => {
|
|
16
17
|
const profilesRoot = path.join(repositorySkillRoot, "references/profiles");
|
|
17
18
|
const profiles = (await readdir(profilesRoot)).filter((name) => name.endsWith(".md")).sort();
|
|
18
|
-
|
|
19
|
+
const registry = parseDocument(await text(path.join(projectRoot, "docs/agents/yss-skill-registry.yaml"))).toJS();
|
|
20
|
+
assert.deepEqual(profiles, [...Object.keys(registry.architecture_profiles), ...Object.keys(registry.existing_project_profiles)].map(id => `${id}.md`).sort());
|
|
19
21
|
|
|
20
22
|
const skill = await text(path.join(repositorySkillRoot, "SKILL.md"));
|
|
21
23
|
for (const profile of profiles) assert.match(skill, new RegExp(`references/profiles/${profile.replace(".md", "")}`));
|
|
@@ -5,6 +5,8 @@ description: 编排 Plan 到 Spec 入口的方案决策与业务边界、协作
|
|
|
5
5
|
|
|
6
6
|
# YSS Stage Decision
|
|
7
7
|
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
8
10
|
`yss-stage-decision` 是由生命周期主控调度的上游决策技能,负责把需求、产品、商务输入和业务边界与规则设计结果整理成可审查、可版本化、可被下游消费的方案决策包。它不替代生命周期主控,也不生成产品代码、原型、OpenAPI 或垂直切片 Ticket。
|
|
9
11
|
|
|
10
12
|
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `docs/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
|
|
@@ -69,4 +71,4 @@ Plan 的目标与退出条件由 `docs/process/lifecycle-registry.yaml` 持有
|
|
|
69
71
|
|
|
70
72
|
## 战略交接快照包
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
跨仓交付或恢复时读取 [战略交接合同](references/strategic-handoff-routing.md)。只接受当前可核验包与承接结果;用户决定、版本失效和批准边界仍由主控持有。
|
|
@@ -5,6 +5,8 @@ description: 在 YSS 技术分析阶段将批准的战略领域输入细化为
|
|
|
5
5
|
|
|
6
6
|
# yss-tactical-design
|
|
7
7
|
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
8
10
|
本 skill 负责 DDD 战术设计,不新增生命周期主阶段,也不替代 `yss-stage-decision` 或 `yss-domain`。
|
|
9
11
|
|
|
10
12
|
## 适用边界
|
|
@@ -36,9 +38,7 @@ description: 在 YSS 技术分析阶段将批准的战略领域输入细化为
|
|
|
36
38
|
|
|
37
39
|
## 战略交接快照包
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
战术合同必须绑定 `strategic_handoff` 导入收据、包摘要、正式目标对账及逐条承接 rows。来自导入包时禁止仅填 `upstream_current: true`。批准前执行 `scripts/verify-strategic-handoff-consumption --root <target> <tactical>`;存在受控延期时按切片执行 `--slice <slice-id>`,实际核验通过且合同批准后才可继续相关切片。最新源规则、关键场景或资产变化使依赖项 stale;未知依赖扩大阻断,业务冲突回交战略方。结果绑定当前包与战术摘要,不能复用旧输出宣布 ready-for-agent。
|
|
41
|
+
仅在输入来自战略交接包时,读取 [战略承接核验](references/strategic-handoff-routing.md),绑定收据、摘要和逐规则承接;源变化或未知依赖阻断并回交主控。
|
|
42
42
|
|
|
43
43
|
## 后端脚手架平台承接
|
|
44
44
|
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
## 战略交接快照包
|
|
2
|
+
|
|
3
|
+
跨仓交接使用 `scripts/strategic-handoff export / verify / import`。正式导出前补齐源战略的稳定规则 ID、关键场景和当前批准绑定;源资产原字节冻结、包内路径通过清单解析。目标导入只产生快照和对账/承接草案,正式 reconciliation 通过后才能进入战术设计。流程与字段见 `docs/process/strategic-handoff-package.md`。
|
|
4
|
+
|
|
5
|
+
战术合同必须绑定 `strategic_handoff` 导入收据、包摘要、正式目标对账及逐条承接 rows。来自导入包时禁止仅填 `upstream_current: true`。批准前执行 `scripts/verify-strategic-handoff-consumption --root <target> <tactical>`;存在受控延期时按切片执行 `--slice <slice-id>`,实际核验通过且合同批准后才可继续相关切片。最新源规则、关键场景或资产变化使依赖项 stale;未知依赖扩大阻断,业务冲突回交战略方。结果绑定当前包与战术摘要,不能复用旧输出宣布 ready-for-agent。
|
|
@@ -5,6 +5,8 @@ description: 在 YSS 技术分析中统一承接需求与战略输入,按已
|
|
|
5
5
|
|
|
6
6
|
# YSS 技术设计
|
|
7
7
|
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
|
|
9
|
+
|
|
8
10
|
由 `yss-product-lifecycle` 调度,负责 `work-unit.technical-analysis` 的技术设计,不另起生命周期、不生成生产代码。生命周期维护批准和状态;`yss-implementation-contract-compiler` 消费批准且当前的设计,起草实现合同。
|
|
9
11
|
|
|
10
12
|
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `docs/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import {readFileSync} from '
|
|
2
|
+
import {readFileSync} from '../../../../scripts/lib/validation-phase.mjs';
|
|
3
3
|
import {ensure,read,safe,hash} from '../../../../scripts/lib/strategic-handoff-io.mjs';
|
|
4
4
|
const beneath=(ref,scope)=>ref===scope||ref.startsWith(`${scope}/`);
|
|
5
5
|
export function validateEngineeringDesign(data,{root}) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { readFileSync } from '
|
|
2
|
+
import { readFileSync, withValidationPhase, validationDependencies } from '../../../../scripts/lib/validation-phase.mjs';
|
|
3
3
|
import { validateEngineeringDesign } from './engineering-design.mjs';
|
|
4
4
|
import { createApprovedExecutionContext, assertApprovedExecutionContext } from '../../../../scripts/lib/approved-execution-context.mjs';
|
|
5
5
|
import { verifyArchitectureEvidence } from '../../../../scripts/lib/backend-architecture.mjs';
|
|
@@ -42,8 +42,8 @@ function validateMvc(design) {
|
|
|
42
42
|
if (!design.integration_catalog.length) ensure(text(design.integration_not_applicable_reason), '无外部集成必须说明原因');
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export function verifyArchitecture(data, root, {execution,sliceRef}={}) {
|
|
46
|
-
if(execution)assertApprovedExecutionContext(execution,{root,technicalDesign:data,sliceId:sliceRef});
|
|
45
|
+
export function verifyArchitecture(data, root, {execution,sliceRef,readOnly=false}={}) {
|
|
46
|
+
if(execution)assertApprovedExecutionContext(execution,{root,technicalDesign:data,sliceId:sliceRef,readOnly});
|
|
47
47
|
const binding = data.architecture;
|
|
48
48
|
const file = safe(root, binding.decision_ref);
|
|
49
49
|
ensure(hash(readFileSync(file)) === binding.decision_digest, '架构来源摘要漂移');
|
|
@@ -63,7 +63,7 @@ export function verifyArchitecture(data, root, {execution,sliceRef}={}) {
|
|
|
63
63
|
ensure(!['stale','blocked'].includes(record.status) && !['stale','blocked'].includes(entry.status), '工程登记已失效');
|
|
64
64
|
if (entry.architecture_identity?.schema_version === 2) {
|
|
65
65
|
ensure(entry.architecture_evidence?.engineering_baseline && entry.architecture_evidence?.manifest, '既有工程登记缺少原始工程证据引用');
|
|
66
|
-
verifyArchitectureEvidence(entry.architecture_identity, { ...entry.architecture_evidence, repository_registration: { ref: binding.decision_ref, digest: binding.decision_digest } }, { root, execution });
|
|
66
|
+
verifyArchitectureEvidence(entry.architecture_identity, { ...entry.architecture_evidence, repository_registration: { ref: binding.decision_ref, digest: binding.decision_digest } }, { root, execution, readOnly });
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -111,7 +111,7 @@ export async function validateTechnicalDesign(data, { root = process.cwd(), slic
|
|
|
111
111
|
ensure(data.digest === technicalDigest(data), '技术设计合同摘要不匹配');
|
|
112
112
|
ensure(!['stale','blocked','drift','new_impacts'].includes(data.status), '设计状态不可消费');
|
|
113
113
|
if (sliceRef) ensure(data.status === 'approved', '切片只能消费 approved 设计');
|
|
114
|
-
verifyArchitecture(data, root, {execution,sliceRef});
|
|
114
|
+
verifyArchitecture(data, root, {execution,sliceRef,readOnly});
|
|
115
115
|
ensure(data.inputs.some(item => item.kind === 'context' && item.ref === 'CONTEXT.md') && data.inputs.some(item => item.kind === 'spec'), '共同输入缺少根 CONTEXT.md 或 Spec');
|
|
116
116
|
for (const input of data.inputs) ensure(hash(readFileSync(safe(root, input.ref))) === input.digest, `输入摘要漂移: ${input.ref}`);
|
|
117
117
|
for (const ref of data.evidence_refs) safe(root, ref);
|
|
@@ -135,12 +135,15 @@ export async function validateTechnicalDesign(data, { root = process.cwd(), slic
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
async function main() {
|
|
138
|
-
const { values, positionals } = parseArgs({ allowPositionals: true, options: { root: { type: 'string', default: process.cwd() }, slice: { type: 'string' }, 'legacy-ddd': { type: 'boolean', default: false }, 'read-only': {type:'boolean',default:false}, 'work-unit': {type:'string'}, 'approved-slice': {type:'string'}, 'approved-slice-digest': {type:'string'}, 'approved-slice-approval': {type:'string'} } });
|
|
138
|
+
const { values, positionals } = parseArgs({ allowPositionals: true, options: { root: { type: 'string', default: process.cwd() }, slice: { type: 'string' }, 'legacy-ddd': { type: 'boolean', default: false }, 'read-only': {type:'boolean',default:false}, 'validation-dependencies': {type:'boolean',default:false}, 'work-unit': {type:'string'}, 'approved-slice': {type:'string'}, 'approved-slice-digest': {type:'string'}, 'approved-slice-approval': {type:'string'} } });
|
|
139
139
|
ensure(positionals.length === 1, '用法: validate-technical-design.mjs <合同> --root <项目根> [--slice <ID>] [--legacy-ddd]');
|
|
140
140
|
const approvedOptions=['approved-slice','approved-slice-digest','approved-slice-approval'];
|
|
141
141
|
ensure(!approvedOptions.some(key=>values[key])||approvedOptions.every(key=>values[key]),'执行增量必须完整给出持久化 Slice、字节摘要及本地批准引用');
|
|
142
|
-
const
|
|
142
|
+
const output=await withValidationPhase({root:values.root,purpose:'technical-design',slice_id:values.slice,work_unit_id:values['work-unit'],readOnly:values['read-only']},async()=>{
|
|
143
|
+
const execution=values['approved-slice']?createApprovedExecutionContext({ref:values['approved-slice'],digest:values['approved-slice-digest'],approval_ref:values['approved-slice-approval']},{root:values.root,work_unit_id:values['work-unit'],readOnly:values['read-only']}):undefined;
|
|
143
144
|
const result = await validateTechnicalDesign(read(path.resolve(positionals[0])), { root: values.root, sliceRef: values.slice, legacyDdd: values['legacy-ddd'], readOnly:values['read-only'], execution });
|
|
144
|
-
|
|
145
|
+
return values['validation-dependencies']?{...result,validation_dependencies:validationDependencies()}:result;
|
|
146
|
+
});
|
|
147
|
+
process.stdout.write(`${JSON.stringify(output, null, 2)}\n`);
|
|
145
148
|
}
|
|
146
149
|
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) main().catch(error => { process.stderr.write(`${JSON.stringify({ result: 'blocked', errors: [error.message] })}\n`); process.exitCode = 1; });
|