Commit Graph
579 Commits
Author SHA1 Message Date
tiennm99 49103efd4f feat(referral): add Kimi referral links 2026-07-17 16:54:27 +07:00
tiennm99 169ce31b30 feat(codex): migrate newsletter workflows to skills 2026-07-14 09:16:44 +07:00
tiennm99 ef7164d053 docs(newsletter): add newsletter 125 2026-07-13 22:03:18 +07:00
tiennm99 ed296b0340 feat(newsletter): add newsletter 124 2026-07-12 18:43:03 +07:00
tiennm99 3900e9ba61 feat(newsletter): add newsletter 123 2026-07-11 18:36:19 +07:00
tiennm99 4290592847 fix(newsletter): preserve source-language image labels 2026-07-11 18:36:03 +07:00
tiennm99 310f1ecadd feat(newsletter): add Newsletter #122 2026-07-10 15:51:25 +07:00
tiennm99 8cb340a364 fix(skills): keep user communication in English 2026-07-10 11:34:59 +07:00
tiennm99 ba45118e1a docs(newsletter): add newsletter 121 2026-07-09 18:19:44 +07:00
tiennm99 b97ff25e4e fix(skills): prefer newsletter terminology 2026-07-09 11:04:08 +07:00
tiennm99 16a6aee020 docs(newsletter): add newsletter 120 2026-07-09 11:03:44 +07:00
tiennm99 6f6a051a0d docs(newsletter): add backlog newsletter tags 2026-07-08 09:22:18 +07:00
tiennm99 bd61e1e68a docs(newsletter): add newsletter 119 2026-07-08 00:21:02 +07:00
tiennm99 12b1500cf8 docs(newsletter): add newsletter 118 2026-07-07 00:06:08 +07:00
tiennm99 c6b6633a5e docs(newsletter): add newsletter 117 2026-07-05 22:18:14 +07:00
tiennm99 06b9cb583f docs(newsletter): add newsletter 116 2026-07-05 21:59:20 +07:00
tiennm99 90f4ac90fc feat(newsletter): add newsletter 115 2026-07-04 22:17:11 +07:00
tiennm99 4ad92e5cff feat(newsletter): add newsletter 114 2026-07-04 18:01:32 +07:00
tiennm99 e92f4682df fix(newsletter): preserve source article titles 2026-07-04 18:01:32 +07:00
github-actions[bot] fde9e0ccec chore(projects): refresh projects list 2026-06-30 01:56:55 +07:00
tiennm99 b7947e9341 feat(referral): add Aiven managed data platform referral 2026-06-28 09:38:25 +07:00
tiennm99 48629a10c7 docs(newsletter): add newsletter 113 2026-06-24 18:14:21 +07:00
tiennm99 2f5d49cfac feat: publish Newsletter #112 2026-06-24 10:38:46 +07:00
github-actions[bot] ab0aed2d26 chore(projects): refresh projects list 2026-06-24 02:00:40 +07:00
github-actions[bot] 7b4f169c0b chore(projects): refresh projects list 2026-06-23 02:59:11 +07:00
github-actions[bot] c1d014382a chore(projects): refresh projects list 2026-06-22 01:13:38 +07:00
github-actions[bot] b2070ab961 chore(projects): refresh projects list 2026-06-20 01:27:02 +07:00
github-actions[bot] 8eb38d4352 chore(projects): refresh projects list 2026-06-14 01:02:06 +07:00
github-actions[bot] cabcdd7040 chore(projects): refresh projects list 2026-06-13 01:57:44 +07:00
tiennm99 57057a73b5 feat: publish Newsletter #111 2026-06-11 21:23:03 +07:00
tiennm99 4c035836c4 feat: publish Newsletter #110 2026-06-07 15:39:25 +07:00
tiennm99 6e0cfbb25a feat(post): add newsletter #109 — IDE history, debugging, containers, AI coding, vector indexing 2026-06-06 06:21:13 +07:00
tiennm99 db6908101c refactor(referral): reorder AI coding platform providers
- Move Z.ai and MiniMax to the top of the section
- Place Xiaomi MiMo directly above ModelArk
2026-06-05 09:38:14 +07:00
tiennm99 ee42ef56de fix(referral): simplify MiniMax description, remove personal reward amount 2026-06-04 17:59:10 +07:00
tiennm99 ea9d4de17a feat(referral): update MiniMax description — 5 voucher, Jul 1 deadline, add minimax.png 2026-06-04 17:56:54 +07:00
tiennm99 b3168fc2f1 feat(post): add newsletter #108 — AI coding, mental models, developer productivity 2026-06-04 17:50:18 +07:00
tiennm99 73e34a61ad fix(referral): add missing mimo.png image 2026-06-04 17:39:13 +07:00
tiennm99 54e230f2cc feat(referral): add thank-you note 2026-06-04 17:27:25 +07:00
tiennm99 e961c449c4 feat(referral): add Xiaomi MiMo Open Platform referral 2026-06-04 17:20:59 +07:00
tiennm99 c5599d4e34 feat(referral): add Alibaba Cloud referral program 2026-06-04 17:19:58 +07:00
tiennm99 dd61a076b1 feat(post): add Gemini CLI / Antigravity as 4th AI coding tool
- Add Gemini CLI and Antigravity to the list of tools used
- Add dedicated section with deprecation timeline (June 18 cutoff)
- Update tags with Gemini CLI and Antigravity
2026-06-04 15:13:56 +07:00
tiennm99 ee88718b1c feat(post): add post on rotating AI coding tools to maximize subscription value 2026-06-04 09:43:32 +07:00
tiennm99 4f6afb224d feat(referral): mark friend's claude pass as out of stock 2026-06-03 09:52:05 +07:00
tiennm99 8f4e1928d8 feat(tooling): run blog from Claude Code, OpenCode & Codex on shared engine
Extract newsletter scripts to a neutral scripts/newsletter/ engine and add
side-by-side support for all three AI coding tools off one source of truth.

- Move 9 scripts + substack config from .claude/skills/**/scripts to
  scripts/newsletter/ (history preserved); fix PROJECT_ROOT depth and
  cross-require/config paths; repoint all SKILL.md invocations
- Add canonical AGENTS.md; reduce CLAUDE.md to an @AGENTS.md import
- Add opencode.json (permissions, no MCP); skills auto-discovered in place
- Add codex/prompts/*.md (6 prompts) + copy installers (install.sh/.ps1)
- Add docs/multi-tool-usage.md (setup, per-tool invocation, teardown) + README pointer
2026-06-02 14:07:22 +07:00
tiennm99 1dea951355 feat(referral): prioritize opencode go referral 2026-06-01 16:44:47 +07:00
tiennm99 a542128395 feat(referral): add opencode go referral 2026-06-01 16:36:47 +07:00
tiennm99 fe06f547de feat(newsletter): add Newsletter #107 with articles and bonus images 2026-05-30 21:22:06 +07:00
tiennm99 d262159742 refactor(skills): fix dedup edge cases and modularize mt-* scripts
- fix checkDuplicate false-negative on Substack cover images (uuid with no size suffix)
- stop cleanUrl from corrupting the query string on unparseable input
- extract shared fetchWithTimeout into url-utils (consistent timer cleanup)
- split find-substack-post html/rss helpers into html-text-utils
- scan content/post for duplicates, matching the other scripts
- correct doc drift in mt-add-image/mt-add-url and drop plan-phase code comment
2026-05-30 20:31:50 +07:00
tiennm99 eada44d407 refactor(skills): share Substack image helpers and harden URL dedup/routing
- extract isSubstackImage/substackImageUuid into shared url-utils
- route Substack images by host (handles f_auto/.avif/extensionless CDN URLs)
- replace grep-based duplicate check with boundary-aware pure-JS scan
- share one fetch budget across publications in deep sitemap crawl
- expand file-extension classification (avif/heic/mkv/pptx/etc.)
2026-05-30 20:13:27 +07:00
tiennm99 5f78b3e2be feat(mt-add-image): confirm image label from source post candidates
ByteByteGo images carry no caption/alt and image order cannot be mapped to
titles automatically (sponsor and video items interleave). Extract the source
post's TOC topic titles as candidates and let the user pick the matching label
(caption is used directly when a publication provides one; typing is always
available). Validated against newsletters 101-106: the correct title appears
in the candidate set for all 8 images.
2026-05-30 17:23:10 +07:00