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,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-02-apply
|
|
3
|
+
description: Load documentation, recommend, and apply clean code fixes
|
|
4
|
+
prev_step: steps/step-01-scan.md
|
|
5
|
+
next_step: steps/step-03-verify.md
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 2: APPLY
|
|
9
|
+
|
|
10
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
11
|
+
|
|
12
|
+
- 🛑 NEVER apply patterns without reading docs first
|
|
13
|
+
- ✅ ALWAYS load relevant reference files
|
|
14
|
+
- 📋 YOU ARE AN IMPLEMENTER following best practices
|
|
15
|
+
- 💬 FOCUS on applying patterns from loaded docs
|
|
16
|
+
- 🚫 FORBIDDEN to invent patterns not in docs
|
|
17
|
+
|
|
18
|
+
## EXECUTION PROTOCOLS:
|
|
19
|
+
|
|
20
|
+
- 🎯 Load docs based on detected technologies
|
|
21
|
+
- 💾 Track progress in table format
|
|
22
|
+
- 📖 Complete all changes before step-03
|
|
23
|
+
- 🚫 FORBIDDEN to skip verification after changes
|
|
24
|
+
|
|
25
|
+
## CONTEXT BOUNDARIES:
|
|
26
|
+
|
|
27
|
+
- From step-01: `{detected_tech}`, `{issues}`, flags
|
|
28
|
+
- Reference files in `references/` folder
|
|
29
|
+
- Optional: Context7 MCP for latest docs
|
|
30
|
+
|
|
31
|
+
## YOUR TASK:
|
|
32
|
+
|
|
33
|
+
Load relevant documentation, generate recommendations, and apply clean code fixes.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## EXECUTION SEQUENCE:
|
|
38
|
+
|
|
39
|
+
### 1. Load Reference Files
|
|
40
|
+
|
|
41
|
+
| Condition | Load |
|
|
42
|
+
|-----------|------|
|
|
43
|
+
| Always | `references/general-clean-code.md` |
|
|
44
|
+
| React/Next.js | `references/react-clean-code.md` |
|
|
45
|
+
| Next.js | `references/nextjs-clean-code.md` |
|
|
46
|
+
| No data fetching lib | `references/tanstack-query-best-practices.md` |
|
|
47
|
+
| Zustand | `references/zustand-best-practices.md` |
|
|
48
|
+
|
|
49
|
+
**CRITICAL: Actually READ the files with Read tool!**
|
|
50
|
+
|
|
51
|
+
### 2. Generate Recommendations
|
|
52
|
+
|
|
53
|
+
Based on issues + loaded docs:
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
## Recommendations
|
|
57
|
+
|
|
58
|
+
### 🔴 High Priority
|
|
59
|
+
1. Replace useEffect → TanStack Query
|
|
60
|
+
2. Add Error Boundaries
|
|
61
|
+
|
|
62
|
+
### 🟡 Medium Priority
|
|
63
|
+
3. Fix `any` types
|
|
64
|
+
|
|
65
|
+
### 🟢 Quick Wins
|
|
66
|
+
4. Remove console.log
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 3. Confirm Before Applying
|
|
70
|
+
|
|
71
|
+
**If `{auto_mode}` = true:**
|
|
72
|
+
→ Apply all recommendations
|
|
73
|
+
|
|
74
|
+
**If `{auto_mode}` = false:**
|
|
75
|
+
→ Use AskUserQuestion:
|
|
76
|
+
```yaml
|
|
77
|
+
questions:
|
|
78
|
+
- header: "Apply"
|
|
79
|
+
question: "Apply these clean code improvements?"
|
|
80
|
+
options:
|
|
81
|
+
- label: "Apply All (Recommended)"
|
|
82
|
+
description: "Apply all recommendations"
|
|
83
|
+
- label: "High Priority Only"
|
|
84
|
+
description: "Only high priority fixes"
|
|
85
|
+
multiSelect: false
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 4. Install Dependencies
|
|
89
|
+
|
|
90
|
+
If new libraries needed:
|
|
91
|
+
```bash
|
|
92
|
+
pnpm add @tanstack/react-query react-error-boundary
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 5. Apply Changes
|
|
96
|
+
|
|
97
|
+
**If `{economy_mode}` = true:**
|
|
98
|
+
→ Apply sequentially
|
|
99
|
+
|
|
100
|
+
**If `{economy_mode}` = false AND 4+ files:**
|
|
101
|
+
→ Use parallel Snipper agents
|
|
102
|
+
|
|
103
|
+
**Track progress:**
|
|
104
|
+
```markdown
|
|
105
|
+
| File | Status | Change |
|
|
106
|
+
|------|--------|--------|
|
|
107
|
+
| providers.tsx | ✅ | Added QueryProvider |
|
|
108
|
+
| Auth.tsx | ✅ | useEffect → useQuery |
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 6. Summary
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
## Changes Applied
|
|
115
|
+
- Files modified: 8
|
|
116
|
+
- Lines added: 120
|
|
117
|
+
- Lines removed: 180
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**If `{save_mode}` = true:**
|
|
121
|
+
→ Write to `.claude/output/clean-code/{task_id}/02-apply.md`
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## SUCCESS METRICS:
|
|
126
|
+
|
|
127
|
+
✅ Docs loaded and read
|
|
128
|
+
✅ Recommendations generated
|
|
129
|
+
✅ Changes applied following doc patterns
|
|
130
|
+
✅ Progress tracked
|
|
131
|
+
|
|
132
|
+
## FAILURE MODES:
|
|
133
|
+
|
|
134
|
+
❌ Applying patterns without reading docs
|
|
135
|
+
❌ Skipping dependency installation
|
|
136
|
+
❌ Not tracking progress
|
|
137
|
+
|
|
138
|
+
## APPLY PROTOCOLS:
|
|
139
|
+
|
|
140
|
+
- Follow patterns from docs exactly
|
|
141
|
+
- Don't invent new patterns
|
|
142
|
+
- Verify build after major changes
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## NEXT STEP:
|
|
147
|
+
|
|
148
|
+
After changes applied, load `./step-03-verify.md`
|
|
149
|
+
|
|
150
|
+
<critical>
|
|
151
|
+
Follow patterns from LOADED DOCS only!
|
|
152
|
+
</critical>
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-03-verify
|
|
3
|
+
description: Verify build passes and summarize changes
|
|
4
|
+
prev_step: steps/step-02-apply.md
|
|
5
|
+
next_step: null
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 3: VERIFY
|
|
9
|
+
|
|
10
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
11
|
+
|
|
12
|
+
- 🛑 NEVER complete with failing build
|
|
13
|
+
- ✅ ALWAYS run build before marking done
|
|
14
|
+
- 📋 YOU ARE A VALIDATOR ensuring quality
|
|
15
|
+
- 💬 FOCUS on verification and summary
|
|
16
|
+
- 🚫 FORBIDDEN to skip any check
|
|
17
|
+
|
|
18
|
+
## EXECUTION PROTOCOLS:
|
|
19
|
+
|
|
20
|
+
- 🎯 Run all verification commands
|
|
21
|
+
- 💾 Save summary if `{save_mode}` = true
|
|
22
|
+
- 📖 Fix any errors before completing
|
|
23
|
+
- 🚫 FORBIDDEN to mark complete if build fails
|
|
24
|
+
|
|
25
|
+
## CONTEXT BOUNDARIES:
|
|
26
|
+
|
|
27
|
+
- From step-02: changes applied, files modified
|
|
28
|
+
- Build/lint commands from package.json
|
|
29
|
+
|
|
30
|
+
## YOUR TASK:
|
|
31
|
+
|
|
32
|
+
Run build, fix any errors, and provide final summary.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## EXECUTION SEQUENCE:
|
|
37
|
+
|
|
38
|
+
### 1. Run TypeScript Check
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npx tsc --noEmit
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**If errors:** Fix and re-run until clean.
|
|
45
|
+
|
|
46
|
+
### 2. Run Linter
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pnpm lint
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**If errors:** Fix with `pnpm lint --fix`, then manual fixes.
|
|
53
|
+
|
|
54
|
+
### 3. Run Build
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pnpm build
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**If build fails:**
|
|
61
|
+
1. Read error
|
|
62
|
+
2. Fix issue
|
|
63
|
+
3. Re-run
|
|
64
|
+
4. **Loop until passes**
|
|
65
|
+
|
|
66
|
+
### 4. Run Tests (if available)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pnpm test
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 5. Generate Summary
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
## Clean Code Complete ✓
|
|
76
|
+
|
|
77
|
+
### Verification
|
|
78
|
+
| Check | Status |
|
|
79
|
+
|-------|--------|
|
|
80
|
+
| TypeScript | ✅ |
|
|
81
|
+
| ESLint | ✅ |
|
|
82
|
+
| Build | ✅ |
|
|
83
|
+
|
|
84
|
+
### Improvements
|
|
85
|
+
| Metric | Before | After |
|
|
86
|
+
|--------|--------|-------|
|
|
87
|
+
| useEffect fetching | 5 | 0 |
|
|
88
|
+
| any types | 12 | 0 |
|
|
89
|
+
|
|
90
|
+
### Files Changed: 12
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**If `{save_mode}` = true:**
|
|
94
|
+
→ Write to `.claude/output/clean-code/{task_id}/03-verify.md`
|
|
95
|
+
|
|
96
|
+
### 6. Offer Commit
|
|
97
|
+
|
|
98
|
+
**Use AskUserQuestion:**
|
|
99
|
+
```yaml
|
|
100
|
+
questions:
|
|
101
|
+
- header: "Complete"
|
|
102
|
+
question: "Clean code complete. Create commit?"
|
|
103
|
+
options:
|
|
104
|
+
- label: "Create Commit (Recommended)"
|
|
105
|
+
description: "Commit changes"
|
|
106
|
+
- label: "Done"
|
|
107
|
+
description: "Finish without commit"
|
|
108
|
+
multiSelect: false
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**If commit:**
|
|
112
|
+
```bash
|
|
113
|
+
git add -A && git commit -m "refactor: apply clean code improvements"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## SUCCESS METRICS:
|
|
119
|
+
|
|
120
|
+
✅ TypeScript passes
|
|
121
|
+
✅ Linter passes
|
|
122
|
+
✅ Build passes
|
|
123
|
+
✅ Summary generated
|
|
124
|
+
|
|
125
|
+
## FAILURE MODES:
|
|
126
|
+
|
|
127
|
+
❌ Completing with failing build
|
|
128
|
+
❌ Skipping verification
|
|
129
|
+
❌ Not offering commit option
|
|
130
|
+
|
|
131
|
+
## VERIFY PROTOCOLS:
|
|
132
|
+
|
|
133
|
+
- Always run build
|
|
134
|
+
- Fix errors before completing
|
|
135
|
+
- Provide clear summary
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## WORKFLOW COMPLETE
|
|
140
|
+
|
|
141
|
+
<critical>
|
|
142
|
+
NEVER complete if build fails!
|
|
143
|
+
</critical>
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug
|
|
3
|
+
description: Systematic error debugging with analysis, solution discovery, and verification
|
|
4
|
+
argument-hint: "[error description or context] [-a for auto mode]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Debug errors systematically through a 5-step workflow: analyze the error, find potential solutions, propose options to the user, implement the fix, and verify it works through multi-layer verification.
|
|
9
|
+
</objective>
|
|
10
|
+
|
|
11
|
+
<quick_start>
|
|
12
|
+
**Debug an error (interactive):**
|
|
13
|
+
```bash
|
|
14
|
+
/debug login page crashes on submit
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Auto mode (fully automatic, use recommended solutions):**
|
|
18
|
+
```bash
|
|
19
|
+
/debug -a API returning 500 on POST
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**What it does:**
|
|
23
|
+
1. **Analyze**: Reproduce error, identify root cause → **ask if you have more context**
|
|
24
|
+
2. **Log Technique** (if needed): Add debug logs → **user runs & shares output** → analyze
|
|
25
|
+
3. **Find Solutions**: Research 2-3+ potential fixes with pros/cons
|
|
26
|
+
4. **Propose**: Present options → **you choose which solution**
|
|
27
|
+
5. **Fix**: Implement solution with strategic logging
|
|
28
|
+
6. **Verify**: Multi-layer verification (Static → Build → Runtime)
|
|
29
|
+
|
|
30
|
+
**Key principle**: Tests passing ≠ fix working. Always execute the actual code path.
|
|
31
|
+
|
|
32
|
+
**Log Technique**: When the error can't be reproduced, strategic debug logs are added. The user runs the app and shares the console output for analysis.
|
|
33
|
+
</quick_start>
|
|
34
|
+
|
|
35
|
+
<methodology>
|
|
36
|
+
<core_principles>
|
|
37
|
+
**Battle-Tested Principles:**
|
|
38
|
+
|
|
39
|
+
1. **Reproduce Before Anything Else** - If you can't reproduce it, you can't verify the fix
|
|
40
|
+
2. **Hypothesis-Driven Analysis** - List 3-5 causes ranked by likelihood, test systematically
|
|
41
|
+
3. **Multi-Layer Verification** - Tests alone give false confidence (20-40% still fail in production)
|
|
42
|
+
</core_principles>
|
|
43
|
+
|
|
44
|
+
<verification_pyramid>
|
|
45
|
+
**Verification Pyramid:**
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
┌─────────────┐
|
|
49
|
+
│ Manual │ ← User confirms
|
|
50
|
+
└──────┬──────┘
|
|
51
|
+
┌─────────┴─────────┐
|
|
52
|
+
│ Runtime Execution │ ← CRITICAL: Real execution
|
|
53
|
+
└─────────┬─────────┘
|
|
54
|
+
┌───────────┴───────────┐
|
|
55
|
+
│ Automated Checks │ ← Build, Types, Lint, Tests
|
|
56
|
+
└───────────┬───────────┘
|
|
57
|
+
┌─────────────┴─────────────┐
|
|
58
|
+
│ Static Analysis │ ← Syntax, Imports
|
|
59
|
+
└───────────────────────────┘
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Key Insight**: Tests passing ≠ fix working. ALWAYS execute the actual code path.
|
|
63
|
+
</verification_pyramid>
|
|
64
|
+
</methodology>
|
|
65
|
+
|
|
66
|
+
<parameters>
|
|
67
|
+
**Flags:**
|
|
68
|
+
|
|
69
|
+
| Flag | Name | Description |
|
|
70
|
+
|------|------|-------------|
|
|
71
|
+
| `-a`, `--auto` | Auto mode | Full automatic mode - don't ask the user, use recommended solutions |
|
|
72
|
+
|
|
73
|
+
**Arguments:**
|
|
74
|
+
- Everything after flags = `{error_context}` - Description of the error or context about what's failing
|
|
75
|
+
</parameters>
|
|
76
|
+
|
|
77
|
+
<state_variables>
|
|
78
|
+
**Persist throughout all steps:**
|
|
79
|
+
|
|
80
|
+
| Variable | Type | Description |
|
|
81
|
+
|----------|------|-------------|
|
|
82
|
+
| `{error_context}` | string | User's description of the error |
|
|
83
|
+
| `{auto_mode}` | boolean | Skip confirmations, use recommended options |
|
|
84
|
+
| `{error_analysis}` | object | Detailed analysis from step 1 |
|
|
85
|
+
| `{debug_logs}` | list | Debug logs added for cleanup (file, line, prefix) |
|
|
86
|
+
| `{solutions}` | list | Potential solutions found in step 2 |
|
|
87
|
+
| `{selected_solution}` | object | User's chosen solution from step 3 |
|
|
88
|
+
| `{files_modified}` | list | Files changed during the fix |
|
|
89
|
+
| `{verification_result}` | object | Results from verification step |
|
|
90
|
+
</state_variables>
|
|
91
|
+
|
|
92
|
+
<entry_point>
|
|
93
|
+
Load `steps/step-00-init.md`
|
|
94
|
+
</entry_point>
|
|
95
|
+
|
|
96
|
+
<step_files>
|
|
97
|
+
| Step | File | Description |
|
|
98
|
+
|------|------|-------------|
|
|
99
|
+
| 0 | `step-00-init.md` | Parse flags, setup state |
|
|
100
|
+
| 1 | `step-01-analyze.md` | Reproduce error, form hypotheses, identify root cause |
|
|
101
|
+
| 1b | `step-01b-log-instrumentation.md` | *Optional*: Add debug logs, user runs & shares output |
|
|
102
|
+
| 2 | `step-02-find-solutions.md` | Research 2-3+ solutions with pros/cons |
|
|
103
|
+
| 3 | `step-03-propose.md` | Present solutions for user selection |
|
|
104
|
+
| 4 | `step-04-fix.md` | Implement with strategic logging |
|
|
105
|
+
| 5 | `step-05-verify.md` | Multi-layer verification (Static → Build → Runtime → User) |
|
|
106
|
+
</step_files>
|
|
107
|
+
|
|
108
|
+
<references>
|
|
109
|
+
| File | Description |
|
|
110
|
+
|------|-------------|
|
|
111
|
+
| `references/log-technique.md` | Log placement patterns, prefixes, security guidelines |
|
|
112
|
+
</references>
|
|
113
|
+
|
|
114
|
+
<success_criteria>
|
|
115
|
+
- Error successfully reproduced
|
|
116
|
+
- Root cause identified through hypothesis testing
|
|
117
|
+
- 2-3+ potential solutions researched with pros/cons
|
|
118
|
+
- Solution selected (by user or auto mode)
|
|
119
|
+
- Fix implemented with strategic logging
|
|
120
|
+
- Static analysis passes (syntax, imports)
|
|
121
|
+
- Build completes successfully
|
|
122
|
+
- Tests pass (if tests exist)
|
|
123
|
+
- **Runtime execution verified** (actual code path executed)
|
|
124
|
+
- User confirms fix resolves the original issue
|
|
125
|
+
- No regressions introduced
|
|
126
|
+
</success_criteria>
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
# Log Technique Reference
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The **Log Technique** is a debugging strategy where you add strategic logging to the codebase and ask the user to run the application and share the logs back. This provides visibility into the application's runtime behavior when:
|
|
6
|
+
|
|
7
|
+
- The error cannot be reproduced directly by the AI
|
|
8
|
+
- The environment is different (production, user's machine, specific setup)
|
|
9
|
+
- The bug is intermittent or timing-sensitive
|
|
10
|
+
- You need to understand the actual data flow
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
| Scenario | Use Log Technique? |
|
|
15
|
+
|----------|-------------------|
|
|
16
|
+
| Cannot reproduce error locally | ✅ Yes |
|
|
17
|
+
| Need to see actual runtime data | ✅ Yes |
|
|
18
|
+
| Production-only bug | ✅ Yes |
|
|
19
|
+
| Intermittent / flaky error | ✅ Yes |
|
|
20
|
+
| Clear stack trace with obvious cause | ❌ No |
|
|
21
|
+
| Error in code you can run directly | ❌ No |
|
|
22
|
+
|
|
23
|
+
## Log Placement Strategy
|
|
24
|
+
|
|
25
|
+
### 1. Entry/Exit Points
|
|
26
|
+
|
|
27
|
+
Log at the boundaries of the suspected problematic area:
|
|
28
|
+
|
|
29
|
+
```javascript
|
|
30
|
+
// Entry point
|
|
31
|
+
console.log('[DEBUG:entry] functionName called', {
|
|
32
|
+
timestamp: new Date().toISOString(),
|
|
33
|
+
args: { param1, param2 }
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// Exit point
|
|
37
|
+
console.log('[DEBUG:exit] functionName completed', {
|
|
38
|
+
timestamp: new Date().toISOString(),
|
|
39
|
+
result: returnValue
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. Decision Points
|
|
44
|
+
|
|
45
|
+
Log at conditionals where behavior branches:
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
console.log('[DEBUG:decision] checking condition', {
|
|
49
|
+
condition: someValue,
|
|
50
|
+
willTake: someValue > threshold ? 'if-branch' : 'else-branch'
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
if (someValue > threshold) {
|
|
54
|
+
console.log('[DEBUG:branch] took if-branch');
|
|
55
|
+
// ...
|
|
56
|
+
} else {
|
|
57
|
+
console.log('[DEBUG:branch] took else-branch');
|
|
58
|
+
// ...
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 3. Data Transformation Points
|
|
63
|
+
|
|
64
|
+
Log before and after data changes:
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
console.log('[DEBUG:transform:before] raw data', { data });
|
|
68
|
+
const processed = transformData(data);
|
|
69
|
+
console.log('[DEBUG:transform:after] processed data', { processed });
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 4. Async Boundaries
|
|
73
|
+
|
|
74
|
+
Log async operations with timing:
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
console.log('[DEBUG:async:start] fetching user', { userId, time: Date.now() });
|
|
78
|
+
try {
|
|
79
|
+
const user = await fetchUser(userId);
|
|
80
|
+
console.log('[DEBUG:async:success] user fetched', { user, time: Date.now() });
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.log('[DEBUG:async:error] fetch failed', { error: error.message, time: Date.now() });
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Log Format Standards
|
|
87
|
+
|
|
88
|
+
### Prefix Convention
|
|
89
|
+
|
|
90
|
+
Use consistent prefixes for easy filtering:
|
|
91
|
+
|
|
92
|
+
| Prefix | Purpose |
|
|
93
|
+
|--------|---------|
|
|
94
|
+
| `[DEBUG:entry]` | Function/method entry |
|
|
95
|
+
| `[DEBUG:exit]` | Function/method exit |
|
|
96
|
+
| `[DEBUG:decision]` | Conditional check |
|
|
97
|
+
| `[DEBUG:branch]` | Branch taken |
|
|
98
|
+
| `[DEBUG:transform]` | Data transformation |
|
|
99
|
+
| `[DEBUG:async]` | Async operation |
|
|
100
|
+
| `[DEBUG:error]` | Error caught |
|
|
101
|
+
| `[DEBUG:state]` | State snapshot |
|
|
102
|
+
|
|
103
|
+
### Required Information
|
|
104
|
+
|
|
105
|
+
Each log should include:
|
|
106
|
+
|
|
107
|
+
1. **What**: Clear description of the checkpoint
|
|
108
|
+
2. **Where**: Function/component name
|
|
109
|
+
3. **Data**: Relevant values (sanitized if sensitive)
|
|
110
|
+
4. **Timing**: Timestamp for async/timing issues
|
|
111
|
+
|
|
112
|
+
### Example Format
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
console.log('[DEBUG:checkpoint-name] description', {
|
|
116
|
+
function: 'functionName',
|
|
117
|
+
timestamp: new Date().toISOString(),
|
|
118
|
+
data: { /* relevant values */ }
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Language-Specific Patterns
|
|
123
|
+
|
|
124
|
+
### JavaScript/TypeScript
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
console.log('[DEBUG:xxx]', JSON.stringify({ ... }, null, 2));
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Python
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
import logging
|
|
134
|
+
logging.debug(f'[DEBUG:xxx] {{"key": "{value}"}}')
|
|
135
|
+
# or
|
|
136
|
+
print(f'[DEBUG:xxx]', {'key': value})
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Go
|
|
140
|
+
|
|
141
|
+
```go
|
|
142
|
+
log.Printf("[DEBUG:xxx] %+v\n", data)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Rust
|
|
146
|
+
|
|
147
|
+
```rust
|
|
148
|
+
println!("[DEBUG:xxx] {:?}", data);
|
|
149
|
+
// or with tracing
|
|
150
|
+
tracing::debug!(?data, "checkpoint description");
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Asking for Logs - User Interaction
|
|
154
|
+
|
|
155
|
+
### AskUserQuestion Pattern
|
|
156
|
+
|
|
157
|
+
After adding logs, use this pattern:
|
|
158
|
+
|
|
159
|
+
```yaml
|
|
160
|
+
questions:
|
|
161
|
+
- header: "Run & Share"
|
|
162
|
+
question: "I've added debug logs to track the issue. Please run the application, reproduce the error, and paste the console output. Ready?"
|
|
163
|
+
options:
|
|
164
|
+
- label: "I'll run it now"
|
|
165
|
+
description: "I'll execute and share the logs"
|
|
166
|
+
- label: "Need different logs"
|
|
167
|
+
description: "The logs aren't in the right place"
|
|
168
|
+
- label: "Can't run it"
|
|
169
|
+
description: "I can't run the application right now"
|
|
170
|
+
multiSelect: false
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Follow-up After Receiving Logs
|
|
174
|
+
|
|
175
|
+
```yaml
|
|
176
|
+
questions:
|
|
177
|
+
- header: "Logs Analysis"
|
|
178
|
+
question: "Based on the logs, I found [X]. Do you want me to add more logs or proceed with the fix?"
|
|
179
|
+
options:
|
|
180
|
+
- label: "Proceed with fix (Recommended)"
|
|
181
|
+
description: "I have enough information"
|
|
182
|
+
- label: "Add more logs"
|
|
183
|
+
description: "I need deeper visibility"
|
|
184
|
+
- label: "Different area"
|
|
185
|
+
description: "The problem is elsewhere"
|
|
186
|
+
multiSelect: false
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Log Cleanup
|
|
190
|
+
|
|
191
|
+
<critical>
|
|
192
|
+
ALWAYS remove debug logs after the issue is resolved!
|
|
193
|
+
</critical>
|
|
194
|
+
|
|
195
|
+
### Tracking Logs for Removal
|
|
196
|
+
|
|
197
|
+
Keep a list of added logs:
|
|
198
|
+
|
|
199
|
+
| File | Line | Log Prefix |
|
|
200
|
+
|------|------|------------|
|
|
201
|
+
| src/api.ts | 45 | `[DEBUG:entry]` |
|
|
202
|
+
| src/api.ts | 52 | `[DEBUG:exit]` |
|
|
203
|
+
| src/utils.ts | 23 | `[DEBUG:transform]` |
|
|
204
|
+
|
|
205
|
+
### Removal Process
|
|
206
|
+
|
|
207
|
+
1. Search for `[DEBUG:` pattern in modified files
|
|
208
|
+
2. Remove each log statement
|
|
209
|
+
3. Verify no debug logs remain: `grep -r "\[DEBUG:" src/`
|
|
210
|
+
|
|
211
|
+
## Security Considerations
|
|
212
|
+
|
|
213
|
+
<critical>
|
|
214
|
+
NEVER log sensitive data!
|
|
215
|
+
</critical>
|
|
216
|
+
|
|
217
|
+
### Sanitize Before Logging
|
|
218
|
+
|
|
219
|
+
```javascript
|
|
220
|
+
// BAD - logs password
|
|
221
|
+
console.log('[DEBUG:auth]', { user, password });
|
|
222
|
+
|
|
223
|
+
// GOOD - sanitized
|
|
224
|
+
console.log('[DEBUG:auth]', {
|
|
225
|
+
user,
|
|
226
|
+
passwordProvided: !!password,
|
|
227
|
+
passwordLength: password?.length
|
|
228
|
+
});
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Sensitive Data Checklist
|
|
232
|
+
|
|
233
|
+
Never log:
|
|
234
|
+
- Passwords, tokens, API keys
|
|
235
|
+
- Personal identifiable information (PII)
|
|
236
|
+
- Credit card numbers
|
|
237
|
+
- Session identifiers
|
|
238
|
+
- Internal IP addresses (in production)
|
|
239
|
+
|
|
240
|
+
## Iterative Log Technique
|
|
241
|
+
|
|
242
|
+
Sometimes one round isn't enough:
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
┌─────────────────────────────────────┐
|
|
246
|
+
│ 1. Add initial logs at boundaries │
|
|
247
|
+
└──────────────┬──────────────────────┘
|
|
248
|
+
▼
|
|
249
|
+
┌─────────────────────────────────────┐
|
|
250
|
+
│ 2. User runs & shares logs │
|
|
251
|
+
└──────────────┬──────────────────────┘
|
|
252
|
+
▼
|
|
253
|
+
┌─────────────────────────────────────┐
|
|
254
|
+
│ 3. Analyze - found root cause? │
|
|
255
|
+
└──────────────┬──────────────────────┘
|
|
256
|
+
│
|
|
257
|
+
┌────────┴────────┐
|
|
258
|
+
▼ ▼
|
|
259
|
+
[YES] [NO]
|
|
260
|
+
│ │
|
|
261
|
+
▼ ▼
|
|
262
|
+
┌─────────────┐ ┌──────────────────┐
|
|
263
|
+
│ Remove logs │ │ Add deeper logs │
|
|
264
|
+
│ & fix issue │ │ & repeat step 2 │
|
|
265
|
+
└─────────────┘ └──────────────────┘
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Quick Reference Card
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
┌────────────────────────────────────────────┐
|
|
272
|
+
│ LOG TECHNIQUE CHECKLIST │
|
|
273
|
+
├────────────────────────────────────────────┤
|
|
274
|
+
│ □ Identify suspected area │
|
|
275
|
+
│ □ Add entry/exit logs │
|
|
276
|
+
│ □ Add decision point logs │
|
|
277
|
+
│ □ Add async boundary logs (if applicable) │
|
|
278
|
+
│ □ Sanitize sensitive data │
|
|
279
|
+
│ □ Track all added logs │
|
|
280
|
+
│ □ Ask user to run & share │
|
|
281
|
+
│ □ Analyze returned logs │
|
|
282
|
+
│ □ Iterate if needed │
|
|
283
|
+
│ □ Remove ALL debug logs when done │
|
|
284
|
+
└────────────────────────────────────────────┘
|
|
285
|
+
```
|