@namch/agent-assistant 1.0.0 → 1.0.2

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 (168) hide show
  1. package/README.md +114 -522
  2. package/agents/backend-engineer.md +0 -8
  3. package/agents/brainstormer.md +0 -6
  4. package/agents/business-analyst.md +0 -5
  5. package/agents/database-architect.md +0 -6
  6. package/agents/debugger.md +0 -6
  7. package/agents/designer.md +0 -5
  8. package/agents/devops-engineer.md +0 -7
  9. package/agents/docs-manager.md +0 -6
  10. package/agents/frontend-engineer.md +0 -7
  11. package/agents/game-engineer.md +0 -7
  12. package/agents/mobile-engineer.md +0 -7
  13. package/agents/performance-engineer.md +0 -7
  14. package/agents/planner.md +0 -6
  15. package/agents/project-manager.md +0 -6
  16. package/agents/researcher.md +0 -5
  17. package/agents/reviewer.md +0 -6
  18. package/agents/scouter.md +0 -6
  19. package/agents/security-engineer.md +0 -7
  20. package/agents/tech-lead.md +0 -7
  21. package/agents/tester.md +0 -5
  22. package/cli/README.md +19 -10
  23. package/documents/business/business-features.md +1 -1
  24. package/documents/business/business-prd.md +4 -4
  25. package/documents/knowledge-architecture.md +1 -1
  26. package/documents/knowledge-domain.md +1 -1
  27. package/documents/knowledge-overview.md +14 -29
  28. package/documents/knowledge-source-base.md +14 -14
  29. package/package.json +1 -1
  30. package/rules/QUICK-REFERENCE.md +4 -1
  31. package/rules/SKILL-DISCOVERY.md +37 -14
  32. package/skills/active-directory-attacks/SKILL.md +383 -0
  33. package/skills/active-directory-attacks/references/advanced-attacks.md +382 -0
  34. package/skills/agent-evaluation/SKILL.md +64 -0
  35. package/skills/agent-memory-mcp/SKILL.md +82 -0
  36. package/skills/agent-memory-systems/SKILL.md +67 -0
  37. package/skills/agent-tool-builder/SKILL.md +53 -0
  38. package/skills/ai-agents-architect/SKILL.md +90 -0
  39. package/skills/ai-product/SKILL.md +54 -0
  40. package/skills/ai-wrapper-product/SKILL.md +273 -0
  41. package/skills/api-documentation-generator/SKILL.md +484 -0
  42. package/skills/api-fuzzing-bug-bounty/SKILL.md +433 -0
  43. package/skills/api-security-best-practices/SKILL.md +907 -0
  44. package/skills/autonomous-agent-patterns/SKILL.md +761 -0
  45. package/skills/autonomous-agents/SKILL.md +68 -0
  46. package/skills/aws-penetration-testing/SKILL.md +405 -0
  47. package/skills/aws-penetration-testing/references/advanced-aws-pentesting.md +469 -0
  48. package/skills/azure-functions/SKILL.md +42 -0
  49. package/skills/backend-dev-guidelines/SKILL.md +342 -0
  50. package/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  51. package/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  52. package/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  53. package/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  54. package/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  55. package/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  56. package/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  57. package/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  58. package/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  59. package/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  60. package/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  61. package/skills/broken-authentication/SKILL.md +476 -0
  62. package/skills/bullmq-specialist/SKILL.md +57 -0
  63. package/skills/bun-development/SKILL.md +691 -0
  64. package/skills/burp-suite-testing/SKILL.md +380 -0
  65. package/skills/cloud-penetration-testing/SKILL.md +501 -0
  66. package/skills/cloud-penetration-testing/references/advanced-cloud-scripts.md +318 -0
  67. package/skills/computer-use-agents/SKILL.md +315 -0
  68. package/skills/content-creator/SKILL.md +248 -0
  69. package/skills/content-creator/assets/content_calendar_template.md +99 -0
  70. package/skills/content-creator/references/brand_guidelines.md +199 -0
  71. package/skills/content-creator/references/content_frameworks.md +534 -0
  72. package/skills/content-creator/references/social_media_optimization.md +317 -0
  73. package/skills/content-creator/scripts/brand_voice_analyzer.py +185 -0
  74. package/skills/content-creator/scripts/seo_optimizer.py +419 -0
  75. package/skills/context-window-management/SKILL.md +53 -0
  76. package/skills/conversation-memory/SKILL.md +61 -0
  77. package/skills/copy-editing/SKILL.md +439 -0
  78. package/skills/copywriting/SKILL.md +225 -0
  79. package/skills/crewai/SKILL.md +243 -0
  80. package/skills/discord-bot-architect/SKILL.md +277 -0
  81. package/skills/dispatching-parallel-agents/SKILL.md +180 -0
  82. package/skills/email-sequence/SKILL.md +925 -0
  83. package/skills/email-systems/SKILL.md +54 -0
  84. package/skills/ethical-hacking-methodology/SKILL.md +466 -0
  85. package/skills/executing-plans/SKILL.md +76 -0
  86. package/skills/file-path-traversal/SKILL.md +486 -0
  87. package/skills/finishing-a-development-branch/SKILL.md +200 -0
  88. package/skills/frontend-dev-guidelines/SKILL.md +359 -0
  89. package/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  90. package/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  91. package/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  92. package/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  93. package/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  94. package/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  95. package/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  96. package/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  97. package/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  98. package/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  99. package/skills/gcp-cloud-run/SKILL.md +288 -0
  100. package/skills/git-pushing/SKILL.md +33 -0
  101. package/skills/git-pushing/scripts/smart_commit.sh +19 -0
  102. package/skills/github-workflow-automation/SKILL.md +846 -0
  103. package/skills/html-injection-testing/SKILL.md +498 -0
  104. package/skills/idor-testing/SKILL.md +442 -0
  105. package/skills/inngest/SKILL.md +55 -0
  106. package/skills/javascript-mastery/SKILL.md +645 -0
  107. package/skills/kaizen/SKILL.md +730 -0
  108. package/skills/langfuse/SKILL.md +238 -0
  109. package/skills/langgraph/SKILL.md +287 -0
  110. package/skills/linux-privilege-escalation/SKILL.md +504 -0
  111. package/skills/llm-app-patterns/SKILL.md +760 -0
  112. package/skills/metasploit-framework/SKILL.md +478 -0
  113. package/skills/multi-agent-brainstorming/SKILL.md +256 -0
  114. package/skills/neon-postgres/SKILL.md +56 -0
  115. package/skills/nextjs-supabase-auth/SKILL.md +56 -0
  116. package/skills/nosql-expert/SKILL.md +111 -0
  117. package/skills/pentest-checklist/SKILL.md +334 -0
  118. package/skills/pentest-commands/SKILL.md +438 -0
  119. package/skills/plaid-fintech/SKILL.md +50 -0
  120. package/skills/planning-with-files/SKILL.md +211 -0
  121. package/skills/planning-with-files/examples.md +202 -0
  122. package/skills/planning-with-files/reference.md +218 -0
  123. package/skills/planning-with-files/scripts/check-complete.sh +44 -0
  124. package/skills/planning-with-files/scripts/init-session.sh +120 -0
  125. package/skills/planning-with-files/templates/findings.md +95 -0
  126. package/skills/planning-with-files/templates/progress.md +114 -0
  127. package/skills/planning-with-files/templates/task_plan.md +132 -0
  128. package/skills/privilege-escalation-methods/SKILL.md +333 -0
  129. package/skills/production-code-audit/SKILL.md +540 -0
  130. package/skills/prompt-caching/SKILL.md +61 -0
  131. package/skills/prompt-engineering/SKILL.md +171 -0
  132. package/skills/prompt-library/SKILL.md +322 -0
  133. package/skills/rag-engineer/SKILL.md +90 -0
  134. package/skills/rag-implementation/SKILL.md +63 -0
  135. package/skills/react-ui-patterns/SKILL.md +289 -0
  136. package/skills/red-team-tools/SKILL.md +310 -0
  137. package/skills/scanning-tools/SKILL.md +589 -0
  138. package/skills/shodan-reconnaissance/SKILL.md +503 -0
  139. package/skills/slack-bot-builder/SKILL.md +264 -0
  140. package/skills/smtp-penetration-testing/SKILL.md +500 -0
  141. package/skills/social-content/SKILL.md +807 -0
  142. package/skills/software-architecture/SKILL.md +75 -0
  143. package/skills/sql-injection-testing/SKILL.md +448 -0
  144. package/skills/sqlmap-database-pentesting/SKILL.md +400 -0
  145. package/skills/ssh-penetration-testing/SKILL.md +488 -0
  146. package/skills/stripe-integration/SKILL.md +69 -0
  147. package/skills/subagent-driven-development/SKILL.md +240 -0
  148. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  149. package/skills/subagent-driven-development/implementer-prompt.md +78 -0
  150. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  151. package/skills/tavily-web/SKILL.md +36 -0
  152. package/skills/telegram-bot-builder/SKILL.md +254 -0
  153. package/skills/test-driven-development/SKILL.md +371 -0
  154. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  155. package/skills/test-fixing/SKILL.md +119 -0
  156. package/skills/top-web-vulnerabilities/SKILL.md +543 -0
  157. package/skills/trigger-dev/SKILL.md +67 -0
  158. package/skills/twilio-communications/SKILL.md +295 -0
  159. package/skills/upstash-qstash/SKILL.md +68 -0
  160. package/skills/verification-before-completion/SKILL.md +139 -0
  161. package/skills/voice-agents/SKILL.md +68 -0
  162. package/skills/voice-ai-development/SKILL.md +302 -0
  163. package/skills/windows-privilege-escalation/SKILL.md +496 -0
  164. package/skills/wireshark-analysis/SKILL.md +497 -0
  165. package/skills/wordpress-penetration-testing/SKILL.md +485 -0
  166. package/skills/workflow-automation/SKILL.md +68 -0
  167. package/skills/xss-html-injection/SKILL.md +499 -0
  168. package/skills/zapier-make-patterns/SKILL.md +67 -0
@@ -0,0 +1,235 @@
1
+ # Testing Guide - Backend Testing Strategies
2
+
3
+ Complete guide to testing backend services with Jest and best practices.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Unit Testing](#unit-testing)
8
+ - [Integration Testing](#integration-testing)
9
+ - [Mocking Strategies](#mocking-strategies)
10
+ - [Test Data Management](#test-data-management)
11
+ - [Testing Authenticated Routes](#testing-authenticated-routes)
12
+ - [Coverage Targets](#coverage-targets)
13
+
14
+ ---
15
+
16
+ ## Unit Testing
17
+
18
+ ### Test Structure
19
+
20
+ ```typescript
21
+ // services/userService.test.ts
22
+ import { UserService } from './userService';
23
+ import { UserRepository } from '../repositories/UserRepository';
24
+
25
+ jest.mock('../repositories/UserRepository');
26
+
27
+ describe('UserService', () => {
28
+ let service: UserService;
29
+ let mockRepository: jest.Mocked<UserRepository>;
30
+
31
+ beforeEach(() => {
32
+ mockRepository = {
33
+ findByEmail: jest.fn(),
34
+ create: jest.fn(),
35
+ } as any;
36
+
37
+ service = new UserService();
38
+ (service as any).userRepository = mockRepository;
39
+ });
40
+
41
+ afterEach(() => {
42
+ jest.clearAllMocks();
43
+ });
44
+
45
+ describe('create', () => {
46
+ it('should throw error if email exists', async () => {
47
+ mockRepository.findByEmail.mockResolvedValue({ id: '123' } as any);
48
+
49
+ await expect(
50
+ service.create({ email: 'test@test.com' })
51
+ ).rejects.toThrow('Email already in use');
52
+ });
53
+
54
+ it('should create user if email is unique', async () => {
55
+ mockRepository.findByEmail.mockResolvedValue(null);
56
+ mockRepository.create.mockResolvedValue({ id: '123' } as any);
57
+
58
+ const user = await service.create({
59
+ email: 'test@test.com',
60
+ firstName: 'John',
61
+ lastName: 'Doe',
62
+ });
63
+
64
+ expect(user).toBeDefined();
65
+ expect(mockRepository.create).toHaveBeenCalledWith(
66
+ expect.objectContaining({
67
+ email: 'test@test.com'
68
+ })
69
+ );
70
+ });
71
+ });
72
+ });
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Integration Testing
78
+
79
+ ### Test with Real Database
80
+
81
+ ```typescript
82
+ import { PrismaService } from '@project-lifecycle-portal/database';
83
+
84
+ describe('UserService Integration', () => {
85
+ let testUser: any;
86
+
87
+ beforeAll(async () => {
88
+ // Create test data
89
+ testUser = await PrismaService.main.user.create({
90
+ data: {
91
+ email: 'test@test.com',
92
+ profile: { create: { firstName: 'Test', lastName: 'User' } },
93
+ },
94
+ });
95
+ });
96
+
97
+ afterAll(async () => {
98
+ // Cleanup
99
+ await PrismaService.main.user.delete({ where: { id: testUser.id } });
100
+ });
101
+
102
+ it('should find user by email', async () => {
103
+ const user = await userService.findByEmail('test@test.com');
104
+ expect(user).toBeDefined();
105
+ expect(user?.email).toBe('test@test.com');
106
+ });
107
+ });
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Mocking Strategies
113
+
114
+ ### Mock PrismaService
115
+
116
+ ```typescript
117
+ jest.mock('@project-lifecycle-portal/database', () => ({
118
+ PrismaService: {
119
+ main: {
120
+ user: {
121
+ findMany: jest.fn(),
122
+ findUnique: jest.fn(),
123
+ create: jest.fn(),
124
+ update: jest.fn(),
125
+ },
126
+ },
127
+ isAvailable: true,
128
+ },
129
+ }));
130
+ ```
131
+
132
+ ### Mock Services
133
+
134
+ ```typescript
135
+ const mockUserService = {
136
+ findById: jest.fn(),
137
+ create: jest.fn(),
138
+ update: jest.fn(),
139
+ } as jest.Mocked<UserService>;
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Test Data Management
145
+
146
+ ### Setup and Teardown
147
+
148
+ ```typescript
149
+ describe('PermissionService', () => {
150
+ let instanceId: number;
151
+
152
+ beforeAll(async () => {
153
+ // Create test post
154
+ const post = await PrismaService.main.post.create({
155
+ data: { title: 'Test Post', content: 'Test', authorId: 'test-user' },
156
+ });
157
+ instanceId = post.id;
158
+ });
159
+
160
+ afterAll(async () => {
161
+ // Cleanup
162
+ await PrismaService.main.post.delete({
163
+ where: { id: instanceId },
164
+ });
165
+ });
166
+
167
+ beforeEach(() => {
168
+ // Clear caches
169
+ permissionService.clearCache();
170
+ });
171
+
172
+ it('should check permissions', async () => {
173
+ const hasPermission = await permissionService.checkPermission(
174
+ 'user-id',
175
+ instanceId,
176
+ 'VIEW_WORKFLOW'
177
+ );
178
+ expect(hasPermission).toBeDefined();
179
+ });
180
+ });
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Testing Authenticated Routes
186
+
187
+ ### Using test-auth-route.js
188
+
189
+ ```bash
190
+ # Test authenticated endpoint
191
+ node scripts/test-auth-route.js http://localhost:3002/form/api/users
192
+
193
+ # Test with POST data
194
+ node scripts/test-auth-route.js http://localhost:3002/form/api/users POST '{"email":"test@test.com"}'
195
+ ```
196
+
197
+ ### Mock Authentication in Tests
198
+
199
+ ```typescript
200
+ // Mock auth middleware
201
+ jest.mock('../middleware/SSOMiddleware', () => ({
202
+ SSOMiddlewareClient: {
203
+ verifyLoginStatus: (req, res, next) => {
204
+ res.locals.claims = {
205
+ sub: 'test-user-id',
206
+ preferred_username: 'testuser',
207
+ };
208
+ next();
209
+ },
210
+ },
211
+ }));
212
+ ```
213
+
214
+ ---
215
+
216
+ ## Coverage Targets
217
+
218
+ ### Recommended Coverage
219
+
220
+ - **Unit Tests**: 70%+ coverage
221
+ - **Integration Tests**: Critical paths covered
222
+ - **E2E Tests**: Happy paths covered
223
+
224
+ ### Run Coverage
225
+
226
+ ```bash
227
+ npm test -- --coverage
228
+ ```
229
+
230
+ ---
231
+
232
+ **Related Files:**
233
+ - [SKILL.md](SKILL.md)
234
+ - [services-and-repositories.md](services-and-repositories.md)
235
+ - [complete-examples.md](complete-examples.md)