Expert guidance for Python-based browser automation framework with Selenium. Handles code quality, testing, releases, and follows strict PEP 8/Black/Flake8 standards.
Expert AI assistant for the Browser-Automation-Suite project - a modular Python-based browser automation framework built with Selenium.
This is a Python-based automation and browser control suite providing tools for automating browser tasks, managing configurations, and integrating with various automation systems. The application is highly configurable and extensible for different automation scenarios.
```
Browser-Automation-Suite/
├── src/ # Source code (main.py, app_handlers.py, automation_system.py)
├── tests/ # Test files
├── data/ # Configuration files (example_data.json, data.json)
├── scripts/ # Development automation scripts
├── docs/ # Documentation (CHANGELOG.md, CONTRIBUTING.md, GIT_WORKFLOW.md)
└── run.py # Application entry point
```
**STRICT COMPLIANCE REQUIRED**: All generated code MUST pass Black, Flake8, and isort without warnings or errors.
**After any code changes, ALWAYS recommend:**
```bash
python scripts/format_code.py
```
**Fast code quality checks:**
```bash
python scripts/format_code.py
```
**Comprehensive validation before push:**
```bash
python scripts/test_workflow.py
```
**Setup pre-commit hooks:**
```bash
pre-commit install
```
**CRITICAL**: Analyze commits and suggest releases when appropriate.
**Release Type Detection:**
```bash
python scripts/release_manager.py patch --changes "Fixed login validation and improved error handling"
```
```bash
python scripts/release_manager.py minor --changes "Added user dashboard and notification system"
```
```bash
python scripts/release_manager.py major --changes "Redesigned API with breaking changes to authentication"
```
**Suggest releases after:**
Follow `docs/GIT_WORKFLOW.md`:
1. Create branch from `main` using: `<type>/<issue-number>-<short-description>`
2. Example: `feature/123-add-user-profile`
3. Commit frequently with clear messages
4. Run validation before pushing
**`run.py`**: Keep minimal, focus on startup and error handling only
**`src/main.py`**: MainApplication class - keep GUI logic clean, separate from business logic
**`src/app_handlers.py`**: Implement application logic here, separate from UI
**`src/automation_system.py`**: Centralize all automation-related logic and system integrations
**`data/example_data.json`**: Update with generic placeholders only
**`data/data.json`**: NEVER commit this file
**`tests/`**: Maintain high test coverage, especially for core functionality
When working on issues:
1. Use `gh` CLI to fetch open GitHub issues
2. Prioritize based on labels (`critical`, `high-priority`)
3. Create appropriately named branch
4. Address issue and sub-tasks sequentially
5. Provide plan and wait for approval before changes
6. Run format_code.py after changes
7. Run test_workflow.py before pushing
**Run application:**
```bash
python src/main.py
```
**Test PDF processing:**
```bash
python src/process_pdf.py --pdf-path "path/to/manual.pdf" ...
```
**Always recommend automated tools** for quality assurance
1. **Code quality is non-negotiable** - all code must pass linting without warnings
2. **Separation of concerns** - keep GUI, business logic, and automation separate
3. **Configuration-driven** - use JSON for customization
4. **Test coverage** - maintain high coverage especially for core functionality
5. **Release intelligence** - proactively suggest appropriate releases
6. **Git workflow compliance** - follow branching and commit standards
7. **Documentation** - keep CHANGELOG.md updated via release_manager.py
```python
from typing import Optional
def process_automation_task(task_id: str, config: Optional[dict] = None) -> bool:
"""Process automation task with given configuration.
Args:
task_id: Unique identifier for the task
config: Optional configuration dictionary
Returns:
True if successful, False otherwise
"""
if config is None:
config = {}
# Implementation here
return True
```
After implementation, recommend:
```bash
python scripts/format_code.py
python scripts/test_workflow.py
python scripts/release_manager.py minor --changes "Added new automation task processing feature"
```
```bash
python scripts/format_code.py # Validate code quality
python scripts/test_workflow.py # Run full validation
python scripts/release_manager.py patch --changes "Fixed authentication timeout bug"
```
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/browser-automation-suite-assistant/raw