mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-05 16:34:00 +01:00
fix: pre-landing review fixes
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
dd81e4c8e8
commit
1fa45de754
2 files changed
+14
-3
No files matched your search
+3
-3
@@ -12,12 +12,12 @@
|
||||
|
||||
### Tests
|
||||
- `test/honesty-kernel.test.ts` no longer requires the Step 16 pointer. It now rejects any `Step <n>` cross-reference in the kernel, which every skill renders.
|
||||
- `test/resolver-ask-user-format.test.ts` checks across files that the unattended pointer names `unattended-session` and that gstack-skill-start really emits a block with that id, so renaming either side fails the test. It also checks that the failure fallback's `unattended` branch names destructive or irreversible options as pending. `test/auq-error-fallback-hook.test.ts` asserts the hook's unattended directive no longer says "Unattended session block".
|
||||
- `test/resolver-ask-user-format.test.ts` checks across files that the unattended pointer names `unattended-session` and that gstack-skill-start really emits a block with that id, so renaming either side fails the test. It also checks that the failure fallback's `unattended` branch names destructive or irreversible options as pending, and that the printed `unattended-session` block and the hook's unattended directive say the same. `test/auq-error-fallback-hook.test.ts` asserts the hook's unattended directive no longer says "Unattended session block".
|
||||
- `test/plan-reality.test.ts` checks that the reality-rows block, generated for each of the eng, ceo and devex phases, says its `gstack-plan-reality check` line prints `PLAN_REALITY`.
|
||||
- 89 pins in `test/fixtures/skill-md-size-allowlist.json` were moved to their new exact sizes. 78 went down by 3 characters. The 11 non-Claude plan-eng-review pins went up by 21: the unattended failure-fallback branch regains the destructive/irreversible carve-out that the removed pointer used to supply (about 21 chars). The /ship goldens were regenerated.
|
||||
- 89 pins in `test/fixtures/skill-md-size-allowlist.json` were moved to their new exact sizes. Every pinned skill gets the same net -3 characters, and that already includes 36 for the destructive/irreversible carve-out the unattended failure-fallback branch regains (the removed pointer used to supply it). So 78 pins went down by 3. The 11 non-Claude plan-eng-review pins also inline the 24-character "prints `PLAN_REALITY`" pointer from `review-sections.md`, so they went up by 21; without the carve-out they would have gone down by 15. The /ship goldens were regenerated.
|
||||
|
||||
### Gate integrity
|
||||
- No threshold, rubric, trial count, case kind or judge prompt changed. 78 size pins went down; 11 went up by 21 characters for the restored carve-out above.
|
||||
- No threshold, rubric, trial count, case kind or judge prompt changed. 78 size pins went down by 3; 11 went up by 21, because the restored 36-character carve-out outweighs what those pins had shed (see Tests).
|
||||
|
||||
## [1.91.230.0] - 2026-10-26
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import * as path from 'path';
|
||||
import type { TemplateContext } from '../scripts/resolvers/types';
|
||||
import { HOST_PATHS } from '../scripts/resolvers/types';
|
||||
import { generateAskUserFormat } from '../scripts/resolvers/preamble/generate-ask-user-format';
|
||||
import { directiveFor } from '../hosts/claude/hooks/auq-error-fallback-hook.ts';
|
||||
import { expectMentions, expectTokens } from './helpers/prompt-structure';
|
||||
|
||||
function makeCtx(): TemplateContext {
|
||||
@@ -379,3 +380,13 @@ describe('CQ3 — cross-file invariant: the unattended pointer names a block gst
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
describe('CQ4 — every unattended pending set names destructive or irreversible options', () => {
|
||||
test('the printed unattended-session block and the hook directive agree with the resolver fallback', () => {
|
||||
const startSrc = fs.readFileSync(path.resolve(__dirname, '..', 'bin', 'gstack-skill-start'), 'utf-8');
|
||||
const block = /_emit_block unattended-session <<EOI\n([\s\S]*?)\nEOI/.exec(startSrc)?.[1] ?? '';
|
||||
expect(block, 'gstack-skill-start must emit the unattended-session block').not.toBe('');
|
||||
expectMentions(block, [['destructive', 'irreversible', 'pending']], 'unattended-session block');
|
||||
expectMentions(directiveFor('unattended'), [['destructive', 'irreversible', 'pending']], 'hook unattended directive');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user