build014.spec.ts
tests/build014.spec.tsThis is the retained record itself—not a chat summary. It is exposed because it materially documents the research, method, evidence, audit, production, planning or release history of The 100.
import {test,expect} from '@playwright/test';
test.describe('Build 014 legal judgment architecture',()=>{
test('default matter has supervised responsibility architecture',async({page})=>{await page.goto('/100-builds/014/a');await expect(page.getByRole('heading',{name:'SUPERVISED ARCHITECTURE'})).toBeVisible();await expect(page.getByText(/Human review/)).toContainText('Strong');await expect(page.getByText(/Inherited Build 012/)).toContainText('CONTROLLED USE');});
test('allocating strategy to AI exposes a judgment leak',async({page})=>{await page.goto('/100-builds/014/a');await page.getByRole('button',{name:'ALLOCATE STRATEGY TO AI'}).click();await expect(page.getByRole('heading',{name:'JUDGMENT LEAK'})).toBeVisible();await expect(page.getByText(/Matter strategy: consequential professional judgment is allocated/)).toBeVisible();});
test('reset exposes undefined responsibility',async({page})=>{await page.goto('/100-builds/014/a');await page.getByRole('button',{name:'RESET / START EMPTY'}).click();await expect(page.getByRole('heading',{name:'UNDEFINED RESPONSIBILITY'})).toBeVisible();await expect(page.getByText(/No matter, client, or personal data is transmitted/)).toBeVisible();});
test('exports explicit judgment map',async({page})=>{await page.goto('/100-builds/014/a');const dl=page.waitForEvent('download');await page.getByRole('button',{name:'EXPORT JUDGMENT MAP'}).click();expect((await dl).suggestedFilename()).toBe('legal-judgment-architecture.json');});
test('canonical room is active and 015 remains planned',async({page})=>{await page.goto('/100-builds/014');await expect(page.getByText('BUILD 014 / 100 · IN THE LAB')).toBeVisible();await expect(page.getByRole('link',{name:/OPEN THE TOOL/})).toHaveAttribute('href',/\/100-builds\/014\/a\/?$/);await page.goto('/100-builds/015');await expect(page.getByText('BUILD 015 / 100 · COMING NEXT')).toBeVisible();});
test('functional artifact fits 320 CSS pixels',async({page})=>{await page.setViewportSize({width:320,height:800});await page.goto('/100-builds/014/a');await expect(page.getByRole('button',{name:'EXPORT JUDGMENT MAP'})).toBeVisible();expect(await page.evaluate(()=>document.documentElement.scrollWidth>document.documentElement.clientWidth)).toBe(false);});
});
test.describe('Build 014 judgment layers',()=>{
test('answer decomposes into distinct ownership layers',async({page})=>{await page.goto('/100-builds/014/b');await page.getByRole('button',{name:/STRATEGY/}).click();await expect(page.getByRole('heading',{name:'STRATEGY'})).toBeVisible();await expect(page.getByText(/Weigh objectives, risk, cost, timing, and options/)).toBeVisible();});
test('client authority and boundary remain explicit',async({page})=>{await page.goto('/100-builds/014/b');await page.getByRole('button',{name:/CLIENT AUTHORITY/}).click();await expect(page.getByText(/Objectives and decisions allocated to the client/)).toBeVisible();await expect(page.getByText(/Allocation depends on the matter, jurisdiction/)).toBeVisible();});
});