specweave 1.0.239 → 1.0.241

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 (161) hide show
  1. package/CLAUDE.md +31 -30
  2. package/README.md +1 -1
  3. package/bin/specweave.js +16 -0
  4. package/dist/plugins/specweave-ado/lib/ado-permission-gate.d.ts.map +1 -1
  5. package/dist/plugins/specweave-ado/lib/ado-permission-gate.js +17 -2
  6. package/dist/plugins/specweave-ado/lib/ado-permission-gate.js.map +1 -1
  7. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +7 -0
  8. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
  9. package/dist/plugins/specweave-github/lib/github-feature-sync.js +53 -0
  10. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
  11. package/dist/plugins/specweave-jira/lib/jira-permission-gate.d.ts.map +1 -1
  12. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js +17 -2
  13. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js.map +1 -1
  14. package/dist/plugins/specweave-testing/lib/playwright-cli-detector.d.ts +1 -0
  15. package/dist/plugins/specweave-testing/lib/playwright-cli-detector.d.ts.map +1 -1
  16. package/dist/plugins/specweave-testing/lib/playwright-cli-detector.js +7 -3
  17. package/dist/plugins/specweave-testing/lib/playwright-cli-detector.js.map +1 -1
  18. package/dist/plugins/specweave-testing/lib/playwright-cli-runner.d.ts.map +1 -1
  19. package/dist/plugins/specweave-testing/lib/playwright-cli-runner.js +27 -19
  20. package/dist/plugins/specweave-testing/lib/playwright-cli-runner.js.map +1 -1
  21. package/dist/plugins/specweave-testing/lib/playwright-routing.d.ts +8 -0
  22. package/dist/plugins/specweave-testing/lib/playwright-routing.d.ts.map +1 -1
  23. package/dist/plugins/specweave-testing/lib/playwright-routing.js +10 -7
  24. package/dist/plugins/specweave-testing/lib/playwright-routing.js.map +1 -1
  25. package/dist/src/adapters/agents-md-generator.js +1 -1
  26. package/dist/src/adapters/agents-md-generator.js.map +1 -1
  27. package/dist/src/adapters/claude/README.md +1 -1
  28. package/dist/src/adapters/claude-md-generator.js +1 -1
  29. package/dist/src/adapters/claude-md-generator.js.map +1 -1
  30. package/dist/src/cli/commands/init.d.ts.map +1 -1
  31. package/dist/src/cli/commands/init.js +10 -1
  32. package/dist/src/cli/commands/init.js.map +1 -1
  33. package/dist/src/cli/commands/refresh-marketplace.d.ts.map +1 -1
  34. package/dist/src/cli/commands/refresh-marketplace.js +7 -67
  35. package/dist/src/cli/commands/refresh-marketplace.js.map +1 -1
  36. package/dist/src/cli/commands/team.d.ts +20 -0
  37. package/dist/src/cli/commands/team.d.ts.map +1 -0
  38. package/dist/src/cli/commands/team.js +101 -0
  39. package/dist/src/cli/commands/team.js.map +1 -0
  40. package/dist/src/cli/helpers/init/claude-settings-env.d.ts +16 -0
  41. package/dist/src/cli/helpers/init/claude-settings-env.d.ts.map +1 -0
  42. package/dist/src/cli/helpers/init/claude-settings-env.js +44 -0
  43. package/dist/src/cli/helpers/init/claude-settings-env.js.map +1 -0
  44. package/dist/src/cli/helpers/init/plugin-installer.d.ts.map +1 -1
  45. package/dist/src/cli/helpers/init/plugin-installer.js +9 -13
  46. package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
  47. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  48. package/dist/src/cli/helpers/issue-tracker/index.js +12 -6
  49. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  50. package/dist/src/cli/helpers/issue-tracker/types.d.ts +2 -0
  51. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
  52. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
  53. package/dist/src/core/increment/discipline-checker.js +1 -1
  54. package/dist/src/core/increment/discipline-checker.js.map +1 -1
  55. package/dist/src/core/increment/status-commands.d.ts.map +1 -1
  56. package/dist/src/core/increment/status-commands.js +7 -0
  57. package/dist/src/core/increment/status-commands.js.map +1 -1
  58. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
  59. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
  60. package/dist/src/core/lazy-loading/llm-plugin-detector.js +63 -25
  61. package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
  62. package/dist/src/core/reflection/reflect-handler.js +2 -2
  63. package/dist/src/core/reflection/reflect-handler.js.map +1 -1
  64. package/dist/src/core/session/handoff-context.js +2 -2
  65. package/dist/src/core/session/handoff-context.js.map +1 -1
  66. package/dist/src/sync/ado-reconciler.d.ts.map +1 -1
  67. package/dist/src/sync/ado-reconciler.js +21 -2
  68. package/dist/src/sync/ado-reconciler.js.map +1 -1
  69. package/dist/src/sync/engine.d.ts.map +1 -1
  70. package/dist/src/sync/engine.js +2 -0
  71. package/dist/src/sync/engine.js.map +1 -1
  72. package/dist/src/sync/github-reconciler.d.ts.map +1 -1
  73. package/dist/src/sync/github-reconciler.js +52 -26
  74. package/dist/src/sync/github-reconciler.js.map +1 -1
  75. package/dist/src/sync/jira-reconciler.d.ts.map +1 -1
  76. package/dist/src/sync/jira-reconciler.js +16 -3
  77. package/dist/src/sync/jira-reconciler.js.map +1 -1
  78. package/dist/src/sync/providers/ado.d.ts.map +1 -1
  79. package/dist/src/sync/providers/ado.js +4 -2
  80. package/dist/src/sync/providers/ado.js.map +1 -1
  81. package/dist/src/sync/providers/github.d.ts.map +1 -1
  82. package/dist/src/sync/providers/github.js +11 -0
  83. package/dist/src/sync/providers/github.js.map +1 -1
  84. package/dist/src/sync/providers/jira.d.ts.map +1 -1
  85. package/dist/src/sync/providers/jira.js +14 -2
  86. package/dist/src/sync/providers/jira.js.map +1 -1
  87. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  88. package/dist/src/sync/sync-coordinator.js +31 -6
  89. package/dist/src/sync/sync-coordinator.js.map +1 -1
  90. package/dist/src/utils/auto-install.js +4 -4
  91. package/dist/src/utils/auto-install.js.map +1 -1
  92. package/package.json +2 -2
  93. package/plugins/FINAL-AUDIT-RECOMMENDATIONS.md +3 -3
  94. package/plugins/SKILLS-VS-AGENTS.md +1 -1
  95. package/plugins/specweave/PLUGIN.md +0 -2
  96. package/plugins/specweave/commands/export-skills.md +1 -1
  97. package/plugins/specweave/commands/role-orchestrator.md +1 -1
  98. package/plugins/specweave/hooks/log-decision.sh +6 -0
  99. package/plugins/specweave/hooks/stop-auto-v5.sh +17 -1
  100. package/plugins/specweave/hooks/stop-reflect.sh +16 -2
  101. package/plugins/specweave/hooks/stop-sync.sh +17 -9
  102. package/plugins/specweave/hooks/user-prompt-submit.sh +119 -35
  103. package/plugins/specweave/lib/vendor/sync/github-reconciler.js +52 -26
  104. package/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
  105. package/plugins/specweave/scripts/read-grill-context.sh +149 -0
  106. package/plugins/specweave/skills/code-review/SKILL.md +608 -0
  107. package/plugins/specweave/skills/done/SKILL.md +1 -1
  108. package/plugins/specweave/skills/grill/SKILL.md +91 -0
  109. package/plugins/specweave/skills/performance/SKILL.md +6 -0
  110. package/plugins/specweave/skills/security/SKILL.md +7 -0
  111. package/plugins/specweave/skills/security-patterns/SKILL.md +6 -0
  112. package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +1 -1
  113. package/plugins/specweave/skills/team-build/SKILL.md +1 -1
  114. package/plugins/specweave/skills/team-orchestrate/SKILL.md +1 -1
  115. package/plugins/specweave/skills/tech-lead/SKILL.md +7 -0
  116. package/plugins/specweave-ado/lib/ado-permission-gate.js +18 -2
  117. package/plugins/specweave-ado/lib/ado-permission-gate.ts +19 -2
  118. package/plugins/specweave-frontend/skills/frontend/SKILL.md +138 -2
  119. package/plugins/specweave-frontend/skills/i18n-expert/SKILL.md +989 -0
  120. package/plugins/specweave-github/hooks/github-auto-create-handler.sh +23 -1
  121. package/plugins/specweave-github/lib/github-feature-sync.js +41 -0
  122. package/plugins/specweave-github/lib/github-feature-sync.ts +62 -0
  123. package/plugins/specweave-infrastructure/PLUGIN.md +2 -1
  124. package/plugins/specweave-infrastructure/skills/gcp-deep-dive/SKILL.md +1172 -0
  125. package/plugins/specweave-infrastructure/skills/observability/SKILL.md +6 -0
  126. package/plugins/specweave-infrastructure/skills/opentelemetry/SKILL.md +6 -0
  127. package/plugins/specweave-jira/lib/jira-permission-gate.js +18 -2
  128. package/plugins/specweave-jira/lib/jira-permission-gate.ts +19 -2
  129. package/plugins/specweave-mobile/PLUGIN.md +1 -2
  130. package/plugins/specweave-mobile/README.md +13 -12
  131. package/plugins/specweave-mobile/skills/capacitor-ionic/SKILL.md +4 -18
  132. package/plugins/specweave-mobile/skills/deep-linking-push/SKILL.md +4 -22
  133. package/plugins/specweave-mobile/skills/expo/SKILL.md +4 -24
  134. package/plugins/specweave-mobile/skills/mobile-testing/SKILL.md +4 -22
  135. package/plugins/specweave-mobile/skills/react-native-expert/SKILL.md +404 -47
  136. package/plugins/specweave-testing/PLUGIN.md +3 -11
  137. package/plugins/specweave-testing/lib/playwright-cli-detector.js +8 -3
  138. package/plugins/specweave-testing/lib/playwright-cli-detector.ts +8 -3
  139. package/plugins/specweave-testing/lib/playwright-cli-runner.js +25 -20
  140. package/plugins/specweave-testing/lib/playwright-cli-runner.ts +24 -19
  141. package/plugins/specweave-testing/lib/playwright-routing.js +1 -6
  142. package/plugins/specweave-testing/lib/playwright-routing.ts +11 -8
  143. package/plugins/specweave-testing/skills/accessibility-testing/SKILL.md +998 -0
  144. package/plugins/specweave-testing/skills/e2e-testing/SKILL.md +29 -28
  145. package/plugins/specweave-testing/skills/mutation-testing/SKILL.md +769 -0
  146. package/plugins/specweave-testing/skills/performance-testing/SKILL.md +961 -0
  147. package/plugins/specweave-testing/skills/qa-engineer/SKILL.md +2 -0
  148. package/plugins/specweave/.specweave/logs/decisions.jsonl +0 -12
  149. package/plugins/specweave/.specweave/logs/reflect/reflect.log +0 -8
  150. package/plugins/specweave/.specweave/logs/stop-auto.log +0 -6
  151. package/plugins/specweave/.specweave/logs/stop-sync.log +0 -10
  152. package/plugins/specweave/.specweave/state/dashboard.json +0 -43
  153. package/plugins/specweave/skills/infrastructure/SKILL.md +0 -86
  154. package/plugins/specweave/skills/qa-lead/SKILL.md +0 -77
  155. package/plugins/specweave-mobile/skills/mobile-architect/SKILL.md +0 -30
  156. package/plugins/specweave-testing/commands/e2e-setup.md +0 -1103
  157. package/plugins/specweave-testing/commands/test-coverage.md +0 -983
  158. package/plugins/specweave-testing/commands/test-generate.md +0 -1160
  159. package/plugins/specweave-testing/commands/test-init.md +0 -413
  160. package/plugins/specweave-testing/commands/ui-automate.md +0 -182
  161. package/plugins/specweave-testing/commands/ui-inspect.md +0 -82
@@ -158,6 +158,8 @@ You are an expert QA engineer with deep knowledge of testing strategies, test au
158
158
 
159
159
  ### 6. End-to-End Testing
160
160
 
161
+ **CLI-First Rule**: Always use Playwright CLI (`npx playwright test`) for E2E test execution. DO NOT use MCP Playwright tools (`browser_click`, `browser_snapshot`, etc.) for running or writing tests — they bypass playwright.config.ts, consume 20x more tokens, and produce non-committable ephemeral interactions instead of reusable test code.
162
+
161
163
  **Playwright Excellence**:
162
164
  - Page Object Model (POM)
163
165
  - Fixtures for setup/teardown
@@ -1,12 +0,0 @@
1
- {"timestamp":"2026-02-03T05:48:20Z","hook":"stop-auto","decision":"approve","reason":"No increments directory","reasonCode":"no_increments_dir","durationMs":0,"context":{}}
2
- {"timestamp":"2026-02-03T05:48:20Z","hook":"stop-reflect","decision":"approve","reason":"specweave CLI not found","reasonCode":"error","durationMs":0,"context":{"transcriptLines":28,"reflectionEnabled":true,"learningsExtracted":0,"learningCategories":[],"exitReason":"error","triggerReason":"session_end"}}
3
- {"timestamp":"2026-02-03T05:49:50Z","hook":"stop-auto","decision":"approve","reason":"No increments directory","reasonCode":"no_increments_dir","durationMs":0,"context":{}}
4
- {"timestamp":"2026-02-03T05:49:50Z","hook":"stop-reflect","decision":"approve","reason":"Transcript too short (5 lines)","reasonCode":"transcript_too_short","durationMs":0,"context":{"transcriptLines":5,"reflectionEnabled":true,"learningsExtracted":0,"learningCategories":[],"exitReason":"transcript_too_short","triggerReason":"session_end"}}
5
- {"timestamp":"2026-02-03T05:50:08Z","hook":"stop-auto","decision":"approve","reason":"No increments directory","reasonCode":"no_increments_dir","durationMs":0,"context":{}}
6
- {"timestamp":"2026-02-03T05:50:08Z","hook":"stop-reflect","decision":"approve","reason":"Transcript too short (8 lines)","reasonCode":"transcript_too_short","durationMs":0,"context":{"transcriptLines":8,"reflectionEnabled":true,"learningsExtracted":0,"learningCategories":[],"exitReason":"transcript_too_short","triggerReason":"session_end"}}
7
- {"timestamp":"2026-02-03T05:50:24Z","hook":"stop-auto","decision":"approve","reason":"No increments directory","reasonCode":"no_increments_dir","durationMs":0,"context":{}}
8
- {"timestamp":"2026-02-03T05:50:24Z","hook":"stop-reflect","decision":"approve","reason":"specweave CLI not found","reasonCode":"error","durationMs":0,"context":{"transcriptLines":13,"reflectionEnabled":true,"learningsExtracted":0,"learningCategories":[],"exitReason":"error","triggerReason":"session_end"}}
9
- {"timestamp":"2026-02-03T05:50:46Z","hook":"stop-auto","decision":"approve","reason":"No increments directory","reasonCode":"no_increments_dir","durationMs":0,"context":{}}
10
- {"timestamp":"2026-02-03T05:50:46Z","hook":"stop-reflect","decision":"approve","reason":"specweave CLI not found","reasonCode":"error","durationMs":0,"context":{"transcriptLines":17,"reflectionEnabled":true,"learningsExtracted":0,"learningCategories":[],"exitReason":"error","triggerReason":"session_end"}}
11
- {"timestamp":"2026-02-03T05:52:57Z","hook":"stop-auto","decision":"approve","reason":"No increments directory","reasonCode":"no_increments_dir","durationMs":0,"context":{}}
12
- {"timestamp":"2026-02-03T05:52:57Z","hook":"stop-reflect","decision":"approve","reason":"specweave CLI not found","reasonCode":"error","durationMs":0,"context":{"transcriptLines":399,"reflectionEnabled":true,"learningsExtracted":0,"learningCategories":[],"exitReason":"error","triggerReason":"session_end"}}
@@ -1,8 +0,0 @@
1
- [2026-02-03T05:48:20Z] [info] Starting reflection (28 lines)
2
- [2026-02-03T05:48:20Z] [warn] specweave CLI not found
3
- [2026-02-03T05:50:24Z] [info] Starting reflection (13 lines)
4
- [2026-02-03T05:50:24Z] [warn] specweave CLI not found
5
- [2026-02-03T05:50:46Z] [info] Starting reflection (17 lines)
6
- [2026-02-03T05:50:46Z] [warn] specweave CLI not found
7
- [2026-02-03T05:52:57Z] [info] Starting reflection (399 lines)
8
- [2026-02-03T05:52:57Z] [warn] specweave CLI not found
@@ -1,6 +0,0 @@
1
- [2026-02-03T05:48:20Z] APPROVE: No increments directory
2
- [2026-02-03T05:49:50Z] APPROVE: No increments directory
3
- [2026-02-03T05:50:08Z] APPROVE: No increments directory
4
- [2026-02-03T05:50:24Z] APPROVE: No increments directory
5
- [2026-02-03T05:50:46Z] APPROVE: No increments directory
6
- [2026-02-03T05:52:57Z] APPROVE: No increments directory
@@ -1,10 +0,0 @@
1
- [2026-02-03T05:49:50Z] Stop-sync started
2
- [2026-02-03T05:49:50Z] No pending events to sync
3
- [2026-02-03T05:50:08Z] Stop-sync started
4
- [2026-02-03T05:50:08Z] No pending events to sync
5
- [2026-02-03T05:50:24Z] Stop-sync started
6
- [2026-02-03T05:50:24Z] No pending events to sync
7
- [2026-02-03T05:50:46Z] Stop-sync started
8
- [2026-02-03T05:50:46Z] No pending events to sync
9
- [2026-02-03T05:52:57Z] Stop-sync started
10
- [2026-02-03T05:52:57Z] No pending events to sync
@@ -1,43 +0,0 @@
1
- {
2
- "version": 1,
3
- "updatedAt": "2026-02-03T05:49:24Z",
4
- "increments": {},
5
- "summary": {
6
- "total": 0,
7
- "active": 0,
8
- "paused": 0,
9
- "backlog": 0,
10
- "planning": 0,
11
- "ready_for_review": 0,
12
- "completed": 0,
13
- "abandoned": 0,
14
- "archived": 0,
15
- "byType": {
16
- "feature": 0,
17
- "hotfix": 0,
18
- "bug": 0,
19
- "refactor": 0,
20
- "experiment": 0,
21
- "change-request": 0
22
- },
23
- "byPriority": {
24
- "P0": 0,
25
- "P1": 0,
26
- "P2": 0,
27
- "P3": 0
28
- }
29
- },
30
- "jobs": {
31
- "running": [],
32
- "paused": [],
33
- "failed": [],
34
- "completedCount": 0
35
- },
36
- "costs": {
37
- "totalTokens": 0,
38
- "totalCost": 0,
39
- "totalSavings": 0,
40
- "byIncrement": {}
41
- },
42
- "mtimes": {}
43
- }
@@ -1,86 +0,0 @@
1
- ---
2
- description: Infrastructure-as-Code specialist for Terraform, AWS, Azure, and serverless architectures. Use when setting up cloud infrastructure, writing Terraform modules, or deploying to AWS Lambda/Vercel/Cloudflare. Covers VPC configuration, container orchestration, and CI/CD pipeline infrastructure.
3
- allowed-tools: Read, Write, Edit, Bash
4
- ---
5
-
6
- # Infrastructure Skill
7
-
8
- ## Overview
9
-
10
- You are a serverless infrastructure specialist who generates production-ready Infrastructure-as-Code using Terraform.
11
-
12
- ## Core Principles
13
-
14
- 1. **ONE infrastructure layer per response** - Chunk by layer
15
- 2. **Auto-execute with credentials** - Never output manual steps
16
- 3. **Least privilege IAM** - No wildcards
17
-
18
- ## Quick Reference
19
-
20
- ### Infrastructure Layers (Chunk by these)
21
-
22
- - **Layer 1**: Compute (Lambda, execution roles)
23
- - **Layer 2**: Database (RDS, DynamoDB)
24
- - **Layer 3**: Storage (S3 buckets, policies)
25
- - **Layer 4**: Networking (VPC, subnets, security groups)
26
- - **Layer 5**: Monitoring (CloudWatch, alarms)
27
- - **Layer 6**: CI/CD (deployment pipelines)
28
-
29
- ### Supported Platforms
30
-
31
- | Platform | Components |
32
- |----------|------------|
33
- | AWS Lambda | Lambda + API Gateway + DynamoDB |
34
- | Azure Functions | Function App + Cosmos DB + Storage |
35
- | GCP Cloud Functions | Functions + Firestore + Cloud Storage |
36
- | Firebase | Hosting + Functions + Firestore |
37
- | Supabase | PostgreSQL + Auth + Storage + Edge Functions |
38
-
39
- ### Auto-Execute Rules
40
-
41
- **If credentials found → EXECUTE directly**
42
- **If credentials missing → ASK, then execute**
43
-
44
- ```bash
45
- # Check credentials FIRST (presence only - never display values!)
46
- grep -qE "SUPABASE|DATABASE_URL|CF_|AWS_" .env 2>/dev/null && echo "Credentials found in .env"
47
- wrangler whoami 2>/dev/null
48
- aws sts get-caller-identity 2>/dev/null
49
- ```
50
-
51
- ### Environment Configs
52
-
53
- - **dev.tfvars**: Free tier, minimal redundancy, 7-day logs
54
- - **staging.tfvars**: Balanced cost/performance, 14-day logs
55
- - **prod.tfvars**: Multi-AZ, backup enabled, 90-day logs
56
-
57
- ## Workflow
58
-
59
- 1. **Analysis** (< 500 tokens): List layers needed, ask which first
60
- 2. **Generate ONE layer** (< 800 tokens): Terraform files
61
- 3. **Report progress**: "Ready for next layer?"
62
- 4. **Repeat**: One layer at a time
63
-
64
- ## Token Budget
65
-
66
- **NEVER exceed 2000 tokens per response!**
67
-
68
- ## Security Best Practices
69
-
70
- ✅ Least privilege IAM (specific actions, specific resources)
71
- ✅ Secrets in Secrets Manager (not env vars)
72
- ✅ HTTPS-only (TLS 1.2+)
73
- ✅ Encryption at rest
74
- ✅ CloudWatch logging enabled
75
-
76
- ## Project-Specific Learnings
77
-
78
- **Before starting work, check for project-specific learnings:**
79
-
80
- ```bash
81
- # Check if skill memory exists for this skill
82
- cat .specweave/skill-memories/infrastructure.md 2>/dev/null || echo "No project learnings yet"
83
- ```
84
-
85
- Project learnings are automatically captured by the reflection system when corrections or patterns are identified during development. These learnings help you understand project-specific conventions and past decisions.
86
-
@@ -1,77 +0,0 @@
1
- ---
2
- description: QA lead for comprehensive test strategy, automation frameworks, and quality gates. Use when creating test plans, designing test suites, or setting up E2E/integration testing. Covers web, mobile, and API testing with Playwright, Jest, and test coverage requirements.
3
- allowed-tools: Read, Write, Edit, Bash
4
- context: fork
5
- ---
6
-
7
- # QA Lead Skill
8
-
9
- ## Overview
10
-
11
- You are an expert QA Lead with 10+ years of experience in test strategy, automation, and quality assurance across web, mobile, and API testing.
12
-
13
- ## Core Principles
14
-
15
- 1. **ONE test file per response** - Never generate all at once
16
- 2. **Map to ACs** - Every test traces to acceptance criteria
17
- 3. **Coverage targets** - 80%+ for critical paths
18
-
19
- ## Quick Reference
20
-
21
- ### Test Coverage Matrix
22
-
23
- | TC ID | Acceptance Criteria | Test Type | Location | Priority |
24
- |-------|---------------------|-----------|----------|----------|
25
- | TC-001 | AC-US1-01 | E2E | tests/e2e/*.spec.ts | P1 |
26
- | TC-002 | AC-US1-02 | Unit | tests/unit/*.test.ts | P2 |
27
-
28
- ### Test Types
29
-
30
- - **Unit Tests**: Business logic, utilities (>80% coverage)
31
- - **Integration Tests**: API endpoints, database operations
32
- - **E2E Tests**: User journeys with Playwright
33
-
34
- ### E2E Test Example (Playwright)
35
-
36
- ```typescript
37
- import { test, expect } from '@playwright/test';
38
-
39
- test('TC-001: Valid Login Flow', async ({ page }) => {
40
- // Given: User has registered account
41
- await page.goto('/login');
42
-
43
- // When: User enters valid credentials
44
- await page.fill('[name="email"]', 'test@example.com');
45
- await page.fill('[name="password"]', 'SecurePass123');
46
- await page.click('button[type="submit"]');
47
-
48
- // Then: Redirect to dashboard
49
- await expect(page).toHaveURL('/dashboard');
50
- });
51
- ```
52
-
53
- ## Workflow
54
-
55
- 1. **Analysis** (< 500 tokens): List test files needed, ask which first
56
- 2. **Generate ONE test file** (< 800 tokens): Write to file
57
- 3. **Report progress**: "X/Y files complete. Ready for next?"
58
- 4. **Repeat**: One file at a time until done
59
-
60
- ## Token Budget
61
-
62
- - **Analysis**: 300-500 tokens
63
- - **Each test file**: 600-800 tokens
64
-
65
- **NEVER exceed 2000 tokens per response!**
66
-
67
- ## Project-Specific Learnings
68
-
69
- **Before starting work, check for project-specific learnings:**
70
-
71
- ```bash
72
- # Check if skill memory exists for this skill
73
- cat .specweave/skill-memories/qa-lead.md 2>/dev/null || echo "No project learnings yet"
74
- ```
75
-
76
- Project learnings are automatically captured by the reflection system when corrections or patterns are identified during development. These learnings help you understand project-specific conventions and past decisions.
77
-
@@ -1,30 +0,0 @@
1
- ---
2
- description: React Native and Expo mobile architect. New Architecture (Fabric, Turbo Modules, JSI), Expo Router, offline-first patterns. Use for mobile app architecture and React Native design.
3
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep
4
- model: opus
5
- context: fork
6
- ---
7
-
8
- # Mobile Architect Agent
9
-
10
- Elite mobile application architect specializing in **React Native** and **Expo**. Expert in designing scalable, maintainable, and performant mobile architectures leveraging the New Architecture (Fabric, Turbo Modules, JSI) and modern React concurrent features.
11
-
12
- ## CRITICAL: Fetching Current Documentation
13
-
14
- **Before providing version-specific guidance, ALWAYS fetch the latest documentation:**
15
-
16
- ```typescript
17
- // React Native - get current version info
18
- mcp__plugin_context7_context7__resolve-library-id({
19
- libraryName: "react-native",
20
- query: "React Native latest version features and breaking changes"
21
- });
22
-
23
- // Expo SDK - get current version info
24
- mcp__plugin_context7_context7__resolve-library-id({
25
- libraryName: "expo",
26
- query: "Expo SDK latest version features and migration guide"
27
- });
28
- ```
29
-
30
- **Why?** Version numbers in static documentation become stale immediately. React Native releases every ~8 weeks. Always verify current versions before recommending specific APIs or migration paths.