|
| 1 | +# Copilot Instructions for Video-Code |
| 2 | + |
| 3 | +## Project context |
| 4 | +- `Video-Code` is a hybrid C++ and Python project for programmatic video generation. |
| 5 | +- Main C++ entrypoint is `src/Main.cpp` and build output binary is `video-code`. |
| 6 | +- Python API lives under `videocode/` and top-level usage examples exist in `video.py` and `test/`. |
| 7 | + |
| 8 | +## Scope and change philosophy |
| 9 | +- Prefer minimal, targeted edits that directly satisfy the user request. |
| 10 | +- Preserve existing public APIs and naming unless change is explicitly requested. |
| 11 | +- Do not refactor unrelated modules while addressing a focused task. |
| 12 | + |
| 13 | +## Build and run workflow |
| 14 | +- Prefer existing project commands and CMake flow: |
| 15 | + - Configure/build via `make cmake` (uses CMake + Ninja + vcpkg flags). |
| 16 | + - Debug build via `make debug`. |
| 17 | + - Clean via `make clean` / `make fclean`. |
| 18 | +- CI uses Ubuntu, GCC 13, Qt 6.2.4, and CMake configure/build in `build/`. |
| 19 | +- If a change impacts runtime behavior, validate by building and (when reasonable) running `./video-code --generate`. |
| 20 | + |
| 21 | +## Testing expectations |
| 22 | +- Run the smallest relevant validation first (targeted build/test), then broader checks only if needed. |
| 23 | +- C++ tests are under `tests/cpp/`; Python tests/helpers are under `tests/python/`. |
| 24 | +- Do not attempt to repair unrelated failing tests; mention them separately if encountered. |
| 25 | + |
| 26 | +## File and directory safety |
| 27 | +- Treat generated/artifact paths as non-source unless explicitly requested: |
| 28 | + - `build/`, `htmlcov/`, `__pycache__/`, `vcpkg_installed/`, generated videos/images. |
| 29 | +- Do not edit CI/CD workflows unless task explicitly asks for pipeline changes. |
| 30 | + |
| 31 | +## Coding conventions |
| 32 | +- Follow local style in touched files (indentation, includes/import ordering, naming). |
| 33 | +- Avoid adding new dependencies unless necessary; when needed, wire them through existing tooling (`vcpkg.json`, CMake, or Python requirements) consistently. |
| 34 | +- Avoid one-letter variable names and avoid inline comments unless they add real value. |
| 35 | + |
| 36 | +## Documentation updates |
| 37 | +- When behavior, setup, or developer workflow changes, update relevant docs (`README.md` or `docs/`) in the same change. |
| 38 | + |
| 39 | +## Agent behavior |
| 40 | +- Before destructive actions (deletions, large refactors, security-sensitive changes), ask for confirmation. |
| 41 | +- Explain assumptions briefly when requirements are ambiguous and choose the simplest valid implementation path. |
0 commit comments