claude-mpm 5.4.55__py3-none-any.whl → 5.4.85__py3-none-any.whl
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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/CLAUDE_MPM_FOUNDERS_OUTPUT_STYLE.md +405 -0
- claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md +63 -241
- claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +109 -1925
- claude_mpm/agents/PM_INSTRUCTIONS.md +36 -9
- claude_mpm/cli/__init__.py +5 -1
- claude_mpm/cli/commands/agents.py +2 -4
- claude_mpm/cli/commands/agents_reconcile.py +197 -0
- claude_mpm/cli/commands/configure.py +620 -21
- claude_mpm/cli/commands/skills.py +166 -14
- claude_mpm/cli/executor.py +1 -0
- claude_mpm/cli/interactive/__init__.py +10 -0
- claude_mpm/cli/interactive/agent_wizard.py +30 -50
- claude_mpm/cli/interactive/questionary_styles.py +65 -0
- claude_mpm/cli/interactive/skill_selector.py +481 -0
- claude_mpm/cli/parsers/base_parser.py +5 -0
- claude_mpm/cli/startup.py +223 -388
- claude_mpm/constants.py +1 -0
- claude_mpm/core/claude_runner.py +2 -2
- claude_mpm/core/interactive_session.py +7 -7
- claude_mpm/core/output_style_manager.py +21 -13
- claude_mpm/core/unified_config.py +50 -8
- claude_mpm/core/unified_paths.py +30 -13
- claude_mpm/scripts/start_activity_logging.py +0 -0
- claude_mpm/services/agents/deployment/agent_template_builder.py +8 -0
- claude_mpm/services/agents/deployment/deployment_reconciler.py +577 -0
- claude_mpm/services/agents/deployment/startup_reconciliation.py +138 -0
- claude_mpm/services/agents/sources/git_source_sync_service.py +7 -4
- claude_mpm/services/agents/startup_sync.py +5 -2
- claude_mpm/services/pm_skills_deployer.py +4 -0
- claude_mpm/services/skills/git_skill_source_manager.py +24 -8
- claude_mpm/services/skills/selective_skill_deployer.py +82 -83
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
- claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
- claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
- claude_mpm/skills/bundled/pm/pm-bug-reporting/pm-bug-reporting.md +248 -0
- claude_mpm/skills/bundled/pm/pm-delegation-patterns/SKILL.md +167 -0
- claude_mpm/skills/bundled/pm/pm-git-file-tracking/SKILL.md +113 -0
- claude_mpm/skills/bundled/pm/pm-pr-workflow/SKILL.md +124 -0
- claude_mpm/skills/bundled/pm/pm-teaching-mode/SKILL.md +657 -0
- claude_mpm/skills/bundled/pm/pm-ticketing-integration/SKILL.md +154 -0
- claude_mpm/skills/bundled/pm/pm-verification-protocols/SKILL.md +198 -0
- claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
- claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
- claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
- claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
- claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
- claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
- claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
- claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
- claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
- claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
- claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
- claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
- claude_mpm/utils/agent_dependency_loader.py +103 -4
- claude_mpm/utils/robust_installer.py +45 -24
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/METADATA +47 -23
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/RECORD +159 -47
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/WHEEL +0 -0
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/entry_points.txt +0 -0
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/licenses/LICENSE-FAQ.md +0 -0
- {claude_mpm-5.4.55.dist-info → claude_mpm-5.4.85.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pm-ticketing-integration
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: Ticket-driven development protocol
|
|
5
|
+
when_to_use: ticket IDs mentioned, issue URLs, work tracking
|
|
6
|
+
category: pm-workflow
|
|
7
|
+
tags: [tickets, integration, workflow, pm-required]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Ticketing Integration Protocol
|
|
11
|
+
|
|
12
|
+
## Detection Rules
|
|
13
|
+
|
|
14
|
+
PM detects ticket context from:
|
|
15
|
+
- Ticket ID patterns: `PROJ-123`, `#123`, `MPM-456`, `JJF-62`
|
|
16
|
+
- Ticket URLs: `github.com/.../issues/123`, `linear.app/.../issue/XXX`
|
|
17
|
+
- Explicit references: "work on ticket", "implement issue", "fix bug #123"
|
|
18
|
+
- Session start context (first user message with ticket reference)
|
|
19
|
+
|
|
20
|
+
## CRITICAL ENFORCEMENT
|
|
21
|
+
|
|
22
|
+
**PM MUST NEVER use these tools directly - ALWAYS delegate to ticketing agent:**
|
|
23
|
+
|
|
24
|
+
- ❌ PM using WebFetch on ticket URLs → Delegate to ticketing
|
|
25
|
+
- ❌ PM using `mcp__mcp-ticketer__*` tools → Delegate to ticketing
|
|
26
|
+
- ❌ PM using ANY tools to access tickets → ONLY delegate to ticketing agent
|
|
27
|
+
|
|
28
|
+
**Delegation Rule**: ALL ticket operations must be delegated to ticketing agent.
|
|
29
|
+
|
|
30
|
+
## TICKET-DRIVEN DEVELOPMENT PROTOCOL (TkDD)
|
|
31
|
+
|
|
32
|
+
**When ticket detected** (PROJ-123, #123, ticket URLs, "work on ticket"):
|
|
33
|
+
|
|
34
|
+
### PM MUST Execute This Workflow
|
|
35
|
+
|
|
36
|
+
**1. Work Start** → Delegate to ticketing:
|
|
37
|
+
```
|
|
38
|
+
Task:
|
|
39
|
+
agent: "ticketing"
|
|
40
|
+
task: "Start work on ticket {ticket_id}"
|
|
41
|
+
acceptance_criteria:
|
|
42
|
+
- Transition ticket to 'in_progress'
|
|
43
|
+
- Add comment: "Work started by Claude MPM"
|
|
44
|
+
- Confirm state change
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**2. Each Phase** → Comment with deliverables:
|
|
48
|
+
```
|
|
49
|
+
Task:
|
|
50
|
+
agent: "ticketing"
|
|
51
|
+
task: "Update ticket {ticket_id} with progress"
|
|
52
|
+
context: |
|
|
53
|
+
Phase completed: {phase_name}
|
|
54
|
+
Deliverables: {deliverable_summary}
|
|
55
|
+
acceptance_criteria:
|
|
56
|
+
- Add comment with phase completion details
|
|
57
|
+
- Include links to commits/PRs if applicable
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**3. Work Complete** → Transition to done/closed:
|
|
61
|
+
```
|
|
62
|
+
Task:
|
|
63
|
+
agent: "ticketing"
|
|
64
|
+
task: "Complete ticket {ticket_id}"
|
|
65
|
+
context: |
|
|
66
|
+
Work summary: {summary}
|
|
67
|
+
QA verification: {qa_evidence}
|
|
68
|
+
Files changed: {file_list}
|
|
69
|
+
acceptance_criteria:
|
|
70
|
+
- Transition to 'done' or 'closed'
|
|
71
|
+
- Add comprehensive completion comment
|
|
72
|
+
- Link PR if created
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**4. Blockers** → Comment blocker details:
|
|
76
|
+
```
|
|
77
|
+
Task:
|
|
78
|
+
agent: "ticketing"
|
|
79
|
+
task: "Report blocker on ticket {ticket_id}"
|
|
80
|
+
context: |
|
|
81
|
+
Blocker: {blocker_description}
|
|
82
|
+
Impact: {impact}
|
|
83
|
+
Waiting on: {dependency}
|
|
84
|
+
acceptance_criteria:
|
|
85
|
+
- Update ticket state to 'blocked'
|
|
86
|
+
- Add blocker details in comment
|
|
87
|
+
- Notify relevant stakeholders if applicable
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Documentation Routing with Ticket Context
|
|
91
|
+
|
|
92
|
+
### When Ticket Context Provided
|
|
93
|
+
|
|
94
|
+
When user starts session with ticket reference:
|
|
95
|
+
- PM delegates to ticketing agent to attach work products
|
|
96
|
+
- Research findings → Attached as comments to ticket
|
|
97
|
+
- Specifications → Attached as files or formatted comments
|
|
98
|
+
- Still create local docs as backup in `{docs_path}/`
|
|
99
|
+
- All agent delegations include ticket context
|
|
100
|
+
|
|
101
|
+
### When NO Ticket Context
|
|
102
|
+
|
|
103
|
+
- All documentation goes to `{docs_path}/` (default: `docs/research/`)
|
|
104
|
+
- No ticket attachment operations
|
|
105
|
+
- Named with pattern: `{topic}-{date}.md`
|
|
106
|
+
|
|
107
|
+
## Ticket Context Propagation
|
|
108
|
+
|
|
109
|
+
When ticket is detected, PM includes ticket context in all delegations:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
Task:
|
|
113
|
+
agent: "{any_agent}"
|
|
114
|
+
task: "{task_description}"
|
|
115
|
+
context: |
|
|
116
|
+
Ticket: {ticket_id}
|
|
117
|
+
Ticket summary: {summary_from_ticketing_agent}
|
|
118
|
+
{other_context}
|
|
119
|
+
acceptance_criteria:
|
|
120
|
+
{criteria}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
This ensures all agents know work is ticket-driven and can reference it.
|
|
124
|
+
|
|
125
|
+
## Example TkDD Workflow
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
User: "Work on ticket PROJ-123"
|
|
129
|
+
↓
|
|
130
|
+
PM delegates to ticketing: Get ticket details
|
|
131
|
+
↓
|
|
132
|
+
PM delegates to ticketing: Transition to 'in_progress', comment "Work started"
|
|
133
|
+
↓
|
|
134
|
+
PM delegates to research: Investigate approach (with ticket context)
|
|
135
|
+
↓
|
|
136
|
+
PM delegates to ticketing: Comment "Research phase complete: {findings}"
|
|
137
|
+
↓
|
|
138
|
+
PM delegates to engineer: Implement feature (with ticket context)
|
|
139
|
+
↓
|
|
140
|
+
PM delegates to ticketing: Comment "Implementation complete: {files}"
|
|
141
|
+
↓
|
|
142
|
+
PM delegates to QA: Verify implementation
|
|
143
|
+
↓
|
|
144
|
+
PM delegates to ticketing: Transition to 'done', comment "Work complete: {summary}"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Violation Prevention
|
|
148
|
+
|
|
149
|
+
**Circuit Breaker**: PM using ticket tools directly triggers:
|
|
150
|
+
- Violation #1: ⚠️ WARNING - Must delegate immediately
|
|
151
|
+
- Violation #2: 🚨 ESCALATION - Session flagged for review
|
|
152
|
+
- Violation #3: ❌ FAILURE - Session non-compliant
|
|
153
|
+
|
|
154
|
+
This enforcement ensures PM maintains pure coordination role.
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pm-verification-protocols
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: QA verification gate and evidence requirements
|
|
5
|
+
when_to_use: verification needed, QA delegation, evidence collection
|
|
6
|
+
category: pm-workflow
|
|
7
|
+
tags: [qa, verification, evidence, pm-required]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# QA Verification Gate Protocol
|
|
11
|
+
|
|
12
|
+
## 🔴 MANDATORY QA VERIFICATION GATE
|
|
13
|
+
|
|
14
|
+
**CRITICAL**: PM MUST delegate to QA BEFORE claiming work complete. NO completion claim without QA verification evidence.
|
|
15
|
+
|
|
16
|
+
### When QA Gate Applies
|
|
17
|
+
|
|
18
|
+
ALL implementation work:
|
|
19
|
+
- UI features
|
|
20
|
+
- Local server UI
|
|
21
|
+
- API endpoints
|
|
22
|
+
- Bug fixes
|
|
23
|
+
- Full-stack features
|
|
24
|
+
- Test modifications
|
|
25
|
+
|
|
26
|
+
### QA Gate Enforcement
|
|
27
|
+
|
|
28
|
+
**BLOCKING**: PM CANNOT claim "done/complete/ready/working/fixed" without QA evidence
|
|
29
|
+
|
|
30
|
+
**CORRECT SEQUENCE**:
|
|
31
|
+
```
|
|
32
|
+
Implementation
|
|
33
|
+
→ PM delegates to QA
|
|
34
|
+
→ PM WAITS for evidence
|
|
35
|
+
→ PM reports WITH QA verification
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Verification Requirements by Work Type
|
|
39
|
+
|
|
40
|
+
| Work Type | QA Agent | Required Evidence | Forbidden Claim |
|
|
41
|
+
|-----------|----------|-------------------|-----------------|
|
|
42
|
+
| **Local Server UI** | web-qa | Chrome DevTools MCP (navigate, snapshot, screenshot, console) | "Page loads correctly" |
|
|
43
|
+
| **Deployed Web UI** | web-qa | Playwright/Chrome DevTools (screenshots + console logs) | "UI works" |
|
|
44
|
+
| **API/Server** | api-qa | HTTP responses + logs | "API deployed" |
|
|
45
|
+
| **Database** | data-engineer | Schema queries + data samples | "DB ready" |
|
|
46
|
+
| **Local Backend** | local-ops | lsof + curl + pm2 status | "Running on localhost" |
|
|
47
|
+
| **CLI Tools** | Engineer/Ops | Command output + exit codes | "Tool installed" |
|
|
48
|
+
|
|
49
|
+
## Forbidden Phrases (CIRCUIT BREAKER VIOLATION)
|
|
50
|
+
|
|
51
|
+
**❌ NEVER say these without QA evidence:**
|
|
52
|
+
- "production-ready"
|
|
53
|
+
- "page loads correctly"
|
|
54
|
+
- "UI is working"
|
|
55
|
+
- "should work"
|
|
56
|
+
- "looks good"
|
|
57
|
+
- "seems fine"
|
|
58
|
+
- "it works"
|
|
59
|
+
- "all set"
|
|
60
|
+
- "ready for users"
|
|
61
|
+
- "deployment successful"
|
|
62
|
+
|
|
63
|
+
**✅ ALWAYS say this instead:**
|
|
64
|
+
```
|
|
65
|
+
"[Agent] verified with [tool/method]: [specific evidence]"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Evidence Quality Standards
|
|
69
|
+
|
|
70
|
+
### Good Evidence
|
|
71
|
+
|
|
72
|
+
**Specific details**:
|
|
73
|
+
- File paths and line numbers
|
|
74
|
+
- URLs and endpoints tested
|
|
75
|
+
- HTTP status codes
|
|
76
|
+
- Test counts and pass/fail results
|
|
77
|
+
- Console log excerpts
|
|
78
|
+
- Screenshots with annotations
|
|
79
|
+
|
|
80
|
+
**Measurable outcomes**:
|
|
81
|
+
- "12 tests passed, 0 failed"
|
|
82
|
+
- "HTTP 200 OK response"
|
|
83
|
+
- "Server listening on port 3000"
|
|
84
|
+
- "No console errors found"
|
|
85
|
+
|
|
86
|
+
**Agent attribution**:
|
|
87
|
+
- "web-qa verified with Playwright"
|
|
88
|
+
- "api-qa tested endpoints"
|
|
89
|
+
- "local-ops confirmed process running"
|
|
90
|
+
|
|
91
|
+
**Reproducible steps**:
|
|
92
|
+
- "Navigate to /login, enter credentials, click submit"
|
|
93
|
+
- "curl http://localhost:3000/api/health"
|
|
94
|
+
- "lsof -i :3000 shows node process"
|
|
95
|
+
|
|
96
|
+
### Insufficient Evidence (VIOLATIONS)
|
|
97
|
+
|
|
98
|
+
**Vague claims**:
|
|
99
|
+
- "works"
|
|
100
|
+
- "looks good"
|
|
101
|
+
- "should be fine"
|
|
102
|
+
|
|
103
|
+
**No measurements**:
|
|
104
|
+
- "deployed successfully" (without health check)
|
|
105
|
+
- "UI updated" (without verification)
|
|
106
|
+
|
|
107
|
+
**PM assessment**:
|
|
108
|
+
- PM saying "I checked and it works"
|
|
109
|
+
- PM making claims without delegation
|
|
110
|
+
|
|
111
|
+
**Not reproducible**:
|
|
112
|
+
- "tested it" (no steps)
|
|
113
|
+
- "verified" (no method)
|
|
114
|
+
|
|
115
|
+
## Required Evidence by Claim Type
|
|
116
|
+
|
|
117
|
+
| Claim Type | Required Evidence | Example |
|
|
118
|
+
|------------|------------------|---------|
|
|
119
|
+
| **Implementation Complete** | • Engineer confirmation<br>• Files changed (paths)<br>• Git commit (hash/branch)<br>• Summary | `Engineer: Added OAuth2 auth. Files: src/auth/oauth2.js (new, 245 lines), src/routes/auth.js (+87). Commit: abc123.` |
|
|
120
|
+
| **Deployed Successfully** | • Ops confirmation<br>• Live URL<br>• Health check (HTTP status)<br>• Deployment logs<br>• Process status | `Ops: Deployed to https://app.example.com. Health: HTTP 200. Logs: Server listening on :3000. Process: lsof shows node listening.` |
|
|
121
|
+
| **Bug Fixed** | • QA bug reproduction (before)<br>• Engineer fix (files changed)<br>• QA verification (after)<br>• Regression tests | `QA: Bug reproduced (HTTP 401). Engineer: Fixed session.js (+12-8). QA: Now HTTP 200, 24 tests passed.` |
|
|
122
|
+
|
|
123
|
+
## Browser State Verification (MANDATORY)
|
|
124
|
+
|
|
125
|
+
**CRITICAL RULE**: PM MUST NOT assert browser/UI state without Chrome DevTools MCP evidence.
|
|
126
|
+
|
|
127
|
+
When verifying local server UI or browser state, PM MUST:
|
|
128
|
+
1. Delegate to web-qa agent
|
|
129
|
+
2. web-qa MUST use Chrome DevTools MCP tools (NOT assumptions)
|
|
130
|
+
3. Collect actual evidence (snapshots, screenshots, console logs)
|
|
131
|
+
|
|
132
|
+
### Chrome DevTools MCP Tools (via web-qa only)
|
|
133
|
+
|
|
134
|
+
Available tools:
|
|
135
|
+
- `mcp__chrome-devtools__navigate_page` - Navigate to URL
|
|
136
|
+
- `mcp__chrome-devtools__take_snapshot` - Get page content/DOM state
|
|
137
|
+
- `mcp__chrome-devtools__take_screenshot` - Visual verification
|
|
138
|
+
- `mcp__chrome-devtools__list_console_messages` - Check for errors
|
|
139
|
+
- `mcp__chrome-devtools__list_network_requests` - Verify API calls
|
|
140
|
+
|
|
141
|
+
### Required Evidence for UI Verification
|
|
142
|
+
|
|
143
|
+
✅ **CORRECT**: web-qa verified with Chrome DevTools:
|
|
144
|
+
```
|
|
145
|
+
- navigate_page: http://localhost:3000 → HTTP 200
|
|
146
|
+
- take_snapshot: Page shows login form with email/password fields
|
|
147
|
+
- take_screenshot: [screenshot shows rendered UI]
|
|
148
|
+
- list_console_messages: No errors found
|
|
149
|
+
- list_network_requests: GET /api/config → 200 OK
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
❌ **WRONG**: "The page loads correctly at localhost:3000"
|
|
153
|
+
(No Chrome DevTools evidence - CIRCUIT BREAKER VIOLATION)
|
|
154
|
+
|
|
155
|
+
### Local Server UI Verification Template
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
Task:
|
|
159
|
+
agent: "web-qa"
|
|
160
|
+
task: "Verify local server UI at http://localhost:3000"
|
|
161
|
+
acceptance_criteria:
|
|
162
|
+
- Navigate to page (mcp__chrome-devtools__navigate_page)
|
|
163
|
+
- Take page snapshot (mcp__chrome-devtools__take_snapshot)
|
|
164
|
+
- Take screenshot (mcp__chrome-devtools__take_screenshot)
|
|
165
|
+
- Check console for errors (mcp__chrome-devtools__list_console_messages)
|
|
166
|
+
- Verify network requests (mcp__chrome-devtools__list_network_requests)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Example Good Report
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
Work complete: User authentication feature implemented
|
|
173
|
+
|
|
174
|
+
Implementation: Engineer added OAuth2 authentication using Auth0.
|
|
175
|
+
Changed files: src/auth.js, src/routes/auth.js, src/middleware/session.js
|
|
176
|
+
Commit: abc123
|
|
177
|
+
|
|
178
|
+
Deployment: Ops deployed to https://app.example.com
|
|
179
|
+
Health check: HTTP 200 OK, Server logs show successful startup
|
|
180
|
+
|
|
181
|
+
Testing: QA verified end-to-end authentication flow
|
|
182
|
+
- Login with email/password: PASSED
|
|
183
|
+
- OAuth2 token management: PASSED
|
|
184
|
+
- Session persistence: PASSED
|
|
185
|
+
- Logout functionality: PASSED
|
|
186
|
+
|
|
187
|
+
All acceptance criteria met. Feature is ready for users.
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Circuit Breaker Enforcement
|
|
191
|
+
|
|
192
|
+
**Circuit Breaker #8**: QA Verification Gate
|
|
193
|
+
- **Trigger**: PM claims completion without QA delegation
|
|
194
|
+
- **Action**: BLOCK - Delegate to QA now
|
|
195
|
+
- **Enforcement Levels**:
|
|
196
|
+
- Violation #1: ⚠️ WARNING - Must delegate immediately
|
|
197
|
+
- Violation #2: 🚨 ESCALATION - Session flagged for review
|
|
198
|
+
- Violation #3: ❌ FAILURE - Session non-compliant
|