Skip to content

Add ASSERT website + Primer-style docs subsite - #144

Merged
jakepresent merged 8 commits into
mainfrom
assert-gh-page
May 30, 2026
Merged

Add ASSERT website + Primer-style docs subsite#144
jakepresent merged 8 commits into
mainfrom
assert-gh-page

Conversation

@sooyeonni

Copy link
Copy Markdown
Collaborator

Summary

Adds the Next.js landing page and Primer-style documentation subsite under website/, plus markdown source under docs/. Deploys to GitHub Pages via the existing .github/workflows/deploy-pages.yml workflow on push to main.

What's included

  • website/ — Next.js 14 app with static export (output: "export", basePath: "/ASSERT")
    • Landing page (hero, Why ASSERT, framework support, Systematization, How it works, Resources)
    • Docs subsite at /docs rendered from markdown in docs/ (Primer-inspired sidebar, breadcrumbs, on-this-page TOC, search)
  • docs/ — markdown source (quickstart, concepts, writing-eval-specs, reading-results, targets/*, reference/cli, status-and-roadmap, travel-planner-agent-flow)
  • .github/workflows/deploy-pages.yml — build + deploy to GitHub Pages

Deployment

Verification

sooyeonni and others added 5 commits May 26, 2026 10:42
- Move assert-landing Next.js (static export) source into website/
- Update basePath from /sooyeonhwang-assert-landing to /ASSERT
- Add .github/workflows/deploy-pages.yml to build and deploy to GitHub Pages on pushes to main that touch website/
…M stat, refactor logo loop, update Systematization copy
- Bump next 14.2.17 -> 15.5.18 and eslint-config-next to match
- Add npm overrides for postcss ^8.5.10 and brace-expansion ^2.0.2
- npm audit now reports 0 vulnerabilities (was 6: 1 critical, 3 high, 2 moderate)
- Update docs/[...slug]/page.tsx params to Promise per Next 15 breaking change
- Fix typo: Antropic -> Anthropic in shieldResources
@sooyeonni

Copy link
Copy Markdown
Collaborator Author

Thanks for the review! Addressed in bb4b632:

1. Vulnerable deps (npm audit)

  • Bumped next 14.2.17 → 15.5.18 and eslint-config-next to match.
  • Added npm overrides for transitive deps that don't yet have a clean upstream fix:
  • npm audit now reports 0 vulnerabilities (was 6: 1 critical, 3 high, 2 moderate).
  • Required a small Next 15 breaking-change fix in app/docs/[...slug]/page.tsx (params is now Promise<…>); build passes (next build → 15 static routes exported).

2. Typo

  • Fixed AntropicAnthropic in app/page.tsx (shieldResources card).

3. Pages deploy failure
The previous deploy attempt on the assert-gh-page branch failed at the deploy step (build itself was green) with:

Branch "assert-gh-page" is not allowed to deploy to github-pages due to environment protection rules.

The repo's github-pages environment is configured to only allow deployments from main. That's exactly why this PR exists — once it merges to main, the deploy-pages.yml workflow will run from main and deploy successfully. No workflow changes needed.

@jakepresent jakepresent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after the follow-up fixes.

Verified locally on the latest head:

  • npm ci
  • npm audit --audit-level=moderate --json reports 0 vulnerabilities
  • npm run build succeeds on Next 15.5.18
  • scanned website source for stale Adaptive Eval, adaptive-eval, Antropic, and P2M references; only remaining old terms were generated/local artifacts before cleanup, not tracked source

I pushed one tiny follow-up to remove a stale P2M CSS comment. The remaining deploy check failure matches Sue's explanation: the Pages build/artifact step is green, and the deploy job is blocked because the github-pages environment only allows deploys from main. I do not see that as a website build blocker for merging this PR.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Next.js 14 static-export landing site and a Primer-inspired docs subsite under website/, sourcing Markdown from the repo-root docs/ directory, plus a GitHub Pages deploy workflow that builds and publishes from main.

Changes:

  • New website/ Next.js app (landing page, components, Tailwind/PostCSS, public assets) with basePath: "/ASSERT" and static export.
  • New /docs subsite that walks repo-root docs/, renders Markdown with react-markdown + rehype-slug/rehype-highlight, and provides a Primer-style sidebar, breadcrumbs, and "On this page" TOC.
  • New .github/workflows/deploy-pages.yml workflow that builds website/ on Node 20 and deploys website/out to GitHub Pages.

Reviewed changes

Copilot reviewed 37 out of 65 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
.github/workflows/deploy-pages.yml Pages build/deploy job; missing docs/** path trigger and includes feature branch.
website/_deploy.json Deploy metadata stub.
website/.eslintrc.json ESLint config with override for nonexistent agent-shield directory.
website/.gitignore, website/.vscode/settings.json, website/index.html Tooling files (empty index.html is unused for Next.js).
website/package.json, package-lock implied, postcss.config.mjs, next.config.mjs, next-env.d.ts, tsconfig.json Next.js 15/React 18 setup with Tailwind v4; tsconfig path aliases point at nonexistent agent-shield paths.
website/app/layout.js, page.tsx, TopNav.tsx, OnThisPageNav.tsx Landing layout, hero, sections, terminal demo (CLI command uses assert_eval instead of assert-eval); large blocks of unused shield* data.
website/app/Terminal.tsx, Systematizer.tsx ("Systemization" typo), SystematizationExample.tsx, HowItWorks.tsx, CodeSnippets.tsx, MagicCard.tsx, Lens.tsx, Plasma.tsx, AnimatedBeam.tsx, BorderBeam.tsx, HeroGrid.tsx, GridBeam.tsx, FlickeringGrid.tsx, ScrollReveal.tsx, TrueFocus.tsx Animated/visual components used by the landing page.
website/app/docs/layout.tsx, page.tsx, [...slug]/page.tsx Docs shell, index, and dynamic doc page with breadcrumbs and TOC.
website/app/docs/_lib/docs.ts Filesystem-based docs loader; README.md files yield awkward /readme slugs.
website/app/docs/_components/{DocsSidebar,DocsSidebarClient,MarkdownContent,OnThisPage}.tsx Sidebar (with local search), Markdown renderer (no link rewriting for cross-repo relative links), and on-this-page TOC.
website/docs/design-migration.md Internal design brief referencing the unrelated "Agent Shield" product.
website/public/icons/*.svg New SVG icons used by the landing/docs UI.

Comment thread website/app/page.tsx
</div>
<div className="run-eval-terminal">
<Terminal title="Terminal">
<TypingAnimation>assert_eval run --config eval_config.yaml</TypingAnimation>
Comment on lines +6 to +8
paths:
- "website/**"
- ".github/workflows/deploy-pages.yml"
Comment on lines +42 to +47
function fileToSlug(relativePath: string): DocSlug {
// "targets/callable.md" -> ["targets", "callable"]
// "README.md" -> ["readme"] (skip; index lives at /docs)
const noExt = relativePath.replace(/\.(md|mdx)$/i, "");
return noExt.split(path.sep).map((segment) => segment.toLowerCase());
}
Comment thread website/tsconfig.json
Comment on lines +17 to +20
"paths": {
"@/components/*": ["app/agent-shield/_components/*"],
"@/lib/*": ["app/agent-shield/_lib/*"]
},
Comment thread website/.eslintrc.json
Comment on lines +3 to +13
"overrides": [
{
"files": ["app/agent-shield/**/*.{ts,tsx}"],
"rules": {
"react/no-unescaped-entities": "off",
"@typescript-eslint/no-unused-vars": "off",
"@next/next/no-img-element": "off",
"react-hooks/exhaustive-deps": "off"
}
}
]
Comment thread website/app/TopNav.tsx
Comment on lines +38 to +52
<a href={`${BASE_PATH}/`} className="brand-mark" aria-label="Assert home">
<Image
src={`${BASE_PATH}/icons/Logo.svg`}
alt=""
width={18}
height={18}
className="brand-logo"
/>
<span className="brand-word">ASSERT.</span>
</a>
{inDocs && (
<>
<span className="brand-sep" aria-hidden="true">/</span>
<a href={`${BASE_PATH}/docs`} className="brand-context">Documentation</a>
</>
Comment on lines +77 to +84
Acceptance check: open any Agent Shield docs page next to the Primer reference
above. The breadcrumb, sidebar groups/rows, and right TOC should be visually
indistinguishable in structure, density, and active-state treatment — only the
content and accent color should differ.

### Section bar (top)
- Sits directly under the top nav, sticky
- One row of primary area tabs (e.g. `Getting started`, `Using Agent Shield`)
Comment thread website/app/page.tsx
Comment on lines +490 to +500
The systematizer produces this in three steps that mirror the approach of Agarwal et al. (2026)
</p>
<a
href="https://arxiv.org/abs/2605.26001"
target="_blank"
rel="noreferrer"
className="nav-btn nav-btn-secondary product-learn-more"
>
Read the paper
<span className="learn-more-chevron" aria-hidden="true">›</span>
</a>
return (
<div className="systematizer-diagram" ref={containerRef}>
<div className="systematizer-process-title" aria-hidden="true">
Systemization Process

on:
push:
branches: [main, assert-gh-page]
@sooyeonni
sooyeonni requested a review from jakepresent May 29, 2026 23:25
@jakepresent
jakepresent merged commit 0232474 into main May 30, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants