luckiest-co 1.0.0 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +16 -0
- package/.claude-plugin/plugin.json +1 -1
- package/LICENSE +24 -0
- package/bin/install.js +7 -5
- package/commands/{luckiest/finish.md → finish.md} +2 -0
- package/commands/go.md +53 -0
- package/commands/plan.md +66 -0
- package/package.json +16 -5
- package/skills/brainstorm/ATTRIBUTION.md +27 -0
- package/skills/brainstorm/SKILL.md +139 -0
- package/skills/luckiest-ab-testing/ATTRIBUTION.md +35 -0
- package/skills/luckiest-ab-testing/CHANGELOG.md +27 -0
- package/skills/luckiest-ab-testing/SKILL.md +379 -0
- package/skills/luckiest-ab-testing/evals/evals.json +118 -0
- package/skills/luckiest-ab-testing/references/sample-size-guide.md +290 -0
- package/skills/luckiest-ab-testing/references/test-templates.md +284 -0
- package/skills/luckiest-ad-creative/ATTRIBUTION.md +35 -0
- package/skills/luckiest-ad-creative/CHANGELOG.md +23 -0
- package/skills/luckiest-ad-creative/SKILL.md +393 -0
- package/skills/luckiest-ad-creative/evals/evals.json +90 -0
- package/skills/luckiest-ad-creative/references/generative-tools.md +637 -0
- package/skills/luckiest-ad-creative/references/platform-specs.md +213 -0
- package/skills/luckiest-ads/ATTRIBUTION.md +36 -0
- package/skills/luckiest-ads/CHANGELOG.md +24 -0
- package/skills/luckiest-ads/LICENSE +21 -0
- package/skills/luckiest-ads/SKILL.md +434 -0
- package/skills/luckiest-ads/evals/evals.json +90 -0
- package/skills/luckiest-ads/references/ad-copy-templates.md +207 -0
- package/skills/luckiest-ads/references/audience-targeting.md +243 -0
- package/skills/luckiest-ads/references/conversion-tracking.md +361 -0
- package/skills/luckiest-ads/references/platform-setup-checklists.md +277 -0
- package/skills/luckiest-advisors/ATTRIBUTION.md +16 -0
- package/skills/luckiest-advisors/CHANGELOG.md +99 -0
- package/skills/luckiest-advisors/SKILL.md +151 -0
- package/skills/luckiest-aeo-grader/ATTRIBUTION.md +19 -0
- package/skills/luckiest-aeo-grader/CHANGELOG.md +52 -0
- package/skills/luckiest-aeo-grader/SKILL.md +200 -0
- package/skills/luckiest-aeo-grader/evals/evals.json +19 -0
- package/skills/luckiest-aeo-grader/references/rubric.md +72 -0
- package/skills/luckiest-aeo-grader/scripts/scan.py +265 -0
- package/skills/luckiest-ai-seo/ATTRIBUTION.md +38 -0
- package/skills/luckiest-ai-seo/CHANGELOG.md +23 -0
- package/skills/luckiest-ai-seo/SKILL.md +510 -0
- package/skills/luckiest-ai-seo/evals/evals.json +90 -0
- package/skills/luckiest-ai-seo/references/content-patterns.md +285 -0
- package/skills/luckiest-ai-seo/references/content-types.md +71 -0
- package/skills/luckiest-ai-seo/references/okf.md +104 -0
- package/skills/luckiest-ai-seo/references/platform-ranking-factors.md +154 -0
- package/skills/luckiest-analytics/ATTRIBUTION.md +42 -0
- package/skills/luckiest-analytics/CHANGELOG.md +36 -0
- package/skills/luckiest-analytics/SKILL.md +380 -0
- package/skills/luckiest-analytics/evals/evals.json +90 -0
- package/skills/luckiest-analytics/references/event-library.md +260 -0
- package/skills/luckiest-analytics/references/ga4-implementation.md +300 -0
- package/skills/luckiest-analytics/references/gtm-implementation.md +390 -0
- package/skills/luckiest-aso/ATTRIBUTION.md +40 -0
- package/skills/luckiest-aso/CHANGELOG.md +33 -0
- package/skills/luckiest-aso/SKILL.md +327 -0
- package/skills/luckiest-aso/evals/evals.json +91 -0
- package/skills/luckiest-aso/references/apple-specs.md +107 -0
- package/skills/luckiest-aso/references/benchmarks.md +129 -0
- package/skills/luckiest-aso/references/google-play-specs.md +131 -0
- package/skills/luckiest-aso/references/report-template.md +213 -0
- package/skills/luckiest-aso/references/scoring-criteria.md +213 -0
- package/skills/luckiest-churn-prevention/ATTRIBUTION.md +41 -0
- package/skills/luckiest-churn-prevention/CHANGELOG.md +24 -0
- package/skills/luckiest-churn-prevention/SKILL.md +445 -0
- package/skills/luckiest-churn-prevention/evals/evals.json +93 -0
- package/skills/luckiest-churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/luckiest-churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/luckiest-co-marketing/ATTRIBUTION.md +38 -0
- package/skills/luckiest-co-marketing/CHANGELOG.md +25 -0
- package/skills/luckiest-co-marketing/SKILL.md +331 -0
- package/skills/luckiest-co-marketing/evals/evals.json +84 -0
- package/skills/luckiest-coder/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder/CHANGELOG.md +30 -0
- package/skills/luckiest-coder/SKILL.md +77 -0
- package/skills/luckiest-coder/references/antigravity-tools.md +23 -0
- package/skills/luckiest-coder/references/codex-tools.md +39 -0
- package/skills/luckiest-coder/references/pi-tools.md +16 -0
- package/skills/luckiest-coder-brainstorming/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-brainstorming/CHANGELOG.md +31 -0
- package/skills/luckiest-coder-brainstorming/SKILL.md +173 -0
- package/skills/luckiest-coder-brainstorming/scripts/frame-template.html +213 -0
- package/skills/luckiest-coder-brainstorming/scripts/helper.js +168 -0
- package/skills/luckiest-coder-brainstorming/scripts/server.cjs +721 -0
- package/skills/luckiest-coder-brainstorming/scripts/start-server.sh +209 -0
- package/skills/luckiest-coder-brainstorming/scripts/stop-server.sh +120 -0
- package/skills/luckiest-coder-brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/luckiest-coder-brainstorming/visual-companion.md +291 -0
- package/skills/luckiest-coder-consistency/ATTRIBUTION.md +30 -0
- package/skills/luckiest-coder-consistency/CHANGELOG.md +26 -0
- package/skills/luckiest-coder-consistency/SKILL.md +98 -0
- package/skills/luckiest-coder-constitution/ATTRIBUTION.md +28 -0
- package/skills/luckiest-coder-constitution/CHANGELOG.md +25 -0
- package/skills/luckiest-coder-constitution/SKILL.md +115 -0
- package/skills/luckiest-coder-debugging/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-debugging/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-debugging/CREATION-LOG.md +119 -0
- package/skills/luckiest-coder-debugging/SKILL.md +309 -0
- package/skills/luckiest-coder-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/luckiest-coder-debugging/condition-based-waiting.md +115 -0
- package/skills/luckiest-coder-debugging/defense-in-depth.md +122 -0
- package/skills/luckiest-coder-debugging/find-polluter.sh +63 -0
- package/skills/luckiest-coder-debugging/root-cause-tracing.md +169 -0
- package/skills/luckiest-coder-debugging/test-academic.md +14 -0
- package/skills/luckiest-coder-debugging/test-pressure-1.md +58 -0
- package/skills/luckiest-coder-debugging/test-pressure-2.md +68 -0
- package/skills/luckiest-coder-debugging/test-pressure-3.md +69 -0
- package/skills/luckiest-coder-dispatching-parallel-agents/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-dispatching-parallel-agents/CHANGELOG.md +23 -0
- package/skills/luckiest-coder-dispatching-parallel-agents/SKILL.md +198 -0
- package/skills/luckiest-coder-executing-plans/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-executing-plans/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-executing-plans/SKILL.md +83 -0
- package/skills/luckiest-coder-finishing-a-branch/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-finishing-a-branch/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-finishing-a-branch/SKILL.md +258 -0
- package/skills/luckiest-coder-git-worktrees/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-git-worktrees/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-git-worktrees/SKILL.md +215 -0
- package/skills/luckiest-coder-guard/ATTRIBUTION.md +29 -0
- package/skills/luckiest-coder-guard/CHANGELOG.md +48 -0
- package/skills/luckiest-coder-guard/LICENSE +21 -0
- package/skills/luckiest-coder-guard/SKILL.md +126 -0
- package/skills/luckiest-coder-guard/bin/check-careful.sh +65 -0
- package/skills/luckiest-coder-guard/bin/check-freeze.sh +48 -0
- package/skills/luckiest-coder-qa/ATTRIBUTION.md +28 -0
- package/skills/luckiest-coder-qa/CHANGELOG.md +49 -0
- package/skills/luckiest-coder-qa/LICENSE +21 -0
- package/skills/luckiest-coder-qa/SKILL.md +160 -0
- package/skills/luckiest-coder-qa/references/issue-taxonomy.md +85 -0
- package/skills/luckiest-coder-qa/references/qa-report-template.md +126 -0
- package/skills/luckiest-coder-receiving-code-review/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-receiving-code-review/CHANGELOG.md +28 -0
- package/skills/luckiest-coder-receiving-code-review/SKILL.md +226 -0
- package/skills/luckiest-coder-requesting-code-review/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-requesting-code-review/CHANGELOG.md +31 -0
- package/skills/luckiest-coder-requesting-code-review/SKILL.md +118 -0
- package/skills/luckiest-coder-requesting-code-review/code-reviewer.md +172 -0
- package/skills/luckiest-coder-shipping/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-shipping/CHANGELOG.md +48 -0
- package/skills/luckiest-coder-shipping/LICENSE +21 -0
- package/skills/luckiest-coder-shipping/SKILL.md +148 -0
- package/skills/luckiest-coder-shipping/references/canary.md +44 -0
- package/skills/luckiest-coder-shipping/references/test-and-coverage.md +91 -0
- package/skills/luckiest-coder-subagent-driven-development/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-subagent-driven-development/CHANGELOG.md +28 -0
- package/skills/luckiest-coder-subagent-driven-development/SKILL.md +439 -0
- package/skills/luckiest-coder-subagent-driven-development/implementer-prompt.md +139 -0
- package/skills/luckiest-coder-subagent-driven-development/scripts/review-package +44 -0
- package/skills/luckiest-coder-subagent-driven-development/scripts/sdd-workspace +22 -0
- package/skills/luckiest-coder-subagent-driven-development/scripts/task-brief +40 -0
- package/skills/luckiest-coder-subagent-driven-development/task-reviewer-prompt.md +188 -0
- package/skills/luckiest-coder-tdd/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-tdd/CHANGELOG.md +26 -0
- package/skills/luckiest-coder-tdd/SKILL.md +384 -0
- package/skills/luckiest-coder-tdd/testing-anti-patterns.md +299 -0
- package/skills/luckiest-coder-verification/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-verification/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-verification/SKILL.md +152 -0
- package/skills/luckiest-coder-writing-plans/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-writing-plans/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-writing-plans/SKILL.md +191 -0
- package/skills/luckiest-coder-writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/luckiest-coder-writing-skills/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-writing-skills/CHANGELOG.md +31 -0
- package/skills/luckiest-coder-writing-skills/SKILL.md +702 -0
- package/skills/luckiest-coder-writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/luckiest-coder-writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/luckiest-coder-writing-skills/graphviz-conventions.dot +172 -0
- package/skills/luckiest-coder-writing-skills/persuasion-principles.md +187 -0
- package/skills/luckiest-coder-writing-skills/render-graphs.js +168 -0
- package/skills/luckiest-coder-writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/luckiest-cold-email/ATTRIBUTION.md +36 -0
- package/skills/luckiest-cold-email/CHANGELOG.md +24 -0
- package/skills/luckiest-cold-email/SKILL.md +213 -0
- package/skills/luckiest-cold-email/evals/evals.json +94 -0
- package/skills/luckiest-cold-email/references/benchmarks.md +83 -0
- package/skills/luckiest-cold-email/references/follow-up-sequences.md +81 -0
- package/skills/luckiest-cold-email/references/frameworks.md +90 -0
- package/skills/luckiest-cold-email/references/personalization.md +79 -0
- package/skills/luckiest-cold-email/references/subject-lines.md +53 -0
- package/skills/luckiest-community-marketing/ATTRIBUTION.md +41 -0
- package/skills/luckiest-community-marketing/CHANGELOG.md +35 -0
- package/skills/luckiest-community-marketing/SKILL.md +200 -0
- package/skills/luckiest-community-marketing/evals/evals.json +89 -0
- package/skills/luckiest-competitor-profiling/ATTRIBUTION.md +36 -0
- package/skills/luckiest-competitor-profiling/CHANGELOG.md +24 -0
- package/skills/luckiest-competitor-profiling/SKILL.md +443 -0
- package/skills/luckiest-competitor-profiling/evals/evals.json +85 -0
- package/skills/luckiest-competitor-profiling/references/templates.md +167 -0
- package/skills/luckiest-competitor-profiling/references/tool-reference.md +179 -0
- package/skills/luckiest-competitors/ATTRIBUTION.md +36 -0
- package/skills/luckiest-competitors/CHANGELOG.md +25 -0
- package/skills/luckiest-competitors/SKILL.md +171 -0
- package/skills/luckiest-competitors/evals/evals.json +93 -0
- package/skills/luckiest-competitors/references/content-architecture.md +271 -0
- package/skills/luckiest-competitors/references/templates.md +223 -0
- package/skills/luckiest-content-strategy/ATTRIBUTION.md +39 -0
- package/skills/luckiest-content-strategy/CHANGELOG.md +23 -0
- package/skills/luckiest-content-strategy/SKILL.md +395 -0
- package/skills/luckiest-content-strategy/evals/evals.json +90 -0
- package/skills/luckiest-content-strategy/references/headless-cms.md +194 -0
- package/skills/luckiest-copy-editing/ATTRIBUTION.md +41 -0
- package/skills/luckiest-copy-editing/CHANGELOG.md +31 -0
- package/skills/luckiest-copy-editing/SKILL.md +491 -0
- package/skills/luckiest-copy-editing/evals/evals.json +89 -0
- package/skills/luckiest-copy-editing/references/checklist.md +66 -0
- package/skills/luckiest-copy-editing/references/content-refresh.md +38 -0
- package/skills/luckiest-copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/luckiest-copywriting/ATTRIBUTION.md +35 -0
- package/skills/luckiest-copywriting/CHANGELOG.md +23 -0
- package/skills/luckiest-copywriting/SKILL.md +296 -0
- package/skills/luckiest-copywriting/evals/evals.json +111 -0
- package/skills/luckiest-copywriting/references/copy-frameworks.md +344 -0
- package/skills/luckiest-copywriting/references/natural-transitions.md +272 -0
- package/skills/luckiest-cro/ATTRIBUTION.md +34 -0
- package/skills/luckiest-cro/CHANGELOG.md +23 -0
- package/skills/luckiest-cro/SKILL.md +215 -0
- package/skills/luckiest-cro/evals/evals.json +111 -0
- package/skills/luckiest-cro/references/experiments.md +248 -0
- package/skills/luckiest-cro/references/form.md +422 -0
- package/skills/luckiest-customer-research/ATTRIBUTION.md +40 -0
- package/skills/luckiest-customer-research/CHANGELOG.md +26 -0
- package/skills/luckiest-customer-research/SKILL.md +293 -0
- package/skills/luckiest-customer-research/evals/evals.json +162 -0
- package/skills/luckiest-customer-research/references/source-guides.md +401 -0
- package/skills/luckiest-directory-submissions/ATTRIBUTION.md +40 -0
- package/skills/luckiest-directory-submissions/CHANGELOG.md +33 -0
- package/skills/luckiest-directory-submissions/SKILL.md +419 -0
- package/skills/luckiest-directory-submissions/evals/evals.json +94 -0
- package/skills/luckiest-directory-submissions/references/directory-list.md +477 -0
- package/skills/luckiest-directory-submissions/references/positioning-variations.md +232 -0
- package/skills/luckiest-directory-submissions/references/submission-tracker-template.csv +266 -0
- package/skills/luckiest-emails/ATTRIBUTION.md +42 -0
- package/skills/luckiest-emails/CHANGELOG.md +33 -0
- package/skills/luckiest-emails/SKILL.md +220 -0
- package/skills/luckiest-emails/evals/evals.json +93 -0
- package/skills/luckiest-emails/references/copy-guidelines.md +120 -0
- package/skills/luckiest-emails/references/email-types.md +515 -0
- package/skills/luckiest-emails/references/sequence-templates.md +168 -0
- package/skills/luckiest-extract-design-system/ATTRIBUTION.md +8 -0
- package/skills/luckiest-extract-design-system/CHANGELOG.md +37 -0
- package/skills/luckiest-extract-design-system/SKILL.md +83 -0
- package/skills/luckiest-free-tools/ATTRIBUTION.md +43 -0
- package/skills/luckiest-free-tools/CHANGELOG.md +25 -0
- package/skills/luckiest-free-tools/SKILL.md +220 -0
- package/skills/luckiest-free-tools/evals/evals.json +90 -0
- package/skills/luckiest-free-tools/references/tool-types.md +217 -0
- package/skills/luckiest-image/ATTRIBUTION.md +43 -0
- package/skills/luckiest-image/CHANGELOG.md +23 -0
- package/skills/luckiest-image/SKILL.md +376 -0
- package/skills/luckiest-image/evals/evals.json +89 -0
- package/skills/luckiest-image/references/ai-image-prompting.md +229 -0
- package/skills/luckiest-launch/ATTRIBUTION.md +40 -0
- package/skills/luckiest-launch/CHANGELOG.md +43 -0
- package/skills/luckiest-launch/SKILL.md +385 -0
- package/skills/luckiest-launch/evals/evals.json +91 -0
- package/skills/luckiest-lead-magnets/ATTRIBUTION.md +35 -0
- package/skills/luckiest-lead-magnets/CHANGELOG.md +23 -0
- package/skills/luckiest-lead-magnets/SKILL.md +331 -0
- package/skills/luckiest-lead-magnets/evals/evals.json +87 -0
- package/skills/luckiest-lead-magnets/references/benchmarks.md +129 -0
- package/skills/luckiest-lead-magnets/references/format-guide.md +196 -0
- package/skills/luckiest-marketing-ideas/ATTRIBUTION.md +39 -0
- package/skills/luckiest-marketing-ideas/CHANGELOG.md +33 -0
- package/skills/luckiest-marketing-ideas/SKILL.md +191 -0
- package/skills/luckiest-marketing-ideas/evals/evals.json +90 -0
- package/skills/luckiest-marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/luckiest-marketing-plan/ATTRIBUTION.md +40 -0
- package/skills/luckiest-marketing-plan/CHANGELOG.md +23 -0
- package/skills/luckiest-marketing-plan/SKILL.md +285 -0
- package/skills/luckiest-marketing-plan/evals/evals.json +96 -0
- package/skills/luckiest-marketing-plan/references/aarrr-framework.md +180 -0
- package/skills/luckiest-marketing-plan/references/budget-planning.md +168 -0
- package/skills/luckiest-marketing-plan/references/client-types.md +373 -0
- package/skills/luckiest-marketing-plan/references/current-state-rubric.md +255 -0
- package/skills/luckiest-marketing-plan/references/example-quietude.md +972 -0
- package/skills/luckiest-marketing-plan/references/funding-stage-unlocks.md +230 -0
- package/skills/luckiest-marketing-plan/references/growth-patterns.md +148 -0
- package/skills/luckiest-marketing-plan/references/idea-cross-reference.md +265 -0
- package/skills/luckiest-marketing-plan/references/measurement-framework.md +213 -0
- package/skills/luckiest-marketing-plan/references/methodology.md +363 -0
- package/skills/luckiest-marketing-plan/references/ops-stack-mapping.md +197 -0
- package/skills/luckiest-marketing-plan/references/plan-template.md +494 -0
- package/skills/luckiest-marketing-plan/references/team-and-agency-model.md +278 -0
- package/skills/luckiest-marketing-psychology/ATTRIBUTION.md +31 -0
- package/skills/luckiest-marketing-psychology/CHANGELOG.md +32 -0
- package/skills/luckiest-marketing-psychology/SKILL.md +202 -0
- package/skills/luckiest-marketing-psychology/evals.json +88 -0
- package/skills/luckiest-model-router/ATTRIBUTION.md +11 -0
- package/skills/luckiest-model-router/CHANGELOG.md +45 -0
- package/skills/luckiest-model-router/SKILL.md +74 -0
- package/skills/luckiest-model-router/scripts/route.py +145 -0
- package/skills/luckiest-offers/ATTRIBUTION.md +39 -0
- package/skills/luckiest-offers/CHANGELOG.md +23 -0
- package/skills/luckiest-offers/SKILL.md +167 -0
- package/skills/luckiest-offers/references/bonus-stacking.md +150 -0
- package/skills/luckiest-offers/references/examples.md +215 -0
- package/skills/luckiest-offers/references/guarantee-design.md +172 -0
- package/skills/luckiest-offers/references/offer-anatomy.md +203 -0
- package/skills/luckiest-offers/references/offer-formats.md +240 -0
- package/skills/luckiest-offers/references/scarcity-urgency.md +175 -0
- package/skills/luckiest-offers/references/value-equation.md +134 -0
- package/skills/luckiest-onboarding/ATTRIBUTION.md +43 -0
- package/skills/luckiest-onboarding/CHANGELOG.md +31 -0
- package/skills/luckiest-onboarding/SKILL.md +243 -0
- package/skills/luckiest-onboarding/references/experiments.md +258 -0
- package/skills/luckiest-paywalls/ATTRIBUTION.md +39 -0
- package/skills/luckiest-paywalls/CHANGELOG.md +25 -0
- package/skills/luckiest-paywalls/SKILL.md +256 -0
- package/skills/luckiest-paywalls/evals/evals.json +93 -0
- package/skills/luckiest-paywalls/references/experiments.md +164 -0
- package/skills/luckiest-popups/ATTRIBUTION.md +35 -0
- package/skills/luckiest-popups/CHANGELOG.md +27 -0
- package/skills/luckiest-popups/SKILL.md +477 -0
- package/skills/luckiest-popups/evals/evals.json +107 -0
- package/skills/luckiest-pricing/ATTRIBUTION.md +35 -0
- package/skills/luckiest-pricing/CHANGELOG.md +31 -0
- package/skills/luckiest-pricing/SKILL.md +283 -0
- package/skills/luckiest-pricing/evals/evals.json +90 -0
- package/skills/luckiest-pricing/references/research-methods.md +152 -0
- package/skills/luckiest-pricing/references/tier-structure.md +232 -0
- package/skills/luckiest-product-marketing/ATTRIBUTION.md +38 -0
- package/skills/luckiest-product-marketing/CHANGELOG.md +23 -0
- package/skills/luckiest-product-marketing/SKILL.md +256 -0
- package/skills/luckiest-product-marketing/evals/evals.json +85 -0
- package/skills/luckiest-programmatic-seo/ATTRIBUTION.md +35 -0
- package/skills/luckiest-programmatic-seo/CHANGELOG.md +24 -0
- package/skills/luckiest-programmatic-seo/SKILL.md +286 -0
- package/skills/luckiest-programmatic-seo/evals/evals.json +95 -0
- package/skills/luckiest-programmatic-seo/references/playbooks.md +308 -0
- package/skills/luckiest-prompt-rewrite/ATTRIBUTION.md +39 -0
- package/skills/luckiest-prompt-rewrite/CHANGELOG.md +70 -0
- package/skills/luckiest-prompt-rewrite/LICENSE +21 -0
- package/skills/luckiest-prompt-rewrite/SKILL.md +494 -0
- package/skills/luckiest-prompt-rewrite/references/patterns.md +82 -0
- package/skills/luckiest-prompt-rewrite/references/templates.md +454 -0
- package/skills/luckiest-prospecting/ATTRIBUTION.md +29 -0
- package/skills/luckiest-prospecting/CHANGELOG.md +24 -0
- package/skills/luckiest-prospecting/SKILL.md +275 -0
- package/skills/luckiest-prospecting/evals/evals.json +107 -0
- package/skills/luckiest-prospecting/references/b2b-prospecting.md +106 -0
- package/skills/luckiest-prospecting/references/compliance.md +123 -0
- package/skills/luckiest-prospecting/references/data-sources.md +287 -0
- package/skills/luckiest-prospecting/references/local-prospecting.md +165 -0
- package/skills/luckiest-prospecting/references/saas-prospecting.md +123 -0
- package/skills/luckiest-public-relations/ATTRIBUTION.md +34 -0
- package/skills/luckiest-public-relations/CHANGELOG.md +23 -0
- package/skills/luckiest-public-relations/SKILL.md +154 -0
- package/skills/luckiest-public-relations/references/journalist-pitching.md +368 -0
- package/skills/luckiest-public-relations/references/media-outlets.md +207 -0
- package/skills/luckiest-public-relations/references/newsjacking.md +218 -0
- package/skills/luckiest-public-relations/references/press-platforms.md +188 -0
- package/skills/luckiest-referrals/ATTRIBUTION.md +41 -0
- package/skills/luckiest-referrals/CHANGELOG.md +23 -0
- package/skills/luckiest-referrals/SKILL.md +292 -0
- package/skills/luckiest-referrals/evals/evals.json +90 -0
- package/skills/luckiest-referrals/references/affiliate-programs.md +167 -0
- package/skills/luckiest-referrals/references/program-examples.md +143 -0
- package/skills/luckiest-revops/ATTRIBUTION.md +40 -0
- package/skills/luckiest-revops/CHANGELOG.md +24 -0
- package/skills/luckiest-revops/SKILL.md +362 -0
- package/skills/luckiest-revops/evals/evals.json +91 -0
- package/skills/luckiest-revops/references/automation-playbooks.md +290 -0
- package/skills/luckiest-revops/references/lifecycle-definitions.md +278 -0
- package/skills/luckiest-revops/references/routing-rules.md +203 -0
- package/skills/luckiest-revops/references/scoring-models.md +247 -0
- package/skills/luckiest-sales-enablement/ATTRIBUTION.md +39 -0
- package/skills/luckiest-sales-enablement/CHANGELOG.md +23 -0
- package/skills/luckiest-sales-enablement/SKILL.md +379 -0
- package/skills/luckiest-sales-enablement/evals/evals.json +91 -0
- package/skills/luckiest-sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/luckiest-sales-enablement/references/demo-scripts.md +355 -0
- package/skills/luckiest-sales-enablement/references/objection-library.md +270 -0
- package/skills/luckiest-sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/luckiest-schema/ATTRIBUTION.md +39 -0
- package/skills/luckiest-schema/CHANGELOG.md +25 -0
- package/skills/luckiest-schema/SKILL.md +209 -0
- package/skills/luckiest-schema/evals/evals.json +88 -0
- package/skills/luckiest-schema/references/schema-examples.md +398 -0
- package/skills/luckiest-seo-audit/ATTRIBUTION.md +39 -0
- package/skills/luckiest-seo-audit/CHANGELOG.md +23 -0
- package/skills/luckiest-seo-audit/SKILL.md +529 -0
- package/skills/luckiest-seo-audit/evals/evals.json +136 -0
- package/skills/luckiest-seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/luckiest-seo-audit/references/international-seo.md +230 -0
- package/skills/luckiest-session-handoff/ATTRIBUTION.md +14 -0
- package/skills/luckiest-session-handoff/CHANGELOG.md +30 -0
- package/skills/luckiest-session-handoff/SKILL.md +96 -0
- package/skills/luckiest-signup/ATTRIBUTION.md +48 -0
- package/skills/luckiest-signup/CHANGELOG.md +24 -0
- package/skills/luckiest-signup/SKILL.md +382 -0
- package/skills/luckiest-signup/evals/evals.json +88 -0
- package/skills/luckiest-site-architecture/ATTRIBUTION.md +38 -0
- package/skills/luckiest-site-architecture/CHANGELOG.md +23 -0
- package/skills/luckiest-site-architecture/SKILL.md +383 -0
- package/skills/luckiest-site-architecture/evals/evals.json +88 -0
- package/skills/luckiest-site-architecture/references/mermaid-templates.md +216 -0
- package/skills/luckiest-site-architecture/references/navigation-patterns.md +305 -0
- package/skills/luckiest-site-architecture/references/site-type-templates.md +293 -0
- package/skills/luckiest-sms/ATTRIBUTION.md +27 -0
- package/skills/luckiest-sms/CHANGELOG.md +24 -0
- package/skills/luckiest-sms/SKILL.md +400 -0
- package/skills/luckiest-sms/evals/evals.json +100 -0
- package/skills/luckiest-sms/references/compliance.md +202 -0
- package/skills/luckiest-sms/references/platforms.md +318 -0
- package/skills/luckiest-sms/references/sequence-templates.md +282 -0
- package/skills/luckiest-social/ATTRIBUTION.md +27 -0
- package/skills/luckiest-social/CHANGELOG.md +24 -0
- package/skills/luckiest-social/SKILL.md +430 -0
- package/skills/luckiest-social/evals/evals.json +92 -0
- package/skills/luckiest-social/references/listening-sources-template.md +123 -0
- package/skills/luckiest-social/references/listening.md +283 -0
- package/skills/luckiest-social/references/platform-limits.md +110 -0
- package/skills/luckiest-social/references/platforms.md +170 -0
- package/skills/luckiest-social/references/post-templates.md +177 -0
- package/skills/luckiest-social/references/reverse-engineering.md +195 -0
- package/skills/luckiest-social/references/short-form-video.md +237 -0
- package/skills/luckiest-thinker/ATTRIBUTION.md +16 -0
- package/skills/luckiest-thinker/CHANGELOG.md +20 -0
- package/skills/luckiest-thinker/LICENSE +21 -0
- package/skills/luckiest-thinker/SKILL.md +92 -0
- package/skills/luckiest-thinker/references/distribution-calibration.md +106 -0
- package/skills/luckiest-thinker/references/research-foundations.md +214 -0
- package/skills/luckiest-thinker/references/thinking-patterns.md +138 -0
- package/skills/luckiest-trends/.skillignore +10 -0
- package/skills/luckiest-trends/ATTRIBUTION.md +43 -0
- package/skills/luckiest-trends/CHANGELOG.md +86 -0
- package/skills/luckiest-trends/LICENSE +21 -0
- package/skills/luckiest-trends/SKILL.md +194 -0
- package/skills/luckiest-trends/agents/openai.yaml +8 -0
- package/skills/luckiest-trends/references/engine-contract.md +2041 -0
- package/skills/luckiest-trends/references/save-html-brief.md +206 -0
- package/skills/luckiest-trends/scripts/briefing.py +272 -0
- package/skills/luckiest-trends/scripts/build-skill.sh +39 -0
- package/skills/luckiest-trends/scripts/compare.sh +61 -0
- package/skills/luckiest-trends/scripts/evaluate_search_quality.py +573 -0
- package/skills/luckiest-trends/scripts/last30days.py +1467 -0
- package/skills/luckiest-trends/scripts/lib/__init__.py +1 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/__init__.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/arxiv.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/bird_x.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/bluesky.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/categories.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/cjk.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/cluster.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/dates.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/dedupe.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/digg.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/entity_extract.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/env.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/fusion.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/github.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/grounding.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/hackernews.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/hiring_signals.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/html_render.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/http.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/instagram.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/jobs.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/linkedin.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/log.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/normalize.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/permission_preflight.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/perplexity.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/pinterest.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/pipeline.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/planner.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/polymarket.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/preflight.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/providers.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/quality_nudge.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/query.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_arctic.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_enrich.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_keyless.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_listing.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_public.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_rss.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_shreddit.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/relevance.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/render.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/rerank.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/resolve.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/schema.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/signals.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/skill_meta.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/snippet.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/subproc.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/techmeme.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/threads.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/tiktok.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/trustpilot.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/truthsocial.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/ui.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/web_search_keyless.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xai_x.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xiaohongshu_api.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xquik.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xurl_x.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/youtube_yt.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/arxiv.py +290 -0
- package/skills/luckiest-trends/scripts/lib/bird_x.py +639 -0
- package/skills/luckiest-trends/scripts/lib/bluesky.py +323 -0
- package/skills/luckiest-trends/scripts/lib/categories.py +283 -0
- package/skills/luckiest-trends/scripts/lib/chrome_cookies.py +414 -0
- package/skills/luckiest-trends/scripts/lib/cjk.py +107 -0
- package/skills/luckiest-trends/scripts/lib/cluster.py +271 -0
- package/skills/luckiest-trends/scripts/lib/competitors.py +198 -0
- package/skills/luckiest-trends/scripts/lib/cookie_extract.py +508 -0
- package/skills/luckiest-trends/scripts/lib/dates.py +169 -0
- package/skills/luckiest-trends/scripts/lib/dedupe.py +145 -0
- package/skills/luckiest-trends/scripts/lib/digg.py +440 -0
- package/skills/luckiest-trends/scripts/lib/entity_extract.py +127 -0
- package/skills/luckiest-trends/scripts/lib/env.py +1073 -0
- package/skills/luckiest-trends/scripts/lib/fanout.py +84 -0
- package/skills/luckiest-trends/scripts/lib/fusion.py +207 -0
- package/skills/luckiest-trends/scripts/lib/github.py +996 -0
- package/skills/luckiest-trends/scripts/lib/grounding.py +331 -0
- package/skills/luckiest-trends/scripts/lib/hackernews.py +357 -0
- package/skills/luckiest-trends/scripts/lib/health.py +92 -0
- package/skills/luckiest-trends/scripts/lib/hiring_signals.py +326 -0
- package/skills/luckiest-trends/scripts/lib/html_publish.py +73 -0
- package/skills/luckiest-trends/scripts/lib/html_render.py +738 -0
- package/skills/luckiest-trends/scripts/lib/http.py +372 -0
- package/skills/luckiest-trends/scripts/lib/instagram.py +521 -0
- package/skills/luckiest-trends/scripts/lib/jobs.py +708 -0
- package/skills/luckiest-trends/scripts/lib/linkedin.py +363 -0
- package/skills/luckiest-trends/scripts/lib/log.py +35 -0
- package/skills/luckiest-trends/scripts/lib/normalize.py +759 -0
- package/skills/luckiest-trends/scripts/lib/permission_preflight.py +242 -0
- package/skills/luckiest-trends/scripts/lib/perplexity.py +745 -0
- package/skills/luckiest-trends/scripts/lib/pinterest.py +154 -0
- package/skills/luckiest-trends/scripts/lib/pipeline.py +1720 -0
- package/skills/luckiest-trends/scripts/lib/planner.py +763 -0
- package/skills/luckiest-trends/scripts/lib/polymarket.py +794 -0
- package/skills/luckiest-trends/scripts/lib/preflight.py +119 -0
- package/skills/luckiest-trends/scripts/lib/providers.py +380 -0
- package/skills/luckiest-trends/scripts/lib/quality_nudge.py +383 -0
- package/skills/luckiest-trends/scripts/lib/query.py +202 -0
- package/skills/luckiest-trends/scripts/lib/reddit.py +731 -0
- package/skills/luckiest-trends/scripts/lib/reddit_arctic.py +92 -0
- package/skills/luckiest-trends/scripts/lib/reddit_enrich.py +322 -0
- package/skills/luckiest-trends/scripts/lib/reddit_keyless.py +329 -0
- package/skills/luckiest-trends/scripts/lib/reddit_listing.py +188 -0
- package/skills/luckiest-trends/scripts/lib/reddit_public.py +275 -0
- package/skills/luckiest-trends/scripts/lib/reddit_rss.py +224 -0
- package/skills/luckiest-trends/scripts/lib/reddit_shreddit.py +184 -0
- package/skills/luckiest-trends/scripts/lib/relevance.py +200 -0
- package/skills/luckiest-trends/scripts/lib/render.py +2130 -0
- package/skills/luckiest-trends/scripts/lib/rerank.py +708 -0
- package/skills/luckiest-trends/scripts/lib/resolve.py +345 -0
- package/skills/luckiest-trends/scripts/lib/safari_cookies.py +193 -0
- package/skills/luckiest-trends/scripts/lib/schema.py +319 -0
- package/skills/luckiest-trends/scripts/lib/setup_wizard.py +843 -0
- package/skills/luckiest-trends/scripts/lib/signals.py +334 -0
- package/skills/luckiest-trends/scripts/lib/skill_meta.py +33 -0
- package/skills/luckiest-trends/scripts/lib/snippet.py +51 -0
- package/skills/luckiest-trends/scripts/lib/subproc.py +116 -0
- package/skills/luckiest-trends/scripts/lib/techmeme.py +239 -0
- package/skills/luckiest-trends/scripts/lib/threads.py +207 -0
- package/skills/luckiest-trends/scripts/lib/tiktok.py +596 -0
- package/skills/luckiest-trends/scripts/lib/transcribe.py +235 -0
- package/skills/luckiest-trends/scripts/lib/trustpilot.py +277 -0
- package/skills/luckiest-trends/scripts/lib/truthsocial.py +162 -0
- package/skills/luckiest-trends/scripts/lib/ui.py +626 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/LICENSE +21 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/bird-search.mjs +147 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/cookies.js +220 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/features.json +17 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/paginate-cursor.js +37 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/query-ids.json +20 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/runtime-features.js +151 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js +264 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-base.js +129 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js +50 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-features.js +347 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-search.js +157 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-types.js +2 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js +511 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/package.json +13 -0
- package/skills/luckiest-trends/scripts/lib/web_fetch_keyless.py +105 -0
- package/skills/luckiest-trends/scripts/lib/web_search_keyless.py +158 -0
- package/skills/luckiest-trends/scripts/lib/xai_x.py +236 -0
- package/skills/luckiest-trends/scripts/lib/xiaohongshu_api.py +162 -0
- package/skills/luckiest-trends/scripts/lib/xquik.py +404 -0
- package/skills/luckiest-trends/scripts/lib/xurl_x.py +171 -0
- package/skills/luckiest-trends/scripts/lib/youtube_yt.py +1365 -0
- package/skills/luckiest-trends/scripts/setup-keychain.sh +123 -0
- package/skills/luckiest-trends/scripts/setup-pass.sh +132 -0
- package/skills/luckiest-trends/scripts/store.py +1020 -0
- package/skills/luckiest-trends/scripts/test-v1-vs-v2.sh +220 -0
- package/skills/luckiest-trends/scripts/test_device_auth.py +128 -0
- package/skills/luckiest-trends/scripts/verify_v3.py +195 -0
- package/skills/luckiest-trends/scripts/watchlist.py +318 -0
- package/skills/luckiest-video/ATTRIBUTION.md +27 -0
- package/skills/luckiest-video/CHANGELOG.md +23 -0
- package/skills/luckiest-video/SKILL.md +371 -0
- package/skills/luckiest-video/evals/evals.json +88 -0
- package/skills/luckiest-video/references/ai-video-prompting.md +175 -0
- package/skills/remix/SKILL.md +32 -0
- package/commands/luckiest/go.md +0 -45
- package/commands/luckiest/plan.md +0 -55
- /package/commands/{luckiest/charms.md → charms.md} +0 -0
- /package/commands/{luckiest/helpers.md → helpers.md} +0 -0
- /package/commands/{luckiest/home.md → home.md} +0 -0
- /package/commands/{luckiest/leaderboard.md → leaderboard.md} +0 -0
- /package/commands/{luckiest/merge.md → merge.md} +0 -0
- /package/commands/{luckiest/overlaps.md → overlaps.md} +0 -0
- /package/commands/{luckiest/skills.md → skills.md} +0 -0
- /package/commands/{luckiest/start.md → start.md} +0 -0
- /package/commands/{luckiest/status.md → status.md} +0 -0
- /package/commands/{luckiest/updates.md → updates.md} +0 -0
- /package/commands/{luckiest/vouch.md → vouch.md} +0 -0
- /package/commands/{luckiest/wishes.md → wishes.md} +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Changelog — luckiest-coder-requesting-code-review
|
|
2
|
+
|
|
3
|
+
## 1.1.0 — 2026-07-06
|
|
4
|
+
Skill updater pass: analytics integration.
|
|
5
|
+
|
|
6
|
+
### Analytics (report_usage)
|
|
7
|
+
- Updated `report_usage` call to `skill_version: "1.1.0"` and `check_updates`
|
|
8
|
+
`installedSemver: "1.1.0"`. The skill now reports usage to the Luckiest
|
|
9
|
+
telemetry pipeline on every run, making it visible on the admin Skill Usage
|
|
10
|
+
page (/owner/skill-usage).
|
|
11
|
+
|
|
12
|
+
## 1.0.0 — 2026-07-03
|
|
13
|
+
Rebranded from requesting-code-review (Superpowers, MIT).
|
|
14
|
+
|
|
15
|
+
### Rebrand
|
|
16
|
+
- Frontmatter `name` -> luckiest-coder-requesting-code-review; added license + metadata.
|
|
17
|
+
- Removed `superpowers/` path fragment from the example plan path
|
|
18
|
+
(docs/superpowers/plans/... -> docs/plans/...).
|
|
19
|
+
- Added "Staying current" MCP check_updates section.
|
|
20
|
+
|
|
21
|
+
### Improve pass (/refract)
|
|
22
|
+
- Rewrote the `description` for trigger-matching with concrete trigger phrases.
|
|
23
|
+
No workflow content changed.
|
|
24
|
+
|
|
25
|
+
### Network hook
|
|
26
|
+
- assist-request: added ONE optional offer line — when the reviewer surfaces a
|
|
27
|
+
Critical/Important issue the agent cannot resolve alone, it may offer a tribe
|
|
28
|
+
assist via the Luckiest MCP `request_assist` tool. Offer-only, never auto-sent.
|
|
29
|
+
|
|
30
|
+
### Trend pass (/newsjack + /luckiest-trends)
|
|
31
|
+
- no actionable signal (internal dev-workflow skill)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: luckiest-coder-requesting-code-review
|
|
3
|
+
description: Use when you have finished a task, implemented a major feature, fixed a complex bug, or are about to merge to main and want a fresh reviewer to catch issues before they cascade. Trigger phrases include "review this before I merge", "get a code review", "check my changes", "is this ready to merge". Dispatches a reviewer subagent with crafted context (a git SHA range), not your session history.
|
|
4
|
+
license: See ATTRIBUTION.md
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.1.0"
|
|
7
|
+
listing_id: luckiest-coder-requesting-code-review
|
|
8
|
+
author: luckiest
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Requesting Code Review
|
|
12
|
+
|
|
13
|
+
Dispatch a code reviewer subagent to catch issues before they cascade. The reviewer gets precisely crafted context for evaluation — never your session's history. This keeps the reviewer focused on the work product, not your thought process, and preserves your own context for continued work.
|
|
14
|
+
|
|
15
|
+
**Core principle:** Review early, review often.
|
|
16
|
+
|
|
17
|
+
## When to Request Review
|
|
18
|
+
|
|
19
|
+
**Mandatory:**
|
|
20
|
+
- After each task in subagent-driven development
|
|
21
|
+
- After completing major feature
|
|
22
|
+
- Before merge to main
|
|
23
|
+
|
|
24
|
+
**Optional but valuable:**
|
|
25
|
+
- When stuck (fresh perspective)
|
|
26
|
+
- Before refactoring (baseline check)
|
|
27
|
+
- After fixing complex bug
|
|
28
|
+
|
|
29
|
+
## How to Request
|
|
30
|
+
|
|
31
|
+
**1. Get git SHAs:**
|
|
32
|
+
```bash
|
|
33
|
+
BASE_SHA=$(git rev-parse HEAD~1) # or origin/main
|
|
34
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**2. Dispatch code reviewer subagent:**
|
|
38
|
+
|
|
39
|
+
Dispatch a `general-purpose` subagent, filling the template at [code-reviewer.md](code-reviewer.md)
|
|
40
|
+
|
|
41
|
+
**Placeholders:**
|
|
42
|
+
- `{DESCRIPTION}` - Brief summary of what you built
|
|
43
|
+
- `{PLAN_OR_REQUIREMENTS}` - What it should do
|
|
44
|
+
- `{BASE_SHA}` - Starting commit
|
|
45
|
+
- `{HEAD_SHA}` - Ending commit
|
|
46
|
+
|
|
47
|
+
**3. Act on feedback:**
|
|
48
|
+
- Fix Critical issues immediately
|
|
49
|
+
- Fix Important issues before proceeding
|
|
50
|
+
- Note Minor issues for later
|
|
51
|
+
- Push back if reviewer is wrong (with reasoning)
|
|
52
|
+
|
|
53
|
+
**Optional network offer:** If the reviewer surfaces a Critical or Important issue you cannot confidently resolve alone, you may offer: "Want me to request a tribe assist on this via the Luckiest MCP `request_assist` tool?" Only offer — never send without the user's go-ahead.
|
|
54
|
+
|
|
55
|
+
## Example
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
[Just completed Task 2: Add verification function]
|
|
59
|
+
|
|
60
|
+
You: Let me request code review before proceeding.
|
|
61
|
+
|
|
62
|
+
BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
|
|
63
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
64
|
+
|
|
65
|
+
[Dispatch code reviewer subagent]
|
|
66
|
+
DESCRIPTION: Added verifyIndex() and repairIndex() with 4 issue types
|
|
67
|
+
PLAN_OR_REQUIREMENTS: Task 2 from docs/plans/deployment-plan.md
|
|
68
|
+
BASE_SHA: a7981ec
|
|
69
|
+
HEAD_SHA: 3df7661
|
|
70
|
+
|
|
71
|
+
[Subagent returns]:
|
|
72
|
+
Strengths: Clean architecture, real tests
|
|
73
|
+
Issues:
|
|
74
|
+
Important: Missing progress indicators
|
|
75
|
+
Minor: Magic number (100) for reporting interval
|
|
76
|
+
Assessment: Ready to proceed
|
|
77
|
+
|
|
78
|
+
You: [Fix progress indicators]
|
|
79
|
+
[Continue to Task 3]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Integration with Workflows
|
|
83
|
+
|
|
84
|
+
**Subagent-Driven Development:**
|
|
85
|
+
- Review after EACH task
|
|
86
|
+
- Catch issues before they compound
|
|
87
|
+
- Fix before moving to next task
|
|
88
|
+
|
|
89
|
+
**Executing Plans:**
|
|
90
|
+
- Review after each task or at natural checkpoints
|
|
91
|
+
- Get feedback, apply, continue
|
|
92
|
+
|
|
93
|
+
**Ad-Hoc Development:**
|
|
94
|
+
- Review before merge
|
|
95
|
+
- Review when stuck
|
|
96
|
+
|
|
97
|
+
## Red Flags
|
|
98
|
+
|
|
99
|
+
**Never:**
|
|
100
|
+
- Skip review because "it's simple"
|
|
101
|
+
- Ignore Critical issues
|
|
102
|
+
- Proceed with unfixed Important issues
|
|
103
|
+
- Argue with valid technical feedback
|
|
104
|
+
|
|
105
|
+
**If reviewer wrong:**
|
|
106
|
+
- Push back with technical reasoning
|
|
107
|
+
- Show code/tests that prove it works
|
|
108
|
+
- Request clarification
|
|
109
|
+
|
|
110
|
+
See template at: [code-reviewer.md](code-reviewer.md)
|
|
111
|
+
|
|
112
|
+
## Staying current
|
|
113
|
+
|
|
114
|
+
On activation, call the Luckiest MCP `check_updates` tool with
|
|
115
|
+
`{ listingId: "luckiest-coder-requesting-code-review", installedSemver: "1.1.0" }`.
|
|
116
|
+
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
117
|
+
|
|
118
|
+
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-requesting-code-review", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Code Reviewer Prompt Template
|
|
2
|
+
|
|
3
|
+
Use this template when dispatching a code reviewer subagent.
|
|
4
|
+
|
|
5
|
+
**Purpose:** Review completed work against requirements and code quality standards before it cascades into more work.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Subagent (general-purpose):
|
|
9
|
+
description: "Review code changes"
|
|
10
|
+
prompt: |
|
|
11
|
+
You are a Senior Code Reviewer with expertise in software architecture,
|
|
12
|
+
design patterns, and best practices. Your job is to review completed work
|
|
13
|
+
against its plan or requirements and identify issues before they cascade.
|
|
14
|
+
|
|
15
|
+
## What Was Implemented
|
|
16
|
+
|
|
17
|
+
[DESCRIPTION]
|
|
18
|
+
|
|
19
|
+
## Requirements / Plan
|
|
20
|
+
|
|
21
|
+
[PLAN_OR_REQUIREMENTS]
|
|
22
|
+
|
|
23
|
+
## Git Range to Review
|
|
24
|
+
|
|
25
|
+
**Base:** [BASE_SHA]
|
|
26
|
+
**Head:** [HEAD_SHA]
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git diff --stat [BASE_SHA]..[HEAD_SHA]
|
|
30
|
+
git diff [BASE_SHA]..[HEAD_SHA]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Read-Only Review
|
|
34
|
+
|
|
35
|
+
Your review is read-only on this checkout. Do not mutate the working tree, the index, HEAD, or branch state in any way. Use tools like `git show`, `git diff`, and `git log` to inspect history. If you need a working copy of a different revision, check it out into a separate temporary directory (e.g. `git worktree add /tmp/review-[SHA] [SHA]`) — never move HEAD on this checkout.
|
|
36
|
+
|
|
37
|
+
## What to Check
|
|
38
|
+
|
|
39
|
+
**Plan alignment:**
|
|
40
|
+
- Does the implementation match the plan / requirements?
|
|
41
|
+
- Are deviations justified improvements, or problematic departures?
|
|
42
|
+
- Is all planned functionality present?
|
|
43
|
+
|
|
44
|
+
**Code quality:**
|
|
45
|
+
- Clean separation of concerns?
|
|
46
|
+
- Proper error handling?
|
|
47
|
+
- Type safety where applicable?
|
|
48
|
+
- DRY without premature abstraction?
|
|
49
|
+
- Edge cases handled?
|
|
50
|
+
|
|
51
|
+
**Architecture:**
|
|
52
|
+
- Sound design decisions?
|
|
53
|
+
- Reasonable scalability and performance?
|
|
54
|
+
- Security concerns?
|
|
55
|
+
- Integrates cleanly with surrounding code?
|
|
56
|
+
|
|
57
|
+
**Testing:**
|
|
58
|
+
- Tests verify real behavior, not mocks?
|
|
59
|
+
- Edge cases covered?
|
|
60
|
+
- Integration tests where they matter?
|
|
61
|
+
- All tests passing?
|
|
62
|
+
|
|
63
|
+
**Production readiness:**
|
|
64
|
+
- Migration strategy if schema changed?
|
|
65
|
+
- Backward compatibility considered?
|
|
66
|
+
- Documentation complete?
|
|
67
|
+
- No obvious bugs?
|
|
68
|
+
|
|
69
|
+
## Calibration
|
|
70
|
+
|
|
71
|
+
Categorize issues by actual severity. Not everything is Critical.
|
|
72
|
+
Acknowledge what was done well before listing issues — accurate praise
|
|
73
|
+
helps the implementer trust the rest of the feedback.
|
|
74
|
+
|
|
75
|
+
If you find significant deviations from the plan, flag them specifically
|
|
76
|
+
so the implementer can confirm whether the deviation was intentional.
|
|
77
|
+
If you find issues with the plan itself rather than the implementation,
|
|
78
|
+
say so.
|
|
79
|
+
|
|
80
|
+
## Output Format
|
|
81
|
+
|
|
82
|
+
### Strengths
|
|
83
|
+
[What's well done? Be specific.]
|
|
84
|
+
|
|
85
|
+
### Issues
|
|
86
|
+
|
|
87
|
+
#### Critical (Must Fix)
|
|
88
|
+
[Bugs, security issues, data loss risks, broken functionality]
|
|
89
|
+
|
|
90
|
+
#### Important (Should Fix)
|
|
91
|
+
[Architecture problems, missing features, poor error handling, test gaps]
|
|
92
|
+
|
|
93
|
+
#### Minor (Nice to Have)
|
|
94
|
+
[Code style, optimization opportunities, documentation polish]
|
|
95
|
+
|
|
96
|
+
For each issue:
|
|
97
|
+
- File:line reference
|
|
98
|
+
- What's wrong
|
|
99
|
+
- Why it matters
|
|
100
|
+
- How to fix (if not obvious)
|
|
101
|
+
|
|
102
|
+
### Recommendations
|
|
103
|
+
[Improvements for code quality, architecture, or process]
|
|
104
|
+
|
|
105
|
+
### Assessment
|
|
106
|
+
|
|
107
|
+
**Ready to merge?** [Yes | No | With fixes]
|
|
108
|
+
|
|
109
|
+
**Reasoning:** [1-2 sentence technical assessment]
|
|
110
|
+
|
|
111
|
+
## Critical Rules
|
|
112
|
+
|
|
113
|
+
**DO:**
|
|
114
|
+
- Categorize by actual severity
|
|
115
|
+
- Be specific (file:line, not vague)
|
|
116
|
+
- Explain WHY each issue matters
|
|
117
|
+
- Acknowledge strengths
|
|
118
|
+
- Give a clear verdict
|
|
119
|
+
|
|
120
|
+
**DON'T:**
|
|
121
|
+
- Say "looks good" without checking
|
|
122
|
+
- Mark nitpicks as Critical
|
|
123
|
+
- Give feedback on code you didn't actually read
|
|
124
|
+
- Be vague ("improve error handling")
|
|
125
|
+
- Avoid giving a clear verdict
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Placeholders:**
|
|
129
|
+
- `[DESCRIPTION]` — brief summary of what was built
|
|
130
|
+
- `[PLAN_OR_REQUIREMENTS]` — what it should do (plan file path, task text, or requirements)
|
|
131
|
+
- `[BASE_SHA]` — starting commit
|
|
132
|
+
- `[HEAD_SHA]` — ending commit
|
|
133
|
+
|
|
134
|
+
**Reviewer returns:** Strengths, Issues (Critical / Important / Minor), Recommendations, Assessment
|
|
135
|
+
|
|
136
|
+
## Example Output
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
### Strengths
|
|
140
|
+
- Clean database schema with proper migrations (db.ts:15-42)
|
|
141
|
+
- Comprehensive test coverage (18 tests, all edge cases)
|
|
142
|
+
- Good error handling with fallbacks (summarizer.ts:85-92)
|
|
143
|
+
|
|
144
|
+
### Issues
|
|
145
|
+
|
|
146
|
+
#### Important
|
|
147
|
+
1. **Missing help text in CLI wrapper**
|
|
148
|
+
- File: index-conversations:1-31
|
|
149
|
+
- Issue: No --help flag, users won't discover --concurrency
|
|
150
|
+
- Fix: Add --help case with usage examples
|
|
151
|
+
|
|
152
|
+
2. **Date validation missing**
|
|
153
|
+
- File: search.ts:25-27
|
|
154
|
+
- Issue: Invalid dates silently return no results
|
|
155
|
+
- Fix: Validate ISO format, throw error with example
|
|
156
|
+
|
|
157
|
+
#### Minor
|
|
158
|
+
1. **Progress indicators**
|
|
159
|
+
- File: indexer.ts:130
|
|
160
|
+
- Issue: No "X of Y" counter for long operations
|
|
161
|
+
- Impact: Users don't know how long to wait
|
|
162
|
+
|
|
163
|
+
### Recommendations
|
|
164
|
+
- Add progress reporting for user experience
|
|
165
|
+
- Consider config file for excluded projects (portability)
|
|
166
|
+
|
|
167
|
+
### Assessment
|
|
168
|
+
|
|
169
|
+
**Ready to merge: With fixes**
|
|
170
|
+
|
|
171
|
+
**Reasoning:** Core implementation is solid with good architecture and tests. Important issues (help text, date validation) are easily fixed and don't affect core functionality.
|
|
172
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
This skill is adapted from the "ship", "land-and-deploy", and "canary" skills in
|
|
4
|
+
gstack (https://github.com/garrytan/gstack) by Garry Tan, used under the MIT License.
|
|
5
|
+
|
|
6
|
+
MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026 Garry Tan
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Changelog — luckiest-coder-shipping
|
|
2
|
+
|
|
3
|
+
## 1.1.0 — 2026-07-06
|
|
4
|
+
Skill updater pass: analytics integration.
|
|
5
|
+
|
|
6
|
+
### Analytics (report_usage)
|
|
7
|
+
- Updated `report_usage` call to `skill_version: "1.1.0"` and `check_updates`
|
|
8
|
+
`installedSemver: "1.1.0"`. The skill now reports usage to the Luckiest
|
|
9
|
+
telemetry pipeline on every run, making it visible on the admin Skill Usage
|
|
10
|
+
page (/owner/skill-usage).
|
|
11
|
+
|
|
12
|
+
## 1.0.0 — 2026-07-03
|
|
13
|
+
Rebranded and consolidated from gstack's `ship` + `land-and-deploy` + `canary` skills
|
|
14
|
+
(MIT, Copyright (c) 2026 Garry Tan). Three source skills (~6,000 lines combined) distilled
|
|
15
|
+
into one SKILL.md (~130 lines) plus two references. Frontmatter `name`/`listing_id` set to
|
|
16
|
+
`luckiest-coder-shipping`; the Staying-current `check_updates` hook added.
|
|
17
|
+
|
|
18
|
+
### Security pass
|
|
19
|
+
- PASS — no red flags across the 3 source files (no prompt injection, no credential access,
|
|
20
|
+
no exfiltration, no obfuscation). `allowed-tools` kept to what a release flow needs.
|
|
21
|
+
|
|
22
|
+
### Best-practices pass
|
|
23
|
+
- Dropped ~800 lines of gstack-internal preamble per source file (telemetry, gbrain sync,
|
|
24
|
+
voice, plan-mode, skill-routing boilerplate) — not part of the release logic.
|
|
25
|
+
- Decoupled from gstack-proprietary binaries (`gstack-review-read`, `gstack-next-version`,
|
|
26
|
+
`bin/test-lane`, the `browse` daemon, `~/.gstack-dev`) so the skill is portable: plain
|
|
27
|
+
`git` + `gh` + generic test/deploy CLIs + host browser capability.
|
|
28
|
+
- Body under the ~500-line spec; deep detail (failure triage, test bootstrap, coverage
|
|
29
|
+
rubric + gate, canary monitoring) moved to `references/` with load-when guidance.
|
|
30
|
+
- Consolidated the three-skill handoff into one ordered SHIP → LAND → CANARY flow.
|
|
31
|
+
|
|
32
|
+
### Improve pass (/refract)
|
|
33
|
+
- Cross-references rewired to Luckiest siblings: pre-existing-failure fixes point at a
|
|
34
|
+
`luckiest-coder-debugging` mindset; stale-review handling points at
|
|
35
|
+
`luckiest-coder-requesting-code-review` (was gstack `/investigate` and `/review`).
|
|
36
|
+
- Positioned explicitly as the step after `luckiest-coder-finishing-a-branch`, closing the
|
|
37
|
+
dead-end the luckiest-coder family previously had after "branch finished".
|
|
38
|
+
- Canary made degrade-gracefully: falls back to `curl` status/body checks when no headless
|
|
39
|
+
browser is available, instead of hard-depending on a browser daemon.
|
|
40
|
+
|
|
41
|
+
### Network hook (share-with-tribe)
|
|
42
|
+
- After a successful production ship, offers to call the Luckiest MCP `share_artifact` tool
|
|
43
|
+
with version + one-line changelog + PR URL so the tribe leaderboard reflects the release.
|
|
44
|
+
Opt-in, asked once.
|
|
45
|
+
|
|
46
|
+
### Trend pass (/newsjack + /luckiest-trends)
|
|
47
|
+
- no actionable signal — internal release-engineering workflow; release mechanics (git/gh,
|
|
48
|
+
CI merge queues, platform deploy CLIs) are not news-driven, so no dated signal was applied.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Garry Tan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: luckiest-coder-shipping
|
|
3
|
+
description: >-
|
|
4
|
+
Release engineering for a finished feature branch — the step after
|
|
5
|
+
luckiest-coder-finishing-a-branch. Runs the full path to production: merge base,
|
|
6
|
+
test, coverage audit, version bump, changelog, commit, push, open PR, then merge,
|
|
7
|
+
wait for CI, deploy, and verify prod health. Use when the user says "ship it",
|
|
8
|
+
"ship this", "deploy", "push to main", "create a PR", "merge and deploy", "land it",
|
|
9
|
+
"get it to production", or says the code is ready to go out. Invoke this skill
|
|
10
|
+
instead of pushing or opening a PR by hand.
|
|
11
|
+
license: See ATTRIBUTION.md
|
|
12
|
+
allowed-tools:
|
|
13
|
+
- Bash
|
|
14
|
+
- Read
|
|
15
|
+
- Write
|
|
16
|
+
- Edit
|
|
17
|
+
- Grep
|
|
18
|
+
- Glob
|
|
19
|
+
- Agent
|
|
20
|
+
- AskUserQuestion
|
|
21
|
+
- WebSearch
|
|
22
|
+
metadata:
|
|
23
|
+
version: "1.1.0"
|
|
24
|
+
listing_id: luckiest-coder-shipping
|
|
25
|
+
author: luckiest
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Luckiest Coder — Shipping
|
|
29
|
+
|
|
30
|
+
Take a finished feature branch all the way to verified production. Three phases run
|
|
31
|
+
in order: **SHIP** (branch → PR), **LAND** (merge → deploy), **CANARY** (verify prod).
|
|
32
|
+
Stop after SHIP if the user only asked to open a PR; continue into LAND/CANARY when
|
|
33
|
+
they say "deploy", "land", or "ship to production".
|
|
34
|
+
|
|
35
|
+
## Staying current
|
|
36
|
+
|
|
37
|
+
On activation, call the Luckiest MCP `check_updates` tool with
|
|
38
|
+
`{ listingId: "luckiest-coder-shipping", installedSemver: "1.1.0" }`. If it returns
|
|
39
|
+
`upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
40
|
+
|
|
41
|
+
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-shipping", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
42
|
+
|
|
43
|
+
## Operating mode
|
|
44
|
+
|
|
45
|
+
Ship is **automated** — the user said ship, so ship. Do not ask for confirmation on
|
|
46
|
+
mechanical choices (uncommitted changes, changelog wording, commit messages, MICRO/PATCH
|
|
47
|
+
bump). **Do** stop for judgment calls: on the base branch, unresolvable merge conflicts,
|
|
48
|
+
in-branch test failures, coverage below the gate, a MINOR/MAJOR bump, or the one
|
|
49
|
+
irreversible gate — the merge itself (LAND phase).
|
|
50
|
+
|
|
51
|
+
Re-running is idempotent on *actions* (skip the bump if VERSION already moved, update the
|
|
52
|
+
PR body instead of creating a duplicate) but never on *verification* — tests, coverage,
|
|
53
|
+
and the readiness report run every time.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## PHASE 1 — SHIP (branch → PR)
|
|
58
|
+
|
|
59
|
+
1. **Pre-flight.** Confirm not on the base/default branch (abort if so: "Ship from a
|
|
60
|
+
feature branch"). `git status`, then `git diff <base>...HEAD --stat` and
|
|
61
|
+
`git log <base>..HEAD --oneline` to see what is shipping.
|
|
62
|
+
|
|
63
|
+
2. **Merge base first.** `git fetch origin <base> && git merge origin/<base> --no-edit`
|
|
64
|
+
so tests run on the merged state. Auto-resolve trivial conflicts (VERSION, CHANGELOG
|
|
65
|
+
ordering, lockfiles); **stop** on anything ambiguous.
|
|
66
|
+
|
|
67
|
+
3. **Tests.** Detect the test command (CLAUDE.md `## Testing` section, else auto-detect by
|
|
68
|
+
runtime). Run the full suite on the merged code. On failure, apply the ownership triage
|
|
69
|
+
in [references/test-and-coverage.md](references/test-and-coverage.md): in-branch failures
|
|
70
|
+
**stop** the ship; pre-existing failures are triaged (fix / TODO / skip), not auto-blocking.
|
|
71
|
+
If no test framework exists, offer to bootstrap one — see the same reference.
|
|
72
|
+
|
|
73
|
+
4. **Coverage audit.** Dispatch as a subagent (fresh context) using the Agent tool. It
|
|
74
|
+
traces every changed code path and user flow, diagrams gaps, and generates tests for
|
|
75
|
+
uncovered paths. Regression tests for broken existing behavior are written immediately,
|
|
76
|
+
no prompt. Full rubric and the coverage gate (default minimum 60% / target 80%) in
|
|
77
|
+
[references/test-and-coverage.md](references/test-and-coverage.md).
|
|
78
|
+
|
|
79
|
+
5. **Version + changelog.** Auto-decide the bump from the diff: MICRO/PATCH ships silently,
|
|
80
|
+
MINOR/MAJOR **asks**. Update the VERSION file (and `package.json`/manifest if present),
|
|
81
|
+
prepend a CHANGELOG entry generated from the diff.
|
|
82
|
+
|
|
83
|
+
6. **Commit + push.** Commit any remaining changes in coherent, bisectable chunks. Push the
|
|
84
|
+
branch. End every commit body with the project's required co-author trailer if one is set.
|
|
85
|
+
|
|
86
|
+
7. **Open / update PR.** Create the PR (or update its body if one exists) with `gh pr create`.
|
|
87
|
+
Body: what changed and why, the coverage summary (`Tests: before → after`), and test results.
|
|
88
|
+
Output the PR URL. **If the user only asked to ship/PR, stop here.**
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## PHASE 2 — LAND (merge → deploy)
|
|
93
|
+
|
|
94
|
+
Only enter when the user wants production. This phase contains the **one irreversible step**.
|
|
95
|
+
|
|
96
|
+
1. **Pre-merge checks.** `gh pr checks` — failing required checks **stop** the land; pending
|
|
97
|
+
checks wait (`gh pr checks --watch --fail-fast`, 15-min cap). `gh pr view --json mergeable`
|
|
98
|
+
— `CONFLICTING` **stops**.
|
|
99
|
+
|
|
100
|
+
2. **Readiness gate.** Gather evidence and show a readiness report before the merge: review
|
|
101
|
+
freshness (stale if the diff moved significantly since last review — offer a quick inline
|
|
102
|
+
review or point to `luckiest-coder-requesting-code-review`), test results (failing free
|
|
103
|
+
tests are a hard blocker), and doc/PR-body accuracy (warnings). Present it with
|
|
104
|
+
AskUserQuestion — **A) merge / B) hold and fix / C) merge anyway**. This is the last gate;
|
|
105
|
+
the merge cannot be undone without a revert.
|
|
106
|
+
|
|
107
|
+
3. **Merge.** Try `gh pr merge --auto --delete-branch` first (respects merge queues); fall
|
|
108
|
+
back to `gh pr merge --squash --delete-branch`. **Never call `gh pr merge` twice after a
|
|
109
|
+
non-zero exit** — instead query authoritative state with
|
|
110
|
+
`gh pr view --json state,mergeCommit,mergedAt`: `MERGED` → succeeded (handles the
|
|
111
|
+
concurrent-merge case), `OPEN` + auto-merge set → merge queue (poll up to 30 min),
|
|
112
|
+
`OPEN` + no auto-merge → genuine failure, stop.
|
|
113
|
+
|
|
114
|
+
4. **Deploy.** Detect how this project ships: a CI deploy workflow triggered by the merge
|
|
115
|
+
(`gh run list --branch <base>`), or a platform CLI (Vercel, Fly, Heroku, etc. — detect
|
|
116
|
+
from config files and CLAUDE.md). Watch the deploy to completion. Report the release
|
|
117
|
+
version and deploy duration.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## PHASE 3 — CANARY (verify prod)
|
|
122
|
+
|
|
123
|
+
After deploy, confirm production is actually healthy — do not declare done on a green
|
|
124
|
+
deploy alone.
|
|
125
|
+
|
|
126
|
+
1. Hit the production URL(s) and confirm 2xx. Check the primary user-facing routes, not just
|
|
127
|
+
the homepage.
|
|
128
|
+
2. Watch for console errors, failed requests, and obvious visual breakage on the key pages.
|
|
129
|
+
Compare against the pre-deploy baseline where one exists.
|
|
130
|
+
3. Emit a short health report: URLs checked, status codes, any anomalies. If a regression
|
|
131
|
+
appears, surface it immediately with the failing route and error — and recommend a revert
|
|
132
|
+
or rollback rather than trying to hot-patch production.
|
|
133
|
+
|
|
134
|
+
Deep monitoring detail (baseline capture, page discovery, monitoring loop) is in
|
|
135
|
+
[references/canary.md](references/canary.md) — load it only when the user wants continuous
|
|
136
|
+
post-deploy watching rather than a one-shot check.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## After a clean ship
|
|
141
|
+
|
|
142
|
+
Report the outcome plainly: PR URL, released version, deploy status, canary result. If any
|
|
143
|
+
step was skipped or a failure was accepted, say so — never imply a gate passed that did not.
|
|
144
|
+
|
|
145
|
+
**Network hook (share-with-tribe):** After a successful production ship, offer to share the
|
|
146
|
+
release with the user's Luckiest tribe — call the Luckiest MCP `share_artifact` tool with the
|
|
147
|
+
version, one-line changelog summary, and PR URL so the tribe leaderboard reflects the ship.
|
|
148
|
+
Offer once; never share without the user saying yes.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Canary — continuous post-deploy monitoring (CANARY phase)
|
|
2
|
+
|
|
3
|
+
Load this only when the user wants ongoing production watching, not a one-shot health check.
|
|
4
|
+
The main SKILL.md's Phase 3 covers the quick check; this covers baseline-based monitoring.
|
|
5
|
+
|
|
6
|
+
## Baseline capture (`--baseline`)
|
|
7
|
+
|
|
8
|
+
Before a deploy, capture a reference for the routes that matter: screenshot each key page and
|
|
9
|
+
record its console state and network health. Store baselines keyed by route so a later run can
|
|
10
|
+
diff against them. Refresh the baseline after a known-good deploy so drift is measured against
|
|
11
|
+
current-good, not ancient-good.
|
|
12
|
+
|
|
13
|
+
## Page discovery
|
|
14
|
+
|
|
15
|
+
Discover the routes to watch from the app itself: the sitemap, the router config, or the nav.
|
|
16
|
+
Prioritize the primary user-facing flows (auth, checkout, the core product surface) over
|
|
17
|
+
marketing pages. Cap the set so monitoring stays fast.
|
|
18
|
+
|
|
19
|
+
## Monitoring loop
|
|
20
|
+
|
|
21
|
+
For each watched page after deploy:
|
|
22
|
+
1. Load it and confirm a 2xx.
|
|
23
|
+
2. Capture console errors and failed network requests.
|
|
24
|
+
3. Screenshot and diff against the baseline for obvious visual regression.
|
|
25
|
+
4. Flag anomalies: new console errors, new 4xx/5xx, large visual delta, or a load-time
|
|
26
|
+
regression beyond a sane threshold.
|
|
27
|
+
|
|
28
|
+
Run the loop periodically for the requested window (e.g. the first N minutes after deploy),
|
|
29
|
+
not just once, so a delayed failure (cache warm, background job, CDN propagation) is caught.
|
|
30
|
+
|
|
31
|
+
## Health report
|
|
32
|
+
|
|
33
|
+
Emit: pages checked, status codes, console/network anomalies per page, visual-diff verdicts,
|
|
34
|
+
and an overall PASS / ATTENTION verdict. On any regression, name the failing route and the
|
|
35
|
+
specific error, and recommend rollback over an in-place hotfix — a bad deploy is reverted,
|
|
36
|
+
not debugged live.
|
|
37
|
+
|
|
38
|
+
## Portability note
|
|
39
|
+
|
|
40
|
+
The gstack original drove this through its proprietary `browse` daemon. This edition is
|
|
41
|
+
tool-agnostic: use whatever headless-browser or HTTP-check capability the host provides
|
|
42
|
+
(a browser MCP, a `/browse`-style skill, or plain `curl` for status-only checks). Degrade
|
|
43
|
+
gracefully — if no browser is available, do status-code and response-body checks with `curl`
|
|
44
|
+
and say visual monitoring was skipped.
|