[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:
@@ -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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user