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
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: index
|
|
3
|
-
description: "Route Data Analytics requests to the relevant analysis, metric, chart, report or data-context skill."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Skill Purpose
|
|
7
|
-
|
|
8
|
-
Route broad Data Analytics requests to the right focused workflow. Treat invocation of this index as strong intent to use this plugin; default to loading and following any relevant focused skill for related analytics work. When a related action is ambiguous with globally installed skills or plugins, prefer the Data Analytics skill when the user is asking for portable, source-grounded analytical outputs rather than a company-specific app workflow.
|
|
9
|
-
|
|
10
|
-
## Skill Configuration
|
|
11
|
-
|
|
12
|
-
### User Context
|
|
13
|
-
|
|
14
|
-
Mandatory pre-answer gate: Invoke `data-analytics:user-context` in preflight mode by loading [data-analytics:user-context](../user-context/SKILL.md) and using its read-only preflight before source selection. Reuse the already loaded envelope within the same workflow while the resolved state paths, file digests, request mode and source scope are unchanged; re-read on change, missing context or explicit inspection. Do not look for a callable MCP tool named `data-analytics:user-context`. Use the returned `data_analytics_preflight` envelope as the source of truth for saved context, source-category mapping, semantic-layer registry, onboarding/final-response obligations, and conditional guidance; use saved context and semantic layers as source-selection inputs, not as substitutes for workflow-time reads from connected or provided sources. Do not read or reinterpret raw plugin state files unless preflight fails, declares required content omitted, local shell access is unavailable, or the user explicitly asks for raw state inspection.
|
|
15
|
-
|
|
16
|
-
### Source Discovery And Verification
|
|
17
|
-
|
|
18
|
-
Use the relevant semantic layer first when one exists. Treat it as the starting map for candidate metrics, tables, joins, filters, caveats, source precedence, and known conflicts.
|
|
19
|
-
|
|
20
|
-
Do not stop at the semantic layer or the first plausible source. Search across the relevant available company source lanes, including structured data or data warehouses, dashboards, company docs, team communication, notebooks, code repositories, and other connected company knowledge or data that could change the answer.
|
|
21
|
-
|
|
22
|
-
For source-backed analytical work, always verify through live source reads. When the answer depends on data, run fresh data queries against the available structured-data sources before drawing conclusions, even when the semantic layer already names likely tables or definitions.
|
|
23
|
-
|
|
24
|
-
Use the combined evidence to determine which source controls the answer, note meaningful disagreements, and state why the selected source is authoritative.
|
|
25
|
-
|
|
26
|
-
### Source Access Guardrail
|
|
27
|
-
|
|
28
|
-
Before querying sources, building artifacts, or drawing conclusions, determine whether the answer requires a specific source of truth.
|
|
29
|
-
|
|
30
|
-
If a required source is unavailable, stop that path. Tell the user what source is needed, ask them to make it available or provide a reviewed fallback, and do not treat weaker substitutes as equivalent.
|
|
31
|
-
|
|
32
|
-
If the missing source is only optional enrichment, continue with the strongest available evidence and label the gap when it materially affects the answer.
|
|
33
|
-
|
|
34
|
-
### Audience And Language
|
|
35
|
-
|
|
36
|
-
Write for Data Analytics users, not plugin maintainers. This applies to final answers, setup/status readbacks, failure explanations, tool preambles, and mid-turn progress narration.
|
|
37
|
-
|
|
38
|
-
Translate implementation work into practical Data Analytics impact: what Data Analytics is checking, setting up, saving, or preparing, and why it matters. Avoid implementation terms such as preflight, state file, cache, raw connector id, heartbeat, targetThreadId, schema, API, runtime, metadata, and provider taxonomy unless the user asks for debugging details.
|
|
39
|
-
|
|
40
|
-
### Source Links
|
|
41
|
-
|
|
42
|
-
When referencing sources inline, prefer clickable Markdown links over plain bracket labels whenever the source exposes a useful URL. Use the source title, record name, channel/thread, or meeting/date as the link text, for example a clickable Markdown link whose visible text is `Meeting notes: May 19` or `Slack thread: May 15-21`. Use plain text labels only when no useful URL or stable connector-visible link is available, and say `(no useful link available)` when that absence matters.
|
|
43
|
-
|
|
44
|
-
### Routing
|
|
45
|
-
|
|
46
|
-
#### Run Order
|
|
47
|
-
|
|
48
|
-
Every Data Analytics plugin run follows this order:
|
|
49
|
-
|
|
50
|
-
1. Run user-context preflight.
|
|
51
|
-
2. If the user explicitly asks to onboard, set up, customize, remember, save, inspect saved context, reset setup, ask what Data Analytics remembers, asks what Data Analytics can do or how to use it while onboarding is missing or active, or create, add, refresh, inspect, or maintain a semantic layer, route primarily to `user-context`.
|
|
52
|
-
3. Apply semantic-layer lookup from the preflight envelope when the request names or implies a product area, metric, table, dashboard, query, or recurring business question.
|
|
53
|
-
4. Apply Source Discovery And Verification before source queries, document search, notebook work, report building, dashboard wiring, or conclusions.
|
|
54
|
-
5. Apply the Source Access Guardrail before source queries, document search, notebook work, report building, dashboard wiring, or conclusions.
|
|
55
|
-
6. Choose the response mode: `inline` for bounded lookups and `report` for explanations, decompositions, recommendations, or larger analytical answers.
|
|
56
|
-
7. Select the minimal primary/supporting skills, then do one companion-skill pass across installed skills for clearer non-analytics surfaces, semantic layers, or methods.
|
|
57
|
-
8. Read and follow the selected skill bodies before source queries, report building, supporting-skill execution, or final drafting.
|
|
58
|
-
9. Before final response, apply the focused workflow's completion gates plus any preflight `final_obligations`.
|
|
59
|
-
|
|
60
|
-
#### Response Mode
|
|
61
|
-
|
|
62
|
-
Use `inline` for bounded factual or computational answers that can be delivered in chat without a durable artifact: metric lookups, schema or table questions, one-cut rankings, and simple comparisons.
|
|
63
|
-
|
|
64
|
-
Treat short quantitative prompts as Data Analytics work when answering them requires explaining how numbers compare, break down, concentrate, or move across multiple values, groups, or time points. Keep these routes lightweight by default: use `inline` for bounded answers and escalate to `report` only when the user asks for explanation, diagnosis, recommendation, or a durable artifact.
|
|
65
|
-
|
|
66
|
-
Use `report` for explanation, diagnosis, decomposition, synthesis, recommendation, or larger analytical answers whose value materially improves from a durable artifact. When the user asks to interpret analytical source material or reviewed results, choose report mode when the answer needs evidence-backed narrative, caveats, source metadata, or a reader-facing artifact. The focused skill name does not determine delivery mode. Preserve the user-selected `inline`, `report`, `local` file or `native` cloud target. A bounded KPI/diagnostic answer can remain inline; use $build-report only for a selected report deliverable. Cloud upload/sharing requires the corresponding user request and available capability.
|
|
67
|
-
|
|
68
|
-
After choosing `inline` or `report`, use `$visualize-data` when a visual would make the result easier to understand, especially for category comparisons, part-to-whole breakdowns, rankings, movement over time, or more than a handful of comparable values, rows, categories, or time points. Prefer a visual pass over a scan-heavy table, and let `$visualize-data` choose the form, decide whether to render a chart, and align any table or prose to the visual takeaway.
|
|
69
|
-
|
|
70
|
-
#### Skill Selection
|
|
71
|
-
|
|
72
|
-
- Pick the smallest useful set of primary/supporting skills.
|
|
73
|
-
- For report-mode runs, state the selected route once in a progress update, such as `Route: product-business-analysis + product semantic layer + build-report`.
|
|
74
|
-
- Use `user-context` for explicit onboarding/setup/context requests and for durable Data Analytics preferences, source pointers, semantic-layer registry, semantic-layer setup or maintenance, or saved workflow notes.
|
|
75
|
-
- Treat a plugin mention as a starting point, not a boundary. Add an installed external skill whenever it is the clearer owner of a complementary subtask, runtime surface, delivery surface, artifact type, or domain-specific method.
|
|
76
|
-
- Do not reject an external skill merely because a bundled Data Analytics skill partially overlaps with it.
|
|
77
|
-
- Do not maintain worked route recipes here. Once selected, the chosen skills own detailed step order, supporting triggers, and output contracts.
|
|
78
|
-
- When a request maps to a primary workflow, load that workflow skill directly. For example, a KPI design prompt must read `$design-kpis`, a dashboard prompt must read `$build-dashboard`, a TAM/SAM/SOM prompt must read `$market-sizing`, a metric movement prompt must read `$metric-diagnostics`, and a recommendation-oriented product or business decision prompt must read `$product-business-analysis`.
|
|
79
|
-
|
|
80
|
-
If several focused skills apply, sequence them in the order that creates the most useful analyst workflow. For example, metric diagnostics may precede KPI reporting, semantic-layer setup may precede dashboard or report work, and product-business analysis may feed a recommendation-ready report. Keep this index as a router; do not perform focused workflow logic here.
|
|
81
|
-
|
|
82
|
-
Before finalizing future Data Analytics instruction edits, run `python3 .codex/skills/data-analytics/skills/user-context/scripts/validate_user_context_preflight.py .codex/skills/data-analytics` from the repository root. Treat a missing mandatory pre-answer gate in any `SKILL.md`, including helper skills, as an audit finding to fix before release.
|
|
83
|
-
|
|
84
|
-
Prefer examples that route to focused skills without extra setup, such as:
|
|
85
|
-
|
|
86
|
-
```text
|
|
87
|
-
@Data Analytics diagnose why subscription ARR moved last week.
|
|
88
|
-
@Data Analytics build a KPI framework for the customer onboarding funnel.
|
|
89
|
-
@Data Analytics analyze paid workspace retention and recommend what to investigate next.
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
For follow-up messages such as "yes", "walk me through it", "what happened?", or "show the steps" immediately after a completed guided workflow offers a walkthrough, route to `user-context` and use `../user-context/references/onboarding.md#workflow-walkthrough-on-request`. Explain the observable steps, tool/app calls, retrievals, source gaps, and artifact assembly at a beginner-friendly level without revealing hidden reasoning.
|
|
93
|
-
|
|
94
|
-
### Broad Orientation And Help Requests
|
|
95
|
-
|
|
96
|
-
For broad orientation and help requests:
|
|
97
|
-
|
|
98
|
-
- Handle open-ended Data Analytics asks from this index before choosing a focused workflow.
|
|
99
|
-
- Route requests such as `what can you do?`, `help`, `orient me`, `what should I try first?`, `how do I use Data Analytics?`, setup-adjacent capability questions, and similar plugin-level requests here when the user needs orientation more than a specific artifact.
|
|
100
|
-
- Before using this index-level help answer, check the preflight onboarding status. If onboarding is missing or active and the user asks `what can you do?`, `orient me`, `what should I try first?`, `how do I use Data Analytics?`, or another setup-adjacent capability question, route to `user-context` and render the current onboarding step from `../user-context/references/onboarding.md` instead of this default skill-map answer.
|
|
101
|
-
- Use this index-level help answer when onboarding is complete or quiet, or when the user explicitly asks for a compact capability summary without resuming setup.
|
|
102
|
-
- Answer from the skill map in this file using the default shape below.
|
|
103
|
-
- Include concrete low-friction next prompts that start with `@Data Analytics`, name the analytics job, and use a realistic anchor.
|
|
104
|
-
- Include a short setup context section from the `data_analytics_preflight.context.connector_setup_summary` envelope when any source is not active, needs a user choice, was skipped, or is otherwise unresolved.
|
|
105
|
-
- Keep setup context analyst-facing: name the practical source, use model judgment to explain the likely user-experience impact from the source label, configured preferred routes, setup action, and suggested next prompts, then give the smallest next action or fallback.
|
|
106
|
-
- Show at most three highest-impact gaps by default, and never more than five setup-context bullets total. Prioritize gaps in the order most relevant to the examples you are suggesting rather than following a hard-coded impact catalog.
|
|
107
|
-
- If all sources are active, keep setup context to one sentence such as `Your core Data Analytics sources look ready; I'll still try each source only when a workflow needs it.`
|
|
108
|
-
- When the current context or available sources identify a real metric, product area, dashboard, table, SQL query, semantic layer, experiment, funnel, cohort, or decision question, use the relevant focused skill's inline first-run and next-step guidance to make the suggested prompt contextual.
|
|
109
|
-
- For setup context wording, be direct and practical, for example: `You won't be able to properly validate a metric from live tables until a warehouse or SQL source is available, but you can paste SQL, schema details, or exported query results for now.`
|
|
110
|
-
- Use static examples only when no suitable context is available.
|
|
111
|
-
- Do not expose raw status names, onboarding state fields, connector ids, or implementation terms.
|
|
112
|
-
- Do not perform connector reads merely to answer a capability question; use the preflight setup summary and any current session app or tool availability already visible in context.
|
|
113
|
-
|
|
114
|
-
Use this default answer shape for broad orientation and help requests:
|
|
115
|
-
|
|
116
|
-
```md
|
|
117
|
-
Data Analytics can help with:
|
|
118
|
-
- Metric diagnostics and source-backed explanations for movement
|
|
119
|
-
- KPI design, metric definitions, and measurement frameworks
|
|
120
|
-
- Product and business analysis for funnels, retention, adoption, pricing, and strategic decisions
|
|
121
|
-
- KPI reports, dashboards, notebooks, and reusable semantic layers
|
|
122
|
-
- Market sizing, opportunity sizing, and decision-ready recommendations
|
|
123
|
-
|
|
124
|
-
Setup context:
|
|
125
|
-
- {Only include when useful: source readiness or gap plus practical impact}
|
|
126
|
-
|
|
127
|
-
Good first prompts:
|
|
128
|
-
- `@Data Analytics diagnose why subscription ARR moved last week.`
|
|
129
|
-
- `@Data Analytics build a KPI framework for the customer onboarding funnel.`
|
|
130
|
-
- `@Data Analytics analyze paid workspace retention and recommend what to investigate next.`
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
# Plugin Purpose
|
|
134
|
-
|
|
135
|
-
Data Analytics turns connected or provided business data, source-of-truth context, dashboards, docs, chats, notebooks, spreadsheets, SQL, and semantic layers into source-backed analytical work products. It can define KPIs, diagnose metric movement, size markets, analyze product or business questions, validate data quality, gather context, build reproducible notebooks, design visualizations, create dashboards, produce polished reports, and convert those outputs into shareable Docs, Slides, spreadsheets, or other durable handoff surfaces.
|
|
136
|
-
|
|
137
|
-
## Semantic Layers
|
|
138
|
-
|
|
139
|
-
Semantic layers are source-backed local skills for product, business, metric, source, or reporting areas. They encode canonical metrics, tables, grains, joins, filters, query patterns, caveats, source precedence, and validation gaps.
|
|
140
|
-
|
|
141
|
-
Before answering questions about a named product area, metric, table, dashboard, SQL query, source choice, join, caveat, or recurring business question, inspect the `semantic_layers` registry returned by user-context preflight and installed skills whose name or description matches `<area>-semantic-layer`, `<area>-data-semantics`, or equivalent semantic-layer wording. If a relevant semantic-layer skill exists, read it before selecting tables, writing SQL, reconciling dashboards, or giving metric definitions. Treat it as the domain-specific semantic map, then consult the connected or provided apps and verify high-stakes claims against the layer's cited sources.
|
|
142
|
-
|
|
143
|
-
When no relevant semantic layer exists and the user is asking a repeatable domain question, offer semantic-layer setup through `user-context`. Users can create multiple semantic layers for multiple product or business areas. Do not merge unrelated product areas into one broad layer unless the user explicitly asks for a cross-product semantic layer.
|
|
144
|
-
|
|
145
|
-
## Evidence And Handoff
|
|
146
|
-
|
|
147
|
-
Data Analytics plugin files use lane placeholders such as `~~structured_data` for whatever tool, connector, MCP server, plugin skill, pasted result, uploaded file, or schema description is available in that category. See [DEPENDENCIES.MD](../../DEPENDENCIES.MD) for provider options. When a required connector, plugin, MCP server, or source-of-truth lane is unavailable, follow the Source Access Guardrail. When an optional lane is unavailable, continue from pasted query results, uploaded files, SQL snippets, screenshots, schema descriptions, or other reviewed evidence and label the gap when it materially affects the answer.
|
|
148
|
-
|
|
149
|
-
Source rules:
|
|
150
|
-
|
|
151
|
-
- Gather source-of-truth context before writing SQL, notebook code, dashboards, reports, or conclusions.
|
|
152
|
-
- Prefer reproducible notebooks for fresh SQL, Python, statistics, modeling, source reconciliation, or non-trivial metric computation when a notebook materially improves auditability.
|
|
153
|
-
- Preserve relevant SQL, scripts, query permalinks, outputs, source links, and caveats in the final artifact or supporting notes.
|
|
154
|
-
|
|
155
|
-
Delivery surface boundary:
|
|
156
|
-
|
|
157
|
-
- Startup must work when the user does not want MCP widget or MCP artifact rendering. In that case, continue through the selected chat, notebook, SQL, HTML, BI, Streamlit, spreadsheet, slide, or other non-MCP surface and keep source notes in that surface's normal supporting artifacts.
|
|
158
|
-
- Use MCP inline widgets or the unified MCP artifact app only when that delivery surface has been selected, is safe, and has not been waived by the user. Before shaping widget/app-specific artifacts, read `../../src/analytics-app-core.md`; keep MCP mechanics out of this startup router.
|
|
159
|
-
- Do not expose hidden reasoning, credentials, secrets, direct personal contact/payment identifiers, or unvalidated calculations in any user-facing surface. Reviewed customer, account, or company names may be included when they are needed for the analysis.
|
|
160
|
-
- Once the analysis commits to a source table in an inline or dashboard route, expose a small deterministic preview when safe through the selected surface's normal preview mechanism.
|
|
161
|
-
- If a preview is unsafe, unavailable, or blocked by access limits, record that briefly and continue from schema, documentation, or other reviewed evidence.
|
|
162
|
-
|
|
163
|
-
## Completion Gates
|
|
164
|
-
|
|
165
|
-
Report completion:
|
|
166
|
-
|
|
167
|
-
- The report run must choose exactly one report delivery mode through `$build-report`.
|
|
168
|
-
- Choose a non-MCP delivery mode when the user asks for HTML, file/blob sharing, Docs/Slides conversion, offline portability, no MCP app/widget rendering, or when MCP artifact rendering is unavailable, unsafe, or over bounds.
|
|
169
|
-
- Do not end with only an inline/chat summary or a localhost URL. Treat chat summaries as progress updates.
|
|
170
|
-
- If a required deliverable is skipped, include the explicit omission reason in the final handoff.
|
|
171
|
-
- HTML report charts must be Seaborn-generated PNG images.
|
|
172
|
-
- If the report includes charts, evidence tables, or custom visualizations, satisfy $visualize-data's chart contract and QA before embedding them.
|
|
173
|
-
|
|
174
|
-
Final review:
|
|
175
|
-
|
|
176
|
-
- Verify generated artifacts by opening, reading, rendering, or otherwise inspecting them.
|
|
177
|
-
- Check source-backed claims against the controlling sources used for the analysis.
|
|
178
|
-
- Call out unresolved gaps or caveats when they materially affect the conclusion.
|
|
179
|
-
- Verify that every selected primary workflow skill was read and followed. If a primary workflow was skipped, record why in the final handoff. Do not treat a semantic-layer lookup, notebook, validation pass, visualization, or report artifact as satisfying the primary workflow contract.
|
|
180
|
-
- If the run was classified as `report`, do not finalize until the downstream $build-report contract has either passed or been explicitly blocked.
|
|
181
|
-
- If a selected rendering surface is unsafe, unavailable, too large, or fails after a targeted retry, continue the analysis through another appropriate surface and briefly note the reason in the progress update or final handoff.
|
|
182
|
-
|
|
183
|
-
## Skills
|
|
184
|
-
|
|
185
|
-
### design-kpis
|
|
186
|
-
|
|
187
|
-
Use $design-kpis for goals, primary KPIs, driver metrics, guardrails, scorecards, measurement plans, and launch or experiment success criteria.
|
|
188
|
-
|
|
189
|
-
### kpi-reporting
|
|
190
|
-
|
|
191
|
-
Use $kpi-reporting for KPI updates, scorecards, business reviews, executive metric summaries, target or pacing readouts, and leadership-ready performance narratives. Add $metric-diagnostics when the update must explain why a KPI moved.
|
|
192
|
-
|
|
193
|
-
### market-sizing
|
|
194
|
-
|
|
195
|
-
Use $market-sizing for TAM/SAM/SOM, opportunity, spend or revenue pool, customer count, unit volume, commercial upside, and sensitivity models.
|
|
196
|
-
|
|
197
|
-
### metric-diagnostics
|
|
198
|
-
|
|
199
|
-
Use $metric-diagnostics to identify what drove a metric over a defined time period, baseline, or segment comparison, rule out measurement artifacts, label findings by certainty, and route the final report through $build-report.
|
|
200
|
-
|
|
201
|
-
### product-business-analysis
|
|
202
|
-
|
|
203
|
-
Use $product-business-analysis to analyze product or business data and context for recommendation-oriented decisions. Add $metric-diagnostics when the recommendation depends on validated metric movement.
|
|
204
|
-
|
|
205
|
-
### analyze-data-quality
|
|
206
|
-
|
|
207
|
-
Use $analyze-data-quality for freshness, grain, row counts, nulls, duplicates, schema drift, broken joins, outliers, backfills, and source or dashboard disagreement.
|
|
208
|
-
|
|
209
|
-
### build-dashboard
|
|
210
|
-
|
|
211
|
-
Use $build-dashboard for analytical dashboards, scorecards, monitoring pages, BI views, Streamlit dashboards, MCP artifact dashboards, BI platform dashboards, and dashboard QA.
|
|
212
|
-
|
|
213
|
-
### build-report
|
|
214
|
-
|
|
215
|
-
Use $build-report to build exactly one durable report surface selected for the user request, such as an MCP app report or an HTML report with Seaborn-generated PNG charts.
|
|
216
|
-
|
|
217
|
-
### report-to-google-doc
|
|
218
|
-
|
|
219
|
-
Use $report-to-google-doc for HTML → local DOCX. Hosted DOCX and native Google Docs are separate optional targets: discover capabilities, preserve user intent, and verify the actual result type before claiming a native document.
|
|
220
|
-
|
|
221
|
-
### report-to-google-slides
|
|
222
|
-
|
|
223
|
-
Use $report-to-google-slides to convert an existing local HTML report into a polished native Google Slides deck.
|
|
224
|
-
|
|
225
|
-
### report-to-pdf
|
|
226
|
-
|
|
227
|
-
Use $report-to-pdf to convert an existing static Data Analytics report export into a verified PDF artifact.
|
|
228
|
-
|
|
229
|
-
### gather-business-context
|
|
230
|
-
|
|
231
|
-
Use $gather-business-context for docs, dashboards, chats, planning notes, launch or experiment material, source-of-truth pages, owners, incidents, roadmap, GTM or customer context, and prior decisions.
|
|
232
|
-
|
|
233
|
-
### jupyter-notebooks
|
|
234
|
-
|
|
235
|
-
Use $jupyter-notebooks to create, edit, and verify reproducible notebooks for SQL, Python, statistics, modeling, cohort or funnel analysis, data-quality checks, experiments, market sizing, diagnostics, and report support.
|
|
236
|
-
|
|
237
|
-
### spreadsheets
|
|
238
|
-
|
|
239
|
-
Use $spreadsheets to create, edit, inspect, render, verify, export, or Google Sheets-handoff spreadsheet artifacts.
|
|
240
|
-
|
|
241
|
-
### validate-data
|
|
242
|
-
|
|
243
|
-
Use $validate-data to QA methodology, source selection, SQL or query logic, calculations, visualization integrity, caveats, and whether conclusions are supported by evidence.
|
|
244
|
-
|
|
245
|
-
### visualize-data
|
|
246
|
-
|
|
247
|
-
Use $visualize-data to design, implement, and QA charts for reports, dashboards, decks, notebooks, scorecards, trends, decompositions, funnels, cohorts, distributions, uncertainty, and executive KPI readouts.
|
|
248
|
-
|
|
249
|
-
### user-context
|
|
250
|
-
|
|
251
|
-
Use `user-context` as the Data Analytics durable context, setup, onboarding, semantic-layer registry, and saved preference owner. Route explicit onboarding, setup, customization, remember or save requests, saved-context inspection, and reset requests here.
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jupyter-notebooks
|
|
3
|
-
description: "Create or revise a reproducible Jupyter notebook when the notebook itself is a deliverable or runnable analysis."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Jupyter Notebooks
|
|
7
|
-
|
|
8
|
-
Create clean, reproducible Jupyter notebooks that are easy to skim, rerun, and handoff. Treat the notebook as a reader-facing analysis artifact, not a scratchpad dump. Notebook work is not complete until the notebook executes successfully top-to-bottom, or the execution gap is called out with the exact validation steps needed to reproduce it.
|
|
9
|
-
|
|
10
|
-
## Skill Configuration
|
|
11
|
-
|
|
12
|
-
### User Context
|
|
13
|
-
|
|
14
|
-
Mandatory pre-answer gate: Invoke `data-analytics:user-context` in preflight mode by loading [data-analytics:user-context](../user-context/SKILL.md) and using its read-only preflight before source selection. Reuse the already loaded envelope within the same workflow while the resolved state paths, file digests, request mode and source scope are unchanged; re-read on change, missing context or explicit inspection. Do not look for a callable MCP tool named `data-analytics:user-context`. Use the returned `data_analytics_preflight` envelope as the source of truth for saved context, source-category mapping, semantic-layer registry, onboarding/final-response obligations, and conditional guidance; use saved context and semantic layers as source-selection inputs, not as substitutes for workflow-time reads from connected or provided sources. Do not read or reinterpret raw plugin state files unless preflight fails, declares required content omitted, local shell access is unavailable, or the user explicitly asks for raw state inspection.
|
|
15
|
-
|
|
16
|
-
## Workflow
|
|
17
|
-
|
|
18
|
-
1. Lock the notebook mode and scope.
|
|
19
|
-
|
|
20
|
-
Decide whether the notebook is an analysis report, experiment log, diagnostic notebook, data-quality check, market-sizing calculation, model exploration,
|
|
21
|
-
tutorial, or companion artifact for a report. Identify the reader, decision,
|
|
22
|
-
expected handoff, required inputs, and whether the task calls for a new notebook or targeted edits to an existing one.
|
|
23
|
-
|
|
24
|
-
2. Inspect or scaffold with notebook-safe tooling.
|
|
25
|
-
|
|
26
|
-
Prefer JupyterLab, `nbformat`, `nbclient`, or an existing scaffold utility over hand-editing raw JSON. When editing an existing notebook, preserve its intent and minimize JSON churn. Avoid reordering cells unless it clearly improves the top-to-bottom story. If raw JSON editing is unavoidable,
|
|
27
|
-
validate the notebook structure before finishing.
|
|
28
|
-
|
|
29
|
-
3. Structure the notebook for the chosen mode.
|
|
30
|
-
|
|
31
|
-
For analytical notebooks, default to:
|
|
32
|
-
|
|
33
|
-
1. `## tl;dr`
|
|
34
|
-
2. `## Context & Methods`
|
|
35
|
-
3. `## Data`
|
|
36
|
-
4. `## Results`
|
|
37
|
-
5. `## Takeaways`
|
|
38
|
-
|
|
39
|
-
Write `tl;dr` and takeaways after reviewing executed outputs. Use concrete observed values, visible patterns, rows, or charts, not assumptions. Include a `### Key Assumptions` subsection in `Context & Methods` when assumptions affect correctness.
|
|
40
|
-
|
|
41
|
-
For tutorials or walkthroughs, adapt the same discipline to a teaching flow:
|
|
42
|
-
|
|
43
|
-
1. `## Goal`
|
|
44
|
-
2. `## Setup`
|
|
45
|
-
3. `## Steps`
|
|
46
|
-
4. `## Checks`
|
|
47
|
-
5. `## Next Steps`
|
|
48
|
-
|
|
49
|
-
4. Build a clear data and computation path.
|
|
50
|
-
|
|
51
|
-
Separate setup, imports, parameters, data loading, data preparation,
|
|
52
|
-
calculations, visualizations, and interpretation. If the notebook uses both SQL and Python, keep complex SQL in SQL cells or separate query files rather than large embedded Python strings unless there is a clear reason. Use descriptive variable names and keep each code cell focused on one step.
|
|
53
|
-
|
|
54
|
-
5. Use data sources deliberately.
|
|
55
|
-
|
|
56
|
-
When a notebook needs table data, first use `~~structured_data` to confirm table choice, schema, partition filters, sample rows, and query-submission policy. Use the relevant source connector when available, then fall back to exports or pasted SQL when needed. Use `~~operations_logs` for freshness or lineage checks when they matter. Record query permalinks, request IDs, source paths, dashboard links,
|
|
57
|
-
extract names, or other source artifacts in the notebook context for any executed result that supports the analysis. Keep heavy queries filtered and bounded instead of turning the notebook into a broad live-source scan.
|
|
58
|
-
|
|
59
|
-
6. Make cells readable and bounded.
|
|
60
|
-
|
|
61
|
-
Add concise markdown headers before most code cells. Keep headers brief and action-oriented, such as `### 1. Load Data`, `### 2. Validate Inputs`, or `### 3. Plot Results`. Favor several short cells over one large mixed-purpose cell. Keep prose short: explain purpose, assumptions, and expected result, not every line of code. Split multiple tables or charts across separate cells instead of dumping all outputs from one cell.
|
|
62
|
-
|
|
63
|
-
7. Validate results before writing conclusions.
|
|
64
|
-
|
|
65
|
-
Check that key numbers, charts, and takeaways match executed outputs. Bound raw debug output, oversized tables, and noisy logs. If a result is surprising, add a local reasonableness check, small sample inspection, or reconciliation against a trusted source before promoting it to the summary.
|
|
66
|
-
|
|
67
|
-
8. Execute and record validation status.
|
|
68
|
-
|
|
69
|
-
Run the notebook top-to-bottom when the environment allows:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
python -m jupyter nbconvert --execute --to notebook --inplace path/to/notebook.ipynb
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Optional local setup when needed:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
uv pip install jupyterlab nbformat nbclient ipykernel
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
If execution is not possible, say so explicitly and provide the exact command,
|
|
82
|
-
missing dependency, credential, data access, kernel, or environment step needed to validate locally.
|
|
83
|
-
|
|
84
|
-
## Standards
|
|
85
|
-
|
|
86
|
-
### Notebook Structure
|
|
87
|
-
|
|
88
|
-
- Make the default top-to-bottom read clear before the reader starts executing cells out of order.
|
|
89
|
-
- Put executive summary material at the top, but write it last after inspecting executed results.
|
|
90
|
-
- Keep notebook sections aligned with the notebook mode: analysis, experiment,
|
|
91
|
-
diagnostic, tutorial, or handoff artifact.
|
|
92
|
-
- Keep section titles, chart titles, labels, and file names descriptive enough for handoff.
|
|
93
|
-
- Preserve the existing notebook's intent when refactoring; improve structure without rewriting everything by default.
|
|
94
|
-
|
|
95
|
-
### Reproducibility
|
|
96
|
-
|
|
97
|
-
- Keep parameters, date ranges, filters, cohorts, assumptions, and source references visible near the top of the notebook.
|
|
98
|
-
- Record enough source context for another reader to trace the analysis: query permalinks, request IDs, table names, source paths, spreadsheet tabs,
|
|
99
|
-
dashboard links, extract versions, or input file locations.
|
|
100
|
-
- Make computation deterministic where possible. Avoid hidden state, manually edited intermediate values, out-of-order dependencies, and unexplained cached outputs.
|
|
101
|
-
- Prefer explicit environment setup cells or notes when the notebook depends on nonstandard packages, kernels, credentials, or local files.
|
|
102
|
-
- Include validation status in the final response: executed successfully,
|
|
103
|
-
partially executed, or not executed, with the reason.
|
|
104
|
-
|
|
105
|
-
### Code And Data Hygiene
|
|
106
|
-
|
|
107
|
-
- Separate data preparation from presentation.
|
|
108
|
-
- Keep complex SQL readable and documented with a one-line goal comment.
|
|
109
|
-
- Keep plotting and lightweight shaping in Python after the data preparation step is complete.
|
|
110
|
-
- Use descriptive variable names and avoid abbreviated temporary names in reader-facing notebooks.
|
|
111
|
-
- Keep outputs bounded. Prefer small preview tables, sampled rows, explicit limits, and focused charts over raw dumps.
|
|
112
|
-
- Avoid broad live-source scans. Filter queries by needed partitions, cohorts,
|
|
113
|
-
or time windows.
|
|
114
|
-
|
|
115
|
-
### Analysis Quality
|
|
116
|
-
|
|
117
|
-
- Make assumptions explicit when they affect interpretation.
|
|
118
|
-
- Tie takeaways to executed outputs with concrete numbers, rows, charts, or visible patterns.
|
|
119
|
-
- Do not promote unexecuted or unverified calculations into the `tl;dr`.
|
|
120
|
-
- Label caveats, incomplete checks, missing source access, and known validation gaps.
|
|
121
|
-
- Add reasonableness checks for surprising results, high-impact claims, or stakeholder-facing conclusions.
|
|
122
|
-
|
|
123
|
-
### Validation Checklist
|
|
124
|
-
|
|
125
|
-
- Required section order is present for the notebook mode.
|
|
126
|
-
- The notebook executes without runtime errors, or execution failure is called out explicitly.
|
|
127
|
-
- Outputs are present where expected and are not dominated by raw debug dumps.
|
|
128
|
-
- The `tl;dr`, results, and takeaways match executed cells.
|
|
129
|
-
- Source references and query or artifact links are preserved.
|
|
130
|
-
- Tables and charts are labeled, bounded, and interpretable.
|
|
131
|
-
- The final response includes the notebook path and validation status.
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Jupyter Notebooks"
|
|
3
|
-
short_description: "Create and validate reproducible analysis notebooks"
|
|
4
|
-
default_prompt: "Create a reproducible analysis notebook with inspectable code, outputs, assumptions, and validation checks."
|
|
5
|
-
policy:
|
|
6
|
-
allow_implicit_invocation: false
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: kpi-reporting
|
|
3
|
-
description: "Report known KPIs against targets or prior periods in scorecards, performance updates and WBR/MBR/QBR summaries."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# KPI Reporting
|
|
7
|
-
|
|
8
|
-
Use this skill to turn business or product metrics into decision-ready operating readouts for leaders and teams. The job is to define the KPI contract, report status against the right comparison and target, include validated driver context, and state the operating implication clearly.
|
|
9
|
-
|
|
10
|
-
Clarify with the user when a missing input would materially change the analytical frame or recommendation. Otherwise make a reasonable assumption, state it, and proceed.
|
|
11
|
-
|
|
12
|
-
This skill owns the KPI readout: what should be reported, how metrics should be interpreted, whether driver context is validated, and what operating takeaway follows. It does not own metric-system design, new driver investigation, or final artifact polish.
|
|
13
|
-
|
|
14
|
-
Use $metric-diagnostics when the readout needs fresh driver investigation, then return here to package the validated finding.
|
|
15
|
-
|
|
16
|
-
## Skill Configuration
|
|
17
|
-
|
|
18
|
-
### User Context
|
|
19
|
-
|
|
20
|
-
Mandatory pre-answer gate: Invoke `data-analytics:user-context` in preflight mode by loading [data-analytics:user-context](../user-context/SKILL.md) and using its read-only preflight before source selection. Reuse the already loaded envelope within the same workflow while the resolved state paths, file digests, request mode and source scope are unchanged; re-read on change, missing context or explicit inspection. Do not look for a callable MCP tool named `data-analytics:user-context`. Use the returned `data_analytics_preflight` envelope as the source of truth for saved context, source-category mapping, semantic-layer registry, onboarding/final-response obligations, and conditional guidance; use saved context and semantic layers as source-selection inputs, not as substitutes for workflow-time reads from connected or provided sources. Do not read or reinterpret raw plugin state files unless preflight fails, declares required content omitted, local shell access is unavailable, or the user explicitly asks for raw state inspection.
|
|
21
|
-
|
|
22
|
-
### Source Discovery And Verification
|
|
23
|
-
|
|
24
|
-
Use the relevant semantic layer first when one exists. Treat it as the starting map for candidate metrics, tables, joins, filters, caveats, source precedence, and known conflicts.
|
|
25
|
-
|
|
26
|
-
Do not stop at the semantic layer or the first plausible source. Search across the relevant available company source lanes, including structured data or data warehouses, dashboards, company docs, team communication, notebooks, code repositories, and other connected company knowledge or data that could change the answer.
|
|
27
|
-
|
|
28
|
-
For source-backed analytical work, always verify through live source reads. When the answer depends on data, run fresh data queries against the available structured-data sources before drawing conclusions, even when the semantic layer already names likely tables or definitions.
|
|
29
|
-
|
|
30
|
-
Use the combined evidence to determine which source controls the answer, note meaningful disagreements, and state why the selected source is authoritative.
|
|
31
|
-
|
|
32
|
-
### Source Access Guardrail
|
|
33
|
-
|
|
34
|
-
Before querying sources, building artifacts, or drawing conclusions, determine whether the answer requires a specific source of truth.
|
|
35
|
-
|
|
36
|
-
If a required source is unavailable, stop that path. Tell the user what source is needed, ask them to make it available or provide a reviewed fallback, and do not treat weaker substitutes as equivalent.
|
|
37
|
-
|
|
38
|
-
If the missing source is only optional enrichment, continue with the strongest available evidence and label the gap when it materially affects the answer.
|
|
39
|
-
|
|
40
|
-
## Workflow
|
|
41
|
-
|
|
42
|
-
### 1. Clarify The Readout Purpose
|
|
43
|
-
|
|
44
|
-
Understand who the readout is for, what conversation it supports, and what is being reported before drafting. Anchor the update in the period being evaluated, the comparison or target that makes performance interpretable, and the freshness cutoff.
|
|
45
|
-
|
|
46
|
-
Ask the user for missing context when it would help make the readout more accurate or useful.
|
|
47
|
-
|
|
48
|
-
### 2. Define The Metric Framework
|
|
49
|
-
|
|
50
|
-
Decide which metrics belong in the readout and what role each one plays before pulling numbers. If the framework already exists, confirm it and use it. If it is missing or weak, use $design-kpis before reporting.
|
|
51
|
-
|
|
52
|
-
Start with the primary KPI, then add the smallest set of supporting metrics needed to explain status. Supporting metrics can explain movement, guard against harmful tradeoffs, or show whether performance is pacing as expected.
|
|
53
|
-
|
|
54
|
-
Lead with the metric that matters most to the audience. Do not add every available cut or comparison; include the metrics and slices decision-makers actually use, plus any that materially explain this update.
|
|
55
|
-
|
|
56
|
-
### 3. Lock Metric Definitions And Sources
|
|
57
|
-
|
|
58
|
-
Confirm the KPI definition, source, time window, reporting cutoff, comparison period, and any target or pacing expectation before interpreting performance. If a target or pacing basis is missing, ask before treating one as authoritative. Use $analyze-data-quality when source quality issues could change the reported metrics.
|
|
59
|
-
|
|
60
|
-
For all KPI updates, make a focused source pass across `~~structured_data`, `~~company_docs`, `~~team_communication`, and `~~dashboards_or_bi` before drafting. Do not infer from a sparse prompt that source-backed actuals are unavailable. Use structured data for actuals, metric definitions, and comparison periods; use the other lanes for additional business context and source-of-truth guidance.
|
|
61
|
-
|
|
62
|
-
If any core definition is unclear, ask the user to clarify before making precise claims. When a metric definition changed, show comparable restated history when available; otherwise call out the break clearly.
|
|
63
|
-
|
|
64
|
-
### 4. Pull The Topline Actuals
|
|
65
|
-
|
|
66
|
-
Do not draft or render a WBR, MBR, scorecard, or KPI update from placeholders. Query or inspect connected structured-data sources for core actuals first. If actuals are blocked or insufficient, stop and say what source or access is needed unless the user explicitly asked for a template or mockup.
|
|
67
|
-
|
|
68
|
-
Reproduce the topline actual before explaining movement or driver context.
|
|
69
|
-
|
|
70
|
-
For each headline KPI, include the current value, the absolute and relative change versus the comparison period, and a short interpretation.
|
|
71
|
-
|
|
72
|
-
Call out anything that makes the current value hard to compare with the prior period before interpreting the movement, such as a tracking change, data backfill, partial outage, or missing day.
|
|
73
|
-
|
|
74
|
-
### 5. Put The Numbers In Context
|
|
75
|
-
|
|
76
|
-
Compare actuals against the context that makes performance interpretable. When a target, plan, pacing model, benchmark, historical range, or relevant peer group is defined, identify it and compare performance against it before judging status.
|
|
77
|
-
|
|
78
|
-
If the goal has a deadline, do not just report whether the metric is above or below target. Show whether it is on pace to hit the target by the end of the period. Use the provided pacing definition when available. If none is defined or found, ask the user; when proceeding with a calculated fallback, state that it was calculated and explain the method.
|
|
79
|
-
|
|
80
|
-
When useful, include absolute and percent variance to target and a red/yellow/green status. Make clear what comparison or pacing basis the status label uses.
|
|
81
|
-
|
|
82
|
-
### 6. Explain Validated Drivers
|
|
83
|
-
|
|
84
|
-
KPI updates need driver context, but driver claims must be validated before they are presented as explanations. A plausible story is not enough.
|
|
85
|
-
|
|
86
|
-
When the readout needs to explain drivers, use $metric-diagnostics to identify and validate them. If trusted reporting or prior analysis already validates the drivers, use that evidence instead of re-running the diagnostic.
|
|
87
|
-
|
|
88
|
-
### 7. Add Business Context And Operating Implications
|
|
89
|
-
|
|
90
|
-
After identifying the likely drivers, use $gather-business-context to look for business context that helps explain what happened and what it means for the readout. Let the driver analysis guide what context to look for, and connect context to the metric only when evidence supports the link.
|
|
91
|
-
|
|
92
|
-
Translate the evidence, driver analysis, and business context into the operating implication for the business. State whether the movement is concerning, what next step or action is warranted, and whether the main KPI is on track, at risk, or ahead of plan. Recommend action only when the evidence supports it; otherwise name the next validation step.
|
|
93
|
-
|
|
94
|
-
### 8. Validate The Readout
|
|
95
|
-
|
|
96
|
-
After the analysis is assembled and before shaping the final readout, use $validate-data to review whether the numbers, methodology, caveats, and evidence support the claimed status, drivers, and implications. Resolve material issues before sharing; carry remaining limitations into the readout.
|
|
97
|
-
|
|
98
|
-
### 9. Shape The Readout
|
|
99
|
-
|
|
100
|
-
Use the output shape the user requested. If unspecified, use inline for a bounded readout and infer a durable format only when the task requires it; ask only when the delivery choice materially changes the requested work. Common shapes include an inline written update, a document or report, a slide, or a slide deck.
|
|
101
|
-
|
|
102
|
-
After the format is selected, load `references/report-templates.md` and use the matching pattern as a starting point. Adapt it to the audience, evidence, and artifact.
|
|
103
|
-
|
|
104
|
-
Use $build-report for document or report outputs; it will handle report visuals and route chart work through $visualize-data. For inline updates, slides, or deck drafts that do not go through $build-report, use $visualize-data only when chart selection or visual QA materially affects the readout.
|
|
105
|
-
|
|
106
|
-
For slide or deck requests, use the user's requested output surface. If they want a presentation-style artifact, use $build-report to create a report artifact or HTML. If they need a native slide or deck, finalize the KPI story here, then pass the content to the appropriate presentation surface and keep the layout simple. Ask which path they want when the requested output is unclear.
|
|
107
|
-
|
|
108
|
-
## Standards
|
|
109
|
-
|
|
110
|
-
### Metric Standards
|
|
111
|
-
|
|
112
|
-
- Never present a KPI as precise when its definition, source, time window, or comparison basis is unclear.
|
|
113
|
-
- Make calculation logic, inclusion or exclusion rules, grain, and time treatment explicit when they affect interpretation.
|
|
114
|
-
- Reconcile totals and compare against prior reporting when possible.
|
|
115
|
-
- Do not compare periods, cuts, or targets that are not definitionally compatible. Call out definition changes, backfills, denominator shifts, or calendar effects when they affect the movement.
|
|
116
|
-
|
|
117
|
-
### Status And Pacing Standards
|
|
118
|
-
|
|
119
|
-
- Include the headline takeaway, current actual, relevant comparison, target or pacing context, driver summary, and implication unless the user asks for a narrower readout.
|
|
120
|
-
- Put actuals next to the target, plan, benchmark, or baseline when available so the reader can judge performance immediately.
|
|
121
|
-
- If a target is time-bound, show whether current performance is on pace using the provided pacing definition or a clearly stated calculated fallback.
|
|
122
|
-
- Keep recurring metric sections consistent across runs. If a requested section is missing because data, definitions, or validation are unavailable, explain the omission briefly.
|
|
123
|
-
- Use traffic-signal status only when it helps prioritize action. Pair color with text and state the basis for the status.
|
|
124
|
-
- Round numbers consistently, label units, and surface caveats when they change interpretation.
|
|
125
|
-
|
|
126
|
-
### Driver Standards
|
|
127
|
-
|
|
128
|
-
- Quantify drivers whenever the evidence supports it; do not use descriptive prose as a substitute for sizing the effect.
|
|
129
|
-
- Report the few drivers, contributors, or known non-drivers that matter for interpreting the KPI movement.
|
|
130
|
-
- Separate validated drivers from business context or hypotheses.
|
|
131
|
-
- Do not elevate business events into causes unless the timing, affected population, and measured change support the link.
|
|
132
|
-
- State whether the movement is broad-based or concentrated when that changes the operating implication.
|
|
133
|
-
- If driver evidence remains unresolved, name the uncertainty or diagnostic follow-up instead of inventing an explanation.
|
|
134
|
-
|
|
135
|
-
### Presentation Standards
|
|
136
|
-
|
|
137
|
-
- Write for executives and operators who skim: lead with the answer, then the evidence.
|
|
138
|
-
- Use business-readable numbers and compact formats such as `123k (+8% w/w, +19% m/m)`.
|
|
139
|
-
- Replace generic adjectives like `strong`, `healthy`, or `soft` with the metric evidence that justifies them.
|
|
140
|
-
- Keep caveats close to the claim they affect, and omit caveats that do not change interpretation.
|
|
141
|
-
- Use charts, tables, scorecards, or KPI cards only when they make the takeaway easier to understand and remain readable in the final delivery context.
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "KPI Reporting"
|
|
3
|
-
short_description: "Produce leadership-ready KPI updates and scorecards"
|
|
4
|
-
default_prompt: "Produce a leadership-ready KPI update with current status, comparison, drivers, and implications."
|
|
5
|
-
policy:
|
|
6
|
-
allow_implicit_invocation: true
|
package/template/.codex/skills/data-analytics/skills/kpi-reporting/references/report-templates.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Report Templates
|
|
2
|
-
|
|
3
|
-
Use this reference after the output format is selected. These are starting patterns, not mandatory layouts.
|
|
4
|
-
|
|
5
|
-
These templates shape the final artifact only. Complete the KPI Reporting workflow first; analysis, validation, and operating implications come from that workflow.
|
|
6
|
-
|
|
7
|
-
## Inline Written Update
|
|
8
|
-
|
|
9
|
-
Use for a short chat, email, or memo-style update. Lead with the answer, then include the headline actuals, comparison or pacing context, main drivers, and the operating implication or next step.
|
|
10
|
-
|
|
11
|
-
## Document Or Report
|
|
12
|
-
|
|
13
|
-
Route document and report outputs through $build-report. Use this reference to shape the KPI content passed into that workflow: summary, KPI snapshot, driver analysis, business context, implications, caveats, and reader-relevant source or calculation notes.
|
|
14
|
-
|
|
15
|
-
## Single Slide
|
|
16
|
-
|
|
17
|
-
Use for one concise readout. Follow the user's requested surface: $build-report for a report artifact or HTML, or the native presentation surface when the user needs a slide file. Ask which path they want when unclear. A single-slide story should have one main message, a compact view of the headline metrics, and only the driver, risk, or action detail needed to support that message.
|
|
18
|
-
|
|
19
|
-
## Executive Business Review Deck
|
|
20
|
-
|
|
21
|
-
Use for larger executive readouts, such as weekly, monthly, or quarterly business reviews. Follow the user's requested surface: $build-report for a report artifact or HTML, or the native presentation surface when the user needs a deck file. Ask which path they want when unclear.
|
|
22
|
-
|
|
23
|
-
- Give a concise executive summary of overall status, what changed, and what needs attention.
|
|
24
|
-
- Use KPI cards, a scorecard, or another compact summary format that makes headline performance easy to scan; move dense detail into supporting sections.
|
|
25
|
-
- Organize the body around the main drivers of performance. Each section should connect the driver evidence to the operating takeaway, with action, risk, or follow-up when one is warranted.
|
|
26
|
-
- Keep detailed evidence, large tables, and deeper cuts in supporting sections or an appendix.
|
|
27
|
-
- Include prior follow-ups when they are useful for a recurring readout, with ownership and current status.
|
|
28
|
-
- End with the prioritized actions or open questions leaders need to resolve.
|
|
29
|
-
|
|
30
|
-
## Scorecard Or KPI Card Component
|
|
31
|
-
|
|
32
|
-
Use a compact scorecard when the reader needs to compare multiple KPIs at once. Include the actual, relevant comparison, target or pacing context when available, status, and a short driver or interpretation. Expand the explanation below the table when the driver story needs more room.
|