Skip to content

Add three state-metrics perturbations: parallel_auto, front_back_load, case_type_drift - #6

Merged
PowerMaxZ merged 1 commit into
mainfrom
state-metrics-new-perturbations
Jul 2, 2026
Merged

Add three state-metrics perturbations: parallel_auto, front_back_load, case_type_drift#6
PowerMaxZ merged 1 commit into
mainfrom
state-metrics-new-perturbations

Conversation

@PowerMaxZ

Copy link
Copy Markdown
Member

Summary

Builds the three previously-unimplemented paper scenarios (#2, #4, #6), each validated end-to-end with real Prosimos — state metrics rank the perturbation perfectly (c-index 1.0) while every baseline stays blind (0.5).

# Family Dataset State detects (c-index 1.0) Baselines
2 parallel_auto synthetic_parallel_auto activity, case, cardinality, activity_role ngd/red/cycle_time/rtd = 0.5
4 front_back_load synthetic_linear_chain all projections ngd/red/cycle_time/rtd = 0.5
6 case_type_drift synthetic_case_route case_type, activity_type baselines + type-agnostic state = 0.5

What each does

  • Conflict with pix-framework and prosimos #2 parallel_auto (sim-driven) — new tools/generate_parallel_auto.py (AND block: long Critical branch + short NonCritical chain on separate pools) + build_branch_automation_params (shrink non-critical durations toward a floor so the activity stays in the trace → ngd blind; critical pool untouched → cycle_time blind). Also proves AND-gateway short-term resume works.
  • Web application version #4 front_back_load (sim-driven) — new tools/generate_linear_chain.py + build_front_back_load_params (antisymmetric position ramp; per-case total duration held exactly invariant via renormalization; --load-direction front|back keeps the level ladder monotone for c-index). Timeline-localization story.
  • Add three state-metrics perturbations: parallel_auto, front_back_load, case_type_drift #6 case_type_drift (sim-driven oracle, the data-attribute one) — drift_case_types + _run_case_type_drift_levels, reuses synthetic_case_route. Re-sorts a fraction of case_type tags by arrival time with the global marginal held fixed. Both case_type and activity_type fire — the case_type hit is the temporal-drift signature vs the random label_swap.

Wiring

Dispatch in _prepare_params_for_level / run_pipeline; DatasetSpec entries; CLI choices --perturbation parallel_auto|front_back_load|case_type_drift and --load-direction.

Tests

17 new unit tests (builder invariants, total-duration invariance, marginal preservation, drift sortedness, error paths). Full non-e2e suite: 233 passed, no regressions.

Docs

PAPER_SCENARIOS.md (table + build status) and a standalone EXPERIMENT_SCENARIOS.md (table + plain-English scenario descriptions).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fj2DDhAhygixvTfJm4Qjpo

…, case_type_drift

Build the three previously-unimplemented paper scenarios (#2, #4, #6), each
validated end-to-end with real Prosimos (state c-index 1.0, baselines 0.5):

- #2 parallel_auto (sim-driven): tools/generate_parallel_auto.py (AND block with
  a long Critical branch + short NonCritical chain on separate pools) +
  build_branch_automation_params (shrink non-critical durations toward a floor so
  the activity stays in the trace -> ngd blind). Also proves AND-gateway
  short-term resume works.
- #4 front_back_load (sim-driven): tools/generate_linear_chain.py +
  build_front_back_load_params (antisymmetric position ramp, per-case total held
  exactly invariant; --load-direction front|back keeps the level ladder monotone).
- #6 case_type_drift (sim-driven oracle): drift_case_types +
  _run_case_type_drift_levels, reuses synthetic_case_route. Re-sorts a fraction
  of case_type tags by arrival time, global marginal fixed. Both case_type and
  activity_type fire (case_type firing is the temporal-drift signature vs
  label_swap).

Wiring: dispatch in _prepare_params_for_level / run_pipeline, DatasetSpec entries
(synthetic_parallel_auto, synthetic_linear_chain), CLI choices + --load-direction.
17 new unit tests; full non-e2e suite 233 passed.

Docs: PAPER_SCENARIOS.md (table + build status) and standalone
EXPERIMENT_SCENARIOS.md (table + plain-English scenario descriptions).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fj2DDhAhygixvTfJm4Qjpo
@PowerMaxZ
PowerMaxZ merged commit 1df5297 into main Jul 2, 2026
2 checks passed
@PowerMaxZ
PowerMaxZ deleted the state-metrics-new-perturbations branch July 2, 2026 15:55
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