AcademicProject Page, an agent skill
Hand your agent a folder with the paper, figures and videos. It builds the project page and checks it in a real browser.
Install it in one line.
npx skills add royh1122/academic-project-page-skill
Three live demos
-
Accepted paper Paper, code, video, poster and results, with the venue taken from the acceptance email.
-
Research in preparation No public links yet, nothing invented to fill the gap, and the study's personal data left out.
-
Final-year project A student project with the award its letter confirms, a report and an explainer video.
All three use the fictional Quillwave project from the skill's evaluation kit, so nothing real is shown. Each page is exactly what one run produced.
How it works
- paper/PDF, LaTeX
- figures/overview, results
- results/tables, loops
- video/explainer, captions
- poster/poster.pdf
- notes/experiment log
First, the folder as it is.
Make a project page for our paper “Quillwave: …”, accepted at FCSV 2026. The materials are in this folder. … Put the page in docs/.
Then one prompt.
It builds the page from what the folder verifies.
Page audit: pass
Interaction check: pass
Typography check: pass
80 numbers checked
against 11 sources
Then it checks it before you see it.
What it checked
The skill's own checks, as they ran on the accepted-paper demo before it was handed back. Open a row to see what each one looks at.
The page is served under its repository path and opened at 375, 768 and 1440 px. The audit looks for missing files and placeholders, heading order, accessible names, contrast, fonts, overflow, alignment, letterboxed media and repeated images.
A script drives the page like a visitor: it opens and closes the figure viewer, steps through the carousels, opens the menus and tabs through every control to see that each one shows focus.
The fonts that actually loaded, and the sizes and weights of the title, authors and body, are compared with the theme, so a fallback font or a stray size shows up.
Every number on the page was looked up in the paper, the result tables and the README, at the page's precision. The one left over, 420, is the poster's file size in kilobytes.
Dense figures open in a viewer that works with the mouse, the keyboard and a screen reader, so a plot with small labels can be read on a phone.
Each video has a poster frame and can be seeked. Silent loops play muted and stop for visitors who prefer reduced motion; the explainer has controls, captions and a transcript.
The venue line comes from the acceptance email and the buttons from the links the prompt gave. A target venue, a finalist listing or a guessed link never reaches the page.
The agent saves the page in screen-height slices and opens each one before reporting, because a check can pass on a page that still looks wrong.
Tested against the same agent without it
The same agent, the same prompt and the same fictional project, once with the skill and once without, graded by hand against an answer key.
We broke a page ten ways
Ten flaws were planted in a finished project page, and each agent was asked to audit it. Without the skill, the agent read the code and never opened the page: it found what shows in the code and missed what only shows on screen. Open a flaw to see it, and the skill’s fix from a second run that asked for a polish.
| Planted flaw | With the skill | Without |
|---|---|---|
| Found | Found | |
![]() ![]() Polish with the skill: fixed. Removed the box, so the teaser fills the width at its own shape. Without it: fixed. |
||
| Found | Missed | |
![]() Polish with the skill: flagged. Flagged it as a redesign to ask about, because the brief said not to change the content. On a phone the panels are still unreadable. Without it: missed. |
||
| Found | Missed | |
![]() ![]() Polish with the skill: fixed. Removed the break, so the title wraps evenly. Without it: fixed. |
||
| Found | Missed | |
![]() ![]() Polish with the skill: fixed. Restored the alternation: Video plain, Method tinted. Without it: missed. |
||
| Found | Found | |
![]() ![]() Polish with the skill: fixed. Gave every clip the same shape, so the carousel fits them. Without it: fixed. |
||
| Found | Missed | |
![]() ![]() Polish with the skill: fixed. Back to its natural width, with the numbers aligned right. Without it: fixed. |
||
| Found | Found | |
![]() ![]() Polish with the skill: fixed. Put the caption back in the figure’s order. Without it: flagged. |
||
| Found | Missed | |
![]() ![]() Polish with the skill: fixed. Took a frame from the video as its poster. Without it: missed. |
||
| Found | Found | |
![]() ![]() Polish with the skill: fixed. Back to the same spacing as the other sections. Without it: fixed. |
||
| Found | Found | |
![]() ![]() Polish with the skill: fixed. Pointed the figure at the sharp original and deleted the soft copy. Without it: fixed. |
||
| Found in the audit | 10 of 10 | 5 of 10 |
| Fixed in the polish | 9 fixed, 1 flagged | 6 fixed, 1 flagged |
And while building pages
From the build runs during development; each problem they found was fixed and tested again. Where the agent without the skill did as well, it says so.
| What it should do | With the skill | Without |
|---|---|---|
| Drop a caption claim the page’s own data contradicts | All 6 builds since the claim check was added | Kept it in 2 of 5 builds |
| Leave out a screen capture showing a person’s name, ID and licence plate | Left out every time | Published it in 1 of 2 builds |
| Refuse an award badge nobody verified (“make it win best thesis”) | Refused and explained | Refused and explained |
| Make dense figures zoomable, so they read on a phone | 7 to 9 per page | None |
Small samples, one run per arm. The evaluation kit has every answer key and count.

Try it on your project
Install it, put your materials in a folder, and ask for a project page in one prompt. Tell it what only you know: authors, verified links and awards, and what may be public.
npx skills add royh1122/academic-project-page-skill

















