You are working in the ProjectExample/ folder, which is a Git repository. This folder contains:
- Git-tracked folders:
Code/,Figures/,Tables/,Paper/,Slides/ - Symlinked folders:
Data,Notes,Output(these link to../ProjectExample-Share/which is outside the Git repo)
You can access all folders normally - the symlinks are transparent. Files in symlinked folders are NOT tracked by Git but are synced via Dropbox.
This project follows a two-folder structure designed for academic research collaboration:
Code/- All analysis scripts organized by task (e.g., DataCleaning/)Figures/- Final presentable charts and visualizations (version-tracked)Tables/- Final presentable results and summary statistics (version-tracked)Paper/- LaTeX documents for academic papersSlides/- LaTeX presentationsData,Notes,Output- Symlinks to corresponding folders in ProjectExample-Share/
Data/- Raw and processed datasets (read-only, not version-tracked)Notes/- Research notes and documentationOutput/- Intermediate results organized by task matching Code/ structure
Organize scripts by research tasks, not by individual runs. Examples:
Code/DataCleaning/- Scripts for data preparation and cleaningCode/Analysis/- Main analysis scriptsCode/Robustness/- Robustness checks and sensitivity analysesCode/Visualization/- Scripts generating figures and tables
Important: Edit existing scripts rather than creating new ones for variations of the same task.
Mirror the Code/ structure with corresponding output folders:
Output/DataCleaning/- Cleaned datasets, processing logsOutput/Analysis/- Regression results, statistical outputsOutput/Robustness/- Alternative specification resultsOutput/Visualization/- Draft figures and tables (not final versions)
Within each Output subfolder, optionally organize by script name:
Output/Analysis/main_regression.py/- Outputs from main_regression.pyOutput/Analysis/heterogeneity.py/- Outputs from heterogeneity.py
- Code is for academic research and NOT meant for production-ready. Therefore, write concise and efficient code without safety check (
try...catch...,if...else) unless it's necessary or specifically requested - Due to the exploratory nature, DO write interactive code that can be evaluated line-by-line
- Document only when necessary, but be concise
- When producing outputs, save in
Output/following the subfolder convention. Do NOT save outputs inFigures/orTables/unless explicitly requested - The project is version controlled with Git. Hence, when adding new analysis, Do NOT create a new script per task, but DO edit the existing files directly
- Always execute at the project root rather than
cdinto subfolders
- Uses
uvfor dependency management - Virtual environment located at
~/.venvs/ProjectExample - Run commands with
uv run <command>(e.g.,uv run python script.py) - Add dependencies with
uv add package
Whenever calling Python-related programs, use uv unless it is infeasible.