Problem
Ballast currently detects language profiles from a narrow set of repo markers. That misses some real application surfaces, and it also means testing guidance can drift away from the actual integration test framework already present in the repo.
A recent example is a mixed Ansible/Terraform repo with a root package.json and playwright.config.mjs. Ballast did not recognize the JavaScript/TypeScript test component as a TypeScript profile because monorepo profile detection only looked for tsconfig.json.
Goal
Improve Ballast's repo inspection so it can detect integration testing frameworks for each supported language and generate more accurate testing guidance.
Requirements
- Detect common integration testing frameworks by language during repo inspection.
- For browser-based applications, prefer Playwright in testing guidance and generated rules when Playwright is already present or when the app shape clearly indicates browser automation.
- Keep the detection conservative enough to avoid placeholder config false positives.
- Use the same detection model consistently across single-language and monorepo flows.
Initial scope
- TypeScript/JavaScript:
- Detect Playwright via markers such as
playwright.config.*, @playwright/test, or playwright in package.json.
- Consider additional browser/integration signals separately from unit-test-only setups.
- Python:
- Detect integration test frameworks already used in the repo and distinguish browser-driven flows from API/service integration tests.
- Go:
- Detect integration/E2E test setups and browser-driven automation where applicable.
- Ansible/Terraform:
- Detect smoke/integration test tooling where present and avoid assuming only syntax/validation checks.
Acceptance criteria
- Repos with existing Playwright config are recognized as having a browser integration test surface.
- Mixed-language repos use the same detection logic in monorepo planning and single-language detection.
- Browser-based app testing guidance prefers Playwright when appropriate.
- Detection is covered by automated tests with both positive and negative cases.
Notes
This issue is intentionally about framework detection and generated guidance, not only language profile detection. The immediate wrapper warning for JavaScript components without tsconfig.json is handled separately.
Problem
Ballast currently detects language profiles from a narrow set of repo markers. That misses some real application surfaces, and it also means testing guidance can drift away from the actual integration test framework already present in the repo.
A recent example is a mixed Ansible/Terraform repo with a root
package.jsonandplaywright.config.mjs. Ballast did not recognize the JavaScript/TypeScript test component as a TypeScript profile because monorepo profile detection only looked fortsconfig.json.Goal
Improve Ballast's repo inspection so it can detect integration testing frameworks for each supported language and generate more accurate testing guidance.
Requirements
Initial scope
playwright.config.*,@playwright/test, orplaywrightinpackage.json.Acceptance criteria
Notes
This issue is intentionally about framework detection and generated guidance, not only language profile detection. The immediate wrapper warning for JavaScript components without
tsconfig.jsonis handled separately.