Skip to main content

sqlitecpp-workflow

SQLiteCpp workflow for branches, implementation, tests, commits, pull requests, and CHANGELOG updates. Use when changing the repository.

Datos de origen

Repositorio
SRombauts/SQLiteCpp
Última actividad en el origen
1 de octubre de 2026 a las 09:22
Idioma detectado de SKILL.md
inglés
Estrellas
2789
Forks
575

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
sqlitecpp-workflow
description
SQLiteCpp workflow for branches, implementation, tests, commits, pull requests, and CHANGELOG updates. Use when changing the repository.
# SQLiteCpp Workflow ## Required workflow For an implementation request, complete the local Git workflow before handing the work back: 1. Load `sqlitecpp-git-branching`, inspect `git status`, and create the task branch before editing. 2. Implement the change and its tests, public API documentation, and any required build-file updates. 3. Build and run the relevant tests. 4. Commit the completed work according to the atomic and independent commit rules below. 5. Report the branch name, commit hashes, and validation results. If work was accidentally started on `master`, create the correctly named branch immediately while preserving the working tree, then continue the workflow there. Do not leave completed implementation changes uncommitted unless the user explicitly asks for an uncommitted patch. ## Change checklist - [ ] Public API has Doxygen (`@brief`, `@param`, `@return`, `@throw`). - [ ] Tests added under `tests/`. - [ ] Build files updated (`CMakeLists.txt`, `meson.build`). - [ ] `CHANGELOG.md` updated for user-facing changes (in a **separate commit** after opening the PR). ## CHANGELOG conventions If the user explicitly requests no CHANGELOG change or entry, leave `CHANGELOG.md` unchanged. Update `CHANGELOG.md` in the same PR that makes the change, but **in a separate commit** created after the PR is opened so the PR number is known. Normally add one line per PR under the current unreleased version heading (`Version X.Y.Z - <year> ???`). Create that heading if it does not exist yet. - Append a new bullet at the end of the current unreleased section by default. Do not reorder existing entries or insert the new entry by category unless there is a clear reason to group related changes. - Related PRs may be kept together or combined when that makes the history clearer. For example, keep consecutive updates to the bundled SQLite library together instead of separating them by append order. - Normally use one bullet per PR: `- <description> (#NNN)`. Keep all PR numbers at the end when related PRs share an entry: `- <description> (#NNN) (#MMM)`. - Write in the imperative mood, present tense: "Add", "Fix", "Update", "Remove". Not "Added", "Fixes", or "Adding". - Keep each entry to a single line that names the user-facing effect, not the internal mechanics. - A change merged straight to master without a PR still gets a bullet; omit the `(#NNN)` and note it was committed directly to master. - ASCII only, no em dashes. Run the entry through the `humanizer` skill before committing so the prose stays plain and free of AI tells. Finalizing the version heading and tagging belong to the release process: see [[sqlitecpp-release]]. **Workflow for CHANGELOG updates:** 1. Commit source code changes (tests, implementation, etc.) in one or more atomic commits 2. Push the branch and open the PR to obtain the PR number 3. Create a separate final commit adding only the CHANGELOG entry with the PR number 4. Push the CHANGELOG commit to the same branch This keeps commits atomic (CHANGELOG is separate from code) and allows the PR number to be included in the CHANGELOG entry. Keep the CHANGELOG commit last in the PR history. If review follow-ups add source, test, or documentation commits after it, reorder the branch before pushing again. ## Pull requests - Open PRs with `gh pr create` against `master`. - The maintainer wants a **short and tight** PR description: one or two sentences on what the PR does and why, plus a brief bullet list only when it genuinely helps review. No filler, no restating the diff, no marketing. ASCII only, no em dashes; run it through `humanizer` if unsure. ## Git commits and pushing - Use a clean, short imperative headline, aiming for about 50 characters. - Nearly always add one short paragraph after a blank line: usually one or two sentences explaining why the change is needed, including the failure condition when useful. Wrap at about 72 characters. - Keep messages self-explanatory without repeating the diff, listing routine validation, or recounting the investigation. Add detail only when essential to understand the change; omit the body for a truly self-explanatory change. Put fuller explanations and validation results in the PR description or task response. - Make commits **atomic and independent**. Each commit must have exactly one purpose and be reviewable on its own. Include only the implementation, tests, and documentation required for that purpose. - Do not mix distinct bug fixes, API additions, refactoring, formatting, workflow changes, or other unrelated work in one commit. A task containing separable outcomes, such as fixing existing behavior and adding a new API, requires separate commits. - **CHANGELOG.md updates must be in a separate final commit** from source code changes, created after the PR is opened so the PR number can be included. - Each commit must leave the repository in a valid state: it must compile and pass its relevant tests when checked out at that point in the branch history. - Push when the user has explicitly authorized pushing in the current session, including in the initial request. Do not ask again when that authorization already covers the branch and action. Otherwise, ask for permission stating the branch name and action (e.g., "Push branch `update-sqlite-3.52.2` to origin?"). ## Add a method Follow the required workflow above. Include: - A declaration with Doxygen in `include/SQLiteCpp/<Class>.h`. - The implementation in `src/<Class>.cpp`. - Tests in `tests/<Class>_test.cpp`. ## Add a class Follow the required workflow above. Include: - `include/SQLiteCpp/NewClass.h`, `src/NewClass.cpp`, and `tests/NewClass_test.cpp`. - The new files in `CMakeLists.txt` and `meson.build`. - The public header in `SQLiteCpp.h` when the class is public API.
Ver en GitHub