# Data Contract This document defines which files belong to the **system** (auto-updatable) and which belong to the **user** (never touched by updates). ## User Layer (NEVER auto-updated) These files contain your personal data, customizations, and work product. Updates will NEVER modify them. | File | Purpose | |------|---------| | `cv.md` | Your CV in markdown | | `config/profile.yml` | Your identity, targets, comp range | | `modes/_profile.md` | Your archetypes, narrative, negotiation scripts | | `modes/_custom.md` | Your house rules, custom workflows & output preferences (procedural — survives updates) | | `voice-dna.md` | Your writing voice guardrail — banned words, anti-AI-slop rules, tone (optional) | | `article-digest.md` | Your proof points from portfolio | | `interview-prep/story-bank.md` | Your accumulated STAR+R stories | | `interview-prep/{company}-{role}.md` | Company-specific interview prep reports (written by `/career-ops interview-prep`) | | `interview-prep/sessions/*.md` | Interview sessions — real transcripts + mock sessions (sensitive: real names/companies; gitignored except scaffold). Drives `patterns` Step 1b targeting signal and `interview-redflag` analysis. Scaffold files (`README.md`, `.gitkeep`) are system-owned. | | `portals.yml` | Your customized company list | | `config/plugins.yml` | Your plugin activation toggles (opt-in; seeded from `config/plugins.example.yml`) | | `plugins.local/` | Your own / private plugins (never auto-updated) | | `plugins.lock` | Integrity pins + recorded consent for your enabled plugins (generated; never auto-updated) | | `data/applications.md` | Your application tracker (source of truth) | | `data/applications.db` | Derived query index over `applications.md` (SQLite, rebuilt by `node tracker.mjs sync` — safe to delete) | | `data/pipeline.md` | Your URL inbox | | `data/scan-history.tsv` | Your scan history | | `data/follow-ups.md` | Your follow-up history | | `writing-samples/*` | Your personal writing samples for style calibration (except `writing-samples/README.md`, which is system-owned documentation delivered by updates) | | `reports/*` | Your evaluation reports | | `output/*` | Your generated PDFs | | `jds/*` | Your saved job descriptions | ## System Layer (safe to auto-update) These files contain system logic, scripts, templates, and instructions that improve with each release. | File | Purpose | |------|---------| | `modes/_shared.md` | Scoring system, global rules, tools | | `modes/_custom.template.md` | Template seed for the user's `modes/_custom.md` | | `modes/oferta.md` | Evaluation mode instructions | | `modes/pdf.md` | PDF generation instructions | | `modes/scan.md` | Portal scanner instructions | | `modes/batch.md` | Batch processing instructions | | `modes/apply.md` | Application assistant instructions | | `modes/auto-pipeline.md` | Auto-pipeline instructions | | `modes/contacto.md` | LinkedIn outreach instructions | | `modes/email.md` | Formal application email draft instructions | | `modes/deep.md` | Research prompt instructions | | `modes/regional/*` | Regional market calibration modes | | `modes/ofertas.md` | Comparison instructions | | `modes/pipeline.md` | Pipeline processing instructions | | `modes/project.md` | Project evaluation instructions | | `modes/tracker.md` | Tracker instructions | | `modes/training.md` | Training evaluation instructions | | `modes/patterns.md` | Pattern analysis instructions | | `modes/followup.md` | Follow-up cadence instructions | | `modes/interview/*` | Interview prep planning, practice, and debrief skills | | `modes/de/*` | German language modes | | `modes/fr/*` | French language modes | | `modes/ja/*` | Japanese language modes | | `modes/pl/*` | Polish language modes | | `modes/pt/*` | Portuguese language modes | | `modes/ru/*` | Russian language modes | | `modes/heuristics/*` | Shared candidate-facing application heuristics | | `CLAUDE.md` | Agent instructions (Claude Code) | | `OPENCODE.md` | Agent instructions (OpenCode) | | `GEMINI.md` | Legacy no-op context guard (prevents Antigravity duplicate imports) | | `AGENTS.md` | Canonical agent instructions (imported by CLI-specific wrappers) | | `*.mjs` | Utility scripts | | `plugins/` | Bundled plugins + the plugin engine (opt-in external integrations) | | `plugins.mjs` | Plugin CLI (list/run/available/add/new/enable/skill/trust/remove) | | `plugins-registry.json` | Curated list of approved community plugins (the trust root) | | `plugin-install.mjs` / `plugin-audit.mjs` / `validate-plugin-registry.mjs` | Plugin install/audit/registry-validation utilities | | `config/plugins.example.yml` | Plugin activation template (seed for `config/plugins.yml`) | | `batch/batch-prompt.md` | Batch worker prompt | | `batch/batch-runner.sh` | Batch orchestrator | | `dashboard/*` | Go TUI dashboard | | `templates/*` | Base templates | | `fonts/*` | Self-hosted fonts | | `.claude/skills/*` | Skill definitions (Claude Code) | | `.opencode/skills/*` | Skill definitions (OpenCode) | | `.qwen/skills/*` | Skill definitions (Qwen Code) | | `.antigravitycli/skills/*` | Skill definitions (Antigravity CLI) | | `.grok/skills/*` | Skill definitions (Grok Build CLI) | | `docs/*` | Documentation | | `VERSION` | Current version number | | `DATA_CONTRACT.md` | This file | | `writing-samples/README.md` | System-owned onboarding documentation for the writing-samples directory | ## The Rule **If a file is in the User Layer, no update process may read, modify, or delete it.** **If a file is in the System Layer, it can be safely replaced with the latest version from the upstream repo.**