Date: 2026-05-15
Repo: /Users/stefan/ShyftR
Phase: Phase 7 — privacy, policy, and safety hardening
Tranche: P7-3 — contradiction and poisoning fixtures
Status: committed, pushed, verified green
Predecessor closeoff: /Users/stefan/ShyftR/2026-05-15-shyftr-phase-7-p7-2-closeoff.md
Planning artifacts:
/Users/stefan/ShyftR/2026-05-15-shyftr-phase-7-tranche-p7-0-plan.md/Users/stefan/ShyftR/2026-05-15-shyftr-phase-7-tranche-p7-3-plan.md
P7-3 is complete on the intended local implementation surface.
This tranche landed the smallest fixture-safe contradiction and poisoning slice after P7-2 by activating a conservative policy_conflict Challenger path for prompt-injection-like spark text while preserving the existing harmful-outcome contradiction path. The result is a deterministic, local-first safety fixture surface that classifies risky policy-violating instructions without mutating lifecycle state or widening durable-write authority.
-
Prompt-injection-like spark classification
- Challenger spark evidence now distinguishes a small set of prompt-injection or policy-violating markers from generic ambiguous counter-evidence.
- matching spark text is classified as
policydirection during counter-evidence collection.
-
Policy-conflict finding emission
- policy-directed evidence now produces a
policy_conflictfinding in dry-run Challenger reports. - the finding includes
supporting_data.policy_signal == "prompt_injection_like".
- policy-directed evidence now produces a
-
Existing contradiction behavior preserved
- harmful outcome flags still produce
direct_contradictionfindings. - no lifecycle ledgers are mutated by the new behavior.
- no new durable-write authority path was introduced.
- harmful outcome flags still produce
-
Canonical tranche artifact
- a new P7-3 plan artifact records the smallest chosen slice, touchpoints, focused verification commands, and stop boundary.
New focused Phase 7 test file:
tests/test_phase7_contradiction_safety.py
Assertions covered there:
- prompt-injection-like spark text emits
policy_conflict - harmful outcome flags still emit
direct_contradiction
RED/GREEN focused test cycle:
cd /Users/stefan/ShyftR && PYTHONPATH=.:src pytest -q tests/test_phase7_contradiction_safety.py- initial RED result: the new prompt-injection fixture failed because the Challenger did not emit
policy_conflict - final GREEN result:
2 passed
Focused tranche regression:
cd /Users/stefan/ShyftR && PYTHONPATH=.:src pytest -q tests/test_phase7_contradiction_safety.py tests/test_memory_evolution_supersession.py tests/test_sweep.py tests/test_memory_provider.py- result:
44 passed
Vocabulary guard:
cd /Users/stefan/ShyftR && PYTHONPATH=.:src pytest -q tests/test_memory_vocabulary_guard.py- initial result: one plan-doc vocabulary failure from legacy implementation wording in the P7-3 plan
- final result after plan normalization:
4 passed
Repo-wide verification:
cd /Users/stefan/ShyftR && PYTHONPATH=.:src pytest -q- result:
980 passed, 31 warnings cd /Users/stefan/ShyftR && PYTHONPATH=.:src python -m compileall -q src scripts examples→ passcd /Users/stefan/ShyftR && python scripts/terminology_inventory.py --fail-on-public-stale→ passcd /Users/stefan/ShyftR && python scripts/terminology_inventory.py --fail-on-capitalized-prose→ passcd /Users/stefan/ShyftR && python scripts/public_readiness_check.py→ PASScd /Users/stefan/ShyftR && git diff --check→ pass
Core code updated:
src/shyftr/audit/challenger.py
Tests added:
tests/test_phase7_contradiction_safety.py
Planning/status docs added:
2026-05-15-shyftr-phase-7-tranche-p7-3-plan.md2026-05-15-shyftr-phase-7-p7-3-closeoff.md
Before P7-3:
- prompt-injection-like spark text linked to an approved-memory record was treated as generic ambiguous evidence
- Challenger had a reserved
policy_conflictclassification but no active behavior behind it
After P7-3:
- prompt-injection-like spark text is recognized as policy-directed evidence
- Challenger emits a deterministic
policy_conflictfinding with a stable policy-signal marker - the flow remains read-only unless spark proposal writing is explicitly enabled elsewhere
This tranche intentionally stops at the smallest contradiction/poisoning fixture surface:
- prompt-injection-like spark classification is covered
- policy-conflict report emission is covered
- harmful-outcome contradiction behavior remains covered
This tranche does not yet introduce:
- automatic challenge or isolation mutation from policy-conflict findings
- expanded contradiction arbitration across audit/evolution surfaces
- operator review-surface redesign
- broader Phase 7 final closeoff
Those remain for:
- P7-4 review-surface and policy-visibility improvements
- P7-5 broader safety verification and final Phase 7 closeoff
A real swarm lane was launched on swarm2 for bounded P7-3 execution support and produced the same minimal tranche shape: a new P7-3 plan artifact plus the Challenger-based policy_conflict slice.
The controller verified the landed files, ran authoritative local verification, fixed the public-vocabulary wording in the plan artifact, and authored the canonical closeoff.
ShyftR now has a complete P7-3 minimal safety fixture tranche for the intended local scope:
- prompt-injection-like spark text is no longer just generic ambiguity in Challenger reports
- a stable
policy_conflictreport path now exists - harmful contradiction behavior remains intact
- repo-wide verification remains green
Phase 7 P7-3 is done locally: ShyftR now classifies prompt-injection-like spark evidence as policy_conflict in fixture-safe Challenger reports while preserving existing contradiction behavior and staying repo-wide green.