Project knowledge for howard-toolbox: a collection of productivity tools for quantitative research (emailer, dial calibration, Excel formatter, quant workflows). Use when the user mentions howard-toolbox, emailer, dial calibration, Excel formatter, quant workflows, or references any tool from that project. Also use when the workspace is howard-toolbox.
Productivity tools for quantitative research. This is the canonical source
of truth for project knowledge. The repo lives at S:\QR\hzeng\howard-toolbox;
~/.cursor/skills/howard-toolbox is a copy kept in sync for cross-workspace loading.
The agent may proactively propose updates to this file. All writes require a
diff preview and user approval before saving. Write to the S drive first
(S:\QR\hzeng\howard-toolbox\.cursor\skills\howard-toolbox\SKILL.md), then
copy to ~/.cursor/skills/howard-toolbox/SKILL.md. Consolidate if this file
exceeds ~120 lines.
howard-toolbox/
├── emailer/ # Markdown -> HTML email with clipboard support
│ ├── run.py # Entry point (edit MD_CONTENT, run, paste)
│ ├── render.py # MD -> HTML, base64 images, win32clipboard
│ ├── generate_diagram.py # Matplotlib flowcharts
│ └── ai_instructions.md # AI prompt guide for email formatting
│
├── dial/ # Model dial calibration & overrides
│ ├── update_dials.py # CLI: generate specs, apply dial overrides
│ ├── dial_utils.py # Tracking file parsing, summary extraction
│ └── run.py # Batch dial-ratio analysis -> Excel
│
├── formatter/ # Template-driven Excel formatting
│ └── format_excel.py # Scan, detect types, apply templates
│
├── quant_workflows/ # Jupyter notebook with 18 workflow sections
│ └── quant_workflows_notebook.ipynb
│
└── requirements.txt # pywin32, markdown, Pillow, bs4, pandas, openpyxl, numpy, matplotlib
7 Python files (~3K lines). Budget: 12 max.
MD_CONTENT in run.py -> run -> paste from clipboard.render.py: markdown lib -> BeautifulSoup post-processing -> inline styles -> base64 image embed -> win32clipboard HTML Format.ai_instructions.md: AI prompt guide for formatting MD_CONTENT (image syntax, math, Outlook spacing).{{CLIPBOARD}} tag captures current OS clipboard image at runtime.assets/. LaTeX converts to CodeCogs <img> tags.win32clipboard, PIL.ImageGrab).--generate-spec extracts all transitions from a model JSON, (2) --spec applies overrides to produce a new JSON with bumped version.dial_utils.py parses tracking Excel workbooks by bucket type, finds latest files by date in filename.run.py batch analysis: dialed vs undialed tracking -> implied dials -> formatted multi-sheet Excel.1.0 = "no dial" (removes Shock). Cohort vs simple shocks handled separately.--scan auto-detects column types -> edit JSON template -> apply.data_only=True for sampling, normal for editing.--inplace does atomic write with .bak.AS_OF_DATE.GITHUB_TOKEN env var for Git operations.pathlib.Path preferred for new code.render.py imports win32clipboard at top level -- crashes on non-Windows.pd.ExcelFile in dial_utils.py should be context-managed (known leak).generate_diagram.py __main__ has a hardcoded absolute path..gitignore excludes images and output dirs; stale tracked files may need git rm --cached.