mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-03 01:46:55 +02:00
test: move the full office-hours workflow to marathon; add a periodic design-draft checkpoint
The full startup workflow runs 1–3 real spec-review rounds (~280s each) and hit its 1200s capture in run 36385945043 at finalize. Review depth is the product's loop, so the case cannot fit a blocking lane without cutting rounds. It is now marathon tier with every assertion unchanged. skill-e2e-office-hours-design-draft.test.ts (periodic) runs the same fixed interview only through the Write that creates the design (269s in that run) and applies the full validator's design-draft checks, the required section reads and the launch/foreign-skill-read guards. validateOfficeHoursDesignDraft is extracted from validateOfficeHoursCompletion, which still applies it. Selection: office-hours-design-draft is registered periodic; the marathon-only file is already excluded from the gate and periodic plans by the B5 planner rule. Tier-alignment regexes and the valid-tier check accept 'marathon'. A type-only cast in plan-scope-selection.test.ts removes a diagnostic whose union print order made the ratchet identity unstable; baseline tightened.
This commit is contained in:
1 parent
a41cdb7d7d
commit
4973f96d98
12 files changed
+180
-57
No files matched your search
@@ -1,7 +1,12 @@
|
||||
/**
|
||||
* Full office-hours startup workflow, isolated from the generic carve shard.
|
||||
* Office-hours startup workflow, isolated from the generic carve shard.
|
||||
* A fixed interview exercises real opinion/design/review/approval/handoff work.
|
||||
* Free completion regressions live in office-hours-completion.test.ts.
|
||||
*
|
||||
* This full start-to-finish workflow (1–3 real spec-review rounds, ~20 min) is
|
||||
* marathon tier. skill-e2e-office-hours-design-draft.test.ts runs the same
|
||||
* interview only through the checkpoint that creates the design (~5 min) in
|
||||
* the periodic lane.
|
||||
*/
|
||||
import { test, expect } from 'bun:test';
|
||||
import * as fs from 'node:fs';
|
||||
@@ -11,7 +16,7 @@ import { setupSkillDir, skillFromWorktree, captureSectionReads } from './helpers
|
||||
import { CARVE_GUARDS } from './helpers/carve-guards';
|
||||
import { validateOfficeHoursCompletion, validateOfficeHoursReviewerHandoffs, validateOfficeHoursReviewArtifacts, validateOfficeHoursReviewPreservation } from './helpers/office-hours-completion';
|
||||
|
||||
const describeE2E = describeE2ETier('periodic');
|
||||
const describeMarathon = describeE2ETier('marathon');
|
||||
const runId = `office-hours-section-loading-${process.env.EVALS_RUN_ID ?? 'local'}`;
|
||||
|
||||
// Full startup diagnosis + outside opinion + up to three spec reviews exceeds
|
||||
@@ -25,7 +30,7 @@ const runId = `office-hours-section-loading-${process.env.EVALS_RUN_ID ?? 'local
|
||||
const OFFICE_HOURS_CAPTURE_MS = 1_200_000;
|
||||
const OFFICE_HOURS_TEST_MS = 1_260_000;
|
||||
|
||||
describeE2E('/office-hours full section-loading workflow (periodic)', () => {
|
||||
describeMarathon('/office-hours full section-loading workflow (marathon)', () => {
|
||||
test('a real startup review reads its sections and completes the approved design and handoff', async () => {
|
||||
const guard = CARVE_GUARDS['office-hours'];
|
||||
const { skillMd, sectionsFrom } = skillFromWorktree(guard.skill);
|
||||
|
||||
Reference in new issue
Block a user