[2.15.1] Smart project detection for end-to-end testing in /review

- Review command now detects project type from PR files
- Web projects → offers /playwright-test
- iOS projects → offers /xcode-test
- Hybrid projects (Rails + Hotwire Native) → offers both options

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Kieran Klaassen
2025-12-18 10:38:07 -08:00
parent 6955914f6c
commit 3fc2358e1f
3 changed files with 68 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "compound-engineering", "name": "compound-engineering",
"version": "2.15.0", "version": "2.15.1",
"description": "AI-powered development tools. 27 agents, 19 commands, 13 skills, 2 MCP servers for code review, research, design, and workflow automation.", "description": "AI-powered development tools. 27 agents, 19 commands, 13 skills, 2 MCP servers for code review, research, design, and workflow automation.",
"author": { "author": {
"name": "Kieran Klaassen", "name": "Kieran Klaassen",

View File

@@ -5,6 +5,12 @@ All notable changes to the compound-engineering plugin will be documented in thi
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.15.1] - 2025-12-18
### Changed
- **`/workflows:review` command** - Section 7 now detects project type (Web, iOS, or Hybrid) and offers appropriate testing. Web projects get `/playwright-test`, iOS projects get `/xcode-test`, hybrid projects can run both.
## [2.15.0] - 2025-12-18 ## [2.15.0] - 2025-12-18
### Added ### Added

View File

@@ -425,19 +425,52 @@ After creating all todo files, present comprehensive summary:
``` ```
### 7. Playwright Testing (Optional) ### 7. End-to-End Testing (Optional)
<detect_project_type>
**First, detect the project type from PR files:**
| Indicator | Project Type |
|-----------|--------------|
| `*.xcodeproj`, `*.xcworkspace`, `Package.swift` (iOS) | iOS/macOS |
| `Gemfile`, `package.json`, `app/views/*`, `*.html.*` | Web |
| Both iOS files AND web files | Hybrid (test both) |
</detect_project_type>
<offer_testing> <offer_testing>
After presenting the Summary Report, ask the user:
**"Want to run Playwright tests on the affected pages?"** After presenting the Summary Report, offer appropriate testing based on project type:
**For Web Projects:**
```markdown
**"Want to run Playwright browser tests on the affected pages?"**
1. Yes - run `/playwright-test` 1. Yes - run `/playwright-test`
2. No - skip to next steps 2. No - skip
```
**For iOS Projects:**
```markdown
**"Want to run Xcode simulator tests on the app?"**
1. Yes - run `/xcode-test`
2. No - skip
```
**For Hybrid Projects (e.g., Rails + Hotwire Native):**
```markdown
**"Want to run end-to-end tests?"**
1. Web only - run `/playwright-test`
2. iOS only - run `/xcode-test`
3. Both - run both commands
4. No - skip
```
</offer_testing> </offer_testing>
#### If User Accepts: #### If User Accepts Web Testing:
Spawn a subagent to run the tests (preserves main context): Spawn a subagent to run Playwright tests (preserves main context):
``` ```
Task general-purpose("Run /playwright-test for PR #[number]. Test all affected pages, check for console errors, handle failures by creating todos and fixing.") Task general-purpose("Run /playwright-test for PR #[number]. Test all affected pages, check for console errors, handle failures by creating todos and fixing.")
@@ -452,7 +485,28 @@ The subagent will:
6. Create P1 todos for any failures 6. Create P1 todos for any failures
7. Fix and retry until all tests pass 7. Fix and retry until all tests pass
**Alternatively**, user can run standalone: `/playwright-test [PR number]` **Standalone:** `/playwright-test [PR number]`
#### If User Accepts iOS Testing:
Spawn a subagent to run Xcode tests (preserves main context):
```
Task general-purpose("Run /xcode-test for scheme [name]. Build for simulator, install, launch, take screenshots, check for crashes.")
```
The subagent will:
1. Verify XcodeBuildMCP is installed
2. Discover project and schemes
3. Build for iOS Simulator
4. Install and launch app
5. Take screenshots of key screens
6. Capture console logs for errors
7. Pause for human verification (Sign in with Apple, push, IAP)
8. Create P1 todos for any failures
9. Fix and retry until all tests pass
**Standalone:** `/xcode-test [scheme]`
### Important: P1 Findings Block Merge ### Important: P1 Findings Block Merge