proagents 1.3.0 → 1.5.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.
package/README.md CHANGED
@@ -357,6 +357,53 @@ Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.):
357
357
  | `pa:tag` | Create git tag |
358
358
  | `pa:publish` | Publish package to registry |
359
359
 
360
+ ### Code Review & PR
361
+ | Command | Description |
362
+ |---------|-------------|
363
+ | `pa:review-request` | Request code review from team |
364
+ | `pa:review-comments` | Show PR review comments |
365
+ | `pa:review-approve` | Approve current PR |
366
+
367
+ ### Architecture
368
+ | Command | Description |
369
+ |---------|-------------|
370
+ | `pa:architecture` | Show architecture overview |
371
+ | `pa:architecture-diagram` | Generate diagram (Mermaid) |
372
+ | `pa:architecture-export` | Export diagram (SVG/PNG) |
373
+
374
+ ### API Testing
375
+ | Command | Description |
376
+ |---------|-------------|
377
+ | `pa:api-test` | Test API endpoints |
378
+ | `pa:curl` | Generate curl commands |
379
+ | `pa:postman` | Generate Postman collection |
380
+
381
+ ### Health & Monitoring
382
+ | Command | Description |
383
+ |---------|-------------|
384
+ | `pa:health` | Project health check |
385
+ | `pa:monitor` | Show monitoring status |
386
+ | `pa:uptime` | Service uptime check |
387
+
388
+ ### Quick Actions
389
+ | Command | Description |
390
+ |---------|-------------|
391
+ | `pa:quick` | Show quick actions menu |
392
+ | `pa:alias` | Manage command aliases |
393
+ | `pa:alias-add` | Add custom alias |
394
+ | `pa:alias-remove` | Remove custom alias |
395
+
396
+ ### Mobile Test Suite (React Native)
397
+ | Command | Description |
398
+ |---------|-------------|
399
+ | `pa:test-mobile` | Run full mobile test suite |
400
+ | `pa:test-visual` | Visual/design comparison testing |
401
+ | `pa:test-auto-fix` | Auto-fix failing tests |
402
+ | `pa:test-loop` | Test → Fix → Retest until all pass |
403
+ | `pa:compare-figma` | Compare UI against Figma design |
404
+ | `pa:compare-image` | Compare UI against image/sketch |
405
+ | `pa:screenshot` | Capture app screenshots |
406
+
360
407
  ### Custom Commands
361
408
  | Command | Description |
362
409
  |---------|-------------|
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proagents",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
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",
@@ -1535,6 +1535,875 @@ For `pa:publish`:
1535
1535
  https://www.npmjs.com/package/mypackage
1536
1536
  ```
1537
1537
 
1538
+ ### Code Review & PR
1539
+ | Command | Action |
1540
+ |---------|--------|
1541
+ | `pa:review-request` | Request code review from team |
1542
+ | `pa:review-request "user"` | Request review from specific user |
1543
+ | `pa:review-comments` | Show PR review comments |
1544
+ | `pa:review-comments "pr"` | Comments for specific PR |
1545
+ | `pa:review-approve` | Approve current PR |
1546
+ | `pa:review-approve "pr"` | Approve specific PR |
1547
+
1548
+ **How to execute Code Review commands:**
1549
+
1550
+ For `pa:review-request`:
1551
+ 1. Detect current branch and PR status
1552
+ 2. If no PR exists, suggest creating one first
1553
+ 3. Get team members from config or git history
1554
+ 4. Request review:
1555
+ ```
1556
+ Review Request
1557
+ ══════════════
1558
+
1559
+ PR: #123 - Add user authentication
1560
+ Branch: feature/user-auth
1561
+
1562
+ Requesting review from:
1563
+ • @tech-lead (suggested - code owner)
1564
+ • @senior-dev (suggested - recent contributor)
1565
+
1566
+ Select reviewers or type username:
1567
+ > @tech-lead, @qa-engineer
1568
+
1569
+ ✓ Review requested from 2 reviewers
1570
+ ```
1571
+
1572
+ For `pa:review-comments`:
1573
+ 1. Get PR comments from GitHub/GitLab
1574
+ 2. Group by file and status:
1575
+ ```
1576
+ PR Review Comments
1577
+ ══════════════════
1578
+
1579
+ PR #123: Add user authentication
1580
+ Status: Changes requested (2 pending)
1581
+
1582
+ src/auth/login.ts:
1583
+ ├─ Line 45 [PENDING] @tech-lead:
1584
+ │ "Consider using bcrypt instead of md5 for hashing"
1585
+
1586
+ └─ Line 78 [RESOLVED] @qa-engineer:
1587
+ "Add error handling for network failures"
1588
+
1589
+ src/api/users.ts:
1590
+ └─ Line 12 [PENDING] @tech-lead:
1591
+ "Missing input validation"
1592
+
1593
+ Actions:
1594
+ • Reply to comment: pa:review-reply "comment-id" "response"
1595
+ • Resolve comment: pa:review-resolve "comment-id"
1596
+ ```
1597
+
1598
+ For `pa:review-approve`:
1599
+ 1. Check all required checks pass
1600
+ 2. Verify no pending comments
1601
+ 3. Approve PR:
1602
+ ```
1603
+ PR Approval
1604
+ ═══════════
1605
+
1606
+ PR #123: Add user authentication
1607
+
1608
+ Checks:
1609
+ ✓ Tests passing
1610
+ ✓ Build successful
1611
+ ✓ No conflicts
1612
+ ⚠ 1 pending comment (optional)
1613
+
1614
+ Approve anyway? [y/N]
1615
+
1616
+ ✓ PR approved!
1617
+ Ready to merge.
1618
+ ```
1619
+
1620
+ ### Architecture
1621
+ | Command | Action |
1622
+ |---------|--------|
1623
+ | `pa:architecture` | Show architecture overview |
1624
+ | `pa:architecture "module"` | Architecture for specific module |
1625
+ | `pa:architecture-diagram` | Generate architecture diagram |
1626
+ | `pa:architecture-export` | Export architecture docs |
1627
+
1628
+ **How to execute Architecture commands:**
1629
+
1630
+ For `pa:architecture`:
1631
+ 1. Analyze project structure
1632
+ 2. Identify architectural patterns
1633
+ 3. Generate overview:
1634
+ ```
1635
+ Architecture Overview
1636
+ ═════════════════════
1637
+
1638
+ Project: my-app
1639
+ Type: Full-stack Next.js
1640
+ Pattern: Clean Architecture + Feature-based
1641
+
1642
+ Layers:
1643
+ ┌─────────────────────────────────────────┐
1644
+ │ Presentation (app/, components/) │
1645
+ │ ┌───────────────────────────────────┐ │
1646
+ │ │ Application (services/, hooks/) │ │
1647
+ │ │ ┌─────────────────────────────┐ │ │
1648
+ │ │ │ Domain (types/, entities/) │ │ │
1649
+ │ │ └─────────────────────────────┘ │ │
1650
+ │ └───────────────────────────────────┘ │
1651
+ └─────────────────────────────────────────┘
1652
+
1653
+ Key Components:
1654
+ • API Routes: /app/api/* (15 endpoints)
1655
+ • Pages: /app/* (12 pages)
1656
+ • Components: /components/* (45 components)
1657
+ • Services: /services/* (8 services)
1658
+
1659
+ Dependencies:
1660
+ • Database: PostgreSQL via Prisma
1661
+ • Auth: NextAuth.js with JWT
1662
+ • State: Zustand + React Query
1663
+ • Styling: Tailwind CSS
1664
+
1665
+ Patterns Detected:
1666
+ • Repository Pattern (services/)
1667
+ • Factory Pattern (components/forms/)
1668
+ • Singleton (lib/prisma.ts)
1669
+ ```
1670
+
1671
+ For `pa:architecture-diagram`:
1672
+ 1. Generate Mermaid diagram from codebase
1673
+ 2. Show component relationships:
1674
+ ```mermaid
1675
+ graph TB
1676
+ subgraph Presentation
1677
+ Pages[Pages]
1678
+ Components[Components]
1679
+ end
1680
+
1681
+ subgraph Application
1682
+ Services[Services]
1683
+ Hooks[Hooks]
1684
+ end
1685
+
1686
+ subgraph Infrastructure
1687
+ API[API Routes]
1688
+ DB[(Database)]
1689
+ end
1690
+
1691
+ Pages --> Components
1692
+ Pages --> Hooks
1693
+ Hooks --> Services
1694
+ Services --> API
1695
+ API --> DB
1696
+ ```
1697
+ 3. Save to `./docs/architecture.md`
1698
+
1699
+ ### API Testing
1700
+ | Command | Action |
1701
+ |---------|--------|
1702
+ | `pa:api-test` | Test API endpoints |
1703
+ | `pa:api-test "endpoint"` | Test specific endpoint |
1704
+ | `pa:curl` | Generate curl commands |
1705
+ | `pa:curl "endpoint"` | Curl for specific endpoint |
1706
+ | `pa:postman` | Generate Postman collection |
1707
+ | `pa:postman-export` | Export to Postman file |
1708
+
1709
+ **How to execute API Testing commands:**
1710
+
1711
+ For `pa:api-test`:
1712
+ 1. Discover API endpoints from routes
1713
+ 2. Generate and run tests:
1714
+ ```
1715
+ API Test Results
1716
+ ════════════════
1717
+
1718
+ Testing: /api/*
1719
+ Environment: development (localhost:3000)
1720
+
1721
+ GET /api/users
1722
+ ├─ Status: 200 OK ✓
1723
+ ├─ Time: 45ms
1724
+ └─ Response: Array[10 items]
1725
+
1726
+ POST /api/users
1727
+ ├─ Status: 201 Created ✓
1728
+ ├─ Time: 120ms
1729
+ └─ Response: { id: "123", name: "Test" }
1730
+
1731
+ GET /api/users/:id
1732
+ ├─ Status: 200 OK ✓
1733
+ ├─ Time: 32ms
1734
+ └─ Response: { id: "1", name: "John" }
1735
+
1736
+ DELETE /api/users/:id
1737
+ ├─ Status: 401 Unauthorized ✗
1738
+ ├─ Time: 15ms
1739
+ └─ Error: Missing auth token
1740
+
1741
+ Summary: 3/4 passed (75%)
1742
+ ```
1743
+
1744
+ For `pa:curl`:
1745
+ 1. Analyze API routes and generate curl commands:
1746
+ ```
1747
+ Generated Curl Commands
1748
+ ═══════════════════════
1749
+
1750
+ # List users
1751
+ curl -X GET http://localhost:3000/api/users \
1752
+ -H "Content-Type: application/json" \
1753
+ -H "Authorization: Bearer $TOKEN"
1754
+
1755
+ # Create user
1756
+ curl -X POST http://localhost:3000/api/users \
1757
+ -H "Content-Type: application/json" \
1758
+ -H "Authorization: Bearer $TOKEN" \
1759
+ -d '{"name": "John", "email": "john@example.com"}'
1760
+
1761
+ # Get user by ID
1762
+ curl -X GET http://localhost:3000/api/users/123 \
1763
+ -H "Authorization: Bearer $TOKEN"
1764
+
1765
+ Saved to: ./docs/curl-commands.sh
1766
+ ```
1767
+
1768
+ For `pa:postman`:
1769
+ 1. Scan API routes and extract endpoints
1770
+ 2. Generate Postman collection:
1771
+ ```
1772
+ Postman Collection Generated
1773
+ ════════════════════════════
1774
+
1775
+ Collection: my-app API
1776
+ Endpoints: 15
1777
+
1778
+ Folders:
1779
+ ├─ Auth (3 endpoints)
1780
+ │ ├─ POST /api/auth/login
1781
+ │ ├─ POST /api/auth/register
1782
+ │ └─ POST /api/auth/logout
1783
+ ├─ Users (5 endpoints)
1784
+ │ ├─ GET /api/users
1785
+ │ ├─ POST /api/users
1786
+ │ ├─ GET /api/users/:id
1787
+ │ ├─ PUT /api/users/:id
1788
+ │ └─ DELETE /api/users/:id
1789
+ └─ Posts (7 endpoints)
1790
+ └─ ...
1791
+
1792
+ Saved to: ./docs/postman-collection.json
1793
+
1794
+ Import: File > Import in Postman
1795
+ ```
1796
+
1797
+ ### Health & Monitoring
1798
+ | Command | Action |
1799
+ |---------|--------|
1800
+ | `pa:health` | Project health check |
1801
+ | `pa:health-full` | Comprehensive health report |
1802
+ | `pa:monitor` | Show monitoring status |
1803
+ | `pa:monitor "service"` | Monitor specific service |
1804
+ | `pa:uptime` | Service uptime check |
1805
+
1806
+ **How to execute Health & Monitoring commands:**
1807
+
1808
+ For `pa:health`:
1809
+ 1. Check various project health indicators:
1810
+ ```
1811
+ Project Health Check
1812
+ ════════════════════
1813
+
1814
+ Overall: 85% Healthy ████████░░
1815
+
1816
+ Code Quality:
1817
+ ✓ Linting: No errors
1818
+ ✓ Type checking: No errors
1819
+ ⚠ Test coverage: 72% (target: 80%)
1820
+ ✓ No security vulnerabilities
1821
+
1822
+ Dependencies:
1823
+ ✓ All dependencies installed
1824
+ ⚠ 3 outdated packages
1825
+ ✓ No security advisories
1826
+
1827
+ Configuration:
1828
+ ✓ Environment variables set
1829
+ ✓ Config files valid
1830
+ ⚠ Missing .env.example
1831
+
1832
+ Git Status:
1833
+ ✓ Clean working directory
1834
+ ✓ Up to date with remote
1835
+ ✓ No merge conflicts
1836
+
1837
+ Performance:
1838
+ ✓ Bundle size: 245KB (limit: 500KB)
1839
+ ✓ Build time: 12s
1840
+ ⚠ Lighthouse score: 78 (target: 90)
1841
+
1842
+ Issues Found: 4
1843
+ • Test coverage below 80%
1844
+ • 3 outdated packages
1845
+ • Missing .env.example
1846
+ • Lighthouse score below target
1847
+ ```
1848
+
1849
+ For `pa:monitor`:
1850
+ 1. Check running services and status:
1851
+ ```
1852
+ Service Monitor
1853
+ ═══════════════
1854
+
1855
+ Services:
1856
+ ┌────────────────┬──────────┬─────────┬────────────┐
1857
+ │ Service │ Status │ Uptime │ Health │
1858
+ ├────────────────┼──────────┼─────────┼────────────┤
1859
+ │ App (Next.js) │ Running │ 2h 15m │ Healthy │
1860
+ │ Database │ Running │ 5d 3h │ Healthy │
1861
+ │ Redis Cache │ Running │ 5d 3h │ Healthy │
1862
+ │ Worker │ Stopped │ - │ ⚠ Down │
1863
+ └────────────────┴──────────┴─────────┴────────────┘
1864
+
1865
+ Recent Events:
1866
+ • 10:30 - App restarted (deployment)
1867
+ • 09:15 - Worker stopped (manual)
1868
+ • Yesterday - Database backup completed
1869
+
1870
+ Alerts:
1871
+ ⚠ Worker service is not running
1872
+ ```
1873
+
1874
+ For `pa:uptime`:
1875
+ 1. Check endpoint availability:
1876
+ ```
1877
+ Uptime Check
1878
+ ════════════
1879
+
1880
+ Checking endpoints...
1881
+
1882
+ Production (https://myapp.com):
1883
+ ├─ / (homepage): 200 OK (125ms) ✓
1884
+ ├─ /api/health: 200 OK (45ms) ✓
1885
+ ├─ /api/users: 200 OK (89ms) ✓
1886
+ └─ /dashboard: 200 OK (156ms) ✓
1887
+
1888
+ Staging (https://staging.myapp.com):
1889
+ ├─ / (homepage): 200 OK (145ms) ✓
1890
+ └─ /api/health: 200 OK (52ms) ✓
1891
+
1892
+ All endpoints responding ✓
1893
+ Average response time: 102ms
1894
+ ```
1895
+
1896
+ ### Quick Actions
1897
+ | Command | Action |
1898
+ |---------|--------|
1899
+ | `pa:quick` | Show quick actions menu |
1900
+ | `pa:quick "action"` | Execute quick action |
1901
+ | `pa:alias` | Manage command aliases |
1902
+ | `pa:alias-add "name" "command"` | Add new alias |
1903
+ | `pa:alias-remove "name"` | Remove alias |
1904
+
1905
+ **How to execute Quick Actions commands:**
1906
+
1907
+ For `pa:quick`:
1908
+ 1. Show context-aware quick actions:
1909
+ ```
1910
+ Quick Actions
1911
+ ═════════════
1912
+
1913
+ Based on current context (feature/user-auth):
1914
+
1915
+ Development:
1916
+ [1] Run tests for current feature
1917
+ [2] Check code coverage
1918
+ [3] Lint and fix
1919
+
1920
+ Git:
1921
+ [4] Commit all changes
1922
+ [5] Push to remote
1923
+ [6] Create PR
1924
+
1925
+ Quality:
1926
+ [7] Run full QA check
1927
+ [8] Security scan
1928
+ [9] Performance audit
1929
+
1930
+ Documentation:
1931
+ [10] Update docs for changes
1932
+
1933
+ Select action (1-10) or type command:
1934
+ > 6
1935
+
1936
+ Creating PR...
1937
+ ```
1938
+
1939
+ For `pa:alias`:
1940
+ 1. List and manage command aliases:
1941
+ ```
1942
+ Command Aliases
1943
+ ═══════════════
1944
+
1945
+ Current Aliases:
1946
+ ┌──────────┬───────────────────────────┐
1947
+ │ Alias │ Command │
1948
+ ├──────────┼───────────────────────────┤
1949
+ │ pa:c │ pa:commit │
1950
+ │ pa:pr │ pa:github-pr │
1951
+ │ pa:cov │ pa:coverage │
1952
+ │ pa:sec │ pa:security-scan │
1953
+ │ pa:up │ pa:deps-outdated │
1954
+ └──────────┴───────────────────────────┘
1955
+
1956
+ Add alias: pa:alias-add "name" "command"
1957
+ Remove: pa:alias-remove "name"
1958
+
1959
+ Built-in aliases cannot be modified:
1960
+ pa:f, pa:s, pa:h, pa:d, pa:t, pa:q, pa:a, pa:r, pa:p, pa:i
1961
+ ```
1962
+
1963
+ For `pa:alias-add`:
1964
+ 1. Add custom alias:
1965
+ ```
1966
+ Adding Alias
1967
+ ════════════
1968
+
1969
+ Alias: pa:ship
1970
+ Command: pa:test && pa:build && pa:deploy
1971
+
1972
+ ✓ Alias created!
1973
+
1974
+ Usage: pa:ship
1975
+ Runs: pa:test && pa:build && pa:deploy
1976
+ ```
1977
+
1978
+ ### Mobile Test Suite (React Native / Mobile Apps)
1979
+ | Command | Action |
1980
+ |---------|--------|
1981
+ | `pa:test-mobile` | Run full mobile test suite |
1982
+ | `pa:test-mobile "feature"` | Test specific feature |
1983
+ | `pa:test-visual` | Visual/design comparison testing |
1984
+ | `pa:test-auto-fix` | Auto-fix failing tests |
1985
+ | `pa:test-loop` | Test → Fix → Retest loop until success |
1986
+ | `pa:compare-figma` | Compare UI against Figma design |
1987
+ | `pa:compare-image "path"` | Compare UI against image/sketch |
1988
+ | `pa:screenshot` | Take app screenshots for comparison |
1989
+
1990
+ **How to execute Mobile Test Suite commands:**
1991
+
1992
+ For `pa:test-mobile`:
1993
+ 1. Run comprehensive mobile test suite:
1994
+ ```
1995
+ Mobile Test Suite
1996
+ ═════════════════
1997
+
1998
+ Running full test suite for: feature/user-auth
1999
+
2000
+ Phase 1: Unit Tests
2001
+ ───────────────────
2002
+ ✓ AuthService.login() - 5 tests passed
2003
+ ✓ AuthService.logout() - 3 tests passed
2004
+ ✓ TokenManager - 8 tests passed
2005
+ ✓ UserStore - 12 tests passed
2006
+
2007
+ Phase 2: Component Tests
2008
+ ────────────────────────
2009
+ ✓ LoginScreen - renders correctly
2010
+ ✓ LoginScreen - validates email format
2011
+ ✓ LoginScreen - shows error on invalid credentials
2012
+ ✓ SignupScreen - all fields required
2013
+ ✓ ProfileScreen - displays user data
2014
+
2015
+ Phase 3: Integration Tests
2016
+ ──────────────────────────
2017
+ ✓ Login flow end-to-end
2018
+ ✓ Token refresh on expiry
2019
+ ✓ Logout clears all data
2020
+ ✗ FAILED: Password reset flow
2021
+ → Error: Reset email not sent
2022
+
2023
+ Phase 4: E2E Tests (Maestro/Detox)
2024
+ ──────────────────────────────────
2025
+ ✓ User can login with valid credentials
2026
+ ✓ User sees error with invalid password
2027
+ ✗ FAILED: User can reset password
2028
+ → Button not found: "Send Reset Email"
2029
+
2030
+ Phase 5: Visual Tests
2031
+ ─────────────────────
2032
+ ✓ LoginScreen matches design
2033
+ ✗ FAILED: SignupScreen has visual differences
2034
+ → Button color: expected #007AFF, got #0066CC
2035
+ → Font size: expected 16px, got 14px
2036
+
2037
+ ══════════════════════════════════════════
2038
+ RESULTS: 35/38 tests passed (3 failed)
2039
+ ══════════════════════════════════════════
2040
+
2041
+ Failed Tests:
2042
+ 1. Integration: Password reset flow
2043
+ 2. E2E: User can reset password
2044
+ 3. Visual: SignupScreen design mismatch
2045
+
2046
+ Run `pa:test-auto-fix` to automatically fix these issues.
2047
+ ```
2048
+
2049
+ 2. Generate detailed test report at `./proagents/test-reports/mobile-{timestamp}.md`
2050
+
2051
+ For `pa:test-visual`:
2052
+ 1. Take screenshots of all screens/components
2053
+ 2. Compare against design references:
2054
+ ```
2055
+ Visual Design Testing
2056
+ ═════════════════════
2057
+
2058
+ Comparing app UI against design references...
2059
+
2060
+ Design Source: ./designs/ (Figma exports)
2061
+
2062
+ Screen: LoginScreen
2063
+ ───────────────────
2064
+ ✓ Layout matches design
2065
+ ✓ Colors match design tokens
2066
+ ✓ Typography correct
2067
+ ✓ Spacing/padding correct
2068
+ ✓ Button styles match
2069
+
2070
+ Screen: SignupScreen
2071
+ ────────────────────
2072
+ ✗ MISMATCH DETECTED
2073
+
2074
+ Differences found:
2075
+ ┌─────────────────┬──────────────┬──────────────┐
2076
+ │ Element │ Expected │ Actual │
2077
+ ├─────────────────┼──────────────┼──────────────┤
2078
+ │ Submit Button │ #007AFF │ #0066CC │
2079
+ │ Title Font │ 24px Bold │ 22px Regular │
2080
+ │ Input Height │ 48px │ 44px │
2081
+ │ Bottom Margin │ 16px │ 12px │
2082
+ └─────────────────┴──────────────┴──────────────┘
2083
+
2084
+ Screenshot saved: ./proagents/test-reports/visual/signup-diff.png
2085
+
2086
+ Screen: ProfileScreen
2087
+ ─────────────────────
2088
+ ✓ All elements match design
2089
+
2090
+ ══════════════════════════════════════════
2091
+ VISUAL TEST RESULTS: 2/3 screens passed
2092
+ ══════════════════════════════════════════
2093
+
2094
+ Run `pa:test-auto-fix` to fix visual issues automatically.
2095
+ ```
2096
+
2097
+ For `pa:test-auto-fix`:
2098
+ 1. Analyze failing tests
2099
+ 2. Identify root cause
2100
+ 3. Generate and apply fixes:
2101
+ ```
2102
+ Auto-Fix Mode
2103
+ ═════════════
2104
+
2105
+ Analyzing 3 failing tests...
2106
+
2107
+ Fix 1: Password reset flow
2108
+ ──────────────────────────
2109
+ Root Cause: API endpoint missing in AuthService
2110
+
2111
+ Applying fix to: src/services/AuthService.ts
2112
+ + async resetPassword(email: string): Promise<void> {
2113
+ + const response = await api.post('/auth/reset-password', { email });
2114
+ + if (!response.ok) throw new Error('Reset failed');
2115
+ + }
2116
+
2117
+ ✓ Fix applied
2118
+
2119
+ Fix 2: Reset button not found
2120
+ ─────────────────────────────
2121
+ Root Cause: Button testID missing
2122
+
2123
+ Applying fix to: src/screens/ResetPasswordScreen.tsx
2124
+ - <Button title="Send Reset Email" onPress={handleReset} />
2125
+ + <Button
2126
+ + testID="send-reset-email-button"
2127
+ + title="Send Reset Email"
2128
+ + onPress={handleReset}
2129
+ + />
2130
+
2131
+ ✓ Fix applied
2132
+
2133
+ Fix 3: SignupScreen visual mismatch
2134
+ ────────────────────────────────────
2135
+ Root Cause: Style values don't match design tokens
2136
+
2137
+ Applying fix to: src/screens/SignupScreen.styles.ts
2138
+ - submitButton: { backgroundColor: '#0066CC' }
2139
+ + submitButton: { backgroundColor: '#007AFF' }
2140
+
2141
+ - title: { fontSize: 22, fontWeight: 'normal' }
2142
+ + title: { fontSize: 24, fontWeight: 'bold' }
2143
+
2144
+ - input: { height: 44, marginBottom: 12 }
2145
+ + input: { height: 48, marginBottom: 16 }
2146
+
2147
+ ✓ Fix applied
2148
+
2149
+ ══════════════════════════════════════════
2150
+ AUTO-FIX COMPLETE: 3/3 issues fixed
2151
+ ══════════════════════════════════════════
2152
+
2153
+ Running verification tests...
2154
+ ```
2155
+
2156
+ For `pa:test-loop`:
2157
+ 1. Run complete Test → Fix → Retest cycle:
2158
+ ```
2159
+ Test Loop Mode
2160
+ ══════════════
2161
+
2162
+ Starting automated test-fix-retest cycle...
2163
+ Max iterations: 5
2164
+
2165
+ ┌─────────────────────────────────────────────────────┐
2166
+ │ ITERATION 1 │
2167
+ ├─────────────────────────────────────────────────────┤
2168
+ │ Running tests... │
2169
+ │ Results: 35/38 passed (3 failed) │
2170
+ │ │
2171
+ │ Analyzing failures... │
2172
+ │ Applying auto-fixes... │
2173
+ │ Fixes applied: 3 │
2174
+ └─────────────────────────────────────────────────────┘
2175
+
2176
+ ┌─────────────────────────────────────────────────────┐
2177
+ │ ITERATION 2 │
2178
+ ├─────────────────────────────────────────────────────┤
2179
+ │ Running tests... │
2180
+ │ Results: 37/38 passed (1 failed) │
2181
+ │ │
2182
+ │ Analyzing failures... │
2183
+ │ New issue: TypeScript type error after fix │
2184
+ │ Applying auto-fixes... │
2185
+ │ Fixes applied: 1 │
2186
+ └─────────────────────────────────────────────────────┘
2187
+
2188
+ ┌─────────────────────────────────────────────────────┐
2189
+ │ ITERATION 3 │
2190
+ ├─────────────────────────────────────────────────────┤
2191
+ │ Running tests... │
2192
+ │ Results: 38/38 passed (0 failed) │
2193
+ │ │
2194
+ │ ✓ ALL TESTS PASSING! │
2195
+ └─────────────────────────────────────────────────────┘
2196
+
2197
+ ══════════════════════════════════════════════════════
2198
+ TEST LOOP COMPLETE
2199
+ ══════════════════════════════════════════════════════
2200
+
2201
+ Summary:
2202
+ ────────
2203
+ Iterations: 3
2204
+ Initial failures: 3
2205
+ Fixes applied: 4
2206
+ Final status: ALL PASSING ✓
2207
+
2208
+ Files modified:
2209
+ • src/services/AuthService.ts
2210
+ • src/screens/ResetPasswordScreen.tsx
2211
+ • src/screens/SignupScreen.styles.ts
2212
+ • src/types/auth.ts
2213
+
2214
+ Test report: ./proagents/test-reports/test-loop-{timestamp}.md
2215
+
2216
+ Ready for commit? (y/n)
2217
+ ```
2218
+
2219
+ For `pa:compare-figma`:
2220
+ 1. Connect to Figma API or use exported frames
2221
+ 2. Extract design specifications
2222
+ 3. Compare with actual app:
2223
+ ```
2224
+ Figma Design Comparison
2225
+ ═══════════════════════
2226
+
2227
+ Design Source: [Figma Link or ./designs/figma-export/]
2228
+
2229
+ Extracting design tokens from Figma...
2230
+ ✓ Colors extracted
2231
+ ✓ Typography extracted
2232
+ ✓ Spacing system extracted
2233
+ ✓ Component specs extracted
2234
+
2235
+ Comparing: LoginScreen
2236
+ ──────────────────────
2237
+
2238
+ Layout Comparison:
2239
+ ┌────────────────────┬────────────────────┐
2240
+ │ Figma Design │ App Screenshot │
2241
+ │ ┌──────────┐ │ ┌──────────┐ │
2242
+ │ │ Logo │ │ │ Logo │ ✓ │
2243
+ │ ├──────────┤ │ ├──────────┤ │
2244
+ │ │ Email │ │ │ Email │ ✓ │
2245
+ │ │ Input │ │ │ Input │ │
2246
+ │ ├──────────┤ │ ├──────────┤ │
2247
+ │ │ Password │ │ │ Password │ ✓ │
2248
+ │ │ Input │ │ │ Input │ │
2249
+ │ ├──────────┤ │ ├──────────┤ │
2250
+ │ │ Login │ │ │ Login │ ✗ │
2251
+ │ │ Button │ │ │ Button │ │
2252
+ │ └──────────┘ │ └──────────┘ │
2253
+ └────────────────────┴────────────────────┘
2254
+
2255
+ Detailed Comparison:
2256
+ ┌───────────────┬─────────────┬─────────────┬────────┐
2257
+ │ Element │ Figma │ App │ Status │
2258
+ ├───────────────┼─────────────┼─────────────┼────────┤
2259
+ │ Logo Size │ 120x40 │ 120x40 │ ✓ │
2260
+ │ Input Height │ 48px │ 48px │ ✓ │
2261
+ │ Input Border │ 1px #E0E0E0 │ 1px #E0E0E0 │ ✓ │
2262
+ │ Button Color │ #007AFF │ #0056B3 │ ✗ │
2263
+ │ Button Radius │ 8px │ 4px │ ✗ │
2264
+ │ Button Height │ 52px │ 48px │ ✗ │
2265
+ │ Vertical Gap │ 16px │ 12px │ ✗ │
2266
+ └───────────────┴─────────────┴─────────────┴────────┘
2267
+
2268
+ Issues Found: 4
2269
+
2270
+ Auto-fix available? Yes
2271
+ Run `pa:test-auto-fix` to apply design corrections.
2272
+ ```
2273
+
2274
+ For `pa:compare-image "path"`:
2275
+ 1. Load reference image (sketch, screenshot, mockup)
2276
+ 2. Use visual comparison:
2277
+ ```
2278
+ Image Comparison
2279
+ ════════════════
2280
+
2281
+ Reference: ./designs/sketch-login.png
2282
+ App Screen: LoginScreen
2283
+
2284
+ Analyzing reference image...
2285
+ ✓ Detected UI elements
2286
+ ✓ Extracted layout structure
2287
+ ✓ Identified colors and typography
2288
+
2289
+ Taking app screenshot...
2290
+ ✓ Screenshot captured
2291
+
2292
+ Visual Diff Analysis:
2293
+ ─────────────────────
2294
+
2295
+ Overall Match: 87%
2296
+
2297
+ Differences Detected:
2298
+
2299
+ 1. Header Section (Region: 0,0 to 375,100)
2300
+ • Logo position: slightly lower than reference
2301
+ • Background: matches ✓
2302
+
2303
+ 2. Form Section (Region: 0,100 to 375,350)
2304
+ • Input fields: match ✓
2305
+ • Labels: font slightly smaller
2306
+ • Spacing: compressed by ~4px
2307
+
2308
+ 3. Button Section (Region: 0,350 to 375,450)
2309
+ • Color: differs by 15% (darker in app)
2310
+ • Corner radius: sharper in app
2311
+ • Shadow: missing in app
2312
+
2313
+ Diff image saved: ./proagents/test-reports/visual/login-diff-overlay.png
2314
+
2315
+ ┌─────────────────────────────────────────────┐
2316
+ │ [Reference] │ [App] │ [Diff] │
2317
+ │ Expected design │ Actual app │ Δ │
2318
+ └─────────────────────────────────────────────┘
2319
+
2320
+ Suggested fixes generated.
2321
+ Run `pa:test-auto-fix` to apply.
2322
+ ```
2323
+
2324
+ For `pa:screenshot`:
2325
+ 1. Capture screenshots of all app screens:
2326
+ ```
2327
+ Screenshot Capture
2328
+ ══════════════════
2329
+
2330
+ Detecting available screens...
2331
+
2332
+ Found 12 screens in navigation:
2333
+
2334
+ Capturing screenshots...
2335
+
2336
+ ✓ LoginScreen → ./proagents/screenshots/LoginScreen.png
2337
+ ✓ SignupScreen → ./proagents/screenshots/SignupScreen.png
2338
+ ✓ HomeScreen → ./proagents/screenshots/HomeScreen.png
2339
+ ✓ ProfileScreen → ./proagents/screenshots/ProfileScreen.png
2340
+ ✓ SettingsScreen → ./proagents/screenshots/SettingsScreen.png
2341
+ ✓ NotificationsScreen → ./proagents/screenshots/NotificationsScreen.png
2342
+ ... (6 more)
2343
+
2344
+ Component screenshots:
2345
+ ✓ Button variants → ./proagents/screenshots/components/Button.png
2346
+ ✓ Input variants → ./proagents/screenshots/components/Input.png
2347
+ ✓ Card variants → ./proagents/screenshots/components/Card.png
2348
+
2349
+ ══════════════════════════════════════════
2350
+ Screenshots saved: 15 images
2351
+ Location: ./proagents/screenshots/
2352
+ ══════════════════════════════════════════
2353
+
2354
+ Use these for:
2355
+ • Visual regression testing
2356
+ • Design comparison with `pa:compare-image`
2357
+ • Documentation
2358
+ ```
2359
+
2360
+ **Mobile Test Configuration:**
2361
+ Add to `proagents.config.yaml`:
2362
+ ```yaml
2363
+ mobile_testing:
2364
+ platform: react-native # or flutter, native
2365
+
2366
+ test_frameworks:
2367
+ unit: jest
2368
+ component: "@testing-library/react-native"
2369
+ e2e: maestro # or detox, appium
2370
+
2371
+ visual_testing:
2372
+ enabled: true
2373
+ design_source: figma # or ./designs/
2374
+ figma_file_id: "your-figma-file-id" # if using Figma
2375
+ threshold: 0.95 # 95% match required
2376
+
2377
+ auto_fix:
2378
+ enabled: true
2379
+ max_iterations: 5
2380
+ require_approval: false # true = ask before applying fixes
2381
+
2382
+ screenshot:
2383
+ output_dir: ./proagents/screenshots
2384
+ devices:
2385
+ - iPhone 14 Pro
2386
+ - Pixel 7
2387
+
2388
+ test_on:
2389
+ feature_complete: true # auto-run tests when feature done
2390
+ bug_fix: true # auto-run tests after bug fix
2391
+ pre_commit: false # run before git commit
2392
+ ```
2393
+
2394
+ **Test Report Structure:**
2395
+ ```
2396
+ ./proagents/test-reports/
2397
+ ├── mobile-2024-03-06-1500.md # Full test report
2398
+ ├── visual/
2399
+ │ ├── LoginScreen-diff.png # Visual diff images
2400
+ │ ├── SignupScreen-diff.png
2401
+ │ └── comparison-report.md
2402
+ ├── coverage/
2403
+ │ └── coverage-report.html # Test coverage
2404
+ └── auto-fix-log.md # Log of all auto-fixes
2405
+ ```
2406
+
1538
2407
  ### AI Platform Management
1539
2408
  | Command | Action |
1540
2409
  |---------|--------|
@@ -216,6 +216,60 @@ Execute these commands when user types them (prefix: `pa:`):
216
216
  | `pa:tag` | Create git tag for release |
217
217
  | `pa:publish` | Publish package to registry |
218
218
 
219
+ ## Code Review & PR
220
+
221
+ | Command | What to Do |
222
+ |---------|------------|
223
+ | `pa:review-request` | Request code review from team |
224
+ | `pa:review-comments` | Show PR review comments |
225
+ | `pa:review-approve` | Approve current PR |
226
+
227
+ ## Architecture
228
+
229
+ | Command | What to Do |
230
+ |---------|------------|
231
+ | `pa:architecture` | Show architecture overview |
232
+ | `pa:architecture-diagram` | Generate architecture diagram (Mermaid) |
233
+ | `pa:architecture-export` | Export diagram (SVG/PNG) |
234
+
235
+ ## API Testing
236
+
237
+ | Command | What to Do |
238
+ |---------|------------|
239
+ | `pa:api-test` | Test API endpoints |
240
+ | `pa:curl` | Generate curl commands for endpoints |
241
+ | `pa:postman` | Generate Postman collection |
242
+
243
+ ## Health & Monitoring
244
+
245
+ | Command | What to Do |
246
+ |---------|------------|
247
+ | `pa:health` | Project health check |
248
+ | `pa:monitor` | Show monitoring status |
249
+ | `pa:uptime` | Service uptime check |
250
+
251
+ ## Quick Actions
252
+
253
+ | Command | What to Do |
254
+ |---------|------------|
255
+ | `pa:quick` | Show quick actions menu |
256
+ | `pa:alias` | Manage command aliases |
257
+ | `pa:alias-add` | Add custom alias |
258
+ | `pa:alias-remove` | Remove custom alias |
259
+
260
+ ## Mobile Test Suite (React Native)
261
+
262
+ | Command | What to Do |
263
+ |---------|------------|
264
+ | `pa:test-mobile` | Run full mobile test suite (unit, component, E2E, visual) |
265
+ | `pa:test-mobile "feature"` | Test specific feature only |
266
+ | `pa:test-visual` | Visual/design comparison testing |
267
+ | `pa:test-auto-fix` | Auto-fix failing tests |
268
+ | `pa:test-loop` | Test → Fix → Retest loop until all pass |
269
+ | `pa:compare-figma` | Compare UI against Figma design |
270
+ | `pa:compare-image "path"` | Compare UI against image/sketch |
271
+ | `pa:screenshot` | Take app screenshots for comparison |
272
+
219
273
  ## Key Files to Read
220
274
 
221
275
  | File | Purpose |