Release note // Portfolio
Portfolio v2.0: show the reasoning
The second portfolio version replaces an “under construction” narrative with evidence-linked case studies. It presents the work as an evolution in clinical product reasoning, software delivery and security rather than a list of technologies.
Information architecture
- A concise public CV with only claims supported by the portfolio.
- A blog index connecting release notes, retrospectives and original posts.
- Version-specific notes for PsychApp and Domain Mail.
- A sitemap, crawler policy, changelog and disclosure policy.
Security work included
- Fixed-origin and path-allowlisted pharmacovigilance proxy targets.
- Manual redirect handling so upstream credentials cannot follow a redirect.
- Bounded request and response bodies with upstream timeouts.
- DOM construction with textContent for API and CSV-derived values.
- Exact newsletter consent validation, bounded fields and idempotent Supabase upsert.
Repository cleanup
Obsolete GitHub Skills workflows, duplicate signup output, archived 404 source pages and deployment notes from unrelated older versions were removed. Current backends were deliberately retained until their production ownership can be verified.
Definition of done
A release is not proven by a branch alone. Acceptance includes review, merge, deployment of the expected commit, route crawling, responsive and accessibility checks, and comparison of live claims with repository state.