@tinkcarlos/skillora 0.2.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.
Files changed (234) hide show
  1. package/.claude/skills/.temp-skill-index.md +245 -0
  2. package/.claude/skills/SKILL.md +264 -0
  3. package/.claude/skills/api-scaffolding/SKILL.md +431 -0
  4. package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
  5. package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
  6. package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
  7. package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
  8. package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
  9. package/.claude/skills/api-testing-observability/SKILL.md +583 -0
  10. package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
  11. package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
  12. package/.claude/skills/brainstorming/SKILL.md +283 -0
  13. package/.claude/skills/bug-fixing/SKILL.md +382 -0
  14. package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
  15. package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
  16. package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
  17. package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
  18. package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
  19. package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
  20. package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
  21. package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
  22. package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
  23. package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
  24. package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
  25. package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
  26. package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
  27. package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
  28. package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
  29. package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
  30. package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
  31. package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
  32. package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
  33. package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
  34. package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
  35. package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
  36. package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
  37. package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
  38. package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
  39. package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
  40. package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
  41. package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
  42. package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
  43. package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
  44. package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
  45. package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
  46. package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
  47. package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
  48. package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
  49. package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
  50. package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
  51. package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
  52. package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
  53. package/.claude/skills/code-review/SKILL.md +535 -0
  54. package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
  55. package/.claude/skills/code-review/references/automated-analysis.md +456 -0
  56. package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
  57. package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
  58. package/.claude/skills/code-review/references/backend-review.md +868 -0
  59. package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
  60. package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
  61. package/.claude/skills/code-review/references/common-patterns.md +321 -0
  62. package/.claude/skills/code-review/references/configuration-review.md +425 -0
  63. package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
  64. package/.claude/skills/code-review/references/database-review.md +298 -0
  65. package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
  66. package/.claude/skills/code-review/references/external-standards.md +51 -0
  67. package/.claude/skills/code-review/references/feature-review.md +329 -0
  68. package/.claude/skills/code-review/references/file-review-template.md +326 -0
  69. package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
  70. package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
  71. package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
  72. package/.claude/skills/code-review/references/frontend-review.md +783 -0
  73. package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
  74. package/.claude/skills/code-review/references/fullstack-review.md +477 -0
  75. package/.claude/skills/code-review/references/functional-completeness.md +386 -0
  76. package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
  77. package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
  78. package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
  79. package/.claude/skills/code-review/references/iteration-review.md +264 -0
  80. package/.claude/skills/code-review/references/job-review.md +335 -0
  81. package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
  82. package/.claude/skills/code-review/references/logic-completeness.md +535 -0
  83. package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
  84. package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
  85. package/.claude/skills/code-review/references/new-project-review.md +226 -0
  86. package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
  87. package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
  88. package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
  89. package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
  90. package/.claude/skills/code-review/references/python-patterns.md +494 -0
  91. package/.claude/skills/code-review/references/rca-techniques.md +362 -0
  92. package/.claude/skills/code-review/references/report-template.md +430 -0
  93. package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
  94. package/.claude/skills/code-review/references/review-dimensions.md +311 -0
  95. package/.claude/skills/code-review/references/review-guide.md +202 -0
  96. package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
  97. package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
  98. package/.claude/skills/code-review/references/review-record-template.md +195 -0
  99. package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
  100. package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
  101. package/.claude/skills/containerization/SKILL.md +313 -0
  102. package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
  103. package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
  104. package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
  105. package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
  106. package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
  107. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  108. package/.claude/skills/frontend-design/SKILL.md +587 -0
  109. package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
  110. package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
  111. package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
  112. package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
  113. package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
  114. package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
  115. package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
  116. package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
  117. package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
  118. package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
  119. package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
  120. package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
  121. package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
  122. package/.claude/skills/fullstack-developer/SKILL.md +512 -0
  123. package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
  124. package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
  125. package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
  126. package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
  127. package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
  128. package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
  129. package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
  130. package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
  131. package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
  132. package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
  133. package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
  134. package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
  135. package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
  136. package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
  137. package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
  138. package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
  139. package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
  140. package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
  141. package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
  142. package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
  143. package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
  144. package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
  145. package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
  146. package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
  147. package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
  148. package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
  149. package/.claude/skills/performance-optimization/SKILL.md +250 -0
  150. package/.claude/skills/product-requirements/SKILL.md +357 -0
  151. package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
  152. package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
  153. package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
  154. package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
  155. package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
  156. package/.claude/skills/product-requirements/references/external-standards.md +62 -0
  157. package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
  158. package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
  159. package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
  160. package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
  161. package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
  162. package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
  163. package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
  164. package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
  165. package/.claude/skills/react-best-practices/SKILL.md +198 -0
  166. package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
  167. package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
  168. package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
  169. package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
  170. package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
  171. package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
  172. package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
  173. package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
  174. package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
  175. package/.claude/skills/security-audit/SKILL.md +226 -0
  176. package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
  177. package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
  178. package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
  179. package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
  180. package/.claude/skills/shared-references/skill-call-graph.md +230 -0
  181. package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
  182. package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
  183. package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
  184. package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
  185. package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
  186. package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
  187. package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
  188. package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
  189. package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
  190. package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
  191. package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
  192. package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
  193. package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
  194. package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
  195. package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
  196. package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
  197. package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
  198. package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
  199. package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
  200. package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
  201. package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
  202. package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
  203. package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
  204. package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
  205. package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
  206. package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
  207. package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
  208. package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
  209. package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
  210. package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
  211. package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
  212. package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  213. package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
  214. package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
  215. package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
  216. package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
  217. package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
  218. package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
  219. package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
  220. package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
  221. package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
  222. package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
  223. package/.claude/skills/test-driven-development/SKILL.md +246 -0
  224. package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
  225. package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
  226. package/.claude/skills/using-skillstack/SKILL.md +127 -0
  227. package/.claude/skills/vercel-deploy/SKILL.md +166 -0
  228. package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
  229. package/.claude/skills/verification-before-completion/SKILL.md +305 -0
  230. package/.claude/skills/writing-plans/SKILL.md +259 -0
  231. package/README.md +69 -0
  232. package/bin/cli.js +468 -0
  233. package/lib/init.js +333 -0
  234. package/package.json +29 -0
@@ -0,0 +1,335 @@
1
+ # Job & Scheduler Review Guide
2
+
3
+ > Comprehensive guide for reviewing background jobs, schedulers, cron tasks, workers, and queues.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Job Types Overview](#job-types-overview)
8
+ - [Common Job Bugs](#common-job-bugs)
9
+ - [Cron Expression Review](#cron-expression-review)
10
+ - [Error Handling Patterns](#error-handling-patterns)
11
+ - [Idempotency & Reliability](#idempotency--reliability)
12
+ - [Performance & Scaling](#performance--scaling)
13
+ - [Monitoring & Observability](#monitoring--observability)
14
+
15
+ ---
16
+
17
+ ## Job Types Overview
18
+
19
+ | Type | Examples | Key Concerns |
20
+ |------|----------|--------------|
21
+ | **Cron Jobs** | Daily reports, cleanup tasks | Timing, overlap, timezone |
22
+ | **Queue Workers** | Celery, Sidekiq, Bull, RQ | Retry, dead letter, scaling |
23
+ | **Event Handlers** | Webhooks, message consumers | Ordering, deduplication |
24
+ | **Scheduled Tasks** | @Scheduled, APScheduler | Memory leaks, overlap |
25
+ | **Batch Processors** | Data migrations, ETL | Progress, resume, timeout |
26
+
27
+ ---
28
+
29
+ ## Common Job Bugs
30
+
31
+ ### 1. Overlapping Execution (Most Dangerous)
32
+
33
+ ```python
34
+ # 🔴 BUG: Job can run twice simultaneously
35
+ @app.task
36
+ def daily_report():
37
+ # If previous run takes > 24 hours, two instances run
38
+ generate_large_report()
39
+
40
+ # ✅ FIX: Use distributed lock
41
+ @app.task
42
+ def daily_report():
43
+ lock = redis.lock("daily_report_lock", timeout=3600)
44
+ if lock.acquire(blocking=False):
45
+ try:
46
+ generate_large_report()
47
+ finally:
48
+ lock.release()
49
+ else:
50
+ logger.info("Job already running, skipping")
51
+ ```
52
+
53
+ ### 2. Silent Failures
54
+
55
+ ```python
56
+ # 🔴 BUG: Exceptions swallowed, no alerts
57
+ @app.task
58
+ def process_payment(payment_id):
59
+ try:
60
+ charge_customer(payment_id)
61
+ except Exception as e:
62
+ print(f"Error: {e}") # Nobody will see this
63
+
64
+ # ✅ FIX: Proper error handling with alerting
65
+ @app.task(bind=True, max_retries=3)
66
+ def process_payment(self, payment_id):
67
+ try:
68
+ charge_customer(payment_id)
69
+ except TransientError as e:
70
+ raise self.retry(exc=e, countdown=60)
71
+ except Exception as e:
72
+ logger.exception(f"Payment {payment_id} failed permanently")
73
+ alert_team(f"Payment failure: {payment_id}")
74
+ raise
75
+ ```
76
+
77
+ ### 3. Missing Timeout
78
+
79
+ ```python
80
+ # 🔴 BUG: Job can run forever
81
+ @app.task
82
+ def call_external_api():
83
+ response = requests.get(url) # No timeout!
84
+ process(response)
85
+
86
+ # ✅ FIX: Always set timeouts
87
+ @app.task(soft_time_limit=300, time_limit=600)
88
+ def call_external_api():
89
+ response = requests.get(url, timeout=30)
90
+ process(response)
91
+ ```
92
+
93
+ ### 4. Memory Leaks in Long-Running Jobs
94
+
95
+ ```python
96
+ # 🔴 BUG: Loading entire dataset into memory
97
+ @app.task
98
+ def export_all_users():
99
+ users = User.objects.all() # 10 million users = OOM
100
+ for user in users:
101
+ export(user)
102
+
103
+ # ✅ FIX: Stream with pagination
104
+ @app.task
105
+ def export_all_users():
106
+ batch_size = 1000
107
+ offset = 0
108
+ while True:
109
+ users = User.objects.all()[offset:offset + batch_size]
110
+ if not users:
111
+ break
112
+ for user in users:
113
+ export(user)
114
+ offset += batch_size
115
+ gc.collect() # Force garbage collection
116
+ ```
117
+
118
+ ### 5. Timezone Issues
119
+
120
+ ```python
121
+ # 🔴 BUG: Hardcoded timezone or using local time
122
+ schedule.every().day.at("09:00").do(job) # What timezone?
123
+
124
+ # ✅ FIX: Explicit UTC timezone
125
+ from celery.schedules import crontab
126
+ app.conf.beat_schedule = {
127
+ 'daily-report': {
128
+ 'task': 'tasks.daily_report',
129
+ 'schedule': crontab(hour=9, minute=0), # UTC
130
+ },
131
+ }
132
+ app.conf.timezone = 'UTC'
133
+ ```
134
+
135
+ ### 6. No Idempotency
136
+
137
+ ```python
138
+ # 🔴 BUG: Retry creates duplicates
139
+ @app.task(max_retries=3)
140
+ def send_email(user_id):
141
+ user = User.get(user_id)
142
+ send_welcome_email(user) # Retry = duplicate email
143
+
144
+ # ✅ FIX: Idempotency key
145
+ @app.task(max_retries=3)
146
+ def send_email(user_id, idempotency_key):
147
+ if redis.get(f"email_sent:{idempotency_key}"):
148
+ return # Already sent
149
+ user = User.get(user_id)
150
+ send_welcome_email(user)
151
+ redis.set(f"email_sent:{idempotency_key}", 1, ex=86400)
152
+ ```
153
+
154
+ ---
155
+
156
+ ## Cron Expression Review
157
+
158
+ ### Common Cron Mistakes
159
+
160
+ | Expression | Intended | Actual | Problem |
161
+ |------------|----------|--------|---------|
162
+ | `0 0 * * 0` | Weekly on Sunday | Wrong in some systems | Day 0 vs 7 confusion |
163
+ | `0 9 * * *` | 9 AM daily | 9 AM in what timezone? | Timezone ambiguity |
164
+ | `*/5 * * * *` | Every 5 minutes | Correct | - |
165
+ | `0 */2 * * *` | Every 2 hours | Only at :00 | Missing odd hours |
166
+ | `0 0 1 * *` | First of month | Correct | - |
167
+ | `0 0 31 * *` | 31st of month | Skips Feb, Apr, Jun... | Not all months have 31 |
168
+
169
+ ### Cron Validation Commands
170
+
171
+ ```bash
172
+ # Validate cron expression (requires crontab package)
173
+ echo "0 9 * * *" | crontab -
174
+
175
+ # Use online validator or library
176
+ # Python: croniter
177
+ # Node: cron-parser
178
+ ```
179
+
180
+ ### Timezone Checklist
181
+
182
+ - [ ] All schedules specify timezone explicitly
183
+ - [ ] Server timezone documented
184
+ - [ ] DST transitions handled (or schedules avoid DST hours)
185
+ - [ ] UTC preferred for backend jobs
186
+
187
+ ---
188
+
189
+ ## Error Handling Patterns
190
+
191
+ ### Retry Strategy Matrix
192
+
193
+ | Error Type | Retry? | Strategy | Example |
194
+ |------------|--------|----------|---------|
195
+ | **Network Timeout** | Yes | Exponential backoff | `2^n` seconds |
196
+ | **Rate Limit (429)** | Yes | Respect Retry-After header | Wait as told |
197
+ | **Server Error (5xx)** | Yes | Limited retries | Max 3-5 times |
198
+ | **Client Error (4xx)** | No | Fix and redeploy | Bad request |
199
+ | **Business Logic** | No | Alert and investigate | Invalid data |
200
+ | **Resource Exhausted** | Maybe | With cooldown | Memory/CPU |
201
+
202
+ ### Dead Letter Queue Pattern
203
+
204
+ ```python
205
+ # ✅ GOOD: Capture failed jobs for analysis
206
+ @app.task(bind=True, max_retries=3)
207
+ def process_order(self, order_id):
208
+ try:
209
+ do_work(order_id)
210
+ except Exception as e:
211
+ if self.request.retries >= self.max_retries:
212
+ # Move to dead letter queue
213
+ dead_letter_queue.put({
214
+ 'task': 'process_order',
215
+ 'args': [order_id],
216
+ 'error': str(e),
217
+ 'traceback': traceback.format_exc(),
218
+ 'timestamp': datetime.utcnow().isoformat()
219
+ })
220
+ raise
221
+ raise self.retry(exc=e)
222
+ ```
223
+
224
+ ---
225
+
226
+ ## Idempotency & Reliability
227
+
228
+ ### Idempotency Patterns
229
+
230
+ | Pattern | Use Case | Implementation |
231
+ |---------|----------|----------------|
232
+ | **Idempotency Key** | API-triggered jobs | Store key in Redis/DB |
233
+ | **State Machine** | Multi-step workflows | Check current state |
234
+ | **Version/ETag** | Data updates | Compare before write |
235
+ | **Timestamp** | Time-based jobs | Check last run time |
236
+
237
+ ### At-Least-Once vs Exactly-Once
238
+
239
+ ```python
240
+ # At-least-once (default): Jobs may run multiple times
241
+ # - Simpler to implement
242
+ # - Requires idempotent handlers
243
+
244
+ # Exactly-once (hard): Jobs run exactly once
245
+ # - Requires distributed transactions
246
+ # - Often unnecessary if idempotent
247
+ ```
248
+
249
+ ---
250
+
251
+ ## Performance & Scaling
252
+
253
+ ### Batch Processing Best Practices
254
+
255
+ | Practice | Bad | Good |
256
+ |----------|-----|------|
257
+ | **Data loading** | Load all at once | Stream/paginate |
258
+ | **Processing** | One at a time | Batch operations |
259
+ | **Memory** | Hold in memory | Process and release |
260
+ | **Progress** | No tracking | Checkpoint progress |
261
+ | **Resumability** | Start from beginning | Resume from checkpoint |
262
+
263
+ ### Worker Scaling Checklist
264
+
265
+ - [ ] Jobs are stateless
266
+ - [ ] No shared mutable state
267
+ - [ ] Database can handle concurrent connections
268
+ - [ ] External APIs can handle rate
269
+ - [ ] Monitoring for worker count
270
+
271
+ ---
272
+
273
+ ## Monitoring & Observability
274
+
275
+ ### Essential Metrics
276
+
277
+ | Metric | Why | Alert Threshold |
278
+ |--------|-----|-----------------|
279
+ | **Job Duration** | Detect slowdowns | > 2x normal |
280
+ | **Queue Depth** | Backlog growing | > N pending |
281
+ | **Failure Rate** | Reliability | > 5% failures |
282
+ | **Retry Rate** | Transient issues | > 10% retries |
283
+ | **Memory Usage** | Leak detection | > 80% limit |
284
+
285
+ ### Logging Best Practices
286
+
287
+ ```python
288
+ # ✅ GOOD: Structured logging with context
289
+ @app.task(bind=True)
290
+ def process_order(self, order_id):
291
+ logger.info("Starting order processing", extra={
292
+ "task_id": self.request.id,
293
+ "order_id": order_id,
294
+ "retry": self.request.retries
295
+ })
296
+
297
+ # ... processing ...
298
+
299
+ logger.info("Order processed", extra={
300
+ "task_id": self.request.id,
301
+ "order_id": order_id,
302
+ "duration_ms": elapsed
303
+ })
304
+ ```
305
+
306
+ ### Review Checklist
307
+
308
+ ```markdown
309
+ ## Job Review Checklist
310
+
311
+ ### Reliability
312
+ - [ ] Job has timeout configured
313
+ - [ ] Retry policy defined with limits
314
+ - [ ] Dead letter handling for permanent failures
315
+ - [ ] Idempotency implemented
316
+
317
+ ### Performance
318
+ - [ ] No memory leaks (streaming for large data)
319
+ - [ ] Batch processing where applicable
320
+ - [ ] Appropriate concurrency limits
321
+ - [ ] Progress tracking for long jobs
322
+
323
+ ### Monitoring
324
+ - [ ] Structured logging with job context
325
+ - [ ] Metrics for duration, failures, retries
326
+ - [ ] Alerts for failures and backlogs
327
+ - [ ] Dashboard for job health
328
+
329
+ ### Security
330
+ - [ ] No secrets in job arguments
331
+ - [ ] Input validation for job parameters
332
+ - [ ] Principle of least privilege
333
+ - [ ] Audit logging for sensitive operations
334
+ ```
335
+
@@ -0,0 +1,157 @@
1
+ # Layered Checklist Protocol
2
+
3
+ ## 核心原则
4
+
5
+ **检查清单按优先级分层,确保关键问题不被遗漏。**
6
+
7
+ ---
8
+
9
+ ## 四层检查模型
10
+
11
+ ```
12
+ ┌─────────────────────────────────────────────────────────────┐
13
+ │ Layer 0: CRITICAL (必须 100% 通过,否则 BLOCKED) │
14
+ │ ───────────────────────────────────────────────────────── │
15
+ │ 安全漏洞 | 数据丢失 | 认证绕过 | 系统崩溃 │
16
+ └─────────────────────────────────────────────────────────────┘
17
+
18
+ ┌─────────────────────────────────────────────────────────────┐
19
+ │ Layer 1: LOGIC (必须 100% 检查,P0/P1 必须修复) │
20
+ │ ───────────────────────────────────────────────────────── │
21
+ │ 逻辑错误 | 边界条件 | 空值处理 | 异常路径 │
22
+ └─────────────────────────────────────────────────────────────┘
23
+
24
+ ┌─────────────────────────────────────────────────────────────┐
25
+ │ Layer 2: QUALITY (必须检查,P2 可协商) │
26
+ │ ───────────────────────────────────────────────────────── │
27
+ │ 性能问题 | 资源泄漏 | 测试覆盖 | 可观测性 │
28
+ └─────────────────────────────────────────────────────────────┘
29
+
30
+ ┌─────────────────────────────────────────────────────────────┐
31
+ │ Layer 3: STYLE (建议性,P3 不阻塞) │
32
+ │ ───────────────────────────────────────────────────────── │
33
+ │ 命名规范 | 代码风格 | 文档注释 | 代码组织 │
34
+ └─────────────────────────────────────────────────────────────┘
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Layer 0: CRITICAL (4 项)
40
+
41
+ | # | Check | Question | Severity |
42
+ |---|-------|----------|----------|
43
+ | C1 | **SQL Injection** | 是否有未参数化的 SQL 拼接? | P0 |
44
+ | C2 | **XSS/CSRF** | 是否有未转义的用户输入输出? | P0 |
45
+ | C3 | **Auth Bypass** | 是否有未验证的权限检查? | P0 |
46
+ | C4 | **Secrets Exposure** | 是否有硬编码的密钥/密码? | P0 |
47
+
48
+ **规则**: 任何 C1-C4 失败 → 立即 BLOCKED
49
+
50
+ ---
51
+
52
+ ## Layer 1: LOGIC (8 项)
53
+
54
+ | # | Check | Question | Severity |
55
+ |---|-------|----------|----------|
56
+ | L1 | **Null/Undefined** | 所有可能为空的值是否都有检查? | P0/P1 |
57
+ | L2 | **Boundary** | 边界值(0, -1, MAX)是否正确处理? | P1 |
58
+ | L3 | **Off-by-One** | 循环/索引是否有 ±1 错误? | P1 |
59
+ | L4 | **Condition Logic** | if/else 条件是否覆盖所有情况? | P0 |
60
+ | L5 | **Exception Path** | 异常情况是否有处理? | P1 |
61
+ | L6 | **State Consistency** | 状态变更是否保持一致? | P1 |
62
+ | L7 | **Race Condition** | 并发访问是否有竞态? | P0 |
63
+ | L8 | **Return Value** | 所有路径是否都有正确返回? | P1 |
64
+
65
+ **规则**: L1-L8 必须逐项检查,P0/P1 必须修复
66
+
67
+ ---
68
+
69
+ ## Layer 2: QUALITY (6 项)
70
+
71
+ | # | Check | Question | Severity |
72
+ |---|-------|----------|----------|
73
+ | Q1 | **N+1 Query** | 是否有循环内的数据库查询? | P2 |
74
+ | Q2 | **Resource Leak** | 连接/文件/监听器是否正确释放? | P1 |
75
+ | Q3 | **Memory** | 是否有大对象未释放/无限增长? | P2 |
76
+ | Q4 | **Test Coverage** | 关键路径是否有测试? | P2 |
77
+ | Q5 | **Error Message** | 错误信息是否有足够上下文? | P2 |
78
+ | Q6 | **Logging** | 关键操作是否有日志? | P2 |
79
+
80
+ **规则**: Q1-Q6 必须检查,P2 可协商
81
+
82
+ ---
83
+
84
+ ## Layer 3: STYLE (4 项)
85
+
86
+ | # | Check | Question | Severity |
87
+ |---|-------|----------|----------|
88
+ | S1 | **Naming** | 变量/函数命名是否清晰? | P3 |
89
+ | S2 | **Format** | 代码格式是否符合规范? | P3 |
90
+ | S3 | **Comments** | 复杂逻辑是否有注释? | P3 |
91
+ | S4 | **Organization** | 代码结构是否合理? | P3 |
92
+
93
+ **规则**: S1-S4 建议性,不阻塞合并
94
+
95
+ ---
96
+
97
+ ## 检查执行顺序
98
+
99
+ ```
100
+ 1. 先执行 Layer 0 (CRITICAL)
101
+ - 任何失败 → 立即停止,报告 BLOCKED
102
+
103
+ 2. 再执行 Layer 1 (LOGIC)
104
+ - 逐项检查,记录所有发现
105
+ - P0/P1 必须修复
106
+
107
+ 3. 然后执行 Layer 2 (QUALITY)
108
+ - 逐项检查,记录所有发现
109
+ - P2 可协商
110
+
111
+ 4. 最后执行 Layer 3 (STYLE)
112
+ - 快速扫描,记录建议
113
+ - P3 不阻塞
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Checkpoint 输出格式
119
+
120
+ 每个文件分析完成后,输出:
121
+
122
+ ```markdown
123
+ ## [CP-XXX] {filename} - Layered Checklist
124
+
125
+ | Layer | Items | Passed | Failed | Skipped |
126
+ |-------|-------|--------|--------|---------|
127
+ | L0-Critical | 4 | 4 | 0 | 0 |
128
+ | L1-Logic | 8 | 7 | 1 | 0 |
129
+ | L2-Quality | 6 | 5 | 1 | 0 |
130
+ | L3-Style | 4 | 3 | 0 | 1 |
131
+
132
+ **Failed Items**:
133
+ - L1.L4: Condition Logic - if/else 未覆盖 null 情况 (P1)
134
+ - L2.Q1: N+1 Query - 循环内查询数据库 (P2)
135
+
136
+ **Status**: ⚠️ CHANGES REQUESTED
137
+ ```
138
+
139
+ ---
140
+
141
+ ## 与 Progress Tracker 集成
142
+
143
+ 在 Progress Tracker 的 Checkpoint 中记录:
144
+
145
+ ```markdown
146
+ ### [CP-001] src/auth.ts
147
+
148
+ **Layered Checklist**:
149
+ | Layer | Pass Rate |
150
+ |-------|-----------|
151
+ | L0-Critical | 4/4 (100%) |
152
+ | L1-Logic | 7/8 (87.5%) |
153
+ | L2-Quality | 5/6 (83.3%) |
154
+ | L3-Style | 3/4 (75%) |
155
+
156
+ **Issues**: 2 (1×P1, 1×P2)
157
+ ```