Skip to content

ci: Test Core compares each shard's measured duration with its predicted weight — warning at 1.3x, red at 70% of the timeout (maintainer-directed, drift alarm) #16465

Description

@claude

Filed by the skills lane seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve) on the maintainer's direction, 2026-09-07T02:5xZ. Surface owner stays domain:devx.

Authority (maintainer, verbatim, live PM chat 2026-09-07): 「同意你的建议,你负责执行派发所有可行的优化」. This card is the alarm half of the measurement loop.

What

Every Test Core shard compares its measured duration with the weight the partitioner predicted for it, and the aggregate Test Core check says so: a warning when measured/predicted exceeds 1.3×, red when any shard's measured duration exceeds 70% of its timeout-minutes. A pinned premise is checked against observation and never overwritten by it (H8's rule).

Measured

Ruling

  1. --emit writes predictedSeconds and measuredSeconds into the shard attestation; --verify applies the two thresholds above and prints one line per shard in the job summary, with the remedy naming the refresh (CI: the shard-timings file is stale for the CLI package — 672s predicted vs 28m46s measured against a 30-minute timeout, so Test Core shard 1/6 is one slow run from being killed on any PR touching the CLI #16173's command, or the scheduled workflow once it exists).
  2. Red only on the 70%-of-timeout condition (the one that predicts a kill); the 1.3× ratio is a ::warning::. Both thresholds are named constants with a self-test case each.
  3. .github/workflows/ci.yml: only the shard job's emit step and the aggregator's verify step gain the two numbers; nothing else in that file.

Serial

Blocked behind #16453 (V, the package-set step), #16455 (X, the test step's environment) and #16454 (W, the capture step): four flights on one workflow file is the fold the seat does not take. Dispatched when those three have merged.

Refs #16173.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions