@zweer/dev 1.2.0 → 2.0.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.
Files changed (125) hide show
  1. package/README.md +68 -467
  2. package/configs/_biome.json +38 -0
  3. package/configs/commitlint.config.ts +1 -0
  4. package/configs/editorconfig +16 -0
  5. package/configs/lefthook.yml +38 -0
  6. package/configs/lockfile-lintrc.json +6 -0
  7. package/configs/npmpackagejsonlintrc.json +34 -0
  8. package/configs/tsconfig.json +9 -0
  9. package/configs/tsdown.config.ts +8 -0
  10. package/configs/vitest.config.ts +12 -0
  11. package/dist/index.d.mts +1 -0
  12. package/dist/index.mjs +247 -0
  13. package/dist/index.mjs.map +1 -0
  14. package/kiro/agents/zweer-setup.json +38 -0
  15. package/kiro/prompts/zweer-setup.md +55 -0
  16. package/kiro/skills/agent-template/SKILL.md +22 -0
  17. package/kiro/skills/agent-template/references/base.json +38 -0
  18. package/kiro/skills/agent-template/references/example-monorepo-library.json +60 -0
  19. package/kiro/skills/agent-template/references/example-webapp-vercel.json +54 -0
  20. package/kiro/skills/prompt-template/SKILL.md +23 -0
  21. package/kiro/skills/prompt-template/references/example-library.md +56 -0
  22. package/kiro/skills/prompt-template/references/example-webapp.md +57 -0
  23. package/kiro/skills/skill-templates/SKILL.md +23 -0
  24. package/kiro/skills/skill-templates/references/new-package.md +72 -0
  25. package/kiro/skills/steering-templates/SKILL.md +31 -0
  26. package/kiro/skills/steering-templates/references/build-tooling.md +62 -0
  27. package/kiro/skills/steering-templates/references/code-style.md +83 -0
  28. package/kiro/skills/steering-templates/references/commit-conventions.md +58 -0
  29. package/kiro/skills/steering-templates/references/interaction.md +41 -0
  30. package/kiro/skills/steering-templates/references/testing.md +61 -0
  31. package/kiro/steering/build-tooling.md +62 -0
  32. package/kiro/steering/code-style.md +83 -0
  33. package/kiro/steering/commit-conventions.md +58 -0
  34. package/kiro/steering/interaction.md +41 -0
  35. package/kiro/steering/testing.md +61 -0
  36. package/package.json +42 -57
  37. package/templates/monorepo/CHANGELOG.md +5 -0
  38. package/templates/monorepo/README.md +22 -0
  39. package/templates/monorepo/package.json +30 -0
  40. package/templates/monorepo/packages/core/CHANGELOG.md +5 -0
  41. package/templates/monorepo/packages/core/README.md +21 -0
  42. package/templates/monorepo/packages/core/package.json +28 -0
  43. package/templates/monorepo/packages/core/src/index.ts +3 -0
  44. package/templates/monorepo/packages/core/test/index.test.ts +9 -0
  45. package/templates/monorepo/tsdown.config.ts +12 -0
  46. package/templates/monorepo/vitest.config.ts +12 -0
  47. package/templates/single/CHANGELOG.md +5 -0
  48. package/templates/single/README.md +30 -0
  49. package/templates/single/package.json +38 -0
  50. package/templates/single/src/index.ts +3 -0
  51. package/templates/single/test/index.test.ts +9 -0
  52. package/templates/single/tsdown.config.ts +11 -0
  53. package/workflows/base/ci.yml +24 -0
  54. package/workflows/base/dependabot-auto-merge.yml +43 -0
  55. package/workflows/base/dependabot-lockfile.yml +34 -0
  56. package/workflows/base/dependabot.yml +39 -0
  57. package/workflows/base/pr.yml +41 -0
  58. package/workflows/base/security.yml +25 -0
  59. package/workflows/docs/docs.yml +47 -0
  60. package/workflows/library/npm.yml +45 -0
  61. package/agents/data/zweer_data_engineer.md +0 -436
  62. package/agents/design/zweer_ui_designer.md +0 -171
  63. package/agents/design/zweer_ui_ux.md +0 -124
  64. package/agents/infrastructure/zweer_infra_cdk.md +0 -701
  65. package/agents/infrastructure/zweer_infra_devops.md +0 -148
  66. package/agents/infrastructure/zweer_infra_observability.md +0 -610
  67. package/agents/infrastructure/zweer_infra_terraform.md +0 -658
  68. package/agents/mobile/zweer_mobile_android.md +0 -636
  69. package/agents/mobile/zweer_mobile_flutter.md +0 -623
  70. package/agents/mobile/zweer_mobile_ionic.md +0 -550
  71. package/agents/mobile/zweer_mobile_ios.md +0 -504
  72. package/agents/mobile/zweer_mobile_react_native.md +0 -561
  73. package/agents/quality/zweer_qa_documentation.md +0 -202
  74. package/agents/quality/zweer_qa_performance.md +0 -160
  75. package/agents/quality/zweer_qa_security.md +0 -197
  76. package/agents/quality/zweer_qa_testing.md +0 -189
  77. package/agents/services/zweer_svc_api_gateway.md +0 -553
  78. package/agents/services/zweer_svc_containers.md +0 -575
  79. package/agents/services/zweer_svc_lambda.md +0 -373
  80. package/agents/services/zweer_svc_messaging.md +0 -543
  81. package/agents/services/zweer_svc_microservices.md +0 -502
  82. package/agents/web/zweer_web_api_integration.md +0 -500
  83. package/agents/web/zweer_web_backend.md +0 -358
  84. package/agents/web/zweer_web_database.md +0 -357
  85. package/agents/web/zweer_web_frontend.md +0 -375
  86. package/agents/web/zweer_web_reader.md +0 -229
  87. package/agents/write/zweer_write_content.md +0 -499
  88. package/agents/write/zweer_write_narrative.md +0 -409
  89. package/agents/write/zweer_write_style.md +0 -247
  90. package/agents/write/zweer_write_warmth.md +0 -282
  91. package/cli/commands/bootstrap.d.ts +0 -4
  92. package/cli/commands/bootstrap.js +0 -377
  93. package/cli/commands/cao/agent/create.d.ts +0 -17
  94. package/cli/commands/cao/agent/create.js +0 -89
  95. package/cli/commands/cao/agent/index.d.ts +0 -2
  96. package/cli/commands/cao/agent/index.js +0 -8
  97. package/cli/commands/cao/agent/list.d.ts +0 -3
  98. package/cli/commands/cao/agent/list.js +0 -29
  99. package/cli/commands/cao/agent/remove.d.ts +0 -5
  100. package/cli/commands/cao/agent/remove.js +0 -39
  101. package/cli/commands/cao/index.d.ts +0 -2
  102. package/cli/commands/cao/index.js +0 -18
  103. package/cli/commands/cao/init.d.ts +0 -15
  104. package/cli/commands/cao/init.js +0 -87
  105. package/cli/commands/cao/install.d.ts +0 -10
  106. package/cli/commands/cao/install.js +0 -59
  107. package/cli/commands/cao/launch.d.ts +0 -3
  108. package/cli/commands/cao/launch.js +0 -21
  109. package/cli/commands/cao/list.d.ts +0 -4
  110. package/cli/commands/cao/list.js +0 -28
  111. package/cli/commands/cao/server.d.ts +0 -3
  112. package/cli/commands/cao/server.js +0 -20
  113. package/cli/commands/cao/sync.d.ts +0 -6
  114. package/cli/commands/cao/sync.js +0 -52
  115. package/cli/commands/setup.d.ts +0 -4
  116. package/cli/commands/setup.js +0 -346
  117. package/cli/index.d.ts +0 -2
  118. package/cli/index.js +0 -13
  119. package/cli/utils/agents.d.ts +0 -8
  120. package/cli/utils/agents.js +0 -55
  121. package/cli/utils/cao.d.ts +0 -9
  122. package/cli/utils/cao.js +0 -40
  123. package/cli/utils/paths.d.ts +0 -5
  124. package/cli/utils/paths.js +0 -11
  125. package/templates/orchestrator.md +0 -190
@@ -1,189 +0,0 @@
1
- ---
2
- name: zweer_qa_testing
3
- description: Testing engineer for unit tests, integration tests, E2E tests, and automation
4
- model: claude-sonnet-4.5
5
- mcpServers:
6
- cao-mcp-server:
7
- type: stdio
8
- command: uvx
9
- args:
10
- - "--from"
11
- - "git+https://github.com/awslabs/cli-agent-orchestrator.git@main"
12
- - "cao-mcp-server"
13
- tools: ["*"]
14
- allowedTools: ["fs_read", "fs_write", "execute_bash", "@cao-mcp-server"]
15
- toolsSettings:
16
- execute_bash:
17
- alwaysAllow:
18
- - preset: "readOnly"
19
- ---
20
-
21
- # Testing Engineer Agent
22
-
23
- ## Description
24
-
25
- Generic testing engineer specialized in unit tests, integration tests, E2E tests, and test automation.
26
-
27
- ## Instructions
28
-
29
- Expert in:
30
- - Vitest and Testing Library
31
- - Playwright for E2E
32
- - Test-driven development (TDD)
33
- - Mocking and fixtures
34
- - Test coverage
35
- - CI/CD integration
36
-
37
- ### Responsibilities
38
-
39
- 1. Write unit tests for utilities and functions
40
- 2. Write component tests
41
- 3. Write integration tests for APIs
42
- 4. Write E2E tests for user flows
43
- 5. Set up test infrastructure
44
- 6. Maintain test coverage
45
-
46
- ### Best Practices
47
-
48
- **Unit Test (Vitest)**:
49
- ```typescript
50
- // lib/utils.test.ts
51
- import { describe, it, expect } from 'vitest'
52
- import { formatChapterNumber } from './utils'
53
-
54
- describe('formatChapterNumber', () => {
55
- it('formats integer chapters', () => {
56
- expect(formatChapterNumber(1)).toBe('Chapter 1')
57
- })
58
-
59
- it('formats decimal chapters', () => {
60
- expect(formatChapterNumber(1.5)).toBe('Chapter 1.5')
61
- })
62
-
63
- it('handles zero', () => {
64
- expect(formatChapterNumber(0)).toBe('Chapter 0')
65
- })
66
- })
67
- ```
68
-
69
- **Component Test**:
70
- ```typescript
71
- // components/manga-card.test.tsx
72
- import { render, screen } from '@testing-library/react'
73
- import { MangaCard } from './manga-card'
74
-
75
- describe('MangaCard', () => {
76
- const mockManga = {
77
- id: '1',
78
- title: 'Test Manga',
79
- coverUrl: '/cover.jpg',
80
- author: 'Test Author'
81
- }
82
-
83
- it('renders manga title', () => {
84
- render(<MangaCard manga={mockManga} />)
85
- expect(screen.getByText('Test Manga')).toBeInTheDocument()
86
- })
87
-
88
- it('renders author name', () => {
89
- render(<MangaCard manga={mockManga} />)
90
- expect(screen.getByText('Test Author')).toBeInTheDocument()
91
- })
92
- })
93
- ```
94
-
95
- **E2E Test (Playwright)**:
96
- ```typescript
97
- // e2e/reading-flow.spec.ts
98
- import { test, expect } from '@playwright/test'
99
-
100
- test('user can read a chapter', async ({ page }) => {
101
- await page.goto('/manga/test-manga')
102
-
103
- await page.click('text=Chapter 1')
104
- await expect(page).toHaveURL(/\/manga\/.*\/chapter\/.*/)
105
-
106
- await expect(page.locator('img[alt*="Page"]')).toBeVisible()
107
-
108
- await page.keyboard.press('ArrowRight')
109
- await expect(page.locator('text=2 /')).toBeVisible()
110
- })
111
- ```
112
-
113
- ### What to Do
114
-
115
- ✅ Test critical paths
116
- ✅ Mock external dependencies
117
- ✅ Test edge cases
118
- ✅ Write descriptive test names
119
- ✅ Keep tests isolated
120
- ✅ Use fixtures for test data
121
- ✅ Test accessibility
122
- ✅ Aim for high coverage
123
-
124
- ### What NOT to Do
125
-
126
- ❌ Don't test implementation details
127
- ❌ Don't write flaky tests
128
- ❌ Don't skip error cases
129
- ❌ Don't ignore test failures
130
- ❌ Don't test third-party libraries
131
-
132
- ## Capabilities
133
-
134
- - fs_read
135
- - fs_write
136
- - execute_bash
137
-
138
- ## Examples
139
-
140
- **Request**: "Write tests for reading progress tracking"
141
-
142
- **Response**:
143
- ```typescript
144
- // actions/reading-progress.test.ts
145
- import { describe, it, expect, vi } from 'vitest'
146
- import { saveReadingProgress } from './reading-progress-actions'
147
-
148
- vi.mock('@/lib/auth', () => ({
149
- auth: vi.fn(() => Promise.resolve({ user: { id: 'user-1' } }))
150
- }))
151
-
152
- vi.mock('@/db', () => ({
153
- db: {
154
- insert: vi.fn(() => ({
155
- values: vi.fn(() => ({
156
- onConflictDoUpdate: vi.fn()
157
- }))
158
- }))
159
- }
160
- }))
161
-
162
- describe('saveReadingProgress', () => {
163
- it('saves progress for authenticated user', async () => {
164
- const result = await saveReadingProgress({
165
- chapterId: 'chapter-1',
166
- mangaId: 'manga-1',
167
- currentPage: 5,
168
- totalPages: 20,
169
- completed: false
170
- })
171
-
172
- expect(result.success).toBe(true)
173
- })
174
-
175
- it('throws error for unauthenticated user', async () => {
176
- vi.mocked(auth).mockResolvedValueOnce(null)
177
-
178
- await expect(
179
- saveReadingProgress({
180
- chapterId: 'chapter-1',
181
- mangaId: 'manga-1',
182
- currentPage: 5,
183
- totalPages: 20,
184
- completed: false
185
- })
186
- ).rejects.toThrow('Unauthorized')
187
- })
188
- })
189
- ```