create-yss-spec 3.5.2 → 3.5.3
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/package.json +1 -1
- package/src/template/asset-runtime.js +3 -1
- package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
- package/template/.agents/skills/codebase-design/SKILL.md +4 -0
- package/template/{.codex/skills/improve-codebase-architecture/SKILL.md → .agents/skills/codebase-design/references/architecture-audit.md} +3 -9
- package/template/.agents/skills/frontend-commit/SKILL.md +4 -93
- package/template/.agents/skills/git-commit-core/SKILL.md +18 -0
- package/template/.agents/skills/java-backend-commit/SKILL.md +4 -96
- package/template/.agents/skills/llm-wiki/SKILL.md +12 -13
- package/template/.agents/skills/llm-wiki/assets/CLAUDE.md.template +7 -1
- package/template/.agents/skills/llm-wiki/references/compile.md +21 -114
- package/template/.agents/skills/llm-wiki/references/ingest.md +8 -33
- package/template/.agents/skills/llm-wiki/references/lint.md +9 -46
- package/template/.agents/skills/llm-wiki/references/query.md +9 -18
- package/template/.agents/skills/llm-wiki/references/schema.md +56 -29
- package/template/.agents/skills/llm-wiki/references/transactions.md +48 -0
- package/template/.agents/skills/llm-wiki/references/writing.md +4 -4
- package/template/.agents/skills/llm-wiki/scripts/advise.mjs +46 -58
- package/template/.agents/skills/llm-wiki/scripts/advise.test.mjs +11 -16
- package/template/.agents/skills/llm-wiki/scripts/core.mjs +262 -0
- package/template/.agents/skills/llm-wiki/scripts/extract.mjs +35 -18
- package/template/.agents/skills/llm-wiki/scripts/extract.test.mjs +5 -8
- package/template/.agents/skills/llm-wiki/scripts/feedback.mjs +51 -0
- package/template/.agents/skills/llm-wiki/scripts/inventory.mjs +43 -171
- package/template/.agents/skills/llm-wiki/scripts/inventory.test.mjs +25 -18
- package/template/.agents/skills/llm-wiki/scripts/lint-wikilinks.mjs +69 -92
- package/template/.agents/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +25 -37
- package/template/.agents/skills/llm-wiki/scripts/migrate.mjs +51 -0
- package/template/.agents/skills/llm-wiki/scripts/query.mjs +149 -0
- package/template/.agents/skills/llm-wiki/scripts/regressions.test.mjs +101 -0
- package/template/.agents/skills/llm-wiki/scripts/sources.mjs +166 -0
- package/template/.agents/skills/llm-wiki/scripts/transaction.mjs +384 -0
- package/template/.agents/skills/llm-wiki/scripts/v2.test.mjs +354 -0
- package/template/.agents/skills/prototype/LOGIC.md +1 -1
- package/template/.agents/skills/prototype/SKILL.md +5 -19
- package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +3 -3
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +2 -3
- package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +14 -0
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +8 -8
- package/template/.agents/skills/yss-product-lifecycle/references/external-input-questionnaire.md +19 -0
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +20 -4
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/references/plan-requirements.md +10 -0
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.agents/skills/yss-research/SKILL.md +4 -0
- package/template/.codex/skills/codebase-design/SKILL.md +4 -0
- package/template/{.pi/skills/improve-codebase-architecture/SKILL.md → .codex/skills/codebase-design/references/architecture-audit.md} +3 -9
- package/template/.codex/skills/frontend-commit/SKILL.md +4 -93
- package/template/.codex/skills/git-commit-core/SKILL.md +18 -0
- package/template/.codex/skills/java-backend-commit/SKILL.md +4 -96
- package/template/.codex/skills/llm-wiki/SKILL.md +12 -13
- package/template/.codex/skills/llm-wiki/assets/CLAUDE.md.template +7 -1
- package/template/.codex/skills/llm-wiki/references/compile.md +21 -114
- package/template/.codex/skills/llm-wiki/references/ingest.md +8 -33
- package/template/.codex/skills/llm-wiki/references/lint.md +9 -46
- package/template/.codex/skills/llm-wiki/references/query.md +9 -18
- package/template/.codex/skills/llm-wiki/references/schema.md +56 -29
- package/template/.codex/skills/llm-wiki/references/transactions.md +48 -0
- package/template/.codex/skills/llm-wiki/references/writing.md +4 -4
- package/template/.codex/skills/llm-wiki/scripts/advise.mjs +46 -58
- package/template/.codex/skills/llm-wiki/scripts/advise.test.mjs +11 -16
- package/template/.codex/skills/llm-wiki/scripts/core.mjs +262 -0
- package/template/.codex/skills/llm-wiki/scripts/extract.mjs +35 -18
- package/template/.codex/skills/llm-wiki/scripts/extract.test.mjs +5 -8
- package/template/.codex/skills/llm-wiki/scripts/feedback.mjs +51 -0
- package/template/.codex/skills/llm-wiki/scripts/inventory.mjs +43 -171
- package/template/.codex/skills/llm-wiki/scripts/inventory.test.mjs +25 -18
- package/template/.codex/skills/llm-wiki/scripts/lint-wikilinks.mjs +69 -92
- package/template/.codex/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +25 -37
- package/template/.codex/skills/llm-wiki/scripts/migrate.mjs +51 -0
- package/template/.codex/skills/llm-wiki/scripts/query.mjs +149 -0
- package/template/.codex/skills/llm-wiki/scripts/regressions.test.mjs +101 -0
- package/template/.codex/skills/llm-wiki/scripts/sources.mjs +166 -0
- package/template/.codex/skills/llm-wiki/scripts/transaction.mjs +384 -0
- package/template/.codex/skills/llm-wiki/scripts/v2.test.mjs +354 -0
- package/template/.codex/skills/prototype/LOGIC.md +1 -1
- package/template/.codex/skills/prototype/SKILL.md +5 -19
- package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +3 -3
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +2 -3
- package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +14 -0
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +8 -8
- package/template/.codex/skills/yss-product-lifecycle/references/external-input-questionnaire.md +19 -0
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +20 -4
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/references/plan-requirements.md +10 -0
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.codex/skills/yss-research/SKILL.md +4 -0
- package/template/.cursor/skills/codebase-design/SKILL.md +4 -0
- package/template/.cursor/skills/{improve-codebase-architecture/SKILL.md → codebase-design/references/architecture-audit.md} +3 -9
- package/template/.cursor/skills/frontend-commit/SKILL.md +4 -93
- package/template/.cursor/skills/git-commit-core/SKILL.md +18 -0
- package/template/.cursor/skills/java-backend-commit/SKILL.md +4 -96
- package/template/.cursor/skills/llm-wiki/SKILL.md +12 -13
- package/template/.cursor/skills/llm-wiki/assets/CLAUDE.md.template +7 -1
- package/template/.cursor/skills/llm-wiki/references/compile.md +21 -114
- package/template/.cursor/skills/llm-wiki/references/ingest.md +8 -33
- package/template/.cursor/skills/llm-wiki/references/lint.md +9 -46
- package/template/.cursor/skills/llm-wiki/references/query.md +9 -18
- package/template/.cursor/skills/llm-wiki/references/schema.md +56 -29
- package/template/.cursor/skills/llm-wiki/references/transactions.md +48 -0
- package/template/.cursor/skills/llm-wiki/references/writing.md +4 -4
- package/template/.cursor/skills/llm-wiki/scripts/advise.mjs +46 -58
- package/template/.cursor/skills/llm-wiki/scripts/advise.test.mjs +11 -16
- package/template/.cursor/skills/llm-wiki/scripts/core.mjs +262 -0
- package/template/.cursor/skills/llm-wiki/scripts/extract.mjs +35 -18
- package/template/.cursor/skills/llm-wiki/scripts/extract.test.mjs +5 -8
- package/template/.cursor/skills/llm-wiki/scripts/feedback.mjs +51 -0
- package/template/.cursor/skills/llm-wiki/scripts/inventory.mjs +43 -171
- package/template/.cursor/skills/llm-wiki/scripts/inventory.test.mjs +25 -18
- package/template/.cursor/skills/llm-wiki/scripts/lint-wikilinks.mjs +69 -92
- package/template/.cursor/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +25 -37
- package/template/.cursor/skills/llm-wiki/scripts/migrate.mjs +51 -0
- package/template/.cursor/skills/llm-wiki/scripts/query.mjs +149 -0
- package/template/.cursor/skills/llm-wiki/scripts/regressions.test.mjs +101 -0
- package/template/.cursor/skills/llm-wiki/scripts/sources.mjs +166 -0
- package/template/.cursor/skills/llm-wiki/scripts/transaction.mjs +384 -0
- package/template/.cursor/skills/llm-wiki/scripts/v2.test.mjs +354 -0
- package/template/.cursor/skills/prototype/LOGIC.md +1 -1
- package/template/.cursor/skills/prototype/SKILL.md +5 -19
- package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +3 -3
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +2 -3
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +14 -0
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +8 -8
- package/template/.cursor/skills/yss-product-lifecycle/references/external-input-questionnaire.md +19 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +20 -4
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/plan-requirements.md +10 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.cursor/skills/yss-research/SKILL.md +4 -0
- package/template/.pi/skills/codebase-design/SKILL.md +4 -0
- package/template/{.agents/skills/improve-codebase-architecture/SKILL.md → .pi/skills/codebase-design/references/architecture-audit.md} +3 -9
- package/template/.pi/skills/frontend-commit/SKILL.md +4 -93
- package/template/.pi/skills/git-commit-core/SKILL.md +18 -0
- package/template/.pi/skills/java-backend-commit/SKILL.md +4 -96
- package/template/.pi/skills/llm-wiki/SKILL.md +12 -13
- package/template/.pi/skills/llm-wiki/assets/CLAUDE.md.template +7 -1
- package/template/.pi/skills/llm-wiki/references/compile.md +21 -114
- package/template/.pi/skills/llm-wiki/references/ingest.md +8 -33
- package/template/.pi/skills/llm-wiki/references/lint.md +9 -46
- package/template/.pi/skills/llm-wiki/references/query.md +9 -18
- package/template/.pi/skills/llm-wiki/references/schema.md +56 -29
- package/template/.pi/skills/llm-wiki/references/transactions.md +48 -0
- package/template/.pi/skills/llm-wiki/references/writing.md +4 -4
- package/template/.pi/skills/llm-wiki/scripts/advise.mjs +46 -58
- package/template/.pi/skills/llm-wiki/scripts/advise.test.mjs +11 -16
- package/template/.pi/skills/llm-wiki/scripts/core.mjs +262 -0
- package/template/.pi/skills/llm-wiki/scripts/extract.mjs +35 -18
- package/template/.pi/skills/llm-wiki/scripts/extract.test.mjs +5 -8
- package/template/.pi/skills/llm-wiki/scripts/feedback.mjs +51 -0
- package/template/.pi/skills/llm-wiki/scripts/inventory.mjs +43 -171
- package/template/.pi/skills/llm-wiki/scripts/inventory.test.mjs +25 -18
- package/template/.pi/skills/llm-wiki/scripts/lint-wikilinks.mjs +69 -92
- package/template/.pi/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +25 -37
- package/template/.pi/skills/llm-wiki/scripts/migrate.mjs +51 -0
- package/template/.pi/skills/llm-wiki/scripts/query.mjs +149 -0
- package/template/.pi/skills/llm-wiki/scripts/regressions.test.mjs +101 -0
- package/template/.pi/skills/llm-wiki/scripts/sources.mjs +166 -0
- package/template/.pi/skills/llm-wiki/scripts/transaction.mjs +384 -0
- package/template/.pi/skills/llm-wiki/scripts/v2.test.mjs +354 -0
- package/template/.pi/skills/prototype/LOGIC.md +1 -1
- package/template/.pi/skills/prototype/SKILL.md +5 -19
- package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +3 -3
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +2 -3
- package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +14 -0
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +8 -8
- package/template/.pi/skills/yss-product-lifecycle/references/external-input-questionnaire.md +19 -0
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +20 -4
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/references/plan-requirements.md +10 -0
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.pi/skills/yss-research/SKILL.md +4 -0
- package/template/.template-spec/agents/README.md +1 -1
- package/template/.template-spec/agents/digital-human-roles.yaml +1 -1
- package/template/.template-spec/agents/skill-migrations.md +15 -0
- package/template/.template-spec/agents/yss-skill-registry.yaml +10 -29
- package/template/.template-spec/architecture/README.md +3 -34
- package/template/.template-spec/plan/templates/competitive-analysis-template.md +2 -2
- package/template/.template-spec/process/contract-reading.md +24 -0
- package/template/.template-spec/process/lifecycle-registry-baseline.json +3 -1
- package/template/.template-spec/process/lifecycle-registry.yaml +6 -0
- package/template/.template-spec/process/research-completion.md +23 -0
- package/template/.template-spec/process/schemas/digital-human-task-package.schema.json +202 -12
- package/template/.template-spec/process/schemas/frontend-implementation-evidence.schema.json +7 -15
- package/template/.template-spec/process/subagent-collaboration.md +8 -0
- package/template/.template-spec/process/templates/frontend-implementation-verification-template.yaml +15 -1
- package/template/AGENTS.md +1 -1
- package/template/CONTEXT.md +5 -1
- package/template/README.md +12 -24
- package/template/scripts/contract +5 -5
- package/template/scripts/lib/contract-views.mjs +57 -2
- package/template/scripts/lib/execution-evidence.mjs +51 -0
- package/template/scripts/lib/harness-execution-scope.mjs +1 -1
- package/template/scripts/lib/implementation-contract-compiler.mjs +2 -0
- package/template/scripts/lib/lifecycle-context-query.mjs +15 -3
- package/template/scripts/lib/lifecycle-status.mjs +32 -6
- package/template/scripts/lib/lifecycle-transition.mjs +19 -1
- package/template/scripts/lib/maintenance-research.mjs +63 -0
- package/template/scripts/lib/read-only-intake.mjs +132 -0
- package/template/scripts/lib/skill-registry.mjs +2 -1
- package/template/scripts/lib/skill-supply-chain.mjs +4 -0
- package/template/scripts/lib/slice-task-package.mjs +1 -1
- package/template/scripts/lib/task-package.mjs +9 -2
- package/template/scripts/lifecycle-status +2 -2
- package/template/scripts/prepare-read-only-intake +16 -0
- package/template/scripts/run-read-only-intake +14 -0
- package/template/scripts/verify-digital-human-task-package +2 -2
- package/template/scripts/verify-frontend-implementation-evidence +24 -1
- package/template/scripts/verify-maintenance-research +13 -0
- package/template/skills-lock.json +19 -76
- package/template.manifest.json +118 -29
- package/template.snapshot.json +5 -6
- package/template/.agents/skills/grill-with-docs/SKILL.md +0 -20
- package/template/.agents/skills/grill-with-docs/agents/openai.yaml +0 -5
- package/template/.agents/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
- package/template/.agents/skills/prototype/UI.md +0 -112
- package/template/.agents/skills/setup-matt-pocock-skills/domain.md +0 -37
- package/template/.agents/skills/to-questionnaire/SKILL.md +0 -55
- package/template/.agents/skills/to-questionnaire/agents/openai.yaml +0 -5
- package/template/.agents/skills/wait-what/SKILL.md +0 -7
- package/template/.agents/skills/wait-what/agents/openai.yaml +0 -5
- package/template/.codex/skills/data-analytics/.app.json +0 -84
- package/template/.codex/skills/data-analytics/.codex-plugin/plugin.json +0 -66
- package/template/.codex/skills/data-analytics/.mcp.json +0 -30
- package/template/.codex/skills/data-analytics/AGENTS.md +0 -20
- package/template/.codex/skills/data-analytics/DEPENDENCIES.MD +0 -27
- package/template/.codex/skills/data-analytics/README.md +0 -60
- package/template/.codex/skills/data-analytics/__yss_dotfile__.gitignore +0 -2
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html +0 -16
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part001 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part002 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part003 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part004 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part005 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part006 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html +0 -16
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part001 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part002 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part003 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part004 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part005 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part006 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part007 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-small.svg +0 -5
- package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html +0 -16
- package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part001 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part002 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part003 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part004 +0 -1
- package/template/.codex/skills/data-analytics/assets/datascience.png +0 -0
- package/template/.codex/skills/data-analytics/assets/datascience.svg +0 -10
- package/template/.codex/skills/data-analytics/mcp/server.cjs +0 -2964
- package/template/.codex/skills/data-analytics/package-lock.json +0 -3048
- package/template/.codex/skills/data-analytics/package.json +0 -43
- package/template/.codex/skills/data-analytics/scripts/normalize-widget-assets.mjs +0 -75
- package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +0 -137
- package/template/.codex/skills/data-analytics/skills/analyze-data-quality/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/analyze-data-quality/references/quality-checks.md +0 -29
- package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +0 -148
- package/template/.codex/skills/data-analytics/skills/build-dashboard/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/bi-platform-dashboard.md +0 -18
- package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/html-dashboard.md +0 -24
- package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/mcp-artifact-dashboard.md +0 -71
- package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/streamlit-dashboard.md +0 -85
- package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +0 -207
- package/template/.codex/skills/data-analytics/skills/build-report/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/build-report/assets/executive-report-shell.html +0 -70
- package/template/.codex/skills/data-analytics/skills/build-report/assets/technical-report-shell.html +0 -66
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/SKILL.md +0 -108
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/__init__.py +0 -1
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/cli.py +0 -52
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/constants.py +0 -61
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/docx_writer.py +0 -362
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/html_parser.py +0 -829
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/model.py +0 -30
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/plan.py +0 -127
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/quality.py +0 -374
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/rendering.py +0 -613
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/table_utils.py +0 -54
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/utils.py +0 -16
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc_plan.py +0 -9
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/tests/test_delivery_plan.py +0 -45
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/SKILL.md +0 -77
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/scripts/report_to_google_slides.py +0 -2379
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/SKILL.md +0 -88
- package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/build-report/specifications/executive-report.md +0 -97
- package/template/.codex/skills/data-analytics/skills/build-report/specifications/mcp-app-report.md +0 -59
- package/template/.codex/skills/data-analytics/skills/build-report/specifications/technical-report.md +0 -75
- package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +0 -103
- package/template/.codex/skills/data-analytics/skills/design-kpis/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +0 -68
- package/template/.codex/skills/data-analytics/skills/gather-business-context/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/index/SKILL.md +0 -251
- package/template/.codex/skills/data-analytics/skills/index/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +0 -131
- package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +0 -141
- package/template/.codex/skills/data-analytics/skills/kpi-reporting/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/kpi-reporting/references/report-templates.md +0 -32
- package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +0 -106
- package/template/.codex/skills/data-analytics/skills/market-sizing/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +0 -130
- package/template/.codex/skills/data-analytics/skills/metric-diagnostics/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +0 -141
- package/template/.codex/skills/data-analytics/skills/product-business-analysis/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +0 -178
- package/template/.codex/skills/data-analytics/skills/spreadsheets/agents/openai.yaml +0 -9
- package/template/.codex/skills/data-analytics/skills/spreadsheets/assets/file-spreadsheet.png +0 -0
- package/template/.codex/skills/data-analytics/skills/spreadsheets/charts.md +0 -31
- package/template/.codex/skills/data-analytics/skills/spreadsheets/references/artifact_tool_api.md +0 -466
- package/template/.codex/skills/data-analytics/skills/spreadsheets/style_guidelines.md +0 -99
- package/template/.codex/skills/data-analytics/skills/user-context/SKILL.md +0 -197
- package/template/.codex/skills/data-analytics/skills/user-context/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/automation-config.md +0 -26
- package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/source-category-config.json +0 -51
- package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/user-context-config.md +0 -66
- package/template/.codex/skills/data-analytics/skills/user-context/references/automation.md +0 -69
- package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-examples.md +0 -204
- package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-state-template.json +0 -87
- package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding.md +0 -497
- package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/connector-playbook.md +0 -74
- package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/setup.md +0 -65
- package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/skill-template.md +0 -160
- package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/source-intake.md +0 -75
- package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/weekly-polling-automation.md +0 -96
- package/template/.codex/skills/data-analytics/skills/user-context/references/source-category-runtime.md +0 -263
- package/template/.codex/skills/data-analytics/skills/user-context/scripts/data_analytics_preflight.py +0 -1462
- package/template/.codex/skills/data-analytics/skills/user-context/scripts/init_user_context_state.py +0 -128
- package/template/.codex/skills/data-analytics/skills/user-context/scripts/reset_user_context_state.py +0 -101
- package/template/.codex/skills/data-analytics/skills/user-context/scripts/validate_user_context_preflight.py +0 -499
- package/template/.codex/skills/data-analytics/skills/user-context/tests/test_state_helpers.py +0 -978
- package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +0 -126
- package/template/.codex/skills/data-analytics/skills/validate-data/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/validate-data/references/validation-methods.md +0 -70
- package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +0 -157
- package/template/.codex/skills/data-analytics/skills/visualize-data/agents/openai.yaml +0 -6
- package/template/.codex/skills/data-analytics/skills/visualize-data/references/seaborn-templates.md +0 -774
- package/template/.codex/skills/data-analytics/src/DESIGN.md +0 -222
- package/template/.codex/skills/data-analytics/src/analytics-app/App.tsx +0 -3666
- package/template/.codex/skills/data-analytics/src/analytics-app/analytics-layout.test.mjs +0 -136
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartFrame.tsx +0 -54
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartLegend.tsx +0 -96
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartRenderer.tsx +0 -1647
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartTooltip.tsx +0 -245
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-app-helpers.tsx +0 -462
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-capabilities.ts +0 -107
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-compatibility.ts +0 -164
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-contract.ts +0 -192
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-theme.ts +0 -203
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-tokens.css +0 -619
- package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-transforms.ts +0 -402
- package/template/.codex/skills/data-analytics/src/analytics-app/fonts/SystemSansVariableVF.woff2 +0 -0
- package/template/.codex/skills/data-analytics/src/analytics-app/imageExport.ts +0 -370
- package/template/.codex/skills/data-analytics/src/analytics-app/layout/AnalyticsLayoutCanvas.tsx +0 -536
- package/template/.codex/skills/data-analytics/src/analytics-app/layout/RichMarkdown.tsx +0 -681
- package/template/.codex/skills/data-analytics/src/analytics-app/layout/analyticsLayoutCore.ts +0 -164
- package/template/.codex/skills/data-analytics/src/analytics-app/main.tsx +0 -21
- package/template/.codex/skills/data-analytics/src/analytics-app/scripts/chart_contract.py +0 -472
- package/template/.codex/skills/data-analytics/src/analytics-app/scripts/check_analytics_app_runtime_links.py +0 -75
- package/template/.codex/skills/data-analytics/src/analytics-app/scripts/design_contract.py +0 -142
- package/template/.codex/skills/data-analytics/src/analytics-app/scripts/package_utils.py +0 -142
- package/template/.codex/skills/data-analytics/src/analytics-app/scripts/tests/test_package_utils.py +0 -377
- package/template/.codex/skills/data-analytics/src/analytics-app/styles.css +0 -3468
- package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.d.ts +0 -44
- package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.jsx +0 -639
- package/template/.codex/skills/data-analytics/src/analytics-app/tables/data-table.css +0 -327
- package/template/.codex/skills/data-analytics/src/analytics-app/tokens.css +0 -225
- package/template/.codex/skills/data-analytics/src/analytics-app/types.ts +0 -204
- package/template/.codex/skills/data-analytics/src/analytics-app-core.md +0 -85
- package/template/.codex/skills/data-analytics/src/codex-style-contract.md +0 -30
- package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.html +0 -12
- package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.jsx +0 -1008
- package/template/.codex/skills/data-analytics/src/datascience-chart-widget.css +0 -2117
- package/template/.codex/skills/data-analytics/src/datascience-chart-widget.html +0 -122
- package/template/.codex/skills/data-analytics/src/datascience-chart-widget.js +0 -3588
- package/template/.codex/skills/data-analytics/src/datascience-table-widget.css +0 -483
- package/template/.codex/skills/data-analytics/src/datascience-table-widget.html +0 -32
- package/template/.codex/skills/data-analytics/src/datascience-table-widget.js +0 -333
- package/template/.codex/skills/data-analytics/src/mcp-host.js +0 -153
- package/template/.codex/skills/data-analytics/src/recharts-config.js +0 -315
- package/template/.codex/skills/data-analytics/src/recharts-renderer.jsx +0 -294
- package/template/.codex/skills/data-analytics/src/sql-source-view.css +0 -33
- package/template/.codex/skills/data-analytics/src/sql-source-view.js +0 -157
- package/template/.codex/skills/data-analytics/src/styles/codex-theme.css +0 -121
- package/template/.codex/skills/data-analytics/src/table-renderer.jsx +0 -28
- package/template/.codex/skills/data-analytics/tests/chart-transforms.test.mjs +0 -87
- package/template/.codex/skills/data-analytics/tests/funnel-smoke.html +0 -105
- package/template/.codex/skills/data-analytics/tests/inline-widget-compare.html +0 -233
- package/template/.codex/skills/data-analytics/tests/mcp-server.test.mjs +0 -1500
- package/template/.codex/skills/data-analytics/tests/native-style-contract.test.mjs +0 -219
- package/template/.codex/skills/data-analytics/tests/recharts-config.test.mjs +0 -144
- package/template/.codex/skills/data-analytics/tests/recharts-renderer.test.mjs +0 -11
- package/template/.codex/skills/data-analytics/tests/rich-markdown.test.mjs +0 -54
- package/template/.codex/skills/data-analytics/tests/widget-render-harness.html +0 -321
- package/template/.codex/skills/data-analytics/tsconfig.json +0 -19
- package/template/.codex/skills/data-analytics/vite.config.ts +0 -46
- package/template/.codex/skills/grill-with-docs/SKILL.md +0 -20
- package/template/.codex/skills/grill-with-docs/agents/openai.yaml +0 -5
- package/template/.codex/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
- package/template/.codex/skills/prototype/UI.md +0 -112
- package/template/.codex/skills/setup-matt-pocock-skills/domain.md +0 -37
- package/template/.codex/skills/to-questionnaire/SKILL.md +0 -55
- package/template/.codex/skills/to-questionnaire/agents/openai.yaml +0 -5
- package/template/.codex/skills/wait-what/SKILL.md +0 -7
- package/template/.codex/skills/wait-what/agents/openai.yaml +0 -5
- package/template/.cursor/skills/grill-with-docs/SKILL.md +0 -20
- package/template/.cursor/skills/grill-with-docs/agents/openai.yaml +0 -5
- package/template/.cursor/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
- package/template/.cursor/skills/prototype/UI.md +0 -112
- package/template/.cursor/skills/setup-matt-pocock-skills/domain.md +0 -37
- package/template/.cursor/skills/to-questionnaire/SKILL.md +0 -55
- package/template/.cursor/skills/to-questionnaire/agents/openai.yaml +0 -5
- package/template/.cursor/skills/wait-what/SKILL.md +0 -7
- package/template/.cursor/skills/wait-what/agents/openai.yaml +0 -5
- package/template/.pi/skills/grill-with-docs/SKILL.md +0 -20
- package/template/.pi/skills/grill-with-docs/agents/openai.yaml +0 -5
- package/template/.pi/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
- package/template/.pi/skills/prototype/UI.md +0 -112
- package/template/.pi/skills/setup-matt-pocock-skills/domain.md +0 -37
- package/template/.pi/skills/to-questionnaire/SKILL.md +0 -55
- package/template/.pi/skills/to-questionnaire/agents/openai.yaml +0 -5
- package/template/.pi/skills/wait-what/SKILL.md +0 -7
- package/template/.pi/skills/wait-what/agents/openai.yaml +0 -5
- package/template/.template-spec/agents/domain.md +0 -31
- /package/template/.agents/skills/{improve-codebase-architecture → codebase-design/references}/HTML-REPORT.md +0 -0
- /package/template/.codex/skills/{improve-codebase-architecture → codebase-design/references}/HTML-REPORT.md +0 -0
- /package/template/.cursor/skills/{improve-codebase-architecture → codebase-design/references}/HTML-REPORT.md +0 -0
- /package/template/.pi/skills/{improve-codebase-architecture → codebase-design/references}/HTML-REPORT.md +0 -0
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { spawnSync } from "node:child_process";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { parseArgs } from "node:util";
|
|
5
|
+
import { parseArgs, isDeepStrictEqual } from "node:util";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import { parseDocument } from "./vendor/yaml.mjs";
|
|
8
8
|
import { validateVisualBaseline } from "../.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs";
|
|
9
9
|
import { enforceFrontendDelivery } from "./lib/frontend-delivery-boundary.mjs";
|
|
10
|
+
import {safe,hash} from './lib/strategic-handoff-io.mjs';
|
|
10
11
|
|
|
11
12
|
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
12
13
|
const schemaPath = path.join(repoRoot, ".template-spec/process/schemas/frontend-implementation-evidence.schema.json");
|
|
@@ -56,6 +57,25 @@ try {
|
|
|
56
57
|
if (value.kind === "plan" && value.baseline_case_ids.some((id) => !selectedCaseIds.includes(id))) throw new TypeError("baseline_case_ids 必须属于选定 Visual Baseline cases");
|
|
57
58
|
}
|
|
58
59
|
if (!values["allow-template"] && value.kind === "verification") {
|
|
60
|
+
const bound = (ref,digest) => {
|
|
61
|
+
const bytes=readFileSync(safe(root,ref));
|
|
62
|
+
if(hash(bytes)!==digest)throw new TypeError(`前端证据摘要不一致: ${ref}`);
|
|
63
|
+
return bytes;
|
|
64
|
+
};
|
|
65
|
+
if(!value.implementation_plan || value.interaction_results.some(x=>typeof x==='string'))throw new TypeError('legacy-interaction-binding-missing: 历史交互文字可读;当前完成须重新验证并绑定实施计划与结构化交互证据');
|
|
66
|
+
const plan=parseDocument(bound(value.implementation_plan.ref,value.implementation_plan.digest).toString(),{uniqueKeys:true}).toJS({maxAliasCount:0});
|
|
67
|
+
const planSchema=spawnSync('python3',['-c',validator,schemaPath],{cwd:repoRoot,encoding:'utf8',input:JSON.stringify(plan)});
|
|
68
|
+
if(planSchema.status!==0 || plan.kind!=='plan'||plan.template!==false||plan.status!=='approved'||!isDeepStrictEqual(plan.visual_baseline,value.visual_baseline)||!isDeepStrictEqual(plan.route_and_page_inventory,value.route_and_page_inventory)||!isDeepStrictEqual(plan.pnpm_commands,value.pnpm_commands)||plan.spec_ref!==value.spec_ref||plan.prototype_ref!==value.prototype_ref)throw new TypeError('前端实施计划未批准或与当前验证范围不一致');
|
|
69
|
+
const states=new Set(), cases=new Set(), pairs=new Set();
|
|
70
|
+
for(const interaction of value.interaction_results){
|
|
71
|
+
if(interaction.result!=='pass')throw new TypeError('前端交互验证未通过,构建成功不能替代交互验收');
|
|
72
|
+
if(!plan.state_cases.includes(interaction.state)||!value.visual_baseline.case_ids.includes(interaction.case_id))throw new TypeError('前端交互不属于已批准计划');
|
|
73
|
+
const pair=JSON.stringify([interaction.case_id,interaction.state]);if(pairs.has(pair))throw new TypeError('前端交互结果重复');pairs.add(pair);
|
|
74
|
+
bound(interaction.evidence_ref,interaction.evidence_digest);states.add(interaction.state);cases.add(interaction.case_id);
|
|
75
|
+
}
|
|
76
|
+
if(plan.state_cases.some(state=>!states.has(state))||value.visual_baseline.case_ids.some(id=>!cases.has(id)))throw new TypeError('前端交互验收覆盖缺失');
|
|
77
|
+
if(!value.console_evidence)throw new TypeError('前端 console 证据缺失');
|
|
78
|
+
bound(value.console_evidence.ref,value.console_evidence.digest);
|
|
59
79
|
if (value.console_warning_check !== "pass") throw new TypeError("前端验证必须通过 console warning 检查");
|
|
60
80
|
if (value.uncovered_differences.length > 0) throw new TypeError("存在未解释视觉差异,不能通过前端实现还原验证");
|
|
61
81
|
if (value.independent_review?.status !== "approved") throw new TypeError("前端验证必须通过独立 UI fidelity review");
|
|
@@ -66,8 +86,11 @@ try {
|
|
|
66
86
|
if (item.result !== "pass" || item.uncovered_difference !== false) throw new TypeError(`${item.case_id} 存在未通过或未解释差异`);
|
|
67
87
|
for (const field of ["baseline_image_ref", "implementation_image_ref", "diff_ref"]) if (!existsSync(path.resolve(root, item[field]))) throw new TypeError(`${item.case_id}.${field} 不可读取`);
|
|
68
88
|
if (item.mask_ref !== "not-applicable" && !existsSync(path.resolve(root, item.mask_ref))) throw new TypeError(`${item.case_id}.mask_ref 不可读取`);
|
|
89
|
+
bound(item.implementation_image_ref,item.implementation_image_digest);bound(item.diff_ref,item.diff_digest);
|
|
69
90
|
}
|
|
70
91
|
if (value.actual_verification.some((item) => item.exit_code !== 0)) throw new TypeError("pnpm fresh verification 存在非零退出码");
|
|
92
|
+
if(value.pnpm_commands.some(command=>!value.actual_verification.some(row=>row.command===command)))throw new TypeError('pnpm 验证命令覆盖缺失');
|
|
93
|
+
for(const row of value.actual_verification){if(!Number.isFinite(Date.parse(row.executed_at)))throw new TypeError('实际执行时间无效');bound(row.evidence_ref,row.evidence_digest);}
|
|
71
94
|
}
|
|
72
95
|
process.stdout.write(`前端实现还原 ${value.kind} 验证通过\n`);
|
|
73
96
|
} catch (error) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {parseArgs} from 'node:util';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import {readRepositoryMode} from './lib/repository-mode.mjs';
|
|
5
|
+
import {recordResearchVerification} from './lib/maintenance-research.mjs';
|
|
6
|
+
try {
|
|
7
|
+
const {values, positionals} = parseArgs({allowPositionals: true, options: {root: {type: 'string'}, output: {type: 'string'}}, strict: true});
|
|
8
|
+
const root = path.resolve(values.root || '.');
|
|
9
|
+
if (readRepositoryMode(root) !== 'template-source' || positionals.length !== 2 || !values.output) throw Error('用法: verify-maintenance-research <brief> <evidence> --output <新目录> [--root <模板根>]');
|
|
10
|
+
const result = recordResearchVerification(root, ...positionals, values.output);
|
|
11
|
+
process.stdout.write(JSON.stringify(result, null, 2) + '\n');
|
|
12
|
+
if (result.exit_code !== 0) process.exitCode = 1;
|
|
13
|
+
} catch (error) { process.stderr.write(error.message + '\n'); process.exitCode = 1; }
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"revision": "c4d958f18cc947cb91cbe1bd48783fa4601cc18f"
|
|
19
19
|
},
|
|
20
20
|
"iloveZzz/yss-harness-design-agent": {
|
|
21
|
-
"revision": "
|
|
21
|
+
"revision": "ed8865b79dbe1cb59277fe643c3cb27139674530"
|
|
22
22
|
},
|
|
23
23
|
"ayghri/i-have-adhd": {
|
|
24
24
|
"revision": "7b9069b39972e269e61bd95c2f66ebb90cac6a02"
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"source": "mattpocock/skills",
|
|
73
73
|
"sourceType": "github",
|
|
74
74
|
"skillPath": "skills/engineering/codebase-design/SKILL.md",
|
|
75
|
-
"effectiveHash": "
|
|
75
|
+
"effectiveHash": "fb5a146a98a69cf0c5142f4e59d22fd937678d6436de3fe50be9724f14340c16",
|
|
76
76
|
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
77
77
|
"upstreamHash": "9f457cc65ef2d70eb5b8a44a4dae2b139840078b6596a67ee8c4e95f5a0e6f5c",
|
|
78
78
|
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
"source": "iloveZzz/yss-ui",
|
|
216
216
|
"sourceType": "github",
|
|
217
217
|
"skillPath": "packages/skills/frontend-commit/SKILL.md",
|
|
218
|
-
"effectiveHash": "
|
|
218
|
+
"effectiveHash": "aef8df2cb8114a35740144563981788443e7566619e6c489e64efcf2dc6cd81c",
|
|
219
219
|
"sourceRevision": "c4d958f18cc947cb91cbe1bd48783fa4601cc18f",
|
|
220
220
|
"upstreamHash": "ffc1c7813607705c7c1158f4c5d3111aca79e73f1843e33bbc95eda9b5c726de",
|
|
221
221
|
"adaptationRef": ".template-source/agents/yss-ui-skills-integration.md",
|
|
@@ -226,14 +226,11 @@
|
|
|
226
226
|
".pi/skills"
|
|
227
227
|
]
|
|
228
228
|
},
|
|
229
|
-
"
|
|
230
|
-
"source": "
|
|
231
|
-
"sourceType": "
|
|
232
|
-
"skillPath": "skills/
|
|
233
|
-
"effectiveHash": "
|
|
234
|
-
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
235
|
-
"upstreamHash": "6b1292031c4f38a11309b9dad9be1141c1921c6edf86d1ae6da8b048fa71a349",
|
|
236
|
-
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
229
|
+
"git-commit-core": {
|
|
230
|
+
"source": "project",
|
|
231
|
+
"sourceType": "local",
|
|
232
|
+
"skillPath": ".agents/skills/git-commit-core/SKILL.md",
|
|
233
|
+
"effectiveHash": "6e08d4731740660abd7e02f8ae8e323e2a10fd26ef349370f567e0bbeafa4f89",
|
|
237
234
|
"targets": [
|
|
238
235
|
".agents/skills",
|
|
239
236
|
".codex/skills",
|
|
@@ -313,26 +310,11 @@
|
|
|
313
310
|
".pi/skills"
|
|
314
311
|
]
|
|
315
312
|
},
|
|
316
|
-
"improve-codebase-architecture": {
|
|
317
|
-
"source": "mattpocock/skills",
|
|
318
|
-
"sourceType": "github",
|
|
319
|
-
"skillPath": "skills/engineering/improve-codebase-architecture/SKILL.md",
|
|
320
|
-
"effectiveHash": "803482a33ea83cb12ac39a3497c7712cb5a4520b756532f9eae34c6e09673aa7",
|
|
321
|
-
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
322
|
-
"upstreamHash": "86f5e0413fa5b42b8e954858a09ce5a73187c61169f1b3b199bc79416fd78086",
|
|
323
|
-
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
324
|
-
"targets": [
|
|
325
|
-
".agents/skills",
|
|
326
|
-
".codex/skills",
|
|
327
|
-
".cursor/skills",
|
|
328
|
-
".pi/skills"
|
|
329
|
-
]
|
|
330
|
-
},
|
|
331
313
|
"java-backend-commit": {
|
|
332
314
|
"source": "project",
|
|
333
315
|
"sourceType": "local",
|
|
334
316
|
"skillPath": ".agents/skills/java-backend-commit/SKILL.md",
|
|
335
|
-
"effectiveHash": "
|
|
317
|
+
"effectiveHash": "0d50beb6563ff17b87ef2726b6f3ed53c4d686e210ff02a8692582dd6d8eb79f",
|
|
336
318
|
"targets": [
|
|
337
319
|
".agents/skills",
|
|
338
320
|
".codex/skills",
|
|
@@ -344,7 +326,7 @@
|
|
|
344
326
|
"source": "project",
|
|
345
327
|
"sourceType": "local",
|
|
346
328
|
"skillPath": ".agents/skills/llm-wiki/SKILL.md",
|
|
347
|
-
"effectiveHash": "
|
|
329
|
+
"effectiveHash": "58dda4429d0ed50b7c1fe316ea2b839667a059b134eb42a66224de67d003b0c3",
|
|
348
330
|
"targets": [
|
|
349
331
|
".agents/skills",
|
|
350
332
|
".codex/skills",
|
|
@@ -394,7 +376,7 @@
|
|
|
394
376
|
"source": "mattpocock/skills",
|
|
395
377
|
"sourceType": "github",
|
|
396
378
|
"skillPath": "skills/engineering/prototype/SKILL.md",
|
|
397
|
-
"effectiveHash": "
|
|
379
|
+
"effectiveHash": "c6e9016fbe694e026544d7439ee5914ef5fedf65c5609deb562b2794cfcf7b49",
|
|
398
380
|
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
399
381
|
"upstreamHash": "492e4433fcd9cf88c0854aba063829ee248b208849e5827a45da8424199fd10f",
|
|
400
382
|
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
@@ -410,7 +392,7 @@
|
|
|
410
392
|
"sourceType": "git-submodule",
|
|
411
393
|
"skillPath": ".agents/skills/prototype-review/SKILL.md",
|
|
412
394
|
"effectiveHash": "2bae1a26b95eb84c7e0eec6b624fd1b064a258424a69798c797052095aa088b3",
|
|
413
|
-
"sourceRevision": "
|
|
395
|
+
"sourceRevision": "ed8865b79dbe1cb59277fe643c3cb27139674530",
|
|
414
396
|
"upstreamHash": "68c6e4613354ad919bab3d718739f1cc6930d8df0777d6f7db90435bdae77d52",
|
|
415
397
|
"adaptationRef": ".template-source/agents/strategic-design-skills-integration.md",
|
|
416
398
|
"targets": [
|
|
@@ -439,7 +421,7 @@
|
|
|
439
421
|
"source": "mattpocock/skills",
|
|
440
422
|
"sourceType": "github",
|
|
441
423
|
"skillPath": "skills/engineering/setup-matt-pocock-skills/SKILL.md",
|
|
442
|
-
"effectiveHash": "
|
|
424
|
+
"effectiveHash": "6ec7cc4d7665033c66f9de3511d215ffc357b7312b0ac932ed7ec1d8e8fd8d30",
|
|
443
425
|
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
444
426
|
"upstreamHash": "80cd6b5be4f67913f1b10f5acd97fccaeb6401682ae7ff3a971460cb73d86cbe",
|
|
445
427
|
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
@@ -480,21 +462,6 @@
|
|
|
480
462
|
".pi/skills"
|
|
481
463
|
]
|
|
482
464
|
},
|
|
483
|
-
"to-questionnaire": {
|
|
484
|
-
"source": "mattpocock/skills",
|
|
485
|
-
"sourceType": "github",
|
|
486
|
-
"skillPath": "skills/productivity/to-questionnaire/SKILL.md",
|
|
487
|
-
"effectiveHash": "a7b7a3b4792028114028512becfa81b10e374d34f36c00772446b0becc348083",
|
|
488
|
-
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
489
|
-
"upstreamHash": "915ac22f1133fd4a7899ac6536e704cae57f1104d45745b32193d1572332868f",
|
|
490
|
-
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
491
|
-
"targets": [
|
|
492
|
-
".agents/skills",
|
|
493
|
-
".codex/skills",
|
|
494
|
-
".cursor/skills",
|
|
495
|
-
".pi/skills"
|
|
496
|
-
]
|
|
497
|
-
},
|
|
498
465
|
"to-spec": {
|
|
499
466
|
"source": "mattpocock/skills",
|
|
500
467
|
"sourceType": "github",
|
|
@@ -552,21 +519,6 @@
|
|
|
552
519
|
".pi/skills"
|
|
553
520
|
]
|
|
554
521
|
},
|
|
555
|
-
"wait-what": {
|
|
556
|
-
"source": "mattpocock/skills",
|
|
557
|
-
"sourceType": "github",
|
|
558
|
-
"skillPath": "skills/productivity/wait-what/SKILL.md",
|
|
559
|
-
"effectiveHash": "8c48d704adc212453fbe52ffb196f858e006e644fb5eb1e4b7fc83f27b38e602",
|
|
560
|
-
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
561
|
-
"upstreamHash": "3f2e7e2ce8820380c08df1d6f2d8dc6aaefe5c2857d00a7190990c62d4039316",
|
|
562
|
-
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
563
|
-
"targets": [
|
|
564
|
-
".agents/skills",
|
|
565
|
-
".codex/skills",
|
|
566
|
-
".cursor/skills",
|
|
567
|
-
".pi/skills"
|
|
568
|
-
]
|
|
569
|
-
},
|
|
570
522
|
"wayfinder": {
|
|
571
523
|
"source": "mattpocock/skills",
|
|
572
524
|
"sourceType": "github",
|
|
@@ -692,7 +644,7 @@
|
|
|
692
644
|
"sourceType": "git-submodule",
|
|
693
645
|
"skillPath": ".agents/skills/yss-design-system/SKILL.md",
|
|
694
646
|
"effectiveHash": "109f131d03c5a970f88a01472b575397090aac5029a666e23e021ec6d05d9526",
|
|
695
|
-
"sourceRevision": "
|
|
647
|
+
"sourceRevision": "ed8865b79dbe1cb59277fe643c3cb27139674530",
|
|
696
648
|
"upstreamHash": "ae040c639056ecf2160f1231e30ac67360bd8aa1e030eac778520dd56af8068c",
|
|
697
649
|
"adaptationRef": ".template-source/agents/strategic-design-skills-integration.md",
|
|
698
650
|
"targets": [
|
|
@@ -817,7 +769,7 @@
|
|
|
817
769
|
"source": "project",
|
|
818
770
|
"sourceType": "local",
|
|
819
771
|
"skillPath": ".agents/skills/yss-implementation-contract-compiler/SKILL.md",
|
|
820
|
-
"effectiveHash": "
|
|
772
|
+
"effectiveHash": "042be2c919a2aca3df70847051235cffee97a4ff76dca750ff18c857a2732c7f",
|
|
821
773
|
"targets": [
|
|
822
774
|
".agents/skills",
|
|
823
775
|
".codex/skills",
|
|
@@ -877,7 +829,7 @@
|
|
|
877
829
|
"source": "project",
|
|
878
830
|
"sourceType": "local",
|
|
879
831
|
"skillPath": ".agents/skills/yss-product-lifecycle/SKILL.md",
|
|
880
|
-
"effectiveHash": "
|
|
832
|
+
"effectiveHash": "97956a27c96e05eca6992b19db0e031b531ef41faa440d1915af048b5c63f81c",
|
|
881
833
|
"targets": [
|
|
882
834
|
".agents/skills",
|
|
883
835
|
".codex/skills",
|
|
@@ -890,7 +842,7 @@
|
|
|
890
842
|
"sourceType": "git-submodule",
|
|
891
843
|
"skillPath": ".agents/skills/yss-prototype-stage/SKILL.md",
|
|
892
844
|
"effectiveHash": "ba84f0bd9e469eee9a6d659bf2f5f1848761ae0d13ae46541d7bd668c31e8379",
|
|
893
|
-
"sourceRevision": "
|
|
845
|
+
"sourceRevision": "ed8865b79dbe1cb59277fe643c3cb27139674530",
|
|
894
846
|
"upstreamHash": "7781df6293f381bd40781d2f6b163cf824f959624b1c34aeb9c241d6be709c89",
|
|
895
847
|
"adaptationRef": ".template-source/agents/strategic-design-skills-integration.md",
|
|
896
848
|
"targets": [
|
|
@@ -916,7 +868,7 @@
|
|
|
916
868
|
"source": "mattpocock/skills",
|
|
917
869
|
"sourceType": "github",
|
|
918
870
|
"skillPath": "skills/engineering/research/SKILL.md",
|
|
919
|
-
"effectiveHash": "
|
|
871
|
+
"effectiveHash": "9b3d0d3f83acefb0ffef51c671b124bb0be732e23c27795658fbd3c6b699bada",
|
|
920
872
|
"sourceRevision": "0ab1b63a410a03d3627979a109c8695de27af954",
|
|
921
873
|
"upstreamHash": "75b7f9bbd7ccff6755a006f8b25d319a46ecbf6bd4b4c3323965ed9cb65e78ff",
|
|
922
874
|
"adaptationRef": ".template-source/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
@@ -968,7 +920,7 @@
|
|
|
968
920
|
"sourceType": "git-submodule",
|
|
969
921
|
"skillPath": ".agents/skills/yss-stage-decision/SKILL.md",
|
|
970
922
|
"effectiveHash": "2284f6060799fb74f7396b27a273669f78d62a6ac24f9acc533770b71198da18",
|
|
971
|
-
"sourceRevision": "
|
|
923
|
+
"sourceRevision": "ed8865b79dbe1cb59277fe643c3cb27139674530",
|
|
972
924
|
"upstreamHash": "6cd0ed5aa21d68cea871d0bd202beb3b28cca2981f075ad9c24667ac030118d2",
|
|
973
925
|
"adaptationRef": ".template-source/agents/strategic-design-skills-integration.md",
|
|
974
926
|
"targets": [
|
|
@@ -1110,15 +1062,6 @@
|
|
|
1110
1062
|
},
|
|
1111
1063
|
"platform": {
|
|
1112
1064
|
".codex/skills": {
|
|
1113
|
-
"data-analytics": {
|
|
1114
|
-
"source": "project",
|
|
1115
|
-
"sourceType": "local",
|
|
1116
|
-
"skillPath": ".codex/skills/data-analytics/SKILL.md",
|
|
1117
|
-
"effectiveHash": "9ed415498a99f8ea18064f488ae58496608cc8ba07dd0326e46bc021e14e1275",
|
|
1118
|
-
"targets": [
|
|
1119
|
-
".codex/skills"
|
|
1120
|
-
]
|
|
1121
|
-
},
|
|
1122
1065
|
"product-design": {
|
|
1123
1066
|
"source": "project",
|
|
1124
1067
|
"sourceType": "local",
|
package/template.manifest.json
CHANGED
|
@@ -92,9 +92,13 @@
|
|
|
92
92
|
"scripts/lib/skill-governance.mjs",
|
|
93
93
|
"scripts/lib/template-commit-cache.mjs",
|
|
94
94
|
"scripts/lib/template-verification.mjs",
|
|
95
|
-
"scripts/lib/template-verification-runner.mjs"
|
|
95
|
+
"scripts/lib/template-verification-runner.mjs",
|
|
96
|
+
"scripts/lib/verification-selection.mjs",
|
|
97
|
+
"scripts/lib/verification-report.mjs"
|
|
98
|
+
],
|
|
99
|
+
"excludePathSuffixes": [
|
|
100
|
+
"-scenarios"
|
|
96
101
|
],
|
|
97
|
-
"excludePathSuffixes": ["-scenarios"],
|
|
98
102
|
"renderPaths": [
|
|
99
103
|
".gitignore",
|
|
100
104
|
"AGENTS.md",
|
|
@@ -128,44 +132,129 @@
|
|
|
128
132
|
"version": 1,
|
|
129
133
|
"default": "managed",
|
|
130
134
|
"rules": [
|
|
131
|
-
{
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
{
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
{
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
{
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
{
|
|
148
|
-
|
|
149
|
-
|
|
135
|
+
{
|
|
136
|
+
"pattern": ".git/**",
|
|
137
|
+
"ownership": "protected"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"pattern": ".template-source/**",
|
|
141
|
+
"ownership": "protected"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"pattern": ".cursor/environment.json",
|
|
145
|
+
"ownership": "protected"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"pattern": ".gitmodules",
|
|
149
|
+
"ownership": "user-owned"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"pattern": ".gitignore",
|
|
153
|
+
"ownership": "managed-customizable"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"pattern": "apps/**",
|
|
157
|
+
"ownership": "user-owned"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"pattern": "packages/**",
|
|
161
|
+
"ownership": "user-owned"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"pattern": "wiki/**",
|
|
165
|
+
"ownership": "user-owned"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"pattern": "docs/reviews/**",
|
|
169
|
+
"ownership": "user-owned"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"pattern": "docs/.scratch/**",
|
|
173
|
+
"ownership": "user-owned"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"pattern": ".template-spec/agents/issue-tracker.md",
|
|
177
|
+
"ownership": "managed-customizable"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"pattern": "yss-project.yaml",
|
|
181
|
+
"ownership": "generated"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"pattern": "skills-lock.json",
|
|
185
|
+
"ownership": "generated"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"pattern": "yss-public-skills.json",
|
|
189
|
+
"ownership": "generated"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"pattern": ".agents/skills/.yss-skills-manifest.json",
|
|
193
|
+
"ownership": "generated"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"pattern": "AGENTS.md",
|
|
197
|
+
"ownership": "managed-customizable"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"pattern": "CONTEXT.md",
|
|
201
|
+
"ownership": "managed-customizable"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"pattern": "DESIGN.md",
|
|
205
|
+
"ownership": "managed-customizable"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"pattern": "README.md",
|
|
209
|
+
"ownership": "user-owned"
|
|
210
|
+
}
|
|
150
211
|
]
|
|
151
212
|
},
|
|
152
213
|
"customizationPolicy": {
|
|
153
214
|
"version": 1,
|
|
154
215
|
"defaultStrategy": "replace-with-force",
|
|
155
216
|
"rules": [
|
|
156
|
-
{
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
217
|
+
{
|
|
218
|
+
"pattern": ".gitignore",
|
|
219
|
+
"strategy": "manual"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"pattern": ".template-spec/agents/issue-tracker.md",
|
|
223
|
+
"strategy": "manual"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"pattern": "CONTEXT.md",
|
|
227
|
+
"strategy": "manual"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"pattern": "DESIGN.md",
|
|
231
|
+
"strategy": "manual"
|
|
232
|
+
}
|
|
160
233
|
]
|
|
161
234
|
},
|
|
162
235
|
"generatorPolicy": {
|
|
163
236
|
"version": 1,
|
|
164
237
|
"rules": [
|
|
165
|
-
{
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
238
|
+
{
|
|
239
|
+
"pattern": "yss-project.yaml",
|
|
240
|
+
"generatorId": "repository-identity",
|
|
241
|
+
"generatorVersion": 1
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"pattern": "skills-lock.json",
|
|
245
|
+
"generatorId": "skills-lock",
|
|
246
|
+
"generatorVersion": 1
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"pattern": "yss-public-skills.json",
|
|
250
|
+
"generatorId": "public-skills",
|
|
251
|
+
"generatorVersion": 1
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"pattern": ".agents/skills/.yss-skills-manifest.json",
|
|
255
|
+
"generatorId": "skills-manifest",
|
|
256
|
+
"generatorVersion": 1
|
|
257
|
+
}
|
|
169
258
|
]
|
|
170
259
|
}
|
|
171
260
|
}
|
package/template.snapshot.json
CHANGED
|
@@ -3,13 +3,12 @@
|
|
|
3
3
|
"templateName": "yss-spec-project-template",
|
|
4
4
|
"templateSource": "github:iloveZzz/yss-spec-project-template",
|
|
5
5
|
"templateRepository": "https://github.com/iloveZzz/yss-spec-project-template.git",
|
|
6
|
-
"requestedRef": "
|
|
7
|
-
"templateCommit": "
|
|
6
|
+
"requestedRef": "f6826c35ceb3f24795c2dd341354559bfa960ae4",
|
|
7
|
+
"templateCommit": "f6826c35ceb3f24795c2dd341354559bfa960ae4",
|
|
8
8
|
"sourceState": "committed",
|
|
9
|
-
"manifestHash": "
|
|
9
|
+
"manifestHash": "08a47c580dbe9c3b5a3b9470e1d5916069133d89c3f83bc2b30224b35bf6605f",
|
|
10
10
|
"encodedPaths": {
|
|
11
11
|
".agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.gitignore": ".agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore",
|
|
12
|
-
".codex/skills/data-analytics/.gitignore": ".codex/skills/data-analytics/__yss_dotfile__.gitignore",
|
|
13
12
|
".codex/skills/product-design/.npmignore": ".codex/skills/product-design/__yss_dotfile__.npmignore",
|
|
14
13
|
".codex/skills/product-design/templates/prototype/.npmrc": ".codex/skills/product-design/templates/prototype/__yss_dotfile__.npmrc",
|
|
15
14
|
".codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.gitignore": ".codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore",
|
|
@@ -17,6 +16,6 @@
|
|
|
17
16
|
".gitignore": "__yss_dotfile__.gitignore",
|
|
18
17
|
".pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.gitignore": ".pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore"
|
|
19
18
|
},
|
|
20
|
-
"snapshotHash": "
|
|
21
|
-
"generatedAt": "2026-09-
|
|
19
|
+
"snapshotHash": "086dde475b4976d3e26499a4d91c03ccb59905bfa44f36dfd9c2535348513e7d",
|
|
20
|
+
"generatedAt": "2026-09-28T13:56:15.580Z"
|
|
22
21
|
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: grill-with-docs
|
|
3
|
-
description: Use when the user explicitly requests a relentless design interview that must preserve resolved glossary terms, ADR-worthy decisions, and factual research evidence.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Call the Skill tool with `grilling`, then call it separately with `domain-modeling`. This compatibility entry does not define a second glossary format: it consumes `domain-modeling/CONTEXT-FORMAT.md`, the repository Context Contract validator, and the lifecycle reconciliation contract.
|
|
8
|
-
|
|
9
|
-
## Output Contract
|
|
10
|
-
|
|
11
|
-
1. Read `yss-project.yaml` and the root glossary before the first round, then run `scripts/verify-context-contract --root . --json`. Missing or lowercase root files, nested `CONTEXT.md`, `CONTEXT-MAP.md`, unsupported schema, absolute/cross-repository references, and Markdown pseudo-anchors are `blocked` or `migration-required`.
|
|
12
|
-
2. Separate discoverable facts from user decisions; investigate facts instead of asking the user.
|
|
13
|
-
3. Ask the entire current decision frontier, with a recommendation for every question, then wait.
|
|
14
|
-
4. Keep candidate or disputed terms in the Plan decision frontier. Only after confirmation, use `domain-modeling` to record true stable glossary entries in the repository root's single, case-sensitive `CONTEXT.md`; business rows use the five-column format and `<ContextId>/<EnglishIdentifier>` identity. Non-`Global` Context IDs must come from the approved business responsibility areas in the business-boundary asset.
|
|
15
|
-
5. Create an ADR only when the decision is hard to reverse, surprising without context, and a real trade-off.
|
|
16
|
-
6. Persist factual research/validation records in the repository's existing review or research convention.
|
|
17
|
-
7. For `project-instance`, before requesting approval or returning a next work unit, generate and validate `context_reconciliation` with a readable ref, `document_digest`, `referenced_terms_digest`, and `term_refs`. Unresolved candidates, scope conflicts, aliases, or digest drift are `blocked`; reconciliation does not create another gate. For `template-source`, do not add fictional business terms and return a reasoned `not-applicable` after validating the template contract.
|
|
18
|
-
8. Do not modify implementation skills, contracts, or code until the user confirms shared understanding and the intended change scope.
|
|
19
|
-
|
|
20
|
-
The final grilling round must list confirmed decisions, unresolved assumptions, documents changed, `context_reconciliation` status/ref, and the next authorized action, then return control to `yss-product-lifecycle` (or the active YSS lifecycle orchestrator). It cannot approve an asset or advance a stage itself. A research note is evidence, not an architecture approval or release claim.
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
# UI Prototype
|
|
2
|
-
|
|
3
|
-
Generate **several radically different UI variations** on a single route, switchable from a floating bottom bar. The user flips between variants in the browser, picks one (or steals bits from each), then throws the rest away.
|
|
4
|
-
|
|
5
|
-
If the question is about logic/state rather than what something looks like — wrong branch. Use [LOGIC.md](LOGIC.md).
|
|
6
|
-
|
|
7
|
-
## When this is the right shape
|
|
8
|
-
|
|
9
|
-
- "What should this page look like?"
|
|
10
|
-
- "I want to see a few options for this dashboard before committing."
|
|
11
|
-
- "Try a different layout for the settings screen."
|
|
12
|
-
- Any time the user would otherwise spend a day picking between three vague mockups in their head.
|
|
13
|
-
|
|
14
|
-
## Two sub-shapes — strongly prefer sub-shape A
|
|
15
|
-
|
|
16
|
-
A UI prototype is much easier to judge when it's **butting up against the rest of the app** — real header, real sidebar, real data, real density. A throwaway route on its own is a vacuum: every variant looks fine in isolation. Default to sub-shape A whenever there's a plausible existing page to host the variants. Only reach for sub-shape B if the prototype genuinely has no nearby home.
|
|
17
|
-
|
|
18
|
-
### Sub-shape A — adjustment to an existing page (preferred)
|
|
19
|
-
|
|
20
|
-
The route already exists. Variants are rendered **on the same route**, gated by a `?variant=` URL search param. The existing data fetching, params, and auth all stay — only the rendering swaps. This is the default; pick it unless there's a specific reason not to.
|
|
21
|
-
|
|
22
|
-
If the prototype is for something that doesn't yet have a page but *would naturally live inside one* (a new section of the dashboard, a new card on the settings screen, a new step in an existing flow) — that's still sub-shape A. Mount the variants inside the host page.
|
|
23
|
-
|
|
24
|
-
### Sub-shape B — a new page (last resort)
|
|
25
|
-
|
|
26
|
-
Only use this when the thing being prototyped genuinely has no existing page to live inside — e.g. an entirely new top-level surface, or a flow that can't be embedded anywhere sensible.
|
|
27
|
-
|
|
28
|
-
Create a **throwaway route** following whatever routing convention the project already uses — don't invent a new top-level structure. Name it so it's obviously a prototype (e.g. include the word `prototype` in the path or filename). Same `?variant=` pattern.
|
|
29
|
-
|
|
30
|
-
Before committing to sub-shape B, sanity-check: is there really no existing page this could be embedded in? An empty route hides design problems that a populated one would expose.
|
|
31
|
-
|
|
32
|
-
In both sub-shapes the floating bottom bar is identical.
|
|
33
|
-
|
|
34
|
-
## Process
|
|
35
|
-
|
|
36
|
-
### 1. State the question and pick N
|
|
37
|
-
|
|
38
|
-
Default to **3 variants**. More than 5 stops being radically different and starts being noise — cap there.
|
|
39
|
-
|
|
40
|
-
Write down the plan in one line, in the prototype's location or a top-of-file comment:
|
|
41
|
-
|
|
42
|
-
> "Three variants of the settings page, switchable via `?variant=`, on the existing `/settings` route."
|
|
43
|
-
|
|
44
|
-
This works whether the user is here to push back or not.
|
|
45
|
-
|
|
46
|
-
### 2. Generate radically different variants
|
|
47
|
-
|
|
48
|
-
Draft each variant. Hold each one to:
|
|
49
|
-
|
|
50
|
-
- The page's purpose and the data it has access to.
|
|
51
|
-
- The project's component library / styling system (TailwindCSS, shadcn, MUI, plain CSS, whatever).
|
|
52
|
-
- A clear exported component name, e.g. `VariantA`, `VariantB`, `VariantC`.
|
|
53
|
-
|
|
54
|
-
Variants must be **structurally different** — different layout, different information hierarchy, different primary affordance, not just different colours. Three slightly-tweaked card grids isn't a UI prototype, it's wallpaper. If two drafts come out too similar, redo one with explicit "do not use a card grid" guidance.
|
|
55
|
-
|
|
56
|
-
### 3. Wire them together
|
|
57
|
-
|
|
58
|
-
Create a single switcher component on the route:
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
// pseudo-code — adapt to the project's framework
|
|
62
|
-
const variant = searchParams.get('variant') ?? 'A';
|
|
63
|
-
return (
|
|
64
|
-
<>
|
|
65
|
-
{variant === 'A' && <VariantA {...data} />}
|
|
66
|
-
{variant === 'B' && <VariantB {...data} />}
|
|
67
|
-
{variant === 'C' && <VariantC {...data} />}
|
|
68
|
-
<PrototypeSwitcher variants={['A','B','C']} current={variant} />
|
|
69
|
-
</>
|
|
70
|
-
);
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
For sub-shape A (existing page): keep all the existing data fetching above the switcher; only the rendered subtree changes per variant.
|
|
74
|
-
|
|
75
|
-
For sub-shape B (new page): the throwaway route under `/prototype/<name>` mounts the same switcher.
|
|
76
|
-
|
|
77
|
-
### 4. Build the floating switcher
|
|
78
|
-
|
|
79
|
-
A small fixed-position bar at the bottom-centre of the screen with three pieces:
|
|
80
|
-
|
|
81
|
-
- **Left arrow** — cycles to the previous variant (wraps around).
|
|
82
|
-
- **Variant label** — shows the current variant key and, if the variant exports a name, that name too. e.g. `B — Sidebar layout`.
|
|
83
|
-
- **Right arrow** — cycles forward (wraps around).
|
|
84
|
-
|
|
85
|
-
Behaviour:
|
|
86
|
-
|
|
87
|
-
- Clicking an arrow updates the URL search param (use the framework's router — `router.replace` on Next, `navigate` on React Router, etc) so the variant is shareable and reload-stable.
|
|
88
|
-
- Keyboard: `←` and `→` arrow keys also cycle. Don't intercept arrow keys when an `<input>`, `<textarea>`, or `[contenteditable]` is focused.
|
|
89
|
-
- Visually distinct from the page (e.g. high-contrast pill, subtle shadow) so it's obviously not part of the design being evaluated.
|
|
90
|
-
- Hidden in production builds — gate on `process.env.NODE_ENV !== 'production'` or an equivalent check, so a stray prototype merge can't ship the bar to users.
|
|
91
|
-
|
|
92
|
-
Put the switcher in a single shared component so both sub-shapes can reuse it. Locate it wherever shared UI lives in the project.
|
|
93
|
-
|
|
94
|
-
### 5. Hand it over
|
|
95
|
-
|
|
96
|
-
Surface the URL (and the `?variant=` keys). The user will flip through whenever they get to it. The interesting feedback is usually **"I want the header from B with the sidebar from C"** — that's the actual design they want.
|
|
97
|
-
|
|
98
|
-
### 6. Capture the answer and clean up
|
|
99
|
-
|
|
100
|
-
Once a variant has won, capture the answer — which variant and why — then capture the prototype the way the [SKILL](SKILL.md) describes. Fold the winner into the real code and move the rest onto the throwaway branch, not into main:
|
|
101
|
-
|
|
102
|
-
- **Sub-shape A** — fold the winner into the existing page; drop the losing variants and the switcher from main.
|
|
103
|
-
- **Sub-shape B** — promote the winning variant to a real route; drop the throwaway route and the switcher from main.
|
|
104
|
-
|
|
105
|
-
The full set of variants is the primary source, so it lands on the throwaway branch, not the bin — variant components and the switcher left in the main branch rot fast and confuse the next reader.
|
|
106
|
-
|
|
107
|
-
## Anti-patterns
|
|
108
|
-
|
|
109
|
-
- **Variants that differ only in colour or copy.** That's a tweak, not a prototype. Real variants disagree about structure.
|
|
110
|
-
- **Sharing too much code between variants.** A shared `<Header>` is fine; a shared `<Layout>` defeats the point. Each variant should be free to throw out the layout.
|
|
111
|
-
- **Wiring variants to real mutations.** Read-only prototypes are fine. If a variant needs to mutate, point it at a stub — the question is "what should this look like", not "does the backend work".
|
|
112
|
-
- **Promoting the prototype directly to production.** The variant code was written under prototype constraints (no tests, minimal error handling). Rewrite it properly when you fold it in.
|