nemonix-cli 1.0.0
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/LICENSE +21 -0
- package/README.md +186 -0
- package/dist/cli.js +6870 -0
- package/package.json +48 -0
- package/src/config/claude-code-config/.claude/commands/setup-tmux.md +0 -0
- package/src/config/claude-code-config/CHANGELOG.md +261 -0
- package/src/config/claude-code-config/README.md +1 -0
- package/src/config/claude-code-config/agents/action.md +36 -0
- package/src/config/claude-code-config/agents/clean-code-runner.md +61 -0
- package/src/config/claude-code-config/agents/code-reviewer.md +172 -0
- package/src/config/claude-code-config/agents/code-simplifier.md +49 -0
- package/src/config/claude-code-config/agents/explore-codebase.md +65 -0
- package/src/config/claude-code-config/agents/explore-docs.md +65 -0
- package/src/config/claude-code-config/agents/explore-fast.md +22 -0
- package/src/config/claude-code-config/agents/implementer.md +181 -0
- package/src/config/claude-code-config/agents/snipper.md +36 -0
- package/src/config/claude-code-config/agents/websearch.md +42 -0
- package/src/config/claude-code-config/commands/prompts/create-vitejs-app.md +272 -0
- package/src/config/claude-code-config/commands/prompts/nextjs-add-prisma-db.md +136 -0
- package/src/config/claude-code-config/commands/prompts/nextjs-setup-better-auth.md +173 -0
- package/src/config/claude-code-config/commands/prompts/nextjs-setup-project.md +200 -0
- package/src/config/claude-code-config/commands/prompts/prompt.md +55 -0
- package/src/config/claude-code-config/commands/prompts/saas-challenge-idea.md +135 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-architecture.md +242 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-headline.md +132 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-landing-copywritting.md +267 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-legals-docs.md +176 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-logos.md +240 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-prd.md +195 -0
- package/src/config/claude-code-config/commands/prompts/saas-create-tasks.md +240 -0
- package/src/config/claude-code-config/commands/prompts/saas-define-pricing.md +293 -0
- package/src/config/claude-code-config/commands/prompts/saas-find-domain-name.md +190 -0
- package/src/config/claude-code-config/commands/prompts/saas-implement-landing-page.md +257 -0
- package/src/config/claude-code-config/commands/prompts/setup-tmux.md +160 -0
- package/src/config/claude-code-config/commands/prompts/tools.md +148 -0
- package/src/config/claude-code-config/hooks/hook-post-file.ts +162 -0
- package/src/config/claude-code-config/scripts/.claude/skills/fix-on-my-computer/SKILL.md +81 -0
- package/src/config/claude-code-config/scripts/CLAUDE.md +50 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/CLAUDE.md +59 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/__tests__/shared.test.ts +185 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/__tests__/title-generation.test.ts +44 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/fixtures/sample-transcript.jsonl +3 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/fixtures/transcript-short-message.jsonl +2 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/fixtures/transcript-with-title.jsonl +3 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/src/index.ts +113 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/src/rename-all.ts +148 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/src/shared.ts +157 -0
- package/src/config/claude-code-config/scripts/auto-rename-session/src/worker.ts +58 -0
- package/src/config/claude-code-config/scripts/biome.json +37 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/CLAUDE.md +84 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/__tests__/claude.test.ts +19 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/__tests__/paths.test.ts +68 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/claude.ts +56 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/cli.ts +46 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/helper/credentials.ts +76 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/helper/index.ts +9 -0
- package/src/config/claude-code-config/scripts/claude-code-ai/helper/paths.ts +51 -0
- package/src/config/claude-code-config/scripts/command-validator/CLAUDE.md +112 -0
- package/src/config/claude-code-config/scripts/command-validator/README.md +147 -0
- package/src/config/claude-code-config/scripts/command-validator/src/__tests__/validator.test.ts +99 -0
- package/src/config/claude-code-config/scripts/command-validator/src/cli.ts +121 -0
- package/src/config/claude-code-config/scripts/command-validator/src/lib/security-rules.ts +174 -0
- package/src/config/claude-code-config/scripts/command-validator/src/lib/types.ts +34 -0
- package/src/config/claude-code-config/scripts/command-validator/src/lib/validator.ts +90 -0
- package/src/config/claude-code-config/scripts/package.json +43 -0
- package/src/config/claude-code-config/scripts/statusline/CLAUDE.md +205 -0
- package/src/config/claude-code-config/scripts/statusline/README.md +193 -0
- package/src/config/claude-code-config/scripts/statusline/__tests__/context.test.ts +229 -0
- package/src/config/claude-code-config/scripts/statusline/__tests__/formatters.test.ts +108 -0
- package/src/config/claude-code-config/scripts/statusline/__tests__/statusline.test.ts +309 -0
- package/src/config/claude-code-config/scripts/statusline/data/.gitkeep +0 -0
- package/src/config/claude-code-config/scripts/statusline/defaults.json +82 -0
- package/src/config/claude-code-config/scripts/statusline/docs/ARCHITECTURE.md +166 -0
- package/src/config/claude-code-config/scripts/statusline/fixtures/mock-transcript.jsonl +4 -0
- package/src/config/claude-code-config/scripts/statusline/fixtures/test-input.json +35 -0
- package/src/config/claude-code-config/scripts/statusline/src/analyze-daily-usage.ts +151 -0
- package/src/config/claude-code-config/scripts/statusline/src/commands/interactive-config.ts +515 -0
- package/src/config/claude-code-config/scripts/statusline/src/debug-payloads.ts +195 -0
- package/src/config/claude-code-config/scripts/statusline/src/index.ts +224 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/config-types.ts +110 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/config.ts +21 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/context.ts +103 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/limits/commands/weekly-analysis.ts +108 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/limits/index.ts +111 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/limits/types.ts +15 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/migrate-to-sqlite.ts +136 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/spend-day.ts +79 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/spend-month.ts +66 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/commands/spend-project.ts +85 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/database.ts +395 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/index.ts +178 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/payload-logger.ts +161 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/features/spend/types.ts +37 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/formatters.ts +426 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/git.ts +100 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/menu-factories.ts +224 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/presets.ts +177 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/render-pure.ts +516 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/types.ts +36 -0
- package/src/config/claude-code-config/scripts/statusline/src/lib/utils.ts +15 -0
- package/src/config/claude-code-config/scripts/statusline/src/stats.ts +119 -0
- package/src/config/claude-code-config/scripts/statusline/src/tests/spend-v2.test.ts +377 -0
- package/src/config/claude-code-config/scripts/statusline/src/tools/fixed-cost-calc.ts +317 -0
- package/src/config/claude-code-config/scripts/statusline/statusline.config.free.json +79 -0
- package/src/config/claude-code-config/scripts/statusline/statusline.config.json +100 -0
- package/src/config/claude-code-config/scripts/statusline/test-with-fixtures.ts +37 -0
- package/src/config/claude-code-config/scripts/statusline/test.ts +20 -0
- package/src/config/claude-code-config/scripts/statusline/tsconfig.json +27 -0
- package/src/config/claude-code-config/scripts/tsconfig.json +27 -0
- package/src/config/claude-code-config/settings.json +92 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/SKILL.md +176 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/references/architecture-template.md +436 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/references/challenge-framework.md +289 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/references/discovery-framework.md +338 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/references/prd-template.md +452 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/references/task-template.md +263 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/references/tools.md +132 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/scripts/rename-project.sh +42 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/scripts/setup.sh +104 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-00-init.md +174 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-01-discovery.md +342 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-02-brainstorm.md +230 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-03-validate.md +372 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-04-prd.md +364 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-05-architecture.md +904 -0
- package/src/config/claude-code-config/skills/aibuilder-create-saas/steps/step-06-tasks.md +446 -0
- package/src/config/claude-code-config/skills/explore/SKILL.md +119 -0
- package/src/config/claude-code-config/skills/frontend-design/LICENSE.txt +177 -0
- package/src/config/claude-code-config/skills/frontend-design/SKILL.md +42 -0
- package/src/config/claude-code-config/skills/git-commit/SKILL.md +42 -0
- package/src/config/claude-code-config/skills/git-create-pr/SKILL.md +53 -0
- package/src/config/claude-code-config/skills/git-fix-pr-comments/SKILL.md +51 -0
- package/src/config/claude-code-config/skills/git-merge/SKILL.md +68 -0
- package/src/config/claude-code-config/skills/marketing-copywriting/SKILL.md +72 -0
- package/src/config/claude-code-config/skills/meta-claude-memory/SKILL.md +694 -0
- package/src/config/claude-code-config/skills/meta-claude-memory/references/comprehensive-example.md +175 -0
- package/src/config/claude-code-config/skills/meta-claude-memory/references/project-patterns.md +334 -0
- package/src/config/claude-code-config/skills/meta-claude-memory/references/prompting-techniques.md +411 -0
- package/src/config/claude-code-config/skills/meta-claude-memory/references/rules-directory-guide.md +298 -0
- package/src/config/claude-code-config/skills/meta-claude-memory/references/section-templates.md +347 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/SKILL.md +357 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/references/command-vs-prompt.md +287 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/references/examples.md +689 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/references/hook-types.md +495 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/references/input-output-schemas.md +503 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/references/matchers.md +517 -0
- package/src/config/claude-code-config/skills/meta-hooks-creator/references/troubleshooting.md +653 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/SKILL.md +285 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/anthropic-best-practices.md +126 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/anti-patterns.md +57 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/clarity-principles.md +54 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/context-management.md +389 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/few-shot-patterns.md +47 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/openai-best-practices.md +50 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/prompt-templates.md +110 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/reasoning-techniques.md +52 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/system-prompt-patterns.md +48 -0
- package/src/config/claude-code-config/skills/meta-prompt-creator/references/xml-structure.md +36 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/LICENSE.txt +202 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/SKILL.md +421 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/package.json +5 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/output-patterns.md +82 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/progressive-disclosure-patterns.md +374 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/prompting-integration.md +363 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/real-world-examples.md +513 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/script-patterns.md +385 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/workflows.md +28 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/references/xml-tag-guide.md +606 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/scripts/init-skill.ts +214 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/scripts/package-skill.ts +146 -0
- package/src/config/claude-code-config/skills/meta-skill-creator/scripts/validate.ts +138 -0
- package/src/config/claude-code-config/skills/meta-skill-workflow-creator/SKILL.md +390 -0
- package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/ask-patterns.md +225 -0
- package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/prompt-engineering.md +377 -0
- package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/state-management.md +275 -0
- package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/step-template.md +334 -0
- package/src/config/claude-code-config/skills/meta-skill-workflow-creator/references/workflow-patterns.md +300 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/SKILL.md +451 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/context-management.md +567 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/debugging-agents.md +714 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/error-handling-and-recovery.md +502 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/evaluation-and-testing.md +374 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/orchestration-patterns.md +591 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/subagents.md +599 -0
- package/src/config/claude-code-config/skills/meta-subagent-creator/references/writing-subagent-prompts.md +513 -0
- package/src/config/claude-code-config/skills/ralph-loop/SKILL.md +117 -0
- package/src/config/claude-code-config/skills/ralph-loop/scripts/setup.sh +278 -0
- package/src/config/claude-code-config/skills/ralph-loop/steps/step-00-init.md +215 -0
- package/src/config/claude-code-config/skills/ralph-loop/steps/step-01-interactive-prd.md +366 -0
- package/src/config/claude-code-config/skills/ralph-loop/steps/step-02-create-stories.md +273 -0
- package/src/config/claude-code-config/skills/ralph-loop/steps/step-03-finish.md +245 -0
- package/src/config/claude-code-config/skills/ralph-tasks/SKILL.md +88 -0
- package/src/config/claude-code-config/skills/ralph-tasks/scripts/add-task.sh +36 -0
- package/src/config/claude-code-config/skills/ralph-tasks/scripts/list-tasks.sh +66 -0
- package/src/config/claude-code-config/skills/ralph-tasks/scripts/remove-task.sh +47 -0
- package/src/config/claude-code-config/skills/ralph-tasks/scripts/setup.sh +201 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-add-search.md +131 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-add.md +46 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-init.md +123 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-list.md +58 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-remove.md +48 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-setup.md +46 -0
- package/src/config/claude-code-config/skills/ralph-tasks/steps/action-wake-up.md +62 -0
- package/src/config/claude-code-config/skills/utils-fix-errors/SKILL.md +61 -0
- package/src/config/claude-code-config/skills/utils-fix-grammar/SKILL.md +59 -0
- package/src/config/claude-code-config/skills/utils-oneshot/SKILL.md +56 -0
- package/src/config/claude-code-config/skills/utils-refactor/SKILL.md +89 -0
- package/src/config/claude-code-config/skills/utils-save-docs/SKILL.md +74 -0
- package/src/config/claude-code-config/skills/utils-ultrathink/SKILL.md +42 -0
- package/src/config/claude-code-config/skills/workflow-apex/SKILL.md +116 -0
- package/src/config/claude-code-config/skills/workflow-apex/scripts/setup-templates.sh +144 -0
- package/src/config/claude-code-config/skills/workflow-apex/scripts/update-progress.sh +80 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-00-init.md +273 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-branch.md +126 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-economy.md +244 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-interactive.md +165 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-00b-save.md +123 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-01-analyze.md +361 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-02-plan.md +422 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-02b-tasks.md +301 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-03-execute-teams.md +297 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-03-execute.md +239 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-04-validate.md +264 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-05-examine.md +294 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-06-resolve.md +237 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-07-tests.md +250 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-08-run-tests.md +308 -0
- package/src/config/claude-code-config/skills/workflow-apex/steps/step-09-finish.md +193 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/00-context.md +53 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/01-analyze.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/02-plan.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/03-execute.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/04-validate.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/05-examine.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/06-resolve.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/07-tests.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/08-run-tests.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/09-finish.md +10 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/README.md +195 -0
- package/src/config/claude-code-config/skills/workflow-apex/templates/step-complete.md +7 -0
- package/src/config/claude-code-config/skills/workflow-brainstorm/SKILL.md +127 -0
- package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-01-explore.md +230 -0
- package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-02-challenge.md +238 -0
- package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-03-synthesize.md +337 -0
- package/src/config/claude-code-config/skills/workflow-brainstorm/steps/step-04-action.md +285 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/SKILL.md +150 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/references/cli-commands.md +122 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/references/github-cli.md +243 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/references/troubleshooting.md +362 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/references/vercel-cli.md +192 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-00-init.md +157 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-01-watch-ci.md +192 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-02-analyze-errors.md +263 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-03-fix-locally.md +312 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-04-commit-push.md +206 -0
- package/src/config/claude-code-config/skills/workflow-ci-fixer/steps/step-05-cleanup.md +196 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/SKILL.md +129 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/references/general-clean-code.md +347 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/references/nextjs-clean-code.md +458 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/references/react-clean-code.md +406 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/references/tanstack-query-best-practices.md +516 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/references/zustand-best-practices.md +491 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/steps/step-01-scan.md +137 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/steps/step-02-apply.md +152 -0
- package/src/config/claude-code-config/skills/workflow-clean-code/steps/step-03-verify.md +143 -0
- package/src/config/claude-code-config/skills/workflow-debug/SKILL.md +126 -0
- package/src/config/claude-code-config/skills/workflow-debug/references/log-technique.md +285 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-00-init.md +94 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-01-analyze.md +180 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-01b-log-instrumentation.md +271 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-02-find-solutions.md +141 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-03-propose.md +142 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-04-fix.md +176 -0
- package/src/config/claude-code-config/skills/workflow-debug/steps/step-05-verify.md +279 -0
- package/src/config/claude-code-config/skills/workflow-review-code/SKILL.md +219 -0
- package/src/config/claude-code-config/skills/workflow-review-code/references/clean-code-principles.md +140 -0
- package/src/config/claude-code-config/skills/workflow-review-code/references/code-quality-metrics.md +174 -0
- package/src/config/claude-code-config/skills/workflow-review-code/references/feedback-patterns.md +149 -0
- package/src/config/claude-code-config/skills/workflow-review-code/references/security-checklist.md +127 -0
- package/src/config/claude-code-config/song/finish.mp3 +0 -0
- package/src/config/claude-code-config/song/need-human.mp3 +0 -0
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
# Architecture Template & Guidelines
|
|
2
|
+
|
|
3
|
+
Reference for designing technical architecture.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Architecture Philosophy
|
|
8
|
+
|
|
9
|
+
**Good architecture is:**
|
|
10
|
+
- Simple (minimum complexity for requirements)
|
|
11
|
+
- Documented (decisions and rationale)
|
|
12
|
+
- Cost-aware (solo dev budget reality)
|
|
13
|
+
- Practical (uses proven patterns)
|
|
14
|
+
|
|
15
|
+
**Over-engineering signs:**
|
|
16
|
+
- Tools you don't need yet
|
|
17
|
+
- "Future-proofing" for unknown requirements
|
|
18
|
+
- Complex patterns for simple problems
|
|
19
|
+
- More than 2 weeks to MVP
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Architecture Document Structure
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
# Technical Architecture: {Product Name}
|
|
27
|
+
|
|
28
|
+
## Overview
|
|
29
|
+
|
|
30
|
+
**Stack Summary:**
|
|
31
|
+
- Framework: Next.js 15 with App Router
|
|
32
|
+
- Database: {choice} + Prisma
|
|
33
|
+
- Auth: Better Auth with {method}
|
|
34
|
+
- Deployment: Vercel
|
|
35
|
+
|
|
36
|
+
## Frontend Architecture
|
|
37
|
+
|
|
38
|
+
### Core Stack
|
|
39
|
+
| Tool | Purpose |
|
|
40
|
+
|------|---------|
|
|
41
|
+
| Next.js 15 | Framework |
|
|
42
|
+
| TypeScript | Type safety |
|
|
43
|
+
| Tailwind CSS | Styling |
|
|
44
|
+
| shadcn/ui | Components |
|
|
45
|
+
|
|
46
|
+
### State Management
|
|
47
|
+
| Type | Solution |
|
|
48
|
+
|------|----------|
|
|
49
|
+
| Server state | TanStack Query |
|
|
50
|
+
| URL state | nuqs |
|
|
51
|
+
| Form state | React Hook Form + Zod |
|
|
52
|
+
| Client state | Zustand (if needed) |
|
|
53
|
+
|
|
54
|
+
### Data Fetching
|
|
55
|
+
- Default: Server Components
|
|
56
|
+
- Dynamic: TanStack Query
|
|
57
|
+
- Mutations: Server Actions
|
|
58
|
+
|
|
59
|
+
## Backend Architecture
|
|
60
|
+
|
|
61
|
+
### API Layer
|
|
62
|
+
- Server Actions via next-safe-action
|
|
63
|
+
- Validation with Zod v4
|
|
64
|
+
- Rate limiting: {approach}
|
|
65
|
+
|
|
66
|
+
### Database
|
|
67
|
+
- ORM: Prisma
|
|
68
|
+
- Database: {Neon/Supabase}
|
|
69
|
+
- Migrations: Prisma Migrate
|
|
70
|
+
|
|
71
|
+
### Schema Overview
|
|
72
|
+
```prisma
|
|
73
|
+
model User {
|
|
74
|
+
id String @id @default(cuid())
|
|
75
|
+
email String @unique
|
|
76
|
+
name String?
|
|
77
|
+
createdAt DateTime @default(now())
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Feature-specific models...
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Infrastructure
|
|
84
|
+
|
|
85
|
+
### Deployment
|
|
86
|
+
- Platform: Vercel
|
|
87
|
+
- Environments: dev, preview, production
|
|
88
|
+
|
|
89
|
+
### External Services
|
|
90
|
+
| Service | Purpose | When to add |
|
|
91
|
+
|---------|---------|-------------|
|
|
92
|
+
| Resend | Email | When sending emails |
|
|
93
|
+
| Stripe | Payments | When monetizing |
|
|
94
|
+
|
|
95
|
+
## Folder Structure
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
/
|
|
99
|
+
├── app/
|
|
100
|
+
│ ├── (auth)/
|
|
101
|
+
│ ├── (dashboard)/
|
|
102
|
+
│ └── api/
|
|
103
|
+
├── src/
|
|
104
|
+
│ ├── components/
|
|
105
|
+
│ ├── lib/
|
|
106
|
+
│ ├── actions/
|
|
107
|
+
│ └── hooks/
|
|
108
|
+
└── prisma/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Feature Implementation Map
|
|
112
|
+
|
|
113
|
+
| PRD Feature | How to Build |
|
|
114
|
+
|-------------|--------------|
|
|
115
|
+
| {Feature 1} | {Implementation approach} |
|
|
116
|
+
| {Feature 2} | {Implementation approach} |
|
|
117
|
+
|
|
118
|
+
## Architecture Decisions
|
|
119
|
+
|
|
120
|
+
### ADR-001: {Decision Title}
|
|
121
|
+
- **Context**: {Why needed}
|
|
122
|
+
- **Decision**: {What we chose}
|
|
123
|
+
- **Rationale**: {Why this choice}
|
|
124
|
+
- **Trade-offs**: {What we give up}
|
|
125
|
+
|
|
126
|
+
## Cost Estimation
|
|
127
|
+
|
|
128
|
+
| Service | Monthly Cost |
|
|
129
|
+
|---------|-------------|
|
|
130
|
+
| Vercel | $0-20 |
|
|
131
|
+
| Database | $0-19 |
|
|
132
|
+
| Email | $0 |
|
|
133
|
+
| **Total** | ~$0-40 |
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Common Patterns
|
|
139
|
+
|
|
140
|
+
### Authentication Pattern
|
|
141
|
+
```
|
|
142
|
+
User → Login Page → Better Auth → Session Cookie → Protected Routes
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Data Mutation Pattern
|
|
146
|
+
```
|
|
147
|
+
Form Submit → Server Action → Zod Validation → Prisma → Revalidate → UI Update
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### API Route Pattern
|
|
151
|
+
```
|
|
152
|
+
Request → Route Handler → Zod Validation → Business Logic → Response
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Folder Structure Explained
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
app/
|
|
161
|
+
├── (auth)/ # Public auth pages
|
|
162
|
+
│ ├── login/
|
|
163
|
+
│ └── signup/
|
|
164
|
+
├── (dashboard)/ # Protected pages (layout with auth check)
|
|
165
|
+
│ ├── dashboard/
|
|
166
|
+
│ ├── settings/
|
|
167
|
+
│ └── [feature]/
|
|
168
|
+
├── (marketing)/ # Public marketing pages
|
|
169
|
+
│ └── page.tsx # Landing page
|
|
170
|
+
└── api/ # API routes (if needed)
|
|
171
|
+
└── webhooks/
|
|
172
|
+
|
|
173
|
+
src/
|
|
174
|
+
├── components/
|
|
175
|
+
│ ├── ui/ # shadcn components
|
|
176
|
+
│ ├── forms/ # Form components
|
|
177
|
+
│ └── [feature]/ # Feature-specific components
|
|
178
|
+
├── lib/
|
|
179
|
+
│ ├── auth.ts # Auth configuration
|
|
180
|
+
│ ├── prisma.ts # Prisma client
|
|
181
|
+
│ └── utils.ts # Utility functions
|
|
182
|
+
├── actions/ # Server actions
|
|
183
|
+
│ ├── auth.ts
|
|
184
|
+
│ └── [feature].ts
|
|
185
|
+
└── hooks/ # Custom React hooks
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Decision Checklist
|
|
191
|
+
|
|
192
|
+
Before adding any tool, ask:
|
|
193
|
+
|
|
194
|
+
1. **Does the PRD require this?**
|
|
195
|
+
- If no, don't add it
|
|
196
|
+
|
|
197
|
+
2. **What's the simplest solution?**
|
|
198
|
+
- Built-in > Library > Service
|
|
199
|
+
|
|
200
|
+
3. **What's the cost?**
|
|
201
|
+
- Free tier limits?
|
|
202
|
+
- Scaling costs?
|
|
203
|
+
|
|
204
|
+
4. **What's the trade-off?**
|
|
205
|
+
- Complexity added?
|
|
206
|
+
- Vendor lock-in?
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Plans & Limits Architecture (Better-Auth)
|
|
211
|
+
|
|
212
|
+
**🚨 CRITICAL: Keep it simple - NO extra abstraction layers!**
|
|
213
|
+
|
|
214
|
+
### Data Model
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
Organization → Resources (projects, files, etc.)
|
|
218
|
+
Organization → Subscription → Plan → Limits
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**❌ NEVER add:**
|
|
222
|
+
- Workspace level
|
|
223
|
+
- Team level (separate from Organization)
|
|
224
|
+
- Project-level plans
|
|
225
|
+
- Any other abstraction layer
|
|
226
|
+
|
|
227
|
+
### Implementation Pattern
|
|
228
|
+
|
|
229
|
+
**File: `src/lib/auth/stripe/auth-plans.ts`**
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
// 1. Define default limits
|
|
233
|
+
const DEFAULT_LIMIT = {
|
|
234
|
+
projects: 5,
|
|
235
|
+
storage: 10, // in GB
|
|
236
|
+
members: 3,
|
|
237
|
+
aiCredits: 20, // $ worth
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
export type PlanLimit = typeof DEFAULT_LIMIT;
|
|
241
|
+
export type OverrideLimits = Partial<PlanLimit>;
|
|
242
|
+
|
|
243
|
+
// 2. Define plans with Better-Auth structure
|
|
244
|
+
export type AppAuthPlan = {
|
|
245
|
+
priceId?: string;
|
|
246
|
+
annualDiscountPriceId?: string;
|
|
247
|
+
name: string;
|
|
248
|
+
limits: PlanLimit;
|
|
249
|
+
description: string;
|
|
250
|
+
isPopular?: boolean;
|
|
251
|
+
price: number;
|
|
252
|
+
yearlyPrice?: number;
|
|
253
|
+
currency: string;
|
|
254
|
+
freeTrial?: {
|
|
255
|
+
days: number;
|
|
256
|
+
onTrialStart?: (subscription, ctx) => Promise<void>;
|
|
257
|
+
onTrialEnd?: (data, ctx) => Promise<void>;
|
|
258
|
+
onTrialExpired?: (subscription, ctx) => Promise<void>;
|
|
259
|
+
};
|
|
260
|
+
onSubscriptionCanceled?: (subscription, ctx) => Promise<void>;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// 3. Define your plans
|
|
264
|
+
export const AUTH_PLANS: AppAuthPlan[] = [
|
|
265
|
+
{
|
|
266
|
+
name: "free",
|
|
267
|
+
description: "For individuals and small projects",
|
|
268
|
+
limits: DEFAULT_LIMIT,
|
|
269
|
+
price: 0,
|
|
270
|
+
currency: "USD",
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
name: "pro",
|
|
274
|
+
isPopular: true,
|
|
275
|
+
description: "For growing teams",
|
|
276
|
+
priceId: process.env.STRIPE_PRO_PLAN_ID ?? "",
|
|
277
|
+
annualDiscountPriceId: process.env.STRIPE_PRO_YEARLY_PLAN_ID ?? "",
|
|
278
|
+
limits: {
|
|
279
|
+
projects: 20,
|
|
280
|
+
storage: 50,
|
|
281
|
+
members: 10,
|
|
282
|
+
aiCredits: 50,
|
|
283
|
+
},
|
|
284
|
+
freeTrial: { days: 14 },
|
|
285
|
+
price: 49,
|
|
286
|
+
yearlyPrice: 400,
|
|
287
|
+
currency: "USD",
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: "ultra",
|
|
291
|
+
description: "Enterprise-grade",
|
|
292
|
+
priceId: process.env.STRIPE_ULTRA_PLAN_ID ?? "",
|
|
293
|
+
annualDiscountPriceId: process.env.STRIPE_ULTRA_YEARLY_PLAN_ID ?? "",
|
|
294
|
+
limits: {
|
|
295
|
+
projects: 100,
|
|
296
|
+
storage: 1000,
|
|
297
|
+
members: 100,
|
|
298
|
+
aiCredits: 200,
|
|
299
|
+
},
|
|
300
|
+
freeTrial: { days: 14 },
|
|
301
|
+
price: 100,
|
|
302
|
+
yearlyPrice: 1000,
|
|
303
|
+
currency: "USD",
|
|
304
|
+
},
|
|
305
|
+
];
|
|
306
|
+
|
|
307
|
+
// 4. Helper to get plan limits (with override support)
|
|
308
|
+
export const getPlanLimits = (
|
|
309
|
+
plan = "free",
|
|
310
|
+
overrideLimits?: OverrideLimits | null,
|
|
311
|
+
): PlanLimit => {
|
|
312
|
+
const planLimits = AUTH_PLANS.find((p) => p.name === plan)?.limits;
|
|
313
|
+
const baseLimits = planLimits ?? DEFAULT_LIMIT;
|
|
314
|
+
|
|
315
|
+
if (!overrideLimits) return baseLimits;
|
|
316
|
+
|
|
317
|
+
return { ...baseLimits, ...overrideLimits };
|
|
318
|
+
};
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### UI Configuration for Limits
|
|
322
|
+
|
|
323
|
+
```typescript
|
|
324
|
+
// Display config for pricing page
|
|
325
|
+
export const LIMITS_CONFIG: Record<
|
|
326
|
+
keyof PlanLimit,
|
|
327
|
+
{
|
|
328
|
+
icon: React.ElementType;
|
|
329
|
+
getLabel: (value: number) => string;
|
|
330
|
+
description: string;
|
|
331
|
+
}
|
|
332
|
+
> = {
|
|
333
|
+
projects: {
|
|
334
|
+
icon: FolderArchive,
|
|
335
|
+
getLabel: (value) => `${value} ${value === 1 ? "Project" : "Projects"}`,
|
|
336
|
+
description: "Create and manage projects",
|
|
337
|
+
},
|
|
338
|
+
storage: {
|
|
339
|
+
icon: HardDrive,
|
|
340
|
+
getLabel: (value) => `${value} GB Storage`,
|
|
341
|
+
description: "Cloud storage for your files",
|
|
342
|
+
},
|
|
343
|
+
members: {
|
|
344
|
+
icon: Users,
|
|
345
|
+
getLabel: (value) => `${value} Team ${value === 1 ? "Member" : "Members"}`,
|
|
346
|
+
description: "Invite team members",
|
|
347
|
+
},
|
|
348
|
+
aiCredits: {
|
|
349
|
+
icon: Bot,
|
|
350
|
+
getLabel: (value) => `$${value} AI Credits`,
|
|
351
|
+
description: "AI-powered features",
|
|
352
|
+
},
|
|
353
|
+
};
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### Checking Limits in Code
|
|
357
|
+
|
|
358
|
+
```typescript
|
|
359
|
+
// In server action or API route
|
|
360
|
+
import { getPlanLimits } from "@/lib/auth/stripe/auth-plans";
|
|
361
|
+
|
|
362
|
+
export async function createProject(orgId: string) {
|
|
363
|
+
const org = await prisma.organization.findUnique({
|
|
364
|
+
where: { id: orgId },
|
|
365
|
+
include: { subscription: true },
|
|
366
|
+
});
|
|
367
|
+
|
|
368
|
+
const limits = getPlanLimits(
|
|
369
|
+
org?.subscription?.plan ?? "free",
|
|
370
|
+
org?.subscription?.overrideLimits
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
const projectCount = await prisma.project.count({
|
|
374
|
+
where: { organizationId: orgId },
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
if (projectCount >= limits.projects) {
|
|
378
|
+
throw new Error("Project limit reached. Please upgrade your plan.");
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// Create project...
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Key Principles
|
|
386
|
+
|
|
387
|
+
1. **Organization is the billing entity** - Plans are tied to Organizations, not Users
|
|
388
|
+
2. **Limits are in Better-Auth config** - Centralized in `auth-plans.ts`
|
|
389
|
+
3. **Override support** - Allow per-organization limit overrides (for enterprise deals)
|
|
390
|
+
4. **No extra layers** - Organization → Resources, that's it
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
## Anti-Patterns
|
|
395
|
+
|
|
396
|
+
❌ **Microservices for MVP** - Monolith is fine
|
|
397
|
+
❌ **Kubernetes** - Vercel handles scaling
|
|
398
|
+
❌ **Custom auth** - Use Better Auth or Clerk
|
|
399
|
+
❌ **GraphQL** - REST/Server Actions are simpler
|
|
400
|
+
❌ **Redis for everything** - Start without caching
|
|
401
|
+
❌ **Message queues** - Direct calls are fine initially
|
|
402
|
+
❌ **Workspace abstraction** - Organization is enough, don't add layers
|
|
403
|
+
❌ **User-level plans** - Plans belong to Organizations, not Users
|
|
404
|
+
❌ **1-1 relationships** - Don't create separate tables just to "organize data". Put fields directly on the parent model
|
|
405
|
+
|
|
406
|
+
### 1-1 Relationships Anti-Pattern
|
|
407
|
+
|
|
408
|
+
**❌ BAD - Separate table for no reason:**
|
|
409
|
+
```prisma
|
|
410
|
+
model User {
|
|
411
|
+
id String @id
|
|
412
|
+
profile UserProfile?
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
model UserProfile {
|
|
416
|
+
id String @id
|
|
417
|
+
bio String?
|
|
418
|
+
avatar String?
|
|
419
|
+
userId String @unique
|
|
420
|
+
user User @relation(fields: [userId], references: [id])
|
|
421
|
+
}
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**✅ GOOD - Fields directly on User:**
|
|
425
|
+
```prisma
|
|
426
|
+
model User {
|
|
427
|
+
id String @id
|
|
428
|
+
bio String?
|
|
429
|
+
avatar String?
|
|
430
|
+
}
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
**When 1-1 is acceptable:**
|
|
434
|
+
- External system integration (e.g., StripeCustomer linked to User)
|
|
435
|
+
- Better-Auth managed tables (Session, Account, etc.)
|
|
436
|
+
- Genuinely optional large data that's rarely loaded
|
package/src/config/claude-code-config/skills/aibuilder-create-saas/references/challenge-framework.md
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# Smart Validation Framework
|
|
2
|
+
|
|
3
|
+
Pragmatic validation for indie hackers who want to ship fast BUT make smart decisions.
|
|
4
|
+
|
|
5
|
+
**Two modes:** Pick your speed.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Choose Your Path
|
|
10
|
+
|
|
11
|
+
### 🚀 Speed Mode (Ship in 1-2 weeks)
|
|
12
|
+
|
|
13
|
+
**Best for:**
|
|
14
|
+
- Scratching your own itch
|
|
15
|
+
- Side projects
|
|
16
|
+
- Learning projects
|
|
17
|
+
- Low-stakes experiments
|
|
18
|
+
|
|
19
|
+
**Validation approach:**
|
|
20
|
+
1. Quick competitor check (30 min)
|
|
21
|
+
2. Build MVP
|
|
22
|
+
3. Ship to 10 people
|
|
23
|
+
4. Learn from real usage
|
|
24
|
+
|
|
25
|
+
### 🎯 Thorough Mode (Ship in 2-4 weeks)
|
|
26
|
+
|
|
27
|
+
**Best for:**
|
|
28
|
+
- Planning to monetize seriously
|
|
29
|
+
- Quitting job for this
|
|
30
|
+
- Significant time investment
|
|
31
|
+
- Competitive market
|
|
32
|
+
|
|
33
|
+
**Validation approach:**
|
|
34
|
+
1. Competitor deep-dive
|
|
35
|
+
2. Talk to 5-10 potential users
|
|
36
|
+
3. Test with landing page
|
|
37
|
+
4. Build with confidence
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Quick Sanity Check (Both Modes)
|
|
42
|
+
|
|
43
|
+
Before building, answer these 5 questions honestly:
|
|
44
|
+
|
|
45
|
+
### 1. Would YOU use this?
|
|
46
|
+
|
|
47
|
+
| Answer | What it means |
|
|
48
|
+
|--------|---------------|
|
|
49
|
+
| "Hell yes, daily" | 🟢 Great — you understand the user |
|
|
50
|
+
| "Sometimes, maybe" | 🟡 Okay — but make sure others need it too |
|
|
51
|
+
| "No, but others would" | 🟠 Risky — hard to build for users you don't understand |
|
|
52
|
+
|
|
53
|
+
### 2. Can you explain it in one sentence?
|
|
54
|
+
|
|
55
|
+
**Test:** Tell someone in 10 seconds what it does.
|
|
56
|
+
|
|
57
|
+
✅ Good: "Notion for meal planning"
|
|
58
|
+
✅ Good: "Auto-post to Twitter when you ship on GitHub"
|
|
59
|
+
❌ Bad: "A platform that leverages AI to optimize workflow synergies"
|
|
60
|
+
|
|
61
|
+
### 3. Who else has tried this?
|
|
62
|
+
|
|
63
|
+
| Competitors | What it means | Action |
|
|
64
|
+
|-------------|---------------|--------|
|
|
65
|
+
| 0 | Either genius or no market | Proceed with caution |
|
|
66
|
+
| 1-3 | Sweet spot — validated, room to win | Go for it |
|
|
67
|
+
| 5-10 | Crowded — need an angle | Find your niche |
|
|
68
|
+
| 10+ | Very crowded | Need 10x better at ONE thing |
|
|
69
|
+
|
|
70
|
+
### 4. How hard is this to build?
|
|
71
|
+
|
|
72
|
+
| Complexity | Examples | Reality check |
|
|
73
|
+
|------------|----------|---------------|
|
|
74
|
+
| 🟢 Easy | CRUD app, forms, basic auth | 1-2 weeks with Claude Code |
|
|
75
|
+
| 🟡 Medium | Integrations, payments, real-time | 2-4 weeks |
|
|
76
|
+
| 🔴 Hard | AI/ML, complex algorithms, scale | Might be too ambitious for MVP |
|
|
77
|
+
|
|
78
|
+
### 5. How will you reach users?
|
|
79
|
+
|
|
80
|
+
| Channel | Effort | Good for |
|
|
81
|
+
|---------|--------|----------|
|
|
82
|
+
| Your own audience | 🟢 Low | If you have one |
|
|
83
|
+
| Communities (Reddit, Discord) | 🟢 Low | Niche products |
|
|
84
|
+
| Twitter/LinkedIn build in public | 🟡 Medium | Dev tools, SaaS |
|
|
85
|
+
| Content/SEO | 🔴 High (slow) | Long-term play |
|
|
86
|
+
| Paid ads | 🔴 High (expensive) | Only if you have budget |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Speed Mode: 30-Minute Validation
|
|
91
|
+
|
|
92
|
+
### Step 1: Quick Competitor Search (15 min)
|
|
93
|
+
|
|
94
|
+
Search for:
|
|
95
|
+
- "{problem} tool"
|
|
96
|
+
- "{solution} app"
|
|
97
|
+
- "alternative to {similar product}"
|
|
98
|
+
|
|
99
|
+
**Find 3-5 competitors. For each, note:**
|
|
100
|
+
- Name + URL
|
|
101
|
+
- Pricing (free? $X/month?)
|
|
102
|
+
- What they do well
|
|
103
|
+
- What reviews complain about ← **Your opportunity**
|
|
104
|
+
|
|
105
|
+
### Step 2: Gut Check (5 min)
|
|
106
|
+
|
|
107
|
+
Answer honestly:
|
|
108
|
+
- [ ] I would use this myself
|
|
109
|
+
- [ ] I can build MVP in 2 weeks
|
|
110
|
+
- [ ] I know where to find first 10 users
|
|
111
|
+
- [ ] It's okay if this fails (learning experience)
|
|
112
|
+
|
|
113
|
+
**If 3+ checked → Build it.**
|
|
114
|
+
|
|
115
|
+
### Step 3: Define MVP Scope (10 min)
|
|
116
|
+
|
|
117
|
+
Write down:
|
|
118
|
+
1. **THE ONE thing** it must do (core feature)
|
|
119
|
+
2. **TWO supporting features** max
|
|
120
|
+
3. **Everything else** → v2 (after launch)
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Thorough Mode: Deep Validation
|
|
125
|
+
|
|
126
|
+
### Phase 1: Market Reality Check
|
|
127
|
+
|
|
128
|
+
**Competitor Analysis (1-2 hours)**
|
|
129
|
+
|
|
130
|
+
For each competitor, document:
|
|
131
|
+
|
|
132
|
+
```markdown
|
|
133
|
+
## [Competitor Name]
|
|
134
|
+
- **URL:**
|
|
135
|
+
- **Pricing:** Free / $X/month
|
|
136
|
+
- **What they do well:**
|
|
137
|
+
- **What users complain about:** (check reviews, Twitter, Reddit)
|
|
138
|
+
- **Your angle:** How you'd be different
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Where to find competitors:**
|
|
142
|
+
- Product Hunt
|
|
143
|
+
- AlternativeTo
|
|
144
|
+
- G2 / Capterra
|
|
145
|
+
- "best {category} tools" Google search
|
|
146
|
+
- Reddit: "what do you use for {problem}?"
|
|
147
|
+
|
|
148
|
+
### Phase 2: Talk to Real People (Optional but valuable)
|
|
149
|
+
|
|
150
|
+
**You don't need 30 interviews. 5-10 quick chats is enough.**
|
|
151
|
+
|
|
152
|
+
**The Mom Test approach (simplified):**
|
|
153
|
+
|
|
154
|
+
Don't ask: "Would you use this?"
|
|
155
|
+
Ask instead: "How do you currently handle {problem}?"
|
|
156
|
+
|
|
157
|
+
Don't ask: "Would you pay $20/month?"
|
|
158
|
+
Ask instead: "What have you already tried/paid for?"
|
|
159
|
+
|
|
160
|
+
**3 questions that work:**
|
|
161
|
+
1. "Tell me about the last time you dealt with {problem}"
|
|
162
|
+
2. "What's the most annoying part?"
|
|
163
|
+
3. "What have you tried? What worked/didn't work?"
|
|
164
|
+
|
|
165
|
+
### Phase 3: Landing Page Test (Optional)
|
|
166
|
+
|
|
167
|
+
**Quick validation with a fake door:**
|
|
168
|
+
|
|
169
|
+
1. Create simple landing page (1-2 hours)
|
|
170
|
+
2. Describe what it does + pricing
|
|
171
|
+
3. "Get Early Access" button → email signup
|
|
172
|
+
4. Share in relevant communities
|
|
173
|
+
5. See if anyone signs up
|
|
174
|
+
|
|
175
|
+
**Good signals:**
|
|
176
|
+
- 3-5% of visitors sign up
|
|
177
|
+
- People ask "when is this launching?"
|
|
178
|
+
- Someone offers to pay early
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Idea Development Template
|
|
183
|
+
|
|
184
|
+
Once you've done your sanity check, develop the idea:
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
## [Idea Name]
|
|
188
|
+
|
|
189
|
+
### One-liner
|
|
190
|
+
[What it does in one sentence]
|
|
191
|
+
|
|
192
|
+
### The Problem
|
|
193
|
+
[Who has this problem? When does it happen?]
|
|
194
|
+
|
|
195
|
+
### The Solution
|
|
196
|
+
[What's your approach?]
|
|
197
|
+
|
|
198
|
+
### Target User
|
|
199
|
+
[Be specific: "Freelance designers who..." not "designers"]
|
|
200
|
+
|
|
201
|
+
### Business Model
|
|
202
|
+
- [ ] Subscription ($X/month)
|
|
203
|
+
- [ ] One-time ($X)
|
|
204
|
+
- [ ] Freemium (free + paid tier)
|
|
205
|
+
- [ ] Usage-based (pay per X)
|
|
206
|
+
|
|
207
|
+
### Competitors
|
|
208
|
+
1. [Name] - [What they do] - [Your angle vs them]
|
|
209
|
+
2. [Name] - [What they do] - [Your angle vs them]
|
|
210
|
+
|
|
211
|
+
### Why You?
|
|
212
|
+
[Why are YOU the right person to build this?]
|
|
213
|
+
- Personal experience with the problem?
|
|
214
|
+
- Technical skills?
|
|
215
|
+
- Existing audience?
|
|
216
|
+
|
|
217
|
+
### MVP Scope
|
|
218
|
+
**Core feature:** [THE ONE thing]
|
|
219
|
+
**Supporting:** [2-3 features max]
|
|
220
|
+
**NOT in MVP:** [Everything else]
|
|
221
|
+
|
|
222
|
+
### First 10 Users
|
|
223
|
+
[Where will you find them?]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Viability Score (Quick Version)
|
|
229
|
+
|
|
230
|
+
Rate 1-5 for each:
|
|
231
|
+
|
|
232
|
+
| Factor | Score | Notes |
|
|
233
|
+
|--------|-------|-------|
|
|
234
|
+
| Personal interest | /5 | Would you use it? |
|
|
235
|
+
| Build feasibility | /5 | Can you ship in 2 weeks? |
|
|
236
|
+
| Market exists | /5 | Do competitors exist? People pay? |
|
|
237
|
+
| Reach | /5 | Can you find users? |
|
|
238
|
+
| Differentiation | /5 | What's your angle? |
|
|
239
|
+
|
|
240
|
+
**Total: /25**
|
|
241
|
+
|
|
242
|
+
| Score | Verdict |
|
|
243
|
+
|-------|---------|
|
|
244
|
+
| 20-25 | 🚀 Strong — build it |
|
|
245
|
+
| 15-19 | ✅ Good — worth trying |
|
|
246
|
+
| 10-14 | 🤔 Okay — consider adjustments |
|
|
247
|
+
| <10 | ⚠️ Weak — maybe pivot |
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## When to Pivot (Be Honest)
|
|
252
|
+
|
|
253
|
+
**Red flags after shipping:**
|
|
254
|
+
- No one uses it after 2 weeks
|
|
255
|
+
- You stopped using it yourself
|
|
256
|
+
- Can't explain why it's better than alternatives
|
|
257
|
+
- No path to first paying customer
|
|
258
|
+
|
|
259
|
+
**Pivot options:**
|
|
260
|
+
1. Same problem, different solution
|
|
261
|
+
2. Same solution, different audience
|
|
262
|
+
3. Narrow down to specific niche
|
|
263
|
+
4. Kill it and try something else (it's okay!)
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## The Indie Hacker Mindset
|
|
268
|
+
|
|
269
|
+
### Remember:
|
|
270
|
+
|
|
271
|
+
✅ **Shipping > Planning** — You learn more from launching than researching
|
|
272
|
+
✅ **Small > Big** — Start tiny, expand based on feedback
|
|
273
|
+
✅ **Done > Perfect** — v1 can be ugly, v2 can be better
|
|
274
|
+
✅ **Fail fast > Fail slow** — If it's not working, pivot quickly
|
|
275
|
+
✅ **Fun matters** — Build something you're excited about
|
|
276
|
+
|
|
277
|
+
### It's okay if:
|
|
278
|
+
|
|
279
|
+
- Your first idea fails (most do)
|
|
280
|
+
- Only 10 people use it (that's 10 real users!)
|
|
281
|
+
- You pivot 3 times (normal)
|
|
282
|
+
- It never makes money (you learned a ton)
|
|
283
|
+
|
|
284
|
+
### What matters:
|
|
285
|
+
|
|
286
|
+
- You shipped something
|
|
287
|
+
- You learned what users want
|
|
288
|
+
- You improved your skills
|
|
289
|
+
- You're ready for the next one
|