Skip to content

chore(giskard-scan): migrate generate_suite and generators from giskard-checks" - #2506

Merged
kevinmessiaen merged 15 commits into
mainfrom
worktree-chore+migrate-giskard-scan
Jun 4, 2026
Merged

chore(giskard-scan): migrate generate_suite and generators from giskard-checks"#2506
kevinmessiaen merged 15 commits into
mainfrom
worktree-chore+migrate-giskard-scan

Conversation

@kevinmessiaen

Copy link
Copy Markdown
Member

Description

  • Creates new giskard-scan package (libs/giskard-scan) owning all generation machinery: ScenarioGenerator, DatasetScenarioGenerator, AdversarialScenarioGenerator, PromptInjectionScenarioGenerator, SuiteGeneratorRegistry, and generate_suite
  • Removes scenarios_generator/ sub-package and moved prompt templates from giskard-checks — it is now a pure eval/assertion library (breaking change: from giskard.checks import generate_suite raises ImportError)
  • Updates Makefile, CI matrix, release workflow, pyrightconfig.json, PR labeler, and README.md to include giskard-scan

Related Issue

Type of Change

  • 📚 Examples / docs / tutorials / dependencies update
  • 🔧 Bug fix (non-breaking change which fixes an issue)
  • 🥂 Improvement (non-breaking change which improves an existing feature)
  • 🚀 New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to change)
  • 🔐 Security fix

Coding agents

Autonomous agents with no human in the loop must read AUTONOMOUS.md before opening a PR.

PR title: agent-opened PRs must end the title with 🤖🤖🤖🤖 (exactly four robot emojis). Do not omit — that suffix is how the expedited agent PR workflow picks up the PR.

Checklist

  • I've read the CODE_OF_CONDUCT.md document.
  • I've read the CONTRIBUTING.md guide.
  • I've written tests for all new methods and classes that I created.
  • I've written the docstring in NumPy format for all the methods and classes that I created or modified.
  • I've updated the uv.lock running uv lock (only applicable when pyproject.toml has been
    modified)
kevinmessiaen and others added 10 commits June 3, 2026 16:01
…pace

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r base classes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy prompt_injection.jsonl, adversarial.j2, llm01_indirect_injection.j2,
and generation_rules.j2 into giskard-scan; add PromptInjectionScenarioGenerator
and AdversarialScenarioGenerator with giskard.scan:: prompt namespaces.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…scan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gistry test

- Restore Scenario/Trace imports and typed return on _generate_scenarios
- Restore full NumPy docstring on generate_suite
- Add DatasetScenarioGenerator inheritance note to PromptInjectionScenarioGenerator
- Fix test_suite_generator_registry_exported_from_top_level to import from giskard.scan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nslator

- restore isinstance guard in SuiteGeneratorRegistry.register() (was silently dropped)
- replace manual enumerate/del loop in unregister() with list.remove()
- unify serialize_user_message into single return path via parts variable
- collapse _get_name_from_call_id to a single dict.get chain
- replace two-pass list comprehension in part_content_to_giskard_messages with single-pass loop
- hoist _rule_generation_pipeline() before retry loop in _generate_rules

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@pierlj pierlj left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment