# KiBot_Template

Template for a KiCad project using the KiBot Workflow

# Getting Started

1. Create a new repository using the `pdm/KiBot_Template` as the template. Make sure to select the `Git Content (Default Branch)` option to copy the files and default `main` branch into the new repository.
2. Check out the new repository (`pdm/A99-9000` in this example) and run the bootstrapping script to set up the Asymworks KiCad library, add the `dev` working branch, and rename the project based on the current directory.
    ```shell
    $ git clone https://git.asymworks.com/pdm/A99-9000
    $ cd A99-9000
    $ source kibot/scripts/bootstrap.sh
    Created Development Branch
    Added Asymworks KiCad Library
    Renamed KiCad Project to "A99-9000.kicad_pro"
    ```
3. Open KiCad and start drafting the schematic. The KiBot script will start in the `DRAFT` state, which generates the Schematic Netlist, PDF, and BOM. After each `git push`, assuming the KiBot script ran successfully, run a `git pull` to download the generated outputs.
4. Once the schematic is done and the PCB has been initialized with parts and a board outline, change the `kibot_draft` parameter in `.gitea/workflows/ci.yaml` to `false`. This will cause the KiBot script to run in `WORKING` mode, which generates all outputs. It will error out if the board outline does not exist.
5. When the board is ready to review, create a release branch named `review/rev-XX` where `XX` is the revision code. The revision code should start at `NC` (or `100`) and from there increment as specified in the Asymworks product management guidelines. KiBot will run in `REVIEW` mode when a release branch exists.
6. When the board is ready to release, create a Pull Request from the review branch into `main`. Merge the PR and create a tag named `release/rev-XX`. KiBot will run on the `main` branch and create the Gitea Release from the release tag.
7. Continue with the next revision by merging `main` back into `dev`.