mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
* feat(landing): human-in-the-loop tutorial sync + contribute CTA Two tutorials-page improvements: 1. Move the daily YouTube sync to a human review step in Feishu. The cron no longer generates entries or opens PRs on its own; notify-candidates.ts posts a numbered candidate digest (after dedupe + the LLM relevance gate) to a Feishu webhook, a maintainer replies which to publish, and generate-selected.ts turns the approved ids into entries for a PR. Splits the old fetch script into youtube.ts (API client) + notify/generate entries. 2. Add a 'Contribute a tutorial' CTA to the tutorials index that opens GitHub's create-file UI prefilled with a frontmatter template, so anyone can propose a tutorial via pull request. New i18n keys (en + zh + zh-tw; others fall back to en). * feat(landing): friendlier tutorial contribution via issue form, surfaced higher Review feedback on the contribute entry point: - Submitting via a prefilled markdown file was intimidating. Add a GitHub issue form (tutorial-submission.yml) — paste a video link, pick a category, done — as the primary path; keep the prefilled-PR link as a secondary option for contributors who prefer a pull request. - Move the CTA from the very bottom to directly under the masthead and restyle it as a compact, coral-accented bar so it is seen without scrolling past the whole list. Also address PR review: - notify-candidates: treat Feishu's legacy non-zero StatusCode (returned on an HTTP 200) as a failure, not just the newer code field. - generate-selected: report selected ids that were not generated (unparseable args, videos not found on YouTube, write failures) and exit non-zero, so an approved selection can't be silently dropped. --------- Co-authored-by: Joey <276262049+xne998808-ai@users.noreply.github.com>