skilldrop-cli 0.16.3__py3-none-any.whl
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.
- skilldrop_cli/__init__.py +16 -0
- skilldrop_cli/__main__.py +3 -0
- skilldrop_cli/data/LICENSE +9 -0
- skilldrop_cli/data/LICENSE-APACHE +202 -0
- skilldrop_cli/data/LICENSE-MIT +21 -0
- skilldrop_cli/data/agents/README.md +127 -0
- skilldrop_cli/data/agents/code-quality.md +40 -0
- skilldrop_cli/data/agents/devils-advocate.md +40 -0
- skilldrop_cli/data/agents/security-reviewer.md +44 -0
- skilldrop_cli/data/bin/skilldrop.js +2110 -0
- skilldrop_cli/data/catalogue.json +187 -0
- skilldrop_cli/data/contracts/agent.schema.json +28 -0
- skilldrop_cli/data/contracts/catalogue.schema.json +33 -0
- skilldrop_cli/data/contracts/guide.schema.json +18 -0
- skilldrop_cli/data/contracts/loop.schema.json +87 -0
- skilldrop_cli/data/contracts/pack.schema.json +75 -0
- skilldrop_cli/data/contracts/skill.schema.json +110 -0
- skilldrop_cli/data/contracts/terminals.json +33 -0
- skilldrop_cli/data/model-routing.json +474 -0
- skilldrop_cli/data/package.json +46 -0
- skilldrop_cli/data/packs/ai-engineering/pack.json +57 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-adoption-stage/SKILL.md +90 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-adoption-stage/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-adoption-stage/evals/evals.json +19 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-adoption-stage/manifest.json +39 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-budget/SKILL.md +63 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-budget/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-budget/evals/evals.json +28 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-budget/manifest.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-budget/templates/budget-spec.md +30 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-loop-design/SKILL.md +70 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-loop-design/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-loop-design/evals/evals.json +28 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-loop-design/manifest.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-loop-design/templates/loop-spec.md +46 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/SKILL.md +89 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/evals/eval_queries.json +15 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/evals/evals.json +41 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/examples/support-triage-agent.md +117 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/manifest.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/reference.md +101 -0
- skilldrop_cli/data/packs/ai-engineering/skills/agent-threat-model/templates/agent-threat-model.md +71 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-adoption-rollout/SKILL.md +61 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-adoption-rollout/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-adoption-rollout/evals/evals.json +19 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-adoption-rollout/manifest.json +33 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-readiness-assessment/SKILL.md +68 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-readiness-assessment/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-readiness-assessment/evals/evals.json +17 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-readiness-assessment/manifest.json +35 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-policy/SKILL.md +67 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-policy/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-policy/evals/evals.json +19 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-policy/manifest.json +33 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/SKILL.md +111 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/evals/evals.json +19 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/evals/files/1/northwind-ai-events.csv +4213 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/examples/weekly-engineering-team.md +133 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/manifest.json +12 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/scripts/build_report.py +436 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/templates/report-per-user.md +42 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/templates/report-team-rollup.md +49 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-usage-report/templates/usage-event-schema.md +76 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-use-case-triage/SKILL.md +59 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-use-case-triage/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-use-case-triage/evals/evals.json +18 -0
- skilldrop_cli/data/packs/ai-engineering/skills/ai-use-case-triage/manifest.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/SKILL.md +73 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/evals/evals.json +19 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/manifest.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/reference.md +58 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/templates/eval-plan.md +63 -0
- skilldrop_cli/data/packs/ai-engineering/skills/llm-eval-harness/templates/golden-case.jsonl +5 -0
- skilldrop_cli/data/packs/ai-engineering/skills/subagent-design/SKILL.md +69 -0
- skilldrop_cli/data/packs/ai-engineering/skills/subagent-design/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/subagent-design/evals/evals.json +29 -0
- skilldrop_cli/data/packs/ai-engineering/skills/subagent-design/manifest.json +11 -0
- skilldrop_cli/data/packs/ai-engineering/skills/subagent-design/templates/orchestration-plan.md +47 -0
- skilldrop_cli/data/packs/api-builder/pack.json +48 -0
- skilldrop_cli/data/packs/api-builder/skills/eval-harness-generator/SKILL.md +84 -0
- skilldrop_cli/data/packs/api-builder/skills/eval-harness-generator/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/api-builder/skills/eval-harness-generator/evals/evals.json +19 -0
- skilldrop_cli/data/packs/api-builder/skills/eval-harness-generator/evals/files/1/SKILL.md +31 -0
- skilldrop_cli/data/packs/api-builder/skills/eval-harness-generator/manifest.json +11 -0
- skilldrop_cli/data/packs/api-builder/skills/prompt-caching-advisor/SKILL.md +90 -0
- skilldrop_cli/data/packs/api-builder/skills/prompt-caching-advisor/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/api-builder/skills/prompt-caching-advisor/evals/evals.json +19 -0
- skilldrop_cli/data/packs/api-builder/skills/prompt-caching-advisor/manifest.json +11 -0
- skilldrop_cli/data/packs/api-builder/skills/token-budget-estimator/SKILL.md +75 -0
- skilldrop_cli/data/packs/api-builder/skills/token-budget-estimator/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/api-builder/skills/token-budget-estimator/evals/evals.json +18 -0
- skilldrop_cli/data/packs/api-builder/skills/token-budget-estimator/manifest.json +11 -0
- skilldrop_cli/data/packs/api-builder/skills/tool-use-schema-writer/SKILL.md +111 -0
- skilldrop_cli/data/packs/api-builder/skills/tool-use-schema-writer/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/api-builder/skills/tool-use-schema-writer/evals/evals.json +18 -0
- skilldrop_cli/data/packs/api-builder/skills/tool-use-schema-writer/manifest.json +11 -0
- skilldrop_cli/data/packs/converters/pack.json +66 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/SKILL.md +103 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/evals/evals.json +27 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/evals/files/1/northwind-q3.pptx +0 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/evals/files/2/acme-contract-summary.pdf +93 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/examples/inputs/accounts.json +1 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/examples/inputs/fabrikam-status.html +14 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/examples/mixed-inputs.md +306 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/manifest.json +49 -0
- skilldrop_cli/data/packs/converters/skills/file-to-markdown/scripts/to_markdown.py +1299 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/SKILL.md +124 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/eval_queries.json +10 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/evals.json +29 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/files/1/brand/brand.json +80 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/files/1/brand/logo-white.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/files/1/brand/logo.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/files/1/brand/mark.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/evals/files/1/docs/vendor-onboarding.md +42 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/examples/q3-support-review-input.md +54 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/examples/q3-support-review.md +80 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/examples/tickets-by-region.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/manifest.json +52 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/reference.md +89 -0
- skilldrop_cli/data/packs/converters/skills/md-to-docx/scripts/md_to_docx.py +1114 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/SKILL.md +100 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/evals.json +18 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/files/1/brand/brand.json +80 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/files/1/brand/logo-white.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/files/1/brand/logo.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/files/1/brand/mark.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/files/1/docs/q3-review.md +35 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/evals/files/1/img/dashboard.png +0 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/examples/inputs/chart.svg +8 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/examples/inputs/ops-review.md +48 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/examples/ops-review.md +83 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/manifest.json +43 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/reference.md +70 -0
- skilldrop_cli/data/packs/converters/skills/md-to-html/scripts/md_to_html.py +652 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/SKILL.md +120 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/evals/eval_queries.json +9 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/evals/evals.json +28 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/evals/files/1/exports/northwind-invoices.csv +25 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/evals/files/2/reports/q3-ops-review.md +32 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/examples/vendor-review-input.md +28 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/examples/vendor-review.md +94 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/manifest.json +33 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/reference.md +94 -0
- skilldrop_cli/data/packs/converters/skills/md-to-xlsx/scripts/md_to_xlsx.py +667 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/SKILL.md +109 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/evals/evals.json +17 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/evals/files/1/docs/contoso-orders.md +23 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/broken-diagrams.md +147 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/inputs/broken-flowchart.mmd +8 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/inputs/broken-sequence.mmd +11 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/inputs/checkout-flow.mmd +9 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/inputs/design-notes.md +35 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/inputs/fixed-flowchart.mmd +9 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/examples/inputs/typo.mmd +2 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/manifest.json +40 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/reference.md +70 -0
- skilldrop_cli/data/packs/converters/skills/mermaid-render/scripts/render_mermaid.py +486 -0
- skilldrop_cli/data/packs/core/loops/ship-a-draft/LOOP.md +77 -0
- skilldrop_cli/data/packs/core/loops/ship-a-draft/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/core/loops/ship-a-draft/evals/evals.json +25 -0
- skilldrop_cli/data/packs/core/loops/ship-a-draft/loop.json +41 -0
- skilldrop_cli/data/packs/core/pack.json +50 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/SKILL.md +79 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/evals/evals.json +16 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/manifest.json +11 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-adr.md +41 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-decision-log.md +35 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-deck.md +43 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-design-doc.md +48 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-exec-summary.md +47 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-generic.md +45 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-runbook.md +44 -0
- skilldrop_cli/data/packs/core/skills/brief-intake/templates/brief-tech-comparison.md +38 -0
- skilldrop_cli/data/packs/core/skills/council-review/SKILL.md +106 -0
- skilldrop_cli/data/packs/core/skills/council-review/evals/eval_queries.json +38 -0
- skilldrop_cli/data/packs/core/skills/council-review/evals/evals.json +18 -0
- skilldrop_cli/data/packs/core/skills/council-review/examples/redis-cache-decision.md +75 -0
- skilldrop_cli/data/packs/core/skills/council-review/manifest.json +11 -0
- skilldrop_cli/data/packs/core/skills/council-review/reference.md +76 -0
- skilldrop_cli/data/packs/core/skills/council-review/seats/architect.md +29 -0
- skilldrop_cli/data/packs/core/skills/council-review/seats/bench.md +39 -0
- skilldrop_cli/data/packs/core/skills/council-review/seats/operator.md +27 -0
- skilldrop_cli/data/packs/core/skills/council-review/seats/pragmatist.md +29 -0
- skilldrop_cli/data/packs/core/skills/council-review/seats/security-engineer.md +29 -0
- skilldrop_cli/data/packs/core/skills/council-review/seats/user-advocate.md +27 -0
- skilldrop_cli/data/packs/core/skills/council-review/templates/council-review.md +59 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/SKILL.md +119 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/evals/eval_queries.json +38 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/evals/evals.json +17 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/examples/design-doc-critique.md +34 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/manifest.json +11 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/adr.md +36 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/decision-log.md +39 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/deck.md +45 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/design-doc.md +42 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/exec-summary.md +41 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/generic.md +40 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/runbook.md +42 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/rubrics/tech-comparison.md +40 -0
- skilldrop_cli/data/packs/core/skills/doc-critique/templates/critique.md +49 -0
- skilldrop_cli/data/packs/core/skills/output-hygiene/SKILL.md +97 -0
- skilldrop_cli/data/packs/core/skills/output-hygiene/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/core/skills/output-hygiene/evals/evals.json +30 -0
- skilldrop_cli/data/packs/core/skills/output-hygiene/manifest.json +34 -0
- skilldrop_cli/data/packs/core/skills/output-hygiene/reference.md +106 -0
- skilldrop_cli/data/packs/core/skills/output-hygiene/scripts/scrub.py +315 -0
- skilldrop_cli/data/packs/data-analytics/pack.json +57 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/SKILL.md +83 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/evals/evals.json +19 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/examples/support-staffing.md +84 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/manifest.json +40 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/reference.md +45 -0
- skilldrop_cli/data/packs/data-analytics/skills/dashboard-spec/templates/dashboard-spec.md +55 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/SKILL.md +84 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/evals/evals.json +19 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/examples/refund-rate.md +104 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/manifest.json +41 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/reference.md +67 -0
- skilldrop_cli/data/packs/data-analytics/skills/metric-definition/templates/metric-spec.md +70 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/SKILL.md +83 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/evals/evals.json +19 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/examples/revenue-by-region.md +174 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/manifest.json +42 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/reference.md +84 -0
- skilldrop_cli/data/packs/data-analytics/skills/sql-review/scripts/sql_lint.py +461 -0
- skilldrop_cli/data/packs/design/pack.json +60 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/SKILL.md +105 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/evals/evals.json +18 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/evals/files/1/brand/northwind-logo-white.png +0 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/evals/files/1/brand/northwind-logo.png +0 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/examples/northwind-brand.md +48 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/manifest.json +45 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/scripts/check_brand.py +114 -0
- skilldrop_cli/data/packs/design/skills/brand-kit/templates/brand.json +54 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/SKILL.md +201 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/evals/eval_queries.json +14 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/evals/evals.json +40 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/examples/exec-board-update.md +108 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/examples/templated-brand-deck.md +148 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/manifest.json +18 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/reference.md +180 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/requirements.txt +3 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/scripts/build_deck.py +1134 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/templates/deck-spec.json +168 -0
- skilldrop_cli/data/packs/design/skills/deck-builder/templates/palettes.json +59 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/SKILL.md +113 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/evals/evals.json +18 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/evals/files/1/brand/brand.json +80 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/evals/files/1/brand/logo-white.png +0 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/evals/files/1/brand/logo.png +0 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/evals/files/1/brand/mark.png +0 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/examples/community-health-fair.md +68 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/manifest.json +40 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/reference.md +54 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/scripts/build_flyer.py +323 -0
- skilldrop_cli/data/packs/design/skills/marketing-flyer/templates/flyer-spec.json +26 -0
- skilldrop_cli/data/packs/design/skills/slide-outliner/SKILL.md +58 -0
- skilldrop_cli/data/packs/design/skills/slide-outliner/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/design/skills/slide-outliner/evals/evals.json +16 -0
- skilldrop_cli/data/packs/design/skills/slide-outliner/manifest.json +11 -0
- skilldrop_cli/data/packs/design/skills/slide-outliner/templates/deck-outline.md +131 -0
- skilldrop_cli/data/packs/dev-team/loops/build/LOOP.md +80 -0
- skilldrop_cli/data/packs/dev-team/loops/build/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/dev-team/loops/build/evals/evals.json +27 -0
- skilldrop_cli/data/packs/dev-team/loops/build/loop.json +48 -0
- skilldrop_cli/data/packs/dev-team/loops/release/LOOP.md +91 -0
- skilldrop_cli/data/packs/dev-team/loops/release/loop.json +47 -0
- skilldrop_cli/data/packs/dev-team/pack.json +56 -0
- skilldrop_cli/data/packs/dev-team/skills/accessibility-audit/SKILL.md +74 -0
- skilldrop_cli/data/packs/dev-team/skills/accessibility-audit/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/dev-team/skills/accessibility-audit/evals/evals.json +19 -0
- skilldrop_cli/data/packs/dev-team/skills/accessibility-audit/examples/login-form.md +76 -0
- skilldrop_cli/data/packs/dev-team/skills/accessibility-audit/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/accessibility-audit/reference.md +69 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/SKILL.md +82 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/eval_queries.json +15 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/evals.json +50 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/1/Makefile +5 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/1/alembic/versions/0001_create_bookings.py +10 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/1/booking/__init__.py +0 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/1/booking/app.py +8 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/1/pyproject.toml +11 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/1/tests/test_health.py +5 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/2/AGENTS.md +3 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/2/package.json +12 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/evals/files/2/src/index.ts +1 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/reference.md +89 -0
- skilldrop_cli/data/packs/dev-team/skills/agents-md-generator/templates/agents-md.md +48 -0
- skilldrop_cli/data/packs/dev-team/skills/bug-triage/SKILL.md +67 -0
- skilldrop_cli/data/packs/dev-team/skills/bug-triage/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/dev-team/skills/bug-triage/evals/evals.json +17 -0
- skilldrop_cli/data/packs/dev-team/skills/bug-triage/manifest.json +14 -0
- skilldrop_cli/data/packs/dev-team/skills/bug-triage/templates/bug-ticket.md +86 -0
- skilldrop_cli/data/packs/dev-team/skills/contribution-wizard/SKILL.md +134 -0
- skilldrop_cli/data/packs/dev-team/skills/contribution-wizard/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/dev-team/skills/contribution-wizard/evals/evals.json +19 -0
- skilldrop_cli/data/packs/dev-team/skills/contribution-wizard/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/SKILL.md +143 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/evals/eval_queries.json +38 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/evals/evals.json +19 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/examples/rate-limiter-review.md +46 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/lenses/adversarial-review.md +88 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/lenses/edge-cases.md +95 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/lenses/future-proofing.md +75 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/lenses/test-coverage.md +90 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/manifest.json +14 -0
- skilldrop_cli/data/packs/dev-team/skills/devils-advocate/templates/challenge.md +118 -0
- skilldrop_cli/data/packs/dev-team/skills/feature-implement-loop/SKILL.md +88 -0
- skilldrop_cli/data/packs/dev-team/skills/feature-implement-loop/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/dev-team/skills/feature-implement-loop/evals/evals.json +19 -0
- skilldrop_cli/data/packs/dev-team/skills/feature-implement-loop/manifest.json +14 -0
- skilldrop_cli/data/packs/dev-team/skills/launch-readiness/SKILL.md +95 -0
- skilldrop_cli/data/packs/dev-team/skills/launch-readiness/evals/eval_queries.json +10 -0
- skilldrop_cli/data/packs/dev-team/skills/launch-readiness/evals/evals.json +19 -0
- skilldrop_cli/data/packs/dev-team/skills/launch-readiness/examples/schema-change-revise.md +54 -0
- skilldrop_cli/data/packs/dev-team/skills/launch-readiness/manifest.json +24 -0
- skilldrop_cli/data/packs/dev-team/skills/launch-readiness/templates/readiness-report.md +41 -0
- skilldrop_cli/data/packs/dev-team/skills/migration-plan/SKILL.md +68 -0
- skilldrop_cli/data/packs/dev-team/skills/migration-plan/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/dev-team/skills/migration-plan/evals/evals.json +16 -0
- skilldrop_cli/data/packs/dev-team/skills/migration-plan/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/migration-plan/templates/migration-plan.md +68 -0
- skilldrop_cli/data/packs/dev-team/skills/pre-merge-review/SKILL.md +85 -0
- skilldrop_cli/data/packs/dev-team/skills/pre-merge-review/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/pre-merge-review/evals/evals.json +26 -0
- skilldrop_cli/data/packs/dev-team/skills/pre-merge-review/examples/pre-merge-verdict.md +43 -0
- skilldrop_cli/data/packs/dev-team/skills/pre-merge-review/manifest.json +15 -0
- skilldrop_cli/data/packs/dev-team/skills/pre-merge-review/scripts/gate.py +189 -0
- skilldrop_cli/data/packs/dev-team/skills/release-notes/SKILL.md +61 -0
- skilldrop_cli/data/packs/dev-team/skills/release-notes/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/dev-team/skills/release-notes/evals/evals.json +19 -0
- skilldrop_cli/data/packs/dev-team/skills/release-notes/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/release-notes/templates/release-notes.md +83 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/SKILL.md +170 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/evals/evals.json +16 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/reference.md +151 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/templates/github-actions-sonar-server.yml.tmpl +50 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/templates/github-actions-sonarcloud.yml.tmpl +53 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/templates/readme-snippet.md +38 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-onboard/templates/sonar-project.properties.tmpl +31 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/SKILL.md +220 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/evals/evals.json +16 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/lenses/bugs.md +48 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/lenses/code-smells.md +64 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/lenses/coverage-and-duplication.md +74 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/lenses/security-hotspots.md +56 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/lenses/vulnerabilities.md +52 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/manifest.json +37 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/reference.md +167 -0
- skilldrop_cli/data/packs/dev-team/skills/sonar-review/templates/report.md +84 -0
- skilldrop_cli/data/packs/dev-team/skills/test-plan-generator/SKILL.md +59 -0
- skilldrop_cli/data/packs/dev-team/skills/test-plan-generator/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/dev-team/skills/test-plan-generator/evals/evals.json +16 -0
- skilldrop_cli/data/packs/dev-team/skills/test-plan-generator/manifest.json +11 -0
- skilldrop_cli/data/packs/dev-team/skills/test-plan-generator/templates/test-plan.md +83 -0
- skilldrop_cli/data/packs/dev-team/skills/user-story-splitter/SKILL.md +88 -0
- skilldrop_cli/data/packs/dev-team/skills/user-story-splitter/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/dev-team/skills/user-story-splitter/evals/evals.json +16 -0
- skilldrop_cli/data/packs/dev-team/skills/user-story-splitter/examples/notifications-epic.md +123 -0
- skilldrop_cli/data/packs/dev-team/skills/user-story-splitter/manifest.json +14 -0
- skilldrop_cli/data/packs/dev-team/skills/user-story-splitter/templates/story.md +40 -0
- skilldrop_cli/data/packs/experience-design/pack.json +68 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/SKILL.md +77 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/evals/evals.json +18 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/examples/parking-permit-page.md +102 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/manifest.json +41 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/scripts/readability.py +115 -0
- skilldrop_cli/data/packs/experience-design/skills/content-design/templates/content-spec.md +45 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/SKILL.md +79 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/evals/evals.json +19 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/examples/text-field-spec.md +121 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/manifest.json +46 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/reference.md +66 -0
- skilldrop_cli/data/packs/experience-design/skills/design-system-spec/templates/component-spec.md +74 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/SKILL.md +76 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/evals/evals.json +19 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/examples/payroll-app-nav.md +127 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/manifest.json +46 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/reference.md +54 -0
- skilldrop_cli/data/packs/experience-design/skills/information-architecture/templates/ia-spec.md +77 -0
- skilldrop_cli/data/packs/experience-design/skills/service-blueprint/SKILL.md +76 -0
- skilldrop_cli/data/packs/experience-design/skills/service-blueprint/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/experience-design/skills/service-blueprint/evals/evals.json +19 -0
- skilldrop_cli/data/packs/experience-design/skills/service-blueprint/examples/insurance-claim-blueprint.md +107 -0
- skilldrop_cli/data/packs/experience-design/skills/service-blueprint/manifest.json +45 -0
- skilldrop_cli/data/packs/experience-design/skills/service-blueprint/templates/blueprint.md +72 -0
- skilldrop_cli/data/packs/experience-design/skills/ux-writing/SKILL.md +77 -0
- skilldrop_cli/data/packs/experience-design/skills/ux-writing/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/experience-design/skills/ux-writing/evals/evals.json +19 -0
- skilldrop_cli/data/packs/experience-design/skills/ux-writing/examples/team-invite-flow.md +66 -0
- skilldrop_cli/data/packs/experience-design/skills/ux-writing/manifest.json +41 -0
- skilldrop_cli/data/packs/experience-design/skills/ux-writing/templates/string-table.md +22 -0
- skilldrop_cli/data/packs/grc/pack.json +57 -0
- skilldrop_cli/data/packs/grc/skills/dpia/SKILL.md +123 -0
- skilldrop_cli/data/packs/grc/skills/dpia/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/grc/skills/dpia/evals/evals.json +19 -0
- skilldrop_cli/data/packs/grc/skills/dpia/examples/acme-warehouse-performance.md +159 -0
- skilldrop_cli/data/packs/grc/skills/dpia/manifest.json +47 -0
- skilldrop_cli/data/packs/grc/skills/dpia/reference.md +118 -0
- skilldrop_cli/data/packs/grc/skills/dpia/templates/dpia.md +103 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/SKILL.md +139 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/evals/evals.json +19 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/examples/northwind-register.csv +9 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/examples/northwind-register.md +127 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/manifest.json +43 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/reference.md +99 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/scripts/check_register.py +338 -0
- skilldrop_cli/data/packs/grc/skills/risk-register/templates/risk-register.csv +2 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/SKILL.md +117 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/evals/evals.json +19 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/examples/northwind-evidence-map.csv +17 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/examples/northwind-type2-security.md +127 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/manifest.json +41 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/reference.md +156 -0
- skilldrop_cli/data/packs/grc/skills/soc2-evidence-map/templates/evidence-map.csv +2 -0
- skilldrop_cli/data/packs/infra-as-code/pack.json +51 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/SKILL.md +85 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/evals/evals.json +31 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket/README.md +71 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket/examples/basic/main.tf +30 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket/main.tf +153 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket/outputs.tf +14 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket/variables.tf +71 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket/versions.tf +10 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/examples/s3-log-bucket.md +50 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/manifest.json +41 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/reference.md +105 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-module/templates/module-readme.md +55 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/SKILL.md +87 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/evals/evals.json +30 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/evals/files/2/plan.json +133 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/examples/northwind-orders-plan.json +174 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/examples/northwind-orders.md +87 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/manifest.json +48 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/reference.md +77 -0
- skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/scripts/plan_summary.py +361 -0
- skilldrop_cli/data/packs/product-manager/loops/discover/LOOP.md +81 -0
- skilldrop_cli/data/packs/product-manager/loops/discover/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/product-manager/loops/discover/evals/evals.json +26 -0
- skilldrop_cli/data/packs/product-manager/loops/discover/loop.json +41 -0
- skilldrop_cli/data/packs/product-manager/pack.json +61 -0
- skilldrop_cli/data/packs/product-manager/skills/business-case/SKILL.md +64 -0
- skilldrop_cli/data/packs/product-manager/skills/business-case/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/product-manager/skills/business-case/evals/evals.json +19 -0
- skilldrop_cli/data/packs/product-manager/skills/business-case/examples/build-vs-buy-flags.md +42 -0
- skilldrop_cli/data/packs/product-manager/skills/business-case/manifest.json +11 -0
- skilldrop_cli/data/packs/product-manager/skills/business-case/templates/business-case.md +60 -0
- skilldrop_cli/data/packs/product-manager/skills/okr-cascade/SKILL.md +59 -0
- skilldrop_cli/data/packs/product-manager/skills/okr-cascade/evals/eval_queries.json +12 -0
- skilldrop_cli/data/packs/product-manager/skills/okr-cascade/evals/evals.json +28 -0
- skilldrop_cli/data/packs/product-manager/skills/okr-cascade/manifest.json +11 -0
- skilldrop_cli/data/packs/product-manager/skills/okr-cascade/templates/okr-cascade.md +46 -0
- skilldrop_cli/data/packs/product-manager/skills/prd-draft/SKILL.md +62 -0
- skilldrop_cli/data/packs/product-manager/skills/prd-draft/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/product-manager/skills/prd-draft/evals/evals.json +17 -0
- skilldrop_cli/data/packs/product-manager/skills/prd-draft/manifest.json +16 -0
- skilldrop_cli/data/packs/product-manager/skills/prd-draft/templates/prd.md +66 -0
- skilldrop_cli/data/packs/product-manager/skills/prfaq/SKILL.md +76 -0
- skilldrop_cli/data/packs/product-manager/skills/prfaq/evals/eval_queries.json +13 -0
- skilldrop_cli/data/packs/product-manager/skills/prfaq/evals/evals.json +32 -0
- skilldrop_cli/data/packs/product-manager/skills/prfaq/manifest.json +11 -0
- skilldrop_cli/data/packs/product-manager/skills/prfaq/templates/prfaq.md +60 -0
- skilldrop_cli/data/packs/product-manager/skills/requirements-interview/SKILL.md +61 -0
- skilldrop_cli/data/packs/product-manager/skills/requirements-interview/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/product-manager/skills/requirements-interview/evals/evals.json +16 -0
- skilldrop_cli/data/packs/product-manager/skills/requirements-interview/manifest.json +14 -0
- skilldrop_cli/data/packs/product-manager/skills/requirements-interview/templates/interview-kit.md +63 -0
- skilldrop_cli/data/packs/product-manager/skills/strategy-analysis/SKILL.md +63 -0
- skilldrop_cli/data/packs/product-manager/skills/strategy-analysis/evals/eval_queries.json +13 -0
- skilldrop_cli/data/packs/product-manager/skills/strategy-analysis/evals/evals.json +36 -0
- skilldrop_cli/data/packs/product-manager/skills/strategy-analysis/examples/market-entry-tows.md +42 -0
- skilldrop_cli/data/packs/product-manager/skills/strategy-analysis/manifest.json +15 -0
- skilldrop_cli/data/packs/product-manager/skills/success-metrics/SKILL.md +65 -0
- skilldrop_cli/data/packs/product-manager/skills/success-metrics/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/product-manager/skills/success-metrics/evals/evals.json +27 -0
- skilldrop_cli/data/packs/product-manager/skills/success-metrics/manifest.json +11 -0
- skilldrop_cli/data/packs/product-manager/skills/success-metrics/templates/metrics-plan.md +55 -0
- skilldrop_cli/data/packs/product-manager/skills/user-journey-map/SKILL.md +65 -0
- skilldrop_cli/data/packs/product-manager/skills/user-journey-map/evals/eval_queries.json +12 -0
- skilldrop_cli/data/packs/product-manager/skills/user-journey-map/evals/evals.json +30 -0
- skilldrop_cli/data/packs/product-manager/skills/user-journey-map/examples/b2b-saas-onboarding.md +69 -0
- skilldrop_cli/data/packs/product-manager/skills/user-journey-map/manifest.json +15 -0
- skilldrop_cli/data/packs/product-manager/skills/user-journey-map/templates/journey-map.md +47 -0
- skilldrop_cli/data/packs/research/pack.json +52 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/SKILL.md +131 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/evals/evals.json +19 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/examples/conversion-drop.md +132 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/manifest.json +43 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/reference.md +107 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/scripts/ach_matrix.py +204 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/templates/hypothesis-comparison.md +61 -0
- skilldrop_cli/data/packs/research/skills/hypothesis-comparison/templates/matrix.csv +4 -0
- skilldrop_cli/data/packs/research/skills/research-plan/SKILL.md +122 -0
- skilldrop_cli/data/packs/research/skills/research-plan/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/research/skills/research-plan/evals/evals.json +28 -0
- skilldrop_cli/data/packs/research/skills/research-plan/examples/four-day-week-plan.md +97 -0
- skilldrop_cli/data/packs/research/skills/research-plan/manifest.json +47 -0
- skilldrop_cli/data/packs/research/skills/research-plan/reference.md +88 -0
- skilldrop_cli/data/packs/research/skills/research-plan/templates/research-plan.md +54 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/SKILL.md +123 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/evals/evals.json +19 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/examples/four-day-week.md +146 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/manifest.json +42 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/reference.md +92 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/scripts/citations.py +314 -0
- skilldrop_cli/data/packs/research/skills/source-synthesis/templates/synthesis.md +46 -0
- skilldrop_cli/data/packs/skill-engineering/pack.json +46 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/SKILL.md +139 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/evals/eval_queries.json +10 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/evals/evals.json +19 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/examples/release-notes-skill.md +185 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/manifest.json +42 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/reference.md +144 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/templates/eval_queries.json +9 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/templates/evals.json +16 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-author/templates/skill-template.md +52 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/SKILL.md +131 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/evals/eval_queries.json +11 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/evals/evals.json +19 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/evals/files/1/skills/changelog-writer/SKILL.md +10 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/evals/files/1/skills/pr-summary/SKILL.md +12 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/evals/files/1/skills/pr-summary/references/tone.md +3 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/evals/files/1/skills/pr-summary/scripts/collect.py +6 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/examples/meeting-notes-review.md +147 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/manifest.json +50 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/reference.md +135 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/scripts/lint_skill.py +481 -0
- skilldrop_cli/data/packs/skill-engineering/skills/skill-review/templates/review.md +43 -0
- skilldrop_cli/data/packs/solution-architect/loops/design/LOOP.md +83 -0
- skilldrop_cli/data/packs/solution-architect/loops/design/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/solution-architect/loops/design/evals/evals.json +26 -0
- skilldrop_cli/data/packs/solution-architect/loops/design/loop.json +47 -0
- skilldrop_cli/data/packs/solution-architect/pack.json +65 -0
- skilldrop_cli/data/packs/solution-architect/skills/adr-generator/SKILL.md +50 -0
- skilldrop_cli/data/packs/solution-architect/skills/adr-generator/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/adr-generator/evals/evals.json +17 -0
- skilldrop_cli/data/packs/solution-architect/skills/adr-generator/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/adr-generator/templates/madr.md +56 -0
- skilldrop_cli/data/packs/solution-architect/skills/adr-generator/templates/nygard.md +19 -0
- skilldrop_cli/data/packs/solution-architect/skills/api-contract-draft/SKILL.md +69 -0
- skilldrop_cli/data/packs/solution-architect/skills/api-contract-draft/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/api-contract-draft/evals/evals.json +18 -0
- skilldrop_cli/data/packs/solution-architect/skills/api-contract-draft/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/api-contract-draft/reference.md +73 -0
- skilldrop_cli/data/packs/solution-architect/skills/api-contract-draft/templates/openapi-skeleton.yaml +148 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/SKILL.md +66 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/evals/evals.json +16 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/examples/aws-three-tier.md +44 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/examples/c4-container-saas.md +51 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/examples/microservices-sequence.md +49 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/manifest.json +31 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/templates/c4-container.puml +31 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/templates/mermaid-aws.md +52 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/templates/mermaid-flowchart.md +37 -0
- skilldrop_cli/data/packs/solution-architect/skills/architecture-diagrams/templates/mermaid-sequence.md +39 -0
- skilldrop_cli/data/packs/solution-architect/skills/data-contract/SKILL.md +67 -0
- skilldrop_cli/data/packs/solution-architect/skills/data-contract/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/data-contract/evals/evals.json +16 -0
- skilldrop_cli/data/packs/solution-architect/skills/data-contract/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/data-contract/reference.md +46 -0
- skilldrop_cli/data/packs/solution-architect/skills/data-contract/templates/data-contract.md +69 -0
- skilldrop_cli/data/packs/solution-architect/skills/db-schema-design/SKILL.md +68 -0
- skilldrop_cli/data/packs/solution-architect/skills/db-schema-design/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/db-schema-design/evals/evals.json +16 -0
- skilldrop_cli/data/packs/solution-architect/skills/db-schema-design/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/db-schema-design/reference.md +56 -0
- skilldrop_cli/data/packs/solution-architect/skills/db-schema-design/templates/schema-design.md +75 -0
- skilldrop_cli/data/packs/solution-architect/skills/design-doc/SKILL.md +49 -0
- skilldrop_cli/data/packs/solution-architect/skills/design-doc/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/design-doc/evals/evals.json +17 -0
- skilldrop_cli/data/packs/solution-architect/skills/design-doc/manifest.json +14 -0
- skilldrop_cli/data/packs/solution-architect/skills/design-doc/templates/design-doc.md +98 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/SKILL.md +87 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/evals/evals.json +15 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/manifest.json +36 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/reference.md +91 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/requirements.txt +3 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/scripts/_figma_client.py +71 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/scripts/frame_to_mermaid.py +102 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/scripts/inspect_file.py +46 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/scripts/list_comments.py +35 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/scripts/post_comment.py +52 -0
- skilldrop_cli/data/packs/solution-architect/skills/figma-diagrams/templates/figjam-import.json +20 -0
- skilldrop_cli/data/packs/solution-architect/skills/nfr-spec/SKILL.md +63 -0
- skilldrop_cli/data/packs/solution-architect/skills/nfr-spec/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/nfr-spec/evals/evals.json +16 -0
- skilldrop_cli/data/packs/solution-architect/skills/nfr-spec/manifest.json +16 -0
- skilldrop_cli/data/packs/solution-architect/skills/nfr-spec/reference.md +74 -0
- skilldrop_cli/data/packs/solution-architect/skills/nfr-spec/templates/nfr-spec.md +56 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/SKILL.md +103 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/evals/evals.json +16 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/reference.md +150 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/templates/description.md +52 -0
- skilldrop_cli/data/packs/solution-architect/skills/reverse-architecture/templates/extraction.md +55 -0
- skilldrop_cli/data/packs/solution-architect/skills/tech-comparison-matrix/SKILL.md +56 -0
- skilldrop_cli/data/packs/solution-architect/skills/tech-comparison-matrix/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/solution-architect/skills/tech-comparison-matrix/evals/evals.json +18 -0
- skilldrop_cli/data/packs/solution-architect/skills/tech-comparison-matrix/examples/queue-selection.md +41 -0
- skilldrop_cli/data/packs/solution-architect/skills/tech-comparison-matrix/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/tech-comparison-matrix/templates/matrix.md +45 -0
- skilldrop_cli/data/packs/solution-architect/skills/threat-model/SKILL.md +65 -0
- skilldrop_cli/data/packs/solution-architect/skills/threat-model/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/solution-architect/skills/threat-model/evals/evals.json +18 -0
- skilldrop_cli/data/packs/solution-architect/skills/threat-model/examples/document-upload.md +56 -0
- skilldrop_cli/data/packs/solution-architect/skills/threat-model/manifest.json +11 -0
- skilldrop_cli/data/packs/solution-architect/skills/threat-model/reference.md +69 -0
- skilldrop_cli/data/packs/sre-oncall/loops/operate/LOOP.md +84 -0
- skilldrop_cli/data/packs/sre-oncall/loops/operate/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/sre-oncall/loops/operate/evals/evals.json +25 -0
- skilldrop_cli/data/packs/sre-oncall/loops/operate/loop.json +41 -0
- skilldrop_cli/data/packs/sre-oncall/pack.json +59 -0
- skilldrop_cli/data/packs/sre-oncall/skills/capacity-cost-model/SKILL.md +65 -0
- skilldrop_cli/data/packs/sre-oncall/skills/capacity-cost-model/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/capacity-cost-model/evals/evals.json +19 -0
- skilldrop_cli/data/packs/sre-oncall/skills/capacity-cost-model/manifest.json +11 -0
- skilldrop_cli/data/packs/sre-oncall/skills/capacity-cost-model/reference.md +54 -0
- skilldrop_cli/data/packs/sre-oncall/skills/capacity-cost-model/templates/cost-model.md +68 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/SKILL.md +121 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/evals/evals.json +29 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/examples/acme-aws-september.md +247 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/examples/acme-cur-2026-08-09.csv +1085 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/manifest.json +49 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/reference.md +100 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/scripts/cost_summary.py +630 -0
- skilldrop_cli/data/packs/sre-oncall/skills/cloud-cost-review/templates/cost-review.md +36 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/SKILL.md +114 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/evals/evals.json +28 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/evals/files/1/deploys.csv +49 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/evals/files/1/incidents.csv +7 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/evals/files/1/prs.csv +84 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/examples/checkout-api-8-weeks.md +123 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/examples/deployments.csv +49 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/examples/incidents.csv +7 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/examples/prs.csv +84 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/manifest.json +48 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/reference.md +83 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/scripts/delivery_metrics.py +566 -0
- skilldrop_cli/data/packs/sre-oncall/skills/delivery-metrics-report/templates/delivery-report.md +31 -0
- skilldrop_cli/data/packs/sre-oncall/skills/incident-comms/SKILL.md +68 -0
- skilldrop_cli/data/packs/sre-oncall/skills/incident-comms/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/incident-comms/evals/evals.json +16 -0
- skilldrop_cli/data/packs/sre-oncall/skills/incident-comms/manifest.json +14 -0
- skilldrop_cli/data/packs/sre-oncall/skills/incident-comms/reference.md +43 -0
- skilldrop_cli/data/packs/sre-oncall/skills/incident-comms/templates/messages.md +82 -0
- skilldrop_cli/data/packs/sre-oncall/skills/observability-plan/SKILL.md +70 -0
- skilldrop_cli/data/packs/sre-oncall/skills/observability-plan/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/observability-plan/evals/evals.json +16 -0
- skilldrop_cli/data/packs/sre-oncall/skills/observability-plan/manifest.json +15 -0
- skilldrop_cli/data/packs/sre-oncall/skills/observability-plan/reference.md +67 -0
- skilldrop_cli/data/packs/sre-oncall/skills/observability-plan/templates/observability-plan.md +62 -0
- skilldrop_cli/data/packs/sre-oncall/skills/postmortem-generator/SKILL.md +66 -0
- skilldrop_cli/data/packs/sre-oncall/skills/postmortem-generator/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/postmortem-generator/evals/evals.json +17 -0
- skilldrop_cli/data/packs/sre-oncall/skills/postmortem-generator/manifest.json +14 -0
- skilldrop_cli/data/packs/sre-oncall/skills/postmortem-generator/templates/postmortem.md +67 -0
- skilldrop_cli/data/packs/sre-oncall/skills/runbook-generator/SKILL.md +42 -0
- skilldrop_cli/data/packs/sre-oncall/skills/runbook-generator/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/sre-oncall/skills/runbook-generator/evals/evals.json +17 -0
- skilldrop_cli/data/packs/sre-oncall/skills/runbook-generator/manifest.json +11 -0
- skilldrop_cli/data/packs/sre-oncall/skills/runbook-generator/templates/runbook.md +109 -0
- skilldrop_cli/data/packs/stakeholder-comms/pack.json +60 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/audience-profile/SKILL.md +74 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/audience-profile/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/audience-profile/evals/evals.json +15 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/audience-profile/manifest.json +11 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/audience-profile/reference.md +175 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/decision-log/SKILL.md +68 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/decision-log/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/decision-log/evals/evals.json +17 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/decision-log/manifest.json +11 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/exec-summary/SKILL.md +45 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/exec-summary/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/exec-summary/evals/evals.json +17 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/exec-summary/manifest.json +11 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/exec-summary/templates/exec-summary.md +48 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/SKILL.md +77 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/evals/evals.json +18 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/examples/local-setup-guide.md +127 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/manifest.json +11 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/templates/api-reference.md +120 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/templates/design-walkthrough.md +72 -0
- skilldrop_cli/data/packs/stakeholder-comms/skills/guide-builder/templates/setup-guide.md +109 -0
- skilldrop_cli/data/packs/trackers/pack.json +61 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/SKILL.md +116 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/evals/evals.json +30 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/evals/files/1/examples/northwind-backlog.csv +28 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/evals/files/2/issues.json +6052 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/examples/northwind-backlog.csv +28 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/examples/northwind-checkout-triage.md +202 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/manifest.json +42 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/reference.md +106 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/scripts/triage_backlog.py +461 -0
- skilldrop_cli/data/packs/trackers/skills/backlog-triage/templates/triage-report.md +42 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/SKILL.md +111 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/evals/eval_queries.json +30 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/evals/evals.json +30 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/evals/files/1/examples/northwind-week-40.csv +16 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/evals/files/2/issues.json +1212 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/examples/northwind-week-40.csv +16 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/examples/northwind-weekly-status.md +160 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/manifest.json +33 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/reference.md +92 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/scripts/status_counts.py +486 -0
- skilldrop_cli/data/packs/trackers/skills/team-status-report/templates/status-report.md +42 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/SKILL.md +116 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/evals/eval_queries.json +34 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/evals/evals.json +31 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/evals/files/1/examples/prd-guest-checkout.md +53 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/evals/files/2/examples/prd-guest-checkout.md +53 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/evals/files/2/examples/tracker-after-two-weeks.csv +30 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/examples/guest-checkout-spec.json +98 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/examples/guest-checkout-sync.md +151 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/examples/prd-guest-checkout.md +53 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/examples/tracker-after-two-weeks.csv +30 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/manifest.json +41 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/reference.md +101 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/scripts/brief_sync.py +501 -0
- skilldrop_cli/data/packs/trackers/skills/tracker-brief-sync/templates/issues-spec.json +26 -0
- skilldrop_cli/data/profiles.json +24 -0
- skilldrop_cli-0.16.3.dist-info/METADATA +91 -0
- skilldrop_cli-0.16.3.dist-info/RECORD +757 -0
- skilldrop_cli-0.16.3.dist-info/WHEEL +5 -0
- skilldrop_cli-0.16.3.dist-info/entry_points.txt +2 -0
- skilldrop_cli-0.16.3.dist-info/licenses/LICENSE +9 -0
- skilldrop_cli-0.16.3.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "terraform-plan-review",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Here's the plan for Acme's billing stack. The change is only supposed to add a tag to the API load balancer. Is it safe to apply?\n\nTerraform will perform the following actions:\n\n # aws_lb.api will be updated in-place\n ~ resource \"aws_lb\" \"api\" {\n id = \"arn:aws:elasticloadbalancing:eu-west-1:111111111111:loadbalancer/app/acme-billing-api/0123456789abcdef\"\n ~ tags = {\n + \"cost-centre\" = \"billing\"\n }\n }\n\n # aws_db_instance.billing must be replaced\n-/+ resource \"aws_db_instance\" \"billing\" {\n ~ id = \"db-EXAMPLE1234567890\" -> (known after apply)\n ~ identifier = \"acme-billing\" -> \"acme-billing-v2\" # forces replacement\n skip_final_snapshot = true\n deletion_protection = false\n }\n\n # aws_security_group_rule.api_https will be created\n + resource \"aws_security_group_rule\" \"api_https\" {\n + type = \"ingress\"\n + from_port = 443\n + to_port = 443\n + cidr_blocks = [\"0.0.0.0/0\"]\n }\n\nPlan: 2 to add, 1 to change, 1 to destroy.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Gives exactly one verdict, and it is DO NOT APPLY",
|
|
9
|
+
"Names aws_db_instance.billing as a replacement and identifies identifier as the attribute forcing replacement",
|
|
10
|
+
"States that skip_final_snapshot = true and deletion_protection = false mean the database data is lost on apply",
|
|
11
|
+
"Flags the new 0.0.0.0/0 ingress rule on 443 and asks whether the load balancer is meant to be public, rather than silently accepting or rejecting it",
|
|
12
|
+
"Lists the database replacement and the security group rule as outside the stated scope of adding a tag",
|
|
13
|
+
"Ends with a numbered list of concrete actions to take before applying",
|
|
14
|
+
"Does not invent resources, attributes or values that are not in the plan"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": 2,
|
|
19
|
+
"prompt": "CI gate for Northwind's network repo: review this terraform show -json output before apply. Intent: add one private subnet in module.vpc. File: plan.json (resource_changes includes module.vpc.aws_subnet.private[\"c\"] create, aws_iam_role_policy.ci update where the policy goes from ec2:Describe* on * to * on *, and resource_drift shows aws_route_table.private changed outside Terraform).",
|
|
20
|
+
"assertions": [
|
|
21
|
+
"Runs or describes running scripts/plan_summary.py with --scope module.vpc",
|
|
22
|
+
"Flags aws_iam_role_policy.ci as access widening and quotes the before and after actions",
|
|
23
|
+
"Reports the aws_route_table.private drift separately from the intended change",
|
|
24
|
+
"Lists the IAM change as outside the stated scope",
|
|
25
|
+
"Gives a DO NOT APPLY verdict because of the wildcard action on all resources",
|
|
26
|
+
"Does not echo any secret or sensitive value from the plan"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format_version": "1.2",
|
|
3
|
+
"terraform_version": "1.9.5",
|
|
4
|
+
"resource_drift": [
|
|
5
|
+
{
|
|
6
|
+
"address": "aws_route_table.private",
|
|
7
|
+
"mode": "managed",
|
|
8
|
+
"type": "aws_route_table",
|
|
9
|
+
"name": "private",
|
|
10
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
11
|
+
"change": {
|
|
12
|
+
"actions": [
|
|
13
|
+
"update"
|
|
14
|
+
],
|
|
15
|
+
"before": {
|
|
16
|
+
"id": "rtb-0aa11bb22cc33dd44",
|
|
17
|
+
"route": [
|
|
18
|
+
{
|
|
19
|
+
"cidr_block": "0.0.0.0/0",
|
|
20
|
+
"nat_gateway_id": "nat-0123456789abcdef0"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"tags": {
|
|
24
|
+
"Name": "northwind-private"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"after": {
|
|
28
|
+
"id": "rtb-0aa11bb22cc33dd44",
|
|
29
|
+
"route": [
|
|
30
|
+
{
|
|
31
|
+
"cidr_block": "0.0.0.0/0",
|
|
32
|
+
"nat_gateway_id": "nat-0123456789abcdef0"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"cidr_block": "10.99.0.0/16",
|
|
36
|
+
"vpc_peering_connection_id": "pcx-0fedcba9876543210"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"tags": {
|
|
40
|
+
"Name": "northwind-private"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"after_unknown": {},
|
|
44
|
+
"before_sensitive": {},
|
|
45
|
+
"after_sensitive": {}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"resource_changes": [
|
|
50
|
+
{
|
|
51
|
+
"address": "module.vpc.aws_subnet.private[\"c\"]",
|
|
52
|
+
"mode": "managed",
|
|
53
|
+
"type": "aws_subnet",
|
|
54
|
+
"name": "private",
|
|
55
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
56
|
+
"change": {
|
|
57
|
+
"actions": [
|
|
58
|
+
"create"
|
|
59
|
+
],
|
|
60
|
+
"before": null,
|
|
61
|
+
"after": {
|
|
62
|
+
"availability_zone": "eu-west-1c",
|
|
63
|
+
"cidr_block": "10.20.12.0/24",
|
|
64
|
+
"map_public_ip_on_launch": false,
|
|
65
|
+
"tags": {
|
|
66
|
+
"Name": "northwind-private-c"
|
|
67
|
+
},
|
|
68
|
+
"vpc_id": "vpc-0123456789abcdef0"
|
|
69
|
+
},
|
|
70
|
+
"after_unknown": {},
|
|
71
|
+
"before_sensitive": {},
|
|
72
|
+
"after_sensitive": {}
|
|
73
|
+
},
|
|
74
|
+
"module_address": "module.vpc"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"address": "aws_iam_role_policy.ci",
|
|
78
|
+
"mode": "managed",
|
|
79
|
+
"type": "aws_iam_role_policy",
|
|
80
|
+
"name": "ci",
|
|
81
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
82
|
+
"change": {
|
|
83
|
+
"actions": [
|
|
84
|
+
"update"
|
|
85
|
+
],
|
|
86
|
+
"before": {
|
|
87
|
+
"id": "northwind-ci:deploy",
|
|
88
|
+
"name": "deploy",
|
|
89
|
+
"role": "northwind-ci",
|
|
90
|
+
"policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": \"ec2:Describe*\", \"Resource\": \"*\"}]}"
|
|
91
|
+
},
|
|
92
|
+
"after": {
|
|
93
|
+
"id": "northwind-ci:deploy",
|
|
94
|
+
"name": "deploy",
|
|
95
|
+
"role": "northwind-ci",
|
|
96
|
+
"policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": \"*\", \"Resource\": \"*\"}]}"
|
|
97
|
+
},
|
|
98
|
+
"after_unknown": {},
|
|
99
|
+
"before_sensitive": {},
|
|
100
|
+
"after_sensitive": {}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"address": "module.vpc.aws_subnet.private[\"a\"]",
|
|
105
|
+
"mode": "managed",
|
|
106
|
+
"type": "aws_subnet",
|
|
107
|
+
"name": "private",
|
|
108
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
109
|
+
"change": {
|
|
110
|
+
"actions": [
|
|
111
|
+
"no-op"
|
|
112
|
+
],
|
|
113
|
+
"before": {
|
|
114
|
+
"availability_zone": "eu-west-1a",
|
|
115
|
+
"cidr_block": "10.20.10.0/24"
|
|
116
|
+
},
|
|
117
|
+
"after": {
|
|
118
|
+
"availability_zone": "eu-west-1a",
|
|
119
|
+
"cidr_block": "10.20.10.0/24"
|
|
120
|
+
},
|
|
121
|
+
"after_unknown": {},
|
|
122
|
+
"before_sensitive": {},
|
|
123
|
+
"after_sensitive": {}
|
|
124
|
+
},
|
|
125
|
+
"module_address": "module.vpc"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"output_changes": {},
|
|
129
|
+
"applyable": true,
|
|
130
|
+
"complete": true,
|
|
131
|
+
"errored": false,
|
|
132
|
+
"timestamp": "2026-09-30T10:12:00Z"
|
|
133
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format_version": "1.2",
|
|
3
|
+
"terraform_version": "1.9.5",
|
|
4
|
+
"planned_values": {
|
|
5
|
+
"root_module": {}
|
|
6
|
+
},
|
|
7
|
+
"resource_drift": [
|
|
8
|
+
{
|
|
9
|
+
"address": "aws_security_group.db",
|
|
10
|
+
"mode": "managed",
|
|
11
|
+
"type": "aws_security_group",
|
|
12
|
+
"name": "db",
|
|
13
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
14
|
+
"change": {
|
|
15
|
+
"actions": ["update"],
|
|
16
|
+
"before": {
|
|
17
|
+
"id": "sg-0a1b2c3d4e5f60001",
|
|
18
|
+
"name": "northwind-orders-db",
|
|
19
|
+
"description": "Postgres from app tier",
|
|
20
|
+
"ingress": [
|
|
21
|
+
{"from_port": 5432, "to_port": 5432, "protocol": "tcp", "cidr_blocks": [], "security_groups": ["sg-0a1b2c3d4e5f60002"], "description": "app tier", "ipv6_cidr_blocks": [], "prefix_list_ids": [], "self": false}
|
|
22
|
+
],
|
|
23
|
+
"tags": {"service": "orders"}
|
|
24
|
+
},
|
|
25
|
+
"after": {
|
|
26
|
+
"id": "sg-0a1b2c3d4e5f60001",
|
|
27
|
+
"name": "northwind-orders-db",
|
|
28
|
+
"description": "Postgres from app tier",
|
|
29
|
+
"ingress": [
|
|
30
|
+
{"from_port": 5432, "to_port": 5432, "protocol": "tcp", "cidr_blocks": [], "security_groups": ["sg-0a1b2c3d4e5f60002"], "description": "app tier", "ipv6_cidr_blocks": [], "prefix_list_ids": [], "self": false},
|
|
31
|
+
{"from_port": 5432, "to_port": 5432, "protocol": "tcp", "cidr_blocks": ["10.20.0.0/16"], "security_groups": [], "description": "temp debug", "ipv6_cidr_blocks": [], "prefix_list_ids": [], "self": false}
|
|
32
|
+
],
|
|
33
|
+
"tags": {"service": "orders"}
|
|
34
|
+
},
|
|
35
|
+
"after_unknown": {},
|
|
36
|
+
"before_sensitive": {},
|
|
37
|
+
"after_sensitive": {}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"resource_changes": [
|
|
42
|
+
{
|
|
43
|
+
"address": "aws_launch_template.app",
|
|
44
|
+
"mode": "managed",
|
|
45
|
+
"type": "aws_launch_template",
|
|
46
|
+
"name": "app",
|
|
47
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
48
|
+
"change": {
|
|
49
|
+
"actions": ["update"],
|
|
50
|
+
"before": {"id": "lt-0123456789abcdef0", "name": "northwind-orders-app", "instance_type": "m6i.large", "image_id": "ami-0aaa1111bbbb2222c", "latest_version": 7, "tags": {"service": "orders"}},
|
|
51
|
+
"after": {"id": "lt-0123456789abcdef0", "name": "northwind-orders-app", "instance_type": "m6i.xlarge", "image_id": "ami-0aaa1111bbbb2222c", "tags": {"service": "orders"}},
|
|
52
|
+
"after_unknown": {"latest_version": true},
|
|
53
|
+
"before_sensitive": {},
|
|
54
|
+
"after_sensitive": {}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"address": "aws_autoscaling_group.app",
|
|
59
|
+
"mode": "managed",
|
|
60
|
+
"type": "aws_autoscaling_group",
|
|
61
|
+
"name": "app",
|
|
62
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
63
|
+
"change": {
|
|
64
|
+
"actions": ["update"],
|
|
65
|
+
"before": {"id": "northwind-orders-app", "name": "northwind-orders-app", "min_size": 2, "max_size": 6, "desired_capacity": 2, "launch_template": [{"id": "lt-0123456789abcdef0", "version": "7"}]},
|
|
66
|
+
"after": {"id": "northwind-orders-app", "name": "northwind-orders-app", "min_size": 2, "max_size": 6, "desired_capacity": 2, "launch_template": [{"id": "lt-0123456789abcdef0"}]},
|
|
67
|
+
"after_unknown": {"launch_template": [{"version": true}]},
|
|
68
|
+
"before_sensitive": {},
|
|
69
|
+
"after_sensitive": {}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"address": "aws_db_instance.orders",
|
|
74
|
+
"mode": "managed",
|
|
75
|
+
"type": "aws_db_instance",
|
|
76
|
+
"name": "orders",
|
|
77
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
78
|
+
"change": {
|
|
79
|
+
"actions": ["delete", "create"],
|
|
80
|
+
"before": {"id": "db-ABCDEFGHIJKLMNOPQRSTUVWXY", "identifier": "northwind-orders", "engine": "postgres", "engine_version": "15.7", "instance_class": "db.r6g.large", "allocated_storage": 200, "storage_encrypted": false, "deletion_protection": false, "skip_final_snapshot": true, "username": "orders_admin", "password": "REDACTED-EXAMPLE", "tags": {"service": "orders"}},
|
|
81
|
+
"after": {"identifier": "northwind-orders", "engine": "postgres", "engine_version": "15.7", "instance_class": "db.r6g.large", "allocated_storage": 200, "storage_encrypted": true, "deletion_protection": false, "skip_final_snapshot": true, "username": "orders_admin", "password": "REDACTED-EXAMPLE", "tags": {"service": "orders"}},
|
|
82
|
+
"after_unknown": {"id": true, "arn": true, "endpoint": true, "kms_key_id": true},
|
|
83
|
+
"before_sensitive": {"password": true},
|
|
84
|
+
"after_sensitive": {"password": true},
|
|
85
|
+
"replace_paths": [["storage_encrypted"]]
|
|
86
|
+
},
|
|
87
|
+
"action_reason": "replace_because_cannot_update"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"address": "aws_security_group_rule.app_ssh",
|
|
91
|
+
"mode": "managed",
|
|
92
|
+
"type": "aws_security_group_rule",
|
|
93
|
+
"name": "app_ssh",
|
|
94
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
95
|
+
"change": {
|
|
96
|
+
"actions": ["create"],
|
|
97
|
+
"before": null,
|
|
98
|
+
"after": {"type": "ingress", "from_port": 22, "to_port": 22, "protocol": "tcp", "cidr_blocks": ["0.0.0.0/0"], "security_group_id": "sg-0a1b2c3d4e5f60002", "description": "ssh"},
|
|
99
|
+
"after_unknown": {"id": true, "security_group_rule_id": true},
|
|
100
|
+
"before_sensitive": false,
|
|
101
|
+
"after_sensitive": {}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"address": "aws_iam_role_policy.app",
|
|
106
|
+
"mode": "managed",
|
|
107
|
+
"type": "aws_iam_role_policy",
|
|
108
|
+
"name": "app",
|
|
109
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
110
|
+
"change": {
|
|
111
|
+
"actions": ["update"],
|
|
112
|
+
"before": {"id": "northwind-orders-app:app", "name": "app", "role": "northwind-orders-app", "policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:GetObject\",\"s3:PutObject\"],\"Resource\":\"arn:aws:s3:::northwind-orders-exports/*\"}]}"},
|
|
113
|
+
"after": {"id": "northwind-orders-app:app", "name": "app", "role": "northwind-orders-app", "policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:*\"],\"Resource\":\"*\"}]}"},
|
|
114
|
+
"after_unknown": {},
|
|
115
|
+
"before_sensitive": {},
|
|
116
|
+
"after_sensitive": {}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"address": "aws_instance.bastion",
|
|
121
|
+
"mode": "managed",
|
|
122
|
+
"type": "aws_instance",
|
|
123
|
+
"name": "bastion",
|
|
124
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
125
|
+
"change": {
|
|
126
|
+
"actions": ["create", "delete"],
|
|
127
|
+
"before": {"id": "i-0fedcba9876543210", "ami": "ami-0ccc3333dddd4444e", "instance_type": "t3.micro", "tags": {"Name": "northwind-bastion"}},
|
|
128
|
+
"after": {"ami": "ami-0eee5555ffff6666a", "instance_type": "t3.micro", "tags": {"Name": "northwind-bastion"}},
|
|
129
|
+
"after_unknown": {"id": true, "public_ip": true, "private_ip": true},
|
|
130
|
+
"before_sensitive": {},
|
|
131
|
+
"after_sensitive": {},
|
|
132
|
+
"replace_paths": [["ami"]]
|
|
133
|
+
},
|
|
134
|
+
"action_reason": "replace_because_cannot_update"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"address": "module.monitoring.aws_cloudwatch_metric_alarm.cpu_high",
|
|
138
|
+
"module_address": "module.monitoring",
|
|
139
|
+
"mode": "managed",
|
|
140
|
+
"type": "aws_cloudwatch_metric_alarm",
|
|
141
|
+
"name": "cpu_high",
|
|
142
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
143
|
+
"change": {
|
|
144
|
+
"actions": ["update"],
|
|
145
|
+
"before": {"id": "northwind-orders-cpu-high", "alarm_name": "northwind-orders-cpu-high", "threshold": 80, "evaluation_periods": 3},
|
|
146
|
+
"after": {"id": "northwind-orders-cpu-high", "alarm_name": "northwind-orders-cpu-high", "threshold": 95, "evaluation_periods": 3},
|
|
147
|
+
"after_unknown": {},
|
|
148
|
+
"before_sensitive": {},
|
|
149
|
+
"after_sensitive": {}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"address": "aws_s3_bucket.exports",
|
|
154
|
+
"mode": "managed",
|
|
155
|
+
"type": "aws_s3_bucket",
|
|
156
|
+
"name": "exports",
|
|
157
|
+
"provider_name": "registry.terraform.io/hashicorp/aws",
|
|
158
|
+
"change": {
|
|
159
|
+
"actions": ["no-op"],
|
|
160
|
+
"before": {"id": "northwind-orders-exports", "bucket": "northwind-orders-exports"},
|
|
161
|
+
"after": {"id": "northwind-orders-exports", "bucket": "northwind-orders-exports"},
|
|
162
|
+
"after_unknown": {},
|
|
163
|
+
"before_sensitive": {},
|
|
164
|
+
"after_sensitive": {}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"output_changes": {},
|
|
169
|
+
"configuration": {},
|
|
170
|
+
"timestamp": "2026-09-30T14:02:11Z",
|
|
171
|
+
"applyable": true,
|
|
172
|
+
"complete": true,
|
|
173
|
+
"errored": false
|
|
174
|
+
}
|
skilldrop_cli/data/packs/infra-as-code/skills/terraform-plan-review/examples/northwind-orders.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Worked example: Northwind orders, "resize the app tier"
|
|
2
|
+
|
|
3
|
+
## Input
|
|
4
|
+
|
|
5
|
+
The user says: *"This plan is meant to move the orders app from m6i.large to m6i.xlarge. Can I apply it?"* and supplies `plan.json` from `terraform show -json tfplan`. The file is [`northwind-orders-plan.json`](northwind-orders-plan.json), a hand-built plan in Terraform's documented JSON format (`format_version` 1.2). Placeholder IDs only.
|
|
6
|
+
|
|
7
|
+
The stated intent maps to two addresses, so the agent runs:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python3 scripts/plan_summary.py examples/northwind-orders-plan.json \
|
|
11
|
+
--scope aws_launch_template.app --scope aws_autoscaling_group.app
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Script output (real, unedited)
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
# Terraform plan summary
|
|
18
|
+
|
|
19
|
+
Terraform 1.9.5, JSON format 1.2.
|
|
20
|
+
|
|
21
|
+
**Floor verdict: DO NOT APPLY** (mechanical; the reviewer reads every flagged change)
|
|
22
|
+
|
|
23
|
+
| create | update | replace | destroy | read | forget | no-op |
|
|
24
|
+
|---|---|---|---|---|---|---|
|
|
25
|
+
| 1 | 4 | 2 | 0 | 0 | 0 | 1 |
|
|
26
|
+
|
|
27
|
+
Scope: aws_launch_template.app, aws_autoscaling_group.app
|
|
28
|
+
|
|
29
|
+
## Changes to review
|
|
30
|
+
|
|
31
|
+
- [DO NOT APPLY] `aws_db_instance.orders` (replace (destroy then create))
|
|
32
|
+
- will be replaced; replacement forced by: storage_encrypted (action_reason: replace_because_cannot_update)
|
|
33
|
+
- stateful resource: data is lost unless a backup or snapshot exists
|
|
34
|
+
- outside the stated scope
|
|
35
|
+
- [DO NOT APPLY] `aws_iam_role_policy.app` (update)
|
|
36
|
+
- access widened: policy allows Resource "*"; policy allows wildcard action s3:*
|
|
37
|
+
- outside the stated scope
|
|
38
|
+
- changed attributes: policy
|
|
39
|
+
- [DO NOT APPLY] `aws_security_group_rule.app_ssh` (create)
|
|
40
|
+
- access widened: open CIDR 0.0.0.0/0
|
|
41
|
+
- outside the stated scope
|
|
42
|
+
- [CARE] `aws_instance.bastion` (replace (create then destroy))
|
|
43
|
+
- will be replaced; replacement forced by: ami (action_reason: replace_because_cannot_update)
|
|
44
|
+
- outside the stated scope
|
|
45
|
+
- [CARE] `module.monitoring.aws_cloudwatch_metric_alarm.cpu_high` (update)
|
|
46
|
+
- outside the stated scope
|
|
47
|
+
- changed attributes: threshold
|
|
48
|
+
|
|
49
|
+
## Drift (changed outside Terraform)
|
|
50
|
+
|
|
51
|
+
- `aws_security_group.db` (update): ingress
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The two in-scope updates (`aws_launch_template.app`, `aws_autoscaling_group.app`) are counted but not flagged, because they are in scope and touch nothing risky.
|
|
55
|
+
|
|
56
|
+
## Review (what the agent hands back)
|
|
57
|
+
|
|
58
|
+
**Verdict: DO NOT APPLY.** The plan resizes the app tier as intended, but it would also replace the orders database with an empty one, open SSH to the internet, and give the app role full S3 access on every bucket. None of that is part of "resize the app tier".
|
|
59
|
+
|
|
60
|
+
Counts: 1 create, 4 update, 2 replace, 0 destroy, 1 no-op.
|
|
61
|
+
|
|
62
|
+
### Flagged changes
|
|
63
|
+
|
|
64
|
+
- 🟥 `aws_db_instance.orders`: destroy then create, forced by `storage_encrypted` (`false` to `true`, `action_reason: replace_because_cannot_update`). The plan also shows `skip_final_snapshot = true` and `deletion_protection = false`, so applying deletes the database without a final snapshot and creates a new, empty one. RDS cannot turn on encryption for an existing instance in place; the usual route is snapshot, copy the snapshot with encryption, restore from it, and cut over. That is a migration, not a resize.
|
|
65
|
+
- 🟥 `aws_security_group_rule.app_ssh`: new ingress rule, port 22 from `0.0.0.0/0` on the app security group. Before: no such rule. After: `cidr_blocks = ["0.0.0.0/0"]`, `from_port = 22`, `to_port = 22`.
|
|
66
|
+
- 🟥 `aws_iam_role_policy.app`: policy widened. Before: `Allow s3:GetObject, s3:PutObject on arn:aws:s3:::northwind-orders-exports/*`. After: `Allow s3:* on *`. The app role can now read, write and delete every bucket in the account.
|
|
67
|
+
- 🟧 `aws_instance.bastion`: create then destroy, forced by `ami`. A new bastion gets a new instance ID and new IPs (`private_ip`, `public_ip` are known after apply). Anything allow-listing the old bastion IP breaks. Out of scope.
|
|
68
|
+
- 🟧 `module.monitoring.aws_cloudwatch_metric_alarm.cpu_high`: `threshold` 80 to 95. Out of scope, and it loosens an alert at the same moment the instance size changes.
|
|
69
|
+
|
|
70
|
+
### Drift
|
|
71
|
+
|
|
72
|
+
- `aws_security_group.db`: someone added an ingress rule outside Terraform, port 5432 from `10.20.0.0/16`, description "temp debug". This plan does not list `aws_security_group.db` in `resource_changes`, so it neither reverts nor adopts the rule. The rule stays open and untracked until someone decides.
|
|
73
|
+
|
|
74
|
+
### Out of scope
|
|
75
|
+
|
|
76
|
+
All five flagged changes fall outside `aws_launch_template.app` and `aws_autoscaling_group.app`. The pattern (an encryption change, an SSH rule, a wider policy, a new AMI, a looser alarm) looks like a branch that picked up unrelated commits, or a shared root module with several people's work in it.
|
|
77
|
+
|
|
78
|
+
### Before you apply
|
|
79
|
+
|
|
80
|
+
1. Split the change. Re-plan with only the launch template and autoscaling group changes; that plan should show 2 updates and nothing else.
|
|
81
|
+
2. Take the `storage_encrypted` change out of this branch and plan it as a migration (snapshot, encrypted copy, restore, cutover). Set `deletion_protection = true` and `skip_final_snapshot = false` on `aws_db_instance.orders` first, and add `lifecycle { prevent_destroy = true }`.
|
|
82
|
+
3. Remove the `0.0.0.0/0` SSH rule. If bastion access is needed, use a session manager or a specific source CIDR.
|
|
83
|
+
4. Revert the IAM policy to the named actions on `northwind-orders-exports/*`.
|
|
84
|
+
5. Ask who changed the alarm threshold and the bastion AMI, and why, before either goes in.
|
|
85
|
+
6. Decide about the "temp debug" rule on `aws_security_group.db`: remove it in the console, or add it to code if it is needed.
|
|
86
|
+
|
|
87
|
+
Hand-offs: the database encryption change goes to `migration-plan`; the resize itself is small enough not to need a runbook.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "terraform-plan-review",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Review a terraform plan before apply, from the plan text or terraform show -json output. Flags every destroy and replace with the attribute forcing it, changes to stateful resources such as databases, buckets and volumes, IAM and security-group widening, drift nobody made in code, and changes outside the intended scope, then gives a SAFE TO APPLY, APPLY WITH CARE or DO NOT APPLY verdict with reasons. Use when the user pastes a plan, says \"review this terraform plan\", \"is this plan safe to apply\", \"why is terraform replacing my database\", or \"check the plan before I apply\".",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"capacity-cost-model",
|
|
16
|
+
"migration-plan",
|
|
17
|
+
"pre-merge-review",
|
|
18
|
+
"runbook-generator",
|
|
19
|
+
"terraform-module"
|
|
20
|
+
],
|
|
21
|
+
"handoff": [
|
|
22
|
+
{
|
|
23
|
+
"to": "migration-plan",
|
|
24
|
+
"when": "a stateful resource must be replaced and its data moved",
|
|
25
|
+
"purpose": "Plan the snapshot, copy, restore and cutover instead of letting apply destroy the data.",
|
|
26
|
+
"fallback": "If migration-plan is absent, list the backup, restore, cutover and rollback steps inline and keep the verdict at DO NOT APPLY until they exist."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"to": "runbook-generator",
|
|
30
|
+
"when": "the plan is approved and the apply needs a step-by-step procedure",
|
|
31
|
+
"purpose": "Write the apply, verify and rollback steps the operator follows.",
|
|
32
|
+
"fallback": "If runbook-generator is absent, add a numbered apply, verify and rollback list to the review."
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"tags": [
|
|
36
|
+
"terraform",
|
|
37
|
+
"infrastructure-as-code",
|
|
38
|
+
"plan-review",
|
|
39
|
+
"change-safety",
|
|
40
|
+
"iam",
|
|
41
|
+
"drift"
|
|
42
|
+
],
|
|
43
|
+
"permissions": {"network": [], "commands": [], "files": "named-paths", "notes": "Reads a plan JSON, which can hold secrets in clear text; the script never prints attribute values."},
|
|
44
|
+
"model": {
|
|
45
|
+
"tier": "heavy",
|
|
46
|
+
"rationale": "Adversarial review of a destructive change: judging which replacements lose data, which access changes widen exposure, and what is out of scope needs careful reasoning; a missed destroy costs far more than the model."
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# terraform-plan-review reference
|
|
2
|
+
|
|
3
|
+
## Text plan symbols
|
|
4
|
+
|
|
5
|
+
| Symbol | Header line in the plan | Meaning |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `+` | `will be created` | New object |
|
|
8
|
+
| `~` | `will be updated in-place` | Same object, changed attributes |
|
|
9
|
+
| `-` | `will be destroyed` | Object deleted |
|
|
10
|
+
| `-/+` | `must be replaced` | Destroy the old object, then create the new one (the default order) |
|
|
11
|
+
| `+/-` | `must be replaced` | Create the new object first, then destroy the old one (`create_before_destroy = true` in `lifecycle`) |
|
|
12
|
+
| `<=` | `will be read during apply` | Data source read deferred to apply because an input is unknown at plan time |
|
|
13
|
+
|
|
14
|
+
Inside a resource block:
|
|
15
|
+
- `# forces replacement` beside an attribute is the cause of a replacement.
|
|
16
|
+
- `(known after apply)` is a value Terraform cannot know until apply. On a replaced resource, the ID, ARN and endpoint all show this, so anything referencing them also changes.
|
|
17
|
+
- `(sensitive value)` hides a value marked sensitive. The JSON plan still contains it.
|
|
18
|
+
- `# (N unchanged attributes hidden)` is normal and not a finding.
|
|
19
|
+
- A `has moved to` line comes from a `moved` block or a refactor. It is not a destroy, but check that nothing else changes on the moved address.
|
|
20
|
+
|
|
21
|
+
Drift appears before the plan under **Objects have changed outside of Terraform**. Terraform only shows the drift it considers relevant to the planned changes. To see all of it, run `terraform plan -refresh-only`.
|
|
22
|
+
|
|
23
|
+
## JSON plan fields this skill reads
|
|
24
|
+
|
|
25
|
+
From `terraform show -json tfplan` (the documented JSON output format; `format_version` is a top-level key):
|
|
26
|
+
|
|
27
|
+
| Field | What it tells you |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `resource_changes[]` | One entry per resource instance with a planned action, including `no-op` |
|
|
30
|
+
| `resource_changes[].address` | Full address, including module path and index: `module.api.aws_lb.public[0]` |
|
|
31
|
+
| `resource_changes[].change.actions` | The action list: `["no-op"]`, `["create"]`, `["read"]`, `["update"]`, `["delete"]`, `["delete","create"]` (replace, destroy first), `["create","delete"]` (replace, create first). Newer versions add `["forget"]` for objects removed from state without being destroyed |
|
|
32
|
+
| `resource_changes[].change.before` / `after` | Attribute values before and after. `before` is `null` on create, `after` is `null` on delete |
|
|
33
|
+
| `resource_changes[].change.after_unknown` | Attributes whose value is only known after apply |
|
|
34
|
+
| `resource_changes[].change.before_sensitive` / `after_sensitive` | Which attributes are sensitive. The values themselves are still in `before` / `after` in clear text |
|
|
35
|
+
| `resource_changes[].change.replace_paths` | For a replace, the attribute paths that forced it, each a list of steps (`[["storage_encrypted"]]`, `[["ebs_block_device", 0, "volume_size"]]`) |
|
|
36
|
+
| `resource_changes[].change.importing` | Present when the plan imports an existing object |
|
|
37
|
+
| `resource_changes[].action_reason` | Why an action was chosen, when Terraform records one, e.g. `replace_because_tainted`, `replace_because_cannot_update`, `replace_by_request`, `delete_because_no_resource_config` |
|
|
38
|
+
| `resource_changes[].deposed` | Set when the entry refers to a deposed object left over from an interrupted create-before-destroy |
|
|
39
|
+
| `resource_drift[]` | Same shape as `resource_changes`, for objects that changed outside Terraform |
|
|
40
|
+
| `errored` | `true` if planning failed; the plan is incomplete |
|
|
41
|
+
|
|
42
|
+
`terraform show -json` with no plan file prints the **state**, which has `values` but no `resource_changes`. The script rejects it.
|
|
43
|
+
|
|
44
|
+
## Stateful resources
|
|
45
|
+
|
|
46
|
+
Destroying or replacing one of these loses data or identity that the new object does not have. The script matches resource types by substring; this is the human version.
|
|
47
|
+
|
|
48
|
+
| Class | Examples (AWS / Google Cloud / Azure) | What recovers it |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| Relational databases | `aws_db_instance`, `aws_rds_cluster`, `google_sql_database_instance`, `azurerm_postgresql_flexible_server` | Final snapshot or point-in-time restore; check `skip_final_snapshot`, `deletion_protection` |
|
|
51
|
+
| Key-value and document stores | `aws_dynamodb_table`, `azurerm_cosmosdb_account`, `google_bigtable_instance` | Backups or point-in-time recovery, if enabled |
|
|
52
|
+
| Object storage | `aws_s3_bucket`, `google_storage_bucket`, `azurerm_storage_account` | Nothing, once deleted. Bucket names can also be taken by someone else |
|
|
53
|
+
| Block and file storage | `aws_ebs_volume`, `aws_efs_file_system`, `google_compute_disk`, `azurerm_managed_disk` | Snapshots |
|
|
54
|
+
| Caches and queues | `aws_elasticache_*`, `aws_sqs_queue`, `aws_msk_cluster`, `google_pubsub_topic` | In-flight messages and cache contents are gone |
|
|
55
|
+
| Keys and secrets | `aws_kms_key`, `aws_secretsmanager_secret`, `google_kms_crypto_key`, `azurerm_key_vault` | Data encrypted with a destroyed key cannot be decrypted |
|
|
56
|
+
|
|
57
|
+
## Access widening
|
|
58
|
+
|
|
59
|
+
| Signal | Severity |
|
|
60
|
+
|---|---|
|
|
61
|
+
| New ingress from `0.0.0.0/0` or `::/0` | 🟥 unless the resource is meant to be public (a public load balancer on 443) and the user says so |
|
|
62
|
+
| `Principal: "*"` in an Allow statement | 🟥 |
|
|
63
|
+
| Wildcard `Action` together with `Resource: "*"` | 🟥 |
|
|
64
|
+
| Wildcard `Action` on a scoped resource, or a scoped action on `Resource: "*"` | 🟧 |
|
|
65
|
+
| Public access block setting turned from `true` to `false` | 🟥 |
|
|
66
|
+
| New role trust relationship or role assignment | 🟧 |
|
|
67
|
+
| Open egress to `0.0.0.0/0` | Note only |
|
|
68
|
+
|
|
69
|
+
## Verdict rules
|
|
70
|
+
|
|
71
|
+
| Verdict | When |
|
|
72
|
+
|---|---|
|
|
73
|
+
| **SAFE TO APPLY** | All changes in scope; no destroy or replace of stateful resources; no access widening; no drift the plan reverts |
|
|
74
|
+
| **APPLY WITH CARE** | Stateless replacements, in-place changes to stateful resources, protection flags turned off, drift the plan overwrites, imports, `forget`, or explained out-of-scope changes. Give the checks |
|
|
75
|
+
| **DO NOT APPLY** | Stateful destroy or replace without a confirmed recovery path, 🟥 access widening, an errored or truncated plan, or an unexplained out-of-scope change touching production |
|
|
76
|
+
|
|
77
|
+
The script's floor verdict follows these rules mechanically. A reviewer may lower it only on the user's confirmation that the change is intended and recoverable.
|