Feat/monthly project generator - #160
Open
alternative-dl wants to merge 43 commits into
Open
Conversation
Signed-off-by: Didrik Liu <94482439+alternative-dl@users.noreply.github.com>
10:12 Error: There should be no space after '{'. object-curly-spacing
10:33 Error: There should be no space before '}'. object-curly-spacing
Content: sync site with current CV — new roles (CommodIQ CTO, Pricer Data Scientist & AI Engineer, ARIFY), combined KTH degree, updated skills, and add the master's thesis to the portfolio. Design: restyle the whole site in a digital-brutalism aesthetic — thick ink borders, hard offset shadows, loud color-blocked sections (acid/sky/lime/flare), and Space Grotesk + Space Mono type. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restore digital-brutalism redesign
Revert the visual theme to the neo-brutalism design (flat paper, black structure, single #ff4d00 signal accent, var(--font-display)/mono) that was on main at a825102, undoing the digital-brutalism (yellow/green, Space Grotesk) look restored via PR #1. Theme files only — data.tsx and the in-progress monthly-project generator work are intentionally left uncommitted in the working tree. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A self-contained generator (scripts/generate-project) that monthly: picks a project idea and writes a static web app with Claude, deploys it to Cloud Run on leebot-dev, screenshots it with Playwright, and appends a PortfolioItem. A GitHub Actions cron runs it and opens a PR for review; nothing publishes to the live resume automatically. - Isolated mini-package (own package.json) — untouched by the Next app deps - data.tsx spreads generatedProjects (auto-generated module) into portfolioItems - Guardrails: static-only apps, fixed human-owned Dockerfile, PR review gate - setup-gcp.sh wires Workload Identity Federation (no SA keys in GitHub) - Verified end-to-end via --dry-run (real screenshot) + app typecheck passes Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Image imports (../images/...) must precede the ./dataDef import, else the monthly PR's Vercel build fails lint. Verified: a populated module now passes eslint. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Monthly LLM-generated project pipeline
…cp.sh Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rework the generator to run headless `claude -p --output-format json` authenticated with a Max-subscription token (CLAUDE_CODE_OAUTH_TOKEN from `claude setup-token`) instead of calling the Anthropic Messages API with a paid ANTHROPIC_API_KEY — so monthly generation draws from the Max plan. - Replace anthropic.ts (SDK) with claude.ts: shells out to the `claude` CLI, disables all tools, parses the `.result` envelope, extracts JSON (handles fenced blocks) with validation. Verified the real -p json envelope shape. - Drop the @anthropic-ai/sdk dependency. - Workflow: install the Claude Code CLI, pass CLAUDE_CODE_OAUTH_TOKEN (no ANTHROPIC_API_KEY, which would override the token and bill per-token). - Update README, setup-gcp.sh output, and config env vars accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tool A shadowing ANTHROPIC_API_KEY (even empty) in the environment made the headless `claude` call fail auth instead of using the subscription login. Strip it (and ANTHROPIC_AUTH_TOKEN) from the child env. Also remove 'MultiEdit' from the disallowed-tools list — not a known tool name. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Inaugural output of the monthly pipeline (generated via Claude Code on the Max plan, deployed to Cloud Run): an interactive Monte Carlo price-path simulator. Live at demo-price-paths in leebot-dev. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Publish Price Path Explorer + switch generator to Max subscription
execFileSync swallowed the child's stderr, leaving only a useless 'Command failed' with no reason. Catch and include stderr/stdout/exit status (plus a missing-token hint) so CI failures are diagnosable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add monthly project (2026-07-20)
- Each generated project now carries a sourceUrl (its committed generated-projects/<slug>/ folder on GitHub); the portfolio card shows a "Code" link alongside the live-demo link. - Deploy generated demos with a cost-bounded Cloud Run config (128Mi / 0.5 vCPU, scale-to-zero, max 1 instance) — an idle demo costs nothing. - Replace the one-line styling instruction with a full digital-brutalism design brief so Opus produces polished, on-brand demos (palette, borders, hard shadows, type scale, tactile controls, craft checklist, striking first paint). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Backfill the sourceUrl for the second generated project so every portfolio demo exposes its committed source, consistent with price-paths. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.