Student-ops separates user-owned data (never touched by updates) from system code (auto-updatable).
Files and folders containing personal data or user customizations:
| Path | Purpose |
|---|---|
config/profile.yml |
Student identity, stats, goals, financial info |
modes/_profile.md |
User-customized archetypes, scoring weights, narrative |
portals.yml |
Active portal configuration |
data/applications.md |
Master tracker |
data/pipeline.md |
Inbox |
data/scan-history.tsv |
Scanner dedup |
data/deadlines.md |
Generated deadline dashboard |
reports/* |
All evaluation reports |
essays/* |
Essay drafts |
aid-letters/* |
Financial aid documents |
output/* |
Generated PDFs and exports |
.update-dismissed |
User's dismissed version pin |
VERSION.local |
Optional override |
Rule: The AI must NEVER write user-specific content into system-layer files. If the user says "I want to weight financial fit more heavily," the AI edits modes/_profile.md, NOT modes/_shared.md.
Files that get overwritten on node update-system.mjs apply:
| Path | Purpose |
|---|---|
CLAUDE.md |
System brain |
modes/_shared.md |
Shared system context |
modes/university.md |
University mode definition |
modes/essay.md |
Essay mode definition |
modes/scholarship.md |
Scholarship mode definition |
modes/financial.md |
Financial mode definition |
modes/internship.md |
Internship mode definition |
modes/career-path.md |
Career path mode definition |
modes/compare.md |
Compare mode definition |
modes/deadline.md |
Deadline mode definition |
modes/tracker.md |
Tracker mode definition |
modes/apply.md |
Apply mode definition |
modes/scan.md |
Scan mode definition |
modes/pipeline.md |
Pipeline mode definition |
modes/batch.md |
Batch mode definition |
modes/_profile.template.md |
Template for _profile.md |
templates/states.yml |
Canonical states |
templates/portals.example.yml |
Template for portals.yml |
*.mjs |
All scripts |
package.json |
Dependencies |
VERSION |
System version |
Rule: Users don't edit these directly. If they want to change behavior, the AI routes the change to modes/_profile.md or config/profile.yml.
Translate X into a modes/_profile.md entry instead. Only edit CLAUDE.md if the change is genuinely a system-wide default that other users would benefit from — and even then, suggest opening a PR.
Add an override in modes/_profile.md under scoring_weights: — don't edit _shared.md.
Create modes/{lang}/ and duplicate the needed files. Don't edit the English originals.
Add to modes/ — this is a system-layer addition. If it's purely personal, name it modes/_custom-*.md and document it as user-layer in their copy.