@bradtaylorsf/alpha-loop 1.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 (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +294 -0
  3. package/agents/implementer.md +30 -0
  4. package/agents/reviewer.md +29 -0
  5. package/dist/cli.d.ts +2 -0
  6. package/dist/cli.js +57 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/auth.d.ts +1 -0
  9. package/dist/commands/auth.js +89 -0
  10. package/dist/commands/auth.js.map +1 -0
  11. package/dist/commands/history.d.ts +8 -0
  12. package/dist/commands/history.js +185 -0
  13. package/dist/commands/history.js.map +1 -0
  14. package/dist/commands/init.d.ts +1 -0
  15. package/dist/commands/init.js +241 -0
  16. package/dist/commands/init.js.map +1 -0
  17. package/dist/commands/run.d.ts +15 -0
  18. package/dist/commands/run.js +321 -0
  19. package/dist/commands/run.js.map +1 -0
  20. package/dist/commands/scan.d.ts +1 -0
  21. package/dist/commands/scan.js +50 -0
  22. package/dist/commands/scan.js.map +1 -0
  23. package/dist/commands/sync.d.ts +20 -0
  24. package/dist/commands/sync.js +149 -0
  25. package/dist/commands/sync.js.map +1 -0
  26. package/dist/commands/vision.d.ts +1 -0
  27. package/dist/commands/vision.js +194 -0
  28. package/dist/commands/vision.js.map +1 -0
  29. package/dist/engine/agents.d.ts +41 -0
  30. package/dist/engine/agents.js +90 -0
  31. package/dist/engine/agents.js.map +1 -0
  32. package/dist/engine/config.d.ts +71 -0
  33. package/dist/engine/config.js +73 -0
  34. package/dist/engine/config.js.map +1 -0
  35. package/dist/engine/prerequisites.d.ts +34 -0
  36. package/dist/engine/prerequisites.js +90 -0
  37. package/dist/engine/prerequisites.js.map +1 -0
  38. package/dist/lib/agent.d.ts +25 -0
  39. package/dist/lib/agent.js +97 -0
  40. package/dist/lib/agent.js.map +1 -0
  41. package/dist/lib/config.d.ts +35 -0
  42. package/dist/lib/config.js +179 -0
  43. package/dist/lib/config.js.map +1 -0
  44. package/dist/lib/context.d.ts +17 -0
  45. package/dist/lib/context.js +96 -0
  46. package/dist/lib/context.js.map +1 -0
  47. package/dist/lib/github.d.ts +61 -0
  48. package/dist/lib/github.js +313 -0
  49. package/dist/lib/github.js.map +1 -0
  50. package/dist/lib/learning.d.ts +43 -0
  51. package/dist/lib/learning.js +207 -0
  52. package/dist/lib/learning.js.map +1 -0
  53. package/dist/lib/logger.d.ts +9 -0
  54. package/dist/lib/logger.js +28 -0
  55. package/dist/lib/logger.js.map +1 -0
  56. package/dist/lib/pipeline.d.ts +18 -0
  57. package/dist/lib/pipeline.js +456 -0
  58. package/dist/lib/pipeline.js.map +1 -0
  59. package/dist/lib/preflight.d.ts +33 -0
  60. package/dist/lib/preflight.js +123 -0
  61. package/dist/lib/preflight.js.map +1 -0
  62. package/dist/lib/prerequisites.d.ts +12 -0
  63. package/dist/lib/prerequisites.js +54 -0
  64. package/dist/lib/prerequisites.js.map +1 -0
  65. package/dist/lib/prompts.d.ts +44 -0
  66. package/dist/lib/prompts.js +102 -0
  67. package/dist/lib/prompts.js.map +1 -0
  68. package/dist/lib/session.d.ts +28 -0
  69. package/dist/lib/session.js +173 -0
  70. package/dist/lib/session.js.map +1 -0
  71. package/dist/lib/shell.d.ts +32 -0
  72. package/dist/lib/shell.js +95 -0
  73. package/dist/lib/shell.js.map +1 -0
  74. package/dist/lib/testing.d.ts +10 -0
  75. package/dist/lib/testing.js +51 -0
  76. package/dist/lib/testing.js.map +1 -0
  77. package/dist/lib/verify.d.ts +18 -0
  78. package/dist/lib/verify.js +235 -0
  79. package/dist/lib/verify.js.map +1 -0
  80. package/dist/lib/vision.d.ts +9 -0
  81. package/dist/lib/vision.js +21 -0
  82. package/dist/lib/vision.js.map +1 -0
  83. package/dist/lib/worktree.d.ts +29 -0
  84. package/dist/lib/worktree.js +153 -0
  85. package/dist/lib/worktree.js.map +1 -0
  86. package/package.json +63 -0
  87. package/templates/agents/implementer.md +34 -0
  88. package/templates/agents/reviewer.md +48 -0
  89. package/templates/skills/code-review/SKILL.md +58 -0
  90. package/templates/skills/git-workflow/SKILL.md +53 -0
  91. package/templates/skills/implementation-planning/SKILL.md +64 -0
  92. package/templates/skills/security-analysis/SKILL.md +560 -0
  93. package/templates/skills/security-analysis/scripts/security-scanner.sh +227 -0
  94. package/templates/skills/test-robustness/SKILL.md +897 -0
  95. package/templates/skills/testing-patterns/SKILL.md +75 -0
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: testing-patterns
3
+ description: TDD patterns, Jest testing conventions, and test quality standards. Use when writing any tests.
4
+ auto_load: true
5
+ priority: high
6
+ ---
7
+
8
+ # Testing Patterns Skill
9
+
10
+ ## Trigger
11
+ When writing tests or implementing features that need tests.
12
+
13
+ ## TDD Flow
14
+
15
+ 1. **Red**: Write a failing test first
16
+ 2. **Green**: Write minimal code to pass
17
+ 3. **Refactor**: Clean up while tests stay green
18
+
19
+ ## Test Structure
20
+
21
+ ```typescript
22
+ describe('ModuleName', () => {
23
+ describe('functionName', () => {
24
+ it('should do expected behavior when given input', () => {
25
+ // Arrange
26
+ const input = createTestInput();
27
+
28
+ // Act
29
+ const result = functionName(input);
30
+
31
+ // Assert
32
+ expect(result).toEqual(expectedOutput);
33
+ });
34
+
35
+ it('should throw when given invalid input', () => {
36
+ expect(() => functionName(null)).toThrow();
37
+ });
38
+ });
39
+ });
40
+ ```
41
+
42
+ ## Rules
43
+
44
+ ### Naming
45
+ - Describe behavior, not implementation
46
+ - Good: `should return 404 when user not found`
47
+ - Bad: `test getUserById`
48
+
49
+ ### Isolation
50
+ - Each test is independent (no shared mutable state)
51
+ - Use `beforeEach` for setup, not `beforeAll` for mutable state
52
+ - Clean up after tests (close connections, clear timers)
53
+
54
+ ### Mocking
55
+ - Mock external dependencies (APIs, databases, file system)
56
+ - Don't mock the thing you're testing
57
+ - Use `jest.mock()` at module level, `jest.spyOn()` for specific methods
58
+ - Reset mocks between tests: `jest.restoreAllMocks()` in `afterEach`
59
+
60
+ ### What to Test
61
+ - Happy path (expected input -> expected output)
62
+ - Error cases (invalid input, missing data, network failures)
63
+ - Edge cases (empty arrays, null values, boundary conditions)
64
+ - Integration points (API endpoints with supertest)
65
+
66
+ ### What NOT to Test
67
+ - Third-party library internals
68
+ - TypeScript type checking (the compiler does this)
69
+ - Simple getters/setters with no logic
70
+
71
+ ### Anti-Patterns to Avoid
72
+ - No `waitForTimeout()` or `sleep()` in tests
73
+ - No hardcoded test IDs that depend on database state
74
+ - No tests that depend on execution order
75
+ - No `any` type assertions to make tests pass