Skip to content

adversarial-scenario: un-defer the SHACL gate with negative fixtures + validator#121

Merged
mdheller merged 8 commits into
mainfrom
integ/adversarial-scenario
Jul 4, 2026
Merged

adversarial-scenario: un-defer the SHACL gate with negative fixtures + validator#121
mdheller merged 8 commits into
mainfrom
integ/adversarial-scenario

Conversation

@mdheller

@mdheller mdheller commented Jul 4, 2026

Copy link
Copy Markdown
Member

What

Un-defers the adversarial-scenario SHACL gate. Main documented it as intentionally deferred"...introduced with negative fixtures and failure-output visibility." This lands the gate and meets that condition, rather than merging the bare gate.

Changes

  • Reconciles adversarial-scenario-semantics onto current main. Docs conflicts resolved: kept main's hyphenated agentic-purple-team spelling in module-map.md; took the branch's implemented-gate language in the purple-team spec (now true).
  • Brings in Domains/adversarial-scenario.ttl, shapes/adversarial-scenario.shacl.ttl, catalog/adversarial_scenario_registry.ttl, and the SCOPE-D positive example.
  • NEW negative fixtures (examples/adversarial-scenario/invalid/) — each trips one SCOPE-D safety invariant the gate enforces:
    • runtime-authority-claimed — scenario asserts runtimeAuthority true
    • memory-writeback-allowedMemoryEffect authorizes durable writeback
    • claim-promotion-findingClaimPromotionState promotes to a finding
  • NEW scripts/validate_adversarial_scenario_examples.py + validate-adversarial-scenario make target wired into validate — the failure-output visibility the deferral asked for: the positive conforms, every negative is rejected with its expected safety signal.

Verification

  • make validate → all 5 sub-validators green, incl. Adversarial-scenario examples validated.
  • tools/validate_parsing.py green. No conflict markers.

mdheller added 8 commits May 29, 2026 09:10
Main had documented the adversarial-scenario SHACL gate as intentionally
deferred "so they can be introduced with negative fixtures and failure-output
visibility." This lands the gate and satisfies that condition.

Reconciles adversarial-scenario-semantics onto main (docs conflicts resolved:
kept main's hyphenated "agentic-purple-team" spelling; took the branch's
implemented-gate language in the purple-team spec) and brings the deferred gate
in properly:

- Domains/adversarial-scenario.ttl, shapes/adversarial-scenario.shacl.ttl,
  catalog/adversarial_scenario_registry.ttl, and the SCOPE-D positive example
  (from the branch).
- NEW negative fixtures under examples/adversarial-scenario/invalid/ — each trips
  one SCOPE-D safety invariant: runtime-authority-claimed (scenario claims runtime
  authority), memory-writeback-allowed (MemoryEffect authorizes durable
  writeback), claim-promotion-finding (ClaimPromotionState promotes to a finding).
- NEW scripts/validate_adversarial_scenario_examples.py + a
  validate-adversarial-scenario make target wired into `validate`, giving the gate
  failure-output visibility (positive conforms; every negative is rejected with
  its expected safety signal).

make validate green (all 5 sub-validators, incl. adversarial-scenario);
tools/validate_parsing.py green.
… gate

The global SHACL gate rglobs all *.ttl under examples/ and expects everything to
conform. The new adversarial-scenario negative fixtures (examples/adversarial-scenario/invalid/*.ttl)
are deliberately non-conformant and are checked by their own lane validator
(validate-adversarial-scenario), which expects them to fail. Exclude any file under
an invalid/ directory from the global gate so negative .ttl fixtures don't break it
(privacy negatives escaped only because they are .jsonld).
@mdheller mdheller merged commit c3eee4c into main Jul 4, 2026
9 checks passed
@mdheller mdheller deleted the integ/adversarial-scenario branch July 4, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant