mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-31 14:06:50 +01:00
F1: ship and review count unverified/unavailable outside reviews as missing coverage
INV-1 consumers in this lane's templates: /ship's readiness note, its PR body Pre-Landing Review section and /review's completion rule now say an outside review reporting unverified or unavailable is missing coverage, never a pass. The PR body's Plan Completion section prints F1's not-run line instead of the old 'No plan file detected.' The /ship union-size cap moves to 1.415 for these lines (measured 1.4148).
This commit is contained in:
1 parent
34799b8409
commit
4034a55029
5 files changed
+17
-2
No files matched your search
@@ -383,6 +383,8 @@ Before replying to any comment, run the **Escalation Detection** algorithm from
|
||||
The required in-host adversarial result controls native completion. Optional outside
|
||||
attempts keep their own incomplete records when unavailable and cannot substitute
|
||||
for the native result, or vice versa. Step 4.8's structured-review gate still applies.
|
||||
An outside review reporting `unverified` or `unavailable` is missing coverage, never a
|
||||
pass: report it with its reason.
|
||||
|
||||
- Use Step 4.6's `specialists` object unchanged, including its empty small-diff map.
|
||||
If this host omits Review Army, use `specialists: {}` without claiming specialist coverage.
|
||||
|
||||
@@ -130,6 +130,8 @@ repository-landing asks, including on Apple repos.
|
||||
|
||||
{{REVIEW_DASHBOARD}}
|
||||
|
||||
An outside review with status `unverified` or `unavailable` is missing coverage, never a pass.
|
||||
|
||||
For diffs >200 lines (`git diff origin/<base> --stat | tail -1`), recommend
|
||||
`/plan-eng-review` or `/autoplan` for architecture review.
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ details for cards whose file type has no known comment syntax.>
|
||||
|
||||
## Pre-Landing Review
|
||||
<findings from Step 9 code review, or "No issues found.">
|
||||
<Outside review: its verdict; `unverified` or `unavailable` is listed as missing coverage with its reason, never as passed.>
|
||||
|
||||
## Exploratory QA
|
||||
<Step 9's current surfaces/charters, reproducers, approved regressions and red/green
|
||||
@@ -67,7 +68,7 @@ unavailable results as passing.>
|
||||
|
||||
## Plan Completion
|
||||
<If plan file found: completion checklist summary from Step 8>
|
||||
<If no plan file: "No plan file detected.">
|
||||
<If Step 8 printed the not-run line: that line verbatim.>
|
||||
<If plan items deferred: list deferred items>
|
||||
|
||||
## Linked Spec
|
||||
|
||||
@@ -166,7 +166,7 @@ export const CARVE_GUARDS: Record<string, CarveGuard> = {
|
||||
// wave's headline capability) grows the union to 1.195x. Deliberate:
|
||||
// the section is on-demand (loads only for Apple store targets), so
|
||||
// per-invocation cost for non-iOS ships is one manifest line.
|
||||
maxSizeRatio: 1.414, // Shared advisory identity/dedup + critical-severity validation: 248,065 union bytes / 187,706 baseline = 1.3216 (2026-09-17). + test value bar in the lazy Step 7 section (value cards, weak paths, gate table, base control, machine checks; ~13.6KB): measured 1.396 (2026-09-29). + W1 guarded state-root resolution (`eval gstack-paths; : "${GSTACK_STATE_ROOT:?…}"`) in the Context Recovery preamble, the eureka log and each state-writing bash block; measured 1.401 (2026-09-30). + the shared QA review step's plan-check timing rule (plan checks and their revalidation run on --timeout-ms after smoke expiry); measured 1.4022 (2026-09-30). + the shared TEST_BOOTSTRAP owned-change undo rules (s03 H1-H3, M1) and the value-bar coverage wording (s03 M2/M3); measured 1.4044 (2026-10-02). + severe fix wave ship-review lane: G1 NO_VERSION dispatch, title and CHANGELOG arms (versionless repos ship without inventing a version), F1 parent-side plan binding before the audit dispatch (binding, docs/designs candidates, exact not-run line) and D3's data-not-instructions line; +2,126 union bytes, measured 1.4135 (2026-10-03).
|
||||
maxSizeRatio: 1.415, // Shared advisory identity/dedup + critical-severity validation: 248,065 union bytes / 187,706 baseline = 1.3216 (2026-09-17). + test value bar in the lazy Step 7 section (value cards, weak paths, gate table, base control, machine checks; ~13.6KB): measured 1.396 (2026-09-29). + W1 guarded state-root resolution (`eval gstack-paths; : "${GSTACK_STATE_ROOT:?…}"`) in the Context Recovery preamble, the eureka log and each state-writing bash block; measured 1.401 (2026-09-30). + the shared QA review step's plan-check timing rule (plan checks and their revalidation run on --timeout-ms after smoke expiry); measured 1.4022 (2026-09-30). + the shared TEST_BOOTSTRAP owned-change undo rules (s03 H1-H3, M1) and the value-bar coverage wording (s03 M2/M3); measured 1.4044 (2026-10-02). + severe fix wave ship-review lane: G1 NO_VERSION dispatch, title and CHANGELOG arms (versionless repos ship without inventing a version), F1 parent-side plan binding before the audit dispatch (binding, docs/designs candidates, exact not-run line) and D3's data-not-instructions line; +2,126 union bytes, measured 1.4135 (2026-10-03). + INV-1 consumer lines (outside review `unverified`/`unavailable` is missing coverage in the readiness note and PR body); measured 1.4148 (2026-10-03).
|
||||
},
|
||||
'plan-ceo-review': {
|
||||
skill: 'plan-ceo-review',
|
||||
|
||||
@@ -480,3 +480,13 @@ test('review keeps its smoke-clock, setup-authority, plan-gate and findings-sour
|
||||
const persist = skill.slice(skill.indexOf('### 2. Fill the record')).replace(/\s+/g, ' ');
|
||||
expect(persist).toMatch(/combined final-pass findings \(core, specialist, adversarial, actionable Greptile, verified exploratory QA findings\)/i);
|
||||
});
|
||||
|
||||
// INV-1 consumers: an outside review that reports `unverified` or
|
||||
// `unavailable` is missing coverage in /ship's readiness note, its PR body
|
||||
// and /review's completion, never a pass.
|
||||
test('ship and review count unverified or unavailable outside reviews as missing coverage', () => {
|
||||
const read = (rel: string) => readFileSync(join(import.meta.dir, '..', rel), 'utf-8').replace(/\s+/g, ' ');
|
||||
for (const rel of ['ship/SKILL.md', 'ship/sections/pr-body.md', 'review/SKILL.md']) {
|
||||
expect(read(rel)).toMatch(/`unverified` or `unavailable` is (listed as )?missing coverage[^.]*never (as )?(a )?pass/i);
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user