Files
open-design/.github/ISSUE_TEMPLATE
4ee0cf8efd feat(landing): human-in-the-loop tutorial sync + contribute CTA (#4038)
* 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>
2026-06-10 06:13:21 +00:00
..