proagents 1.6.17 → 1.6.18

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 (168) hide show
  1. package/.claude/settings.local.json +169 -0
  2. package/COMMANDS.md +595 -0
  3. package/README.md +13 -23
  4. package/package.json +2 -7
  5. package/.proagents/ai-models/README.md +0 -141
  6. package/.proagents/ai-models/cost-management.md +0 -362
  7. package/.proagents/ai-models/fallbacks.md +0 -342
  8. package/.proagents/ai-models/model-config.md +0 -318
  9. package/.proagents/ai-models/task-routing.md +0 -503
  10. package/.proagents/ai-training/README.md +0 -155
  11. package/.proagents/ai-training/continuous-learning.md +0 -413
  12. package/.proagents/ai-training/domain-knowledge.md +0 -378
  13. package/.proagents/ai-training/pattern-learning.md +0 -455
  14. package/.proagents/ai-training/training-data.md +0 -337
  15. package/.proagents/ai-training/user-preferences.md +0 -346
  16. package/.proagents/approval-workflows/README.md +0 -146
  17. package/.proagents/approval-workflows/approval-config.md +0 -332
  18. package/.proagents/approval-workflows/approval-stages.md +0 -503
  19. package/.proagents/approval-workflows/emergency-bypass.md +0 -351
  20. package/.proagents/approval-workflows/examples.md +0 -859
  21. package/.proagents/approval-workflows/notifications.md +0 -320
  22. package/.proagents/compliance/README.md +0 -206
  23. package/.proagents/compliance/access-control.md +0 -310
  24. package/.proagents/compliance/audit-logging.md +0 -444
  25. package/.proagents/compliance/compliance-frameworks.md +0 -429
  26. package/.proagents/compliance/reports.md +0 -491
  27. package/.proagents/compliance/retention-policies.md +0 -454
  28. package/.proagents/config-versioning/README.md +0 -120
  29. package/.proagents/config-versioning/changelog.md +0 -300
  30. package/.proagents/config-versioning/rollback.md +0 -283
  31. package/.proagents/config-versioning/versioning.md +0 -330
  32. package/.proagents/contract-testing/README.md +0 -223
  33. package/.proagents/contract-testing/contract-testing.md +0 -614
  34. package/.proagents/contract-testing/pact-integration.md +0 -507
  35. package/.proagents/contract-testing/schema-validation.md +0 -565
  36. package/.proagents/dependency-management/README.md +0 -140
  37. package/.proagents/dependency-management/automation.md +0 -363
  38. package/.proagents/dependency-management/compatibility.md +0 -319
  39. package/.proagents/dependency-management/security-scanning.md +0 -413
  40. package/.proagents/dependency-management/update-policies.md +0 -374
  41. package/.proagents/disaster-recovery/README.md +0 -247
  42. package/.proagents/disaster-recovery/automation.md +0 -366
  43. package/.proagents/disaster-recovery/backup-recovery.md +0 -571
  44. package/.proagents/disaster-recovery/incident-response.md +0 -565
  45. package/.proagents/disaster-recovery/rollback-procedures.md +0 -499
  46. package/.proagents/disaster-recovery/runbooks.md +0 -603
  47. package/.proagents/disaster-recovery/scenarios.md +0 -892
  48. package/.proagents/disaster-recovery/testing.md +0 -438
  49. package/.proagents/environments/README.md +0 -244
  50. package/.proagents/environments/configuration.md +0 -437
  51. package/.proagents/environments/promotion.md +0 -434
  52. package/.proagents/environments/setup.md +0 -420
  53. package/.proagents/examples/README.md +0 -55
  54. package/.proagents/examples/backend-nodejs/README.md +0 -188
  55. package/.proagents/examples/backend-nodejs/complete-conversation.md +0 -601
  56. package/.proagents/examples/backend-nodejs/proagents.config.yaml +0 -415
  57. package/.proagents/examples/backend-nodejs/workflow-example.md +0 -909
  58. package/.proagents/examples/fullstack-nextjs/README.md +0 -155
  59. package/.proagents/examples/fullstack-nextjs/complete-conversation.md +0 -604
  60. package/.proagents/examples/fullstack-nextjs/proagents.config.yaml +0 -287
  61. package/.proagents/examples/fullstack-nextjs/workflow-example.md +0 -553
  62. package/.proagents/examples/mobile-react-native/README.md +0 -171
  63. package/.proagents/examples/mobile-react-native/complete-conversation.md +0 -825
  64. package/.proagents/examples/mobile-react-native/proagents.config.yaml +0 -330
  65. package/.proagents/examples/mobile-react-native/workflow-example.md +0 -723
  66. package/.proagents/examples/web-frontend-react/README.md +0 -125
  67. package/.proagents/examples/web-frontend-react/complete-conversation.md +0 -556
  68. package/.proagents/examples/web-frontend-react/proagents.config.yaml +0 -183
  69. package/.proagents/examples/web-frontend-react/workflow-example.md +0 -603
  70. package/.proagents/existing-projects/README.md +0 -65
  71. package/.proagents/existing-projects/challenges.md +0 -861
  72. package/.proagents/existing-projects/coexistence-mode.md +0 -483
  73. package/.proagents/existing-projects/compatibility-assessment.md +0 -541
  74. package/.proagents/existing-projects/gradual-adoption.md +0 -515
  75. package/.proagents/existing-projects/migration-strategies.md +0 -788
  76. package/.proagents/existing-projects/pattern-reconciliation.md +0 -489
  77. package/.proagents/existing-projects/team-onboarding.md +0 -617
  78. package/.proagents/existing-projects/technical-debt-handling.md +0 -644
  79. package/.proagents/feature-flags/README.md +0 -263
  80. package/.proagents/feature-flags/ab-testing.md +0 -413
  81. package/.proagents/feature-flags/configuration.md +0 -420
  82. package/.proagents/feature-flags/kill-switches.md +0 -444
  83. package/.proagents/feature-flags/rollout-strategies.md +0 -392
  84. package/.proagents/history.log +0 -12
  85. package/.proagents/i18n/README.md +0 -133
  86. package/.proagents/i18n/extraction.md +0 -433
  87. package/.proagents/i18n/tms-integration.md +0 -332
  88. package/.proagents/i18n/translation-workflow.md +0 -413
  89. package/.proagents/i18n/validation.md +0 -355
  90. package/.proagents/logging/README.md +0 -276
  91. package/.proagents/logging/aggregation.md +0 -475
  92. package/.proagents/logging/log-levels.md +0 -376
  93. package/.proagents/logging/sensitive-data.md +0 -423
  94. package/.proagents/logging/structured-logging.md +0 -406
  95. package/.proagents/metrics/README.md +0 -69
  96. package/.proagents/metrics/code-quality-kpis.md +0 -461
  97. package/.proagents/metrics/deployment-metrics.md +0 -517
  98. package/.proagents/metrics/developer-productivity.md +0 -368
  99. package/.proagents/metrics/learning-effectiveness.md +0 -478
  100. package/.proagents/migrations/README.md +0 -77
  101. package/.proagents/migrations/from-claude-projects.md +0 -313
  102. package/.proagents/migrations/from-cursor-rules.md +0 -345
  103. package/.proagents/migrations/from-custom-workflows.md +0 -410
  104. package/.proagents/monitoring/README.md +0 -308
  105. package/.proagents/monitoring/alerting.md +0 -449
  106. package/.proagents/monitoring/dashboards.md +0 -454
  107. package/.proagents/monitoring/health-checks.md +0 -436
  108. package/.proagents/monitoring/metrics.md +0 -434
  109. package/.proagents/multi-project/README.md +0 -170
  110. package/.proagents/multi-project/coordinated-deploy.md +0 -510
  111. package/.proagents/multi-project/cross-project-deps.md +0 -395
  112. package/.proagents/multi-project/unified-changelog.md +0 -477
  113. package/.proagents/multi-project/walkthroughs/monorepo-setup.md +0 -787
  114. package/.proagents/multi-project/workspace-config.md +0 -408
  115. package/.proagents/notifications/README.md +0 -151
  116. package/.proagents/notifications/channels.md +0 -457
  117. package/.proagents/notifications/preferences.md +0 -415
  118. package/.proagents/notifications/routing.md +0 -449
  119. package/.proagents/notifications/scheduling.md +0 -425
  120. package/.proagents/notifications/templates.md +0 -446
  121. package/.proagents/offline-mode/README.md +0 -145
  122. package/.proagents/offline-mode/caching.md +0 -344
  123. package/.proagents/offline-mode/offline-operations.md +0 -312
  124. package/.proagents/offline-mode/queue-specifications.md +0 -679
  125. package/.proagents/offline-mode/sync.md +0 -475
  126. package/.proagents/parallel-features/README.md +0 -85
  127. package/.proagents/parallel-features/conflict-detection.md +0 -226
  128. package/.proagents/parallel-features/dependency-management.md +0 -392
  129. package/.proagents/parallel-features/merge-coordination.md +0 -506
  130. package/.proagents/parallel-features/tracking-system.md +0 -416
  131. package/.proagents/performance/README.md +0 -59
  132. package/.proagents/performance/bundle-analysis.md +0 -375
  133. package/.proagents/performance/load-testing.md +0 -563
  134. package/.proagents/performance/runtime-metrics.md +0 -489
  135. package/.proagents/performance/web-vitals.md +0 -425
  136. package/.proagents/plugins/README.md +0 -139
  137. package/.proagents/plugins/creating-plugins.md +0 -504
  138. package/.proagents/plugins/plugin-api.md +0 -467
  139. package/.proagents/plugins/plugin-registry.md +0 -276
  140. package/.proagents/reporting/README.md +0 -158
  141. package/.proagents/reporting/dashboards.md +0 -366
  142. package/.proagents/reporting/exports.md +0 -524
  143. package/.proagents/reporting/quality-metrics.md +0 -385
  144. package/.proagents/reporting/templates/README.md +0 -56
  145. package/.proagents/reporting/templates/dashboard-config.json +0 -187
  146. package/.proagents/reporting/templates/metrics-queries.md +0 -427
  147. package/.proagents/reporting/templates/react-dashboard.tsx +0 -544
  148. package/.proagents/reporting/templates/widgets.md +0 -451
  149. package/.proagents/reporting/velocity-metrics.md +0 -340
  150. package/.proagents/reverse-engineering/README.md +0 -151
  151. package/.proagents/reverse-engineering/architecture-extraction.md +0 -325
  152. package/.proagents/reverse-engineering/code-analysis.md +0 -377
  153. package/.proagents/reverse-engineering/dependency-mapping.md +0 -567
  154. package/.proagents/reverse-engineering/diagram-generation.md +0 -586
  155. package/.proagents/reverse-engineering/documentation-generation.md +0 -468
  156. package/.proagents/reverse-engineering/pattern-detection.md +0 -569
  157. package/.proagents/reverse-engineering/quality-assessment.md +0 -733
  158. package/.proagents/secrets/README.md +0 -278
  159. package/.proagents/secrets/access-control.md +0 -443
  160. package/.proagents/secrets/rotation.md +0 -403
  161. package/.proagents/secrets/scanning.md +0 -487
  162. package/.proagents/secrets/storage.md +0 -394
  163. package/.proagents/webhooks/README.md +0 -126
  164. package/.proagents/webhooks/endpoints.md +0 -298
  165. package/.proagents/webhooks/events.md +0 -316
  166. package/.proagents/webhooks/payloads.md +0 -325
  167. package/.proagents/webhooks/reliability.md +0 -363
  168. package/.proagents/webhooks/security.md +0 -380
@@ -1,487 +0,0 @@
1
- # Secret Scanning
2
-
3
- Detecting exposed secrets in code and configurations.
4
-
5
- ---
6
-
7
- ## Scanning Types
8
-
9
- | Type | When | Purpose |
10
- |------|------|---------|
11
- | **Pre-commit** | Before commit | Prevent secrets from entering repo |
12
- | **CI/CD** | On push/PR | Catch secrets that slip through |
13
- | **Repository** | Scheduled | Find historical secrets |
14
- | **Runtime** | Continuous | Detect secrets in logs/outputs |
15
-
16
- ---
17
-
18
- ## Configuration
19
-
20
- ### Basic Setup
21
-
22
- ```yaml
23
- # proagents.config.yaml
24
- secrets:
25
- scanning:
26
- enabled: true
27
-
28
- # Scan stages
29
- stages:
30
- pre_commit: true
31
- ci_cd: true
32
- repository: true
33
- runtime: true
34
-
35
- # Patterns to detect
36
- patterns:
37
- builtin:
38
- - "aws_access_key"
39
- - "aws_secret_key"
40
- - "github_token"
41
- - "slack_webhook"
42
- - "stripe_api_key"
43
- - "google_api_key"
44
- - "jwt_token"
45
- - "private_key"
46
- - "password_in_url"
47
-
48
- # Actions on detection
49
- actions:
50
- pre_commit:
51
- block: true
52
- message: "Potential secret detected. Please remove before committing."
53
-
54
- ci_cd:
55
- fail_build: true
56
- notify: ["security@company.com"]
57
-
58
- repository:
59
- create_issue: true
60
- notify: ["security@company.com"]
61
- ```
62
-
63
- ### Custom Patterns
64
-
65
- ```yaml
66
- secrets:
67
- scanning:
68
- custom_patterns:
69
- # Company-specific patterns
70
- - name: "internal_api_key"
71
- pattern: 'MYCOMPANY_[A-Z0-9]{32}'
72
- description: "Internal API key"
73
- severity: "high"
74
-
75
- - name: "database_connection"
76
- pattern: '(mysql|postgres|mongodb)://[^:]+:[^@]+@'
77
- description: "Database connection string with credentials"
78
- severity: "critical"
79
-
80
- - name: "internal_token"
81
- pattern: 'int_[a-zA-Z0-9]{40}'
82
- description: "Internal service token"
83
- severity: "high"
84
-
85
- # Entropy-based detection
86
- entropy:
87
- enabled: true
88
- min_length: 20
89
- threshold: 4.5 # Shannon entropy threshold
90
- ```
91
-
92
- ---
93
-
94
- ## Pre-commit Scanning
95
-
96
- ### Git Hooks
97
-
98
- ```yaml
99
- secrets:
100
- scanning:
101
- pre_commit:
102
- enabled: true
103
-
104
- # Hook configuration
105
- hook:
106
- type: "pre-commit"
107
- tool: "gitleaks"
108
-
109
- # Files to scan
110
- include:
111
- - "**/*.ts"
112
- - "**/*.js"
113
- - "**/*.json"
114
- - "**/*.yaml"
115
- - "**/*.yml"
116
- - "**/*.env*"
117
-
118
- # Files to skip
119
- exclude:
120
- - "node_modules/**"
121
- - "*.test.ts"
122
- - "**/*.min.js"
123
-
124
- # Allow specific patterns
125
- allowlist:
126
- - pattern: "EXAMPLE_API_KEY"
127
- reason: "Documentation example"
128
- - path: "docs/examples/**"
129
- reason: "Example files"
130
- ```
131
-
132
- ### Pre-commit Config
133
-
134
- ```yaml
135
- # .pre-commit-config.yaml
136
- repos:
137
- - repo: https://github.com/gitleaks/gitleaks
138
- rev: v8.18.0
139
- hooks:
140
- - id: gitleaks
141
-
142
- - repo: local
143
- hooks:
144
- - id: proagents-secret-scan
145
- name: ProAgents Secret Scan
146
- entry: proagents secrets scan --staged
147
- language: system
148
- pass_filenames: false
149
- ```
150
-
151
- ---
152
-
153
- ## CI/CD Scanning
154
-
155
- ### GitHub Actions
156
-
157
- ```yaml
158
- # .github/workflows/security.yml
159
- name: Secret Scanning
160
-
161
- on:
162
- push:
163
- branches: [main, develop]
164
- pull_request:
165
-
166
- jobs:
167
- scan:
168
- runs-on: ubuntu-latest
169
- steps:
170
- - uses: actions/checkout@v4
171
- with:
172
- fetch-depth: 0
173
-
174
- - name: Run Gitleaks
175
- uses: gitleaks/gitleaks-action@v2
176
- env:
177
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
178
-
179
- - name: Run TruffleHog
180
- uses: trufflesecurity/trufflehog@main
181
- with:
182
- path: ./
183
- base: ${{ github.event.repository.default_branch }}
184
- head: HEAD
185
-
186
- - name: ProAgents Secret Scan
187
- run: |
188
- npx proagents secrets scan --ci
189
- env:
190
- PROAGENTS_FAIL_ON_SECRETS: true
191
- ```
192
-
193
- ### GitLab CI
194
-
195
- ```yaml
196
- # .gitlab-ci.yml
197
- secret_scan:
198
- stage: security
199
- image: zricethezav/gitleaks:latest
200
- script:
201
- - gitleaks detect --source . --verbose
202
- rules:
203
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
204
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
205
- ```
206
-
207
- ---
208
-
209
- ## Repository Scanning
210
-
211
- ### Full History Scan
212
-
213
- ```yaml
214
- secrets:
215
- scanning:
216
- repository:
217
- # Schedule
218
- schedule: "0 2 * * *" # Daily at 2 AM
219
-
220
- # Scan options
221
- options:
222
- full_history: true
223
- include_branches: ["main", "develop"]
224
- depth: 0 # All commits
225
-
226
- # Reporting
227
- report:
228
- format: "sarif"
229
- output: "secret-scan-report.sarif"
230
- upload_to: "github-security"
231
-
232
- # On finding
233
- on_finding:
234
- severity_high:
235
- - create_issue: true
236
- - notify: ["security-team"]
237
- - block_deploy: true
238
-
239
- severity_medium:
240
- - create_issue: true
241
- - notify: ["tech-leads"]
242
-
243
- severity_low:
244
- - log_only: true
245
- ```
246
-
247
- ### Remediation Workflow
248
-
249
- ```yaml
250
- secrets:
251
- scanning:
252
- remediation:
253
- # Automatic issue creation
254
- create_issue:
255
- enabled: true
256
- template: |
257
- ## Secret Detected
258
-
259
- **Type:** {{secret_type}}
260
- **File:** {{file_path}}
261
- **Line:** {{line_number}}
262
- **Commit:** {{commit_hash}}
263
- **Author:** {{commit_author}}
264
-
265
- ### Required Actions
266
- 1. Rotate the exposed secret immediately
267
- 2. Remove the secret from git history
268
- 3. Update the secret in secrets manager
269
- 4. Verify no unauthorized access occurred
270
-
271
- ### Commands
272
- ```bash
273
- # Remove from history
274
- git filter-branch --force --index-filter \
275
- "git rm --cached --ignore-unmatch {{file_path}}" \
276
- --prune-empty --tag-name-filter cat -- --all
277
-
278
- # Or use BFG
279
- bfg --replace-text secrets.txt
280
- ```
281
-
282
- labels:
283
- - "security"
284
- - "secret-exposure"
285
- - "priority:high"
286
-
287
- assignees:
288
- - "{{commit_author}}"
289
- - "@security-team"
290
- ```
291
-
292
- ---
293
-
294
- ## Runtime Scanning
295
-
296
- ### Log Scanning
297
-
298
- ```yaml
299
- secrets:
300
- scanning:
301
- runtime:
302
- logs:
303
- enabled: true
304
-
305
- # Scan log output
306
- sources:
307
- - stdout
308
- - stderr
309
- - log_files
310
-
311
- # Patterns to detect
312
- patterns:
313
- - "password"
314
- - "secret"
315
- - "token"
316
- - "api_key"
317
- - "private_key"
318
-
319
- # Actions
320
- on_detection:
321
- - redact_in_output: true
322
- - alert: ["security-team"]
323
- - metric: "secret_in_log_detected"
324
- ```
325
-
326
- ### Implementation
327
-
328
- ```typescript
329
- // scanning/runtime.ts
330
- import { secretPatterns } from './patterns';
331
-
332
- export function scanForSecrets(text: string): SecretFinding[] {
333
- const findings: SecretFinding[] = [];
334
-
335
- for (const pattern of secretPatterns) {
336
- const matches = text.matchAll(pattern.regex);
337
- for (const match of matches) {
338
- findings.push({
339
- type: pattern.name,
340
- value: mask(match[0]),
341
- position: match.index,
342
- severity: pattern.severity,
343
- });
344
- }
345
- }
346
-
347
- return findings;
348
- }
349
-
350
- // Logger wrapper that scans output
351
- export function createSecurLogger(baseLogger: Logger): Logger {
352
- return {
353
- log: (level: string, message: string, data?: object) => {
354
- const combined = JSON.stringify({ message, data });
355
- const findings = scanForSecrets(combined);
356
-
357
- if (findings.length > 0) {
358
- alertSecurityTeam(findings);
359
- // Redact and log warning
360
- const redacted = redactSecrets(combined, findings);
361
- baseLogger.warn('Potential secret in log output detected', {
362
- original_redacted: redacted,
363
- findings: findings.map(f => ({ type: f.type, severity: f.severity })),
364
- });
365
- } else {
366
- baseLogger.log(level, message, data);
367
- }
368
- },
369
- };
370
- }
371
- ```
372
-
373
- ---
374
-
375
- ## Detection Patterns
376
-
377
- ### Common Secret Patterns
378
-
379
- ```yaml
380
- secrets:
381
- scanning:
382
- patterns:
383
- # AWS
384
- aws_access_key:
385
- pattern: '(?:A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}'
386
- severity: "critical"
387
-
388
- aws_secret_key:
389
- pattern: '(?i)aws(.{0,20})?(?-i)['\''"][0-9a-zA-Z\/+]{40}['\''"]'
390
- severity: "critical"
391
-
392
- # GitHub
393
- github_token:
394
- pattern: '(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9_]{36,}'
395
- severity: "critical"
396
-
397
- # Stripe
398
- stripe_key:
399
- pattern: '(?:sk|pk)_(test|live)_[0-9a-zA-Z]{24,}'
400
- severity: "critical"
401
-
402
- # Generic
403
- private_key:
404
- pattern: '-----BEGIN (?:RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----'
405
- severity: "critical"
406
-
407
- password_in_url:
408
- pattern: '://[^:]+:[^@]+@'
409
- severity: "high"
410
-
411
- jwt_token:
412
- pattern: 'eyJ[A-Za-z0-9-_=]+\.eyJ[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*'
413
- severity: "high"
414
- ```
415
-
416
- ---
417
-
418
- ## Reporting
419
-
420
- ### Report Format
421
-
422
- ```json
423
- {
424
- "scan_id": "scan-abc123",
425
- "timestamp": "2024-01-15T10:30:00Z",
426
- "repository": "myorg/myrepo",
427
- "branch": "main",
428
- "findings": [
429
- {
430
- "type": "aws_access_key",
431
- "severity": "critical",
432
- "file": "config/aws.js",
433
- "line": 15,
434
- "commit": "abc123",
435
- "author": "developer@company.com",
436
- "date": "2024-01-10T09:00:00Z",
437
- "snippet": "const AWS_KEY = 'AKIA**************';"
438
- }
439
- ],
440
- "summary": {
441
- "total_findings": 1,
442
- "critical": 1,
443
- "high": 0,
444
- "medium": 0,
445
- "low": 0
446
- }
447
- }
448
- ```
449
-
450
- ---
451
-
452
- ## Commands
453
-
454
- ```bash
455
- # Scan staged files
456
- proagents secrets scan --staged
457
-
458
- # Scan entire repository
459
- proagents secrets scan --full-history
460
-
461
- # Scan specific path
462
- proagents secrets scan ./src
463
-
464
- # Generate report
465
- proagents secrets scan --report sarif > report.sarif
466
-
467
- # Test patterns
468
- proagents secrets test-pattern "AKIA1234567890ABCDEF"
469
-
470
- # List detected secret types
471
- proagents secrets patterns list
472
-
473
- # Add custom pattern
474
- proagents secrets patterns add --name "my_token" --pattern "MTK_[a-z0-9]{32}"
475
- ```
476
-
477
- ---
478
-
479
- ## Best Practices
480
-
481
- 1. **Shift Left**: Scan before commit, not just in CI
482
- 2. **Full History**: Periodically scan complete git history
483
- 3. **Custom Patterns**: Add patterns for your specific secrets
484
- 4. **Allowlists**: Document and review allowlisted patterns
485
- 5. **Immediate Response**: Rotate exposed secrets immediately
486
- 6. **Education**: Train developers on secret hygiene
487
- 7. **Runtime Scanning**: Monitor logs for accidental exposure