├── gemini-extension.json ├── GEMINI.md ├── templates ├── code_styleguides │ ├── general.md │ ├── python.md │ ├── html-css.md │ ├── javascript.md │ ├── typescript.md │ └── go.md └── workflow.md ├── CONTRIBUTING.md ├── .github └── workflows │ └── package-and-upload-assets.yml ├── commands └── conductor │ ├── status.toml │ ├── revert.toml │ ├── newTrack.toml │ ├── implement.toml │ └── setup.toml ├── .gitignore ├── README.md └── LICENSE /gemini-extension.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "conductor", 3 | "version": "0.1.0", 4 | "contextFileName": "GEMINI.md" 5 | } -------------------------------------------------------------------------------- /GEMINI.md: -------------------------------------------------------------------------------- 1 | # Conductor Context 2 | 3 | If a user mentions a "plan" or asks about the plan, and they have used the conductor extension in the current session, they are likely referring to the `conductor/tracks.md` file or one of the track plans (`conductor/tracks//plan.md`). 4 | -------------------------------------------------------------------------------- /templates/code_styleguides/general.md: -------------------------------------------------------------------------------- 1 | # General Code Style Principles 2 | 3 | This document outlines general coding principles that apply across all languages and frameworks used in this project. 4 | 5 | ## Readability 6 | - Code should be easy to read and understand by humans. 7 | - Avoid overly clever or obscure constructs. 8 | 9 | ## Consistency 10 | - Follow existing patterns in the codebase. 11 | - Maintain consistent formatting, naming, and structure. 12 | 13 | ## Simplicity 14 | - Prefer simple solutions over complex ones. 15 | - Break down complex problems into smaller, manageable parts. 16 | 17 | ## Maintainability 18 | - Write code that is easy to modify and extend. 19 | - Minimize dependencies and coupling. 20 | 21 | ## Documentation 22 | - Document *why* something is done, not just *what*. 23 | - Keep documentation up-to-date with code changes. 24 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to contribute 2 | 3 | We'd love to accept your patches and contributions to this project. 4 | 5 | ## Before you begin 6 | 7 | ### Sign our Contributor License Agreement 8 | 9 | Contributions to this project must be accompanied by a 10 | [Contributor License Agreement](https://cla.developers.google.com/about) (CLA). 11 | You (or your employer) retain the copyright to your contribution; this simply 12 | gives us permission to use and redistribute your contributions as part of the 13 | project. 14 | 15 | If you or your current employer have already signed the Google CLA (even if it 16 | was for a different project), you probably don't need to do it again. 17 | 18 | Visit to see your current agreements or to 19 | sign a new one. 20 | 21 | ### Review our community guidelines 22 | 23 | This project follows 24 | [Google's Open Source Community Guidelines](https://opensource.google/conduct/). 25 | 26 | ## Contribution process 27 | 28 | ### Code reviews 29 | 30 | All submissions, including submissions by project members, require review. We 31 | use GitHub pull requests for this purpose. Consult 32 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 33 | information on using pull requests. -------------------------------------------------------------------------------- /.github/workflows/package-and-upload-assets.yml: -------------------------------------------------------------------------------- 1 | name: Package and Upload Release Assets 2 | 3 | on: 4 | release: 5 | types: [created] 6 | 7 | # This allows you to run the workflow manually from the Actions tab 8 | workflow_dispatch: 9 | inputs: 10 | tag_name: 11 | description: 'The tag of the release to upload assets to' 12 | required: true 13 | type: string 14 | 15 | permissions: 16 | # This permission is required for the action to create a GitHub Release 17 | contents: write 18 | 19 | jobs: 20 | package-and-upload: 21 | runs-on: ubuntu-latest 22 | steps: 23 | # 1. Checks out your repository's code 24 | - name: Checkout code 25 | uses: actions/checkout@v4 26 | 27 | # 2. Create TAR archive 28 | - name: Create TAR archive 29 | run: tar -czvf ../conductor-release.tar.gz --exclude='.git' --exclude='.github' . && mv ../conductor-release.tar.gz . 30 | 31 | # 3. Upload the TAR archive as a release asset 32 | - name: Upload archive to GitHub Release 33 | env: 34 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 35 | run: | 36 | gh release upload \ 37 | ${{ github.event.release.tag_name || inputs.tag_name }} \ 38 | conductor-release.tar.gz -------------------------------------------------------------------------------- /templates/code_styleguides/python.md: -------------------------------------------------------------------------------- 1 | # Google Python Style Guide Summary 2 | 3 | This document summarizes key rules and best practices from the Google Python Style Guide. 4 | 5 | ## 1. Python Language Rules 6 | - **Linting:** Run `pylint` on your code to catch bugs and style issues. 7 | - **Imports:** Use `import x` for packages/modules. Use `from x import y` only when `y` is a submodule. 8 | - **Exceptions:** Use built-in exception classes. Do not use bare `except:` clauses. 9 | - **Global State:** Avoid mutable global state. Module-level constants are okay and should be `ALL_CAPS_WITH_UNDERSCORES`. 10 | - **Comprehensions:** Use for simple cases. Avoid for complex logic where a full loop is more readable. 11 | - **Default Argument Values:** Do not use mutable objects (like `[]` or `{}`) as default values. 12 | - **True/False Evaluations:** Use implicit false (e.g., `if not my_list:`). Use `if foo is None:` to check for `None`. 13 | - **Type Annotations:** Strongly encouraged for all public APIs. 14 | 15 | ## 2. Python Style Rules 16 | - **Line Length:** Maximum 80 characters. 17 | - **Indentation:** 4 spaces per indentation level. Never use tabs. 18 | - **Blank Lines:** Two blank lines between top-level definitions (classes, functions). One blank line between method definitions. 19 | - **Whitespace:** Avoid extraneous whitespace. Surround binary operators with single spaces. 20 | - **Docstrings:** Use `"""triple double quotes"""`. Every public module, function, class, and method must have a docstring. 21 | - **Format:** Start with a one-line summary. Include `Args:`, `Returns:`, and `Raises:` sections. 22 | - **Strings:** Use f-strings for formatting. Be consistent with single (`'`) or double (`"`) quotes. 23 | - **`TODO` Comments:** Use `TODO(username): Fix this.` format. 24 | - **Imports Formatting:** Imports should be on separate lines and grouped: standard library, third-party, and your own application's imports. 25 | 26 | ## 3. Naming 27 | - **General:** `snake_case` for modules, functions, methods, and variables. 28 | - **Classes:** `PascalCase`. 29 | - **Constants:** `ALL_CAPS_WITH_UNDERSCORES`. 30 | - **Internal Use:** Use a single leading underscore (`_internal_variable`) for internal module/class members. 31 | 32 | ## 4. Main 33 | - All executable files should have a `main()` function that contains the main logic, called from a `if __name__ == '__main__':` block. 34 | 35 | **BE CONSISTENT.** When editing code, match the existing style. 36 | 37 | *Source: [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html)* -------------------------------------------------------------------------------- /templates/code_styleguides/html-css.md: -------------------------------------------------------------------------------- 1 | # Google HTML/CSS Style Guide Summary 2 | 3 | This document summarizes key rules and best practices from the Google HTML/CSS Style Guide. 4 | 5 | ## 1. General Rules 6 | - **Protocol:** Use HTTPS for all embedded resources. 7 | - **Indentation:** Indent by 2 spaces. Do not use tabs. 8 | - **Capitalization:** Use only lowercase for all code (element names, attributes, selectors, properties). 9 | - **Trailing Whitespace:** Remove all trailing whitespace. 10 | - **Encoding:** Use UTF-8 (without a BOM). Specify `` in HTML. 11 | 12 | ## 2. HTML Style Rules 13 | - **Document Type:** Use ``. 14 | - **HTML Validity:** Use valid HTML. 15 | - **Semantics:** Use HTML elements according to their intended purpose (e.g., use `

` for paragraphs, not for spacing). 16 | - **Multimedia Fallback:** Provide `alt` text for images and transcripts/captions for audio/video. 17 | - **Separation of Concerns:** Strictly separate structure (HTML), presentation (CSS), and behavior (JavaScript). Link to CSS and JS from external files. 18 | - **`type` Attributes:** Omit `type` attributes for stylesheets (``) and scripts (`