From ebe664bfb9bc60a8fcfc7dc54b607cf1474e658b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 27 Oct 2026 22:53:07 +0000 Subject: [PATCH 1/2] Replace stale Flask instructions in AGENTS.md The injected agent guide still described a Python app, gunicorn, and unittest workflow that the Next.js repo no longer has. Point it at README.md and the Node commands CI actually runs. Co-authored-by: Michael Neeley --- AGENTS.md | 58 +++++++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 32 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 43f9764..12acf16 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,32 +1,26 @@ -# Bug Board - -Next.js App Router / TypeScript application for Vercel. Read README.md before changing integration behavior. - -## Map - -- `app/`: server-rendered dashboard pages; route handlers for OAuth, API-key metrics, Cron, CSV, and deployment controls. -- `proxy.ts` / `lib/auth.ts`: fail-closed GitHub membership gate, PKCE/session cookies, API-key validation. -- `lib/`: typed Linear/GitHub/Airflow/BigQuery/store clients, metrics, review queue, attribution, PTO, snapshots, notifications. -- `lib/refresh.ts`: ordinary Cron refreshes for fleet, metrics, and apps. -- `workflows/refresh.ts`: durable regression attribution and notifications. -- `config.yml` / `regression_overrides.yml`: existing configuration and manual attribution corrections. -- `tests/*.test.ts`: Node's test runner via tsx. `tests/*.e2e.ts`: e2e browser tests, Luna via Vercel AI Gateway. - -## Validation - -Use Node 24.8+; `npm ci`, `npm run check`, `npm test`, `npm run build`. -Then `npx playwright-core install chromium` and `npx e2e run tests/dashboard.e2e.ts --no-cache`. -Full `npx e2e run --no-cache` requires `AI_GATEWAY_API_KEY`; don't silently replace the provider or skip failed AI steps. -Local no-secrets pages must render unavailable states, not fabricate successful or zero activity. -Proof artifacts, .e2e/, .next/, local Workflow state, ad hoc service doubles, and credentials must not enter Git. The committed fake-data double is `tests/fixtures/`; keep it public-safe and extend it rather than adding another. - -## Conventions - -- Prefer native Server Components, Suspense, URL filters, and forms over client state/data fetching. -- Keep fleet/store work in Cron functions and blame work in Workflow steps. Those views only read fresh snapshots. Historical delivery windows and reviews use Next.js Data Cache. -- Extend existing YAML/types/helpers. Don't create additional team/config/route sources of truth. -- Only explicitly named team API and Cron routes escape OAuth; their handlers must authenticate. -- Keep health public; all hosted deployments and partially configured OAuth fail closed. -- Store publication is not a successful upload, observed runtime, tag, or dispatch. Preserve native-build matching and unverified/partial evidence states. -- No external deployment, Slack posting, DNS/OAuth change, or production shutdown without explicit operator authorization. -- Merging to `main` deploys to Production through Vercel's Git integration; see README's Deploys and rollback section. +# AGENTS.md + +## Cursor Cloud specific instructions + +Bug Board is the Next.js app described in `README.md`. That file is the source for architecture, routes, environment variables, auth, Cron, and deploys. + +### Running the application + +Use Node.js 24.8+ (`package.json` `engines`; CI uses Node 24). + +```bash +npm ci +npm run dev +``` + +Open `http://localhost:3000`. Without credentials, pages render explicit unavailable states. + +### Local verify + +```bash +npm run check +npm test +npm run build +``` + +`npm test` runs `tsx --test tests/*.test.ts`. `/healthz` returns `{"status":"ok"}`. From 05dab813b3f436e922ea6bbd822e028232001725 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 27 Oct 2026 22:56:46 +0000 Subject: [PATCH 2/2] Remove incorrect Data Cache guidance from AGENTS.md Historical delivery windows and production review queues read Redis Cron snapshots. Next.js Data Cache is only the fallback, and README already describes that. Drop the sentence that said otherwise. Co-authored-by: Michael Neeley --- AGENTS.md | 58 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 12acf16..495d318 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,26 +1,32 @@ -# AGENTS.md - -## Cursor Cloud specific instructions - -Bug Board is the Next.js app described in `README.md`. That file is the source for architecture, routes, environment variables, auth, Cron, and deploys. - -### Running the application - -Use Node.js 24.8+ (`package.json` `engines`; CI uses Node 24). - -```bash -npm ci -npm run dev -``` - -Open `http://localhost:3000`. Without credentials, pages render explicit unavailable states. - -### Local verify - -```bash -npm run check -npm test -npm run build -``` - -`npm test` runs `tsx --test tests/*.test.ts`. `/healthz` returns `{"status":"ok"}`. +# Bug Board + +Next.js App Router / TypeScript application for Vercel. Read README.md before changing integration behavior. + +## Map + +- `app/`: server-rendered dashboard pages; route handlers for OAuth, API-key metrics, Cron, CSV, and deployment controls. +- `proxy.ts` / `lib/auth.ts`: fail-closed GitHub membership gate, PKCE/session cookies, API-key validation. +- `lib/`: typed Linear/GitHub/Airflow/BigQuery/store clients, metrics, review queue, attribution, PTO, snapshots, notifications. +- `lib/refresh.ts`: ordinary Cron refreshes for fleet, metrics, and apps. +- `workflows/refresh.ts`: durable regression attribution and notifications. +- `config.yml` / `regression_overrides.yml`: existing configuration and manual attribution corrections. +- `tests/*.test.ts`: Node's test runner via tsx. `tests/*.e2e.ts`: e2e browser tests, Luna via Vercel AI Gateway. + +## Validation + +Use Node 24.8+; `npm ci`, `npm run check`, `npm test`, `npm run build`. +Then `npx playwright-core install chromium` and `npx e2e run tests/dashboard.e2e.ts --no-cache`. +Full `npx e2e run --no-cache` requires `AI_GATEWAY_API_KEY`; don't silently replace the provider or skip failed AI steps. +Local no-secrets pages must render unavailable states, not fabricate successful or zero activity. +Proof artifacts, .e2e/, .next/, local Workflow state, ad hoc service doubles, and credentials must not enter Git. The committed fake-data double is `tests/fixtures/`; keep it public-safe and extend it rather than adding another. + +## Conventions + +- Prefer native Server Components, Suspense, URL filters, and forms over client state/data fetching. +- Keep fleet/store work in Cron functions and blame work in Workflow steps. Those views only read fresh snapshots. +- Extend existing YAML/types/helpers. Don't create additional team/config/route sources of truth. +- Only explicitly named team API and Cron routes escape OAuth; their handlers must authenticate. +- Keep health public; all hosted deployments and partially configured OAuth fail closed. +- Store publication is not a successful upload, observed runtime, tag, or dispatch. Preserve native-build matching and unverified/partial evidence states. +- No external deployment, Slack posting, DNS/OAuth change, or production shutdown without explicit operator authorization. +- Merging to `main` deploys to Production through Vercel's Git integration; see README's Deploys and rollback section.