@@ -1118,24 +1118,42 @@ <h3>All Scripts — <code>package.json</code></h3>
11181118 < div class ="port-table ">
11191119 < table >
11201120 < tr > < th > Command</ th > < th > What it does</ th > </ tr >
1121+ < tr > < td colspan ="2 "> < strong > Development</ strong > </ td > </ tr >
11211122 < tr > < td > < code > pnpm dev</ code > </ td > < td > Dev server with hot reload</ td > </ tr >
1123+ < tr > < td > < code > pnpm dev:website</ code > </ td > < td > Dev server on port 3000</ td > </ tr >
1124+ < tr > < td > < code > pnpm dev:api</ code > </ td > < td > Dev server on port 3001</ td > </ tr >
1125+ < tr > < td > < code > pnpm dev:dashboard</ code > </ td > < td > Dev server on port 3002</ td > </ tr >
11221126 < tr > < td > < code > pnpm build</ code > </ td > < td > Type-check + compile TypeScript</ td > </ tr >
11231127 < tr > < td > < code > pnpm start</ code > </ td > < td > Run production build</ td > </ tr >
1128+ < tr > < td > < code > pnpm typecheck</ code > </ td > < td > TypeScript check only (no emit)</ td > </ tr >
1129+ < tr > < td > < code > pnpm lint</ code > </ td > < td > Same as typecheck</ td > </ tr >
1130+ < tr > < td colspan ="2 "> < strong > Testing</ strong > </ td > </ tr >
11241131 < tr > < td > < code > pnpm test</ code > </ td > < td > Run ALL tests (unit + E2E)</ td > </ tr >
11251132 < tr > < td > < code > pnpm test:unit</ code > </ td > < td > Unit/integration tests (Vitest)</ td > </ tr >
11261133 < tr > < td > < code > pnpm test:unit:watch</ code > </ td > < td > Unit tests in watch mode</ td > </ tr >
11271134 < tr > < td > < code > pnpm test:coverage</ code > </ td > < td > Unit tests with coverage report</ td > </ tr >
11281135 < tr > < td > < code > pnpm test:e2e</ code > </ td > < td > E2E tests (kills ports → spawns servers → Playwright)</ td > </ tr >
11291136 < tr > < td > < code > pnpm test:e2e:headed</ code > </ td > < td > E2E with visible browser</ td > </ tr >
11301137 < tr > < td > < code > pnpm test:e2e:ui</ code > </ td > < td > E2E with Playwright UI mode</ td > </ tr >
1131- < tr > < td > < code > pnpm typecheck</ code > </ td > < td > TypeScript check only</ td > </ tr >
1138+ < tr > < td > < code > pnpm test:e2e:chromium</ code > </ td > < td > E2E on Chromium only (fast)</ td > </ tr >
1139+ < tr > < td > < code > pnpm test:e2e:report</ code > </ td > < td > Open last Playwright HTML report</ td > </ tr >
1140+ < tr > < td > < code > pnpm test:kill-ports</ code > </ td > < td > Kill processes on test ports (4000, 4010, 4020)</ td > </ tr >
1141+ < tr > < td colspan ="2 "> < strong > Test Servers</ strong > </ td > </ tr >
1142+ < tr > < td > < code > pnpm dev:test:website</ code > </ td > < td > Test server on port 4000</ td > </ tr >
1143+ < tr > < td > < code > pnpm dev:test:api</ code > </ td > < td > Test server on port 4010</ td > </ tr >
1144+ < tr > < td > < code > pnpm dev:test:dashboard</ code > </ td > < td > Test server on port 4020</ td > </ tr >
1145+ < tr > < td colspan ="2 "> < strong > Database</ strong > </ td > </ tr >
11321146 < tr > < td > < code > pnpm db:query <name></ code > </ td > < td > Run a dev/test database query</ td > </ tr >
11331147 < tr > < td > < code > pnpm db:query:list</ code > </ td > < td > List all registered queries</ td > </ tr >
1148+ < tr > < td colspan ="2 "> < strong > Content</ strong > </ td > </ tr >
11341149 < tr > < td > < code > pnpm content:build</ code > </ td > < td > Build all published MD → HTML</ td > </ tr >
1150+ < tr > < td > < code > pnpm content:build:id <id></ code > </ td > < td > Build a single article by ID</ td > </ tr >
11351151 < tr > < td > < code > pnpm content:list</ code > </ td > < td > List all articles</ td > </ tr >
11361152 < tr > < td > < code > pnpm content:dry-run</ code > </ td > < td > Preview what would build</ td > </ tr >
1153+ < tr > < td colspan ="2 "> < strong > Monitoring & Docker</ strong > </ td > </ tr >
11371154 < tr > < td > < code > pnpm ai:monitor</ code > </ td > < td > Live AI activity monitor (run in separate terminal)</ td > </ tr >
11381155 < tr > < td > < code > pnpm docker:optimize</ code > </ td > < td > Audit Dockerfile (use < code > /optimize-docker</ code > in Claude)</ td > </ tr >
1156+ < tr > < td colspan ="2 "> < strong > Utility</ strong > </ td > </ tr >
11391157 < tr > < td > < code > pnpm clean</ code > </ td > < td > Remove dist/, coverage/, test-results/</ td > </ tr >
11401158 </ table >
11411159 </ div >
0 commit comments