diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..857b801 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +TRELLO_API_KEY=your_trello_api_key_here +TRELLO_TOKEN=your_trello_token_here diff --git a/.mcp.json b/.mcp.json index d92ef95..9782523 100644 --- a/.mcp.json +++ b/.mcp.json @@ -7,6 +7,13 @@ "chrome-devtools-mcp@latest", "--browserUrl=http://127.0.0.1:9222" ] + }, + "trello": { + "command": "sh", + "args": [ + "-c", + "set -a; [ -f .env ] && . ./.env; set +a; exec bunx @delorenj/mcp-server-trello" + ] } } -} \ No newline at end of file +} diff --git a/CLAUDE.md b/CLAUDE.md index 8fae49c..9333f61 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -24,7 +24,7 @@ If the skill itself can't get the content (Chrome not running, or Oleg is not si ``` base/ - cv-YYYY-MM-base.md # current master CV in Markdown + oleg_proskurin__cv.md # master CV(s) in Markdown, one per target role reference/ Oleg_Proskurin_*.pdf # canonical visual reference (do not edit) templates/ @@ -50,20 +50,20 @@ output/ ## Workflow 1 — Generate base CV PDF from Markdown -**Input**: `base/cv-YYYY-MM-base.md` -**Output**: `output/pdf/cv-YYYY-MM-base.pdf` +**Input**: `base/oleg_proskurin__cv.md` (e.g. `oleg_proskurin_ai_engineer_fullstack_cv.md`) +**Output**: `output/pdf/oleg_proskurin__cv.pdf` Steps: 1. Read the Markdown source and the reference PDF (`base/reference/...`) to confirm structure. -2. Generate `output/html/cv-YYYY-MM-base.html` using `templates/cv-template.html` as a starting point. +2. Generate `output/html/oleg_proskurin__cv.html` using `templates/cv-template.html` as a starting point. - Link the stylesheet via `` (absolute path — the PDF script serves the project root). - Map MD content to HTML tags **verbatim** — section titles, punctuation, list structure, dates, and contact separators must match MD character-for-character. The structure below is the tag shape; the **text** comes from MD. See "Content vs. style — separation rule" below. 3. Run the PDF generator: ```bash - pnpm pdf output/html/cv-YYYY-MM-base.html + pnpm pdf output/html/oleg_proskurin__cv.html ``` -4. Open the resulting PDF (`output/pdf/cv-YYYY-MM-base.pdf`) and verify single-page-ish, no orphan bullets, no overflow. +4. Open the resulting PDF (`output/pdf/oleg_proskurin__cv.pdf`) and verify single-page-ish, no orphan bullets, no overflow. --- @@ -205,7 +205,7 @@ The CSS in `templates/cv-style.css` already encodes these — when generating HT ## Conventions - **Language**: every artifact (HTML, MD, PDF, tracking rows, card notes) is in English. Always. -- **Filenames**: kebab-case. CVs: `cv-YYYY-MM-base.md` for base, `cv.md` inside `tailored//` for tailored. +- **Filenames**: snake_case for base CVs (`oleg_proskurin__cv.md`), kebab-case for tailored slugs. Tailored CV: `cv.md` inside `tailored//`. - **Dates**: absolute (`2026-05-24`), never "last Thursday". - **Don't edit the reference PDF.** It is the immutable visual anchor. - **Don't auto-regenerate PDFs** unless Oleg asks — show diffs first when content changes. diff --git a/README.md b/README.md index 61f2b39..db938eb 100644 --- a/README.md +++ b/README.md @@ -33,14 +33,14 @@ pnpm install Generate PDF from an HTML file: ```bash -pnpm pdf output/html/cv-2026-05-base.html -# -> output/pdf/cv-2026-05-base.pdf +pnpm pdf output/html/oleg_proskurin_ai_engineer_fullstack_cv.html +# -> output/pdf/oleg_proskurin_ai_engineer_fullstack_cv.pdf ``` The HTML file should be generated by Claude from the Markdown source — see `CLAUDE.md` for the full flow and styling rules. ## Workflows -1. **New base CV**: drop a new `cv-YYYY-MM-base.md` into `base/`, ask Claude to generate the HTML, then run `pnpm pdf`. +1. **New base CV**: drop a new `oleg_proskurin__cv.md` into `base/`, ask Claude to generate the HTML, then run `pnpm pdf`. 2. **Tailor for a company**: ask Claude to create `tailored//cv.md` from the latest base, generate HTML, then PDF. 3. **Track applications**: append to `tracking/applications.md` and `tracking/outreach.md`. diff --git a/base/cv-2026-05-base.md b/base/oleg_proskurin_ai_engineer_fullstack_cv.md similarity index 100% rename from base/cv-2026-05-base.md rename to base/oleg_proskurin_ai_engineer_fullstack_cv.md diff --git a/base/reference/supabase-ai-tooling-essay-q1-eval-loop.md b/base/reference/supabase-ai-tooling-essay-q1-eval-loop.md index 1c71413..1db17e7 100644 --- a/base/reference/supabase-ai-tooling-essay-q1-eval-loop.md +++ b/base/reference/supabase-ai-tooling-essay-q1-eval-loop.md @@ -6,7 +6,7 @@ - **Роль:** AI Tooling Engineer - **Канал подачи:** ashbyhq, через careers-page Supabase - **Дата подачи:** 29 мая 2026 -- **CV использовано:** CV-A (cv-2026-05-base.md), pdf-вариант `oleg_proskurin_ai_engineer_fullstack_cv.pdf` +- **CV использовано:** CV-A (oleg_proskurin_ai_engineer_fullstack_cv.md), pdf-вариант `oleg_proskurin_ai_engineer_fullstack_cv.pdf` - **Статус:** подано, ожидаем ответа ## Вопрос (дословно) diff --git a/base/reference/supabase-ai-tooling-essay-q2-knowledge-representation.md b/base/reference/supabase-ai-tooling-essay-q2-knowledge-representation.md index 2981c56..f752824 100644 --- a/base/reference/supabase-ai-tooling-essay-q2-knowledge-representation.md +++ b/base/reference/supabase-ai-tooling-essay-q2-knowledge-representation.md @@ -6,7 +6,7 @@ - **Роль:** AI Tooling Engineer - **Канал подачи:** ashbyhq, через careers-page Supabase - **Дата подачи:** 29 мая 2026 -- **CV использовано:** CV-A (cv-2026-05-base.md), pdf-вариант `oleg_proskurin_ai_engineer_fullstack_cv.pdf` +- **CV использовано:** CV-A (oleg_proskurin_ai_engineer_fullstack_cv.md), pdf-вариант `oleg_proskurin_ai_engineer_fullstack_cv.pdf` - **Статус:** подано, ожидаем ответа ## Вопрос (дословно) diff --git a/package.json b/package.json index bdae0b8..fa342fe 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "private": true, "type": "module", "scripts": { - "pdf": "node scripts/generate-pdf.mjs" + "pdf": "node scripts/generate-pdf.mjs", + "chrome": "bash scripts/launch-chrome.sh &" }, "dependencies": { "puppeteer": "^24.37.3"