A free, linked knowledge base on artificial intelligence in education — research, pedagogy, policy, and practice. It curates article summaries, synthesized concept pages, and FAQs into a single navigable site, and is automatically kept current by scheduled scans of new AI-in-education papers.
Browse the knowledge base · Use it with your own AI assistant · Read it offline (EPUB) · Read it offline (PDF)
- Articles — one page per paper: key findings, methods, and an APA citation with a linked full text.
- Concepts — synthesized topic pages that connect related research (e.g. feedback, assessment, teacher-role), each with pre-reading questions, an introduction, and links to supporting articles.
- FAQs — curated answers to common questions, cross-linked to the concepts and articles behind them.
- Every page links to related pages via
[[wikilink]]s, so you can follow a topic across the whole knowledge base.
The knowledge base is agent-ready: it publishes llms.txt (a catalog of every page with one-line descriptions) and llms-full.txt (full text of every page), so any AI chatbot or agent can use it as a grounded research reference.
Copy-paste this prompt into your AI assistant:
You are a research assistant for AI in education. Use the AI in Education Knowledge Base
as your knowledge base.
1. First fetch the catalog: https://edtechdev.github.io/aied/llms.txt
(If you need full text of specific pages, fetch them from
https://edtechdev.github.io/aied/llms-full.txt or the individual page URLs.)
2. When answering questions about AI in education research, ground your answer
in articles and concepts from this knowledge base. Cite the page title and URL
for every claim you make from it, e.g.:
"According to the wiki article 'X' (URL), ..."
3. If asked about a topic, synthesize across multiple related articles and
concepts rather than relying on a single page. Mention when the knowledge base
does not cover a topic instead of guessing.
4. Recommend related articles and concepts when relevant.
Example question: "What does the research say about AI feedback for student writing?"
→ Fetch llms.txt, find the writing/feedback articles, read the most relevant
pages, and answer with citations.
The knowledge base is also published as downloadable eBooks, generated from the same markdown as the site:
- EPUB —
https://edtechdev.github.io/aied/aied.epub - PDF —
https://edtechdev.github.io/aied/aied.pdf
Both contain the home introduction, the Use-With-AI page, all concept pages (organized into chapters by umbrella group, with a clickable, numbered table of contents), and the FAQ pages. They contain only the concept and FAQ pages — not the hundreds of article summaries.
Code in this repository is licensed under the MIT License; the knowledge-base content (markdown, HTML) is released to the public domain under CC0 1.0 Universal. See LICENSE.
- Astro 7 static site generator, deployed via GitHub Actions to GitHub Pages at base path
/aied. - Pagefind for full-text search, RSS + sitemap, JSON-LD schema.org structured data.
- Content lives in markdown collections (
articles/,concepts/,faqs/) defined insrc/content.config.ts; the build runsastro check+astro build+ Pagefind + a service-worker step.
All site-wide metadata lives in a single file, site.config.json at the repo root: the site name, short name, brand name (header label), description, language, site URL, base path, GitHub repo/issues URLs, the editor name + contact URL, the license, and the PWA theme colors.
Do not hardcode these values in code or docs — read them from the config instead. Astro imports it via src/config/siteConfig.ts; Python tooling (the EPUB/PDF builder, llms generator, RSS fetcher) opens it with json.load. To rename the site or change any metadata, edit site.config.json, then rebuild the site and regenerate the EPUB/PDF/llms files.
├── articles/ # Article pages (one markdown file per paper)
├── concepts/ # Synthesized concept pages (topic overviews)
├── faqs/ # Curated FAQ pages (question-and-answer)
├── raw/papers/ # Raw source text (arXiv, PDFs, RSS abstracts) — gitignored, not committed
├── src/
│ ├── config/ # siteConfig.ts (wraps site.config.json with types)
│ ├── layouts/ # BaseLayout.astro (nav, search, footer)
│ ├── lib/ # jsonld.ts (schema.org helpers), content.config.ts (schema)
│ ├── components/ # JsonLd.astro, SourceButtons.astro
│ └── pages/ # index, journal, search, faq, ai, rss, + dynamic pages
├── public/
│ ├── llms.txt # Agent-ready catalog (every page, one line each)
│ ├── llms-full.txt # Full text of every page
│ ├── aied.epub # Offline EPUB version (concepts + FAQs)
│ ├── aied.pdf # Offline PDF version (concepts + FAQs)
│ ├── epub-cover.png # Book cover used by the EPUB/PDF
│ └── cc0.png # CC0 public-domain badge
├── tooling/ # Reusable tooling for running your own knowledge base
├── skills/ # Mirrored AI agent skills (inline linking, EPUB/PDF, site QA, ...)
├── site.config.json # Single source of truth for site-wide metadata
├── astro.config.mjs # Astro config (base /aied, pagefind, sitemap)
└── .github/workflows/ # Build & deploy to GitHub Pages
- Article pages — frontmatter (title,
created/updatedfull quoted date+time timestamps, type, tags,sources, confidence) → synthesis blockquote → Key Findings → Connected Concepts → Connected Articles → APA citation with hyperlinked title. Every article must include asources:field (required by the Astro 7 schema) pointing to the raw source file. - Concept pages — frontmatter → synthesis blockquote →
## Questions to Consider(pre-reading questions) →## Introduction→ body with wikilinks → Connected Concepts → Connected Articles. - FAQ pages — frontmatter → question heading → narrative answer with wikilinks. Curated answers; no sources/citation. Linked to concept/article pages via a Connected FAQs section (frontmatter
connected_faqs). - All inter-page links use
[[wikilink]]syntax, which the Astro templates render as hyperlinks. - Tags in frontmatter are concept slugs (each value is a real concept page), rendered as clickable chips. Optional structured metadata (
level,audience,discipline,category,research_method) provide PageFind search facets. Seetooling/SCHEMA.md. - Structured data — every page emits schema.org JSON-LD (
Article/DefinedTerm/FAQPageas appropriate). Seedocs/json-ld.md.
# Install dependencies
npm install
# Develop locally
npm run dev
# Build the static site (astro check + astro build; outputs to dist/)
npm run build
# Preview the production build
npm run previewRegenerate committed artifacts after content changes:
# Regenerate agent-ready files (llms.txt, llms-full.txt)
python3 tooling/scripts/generate-llms-files.py
# Regenerate the offline EPUB + PDF (concepts + FAQs, cover, TOC)
python3 tooling/build-epub.pyThe EPUB/PDF and cover are committed artifacts built locally (like llms-full.txt); the CI deploy copies public/ so they're served from /aied/aied.epub and /aied/aied.pdf. Building them requires pandoc and, for the PDF, the weasyprint Python package.
Scheduled jobs keep the knowledge base up to date:
- Daily scan — searches arXiv (cs.CY, cs.HC, cs.CL, cs.AI, physics.ed-ph) and EdArXiv for new AI-in-education papers.
- Weekly journal scan — ingests open-access articles from journal RSS feeds (Computers and Education: Artificial Intelligence, British Journal of Educational Technology, and others).
- Manual ingestion — PDFs or preprint URLs can be sent at any time.
Each run filters for relevance, skips already-ingested items, creates article pages (and updates concept pages), rebuilds the site, and commits + pushes to GitHub Pages.
| Problem | Check |
|---|---|
| Site not updating | Confirm the GitHub Actions deploy workflow ran: Actions tab → astro-deploy |
| Search index stale | Search is Pagefind-based — run npm run build so dist/pagefind/ regenerates |
| llms.txt out of date | python3 tooling/scripts/generate-llms-files.py then npm run build |
| Broken wikilinks | Links use [[slug]] — the slug must match a file in articles/ or concepts/ |
| YAML parsing errors | Titles with colons must be quoted: title: "X: Y" |
Want to set up an automated research knowledge base for a different domain? Everything you need is in the tooling/ directory:
tooling/README.md— Complete setup guidetooling/SKILL.md— AI agent skill definition (theresearch-wikiingestion + export pipeline)tooling/SCHEMA.md— Domain, tag taxonomy, and page conventionstooling/scripts/— RSS fetcher (fetch-rss-feeds.py), llms generator (generate-llms-files.py), backlink tool (add-backlinks.py), readfile-corruption checkertooling/references/— Pipeline architecture, filtering strategies, recovery procedurestooling/cron/— Cron job prompt templates (daily scan, weekly RSS scan), each enforcing the inline-link HARD GATE (run thewiki-inline-linkspass + verification before build/deploy) and the list-formatting HARD GATE (runcheck_list_formatting.pybefore build)tooling/example/— Starter knowledge-base files to get going quicklytooling/config.example.yaml— Scan configuration for customization
The mirrored AI agent skills live in skills/research/ and encode the editorial conventions the agents must follow:
wiki-inline-links— term→slug scanner (inline_link_scan.py) + list-formatting checker (check_list_formatting.py), enforcing aggressive concept-linking in every new/enriched page and catching the recurring numbered-list blank-line bug.wiki-journal-update— regeneratingjournal.md/index.mdcorrectly.wiki-epub-export— building the EPUB/PDF offline versions.wiki-site-quality— static-site bug fixes (broken links, dead tags, formatting).wiki-page-deepening— how to genuinely deepen/enrich/enhance a concept, article, or FAQ page (mine raw sources for specifics, weave into the narrative, add practical tips/examples/implications, cross-link, gate, ship).wiki-astro-frontend— editing the Astro frontend (homepage, concept map, icons).
Two copies, one role — why these files live in two places. The
skills/research/copies in this repo are scrubbed, public-safe mirrors of the agent's own installed skills, which live in the agent's home-directory skill store rather than in this repo. The installed copies are the working, full-detail originals and may contain environment-specific detail (paths, install notes). Because this repo is public, the mirrors must stay free of personal or machine-specific information — no names, machine-specific paths, or agent branding. When a skill changes, sync only public-safe wording from the installed original into the repo mirror; never overwrite a mirror wholesale with a local copy (that leaks private detail into public history). Keep the two in lock-step so a reader of the repo and the working agent follow the same procedures. The canonicalresearch-wikiskill that drives ingestion/export lives intooling/(see below), not underskills/.
The repo's AGENTS.md documents the page-structure rules and the inline-link HARD GATE that agents must follow on every ingestion.
Just copy the tooling/ and skills/ directories into a new repo, follow the tooling/README.md, and you'll have your own knowledge base in ~15 minutes. No API keys required.