diff --git a/.github/workflows/validate-site.yml b/.github/workflows/validate-site.yml
new file mode 100644
index 0000000..391414d
--- /dev/null
+++ b/.github/workflows/validate-site.yml
@@ -0,0 +1,58 @@
+name: Validate static site
+
+on:
+ pull_request:
+ push:
+ branches: [main]
+
+permissions:
+ contents: read
+
+concurrency:
+ group: validate-site-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ release-gates:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+
+ - name: Validate route graph
+ run: node scripts/validate-site-graph.mjs
+
+ - name: Audit internal-link policy
+ run: node scripts/audit-internal-link-policy.mjs
+
+ - name: Validate editorial expansion
+ run: node scripts/validate-editorial-expansion.mjs
+
+ - name: Validate AURE experience
+ run: node scripts/validate-aure-remaster.mjs
+
+ - name: Validate publication index
+ run: node scripts/validate-publication-index.mjs
+
+ - name: Validate knowledge index and field records
+ run: |
+ node scripts/validate-knowledge-index.mjs
+ node scripts/validate-field-guide.mjs
+ node scripts/validate-self-audit.mjs
+
+ - name: Validate learning pathways
+ run: |
+ node scripts/validate-arm-pathway.mjs
+ node scripts/validate-trust-pathway.mjs
+ node scripts/validate-machine-readable-pathway.mjs
+ node scripts/validate-agentic-interoperability-pathway.mjs
+ node scripts/validate-economic-models-pathway.mjs
+
+ - name: Check patch whitespace
+ run: git diff --check
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..a38d89c
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,68 @@
+# Contributing to AI Mastery
+
+AI Mastery accepts contributions that make its technical knowledge more accurate, reproducible, inspectable, or useful. Strong contributions include implementation patterns, benchmark records, source corrections, case evidence, and improvements to the public knowledge graph.
+
+## Before opening a change
+
+Open an issue or focused pull request that states:
+
+- the technical question or reader problem;
+- the proposed claim and the evidence supporting it;
+- what a reader can reproduce or inspect;
+- important limits, unknowns, and dependencies;
+- which existing guide, learning path, or entity the work connects to.
+
+Do not submit promotional listicles, unverified performance claims, fabricated citations, undisclosed sponsored links, secrets, private data, or code copied without compatible permission.
+
+## Content standards
+
+Write for both people and machine retrieval:
+
+1. Begin each key concept with a direct, self-contained definition.
+2. Organize the page with one `h1` and descriptive `h2`/`h3` sections.
+3. Use specific anchor text that names the destination concept.
+4. Prefer primary sources, standards, official documentation, and reproducible evidence.
+5. Separate observed facts, derived conclusions, proposals, and unknowns.
+6. Include prerequisites, implementation steps, expected outputs, failure modes, and a verification method when publishing a blueprint.
+7. Add or update the relevant JSON-LD entity relationships, sitemap entry, and `llms.txt` record for a new public route.
+
+Code examples must use placeholders for credentials and identify the runtime or dependency versions needed to reproduce them.
+
+## Evidence and corrections
+
+A case study or benchmark should include a dated observation window, method, inputs, outputs, and explicit claim boundaries. If a result cannot be independently verified, describe it as reported or proposed rather than established.
+
+For a small factual correction, open a pull request with the replacement source. For a disputed or larger correction, open an issue describing the affected URL, statement, supporting evidence, and requested change. Corrections should preserve an inspectable history rather than silently expanding a claim.
+
+## Local validation
+
+No package installation or build step is required. Preview the site from the repository root:
+
+```bash
+python3 -m http.server 4173
+```
+
+Before submitting a pull request, run the same core checks used by CI:
+
+```bash
+node scripts/validate-site-graph.mjs
+node scripts/audit-internal-link-policy.mjs
+node scripts/validate-editorial-expansion.mjs
+node scripts/validate-publication-index.mjs
+git diff --check
+```
+
+Run the pathway-specific validator for any collection you change. A pull request should explain the checks run and any validation that remains external or manual.
+
+## Pull request scope
+
+Keep each pull request centered on one coherent outcome. Include:
+
+- a concise summary of the reader-facing change;
+- routes, schemas, or scripts affected;
+- evidence and source links;
+- screenshots for meaningful visual changes;
+- validation results;
+- unresolved risks or follow-up work.
+
+By contributing, you confirm that you have the right to submit the material and that it does not expose confidential information.
diff --git a/README.md b/README.md
index 3b50eae..47995dc 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,10 @@ Run `node scripts/validate-knowledge-index.mjs` to verify the connected domain a
Mason Nguyen's professional roles and identity links are cross-referenced against his canonical [Coreweaver author profile](https://coreweaver.io/authors/mason-nguyen).
+## Contributing
+
+Evidence-backed corrections, implementation patterns, benchmark records, and case studies are welcome. Read [`CONTRIBUTING.md`](CONTRIBUTING.md) for the content, evidence, machine-readable metadata, and validation requirements.
+
## Reusable technical SEO operating procedure
diff --git a/audit-internal-link-policy.json b/audit-internal-link-policy.json
index 6887925..1db0516 100644
--- a/audit-internal-link-policy.json
+++ b/audit-internal-link-policy.json
@@ -1,7 +1,7 @@
{
- "pages": 54,
- "totalAnchors": 844,
- "internalAnchors": 587,
+ "pages": 57,
+ "totalAnchors": 879,
+ "internalAnchors": 597,
"restrictedInternalLinks": 0,
"crawlControlFindings": 0,
"findings": []
diff --git a/aure-template-demo/index.html b/aure-template-demo/index.html
index 935bc53..248bdd8 100644
--- a/aure-template-demo/index.html
+++ b/aure-template-demo/index.html
@@ -11,26 +11,22 @@
-
-
+
+
-
Train agents to make the useful next step clear while staying inside authorization, evidence, and truth boundaries.
-
The artifact
conversation brief
AURE-13 produces a conversation brief with opening context, verified facts, questions, objections, handoff triggers, and forbidden claims.
Practice: name the actor, decision, evidence source, authority boundary, unresolved question, and next review event. If the evidence is missing, mark the outcome unknown.
-
SOUL check before action: Who authorized it? What information may be used? What actually happened? Who owns the decision when the case gets weird?