opencode-metis 0.1.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 (156) hide show
  1. package/README.md +140 -0
  2. package/dist/cli.cjs +63 -0
  3. package/dist/mcp-server.cjs +51 -0
  4. package/dist/plugin.cjs +4 -0
  5. package/dist/worker.cjs +224 -0
  6. package/opencode/agent/the-analyst/feature-prioritization.md +66 -0
  7. package/opencode/agent/the-analyst/market-research.md +77 -0
  8. package/opencode/agent/the-analyst/project-coordination.md +81 -0
  9. package/opencode/agent/the-analyst/requirements-analysis.md +77 -0
  10. package/opencode/agent/the-architect/compatibility-review.md +138 -0
  11. package/opencode/agent/the-architect/complexity-review.md +137 -0
  12. package/opencode/agent/the-architect/quality-review.md +67 -0
  13. package/opencode/agent/the-architect/security-review.md +127 -0
  14. package/opencode/agent/the-architect/system-architecture.md +119 -0
  15. package/opencode/agent/the-architect/system-documentation.md +83 -0
  16. package/opencode/agent/the-architect/technology-research.md +85 -0
  17. package/opencode/agent/the-chief.md +79 -0
  18. package/opencode/agent/the-designer/accessibility-implementation.md +101 -0
  19. package/opencode/agent/the-designer/design-foundation.md +74 -0
  20. package/opencode/agent/the-designer/interaction-architecture.md +75 -0
  21. package/opencode/agent/the-designer/user-research.md +70 -0
  22. package/opencode/agent/the-meta-agent.md +155 -0
  23. package/opencode/agent/the-platform-engineer/ci-cd-pipelines.md +109 -0
  24. package/opencode/agent/the-platform-engineer/containerization.md +106 -0
  25. package/opencode/agent/the-platform-engineer/data-architecture.md +81 -0
  26. package/opencode/agent/the-platform-engineer/dependency-review.md +144 -0
  27. package/opencode/agent/the-platform-engineer/deployment-automation.md +81 -0
  28. package/opencode/agent/the-platform-engineer/infrastructure-as-code.md +107 -0
  29. package/opencode/agent/the-platform-engineer/performance-tuning.md +82 -0
  30. package/opencode/agent/the-platform-engineer/pipeline-engineering.md +81 -0
  31. package/opencode/agent/the-platform-engineer/production-monitoring.md +105 -0
  32. package/opencode/agent/the-qa-engineer/exploratory-testing.md +66 -0
  33. package/opencode/agent/the-qa-engineer/performance-testing.md +81 -0
  34. package/opencode/agent/the-qa-engineer/quality-assurance.md +77 -0
  35. package/opencode/agent/the-qa-engineer/test-execution.md +66 -0
  36. package/opencode/agent/the-software-engineer/api-development.md +78 -0
  37. package/opencode/agent/the-software-engineer/component-development.md +79 -0
  38. package/opencode/agent/the-software-engineer/concurrency-review.md +141 -0
  39. package/opencode/agent/the-software-engineer/domain-modeling.md +66 -0
  40. package/opencode/agent/the-software-engineer/performance-optimization.md +113 -0
  41. package/opencode/command/analyze.md +149 -0
  42. package/opencode/command/constitution.md +178 -0
  43. package/opencode/command/debug.md +194 -0
  44. package/opencode/command/document.md +178 -0
  45. package/opencode/command/implement.md +225 -0
  46. package/opencode/command/refactor.md +207 -0
  47. package/opencode/command/review.md +229 -0
  48. package/opencode/command/simplify.md +267 -0
  49. package/opencode/command/specify.md +191 -0
  50. package/opencode/command/validate.md +224 -0
  51. package/opencode/skill/accessibility-design/SKILL.md +566 -0
  52. package/opencode/skill/accessibility-design/checklists/wcag-checklist.md +435 -0
  53. package/opencode/skill/agent-coordination/SKILL.md +224 -0
  54. package/opencode/skill/api-contract-design/SKILL.md +550 -0
  55. package/opencode/skill/api-contract-design/templates/graphql-schema-template.md +818 -0
  56. package/opencode/skill/api-contract-design/templates/rest-api-template.md +417 -0
  57. package/opencode/skill/architecture-design/SKILL.md +160 -0
  58. package/opencode/skill/architecture-design/examples/architecture-examples.md +170 -0
  59. package/opencode/skill/architecture-design/template.md +749 -0
  60. package/opencode/skill/architecture-design/validation.md +99 -0
  61. package/opencode/skill/architecture-selection/SKILL.md +522 -0
  62. package/opencode/skill/architecture-selection/examples/adrs/001-example-adr.md +71 -0
  63. package/opencode/skill/architecture-selection/examples/architecture-patterns.md +239 -0
  64. package/opencode/skill/bug-diagnosis/SKILL.md +235 -0
  65. package/opencode/skill/code-quality-review/SKILL.md +337 -0
  66. package/opencode/skill/code-quality-review/examples/anti-patterns.md +629 -0
  67. package/opencode/skill/code-quality-review/reference.md +322 -0
  68. package/opencode/skill/code-review/SKILL.md +363 -0
  69. package/opencode/skill/code-review/reference.md +450 -0
  70. package/opencode/skill/codebase-analysis/SKILL.md +139 -0
  71. package/opencode/skill/codebase-navigation/SKILL.md +227 -0
  72. package/opencode/skill/codebase-navigation/examples/exploration-patterns.md +263 -0
  73. package/opencode/skill/coding-conventions/SKILL.md +178 -0
  74. package/opencode/skill/coding-conventions/checklists/accessibility-checklist.md +176 -0
  75. package/opencode/skill/coding-conventions/checklists/performance-checklist.md +154 -0
  76. package/opencode/skill/coding-conventions/checklists/security-checklist.md +127 -0
  77. package/opencode/skill/constitution-validation/SKILL.md +315 -0
  78. package/opencode/skill/constitution-validation/examples/CONSTITUTION.md +202 -0
  79. package/opencode/skill/constitution-validation/reference/rule-patterns.md +328 -0
  80. package/opencode/skill/constitution-validation/template.md +115 -0
  81. package/opencode/skill/context-preservation/SKILL.md +445 -0
  82. package/opencode/skill/data-modeling/SKILL.md +385 -0
  83. package/opencode/skill/data-modeling/templates/schema-design-template.md +268 -0
  84. package/opencode/skill/deployment-pipeline-design/SKILL.md +579 -0
  85. package/opencode/skill/deployment-pipeline-design/templates/pipeline-template.md +633 -0
  86. package/opencode/skill/documentation-extraction/SKILL.md +259 -0
  87. package/opencode/skill/documentation-sync/SKILL.md +431 -0
  88. package/opencode/skill/domain-driven-design/SKILL.md +509 -0
  89. package/opencode/skill/domain-driven-design/examples/ddd-patterns.md +688 -0
  90. package/opencode/skill/domain-driven-design/reference.md +465 -0
  91. package/opencode/skill/drift-detection/SKILL.md +383 -0
  92. package/opencode/skill/drift-detection/reference.md +340 -0
  93. package/opencode/skill/error-recovery/SKILL.md +162 -0
  94. package/opencode/skill/error-recovery/examples/error-patterns.md +484 -0
  95. package/opencode/skill/feature-prioritization/SKILL.md +419 -0
  96. package/opencode/skill/feature-prioritization/examples/rice-template.md +139 -0
  97. package/opencode/skill/feature-prioritization/reference.md +256 -0
  98. package/opencode/skill/git-workflow/SKILL.md +453 -0
  99. package/opencode/skill/implementation-planning/SKILL.md +215 -0
  100. package/opencode/skill/implementation-planning/examples/phase-examples.md +217 -0
  101. package/opencode/skill/implementation-planning/template.md +220 -0
  102. package/opencode/skill/implementation-planning/validation.md +88 -0
  103. package/opencode/skill/implementation-verification/SKILL.md +272 -0
  104. package/opencode/skill/knowledge-capture/SKILL.md +265 -0
  105. package/opencode/skill/knowledge-capture/reference/knowledge-capture.md +402 -0
  106. package/opencode/skill/knowledge-capture/reference.md +444 -0
  107. package/opencode/skill/knowledge-capture/templates/domain-template.md +325 -0
  108. package/opencode/skill/knowledge-capture/templates/interface-template.md +255 -0
  109. package/opencode/skill/knowledge-capture/templates/pattern-template.md +144 -0
  110. package/opencode/skill/observability-design/SKILL.md +291 -0
  111. package/opencode/skill/observability-design/references/monitoring-patterns.md +461 -0
  112. package/opencode/skill/pattern-detection/SKILL.md +171 -0
  113. package/opencode/skill/pattern-detection/examples/common-patterns.md +359 -0
  114. package/opencode/skill/performance-analysis/SKILL.md +266 -0
  115. package/opencode/skill/performance-analysis/references/profiling-tools.md +499 -0
  116. package/opencode/skill/requirements-analysis/SKILL.md +139 -0
  117. package/opencode/skill/requirements-analysis/examples/good-prd.md +66 -0
  118. package/opencode/skill/requirements-analysis/template.md +177 -0
  119. package/opencode/skill/requirements-analysis/validation.md +69 -0
  120. package/opencode/skill/requirements-elicitation/SKILL.md +518 -0
  121. package/opencode/skill/requirements-elicitation/examples/interview-questions.md +226 -0
  122. package/opencode/skill/requirements-elicitation/examples/user-stories.md +414 -0
  123. package/opencode/skill/safe-refactoring/SKILL.md +312 -0
  124. package/opencode/skill/safe-refactoring/reference/code-smells.md +347 -0
  125. package/opencode/skill/security-assessment/SKILL.md +421 -0
  126. package/opencode/skill/security-assessment/checklists/security-review-checklist.md +285 -0
  127. package/opencode/skill/specification-management/SKILL.md +143 -0
  128. package/opencode/skill/specification-management/readme-template.md +32 -0
  129. package/opencode/skill/specification-management/reference.md +115 -0
  130. package/opencode/skill/specification-management/spec.py +229 -0
  131. package/opencode/skill/specification-validation/SKILL.md +397 -0
  132. package/opencode/skill/specification-validation/reference/3cs-framework.md +306 -0
  133. package/opencode/skill/specification-validation/reference/ambiguity-detection.md +132 -0
  134. package/opencode/skill/specification-validation/reference/constitution-validation.md +301 -0
  135. package/opencode/skill/specification-validation/reference/drift-detection.md +383 -0
  136. package/opencode/skill/task-delegation/SKILL.md +607 -0
  137. package/opencode/skill/task-delegation/examples/file-coordination.md +495 -0
  138. package/opencode/skill/task-delegation/examples/parallel-research.md +337 -0
  139. package/opencode/skill/task-delegation/examples/sequential-build.md +504 -0
  140. package/opencode/skill/task-delegation/reference.md +825 -0
  141. package/opencode/skill/tech-stack-detection/SKILL.md +89 -0
  142. package/opencode/skill/tech-stack-detection/references/framework-signatures.md +598 -0
  143. package/opencode/skill/technical-writing/SKILL.md +190 -0
  144. package/opencode/skill/technical-writing/templates/adr-template.md +205 -0
  145. package/opencode/skill/technical-writing/templates/system-doc-template.md +380 -0
  146. package/opencode/skill/test-design/SKILL.md +464 -0
  147. package/opencode/skill/test-design/examples/test-pyramid.md +724 -0
  148. package/opencode/skill/testing/SKILL.md +213 -0
  149. package/opencode/skill/testing/examples/test-pyramid.md +724 -0
  150. package/opencode/skill/user-insight-synthesis/SKILL.md +576 -0
  151. package/opencode/skill/user-insight-synthesis/templates/research-plan-template.md +217 -0
  152. package/opencode/skill/user-research/SKILL.md +508 -0
  153. package/opencode/skill/user-research/examples/interview-questions.md +265 -0
  154. package/opencode/skill/user-research/examples/personas.md +267 -0
  155. package/opencode/skill/vibe-security/SKILL.md +654 -0
  156. package/package.json +45 -0
@@ -0,0 +1,176 @@
1
+ # Accessibility Checklist
2
+
3
+ WCAG 2.1 Level AA compliance checklist for inclusive design.
4
+
5
+ ## Perceivable
6
+
7
+ ### Text Alternatives (1.1)
8
+
9
+ - [ ] All images have meaningful alt text describing content or function
10
+ - [ ] Decorative images have empty alt (`alt=""`) or are CSS backgrounds
11
+ - [ ] Complex images (charts, diagrams) have extended descriptions
12
+ - [ ] Icons used as controls have accessible labels
13
+ - [ ] CAPTCHAs provide alternative methods
14
+
15
+ ### Time-Based Media (1.2)
16
+
17
+ - [ ] Videos have captions
18
+ - [ ] Videos have audio descriptions for visual-only content
19
+ - [ ] Live audio content has captions
20
+ - [ ] Pre-recorded audio has transcripts
21
+
22
+ ### Adaptable (1.3)
23
+
24
+ - [ ] Content structure uses semantic HTML (headings, lists, tables)
25
+ - [ ] Heading hierarchy is logical (h1 -> h2 -> h3)
26
+ - [ ] Tables have proper headers (`<th>` with scope)
27
+ - [ ] Form inputs have associated labels
28
+ - [ ] Reading order is logical when CSS is disabled
29
+ - [ ] Instructions do not rely solely on sensory characteristics (color, shape)
30
+
31
+ ### Distinguishable (1.4)
32
+
33
+ - [ ] Color is not the only means of conveying information
34
+ - [ ] Text color contrast ratio is at least 4.5:1 (3:1 for large text)
35
+ - [ ] UI component contrast ratio is at least 3:1
36
+ - [ ] Text can be resized to 200% without loss of content
37
+ - [ ] Text is not in images (except logos)
38
+ - [ ] Content reflows at 320px width without horizontal scrolling
39
+ - [ ] Line height is at least 1.5, paragraph spacing at least 2x font size
40
+ - [ ] No content is lost when user overrides text spacing
41
+
42
+ ## Operable
43
+
44
+ ### Keyboard Accessible (2.1)
45
+
46
+ - [ ] All functionality is available via keyboard
47
+ - [ ] No keyboard traps (user can navigate away from all components)
48
+ - [ ] Keyboard shortcuts can be turned off or remapped
49
+ - [ ] Focus order is logical and intuitive
50
+ - [ ] Custom components have appropriate keyboard interactions
51
+
52
+ ### Enough Time (2.2)
53
+
54
+ - [ ] Time limits can be turned off, adjusted, or extended
55
+ - [ ] Auto-updating content can be paused, stopped, or hidden
56
+ - [ ] No timing-dependent interactions unless essential
57
+ - [ ] Session timeouts warn users and allow extension
58
+
59
+ ### Seizures and Physical Reactions (2.3)
60
+
61
+ - [ ] No content flashes more than 3 times per second
62
+ - [ ] Motion animations can be disabled (respect prefers-reduced-motion)
63
+
64
+ ### Navigable (2.4)
65
+
66
+ - [ ] Skip link allows bypassing repetitive content
67
+ - [ ] Pages have descriptive titles
68
+ - [ ] Focus order matches visual order
69
+ - [ ] Link purpose is clear from link text (not "click here")
70
+ - [ ] Multiple ways to find pages (navigation, search, sitemap)
71
+ - [ ] Headings and labels describe content
72
+ - [ ] Focus indicator is visible
73
+
74
+ ### Input Modalities (2.5)
75
+
76
+ - [ ] Touch targets are at least 44x44 CSS pixels
77
+ - [ ] Functionality requiring multi-point gestures has alternatives
78
+ - [ ] Functionality requiring motion has alternatives
79
+ - [ ] Dragging operations have single-pointer alternatives
80
+
81
+ ## Understandable
82
+
83
+ ### Readable (3.1)
84
+
85
+ - [ ] Page language is set (`<html lang="en">`)
86
+ - [ ] Language changes within content are marked
87
+ - [ ] Unusual words or jargon are defined
88
+ - [ ] Abbreviations are expanded on first use
89
+
90
+ ### Predictable (3.2)
91
+
92
+ - [ ] Focus does not trigger unexpected context changes
93
+ - [ ] Input does not automatically trigger context changes
94
+ - [ ] Navigation is consistent across pages
95
+ - [ ] Components with same function are identified consistently
96
+
97
+ ### Input Assistance (3.3)
98
+
99
+ - [ ] Error messages identify the field and describe the error
100
+ - [ ] Form fields have labels and instructions
101
+ - [ ] Error suggestions are provided when known
102
+ - [ ] Users can review, correct, and confirm submissions
103
+ - [ ] Help is available for complex inputs
104
+
105
+ ## Robust
106
+
107
+ ### Compatible (4.1)
108
+
109
+ - [ ] HTML is valid and well-formed
110
+ - [ ] Custom components have proper ARIA roles, states, and properties
111
+ - [ ] Status messages are announced by screen readers (aria-live)
112
+ - [ ] Name, role, and value are programmatically determinable
113
+
114
+ ## Component-Specific Checks
115
+
116
+ ### Forms
117
+
118
+ - [ ] All inputs have visible labels
119
+ - [ ] Required fields are indicated (not by color alone)
120
+ - [ ] Error messages are associated with inputs
121
+ - [ ] Form validation errors are announced
122
+ - [ ] Autocomplete attributes are used appropriately
123
+
124
+ ### Modals and Dialogs
125
+
126
+ - [ ] Focus moves to modal when opened
127
+ - [ ] Focus is trapped within modal while open
128
+ - [ ] Focus returns to trigger element when closed
129
+ - [ ] Modal can be closed with Escape key
130
+ - [ ] Background content is hidden from screen readers (aria-hidden)
131
+
132
+ ### Navigation Menus
133
+
134
+ - [ ] Current page/section is indicated
135
+ - [ ] Dropdowns are keyboard accessible
136
+ - [ ] Expanded/collapsed state is announced (aria-expanded)
137
+ - [ ] Mobile menu is accessible
138
+
139
+ ### Data Tables
140
+
141
+ - [ ] Headers are properly associated with cells
142
+ - [ ] Complex tables use id/headers attributes
143
+ - [ ] Sortable columns indicate sort state
144
+ - [ ] Tables are not used for layout
145
+
146
+ ### Carousels and Sliders
147
+
148
+ - [ ] Pause control is available for auto-advancing
149
+ - [ ] Navigation controls are keyboard accessible
150
+ - [ ] Current slide is announced to screen readers
151
+ - [ ] Slide content is accessible when visible
152
+
153
+ ## Testing Methods
154
+
155
+ ### Automated Testing
156
+
157
+ - [ ] axe-core or similar tool runs in CI
158
+ - [ ] Lighthouse accessibility audit passes
159
+ - [ ] HTML validation passes
160
+
161
+ ### Manual Testing
162
+
163
+ - [ ] Navigate entire interface with keyboard only
164
+ - [ ] Test with screen reader (VoiceOver, NVDA)
165
+ - [ ] Test with browser zoom at 200%
166
+ - [ ] Test with high contrast mode
167
+ - [ ] Test with prefers-reduced-motion enabled
168
+
169
+ ## Usage Notes
170
+
171
+ 1. Accessibility is a legal requirement in many jurisdictions
172
+ 2. Not every item applies to every component - use judgment
173
+ 3. Automated tools catch only ~30% of issues - manual testing is essential
174
+ 4. Include users with disabilities in usability testing when possible
175
+ 5. Document exceptions with rationale and remediation plan
176
+ 6. Accessibility should be part of the definition of done
@@ -0,0 +1,154 @@
1
+ # Performance Checklist
2
+
3
+ Actionable performance optimization checks for frontend, backend, and database operations.
4
+
5
+ ## Frontend Performance
6
+
7
+ ### Initial Load
8
+
9
+ - [ ] Critical CSS is inlined or loaded first
10
+ - [ ] JavaScript is deferred or loaded async where possible
11
+ - [ ] Images are lazy-loaded below the fold
12
+ - [ ] Web fonts use `font-display: swap` to prevent blocking
13
+ - [ ] Bundle size is monitored and kept under budget
14
+ - [ ] Code splitting is used for route-based chunks
15
+ - [ ] Tree shaking removes unused code
16
+
17
+ ### Runtime Performance
18
+
19
+ - [ ] Long lists use virtualization (render only visible items)
20
+ - [ ] Expensive calculations are memoized
21
+ - [ ] React/Vue components avoid unnecessary re-renders
22
+ - [ ] Event handlers are debounced or throttled where appropriate
23
+ - [ ] Animations use CSS transforms, not layout-triggering properties
24
+ - [ ] Large data processing uses Web Workers
25
+
26
+ ### Assets
27
+
28
+ - [ ] Images are properly sized (not scaling down large images)
29
+ - [ ] Modern image formats used (WebP, AVIF with fallbacks)
30
+ - [ ] Images are compressed without quality loss
31
+ - [ ] SVGs are optimized and used for icons
32
+ - [ ] Fonts are subsetted to include only needed characters
33
+ - [ ] Assets are served from CDN
34
+
35
+ ### Caching
36
+
37
+ - [ ] Static assets have cache-control headers with long max-age
38
+ - [ ] Asset filenames include content hash for cache busting
39
+ - [ ] Service worker caches critical resources
40
+ - [ ] API responses include appropriate cache headers
41
+
42
+ ## Backend Performance
43
+
44
+ ### Request Handling
45
+
46
+ - [ ] Endpoints respond within acceptable latency targets
47
+ - [ ] Heavy operations are processed asynchronously
48
+ - [ ] Request payload size limits are enforced
49
+ - [ ] Response payloads include only necessary data
50
+ - [ ] Pagination is used for list endpoints
51
+ - [ ] Compression (gzip, brotli) is enabled
52
+
53
+ ### Computation
54
+
55
+ - [ ] CPU-intensive tasks are offloaded to worker processes
56
+ - [ ] Algorithms have acceptable time complexity for data size
57
+ - [ ] Loops avoid unnecessary iterations
58
+ - [ ] String concatenation in loops uses efficient methods
59
+ - [ ] Regular expressions are optimized and avoid catastrophic backtracking
60
+
61
+ ### Caching
62
+
63
+ - [ ] Frequently accessed data is cached in memory (Redis, Memcached)
64
+ - [ ] Cache invalidation strategy is defined
65
+ - [ ] Cache hit rates are monitored
66
+ - [ ] Cache keys are designed to avoid collisions
67
+ - [ ] TTLs are set appropriately for data freshness requirements
68
+
69
+ ### External Services
70
+
71
+ - [ ] API calls are batched where possible
72
+ - [ ] Circuit breakers prevent cascading failures
73
+ - [ ] Timeouts are set on all external calls
74
+ - [ ] Retries use exponential backoff
75
+ - [ ] Connection pools are sized appropriately
76
+
77
+ ## Database Performance
78
+
79
+ ### Query Optimization
80
+
81
+ - [ ] Queries retrieve only needed columns (no SELECT *)
82
+ - [ ] Indexes exist for frequently queried columns
83
+ - [ ] Composite indexes match query patterns
84
+ - [ ] N+1 query problems are eliminated (use JOINs or batch loading)
85
+ - [ ] Query execution plans are reviewed for slow queries
86
+ - [ ] LIMIT is used for large result sets
87
+
88
+ ### Schema Design
89
+
90
+ - [ ] Tables are normalized appropriately (avoid over-normalization)
91
+ - [ ] Data types are sized correctly (not oversized)
92
+ - [ ] Foreign keys have indexes
93
+ - [ ] Frequently accessed fields are not in separate tables requiring JOINs
94
+
95
+ ### Connection Management
96
+
97
+ - [ ] Connection pooling is configured
98
+ - [ ] Pool size matches expected concurrency
99
+ - [ ] Connections are released promptly after use
100
+ - [ ] Long-running transactions are avoided
101
+ - [ ] Read replicas are used for read-heavy workloads
102
+
103
+ ### Data Lifecycle
104
+
105
+ - [ ] Old data is archived or deleted according to policy
106
+ - [ ] Large tables have partitioning strategy
107
+ - [ ] Bulk operations are batched to avoid lock contention
108
+ - [ ] Indexes are rebuilt periodically if needed
109
+
110
+ ## API Performance
111
+
112
+ ### Design
113
+
114
+ - [ ] Endpoints support field selection (sparse fieldsets)
115
+ - [ ] Batch endpoints available for multiple-item operations
116
+ - [ ] GraphQL queries have depth/complexity limits
117
+ - [ ] Large responses support streaming or pagination
118
+
119
+ ### Network
120
+
121
+ - [ ] HTTP/2 or HTTP/3 is enabled
122
+ - [ ] Keep-alive connections are used
123
+ - [ ] Response compression is enabled
124
+ - [ ] CDN caching is used for cacheable responses
125
+
126
+ ## Monitoring and Measurement
127
+
128
+ ### Metrics
129
+
130
+ - [ ] Response time percentiles are tracked (p50, p95, p99)
131
+ - [ ] Error rates are monitored
132
+ - [ ] Resource utilization is tracked (CPU, memory, connections)
133
+ - [ ] Throughput is measured under load
134
+
135
+ ### Alerting
136
+
137
+ - [ ] Latency degradation triggers alerts
138
+ - [ ] Resource exhaustion triggers alerts
139
+ - [ ] Error rate spikes trigger alerts
140
+
141
+ ### Profiling
142
+
143
+ - [ ] Production profiling tools are available
144
+ - [ ] Slow query logging is enabled
145
+ - [ ] Application performance monitoring (APM) is configured
146
+
147
+ ## Usage Notes
148
+
149
+ 1. Measure before optimizing - identify actual bottlenecks
150
+ 2. Set performance budgets and enforce them in CI
151
+ 3. Not every optimization applies to every system
152
+ 4. Document performance-critical paths
153
+ 5. Load test under realistic conditions
154
+ 6. Performance regression tests should be part of CI/CD
@@ -0,0 +1,127 @@
1
+ # Security Checklist
2
+
3
+ OWASP Top 10 aligned security checks for code review and implementation validation.
4
+
5
+ ## A01: Broken Access Control
6
+
7
+ - [ ] All endpoints verify user authentication before processing
8
+ - [ ] Authorization checks occur on every request, not just UI hiding
9
+ - [ ] Users cannot access resources belonging to other users by modifying IDs
10
+ - [ ] Directory traversal attacks are prevented (no `../` in file paths)
11
+ - [ ] CORS is configured to allow only trusted origins
12
+ - [ ] Default deny: access requires explicit grant, not explicit denial
13
+
14
+ ## A02: Cryptographic Failures
15
+
16
+ - [ ] Sensitive data is encrypted at rest (database, file storage)
17
+ - [ ] TLS 1.2+ is enforced for all data in transit
18
+ - [ ] Passwords use strong hashing (bcrypt, argon2) with appropriate cost
19
+ - [ ] No hardcoded secrets, API keys, or credentials in code
20
+ - [ ] Secrets are stored in environment variables or secret managers
21
+ - [ ] Cryptographic keys are rotated on a schedule
22
+ - [ ] No deprecated algorithms (MD5, SHA1 for security, DES, RC4)
23
+
24
+ ## A03: Injection
25
+
26
+ - [ ] SQL queries use parameterized statements, never string concatenation
27
+ - [ ] NoSQL queries are properly escaped or use ODM/ORM
28
+ - [ ] OS commands are avoided; if necessary, inputs are validated against allowlist
29
+ - [ ] LDAP queries use proper escaping
30
+ - [ ] XML parsers disable external entity processing (XXE prevention)
31
+ - [ ] Template engines use auto-escaping by default
32
+
33
+ ## A04: Insecure Design
34
+
35
+ - [ ] Threat modeling performed for new features
36
+ - [ ] Rate limiting implemented on authentication and sensitive endpoints
37
+ - [ ] Business logic includes abuse prevention (e.g., quantity limits)
38
+ - [ ] Fail securely: errors default to denied access
39
+ - [ ] Security requirements documented and testable
40
+ - [ ] Separation of tenants in multi-tenant systems
41
+
42
+ ## A05: Security Misconfiguration
43
+
44
+ - [ ] Default credentials changed on all systems
45
+ - [ ] Unnecessary features and frameworks disabled
46
+ - [ ] Error messages do not expose stack traces or system details
47
+ - [ ] Security headers configured (CSP, X-Frame-Options, etc.)
48
+ - [ ] Cloud storage buckets are not publicly accessible by default
49
+ - [ ] Development/debug features disabled in production
50
+
51
+ ## A06: Vulnerable Components
52
+
53
+ - [ ] Dependencies are tracked and regularly updated
54
+ - [ ] Known vulnerabilities are checked (npm audit, Snyk, Dependabot)
55
+ - [ ] Components are obtained from official sources
56
+ - [ ] Unused dependencies are removed
57
+ - [ ] Component versions are pinned (not floating)
58
+ - [ ] License compliance is verified
59
+
60
+ ## A07: Identification and Authentication Failures
61
+
62
+ - [ ] Multi-factor authentication available for sensitive operations
63
+ - [ ] Password requirements meet current standards (length over complexity)
64
+ - [ ] Brute force protection: lockout or increasing delays
65
+ - [ ] Session tokens are regenerated after login
66
+ - [ ] Session tokens are invalidated on logout
67
+ - [ ] Sessions have appropriate timeouts
68
+ - [ ] Password reset tokens are single-use and time-limited
69
+
70
+ ## A08: Software and Data Integrity Failures
71
+
72
+ - [ ] CI/CD pipelines verify integrity of dependencies
73
+ - [ ] Signed commits or verified sources for code
74
+ - [ ] Deserialization of untrusted data is avoided
75
+ - [ ] If deserialization is necessary, integrity checks are in place
76
+ - [ ] Update mechanisms verify signatures
77
+ - [ ] Code review required before deployment
78
+
79
+ ## A09: Security Logging and Monitoring Failures
80
+
81
+ - [ ] Authentication events are logged (success and failure)
82
+ - [ ] Authorization failures are logged
83
+ - [ ] Input validation failures are logged
84
+ - [ ] Logs include sufficient context (timestamp, user, action, outcome)
85
+ - [ ] Logs do not contain sensitive data (passwords, tokens, PII)
86
+ - [ ] Alerting is configured for suspicious patterns
87
+ - [ ] Logs are stored securely and cannot be tampered with
88
+
89
+ ## A10: Server-Side Request Forgery (SSRF)
90
+
91
+ - [ ] URLs from user input are validated against allowlist
92
+ - [ ] Internal network addresses are blocked (127.0.0.1, 10.x, 192.168.x)
93
+ - [ ] URL schemes are restricted (http/https only)
94
+ - [ ] Responses from external requests are not directly returned to users
95
+ - [ ] Network segmentation limits impact of SSRF
96
+
97
+ ## Additional Checks
98
+
99
+ ### Input Validation
100
+
101
+ - [ ] All user input is validated on the server side
102
+ - [ ] Validation uses allowlists, not blocklists
103
+ - [ ] File uploads validate type, size, and content
104
+ - [ ] JSON/XML payloads are validated against schema
105
+
106
+ ### Output Encoding
107
+
108
+ - [ ] HTML output is encoded to prevent XSS
109
+ - [ ] JSON responses use proper content-type headers
110
+ - [ ] URLs are encoded when constructed dynamically
111
+ - [ ] Context-appropriate encoding (HTML, JavaScript, CSS, URL)
112
+
113
+ ### API Security
114
+
115
+ - [ ] Authentication required for all non-public endpoints
116
+ - [ ] API keys are treated as secrets
117
+ - [ ] Rate limiting prevents abuse
118
+ - [ ] Response data is filtered to authorized fields only
119
+ - [ ] HTTP methods are restricted appropriately
120
+
121
+ ## Usage Notes
122
+
123
+ 1. Apply this checklist during code review
124
+ 2. Use automated tools (SAST, DAST) to complement manual review
125
+ 3. Not all items apply to every change - use judgment
126
+ 4. Document any exceptions with rationale
127
+ 5. Security testing should be part of the CI/CD pipeline