mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-10 02:30:39 +01:00
fix: skill-specific Aside research queries travel as prompt files
investigate, office-hours, plan-ceo-review, review, plan-eng-review,
design-consultation Phase 2, the shared test bootstrap (B2) and QA's test
bootstrap each carried their own _aside_exec call with the model-filled query
inside a double-quoted argument. Skills that already carry the Web research
block now give only the prompt-file text and use that block to create, write
and send it; design-consultation, the shared bootstrap and QA create the file
and send it with the new {{ASIDE_RESEARCH_SEND}} resolver, which is the same
send block the research section uses (read-only sentence stays in the shell).
aside-driver's B2 pin and qa-browser-preservation's bootstrap contract move
from the inline call to the prompt file and the shared send resolver.
Co-authored-by: dgrant <dgrant@users.noreply.github.com>
This commit is contained in:
1 parent
f14e2f5b19
commit
e652ae4ae9
21 files changed
+104
-65
No files matched your search
@@ -17,7 +17,7 @@ import { spawnSync } from 'child_process';
|
||||
import * as fs from 'fs';
|
||||
import * as os from 'os';
|
||||
import * as path from 'path';
|
||||
import { generateAsideSetup, generateAsideCookbook, generateAsideResearch, asideExecPrelude, ASIDE_LOCAL_HOST_RULE } from '../scripts/resolvers/aside';
|
||||
import { generateAsideSetup, generateAsideCookbook, generateAsideResearch, asideExecPrelude, asideResearchSend, ASIDE_LOCAL_HOST_RULE } from '../scripts/resolvers/aside';
|
||||
import { generateTestBootstrap } from '../scripts/resolvers/testing';
|
||||
import { generateBrowseFallback, generateBrowseSetup, generateUntrustedContentWarning } from '../scripts/resolvers/browse';
|
||||
import { RESOLVERS } from '../scripts/resolvers/index';
|
||||
@@ -422,8 +422,11 @@ describe('web research ({{ASIDE_RESEARCH}})', () => {
|
||||
|
||||
test('the test-bootstrap research step (B2) routes through the same _aside_exec prelude', () => {
|
||||
const bootstrap = generateTestBootstrap(ctx);
|
||||
expect(bootstrap).toContain(asideExecPrelude(ctx) + '\n_aside_exec "Search the web for the best');
|
||||
expect(bootstrap).toContain('_aside_exec "Search the web for the best [runtime] test framework');
|
||||
// CEO-12: the query travels in an agent-written file and goes out through the shared research send block.
|
||||
expect(bootstrap).toContain('PROMPT_FILE=$(mktemp "$_GT/aside-prompt.XXXXXX")');
|
||||
expect(bootstrap).toContain('Prompt file text: `the best [runtime] test framework');
|
||||
expect(bootstrap).toContain('```bash\n' + asideResearchSend(ctx) + '\n```');
|
||||
expect(asideResearchSend(ctx).startsWith(asideExecPrelude(ctx) + '\n')).toBe(true);
|
||||
expect(bootstrap).not.toMatch(BARE_ASIDE_EXEC);
|
||||
// Same degradation ladder: WebSearch when the host has it, built-in table last.
|
||||
});
|
||||
|
||||
@@ -75,7 +75,7 @@ describe('compact QA bootstrap preserves native detection', () => {
|
||||
'Never silently delete a valid red regression', '/qa\'s diagnosis/fix gate', 'First real tests',
|
||||
'min 1, max 5', 'full verified command', '.github/workflows/test.yml', 'push + pull_request',
|
||||
'ubuntu-latest', 'manual test-step addition', 'never overwrite TESTING.md', '100% test coverage',
|
||||
'BOTH branches', 'unrelated staged edits', '{{ASIDE_EXEC_PRELUDE}}', 'WebSearch',
|
||||
'BOTH branches', 'unrelated staged edits', '{{FREE_TEXT_FILE:PROMPT_FILE=aside-prompt}}', '{{ASIDE_RESEARCH_SEND}}', 'WebSearch',
|
||||
]) expect(bootstrap).toContain(contract);
|
||||
expect(bootstrap).not.toContain('git checkout --');
|
||||
expect(bootstrap).not.toContain('delete silently');
|
||||
|
||||
Reference in new issue
Block a user