Skip to content

test(generation): add structural reliability battery - #314

Merged
graphite-app[bot] merged 1 commit into
mainfrom
gen/gen-eval-battery
Sep 1, 2026
Merged

test(generation): add structural reliability battery#314
graphite-app[bot] merged 1 commit into
mainfrom
gen/gen-eval-battery

Conversation

@anandpant

@anandpant anandpant commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Scope

  • Register eight reliability scenarios spanning production regressions, interacting loops, near-limit flowcharts, and deep 25-35 topic mindmaps.
  • Expose them through the eval-harness generation registry.
  • Add an Effect/jiti endpoint battery that sends fresh generation requests, repeats every scenario at least three times, supports targeted scenario runs, and derives its 302.25-second outer timeout from the complete generation-policy budget plus a 30-second margin.
  • Keep scenario prompts organic by removing generic self-loop policy text; system prompts and prioritized repair now own that invariant. The manuscript scenario only adds the business requirement that author revision is followed by a separate resubmission process.
  • Model required path waypoints as alternative-label groups and require every group on the same qualifying path. Expense rejection must cycle through both expense submission and resubmission; manuscript revision must cycle through both author revision and resubmission; manuscript ethics must cycle through both ethics investigation and editorial triage.
  • Bind every required branch label to an expected source-node label group. In particular, only finance approval/audit can satisfy the expense approved terminal assertion; a manager's approved branch cannot.
  • Stop a required-cycle search the first time it returns to its branch source without collecting every waypoint group, preventing adjacent cycles from being stitched into one false qualifying cycle.
  • Extended renderer scope: add local exterior routing lanes so same-rank branch arrows do not cross nodes in intervening ranks during Excalidraw export.

Proof

  • pnpm test:tools - 93/93 passed at fa0d38d.
  • pnpm nx run-many -t typecheck,test,build --skip-nx-cache - passed at b4d1487.
  • pnpm nx build-storybook diagram-ui --skip-nx-cache - passed at b4d1487.
  • Added regressions proving that a cycle missing expense resubmission fails, adjacent short and resubmission cycles cannot be stitched into one qualifying path, an ethics cycle missing Editorial Triage fails, and a manager-sourced approved branch cannot satisfy the finance terminal requirement, alongside inverse-semantics, one-cycle/two-decision, timeout-budget, organic-scenario, registry, selection, structural-fidelity, and reproduced ecommerce export-route coverage.
  • Corrected the structural-fidelity fixture so every padding edge references an existing node while preserving its intended cycle/path/count assertions; refreshed required CI passed at fa0d38d in workflow run 33560282033.
  • Runtime preview deployment passed at b4d14878428c in workflow run 33558720216; the only subsequent change at fa0d38d is the test-fixture correction.
  • Ecommerce returns 18-step scenario: 8/8 passed (100%) against the real preview with the scenario-level self-loop instruction removed.
  • Expense resubmission scenario: 8/8 passed (100%) against the real preview.
  • Full fresh preview battery: 24/24 passed (100%, three runs across all eight scenarios) against https://sketchi-studio-pr-314.dimethyl.workers.dev/api/v1/generate.

This is PR 6 of 6 in the generation-reliability stack.

anandpant commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator Author

How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge - adds this PR to the back of the merge queue
  • fast - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Sketchi Icons Preview

Status: deleted

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Sketchi Web Preview

Status: deleted

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Sketchi Eval Harness Preview

Status: deleted

  • Surface: internal preview; not linked from public navigation
  • Project: eval-harness
  • Worker identity: sketchi-playground
  • Route policy: internal eval harness; no public product domain
  • Preview Worker: sketchi-playground-pr-314
  • Commit: c9e0c3627b29
  • Workflow run: https://github.com/shpitdev/sketchi/actions/runs/33561643406

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Sketchi Excalidraw Workspace Preview

Status: deleted

  • Surface: internal preview; not linked from public navigation
  • Project: excalidraw
  • Worker identity: sketchi-excalidraw
  • Route policy: internal canvas workspace; no public product domain
  • Preview Worker: sketchi-excalidraw-pr-314
  • Commit: c9e0c3627b29
  • Workflow run: https://github.com/shpitdev/sketchi/actions/runs/33561643406

Preview Worker cleanup has completed.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Sketchi Playground / Studio Preview

Status: deleted

  • Surface: public product preview
  • Project: playground
  • Worker identity: sketchi-studio
  • Route policy: playground.sketchi.app product surface; authenticated Studio remains unexposed
  • Preview Worker: sketchi-studio-pr-314
  • Commit: c9e0c3627b29
  • Workflow run: https://github.com/shpitdev/sketchi/actions/runs/33561643406

Preview Worker cleanup has completed.

Comment thread tools/generation-reliability-probe.test.ts
@anandpant
anandpant force-pushed the gen/gen-eval-battery branch from d9077a4 to d4dce41 Compare September 1, 2026 19:05
@anandpant
anandpant force-pushed the gen/gen-eval-battery branch from d4dce41 to 2f7902f Compare September 1, 2026 19:27
@anandpant
anandpant force-pushed the gen/gen-eval-battery branch from 2f7902f to 1d2c2ce Compare September 1, 2026 19:31
@anandpant
anandpant force-pushed the gen/gen-eval-battery branch from 1d2c2ce to ad1ab01 Compare September 1, 2026 19:42
@graphite-app

graphite-app Bot commented Sep 1, 2026

Copy link
Copy Markdown

Merge activity

## Scope

- Register eight reliability scenarios spanning production regressions, interacting loops, near-limit flowcharts, and deep 25-35 topic mindmaps.
- Expose them through the eval-harness generation registry.
- Add an Effect/jiti endpoint battery that sends fresh generation requests, repeats every scenario at least three times, supports targeted scenario runs, and derives its 302.25-second outer timeout from the complete generation-policy budget plus a 30-second margin.
- Keep scenario prompts organic by removing generic self-loop policy text; system prompts and prioritized repair now own that invariant. The manuscript scenario only adds the business requirement that author revision is followed by a separate resubmission process.
- Model required path waypoints as alternative-label groups and require every group on the same qualifying path. Expense rejection must cycle through both expense submission and resubmission; manuscript revision must cycle through both author revision and resubmission; manuscript ethics must cycle through both ethics investigation and editorial triage.
- Bind every required branch label to an expected source-node label group. In particular, only finance approval/audit can satisfy the expense `approved` terminal assertion; a manager's approved branch cannot.
- Stop a required-cycle search the first time it returns to its branch source without collecting every waypoint group, preventing adjacent cycles from being stitched into one false qualifying cycle.
- **Extended renderer scope:** add local exterior routing lanes so same-rank branch arrows do not cross nodes in intervening ranks during Excalidraw export.

## Proof

- `pnpm test:tools` - 93/93 passed at `fa0d38d`.
- `pnpm nx run-many -t typecheck,test,build --skip-nx-cache` - passed at `b4d1487`.
- `pnpm nx build-storybook diagram-ui --skip-nx-cache` - passed at `b4d1487`.
- Added regressions proving that a cycle missing expense resubmission fails, adjacent short and resubmission cycles cannot be stitched into one qualifying path, an ethics cycle missing Editorial Triage fails, and a manager-sourced `approved` branch cannot satisfy the finance terminal requirement, alongside inverse-semantics, one-cycle/two-decision, timeout-budget, organic-scenario, registry, selection, structural-fidelity, and reproduced ecommerce export-route coverage.
- Corrected the structural-fidelity fixture so every padding edge references an existing node while preserving its intended cycle/path/count assertions; refreshed required CI passed at `fa0d38d` in workflow run `33560282033`.
- Runtime preview deployment passed at `b4d14878428c` in workflow run `33558720216`; the only subsequent change at `fa0d38d` is the test-fixture correction.
- Ecommerce returns 18-step scenario: 8/8 passed (100%) against the real preview with the scenario-level self-loop instruction removed.
- Expense resubmission scenario: 8/8 passed (100%) against the real preview.
- Full fresh preview battery: 24/24 passed (100%, three runs across all eight scenarios) against `https://sketchi-studio-pr-314.dimethyl.workers.dev/api/v1/generate`.

This is PR 6 of 6 in the generation-reliability stack.
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