giskard-oss-pr-ready
GitHub提供Giskard OSS仓库PR合并就绪工作流,指导执行格式化、代码检查及单元测试以确保CI通过。适用于准备或更新Pull Request、验证分支状态及运行预推送检查的场景。
Trigger Scenarios
Install
npx skills add Giskard-AI/giskard-oss --skill giskard-oss-pr-ready -g -y
SKILL.md
Frontmatter
{
"name": "giskard-oss-pr-ready",
"description": "Describes the merge-ready workflow for the giskard-oss monorepo using the repository root Makefile and the same steps as GitHub Actions—format, check, unit tests, optional pre-commit. Use when preparing or updating a pull request, confirming CI will pass, running pre-push validation, or when the user asks for a branch to be merge-ready."
}
giskard-oss — PR ready
Context
Work from the repository root (giskard-oss/). The monorepo Makefile lives there.
Main CI (.github/workflows/ci.yml) runs: make install install-tools, then make check, then make test-unit PACKAGE=<each of giskard-core, giskard-agents, giskard-checks> on Python 3.12–3.14.
Merge-ready checklist
Run in order:
-
make format— Ruff format + fix where applicable. -
make check— Lint, format check, Python 3.12 compat (vermin), basedpyright, pip-audit, license check. This matches thelintjob in CI (aftermake install install-tools). -
make test-unit— All packages, or narrow scope:make test-unit PACKAGE=giskard-checks(same pattern forgiskard-core,giskard-agents)
-
Optional — pre-commit — If hooks are installed:
pre-commit run. First-time setup:make pre-commit-install(part ofmake setup).
Dependencies
If checks fail from missing tools, run make install and make install-tools (CI runs both before make check).
Functional tests
make test-functional (and full make test) hit live APIs and are not the default PR gate in ci.yml (they run in .github/workflows/integration-tests.yml with repo secrets). Run them only when the change requires @pytest.mark.functional coverage.
.env setup (local)
-
At the repository root, create a
.envfile (already listed in.gitignore—do not commit secrets). -
Define credentials for the models your tests use. The integration workflow sets:
GEMINI_API_KEY— required for the default Gemini routes used by functional tests.TEST_MODEL— optional; defaultgemini/gemini-3.5-flash(seelibs/giskard-agents/tests/conftest.py).TEST_EMBEDDING_MODEL— optional; defaultgemini/gemini-embedding-001.
-
The repo does not auto-load
.envin pytest—export variables into the shell before running tests, for example:set -a && source .env && set +a make test-functional PACKAGE=giskard-agentsUse valid shell assignments in
.env(e.g.GEMINI_API_KEY=...). If you pointTEST_MODEL/TEST_EMBEDDING_MODELat another provider, add whatever API keys that provider expects (LiteLLM / the underlying SDK).
Verification gate
Before declaring a branch merge-ready, include the following evidence in your response:
- Last line(s) of
make checkoutput — must show no errors. - Pytest summary from
make test-unit— e.g.52 passed, 0 failed. - If any step was skipped or failed, state it explicitly.
"It should pass" is not evidence. Show actual output.
Library-specific rules
For package conventions (API patterns, tests layout), read libs/<package>/.cursor/rules/. Makefile targets are always invoked from the repository root as listed above.
Version History
- 8aafe58 Current 2026-07-25 04:51


