Sam Rolfe 0eb151117e Phase 1a: content schema validator (freeze the schema)
Implements AGENTS.md section 7 front-matter schema as a single-file,
standard-library-only Python validator; no third-party YAML dependency
and no framework. Adds the `make validate` gate, a 20-case fixture set
and docs/content-schema.md.

DoD satisfied:
- make validate runs and exits 0 on an empty/clean content/ tree
  (missing dir and empty dir both exit 0; fixture ok-empty covers it).
- Every violation class has a fixture under test/fixtures/fail-*; each
  exits non-zero with one line per violation (file:line: field: rule).
  `make test` runs all 20 cases: 20/20 pass.
- Dangling artefact reference is fatal (fail-dangling-artefact;
  artefacts[].url must resolve to an existing in-repo L3 stub or asset).
- Unknown front-matter field is fatal (fail-unknown-field), including
  unknown keys nested inside artefacts[]/metrics[].
- docs/content-schema.md committed; states the frozen schema, links to
  AGENTS.md section 7, and records that any later schema change is a
  breaking change requiring Sam's approval.
- Scope respected: no content authored, no rendering, no site code.

Files: Makefile, tools/validate_content.py, test/fixtures/**,
docs/content-schema.md, .gitignore (__pycache__).
2026-10-26 17:26:00 +11:00

Ai Resume — Paperclip build directory

This is the working directory for the Paperclip project Resume Ai. Paperclip builds here. Everything needed to build is in this folder; nothing outside it is required.

Relationship to the planning folder

Folder Holds Status
/home/sam/paseo/projects/resume_ai_system/ The why — research, cull decisions, stack rationale, evidence notes, content drafts Planning. Not the build. Sam works here
/home/sam/paseo/projects/resume_ai_system_paperclip_build/ The what — build spec, phase documents, reference material, and the site itself This folder. Paperclip works here

The planning folder is read-only reference. Do not edit it from here, and do not make the build depend on it — anything needed must be copied in.

Start here

  1. AGENTS.md — the build spec. Constraints, conventions, and the phase list. Read it before anything else.
  2. docs/phase-N-*.md — one document per phase: work, Definition of Done, out of scope, risks.
  3. reference/ — frozen decisions, stack and budgets, content map, acceptance tests.

Phases

# Phase Ships
1 Content source of truth content/ + validator
2 Mode A static site Browsable pre-rendered site, no AI
3 Public deployment Live URL behind Caddy
4 Corpus and retrieval content/ → Qdrant
5 Mode B console Streaming, cited answers
6 Guardrails, cost, kill switch Safe to leave public
7 Polish Logos, diagrams, code exhibits

Order is deliberate. Content first (both renderers need it). Deploy at Phase 3, not last — a live half-built URL is worth more than a perfect site that never ships. AI after deployment so it can never block launch.

Repository

This folder is the git working copy of sam/ai-resume. One repo, one product.

Previously held an abandoned Vite/React scaffold. It was replaced by this build spec; the history is retained because it honestly records the false start, and it is referenced in the site's "alternatives considered" content.

Ground rules

  • Do not touch other systems. No stopping containers, no editing other projects, no nixos-rebuild, no Caddy changes except the single block specified in Phase 3 — and that one Sam applies.
  • Mode A must work with every AI service stopped. Hard gate.
  • Never invent facts about Sam's career. If it is not in reference/ or content/, ask.
  • Secrets live in ~/.config/environment.d/ only.
  • All models go through OmniRoute.

Current state

  • Repo prepared, scaffold retired, build spec written
  • Phase 1 — content source of truth
  • Phase 2 — static site
  • Phase 3 — public deployment
  • Phase 4 — corpus
  • Phase 5 — AI overlay
  • Phase 6 — guardrails
  • Phase 7 — polish
Description
AI-powered resume showcase — React 19, terminal UI, Markdown rendering
Readme 868 KiB
Languages
Python 44.2%
Go 35.2%
CSS 5.6%
templ 5.2%
Shell 4%
Other 5.8%