agentic-qe 1.1.0 → 1.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.
- package/.claude/agents/qe-coverage-analyzer.md +8 -0
- package/.claude/agents/qe-flaky-test-hunter.md +9 -1
- package/.claude/agents/qe-test-generator.md +7 -0
- package/.claude/agents/reasoning/agent.md +816 -0
- package/.claude/agents/reasoning/goal-planner.md +73 -0
- package/.claude/settings.json +21 -20
- package/.claude/skills/README.md +124 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
- package/.claude/skills/agentdb-learning/SKILL.md +545 -0
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
- package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
- package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
- package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
- package/.claude/skills/code-review-quality/SKILL.md +683 -0
- package/.claude/skills/consultancy-practices/SKILL.md +540 -0
- package/.claude/skills/context-driven-testing/SKILL.md +466 -0
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/.claude/skills/github-code-review/SKILL.md +1140 -0
- package/.claude/skills/github-multi-repo/SKILL.md +874 -0
- package/.claude/skills/github-project-management/SKILL.md +1277 -0
- package/.claude/skills/github-release-management/SKILL.md +1081 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
- package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
- package/.claude/skills/hooks-automation/SKILL.md +1201 -0
- package/.claude/skills/pair-programming/SKILL.md +1202 -0
- package/.claude/skills/performance-analysis/SKILL.md +563 -0
- package/.claude/skills/performance-testing/SKILL.md +662 -0
- package/.claude/skills/quality-metrics/SKILL.md +592 -0
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
- package/.claude/skills/risk-based-testing/SKILL.md +721 -0
- package/.claude/skills/security-testing/SKILL.md +651 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
- package/.claude/skills/stream-chain/SKILL.md +563 -0
- package/.claude/skills/swarm-advanced/SKILL.md +973 -0
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
- package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
- package/.claude/skills/technical-writing/SKILL.md +235 -0
- package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
- package/.claude/skills/verification-quality/SKILL.md +649 -0
- package/.claude/skills/xp-practices/SKILL.md +671 -0
- package/.claude/statusline-command.sh +176 -0
- package/CHANGELOG.md +536 -1
- package/README.md +92 -3
- package/config/improvement-loop.config.ts +323 -0
- package/config/neural-agent.config.ts +197 -0
- package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
- package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryStoreAdapter.js +16 -16
- package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +69 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +382 -1
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +13 -2
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +105 -6
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +13 -13
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +28 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +159 -4
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +2 -2
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +14 -5
- package/dist/agents/LearningAgent.d.ts.map +1 -1
- package/dist/agents/LearningAgent.js +36 -16
- package/dist/agents/LearningAgent.js.map +1 -1
- package/dist/agents/NeuralAgentExtension.d.ts +117 -0
- package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
- package/dist/agents/NeuralAgentExtension.js +288 -0
- package/dist/agents/NeuralAgentExtension.js.map +1 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +4 -3
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +7 -7
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +2 -2
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +5 -5
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +7 -7
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +1 -1
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +6 -6
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +1 -3
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +15 -4
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +165 -43
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
- package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
- package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.js +346 -0
- package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
- package/dist/cli/commands/agent/index.d.ts +5 -0
- package/dist/cli/commands/agent/index.d.ts.map +1 -1
- package/dist/cli/commands/agent/index.js +11 -6
- package/dist/cli/commands/agent/index.js.map +1 -1
- package/dist/cli/commands/agent/kill.d.ts +13 -0
- package/dist/cli/commands/agent/kill.d.ts.map +1 -0
- package/dist/cli/commands/agent/kill.js +65 -0
- package/dist/cli/commands/agent/kill.js.map +1 -0
- package/dist/cli/commands/agent/list.d.ts +19 -0
- package/dist/cli/commands/agent/list.d.ts.map +1 -0
- package/dist/cli/commands/agent/list.js +92 -0
- package/dist/cli/commands/agent/list.js.map +1 -0
- package/dist/cli/commands/agent/logs.d.ts +14 -0
- package/dist/cli/commands/agent/logs.d.ts.map +1 -0
- package/dist/cli/commands/agent/logs.js +77 -0
- package/dist/cli/commands/agent/logs.js.map +1 -0
- package/dist/cli/commands/agent/metrics.d.ts +21 -0
- package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
- package/dist/cli/commands/agent/metrics.js +87 -0
- package/dist/cli/commands/agent/metrics.js.map +1 -0
- package/dist/cli/commands/agent/spawn.d.ts +28 -0
- package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
- package/dist/cli/commands/agent/spawn.js +83 -0
- package/dist/cli/commands/agent/spawn.js.map +1 -0
- package/dist/cli/commands/init.d.ts +24 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +475 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/skills/index.d.ts +51 -0
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +364 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/index.js +92 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/EventBus.d.ts +38 -0
- package/dist/core/EventBus.d.ts.map +1 -1
- package/dist/core/EventBus.js +176 -31
- package/dist/core/EventBus.js.map +1 -1
- package/dist/core/FleetManager.d.ts +35 -1
- package/dist/core/FleetManager.d.ts.map +1 -1
- package/dist/core/FleetManager.js +121 -45
- package/dist/core/FleetManager.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +19 -1
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +25 -1
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
- package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingCache.js +239 -0
- package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
- package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
- package/dist/core/embeddings/index.d.ts +15 -0
- package/dist/core/embeddings/index.d.ts.map +1 -0
- package/dist/core/embeddings/index.js +22 -0
- package/dist/core/embeddings/index.js.map +1 -0
- package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
- package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
- package/dist/core/memory/AgentDBIntegration.js +75 -0
- package/dist/core/memory/AgentDBIntegration.js.map +1 -0
- package/dist/core/memory/AgentDBManager.d.ts +200 -0
- package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
- package/dist/core/memory/AgentDBManager.js +263 -0
- package/dist/core/memory/AgentDBManager.js.map +1 -0
- package/dist/core/memory/AgentDBService.d.ts +160 -0
- package/dist/core/memory/AgentDBService.d.ts.map +1 -0
- package/dist/core/memory/AgentDBService.js +450 -0
- package/dist/core/memory/AgentDBService.js.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.js +230 -0
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.js +80 -0
- package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +75 -3
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +236 -52
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +4 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +9 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/neural/NeuralTrainer.d.ts +137 -0
- package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
- package/dist/core/neural/NeuralTrainer.js +543 -0
- package/dist/core/neural/NeuralTrainer.js.map +1 -0
- package/dist/core/neural/index.d.ts +8 -0
- package/dist/core/neural/index.d.ts.map +1 -0
- package/dist/core/neural/index.js +24 -0
- package/dist/core/neural/index.js.map +1 -0
- package/dist/core/neural/types.d.ts +216 -0
- package/dist/core/neural/types.d.ts.map +1 -0
- package/dist/core/neural/types.js +8 -0
- package/dist/core/neural/types.js.map +1 -0
- package/dist/core/security/CertificateValidator.d.ts +130 -0
- package/dist/core/security/CertificateValidator.d.ts.map +1 -0
- package/dist/core/security/CertificateValidator.js +376 -0
- package/dist/core/security/CertificateValidator.js.map +1 -0
- package/dist/core/transport/QUICTransport.d.ts +62 -0
- package/dist/core/transport/QUICTransport.d.ts.map +1 -0
- package/dist/core/transport/QUICTransport.js +381 -0
- package/dist/core/transport/QUICTransport.js.map +1 -0
- package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
- package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
- package/dist/core/transport/SecureQUICTransport.js +253 -0
- package/dist/core/transport/SecureQUICTransport.js.map +1 -0
- package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
- package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
- package/dist/learning/AdvancedFeatureExtractor.js +423 -0
- package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
- package/dist/learning/FlakyPredictionModel.d.ts +11 -1
- package/dist/learning/FlakyPredictionModel.d.ts.map +1 -1
- package/dist/learning/FlakyPredictionModel.js +82 -35
- package/dist/learning/FlakyPredictionModel.js.map +1 -1
- package/dist/learning/FlakyTestDetector.d.ts +9 -0
- package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
- package/dist/learning/FlakyTestDetector.js +28 -6
- package/dist/learning/FlakyTestDetector.js.map +1 -1
- package/dist/learning/ImprovementLoop.d.ts +16 -2
- package/dist/learning/ImprovementLoop.d.ts.map +1 -1
- package/dist/learning/ImprovementLoop.js +67 -8
- package/dist/learning/ImprovementLoop.js.map +1 -1
- package/dist/learning/ImprovementWorker.d.ts +83 -0
- package/dist/learning/ImprovementWorker.d.ts.map +1 -0
- package/dist/learning/ImprovementWorker.js +164 -0
- package/dist/learning/ImprovementWorker.js.map +1 -0
- package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
- package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
- package/dist/learning/NeuralPatternMatcher.js +702 -0
- package/dist/learning/NeuralPatternMatcher.js.map +1 -0
- package/dist/learning/NeuralTrainer.d.ts +209 -0
- package/dist/learning/NeuralTrainer.d.ts.map +1 -0
- package/dist/learning/NeuralTrainer.js +478 -0
- package/dist/learning/NeuralTrainer.js.map +1 -0
- package/dist/learning/index.d.ts +13 -7
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +27 -11
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +1 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/learning/types.js +16 -0
- package/dist/learning/types.js.map +1 -1
- package/dist/mcp/MCPToolRegistry.d.ts +34 -0
- package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
- package/dist/mcp/MCPToolRegistry.js +48 -0
- package/dist/mcp/MCPToolRegistry.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +7 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/transport/QUICTransport.d.ts +340 -0
- package/dist/transport/QUICTransport.d.ts.map +1 -0
- package/dist/transport/QUICTransport.js +814 -0
- package/dist/transport/QUICTransport.js.map +1 -0
- package/dist/transport/UDPTransport.d.ts +348 -0
- package/dist/transport/UDPTransport.d.ts.map +1 -0
- package/dist/transport/UDPTransport.js +820 -0
- package/dist/transport/UDPTransport.js.map +1 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/index.d.ts +37 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/quic.d.ts +339 -0
- package/dist/types/quic.d.ts.map +1 -0
- package/dist/types/quic.js +48 -0
- package/dist/types/quic.js.map +1 -0
- package/dist/utils/Config.js +1 -1
- package/dist/utils/Config.js.map +1 -1
- package/dist/utils/Database.d.ts +14 -0
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +51 -4
- package/dist/utils/Database.js.map +1 -1
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +111 -26
- package/dist/utils/Logger.js.map +1 -1
- package/package.json +30 -7
|
@@ -0,0 +1,632 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bug-reporting-excellence
|
|
3
|
+
description: Write high-quality bug reports that get fixed quickly. Use when reporting bugs, training teams on bug reporting, or establishing bug report standards.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
category: communication
|
|
6
|
+
tags: [bug-reporting, quality-assurance, documentation, communication, defect-tracking, collaboration]
|
|
7
|
+
difficulty: beginner
|
|
8
|
+
estimated_time: 30 minutes
|
|
9
|
+
author: user
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Bug Reporting Excellence
|
|
13
|
+
|
|
14
|
+
## Core Philosophy
|
|
15
|
+
|
|
16
|
+
A good bug report saves hours of investigation. A bad bug report wastes everyone's time. Your job isn't just finding bugs - it's communicating them effectively.
|
|
17
|
+
|
|
18
|
+
**Key principle:** Make it easy for someone to reproduce, understand, and fix the issue.
|
|
19
|
+
|
|
20
|
+
## The Perfect Bug Report Structure
|
|
21
|
+
|
|
22
|
+
### Title: One-Line Summary
|
|
23
|
+
|
|
24
|
+
**Bad:** "Checkout broken"
|
|
25
|
+
**Good:** "Payment fails with Visa cards when order total > $1000"
|
|
26
|
+
|
|
27
|
+
**Formula:** `[Component] fails [Condition] causing [Impact]`
|
|
28
|
+
|
|
29
|
+
### Description: Three Parts
|
|
30
|
+
|
|
31
|
+
#### 1. Expected Behavior
|
|
32
|
+
What should happen?
|
|
33
|
+
|
|
34
|
+
**Example:**
|
|
35
|
+
```
|
|
36
|
+
When a user adds items to cart and proceeds to checkout with a valid Visa card,
|
|
37
|
+
the payment should be processed successfully and the order should be created.
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
#### 2. Actual Behavior
|
|
41
|
+
What actually happens?
|
|
42
|
+
|
|
43
|
+
**Example:**
|
|
44
|
+
```
|
|
45
|
+
Payment fails with error "Card declined" even though the card is valid.
|
|
46
|
+
User remains on checkout page, order is not created.
|
|
47
|
+
Error appears in console: "Payment gateway timeout: 30000ms exceeded"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### 3. Steps to Reproduce
|
|
51
|
+
How to make it happen?
|
|
52
|
+
|
|
53
|
+
**Example:**
|
|
54
|
+
```
|
|
55
|
+
1. Log in as test user (test@example.com / password123)
|
|
56
|
+
2. Add "Premium Widget" to cart (SKU: WIDGET-001)
|
|
57
|
+
3. Add quantity: 15 (total: $1,050)
|
|
58
|
+
4. Go to checkout
|
|
59
|
+
5. Enter Visa card: 4532 1234 5678 9010
|
|
60
|
+
6. Click "Place Order"
|
|
61
|
+
7. Observe error message
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Essential Information to Include
|
|
65
|
+
|
|
66
|
+
### Environment Details
|
|
67
|
+
```
|
|
68
|
+
Browser: Chrome 120.0.6099.109 (Windows)
|
|
69
|
+
OS: Windows 11 Pro
|
|
70
|
+
Screen: 1920x1080
|
|
71
|
+
URL: https://example.com/checkout
|
|
72
|
+
Date/Time: 2025-10-17 14:23 UTC
|
|
73
|
+
User: test@example.com (ID: 12345)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Impact/Severity
|
|
77
|
+
|
|
78
|
+
**Critical:** System down, data loss, security breach
|
|
79
|
+
- "Production database deleted"
|
|
80
|
+
- "Payment processing completely broken"
|
|
81
|
+
- "User credentials exposed"
|
|
82
|
+
|
|
83
|
+
**High:** Major feature broken, many users affected
|
|
84
|
+
- "Cannot checkout with Visa cards"
|
|
85
|
+
- "Search returns no results"
|
|
86
|
+
- "Admin dashboard doesn't load"
|
|
87
|
+
|
|
88
|
+
**Medium:** Feature partially broken, workaround exists
|
|
89
|
+
- "Filtering by price doesn't update results (refresh works)"
|
|
90
|
+
- "Export button slow (but completes eventually)"
|
|
91
|
+
|
|
92
|
+
**Low:** Minor issue, cosmetic, rare edge case
|
|
93
|
+
- "Button text wraps on mobile"
|
|
94
|
+
- "Tooltip shows wrong color"
|
|
95
|
+
- "Error message has typo"
|
|
96
|
+
|
|
97
|
+
### Supporting Evidence
|
|
98
|
+
|
|
99
|
+
**Screenshots/Videos**
|
|
100
|
+
- Annotate important areas
|
|
101
|
+
- Show full screen (URL bar, console visible)
|
|
102
|
+
- Include multiple steps if needed
|
|
103
|
+
|
|
104
|
+
**Error Messages**
|
|
105
|
+
```
|
|
106
|
+
Network Error:
|
|
107
|
+
POST /api/checkout HTTP/1.1
|
|
108
|
+
Status: 504 Gateway Timeout
|
|
109
|
+
Response: {
|
|
110
|
+
"error": "Payment service unavailable",
|
|
111
|
+
"code": "GATEWAY_TIMEOUT",
|
|
112
|
+
"requestId": "abc-123-def-456"
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Console Logs**
|
|
117
|
+
```
|
|
118
|
+
[ERROR] PaymentGateway: Connection timeout after 30000ms
|
|
119
|
+
at PaymentGateway.charge (gateway.js:145)
|
|
120
|
+
at CheckoutController.processPayment (checkout.js:67)
|
|
121
|
+
at async CheckoutController.submit (checkout.js:23)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Network Traces**
|
|
125
|
+
```
|
|
126
|
+
Request ID: abc-123-def-456
|
|
127
|
+
Duration: 30,142ms
|
|
128
|
+
Payment gateway endpoint: https://gateway.example.com/v1/charge
|
|
129
|
+
Request body: { amount: 1050, currency: 'USD', card: '4532...9010' }
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Bug Report Template
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## [Component] Issue Title
|
|
136
|
+
|
|
137
|
+
**Severity:** [Critical/High/Medium/Low]
|
|
138
|
+
**Environment:** [Production/Staging/Dev]
|
|
139
|
+
**Affected Users:** [All/Specific segment/Single user]
|
|
140
|
+
|
|
141
|
+
### Expected Behavior
|
|
142
|
+
What should happen
|
|
143
|
+
|
|
144
|
+
### Actual Behavior
|
|
145
|
+
What actually happens
|
|
146
|
+
|
|
147
|
+
### Steps to Reproduce
|
|
148
|
+
1. Step one
|
|
149
|
+
2. Step two
|
|
150
|
+
3. Step three
|
|
151
|
+
4. Observe issue
|
|
152
|
+
|
|
153
|
+
### Environment
|
|
154
|
+
- Browser/App:
|
|
155
|
+
- OS:
|
|
156
|
+
- Version:
|
|
157
|
+
- User account:
|
|
158
|
+
- Date/time:
|
|
159
|
+
|
|
160
|
+
### Supporting Evidence
|
|
161
|
+
[Screenshots, error messages, logs]
|
|
162
|
+
|
|
163
|
+
### Impact
|
|
164
|
+
How this affects users/business
|
|
165
|
+
|
|
166
|
+
### Additional Context
|
|
167
|
+
Any other relevant information
|
|
168
|
+
|
|
169
|
+
### Possible Cause (Optional)
|
|
170
|
+
If you have insights into why this might be happening
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Examples of Excellent Bug Reports
|
|
174
|
+
|
|
175
|
+
### Example 1: Performance Issue
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
## [Checkout] Payment processing times out for orders > $1000
|
|
179
|
+
|
|
180
|
+
**Severity:** High
|
|
181
|
+
**Environment:** Production
|
|
182
|
+
**Affected Users:** ~15% of premium purchases (orders > $1000)
|
|
183
|
+
|
|
184
|
+
### Expected Behavior
|
|
185
|
+
Payment should complete within 5 seconds regardless of order amount.
|
|
186
|
+
|
|
187
|
+
### Actual Behavior
|
|
188
|
+
For orders above $1000, payment gateway request times out after 30 seconds.
|
|
189
|
+
User sees "Payment failed" error. Order is not created.
|
|
190
|
+
|
|
191
|
+
### Steps to Reproduce
|
|
192
|
+
1. Visit https://example.com
|
|
193
|
+
2. Add items totaling $1,050 to cart
|
|
194
|
+
3. Proceed to checkout
|
|
195
|
+
4. Enter payment info: Visa 4532 1234 5678 9010
|
|
196
|
+
5. Click "Place Order"
|
|
197
|
+
6. Wait 30+ seconds
|
|
198
|
+
7. Observe timeout error
|
|
199
|
+
|
|
200
|
+
### Environment
|
|
201
|
+
- Browser: Chrome 120 (Windows 11)
|
|
202
|
+
- User: test@example.com
|
|
203
|
+
- Time: 2025-10-17 14:23 UTC
|
|
204
|
+
- Request ID: abc-123-def-456
|
|
205
|
+
|
|
206
|
+
### Supporting Evidence
|
|
207
|
+
|
|
208
|
+
Error in console:
|
|
209
|
+
```
|
|
210
|
+
[ERROR] PaymentGateway timeout: 30000ms exceeded
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Network tab shows:
|
|
214
|
+
- Request to /api/checkout: 30.14s
|
|
215
|
+
- Payment gateway call: 29.98s (timeout)
|
|
216
|
+
|
|
217
|
+
Screenshot attached: [timeout-error.png]
|
|
218
|
+
|
|
219
|
+
### Impact
|
|
220
|
+
- Lost revenue: ~$15K/week from failed premium orders
|
|
221
|
+
- Customer frustration: 23 support tickets this week
|
|
222
|
+
- Affects 15% of orders over $1000
|
|
223
|
+
|
|
224
|
+
### Additional Context
|
|
225
|
+
Issue started after Oct 15 deployment (v2.3.0)
|
|
226
|
+
Possibly related to PR #456 (fraud check improvements)
|
|
227
|
+
|
|
228
|
+
### Possible Cause
|
|
229
|
+
New fraud check service for orders > $1000 is slow.
|
|
230
|
+
Might need caching or async processing.
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Example 2: UI Bug
|
|
234
|
+
|
|
235
|
+
```markdown
|
|
236
|
+
## [Cart] "Remove" button hidden on mobile Safari
|
|
237
|
+
|
|
238
|
+
**Severity:** Medium
|
|
239
|
+
**Environment:** Production
|
|
240
|
+
**Affected Users:** Mobile Safari users (~8% of traffic)
|
|
241
|
+
|
|
242
|
+
### Expected Behavior
|
|
243
|
+
"Remove" button should be visible next to each cart item on all devices.
|
|
244
|
+
|
|
245
|
+
### Actual Behavior
|
|
246
|
+
On mobile Safari (iOS), "Remove" button is cut off and not clickable.
|
|
247
|
+
|
|
248
|
+
### Steps to Reproduce
|
|
249
|
+
1. Open https://example.com on iPhone (Safari)
|
|
250
|
+
2. Add 2+ items to cart
|
|
251
|
+
3. Navigate to cart page
|
|
252
|
+
4. Try to remove an item
|
|
253
|
+
5. Observe button is partially hidden
|
|
254
|
+
|
|
255
|
+
### Environment
|
|
256
|
+
- Device: iPhone 14 Pro (iOS 17.1)
|
|
257
|
+
- Browser: Safari 17
|
|
258
|
+
- Viewport: 390x844
|
|
259
|
+
- Time: 2025-10-17
|
|
260
|
+
|
|
261
|
+
### Supporting Evidence
|
|
262
|
+
Screenshot: [cart-mobile-bug.png]
|
|
263
|
+
- Shows button cut off at edge of screen
|
|
264
|
+
|
|
265
|
+
Comparison on Chrome iOS: Works correctly
|
|
266
|
+
|
|
267
|
+
### Impact
|
|
268
|
+
- Users cannot remove items from cart on iOS Safari
|
|
269
|
+
- Workaround: Use desktop or Chrome mobile
|
|
270
|
+
- Affects ~300 users/day
|
|
271
|
+
|
|
272
|
+
### Additional Context
|
|
273
|
+
CSS issue. Button has `position: absolute` and exceeds container width.
|
|
274
|
+
|
|
275
|
+
### Possible Cause
|
|
276
|
+
```css
|
|
277
|
+
.cart-item-remove {
|
|
278
|
+
position: absolute;
|
|
279
|
+
right: -10px; /* This is the problem */
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Suggested fix: Change to `right: 10px;`
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Anti-Patterns: Bad Bug Reports
|
|
287
|
+
|
|
288
|
+
### ❌ Vague Description
|
|
289
|
+
|
|
290
|
+
**Bad:**
|
|
291
|
+
```
|
|
292
|
+
Title: Checkout is broken
|
|
293
|
+
Description: It doesn't work.
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Problem:**
|
|
297
|
+
- What doesn't work?
|
|
298
|
+
- Which part of checkout?
|
|
299
|
+
- What did you try?
|
|
300
|
+
|
|
301
|
+
**Good:**
|
|
302
|
+
```
|
|
303
|
+
Title: Payment submission button does nothing when clicked
|
|
304
|
+
Description: [Full details with steps, expected vs actual behavior]
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### ❌ No Steps to Reproduce
|
|
308
|
+
|
|
309
|
+
**Bad:**
|
|
310
|
+
```
|
|
311
|
+
Title: I saw an error
|
|
312
|
+
Description: There was an error message on the screen.
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**Problem:**
|
|
316
|
+
- How did you get to that screen?
|
|
317
|
+
- What were you doing?
|
|
318
|
+
- Can anyone else reproduce it?
|
|
319
|
+
|
|
320
|
+
### ❌ Missing Environment Info
|
|
321
|
+
|
|
322
|
+
**Bad:**
|
|
323
|
+
```
|
|
324
|
+
Title: Page loads slowly
|
|
325
|
+
Description: The page takes forever to load.
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Problem:**
|
|
329
|
+
- Which page?
|
|
330
|
+
- Which browser?
|
|
331
|
+
- How slow is "slow"?
|
|
332
|
+
- Is it always slow or sometimes?
|
|
333
|
+
|
|
334
|
+
### ❌ Combining Multiple Issues
|
|
335
|
+
|
|
336
|
+
**Bad:**
|
|
337
|
+
```
|
|
338
|
+
Title: Multiple bugs found
|
|
339
|
+
Description:
|
|
340
|
+
1. Cart doesn't update
|
|
341
|
+
2. Payment fails sometimes
|
|
342
|
+
3. Footer is misaligned
|
|
343
|
+
4. Email notifications are slow
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**Problem:** Four separate issues, each needs its own investigation and fix.
|
|
347
|
+
|
|
348
|
+
**Good:** Create four separate bug reports.
|
|
349
|
+
|
|
350
|
+
### ❌ Feature Requests Disguised as Bugs
|
|
351
|
+
|
|
352
|
+
**Bad:**
|
|
353
|
+
```
|
|
354
|
+
Title: [BUG] No dark mode
|
|
355
|
+
Description: The app doesn't have dark mode.
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**Problem:** Missing feature ≠ bug. File as feature request.
|
|
359
|
+
|
|
360
|
+
## Advanced Techniques
|
|
361
|
+
|
|
362
|
+
### Root Cause Analysis
|
|
363
|
+
|
|
364
|
+
Don't just report symptoms. Investigate:
|
|
365
|
+
|
|
366
|
+
```markdown
|
|
367
|
+
**Symptom:** Payment timeout
|
|
368
|
+
|
|
369
|
+
**Investigation:**
|
|
370
|
+
1. Checked network tab → 30s timeout
|
|
371
|
+
2. Checked server logs → Payment gateway slow
|
|
372
|
+
3. Checked gateway metrics → High latency for fraud checks
|
|
373
|
+
4. Checked recent changes → New fraud service deployed Oct 15
|
|
374
|
+
|
|
375
|
+
**Root Cause:** New fraud checking service adds 28s latency
|
|
376
|
+
|
|
377
|
+
**Suggested Fix:**
|
|
378
|
+
- Make fraud check async
|
|
379
|
+
- Or optimize fraud service queries
|
|
380
|
+
- Or increase timeout threshold
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Isolation and Simplification
|
|
384
|
+
|
|
385
|
+
**Original:** Payment fails on checkout
|
|
386
|
+
**After isolation:**
|
|
387
|
+
- Works with Mastercard ✓
|
|
388
|
+
- Fails with Visa ✗
|
|
389
|
+
- Only for amounts > $1000 ✗
|
|
390
|
+
- Only in production environment ✗
|
|
391
|
+
|
|
392
|
+
**Simplified repro:**
|
|
393
|
+
```
|
|
394
|
+
1. Use Visa card
|
|
395
|
+
2. Order total > $1000
|
|
396
|
+
3. In production
|
|
397
|
+
4. Observe failure
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Regression Testing
|
|
401
|
+
|
|
402
|
+
**When reopening bugs:**
|
|
403
|
+
```markdown
|
|
404
|
+
## [RE-OPENED] Payment timeout still occurs
|
|
405
|
+
|
|
406
|
+
**Original bug:** #12345 (marked as fixed in v2.3.1)
|
|
407
|
+
|
|
408
|
+
**Current status:** Still failing in v2.3.2
|
|
409
|
+
|
|
410
|
+
**New evidence:**
|
|
411
|
+
- Tested with fix from v2.3.1
|
|
412
|
+
- Issue persists for orders > $5000 (different threshold)
|
|
413
|
+
- Previous fix only addressed orders $1000-$5000
|
|
414
|
+
|
|
415
|
+
**Steps to reproduce:**
|
|
416
|
+
[Updated steps with new threshold]
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
## Bug Triage Guidelines
|
|
420
|
+
|
|
421
|
+
### Questions Developers Will Ask
|
|
422
|
+
|
|
423
|
+
**"Can you reproduce it consistently?"**
|
|
424
|
+
- Always: High priority
|
|
425
|
+
- Sometimes: Document conditions
|
|
426
|
+
- Once: Hard to fix, low priority
|
|
427
|
+
|
|
428
|
+
**"Does it happen in other environments?"**
|
|
429
|
+
- Production only: Likely config issue
|
|
430
|
+
- All environments: Code bug
|
|
431
|
+
- Dev only: Environment-specific
|
|
432
|
+
|
|
433
|
+
**"Is there a workaround?"**
|
|
434
|
+
- No workaround + high impact = Critical
|
|
435
|
+
- Easy workaround + low impact = Low priority
|
|
436
|
+
|
|
437
|
+
**"What's the business impact?"**
|
|
438
|
+
- Lost revenue: High priority
|
|
439
|
+
- Cosmetic issue: Low priority
|
|
440
|
+
- Data loss: Critical
|
|
441
|
+
|
|
442
|
+
## Tools for Better Bug Reports
|
|
443
|
+
|
|
444
|
+
### Screen Recording
|
|
445
|
+
- **Loom** - Quick screen recording with annotation
|
|
446
|
+
- **OBS Studio** - Professional recording
|
|
447
|
+
- **Built-in OS tools** - Windows Game Bar, macOS Screenshot
|
|
448
|
+
|
|
449
|
+
### Browser DevTools
|
|
450
|
+
- Network tab (HAR file export)
|
|
451
|
+
- Console logs (copy all)
|
|
452
|
+
- Performance profiling
|
|
453
|
+
- Screenshots with annotations
|
|
454
|
+
|
|
455
|
+
### Bug Tracking Systems
|
|
456
|
+
- **Jira** - Enterprise standard
|
|
457
|
+
- **Linear** - Modern, fast
|
|
458
|
+
- **GitHub Issues** - For open source
|
|
459
|
+
- **Azure DevOps** - Microsoft stack
|
|
460
|
+
|
|
461
|
+
### Collaboration
|
|
462
|
+
- **Slack/Teams** - Quick questions
|
|
463
|
+
- **Confluence** - Documentation
|
|
464
|
+
- **Miro/Figma** - Visual explanation
|
|
465
|
+
|
|
466
|
+
## Communication Tips
|
|
467
|
+
|
|
468
|
+
### Be Objective, Not Judgmental
|
|
469
|
+
|
|
470
|
+
**Bad:** "This stupid button doesn't work because someone wrote terrible code"
|
|
471
|
+
**Good:** "The submit button doesn't respond to clicks. Investigating why."
|
|
472
|
+
|
|
473
|
+
### Assume Good Intent
|
|
474
|
+
|
|
475
|
+
**Bad:** "Lazy devs broke checkout again"
|
|
476
|
+
**Good:** "Checkout issue appeared after yesterday's deployment. Might be related to PR #456."
|
|
477
|
+
|
|
478
|
+
### Be Specific About Impact
|
|
479
|
+
|
|
480
|
+
**Vague:** "This is really bad"
|
|
481
|
+
**Specific:** "15% of orders are failing, costing ~$15K/week in lost revenue"
|
|
482
|
+
|
|
483
|
+
### Offer to Help
|
|
484
|
+
|
|
485
|
+
**Passive:** "Button is broken"
|
|
486
|
+
**Helpful:** "Button is broken. I can pair with a dev to investigate or test fixes."
|
|
487
|
+
|
|
488
|
+
## Follow-Up
|
|
489
|
+
|
|
490
|
+
### After Reporting
|
|
491
|
+
|
|
492
|
+
1. **Monitor** for questions from developers
|
|
493
|
+
2. **Test** the fix when deployed
|
|
494
|
+
3. **Verify** it actually resolves the issue
|
|
495
|
+
4. **Document** if regression occurs
|
|
496
|
+
|
|
497
|
+
### Closing Bug Reports
|
|
498
|
+
|
|
499
|
+
**Verified fixed:**
|
|
500
|
+
```
|
|
501
|
+
✓ Tested in staging (v2.3.2)
|
|
502
|
+
✓ Verified with original repro steps
|
|
503
|
+
✓ No longer reproducible
|
|
504
|
+
✓ Closing as resolved
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
**Won't fix:**
|
|
508
|
+
```
|
|
509
|
+
Accepted as "won't fix" due to:
|
|
510
|
+
- Low impact (< 0.1% users)
|
|
511
|
+
- Workaround exists (use desktop)
|
|
512
|
+
- Cost of fix > benefit
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
## Metrics for Bug Report Quality
|
|
516
|
+
|
|
517
|
+
### Good Bug Reports Have:
|
|
518
|
+
- Clear, reproducible steps (100%)
|
|
519
|
+
- Environment information (100%)
|
|
520
|
+
- Expected vs actual behavior (100%)
|
|
521
|
+
- Screenshots or logs (80%)
|
|
522
|
+
- Business impact stated (90%)
|
|
523
|
+
- Quick developer response time (<1 day)
|
|
524
|
+
|
|
525
|
+
### Poor Bug Reports Have:
|
|
526
|
+
- Developers asking for more info (>3 times)
|
|
527
|
+
- Multiple rounds of clarification needed
|
|
528
|
+
- Cannot be reproduced
|
|
529
|
+
- Marked as "invalid" or "duplicate"
|
|
530
|
+
|
|
531
|
+
## Using with QE Agents
|
|
532
|
+
|
|
533
|
+
### Automated Bug Triage
|
|
534
|
+
|
|
535
|
+
**qe-quality-analyzer** assists in bug triage and categorization:
|
|
536
|
+
```typescript
|
|
537
|
+
// Agent analyzes and triages bug report
|
|
538
|
+
const triage = await agent.triageBug({
|
|
539
|
+
title: 'Payment fails for orders > $1000',
|
|
540
|
+
description: bugDescription,
|
|
541
|
+
steps: reproductionsteps,
|
|
542
|
+
expectedBehavior: '...',
|
|
543
|
+
actualBehavior: '...',
|
|
544
|
+
attachments: screenshots
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
// Returns:
|
|
548
|
+
// {
|
|
549
|
+
// severity: 'critical',
|
|
550
|
+
// priority: 'high',
|
|
551
|
+
// likelyComponent: 'payment-service',
|
|
552
|
+
// suggestedAssignee: 'payments-team',
|
|
553
|
+
// relatedIssues: ['#123', '#456'],
|
|
554
|
+
// estimatedImpact: '5% of transactions affected'
|
|
555
|
+
// }
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### Intelligent Bug Duplication Detection
|
|
559
|
+
|
|
560
|
+
```typescript
|
|
561
|
+
// Agent detects duplicate bug reports
|
|
562
|
+
const duplicateCheck = await agent.checkDuplicates({
|
|
563
|
+
bugReport: newBug,
|
|
564
|
+
searchIn: 'open-and-closed',
|
|
565
|
+
similarityThreshold: 0.85
|
|
566
|
+
});
|
|
567
|
+
|
|
568
|
+
// Returns:
|
|
569
|
+
// {
|
|
570
|
+
// isDuplicate: true,
|
|
571
|
+
// originalIssue: '#789',
|
|
572
|
+
// similarity: 0.92,
|
|
573
|
+
// recommendation: 'Close as duplicate of #789'
|
|
574
|
+
// }
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
### Bug Report Quality Enhancement
|
|
578
|
+
|
|
579
|
+
```typescript
|
|
580
|
+
// Agent improves bug report quality
|
|
581
|
+
const enhanced = await qe-quality-analyzer.enhanceBugReport({
|
|
582
|
+
originalReport: userSubmittedBug,
|
|
583
|
+
addMissingInfo: true,
|
|
584
|
+
suggestReproSteps: true,
|
|
585
|
+
identifyRootCause: true
|
|
586
|
+
});
|
|
587
|
+
|
|
588
|
+
// Agent adds:
|
|
589
|
+
// - Environment details
|
|
590
|
+
// - Browser/OS information
|
|
591
|
+
// - Clearer reproduction steps
|
|
592
|
+
// - Potential root cause analysis
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
### Fleet Coordination for Bug Investigation
|
|
596
|
+
|
|
597
|
+
```typescript
|
|
598
|
+
const bugFleet = await FleetManager.coordinate({
|
|
599
|
+
strategy: 'bug-investigation',
|
|
600
|
+
agents: [
|
|
601
|
+
'qe-quality-analyzer', // Triage and categorize
|
|
602
|
+
'qe-flaky-test-hunter', // Check if test-related
|
|
603
|
+
'qe-regression-risk-analyzer', // Assess regression risk
|
|
604
|
+
'qe-production-intelligence' // Check production logs
|
|
605
|
+
],
|
|
606
|
+
topology: 'parallel'
|
|
607
|
+
});
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
---
|
|
611
|
+
|
|
612
|
+
## Related Skills
|
|
613
|
+
|
|
614
|
+
**Communication:**
|
|
615
|
+
- [technical-writing](../technical-writing/) - Clear bug documentation
|
|
616
|
+
- [code-review-quality](../code-review-quality/) - Bug reporting in reviews
|
|
617
|
+
|
|
618
|
+
**Testing:**
|
|
619
|
+
- [exploratory-testing-advanced](../exploratory-testing-advanced/) - Finding bugs through exploration
|
|
620
|
+
- [agentic-quality-engineering](../agentic-quality-engineering/) - Agent-driven bug workflows
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
## Remember
|
|
625
|
+
|
|
626
|
+
Your bug report is the starting point for someone else's work. Make it:
|
|
627
|
+
- **Complete** - All info needed to understand and fix
|
|
628
|
+
- **Clear** - Anyone can follow your steps
|
|
629
|
+
- **Concise** - No unnecessary information
|
|
630
|
+
- **Actionable** - Developer knows what to do next
|
|
631
|
+
|
|
632
|
+
**Good bug reports = Faster fixes = Better product = Happier users**
|