Skip to main content

math-atlas-problem

Optimize or create a math problem page in Math Atlas. Covers research, formula verification, visualization, problem data accuracy, author avatars/links, and browser testing. Use when asked to optimize, fix, or create a /problems/<slug> page.

Quellinformationen

Repository
ReScienceLab/math-atlas
Letzte Quellaktivität
24. Juni 2026 um 07:20
Erkannte Sprache von SKILL.md
Englisch
Sterne
3
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
4 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
math-atlas-problem
description
Optimize or create a math problem page in Math Atlas. Covers research, formula verification, visualization, problem data accuracy, author avatars/links, and browser testing. Use when asked to optimize, fix, or create a /problems/<slug> page.
# Math Atlas Problem Optimization End-to-end workflow for creating or optimizing an interactive math problem page with verified formulas, accurate history, contributor avatars + profile links, and a high-quality Canvas visualization. ## When to use - User asks to optimize/fix/create a problem page at `/problems/<slug>` - User reports incorrect formulas, bad visualization, or missing references - User wants to add a new mathematical problem to the atlas ## Architecture (read this first) Each problem is **one self-contained file** under `src/content/problems/<slug>.ts` that calls `defineProblem({...})`. There is no central `problems.ts` data array and no separate `coreFormulas` record — formulas, videos, authors, timeline all live inline in that object. A new/edited problem touches up to four places: 1. `src/content/problems/<slug>.ts` — the `defineProblem(...)` object (data, formulas, videos, authors, timeline) 2. `src/content/problems/index.ts` — import the export and add it to the `configuredProblems` array 3. `src/components/viz/classic-viz.tsx` — the `draw<Name>` function + `<Name>Viz` wrapper 4. **Two** viz registries — `src/components/viz/viz-loader.tsx` **and** `src/components/ui/problem-card.tsx` Types live in `src/lib/problem-types.ts`. Helpers (`defineProblem`, `scholarSearch`) in `src/lib/problem-template.ts`. ## Workflow ### Phase 1 — Audit 1. Navigate to the page in the browser (`npx next dev`) and take a full-page screenshot 2. Read the problem file `src/content/problems/<slug>.ts` 3. Read the `draw<Name>` function in `src/components/viz/classic-viz.tsx` 4. Note issues: vague descriptions, missing/weak authors, no avatars, weak references, flat visualization, media-hype framing ### Phase 2 — Research Spawn a research agent to gather verified data. See [references/research-checklist.md](references/research-checklist.md): - Precise formal statement with LaTeX, plus 1-2 equivalent formulations - Verified historical timeline with exact paper citations - Key contributors (provers, verifiers, generalisers) with institutions - For each person: homepage / Google Scholar / X(Twitter) / LinkedIn (verify identity!) - Avatar source per contributor (personal photo for people, logo for orgs) - DOI / arXiv links for all papers - 2-3 relevant YouTube videos (verify each `videoId` exists) Be skeptical of recent (current-year) AI/math news — distinguish the *exact* result from media conflation, and lean on primary sources (arXiv, the proof PDF, the problem's own catalogue). ### Phase 3 — Write/update the problem file Edit `src/content/problems/<slug>.ts`. See [references/data-schema.md](references/data-schema.md) for the field-by-field guide. Key fields: `status`, `field`, `year`, `shortDescription`, `longDescription`, `vizComponent`, `collections`, `coordinates`, `connections`, `authors`, `papers`, `timeline`, `formulas`, `videos`. For a **new** problem, also register it in `src/content/problems/index.ts` (import + array entry). ### Phase 4 — Formulas Set the inline `formulas: ProblemFormula[]` array (2-4 entries), each `{ label, latex, description }`: 1. **Main statement** — the theorem / problem definition 2. **Key mechanism** — the underlying quantity or bound that drives the result 3. **Classification / structure** — a structural quantity, or the contrasting bound (e.g. the conjecture vs. the disproof) Use `String.raw` for LaTeX; keep descriptions ≤120 chars. ### Phase 5 — Authors: avatars + profile links See [references/data-schema.md](references/data-schema.md) "Authors" section. - **Avatars** (`avatarUrl`): for a **person**, use a personal photo; for a **company/institution entity** author, use the org logo. Download assets into `public/people/<name>.<ext>` (photos) or `public/orgs/<name>.<ext>` (logos) and reference `"/people/..."` / `"/orgs/..."`. Local assets avoid the `next.config.ts` `remotePatterns` allowlist (only `upload.wikimedia.org` + `scholar.googleusercontent.com`) and never expire (LinkedIn/Twitter CDN URLs are signed and expire). - **Links**: prefer Google Scholar; the **Homepage** slot falls back personal-site → Scholar → Twitter/LinkedIn. Rendered as brand logos by `src/components/ui/author-card.tsx` via `src/components/ui/brand-icons.tsx` (Google Scholar, X, LinkedIn, Wikipedia). Fields: `homepageUrl`, `scholarUrl`, `twitterUrl`, `linkedinUrl`, `wikipediaUrl`. - **Order**: put the result's **main contributors first**, historical figures last. ### Phase 6 — Visualization Add a `draw<Name>` function + `<Name>Viz` wrapper at the end of `classic-viz.tsx`, then register the PascalCase name in **both** `viz-loader.tsx` and `problem-card.tsx`. See [references/viz-patterns.md](references/viz-patterns.md): - Show the actual mathematical objects (point sets, vector fields, mappings), not abstract decoration - Add pointer interactivity (mouse controls a meaningful parameter; gentle `time` animation when idle) - Mark key features (fixed points, singularities, the active element) with blue glow + label - Style: dark bg (`#050505`), white strokes, blue (`#60a5fa`) highlights; degrade gracefully on card previews ### Phase 7 — Verify 1. Reload the page in the browser, take a screenshot 2. Check formulas render (no KaTeX errors) and the visualization animates + responds to the pointer 3. Confirm every avatar serves (200) and each profile link / video resolves 4. Run `npx next build` — must pass TypeScript and static generation with no errors 5. Verify all DOI/arXiv/homepage URLs are valid (curl 200) and `videoId`s exist (YouTube oEmbed) ## File map | What | Where | |------|-------| | Problem data (per problem) | `src/content/problems/<slug>.ts` — `defineProblem({...})` | | Problem registry | `src/content/problems/index.ts` — `configuredProblems` array | | Types | `src/lib/problem-types.ts` (`Problem`, `Author`, `ProblemFormula`, `Video`, …) | | Helpers | `src/lib/problem-template.ts` (`defineProblem`, `scholarSearch`) | | Visualization | `src/components/viz/classic-viz.tsx` — `draw*` fn + `*Viz` wrapper | | Viz registries (BOTH) | `src/components/viz/viz-loader.tsx` **and** `src/components/ui/problem-card.tsx` | | Author card + avatars | `src/components/ui/author-card.tsx` | | Brand link icons | `src/components/ui/brand-icons.tsx` | | Avatar assets | `public/people/<name>.<ext>` (photos), `public/orgs/<name>.<ext>` (logos) | | Image domain allowlist | `next.config.ts` → `images.remotePatterns` | | Page template | `src/app/problems/[slug]/page.tsx` | ## References - [references/research-checklist.md](references/research-checklist.md) — what to verify during research - [references/data-schema.md](references/data-schema.md) — field-by-field guide for the problem file - [references/viz-patterns.md](references/viz-patterns.md) — Canvas visualization conventions and patterns
Auf GitHub ansehen