mdan-cli 2.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/README.md +223 -0
- package/agents/AGENTS-REGISTRY.md +215 -0
- package/agents/architect.md +160 -0
- package/agents/dev.md +166 -0
- package/agents/devops.md +230 -0
- package/agents/doc.md +189 -0
- package/agents/learn.md +377 -0
- package/agents/product.md +124 -0
- package/agents/security.md +168 -0
- package/agents/test.md +151 -0
- package/agents/ux.md +207 -0
- package/cli/mdan.js +505 -0
- package/cli/mdan.py +259 -0
- package/cli/mdan.sh +724 -0
- package/cli/postinstall.js +4 -0
- package/core/orchestrator.md +238 -0
- package/core/universal-envelope.md +160 -0
- package/install.sh +228 -0
- package/integrations/all-integrations.md +300 -0
- package/integrations/claude.md +46 -0
- package/integrations/cursor.md +74 -0
- package/integrations/windsurf.md +48 -0
- package/memory/MDAN-STATE.template.json +44 -0
- package/memory/MEMORY-SYSTEM.md +197 -0
- package/package.json +48 -0
- package/phases/01-discover.md +136 -0
- package/phases/02-design.md +147 -0
- package/phases/03-build.md +113 -0
- package/phases/04-verify.md +101 -0
- package/phases/05-ship.md +156 -0
- package/skills/find-skills/skill.md +133 -0
- package/templates/ARCHITECTURE.md +186 -0
- package/templates/CHANGELOG.md +41 -0
- package/templates/MDAN-KNOWLEDGE.md +73 -0
- package/templates/PRD.md +120 -0
- package/templates/SECURITY-REVIEW.md +99 -0
- package/templates/TEST-PLAN.md +97 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# MDAN Template — Test Plan
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
**Artifact:** Test Plan
|
|
5
|
+
**Phase:** VERIFY
|
|
6
|
+
**Agent:** Test Agent v1.0.0
|
|
7
|
+
**Version:** [X.Y]
|
|
8
|
+
**Status:** Draft | Review | Validated
|
|
9
|
+
**Date:** [YYYY-MM-DD]
|
|
10
|
+
**Project:** [Project Name]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Test Strategy
|
|
14
|
+
|
|
15
|
+
| Type | Coverage Target | Tools | Automated |
|
|
16
|
+
|------|----------------|-------|-----------|
|
|
17
|
+
| Unit | 80%+ | [Jest/Vitest/Pytest/etc.] | Yes |
|
|
18
|
+
| Integration | Key flows | [Tool] | Yes |
|
|
19
|
+
| E2E | Critical paths | [Cypress/Playwright/etc.] | Yes |
|
|
20
|
+
| Performance | p95 < [Xms] @ [Y rps] | [k6/JMeter] | Yes |
|
|
21
|
+
| Security | OWASP Top 10 | [Tool] | Partial |
|
|
22
|
+
| Manual | Edge cases | N/A | No |
|
|
23
|
+
|
|
24
|
+
## 2. Test Cases
|
|
25
|
+
|
|
26
|
+
### Feature: [Feature Name]
|
|
27
|
+
|
|
28
|
+
#### Unit Tests
|
|
29
|
+
```[language]
|
|
30
|
+
describe('[Component/Function]', () => {
|
|
31
|
+
it('should [expected behavior] when [condition]', () => {
|
|
32
|
+
// Arrange
|
|
33
|
+
const input = [...]
|
|
34
|
+
// Act
|
|
35
|
+
const result = functionCall(input)
|
|
36
|
+
// Assert
|
|
37
|
+
expect(result).toBe([expected])
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('should throw [error] when [invalid condition]', () => {
|
|
41
|
+
expect(() => functionCall(invalidInput)).toThrow('[error message]')
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### Integration Tests
|
|
47
|
+
```[language]
|
|
48
|
+
// Test que [Component A] + [Component B] fonctionnent ensemble
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
#### E2E Scenarios
|
|
52
|
+
|
|
53
|
+
**Scénario 1 — Happy Path : [Name]**
|
|
54
|
+
- Given: [Préconditions]
|
|
55
|
+
- When: [Actions utilisateur]
|
|
56
|
+
- Then: [Résultat attendu]
|
|
57
|
+
|
|
58
|
+
**Scénario 2 — Error Path : [Name]**
|
|
59
|
+
- Given: [Préconditions]
|
|
60
|
+
- When: [Action invalide]
|
|
61
|
+
- Then: [Gestion d'erreur attendue]
|
|
62
|
+
|
|
63
|
+
## 3. Edge Cases & Security Tests
|
|
64
|
+
|
|
65
|
+
| Cas | Input | Comportement attendu |
|
|
66
|
+
|-----|-------|---------------------|
|
|
67
|
+
| Input vide | `""` | Erreur : "Champ requis" |
|
|
68
|
+
| Longueur max | 10001 chars | Erreur : "Max 10000 chars" |
|
|
69
|
+
| SQL Injection | `"' OR 1=1"` | Input sanitisé, aucun accès DB |
|
|
70
|
+
| XSS | `"<script>..."` | Input échappé en sortie |
|
|
71
|
+
| Auth bypass | Token expiré | 401 Unauthorized |
|
|
72
|
+
|
|
73
|
+
## 4. Performance Test Scenarios
|
|
74
|
+
|
|
75
|
+
| Scénario | Charge | Durée | Critère de passage |
|
|
76
|
+
|----------|--------|-------|--------------------|
|
|
77
|
+
| Charge normale | 100 rps | 5 min | p95 < 200ms, erreurs < 0.1% |
|
|
78
|
+
| Pic de charge | 1000 rps | 1 min | p95 < 500ms, erreurs < 1% |
|
|
79
|
+
|
|
80
|
+
## 5. Test Data Requirements
|
|
81
|
+
|
|
82
|
+
[Données de test nécessaires, comment les générer, comment les reset après les tests]
|
|
83
|
+
|
|
84
|
+
## 6. Limitations connues
|
|
85
|
+
|
|
86
|
+
[Ce qui n'est PAS testé et pourquoi]
|
|
87
|
+
|
|
88
|
+
## 7. Résultats
|
|
89
|
+
|
|
90
|
+
| Type | Total | Passés | Échoués | Couverture |
|
|
91
|
+
|------|-------|--------|---------|-----------|
|
|
92
|
+
| Unit | — | — | — | —% |
|
|
93
|
+
| Integration | — | — | — | — |
|
|
94
|
+
| E2E | — | — | — | — |
|
|
95
|
+
| Performance | — | — | — | — |
|
|
96
|
+
|
|
97
|
+
*Test Plan validé par :* ________________ *Date :* ________________
|