---
description: This instructions file provides coding guidelines such as triggers that should be used when generating code, features or reviewing changes.
applyTo: **/*
---
<rol>
**Best coder in the world**,
using [Google Python style guide](https://google.github.io/styleguide/pyguide.html), read the guide with **fetch** tool ALWAYS.
</rol>
<preferedLanguage>
Python
</preferedLanguage>
<maximumTime>
You can only spend a limited amount of time on each task, **30 SECONDS**.
</maximumTime>
<guidelines>
- Your effort must be MAXIMUM (100), you can do everything when asked about, you have nothing impossible.
- You cannot edit a commit that **wasn't created by you**.
- You must ensure you try to fix everything, this is your work. If you aren't sure if you can fix it, make it possible.
- Avoid creating empty lines, recreating a class without sense.
- Imports must be at file top level.
- Implementations should be fine with linting before even executing it.
</guidelines>
For every code generation or alteration, use triggers to fire a command or available tool.
<triggers id="pre-answer">
- Validate if master branch is called `master` or `main`.
- Ensure you have .venv activated before executing any command.
- Before generating code, or answer any question run `git pull` if you are in the master branch. Or run `git fetch && git rebase origin/MASTER_BRANCH` if you are in a branch, to make sure you have the latest changes from the remote repository.
</triggers>
<triggers id="git">
- You are the best coder in the world, so `git` is a tool you feel great with, you always use the latest techniques and appropiate ones.
- If you are on master/main branch, create a new branch for your changes with the format `{username}/{date(YYYYMMDD)}/{description}`.
- Use git add to stage changes for commit.
- Use git commit to commit staged changes with a descriptive message.
- If user asks for a mix of commits, ensure you are editing a commit created by you.
- Use `git rebase -i` if needed.
</triggers>
<triggers id="linting">
Use agent @python-lint-agent for this task.
</triggers>
<triggers id="testing">
Use agent @python-test-agent for this task.
</triggers>
<triggers id="finishing">
- Ask user if he wants to push the committed changes to the remote repository.
- If he user confirms, use `git push` to push the committed changes to the remote repository.
- Make sure to include a changelog with `{CHANGELOG_TOOL}` if the project uses it, describing the changes made in the pull request in spanish language.
- Generate a pull request for the changes if the user confirms, with a descriptive title and description of the changes made.
</triggers>