Page Type System
Page Type System
Section titled “Page Type System”LongtermWiki uses a two-level classification system to categorize content:
- Page Type (
pageType): Controls validation behavior and quality scoring eligibility - Page Template (
pageTemplate): Determines expected structure and applicable style guide
Understanding this distinction is critical: a page can have pageType: content (meaning it receives full validation) while also having pageTemplate: knowledge-base-risk (meaning it should follow risk page structure).
Page Types Overview
Section titled “Page Types Overview”| Type | Set By | Quality Scored? | Validated? | Count |
|---|---|---|---|---|
content | Default | Yes | Full | ≈450 |
stub | Explicit frontmatter | No | Minimal | ≈10 |
documentation | Explicit frontmatter | No | No | ≈10 |
overview | Auto (index.mdx) | No | Navigation only | ≈50 |
content (Default)
Section titled “content (Default)”What It Is
Section titled “What It Is”The default page type for all substantive knowledge base content. If you don’t specify a pageType in frontmatter, the page is treated as content. This is the workhorse type covering risks, responses, models, organizations, people, and all analytical content.
When to Use
Section titled “When to Use”- All knowledge base pages that should be graded, improved, and maintained
- Any page where quality matters and should be tracked
- Pages that will appear in improvement queues and quality reports
- You don’t need to explicitly set
pageType: content- it’s the default
Validation Behavior
Section titled “Validation Behavior”Content pages receive full validation:
- Quality grading: Must go through
grade-content.mjsto get a quality score (0-100) - Structural checks: Tables, citations, diagrams are counted and affect quality
- Style guide compliance: Must follow the relevant template’s style guide
- Staleness warnings: Old
lastEditeddates trigger alerts - EntityLink validation: All referenced entities must exist
- MDX compilation: Syntax errors fail CI
- Dollar sign escaping: Unescaped
$causes failures
Quality Scoring
Section titled “Quality Scoring”Content pages are scored on four dimensions by grade-content.mjs:
| Dimension | Scale | What It Measures |
|---|---|---|
| Novelty | 0-10 | Originality beyond summarizing sources |
| Rigor | 0-10 | Evidence quality, citations, quantification |
| Actionability | 0-10 | Usefulness for decisions |
| Completeness | 0-10 | Coverage of the topic |
These combine into an overall quality score (0-100) plus automated metrics (wordCount, citations, tables, diagrams).
Important: Quality must ONLY be set by grade-content.mjs, never manually or by LLM self-assessment. The quality-source validation rule enforces this by checking that pages with quality also have ratings.
Relevant Frontmatter Fields
Section titled “Relevant Frontmatter Fields”---title: "Page Title"description: "Brief description for search and previews"# pageType: content # Optional - this is the defaultpageTemplate: knowledge-base-risk # Which structure to followquality: 45 # Set ONLY by grade-content.mjsimportance: 60 # How significant for AI safety prioritizationlastEdited: "2026-01-31"llmSummary: "One-sentence summary with key conclusions"ratings: novelty: 4 rigor: 5 actionability: 3 completeness: 5metrics: wordCount: 1500 citations: 8 tables: 2 diagrams: 1todos: - "Add more quantitative estimates" - "Include counterarguments section"---Examples
Section titled “Examples”/knowledge-base/risks/accident/deceptive-alignment.mdx/knowledge-base/responses/alignment/interpretability.mdx/knowledge-base/organizations/labs/anthropic.mdx/knowledge-base/models/threat-models/takeover-scenarios.mdx
What It Is
Section titled “What It Is”A stub is an intentionally minimal page that exists primarily for navigation or reference purposes. Stubs are explicitly marked and excluded from quality scoring because their brevity is by design, not a deficiency.
When to Use
Section titled “When to Use”-
Redirect pages: When content has moved or been consolidated elsewhere
- Use
seeAlsofield to point to the primary page - Example: Open Philanthropy → Coefficient Giving after rebrand
- Use
-
Brief profiles: People or organizations that don’t warrant full pages
- Just enough info to be useful in search/browse
- Links to external resources
-
Deprecated concepts: Topics kept for link stability
- Old terminology that redirects to current naming
- Historical pages that shouldn’t be deleted but aren’t maintained
-
Intentional placeholders: Topics planned for future expansion
- Better than a 404, but marked as incomplete by design
Validation Behavior
Section titled “Validation Behavior”Stub pages are excluded from most validation:
- ❌ Not graded by
grade-content.mjs - ❌ Not checked by style guide validators
- ❌ Not included in improvement queues
- ❌ Not counted in quality reports
- ✅ Still validated for MDX compilation
- ✅ Still validated for EntityLink references
- ✅ Still validated for dollar sign escaping
Relevant Frontmatter Fields
Section titled “Relevant Frontmatter Fields”---title: "Open Philanthropy"description: "Redirects to Coefficient Giving"pageType: stubseeAlso: "coefficient-giving" # Points to the primary pagesidebar: order: 10lastEdited: "2026-01-29"---The seeAlso field is particularly important for stubs - it tells readers (and automated tools) where the real content lives.
Content Expectations
Section titled “Content Expectations”A stub should contain:
- Brief explanation of what this page is about (1-3 sentences)
- Clear pointer to where comprehensive coverage exists (EntityLink)
- Backlinks component to show what references this page
- Optionally: minimal quick facts if genuinely useful
A stub should NOT contain:
- Detailed analysis or substantial content
- Multiple sections with headers
- Tables, diagrams, or extensive formatting
- Content that duplicates the primary page
Example
Section titled “Example”---title: "Open Philanthropy"description: "Redirects to Coefficient Giving after November 2025 rebrand"pageType: stubseeAlso: "coefficient-giving"---import {Backlinks, EntityLink} from '@components/wiki';
**Open Philanthropy rebranded to <EntityLink id="coefficient-giving" /> in November 2025.**
For comprehensive information about AI safety funding, grants, and the 2025 Technical AI Safety RFP, see the Coefficient Giving page.
<Backlinks />documentation
Section titled “documentation”What It Is
Section titled “What It Is”Documentation pages contain internal reference material about LongtermWiki itself - style guides, process documentation, code examples, and meta-content. They are excluded from content validation because they may contain intentional examples of “bad” formatting, placeholder text, or code snippets.
When to Use
Section titled “When to Use”-
Style guides: Documentation of how to write different page types
/internal/risk-style-guide//internal/response-style-guide/
-
Process documentation: How LongtermWiki systems work
- This page (
/internal/page-types/) - Rating system documentation
- This page (
-
Internal planning: Strategy documents, project notes
/project/similar-projects//project/strategy-brainstorm/
-
Technical reference: Code examples, API documentation
- Content database documentation
- Script usage guides
Validation Behavior
Section titled “Validation Behavior”Documentation pages are excluded from all content validation:
- ❌ Not graded by
grade-content.mjs - ❌ Not checked by style guide validators
- ❌ Not checked for content quality issues
- ❌ Not included in any improvement queues
- ✅ Still validated for MDX compilation (must render)
- ✅ Basic frontmatter schema validation
This exclusion is important because documentation pages often contain:
- Example code with intentional placeholders
- Demonstrations of what NOT to do
- Reference tables that don’t follow content patterns
- Technical details irrelevant to content quality
Relevant Frontmatter Fields
Section titled “Relevant Frontmatter Fields”---title: "Risk Style Guide"description: "How to write risk analysis pages for LongtermWiki"pageType: documentationsidebar: order: 3---Documentation pages typically have minimal frontmatter - no quality, importance, ratings, or metrics since they’re not graded.
Content Expectations
Section titled “Content Expectations”Documentation pages should be:
- Clear and actionable for their intended audience (usually contributors)
- Well-organized with logical structure
- Up-to-date when processes change
- Self-contained or linking to relevant external resources
Unlike content pages, documentation can freely include:
- Code blocks and technical examples
- Placeholder text for illustration
- Checklists and process steps
- Screenshots and interface mockups
Examples
Section titled “Examples”/internal/page-types.mdx(this page)/internal/risk-style-guide.mdx/internal/rating-system.mdx/project/similar-projects.mdx
overview (Auto-detected)
Section titled “overview (Auto-detected)”What It Is
Section titled “What It Is”Overview pages are automatically detected from the filename index.mdx. They serve as navigation hubs for sections of the site, providing an entry point and links to child pages. You never set pageType: overview in frontmatter - it’s inferred.
When to Use
Section titled “When to Use”Any index.mdx file is automatically treated as an overview page. These exist at:
- Section roots:
/knowledge-base/risks/index.mdx - Category roots:
/knowledge-base/organizations/index.mdx - Topic clusters:
/knowledge-base/responses/governance/index.mdx
Validation Behavior
Section titled “Validation Behavior”Overview pages receive limited validation:
- ❌ Not graded by
grade-content.mjs - ❌ Not included in quality reports
- ✅ Sidebar structure validation (must be properly configured)
- ✅ Link integrity checking
- ✅ MDX compilation
Content Expectations
Section titled “Content Expectations”Overview pages should provide:
- Brief introduction to the section (1-2 paragraphs)
- Navigation structure - links to key child pages
- Organizational logic - why pages are grouped this way
- Optionally: summary tables, key takeaways across the section
Overview pages should NOT:
- Duplicate substantial content from child pages
- Require extensive maintenance as children change
- Include detailed analysis (that belongs in child pages)
Example
Section titled “Example”---title: "AI Risks"description: "Analysis of risks from advanced AI systems"---
This section covers the landscape of risks from AI development and deployment.
## Categories
- **Accident Risks**: Unintended harmful behaviors from AI systems- **Misuse Risks**: Deliberate harmful applications of AI- **Structural Risks**: Systemic issues from AI development dynamics
## Key Pages
- [Deceptive Alignment](/knowledge-base/risks/accident/deceptive-alignment/)- [Power Concentration](/knowledge-base/risks/structural/power-concentration/)Page Templates
Section titled “Page Templates”While pageType controls validation behavior, pageTemplate controls the expected structure and which style guide applies. A page can be pageType: content (fully validated) with different templates.
Available Templates
Section titled “Available Templates”| Template | Used For | Style Guide |
|---|---|---|
knowledge-base-risk | Risk analysis pages | /internal/risk-style-guide/ |
knowledge-base-response | Intervention/response pages | /internal/response-style-guide/ |
knowledge-base-model | Analytical models | /internal/models-style-guide/ |
ai-transition-model-factor | ATM top-level factors | /internal/ai-transition-model-style-guide/ |
ai-transition-model-sub-item | ATM sub-factors | /internal/ai-transition-model-style-guide/ |
ai-transition-model-scenario | ATM scenarios | /internal/ai-transition-model-style-guide/ |
Template Detection
Section titled “Template Detection”Templates can be:
- Explicitly set in frontmatter:
pageTemplate: knowledge-base-risk - Inferred from URL for some paths (e.g.,
/knowledge-base/risks/**)
Example with Both Fields
Section titled “Example with Both Fields”---title: "Deceptive Alignment"description: "Risk of AI systems appearing aligned during training but pursuing different goals"pageType: content # Optional - defaultpageTemplate: knowledge-base-risk # Required structurequality: 67importance: 85---Interaction with Quality Pipeline
Section titled “Interaction with Quality Pipeline”What Gets Graded
Section titled “What Gets Graded”| Page Type | Graded by grade-content.mjs? | In improvement queues? |
|---|---|---|
content | Yes | Yes |
stub | No | No |
documentation | No | No |
overview | No | No |
The quality-source Validation Rule
Section titled “The quality-source Validation Rule”To enforce that quality ratings come from the grading script (not manual entry or LLM self-assessment), the quality-source rule checks:
- If a page has
qualityset - But does NOT have
ratings(novelty, rigor, etc.) - Then it was set outside the proper pipeline → warning
This catches pages where someone manually typed quality: 75 or an LLM suggested a quality score during content generation.
Fixing Pages with Manual Quality
Section titled “Fixing Pages with Manual Quality”If you see: Quality (X) set without ratings - use 'npm run regrade -- page-id'
Run:
npm run regrade -- page-idThis will use Claude to properly grade the page and set both quality and ratings.
Quick Reference
Section titled “Quick Reference”Setting Page Type
Section titled “Setting Page Type”# Content page (default - can omit)pageType: content
# Stub pagepageType: stubseeAlso: "primary-page-id"
# Documentation pagepageType: documentationChecking Page Types
Section titled “Checking Page Types”# Count pages by typegrep -r "pageType:" src/content/docs/ | cut -d: -f3 | sort | uniq -c
# Find pages without explicit type (default to content)find src/content/docs -name "*.mdx" -not -name "index.mdx" | \ xargs grep -L "pageType:" | wc -l
# List all stubsgrep -l "pageType: stub" src/content/docs/**/*.mdxValidation Commands
Section titled “Validation Commands”# Run all validationnpm run validate
# Run quality-source check specificallynpm run crux -- validate unified --rules=quality-source
# Grade a specific pagenpm run regrade -- page-id
# Grade all ungraded pagesnode scripts/content/grade-content.mjs --skip-graded --applyAdding a New Page Type
Section titled “Adding a New Page Type”If you need a new page type (rare), follow these steps:
-
Update schema in
src/content.config.ts:pageType: z.enum(['content', 'stub', 'documentation', 'new-type']).optional() -
Update validation rules in
scripts/lib/rules/quality-source.mjsand other rules that checkpageType -
Update PageStatus component in
src/components/wiki/PageStatus.tsx -
Create style guide at
/internal/new-type-style-guide/ -
Update this documentation
Most new content needs should be handled by adding a new pageTemplate, not a new pageType. Only add a page type if you need fundamentally different validation behavior.