mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-05 02:47:17 +02:00
v1.91.7.0 feat: add functional QA and pre-publication docs checks (#2983)
* feat: add surface-aware exploratory QA and ship documentation gates * test: preserve delegated QA setup authority after main integration * fix(qa): clarify exploration order and preserve report artifacts * test(qa): follow the shared setup reference directly * refactor(ship): make verification and recovery routes explicit * test(ship): align evidence and review guards with explicit routes * fix(workflows): clarify ship recovery and functional QA evidence * fix(workflows): clarify approval recovery and full QA coverage * refactor(workflows): order review transactions and clarify ship state * fix(ship): clarify final verification and fail closed at publication * fix(evals): attribute native atomic documentation writes * fix(ship): clarify recovery and documentation lifecycle guidance * fix(test): preserve observed native placeholder styling in CI * fix(codex): report watchdog timeouts without a process-exit race * Checkpoint functional QA implementation and workflow validation repairs * Fix documentation and shared-review fixture contracts * docs: clarify judge reuse and evaluation supervision * test: align review evidence and selected case contracts * test: verify append-only documentation checkpoints and recovery * fix: qualify QA workflows and CI validation repairs * fix: launch shared-libs fixture scripts on Windows * fix: qualify QA deadlines, fixture isolation, and shard cleanup * fix: preserve qualified QA and cancellation repairs * fix: enforce functional fixture authority and share strict event decoding * fix: retain free-test evidence and explain recovery * fix: reject malformed native evidence after decoder consolidation * test: use reliable capture for telemetry privacy filters * test: refresh measured quick coverage and document validation costs * Fix native fixture receipts and preserve VM validation evidence * Align negative judge controls with upstream clarity policy * Fix report-only QA preparation and public evidence handling * Clarify QA-only preparation and current-report preservation * Stream Ship quality judgments with an explicit 64k response contract * Validate compact judge reasoning locally with supported wire schema * Align functional QA fixture instructions with evidence acceptance * Bind native browser diagnostics to execution evidence and align review verdicts * Preserve native diagnostic line boundaries * Serialize functional QA evidence from native captures * Keep large QA evidence fixture payload out of Windows argv
This commit is contained in:
1 parent
65bfb0ce49
commit
dcaea52800
333 files changed
+41755
-7357
No files matched your search
@@ -154,6 +154,45 @@ describe('extractSkillBody (synthetic)', () => {
|
||||
expect(out).not.toContain('footer junk');
|
||||
});
|
||||
|
||||
test.each([
|
||||
['plain', '', '# Actual'],
|
||||
['one-space indent', '', ' # Actual'],
|
||||
['three-space indent', '', ' # Actual'],
|
||||
['tab separator', '', '#\tActual'],
|
||||
['empty title', '', '#'],
|
||||
['backtick fence', '```md\n# FALSE TITLE\n## FALSE SECTION\n```\n', '# Actual'],
|
||||
['tilde fence', '~~~md\n# FALSE TITLE\n~~~\n', '# Actual'],
|
||||
['short nested fence', '````md\n```\n# FALSE TITLE\n```\n````\n', '# Actual'],
|
||||
['mismatched fence', '~~~md\n```\n# FALSE TITLE\n~~~\n', '# Actual'],
|
||||
['nonclosing suffix', '```md\n```not-a-close\n# FALSE TITLE\n```\n', '# Actual'],
|
||||
['indented code', ' # FALSE TITLE\n', '# Actual'],
|
||||
['missing separator', '#FALSE TITLE\n', '# Actual'],
|
||||
['quoted title', '> # FALSE TITLE\n', '# Actual'],
|
||||
])('preserves a post-preamble H1 introduction: %s', (_name, decoy, title) => {
|
||||
const file = path.join(tmpDir, 'title-boundary.md');
|
||||
fs.writeFileSync(file, SYNTHETIC_SKILL.replace(
|
||||
'footer junk, last shared-preamble section\n\n',
|
||||
`footer junk, last shared-preamble section\n${decoy}${title}\nREAL INTRODUCTION\n\n`,
|
||||
));
|
||||
const out = extractSkillBody(file);
|
||||
expect(out).toBe(extractSkillBody(skillDir).replace(
|
||||
'## Step 1 — Do the thing', `${title}\nREAL INTRODUCTION\n\n## Step 1 — Do the thing`,
|
||||
));
|
||||
expect(out).not.toContain('FALSE TITLE');
|
||||
expect(out).not.toContain('footer junk');
|
||||
expect(extractSkillSections(file, ['Plan Status Footer']))
|
||||
.toContain(`${decoy}${title}\nREAL INTRODUCTION`);
|
||||
});
|
||||
|
||||
test('a post-preamble H1 and introduction are a complete body without another H2', () => {
|
||||
const file = path.join(tmpDir, 'title-only-body.md');
|
||||
fs.writeFileSync(file, SYNTHETIC_SKILL.slice(0, SYNTHETIC_SKILL.indexOf('## Step 1 — Do the thing'))
|
||||
+ '# Actual\nREAL INTRODUCTION\n');
|
||||
const out = extractSkillBody(file);
|
||||
expect(out).toContain('# Actual\nREAL INTRODUCTION');
|
||||
expect(out).not.toContain('footer junk');
|
||||
});
|
||||
|
||||
test('throws when the preamble markers are missing', () => {
|
||||
const bare = path.join(tmpDir, 'bare');
|
||||
fs.mkdirSync(bare, { recursive: true });
|
||||
@@ -321,6 +360,18 @@ describe('real-skill pins: section lists used by E2E fixtures', () => {
|
||||
});
|
||||
|
||||
describe('real-skill pins: body/head extraction used by E2E fixtures', () => {
|
||||
test.each(['qa-only', 'skillify', 'context-save', 'context-restore'])(
|
||||
'extractSkillBody(%s) preserves the complete real H1 introduction', (skill) => {
|
||||
const file = path.join(ROOT, skill, 'SKILL.md');
|
||||
const full = fs.readFileSync(file, 'utf8');
|
||||
const title = full.indexOf(`\n# /${skill}`, full.indexOf('## Plan Status Footer'));
|
||||
const nextSection = full.indexOf('\n## ', title);
|
||||
expect(title).toBeGreaterThan(0);
|
||||
expect(nextSection).toBeGreaterThan(title);
|
||||
expect(extractSkillBody(file)).toContain(full.slice(title + 1, nextSection).trimEnd());
|
||||
},
|
||||
);
|
||||
|
||||
// scrape/skillify/context-*: skill-e2e-skillify + skill-e2e-context-skills.
|
||||
// review/plan-eng-review/ship: skill-e2e-coverage-audit + skill-e2e-triage.
|
||||
const BODY_EXTRACTED_SKILLS = [
|
||||
|
||||
Reference in new issue
Block a user