proagents 1.6.4 → 1.6.6

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.
@@ -1,74 +1,22 @@
1
1
  {
2
2
  "$schema": "./schemas/index-schema.json",
3
3
  "version": "1.0.0",
4
- "last_updated": "2024-01-15T10:30:00Z",
4
+ "last_updated": null,
5
5
 
6
- "active_features": [
7
- {
8
- "id": "feature-user-auth",
9
- "name": "User Authentication",
10
- "description": "Add user authentication with OAuth support",
11
- "current_phase": "implementation",
12
- "phase_progress": 60,
13
- "branch": "feature/user-auth",
14
- "started": "2024-01-10T09:00:00Z",
15
- "last_updated": "2024-01-15T10:30:00Z",
16
- "estimated_completion": "2024-01-17T17:00:00Z",
17
- "assignee": "developer-1",
18
- "priority": "high",
19
- "blockers": [],
20
- "dependencies": [],
21
- "files_modified_count": 12,
22
- "checkpoints_completed": ["after_analysis", "after_requirements", "after_design"],
23
- "checkpoints_pending": ["after_implementation", "before_deployment"]
24
- }
25
- ],
26
-
27
- "paused_features": [
28
- {
29
- "id": "feature-notifications",
30
- "name": "Push Notifications",
31
- "description": "Add push notification support",
32
- "current_phase": "requirements",
33
- "phase_progress": 30,
34
- "branch": "feature/notifications",
35
- "started": "2024-01-08T14:00:00Z",
36
- "paused_at": "2024-01-12T11:00:00Z",
37
- "pause_reason": "Waiting for user-auth to complete",
38
- "assignee": "developer-2",
39
- "priority": "medium",
40
- "blocked_by": ["feature-user-auth"]
41
- }
42
- ],
43
-
44
- "completed_features": [
45
- {
46
- "id": "feature-dark-mode",
47
- "name": "Dark Mode Support",
48
- "completed_at": "2024-01-09T16:00:00Z",
49
- "duration_hours": 18,
50
- "merged_commit": "abc123def",
51
- "pr_number": 42
52
- }
53
- ],
6
+ "active_features": [],
7
+ "paused_features": [],
8
+ "completed_features": [],
54
9
 
55
10
  "conflicts": {
56
11
  "active": [],
57
- "resolved": [
58
- {
59
- "features": ["feature-user-auth", "feature-dark-mode"],
60
- "file": "src/styles/theme.ts",
61
- "resolved_at": "2024-01-09T15:30:00Z",
62
- "resolution": "merged"
63
- }
64
- ]
12
+ "resolved": []
65
13
  },
66
14
 
67
15
  "statistics": {
68
- "total_active": 1,
69
- "total_paused": 1,
70
- "total_completed": 1,
71
- "average_completion_days": 3.5,
72
- "conflict_rate": 0.15
16
+ "total_active": 0,
17
+ "total_paused": 0,
18
+ "total_completed": 0,
19
+ "average_completion_days": 0,
20
+ "conflict_rate": 0
73
21
  }
74
22
  }
@@ -102,6 +102,97 @@ testing:
102
102
  parallel: true
103
103
  max_workers: 4
104
104
 
105
+ # Custom Testing Tools (override defaults)
106
+ # Define your own tools for each test type
107
+ tools:
108
+ # Unit testing
109
+ unit:
110
+ command: "npm test" # or: pytest, go test, ./gradlew test
111
+ framework: "jest" # jest | vitest | mocha | pytest | junit | xctest | flutter_test
112
+ # install: "npm install" # optional: auto-install command
113
+
114
+ # Integration testing
115
+ integration:
116
+ command: "npm run test:integration"
117
+ framework: "jest"
118
+
119
+ # E2E testing
120
+ e2e:
121
+ command: "npx playwright test" # or: maestro test, detox test, ./gradlew connectedTest
122
+ framework: "playwright" # playwright | cypress | maestro | detox | espresso | xcuitest
123
+ # install: "npx playwright install"
124
+
125
+ # Visual testing
126
+ visual:
127
+ command: "npx percy exec -- npm test"
128
+ framework: "percy" # percy | chromatic | applitools | custom
129
+
130
+ # Load testing
131
+ load:
132
+ command: "k6 run loadtest.js"
133
+ framework: "k6" # k6 | artillery | locust | jmeter
134
+
135
+ # Security testing
136
+ security:
137
+ command: "npm audit && snyk test"
138
+ framework: "snyk" # snyk | npm-audit | owasp-zap
139
+
140
+ # Mobile Testing Tools (platform-specific)
141
+ mobile:
142
+ # React Native / Expo
143
+ react_native:
144
+ unit:
145
+ command: "npm test"
146
+ framework: "jest"
147
+ component:
148
+ command: "npm test -- --testPathPattern=components"
149
+ framework: "@testing-library/react-native"
150
+ e2e:
151
+ command: "maestro test .maestro/"
152
+ framework: "maestro" # maestro | detox | appium
153
+ # alternative: "npx detox test -c ios.sim.release"
154
+
155
+ # Native Android (Kotlin/Java)
156
+ android:
157
+ unit:
158
+ command: "./gradlew test"
159
+ framework: "junit" # junit | junit5 | kotest
160
+ integration:
161
+ command: "./gradlew connectedAndroidTest"
162
+ framework: "espresso"
163
+ e2e:
164
+ command: "maestro test .maestro/"
165
+ framework: "maestro" # maestro | espresso | ui-automator
166
+
167
+ # Native iOS (Swift/Objective-C)
168
+ ios:
169
+ unit:
170
+ command: "xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'"
171
+ framework: "xctest"
172
+ e2e:
173
+ command: "maestro test .maestro/"
174
+ framework: "maestro" # maestro | xcuitest
175
+
176
+ # Flutter
177
+ flutter:
178
+ unit:
179
+ command: "flutter test"
180
+ framework: "flutter_test"
181
+ integration:
182
+ command: "flutter test integration_test/"
183
+ framework: "integration_test"
184
+ e2e:
185
+ command: "maestro test .maestro/"
186
+ framework: "maestro"
187
+
188
+ # Auto-install missing tools
189
+ auto_install: true
190
+
191
+ # Custom test commands (shortcuts)
192
+ custom_commands:
193
+ "test:quick": "npm test -- --onlyChanged"
194
+ "test:ci": "npm test -- --coverage --ci"
195
+
105
196
  # Security Configuration
106
197
  security:
107
198
  require_review: true
package/README.md CHANGED
@@ -109,6 +109,22 @@ npx proagents init --list-templates # Show all templates
109
109
  - **Decision Log** - Track architectural decisions with reasoning
110
110
  - **Context File** - Persistent project knowledge AI reads every session
111
111
 
112
+ ### Full Automation
113
+
114
+ ProAgents follows **"ALWAYS DO, NEVER JUST TELL"** principle:
115
+
116
+ | Instead of | ProAgents does |
117
+ |------------|----------------|
118
+ | "Run `npm test`" | Actually runs the tests |
119
+ | "Create a test file" | Creates the file |
120
+ | "Fix the bug by..." | Fixes the bug directly |
121
+ | "Next steps: 1. 2. 3." | Does all steps automatically |
122
+
123
+ **Auto-fix intelligence:**
124
+ - Learns from previous fixes
125
+ - Applies known patterns automatically
126
+ - Stores successful fixes in `.proagents/.learning/`
127
+
112
128
  ### File Protection
113
129
 
114
130
  - **Watch List** - Critical files require confirmation before AI modifies
@@ -408,10 +424,15 @@ Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.):
408
424
  | `pa:alias-add` | Add custom alias |
409
425
  | `pa:alias-remove` | Remove custom alias |
410
426
 
411
- ### Mobile Test Suite (React Native)
427
+ ### Platform-Specific Test Suites
428
+
429
+ **Fully automated**: Auto-install tools, run tests, auto-fix failures, loop until all pass.
430
+
412
431
  | Command | Description |
413
432
  |---------|-------------|
414
- | `pa:test-mobile` | Run full mobile test suite |
433
+ | `pa:test-mobile` | Full mobile test suite (React Native, Android, iOS, Flutter) |
434
+ | `pa:test-web` | Full web test suite (React/Next.js/Vue) |
435
+ | `pa:test-api` | Full API test suite (Node.js/Python) |
415
436
  | `pa:test-visual` | Visual/design comparison testing |
416
437
  | `pa:test-auto-fix` | Auto-fix failing tests |
417
438
  | `pa:test-loop` | Test → Fix → Retest until all pass |
@@ -419,6 +440,12 @@ Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.):
419
440
  | `pa:compare-image` | Compare UI against image/sketch |
420
441
  | `pa:screenshot` | Capture app screenshots |
421
442
 
443
+ **What these commands do:**
444
+ - Check required tools → Auto-install if missing
445
+ - Run all tests (unit, integration, e2e)
446
+ - Auto-fix failures (no confirmation needed)
447
+ - Loop until all pass or fix is impossible
448
+
422
449
  ### Custom Commands
423
450
  | Command | Description |
424
451
  |---------|-------------|
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proagents",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "description": "AI-agnostic development workflow framework that automates the full software development lifecycle",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -1,81 +0,0 @@
1
- {
2
- "$schema": "../schemas/dependencies-schema.json",
3
- "feature_id": "feature-user-auth",
4
- "updated_at": "2024-01-15T10:30:00Z",
5
-
6
- "depends_on": [],
7
-
8
- "blocks": [
9
- {
10
- "feature_id": "feature-notifications",
11
- "reason": "Notifications require authenticated user context",
12
- "required_phase": "implementation_complete",
13
- "blocking_since": "2024-01-12T11:00:00Z"
14
- },
15
- {
16
- "feature_id": "feature-user-preferences",
17
- "reason": "Preferences need user authentication",
18
- "required_phase": "testing_complete"
19
- }
20
- ],
21
-
22
- "shared_resources": [
23
- {
24
- "resource": "prisma/schema.prisma",
25
- "shared_with": ["feature-user-preferences"],
26
- "conflict_risk": "medium",
27
- "coordination_required": true
28
- },
29
- {
30
- "resource": "src/middleware.ts",
31
- "shared_with": [],
32
- "conflict_risk": "low"
33
- }
34
- ],
35
-
36
- "external_dependencies": {
37
- "packages": [
38
- {
39
- "name": "next-auth",
40
- "version": "^4.24.0",
41
- "added": true,
42
- "reason": "Authentication framework"
43
- },
44
- {
45
- "name": "@auth/prisma-adapter",
46
- "version": "^1.0.0",
47
- "added": true,
48
- "reason": "Prisma adapter for NextAuth"
49
- }
50
- ],
51
- "services": [
52
- {
53
- "name": "Google OAuth",
54
- "type": "oauth_provider",
55
- "required": true,
56
- "configured": true
57
- },
58
- {
59
- "name": "GitHub OAuth",
60
- "type": "oauth_provider",
61
- "required": true,
62
- "configured": true
63
- }
64
- ],
65
- "environment_variables": [
66
- "NEXTAUTH_SECRET",
67
- "NEXTAUTH_URL",
68
- "GOOGLE_CLIENT_ID",
69
- "GOOGLE_CLIENT_SECRET",
70
- "GITHUB_CLIENT_ID",
71
- "GITHUB_CLIENT_SECRET"
72
- ]
73
- },
74
-
75
- "merge_requirements": {
76
- "order": 1,
77
- "can_merge_independently": true,
78
- "requires_features": [],
79
- "required_before": ["feature-notifications", "feature-user-preferences"]
80
- }
81
- }
@@ -1,126 +0,0 @@
1
- {
2
- "$schema": "../schemas/files-schema.json",
3
- "feature_id": "feature-user-auth",
4
- "updated_at": "2024-01-15T10:30:00Z",
5
-
6
- "summary": {
7
- "total_files": 12,
8
- "new_files": 8,
9
- "modified_files": 4,
10
- "deleted_files": 0,
11
- "lines_added": 845,
12
- "lines_removed": 23
13
- },
14
-
15
- "files": [
16
- {
17
- "path": "src/lib/auth.ts",
18
- "status": "new",
19
- "lines_added": 120,
20
- "lines_removed": 0,
21
- "last_modified": "2024-01-14T16:30:00Z",
22
- "purpose": "Core authentication utilities"
23
- },
24
- {
25
- "path": "src/app/api/auth/[...nextauth]/route.ts",
26
- "status": "new",
27
- "lines_added": 85,
28
- "lines_removed": 0,
29
- "last_modified": "2024-01-14T14:00:00Z",
30
- "purpose": "NextAuth API route handler"
31
- },
32
- {
33
- "path": "src/components/auth/LoginButton.tsx",
34
- "status": "new",
35
- "lines_added": 45,
36
- "lines_removed": 0,
37
- "last_modified": "2024-01-15T09:00:00Z",
38
- "purpose": "Login button component"
39
- },
40
- {
41
- "path": "src/components/auth/LogoutButton.tsx",
42
- "status": "new",
43
- "lines_added": 35,
44
- "lines_removed": 0,
45
- "last_modified": "2024-01-15T09:15:00Z",
46
- "purpose": "Logout button component"
47
- },
48
- {
49
- "path": "src/components/auth/UserMenu.tsx",
50
- "status": "new",
51
- "lines_added": 78,
52
- "lines_removed": 0,
53
- "last_modified": "2024-01-15T10:00:00Z",
54
- "purpose": "User dropdown menu"
55
- },
56
- {
57
- "path": "src/hooks/useAuth.ts",
58
- "status": "new",
59
- "lines_added": 52,
60
- "lines_removed": 0,
61
- "last_modified": "2024-01-14T15:00:00Z",
62
- "purpose": "Authentication hook"
63
- },
64
- {
65
- "path": "src/middleware.ts",
66
- "status": "modified",
67
- "lines_added": 35,
68
- "lines_removed": 5,
69
- "last_modified": "2024-01-14T17:00:00Z",
70
- "purpose": "Added auth middleware"
71
- },
72
- {
73
- "path": "src/types/auth.ts",
74
- "status": "new",
75
- "lines_added": 28,
76
- "lines_removed": 0,
77
- "last_modified": "2024-01-14T11:00:00Z",
78
- "purpose": "Authentication type definitions"
79
- },
80
- {
81
- "path": "src/app/layout.tsx",
82
- "status": "modified",
83
- "lines_added": 15,
84
- "lines_removed": 8,
85
- "last_modified": "2024-01-15T10:30:00Z",
86
- "purpose": "Added SessionProvider wrapper"
87
- },
88
- {
89
- "path": "prisma/schema.prisma",
90
- "status": "modified",
91
- "lines_added": 42,
92
- "lines_removed": 0,
93
- "last_modified": "2024-01-13T14:00:00Z",
94
- "purpose": "Added User and Session models"
95
- },
96
- {
97
- "path": ".env.example",
98
- "status": "modified",
99
- "lines_added": 8,
100
- "lines_removed": 0,
101
- "last_modified": "2024-01-13T10:00:00Z",
102
- "purpose": "Added auth environment variables"
103
- },
104
- {
105
- "path": "src/tests/auth.test.ts",
106
- "status": "new",
107
- "lines_added": 302,
108
- "lines_removed": 0,
109
- "last_modified": "2024-01-15T10:15:00Z",
110
- "purpose": "Authentication test suite"
111
- }
112
- ],
113
-
114
- "conflicts": {
115
- "potential": [],
116
- "detected": [],
117
- "resolved": []
118
- },
119
-
120
- "impact_analysis": {
121
- "affected_modules": ["auth", "middleware", "database"],
122
- "breaking_changes": false,
123
- "requires_migration": true,
124
- "security_sensitive": true
125
- }
126
- }
@@ -1,122 +0,0 @@
1
- {
2
- "$schema": "../schemas/feature-schema.json",
3
- "id": "feature-user-auth",
4
- "name": "User Authentication",
5
- "description": "Add user authentication with OAuth support for Google and GitHub",
6
- "created_at": "2024-01-10T09:00:00Z",
7
- "updated_at": "2024-01-15T10:30:00Z",
8
-
9
- "workflow": {
10
- "mode": "full",
11
- "entry_point": "feature_start",
12
- "current_phase": "implementation",
13
- "phase_progress": 60
14
- },
15
-
16
- "phases": {
17
- "init": {
18
- "status": "completed",
19
- "started_at": "2024-01-10T09:00:00Z",
20
- "completed_at": "2024-01-10T09:15:00Z",
21
- "duration_minutes": 15
22
- },
23
- "analysis": {
24
- "status": "completed",
25
- "started_at": "2024-01-10T09:15:00Z",
26
- "completed_at": "2024-01-10T10:00:00Z",
27
- "duration_minutes": 45,
28
- "artifacts": ["analysis-report.md"]
29
- },
30
- "requirements": {
31
- "status": "completed",
32
- "started_at": "2024-01-10T10:00:00Z",
33
- "completed_at": "2024-01-10T11:30:00Z",
34
- "duration_minutes": 90,
35
- "artifacts": ["requirements.md", "user-stories.md"]
36
- },
37
- "design": {
38
- "status": "completed",
39
- "started_at": "2024-01-10T13:00:00Z",
40
- "completed_at": "2024-01-10T15:00:00Z",
41
- "duration_minutes": 120,
42
- "artifacts": ["ui-specification.md", "component-designs.md"]
43
- },
44
- "planning": {
45
- "status": "completed",
46
- "started_at": "2024-01-10T15:00:00Z",
47
- "completed_at": "2024-01-10T16:00:00Z",
48
- "duration_minutes": 60,
49
- "artifacts": ["implementation-plan.md"]
50
- },
51
- "implementation": {
52
- "status": "in_progress",
53
- "started_at": "2024-01-11T09:00:00Z",
54
- "progress": 60,
55
- "tasks_completed": 6,
56
- "tasks_total": 10
57
- },
58
- "testing": {
59
- "status": "pending"
60
- },
61
- "review": {
62
- "status": "pending"
63
- },
64
- "documentation": {
65
- "status": "pending"
66
- },
67
- "deployment": {
68
- "status": "pending"
69
- }
70
- },
71
-
72
- "checkpoints": {
73
- "after_analysis": {
74
- "triggered": true,
75
- "approved": true,
76
- "approved_by": "@tech-lead",
77
- "approved_at": "2024-01-10T10:05:00Z"
78
- },
79
- "after_requirements": {
80
- "triggered": true,
81
- "approved": true,
82
- "approved_by": "@product-manager",
83
- "approved_at": "2024-01-10T11:45:00Z"
84
- },
85
- "after_design": {
86
- "triggered": true,
87
- "approved": true,
88
- "approved_by": "@tech-lead",
89
- "approved_at": "2024-01-10T15:15:00Z"
90
- },
91
- "after_implementation": {
92
- "triggered": false
93
- },
94
- "before_deployment": {
95
- "triggered": false
96
- }
97
- },
98
-
99
- "git": {
100
- "branch": "feature/user-auth",
101
- "base_branch": "develop",
102
- "commits": 12,
103
- "last_commit": "abc123def",
104
- "pr_number": null,
105
- "pr_status": null
106
- },
107
-
108
- "assignees": {
109
- "primary": "developer-1",
110
- "reviewers": ["tech-lead", "developer-2"]
111
- },
112
-
113
- "context": {
114
- "key_decisions": [
115
- "Using NextAuth.js for authentication",
116
- "JWT tokens stored in httpOnly cookies",
117
- "Refresh token rotation enabled"
118
- ],
119
- "open_questions": [],
120
- "blockers": []
121
- }
122
- }