Replace Vite/React scaffold with Go build spec
- AGENTS.md: build spec for Paperclip (constraints, conventions, 7 phases) - docs/phase-1..7: per-phase work, DoD, out-of-scope, risks - reference/: frozen decisions, stack+ports+budgets, content map, acceptance tests - agents/: persona and security policy drafts - Retires the React scaffold; history retained as record of the false start
This commit is contained in:
90
README.md
90
README.md
@@ -1,65 +1,57 @@
|
||||
# AI Resume
|
||||
# Ai Resume — Paperclip build directory
|
||||
|
||||
**An AI-powered resume and career showcase — a terminal-inspired interface that lets recruiters ask questions and get answers about my work.**
|
||||
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.
|
||||
|
||||
A React application that presents a resume through an interactive, terminal-flavored interface. Features Markdown rendering, syntax highlighting, and a terminal emulator (`xterm`) — designed to demonstrate both front-end craft and AI integration for employment outreach.
|
||||
## Relationship to the planning folder
|
||||
|
||||
## What it is
|
||||
| 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** |
|
||||
|
||||
A showcase site where my professional story is told through an interactive AI experience. Instead of a static PDF, recruiters engage with a terminal-style interface backed by AI — asking questions about experience, skills, and projects, and receiving answers rendered as rich Markdown.
|
||||
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.
|
||||
|
||||
## Tech stack
|
||||
## Start here
|
||||
|
||||
| Layer | Technology |
|
||||
|-------|-----------|
|
||||
| Framework | React 19 |
|
||||
| Build | Vite 6 |
|
||||
| Terminal UI | xterm (`@xterm/xterm`) |
|
||||
| Markdown | react-markdown |
|
||||
| Syntax highlighting | prismjs |
|
||||
| Language | TypeScript |
|
||||
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.
|
||||
|
||||
## Architecture & design patterns
|
||||
## Phases
|
||||
|
||||
- **Terminal-driven UX** — `xterm` provides the interactive terminal canvas
|
||||
- **Markdown pipeline** — AI responses rendered through `react-markdown` + prismjs syntax highlighting for code blocks
|
||||
- **Componentized** — `App.tsx` orchestrates the hero, framework, and terminal views
|
||||
- **Vite HMR** — fast development with hot module replacement
|
||||
- **Static + dynamic blend** — static showcase content augmented by the live AI interface
|
||||
| # | 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 |
|
||||
|
||||
## Standards
|
||||
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.
|
||||
|
||||
- TypeScript
|
||||
- Semantic HTML
|
||||
- Vite production build (`tsc -b && vite build`)
|
||||
- ESLint for code quality
|
||||
## Repository
|
||||
|
||||
## Getting started
|
||||
This folder **is** the git working copy of `sam/ai-resume`. One repo, one product.
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # development server
|
||||
npm run build # production build
|
||||
npm run lint # lint
|
||||
```
|
||||
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.
|
||||
|
||||
## Structure
|
||||
## Ground rules
|
||||
|
||||
```
|
||||
src/
|
||||
├── assets/ # Images (hero, framework logos)
|
||||
├── App.tsx # Main application shell
|
||||
├── App.css # Styling
|
||||
├── index.css # Global styles
|
||||
└── main.tsx # Entry point
|
||||
```
|
||||
- **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.
|
||||
|
||||
## Roadmap
|
||||
## Current state
|
||||
|
||||
- [ ] Wire the terminal to the AI resume backend (see `aboutme_chat` — the LangChain/RAG service)
|
||||
- [ ] Embed AI Q&A about experience, skills, and projects
|
||||
- [ ] Add project gallery with syntax-highlighted code samples
|
||||
|
||||
---
|
||||
|
||||
*The front-end of the AI resume system. Backend services (LangChain/RAG chat) live in [aboutme_chat](https://gitea.lab.audasmedia.com.au/sam/aboutme_chat). Part of the Sam Rolfe portfolio family.*
|
||||
- [x] 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
|
||||
|
||||
Reference in New Issue
Block a user