본문으로 건너뛰기
cccskills
무료GitHub에 공개

publish-issue

Publish one Weekly issue end to end: move the Chinese draft from the MiaoYan iCloud folder into the repo, write the English twin, convert the cover, commit, react to the issue's GitHub Discussion, and fill in the Telegram channel post for the maintainer to send. Use for 发周刊, 迁移周刊, 做英文版, 点表情, 发到频道. Not for editing a published issue or the site code.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구TelegramGitHub
설치 방법 보기

포함된 파일(1)

  • SKILL.md4.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Publish Issue

Done means the issue is live on main in both languages, its Discussion carries the six positive reactions, and the Telegram send dialog holds the cover and caption, waiting for the maintainer.

1. Content

  • Draft: ~/Library/Mobile Documents/iCloud~com~tw93~miaoyan/Documents/潮流/潮流周刊(第{n}期) - {标题}.md. Copy it to src/pages/posts/{n}-{标题}.md unchanged except the date.
  • Date: the draft template carries a stale date: 2026/11/12. Use the Monday after publishing, one week after the previous issue's date (285 was 2026/10/12, 286 2026/10/19), and say so in the report.
  • English twin: src/pages/en/posts/{n:03}-{English-Slug}.md, translated by hand in the voice of the previous English issue (section names: Trending Tools, Just Looking Around, Random Thoughts). Keep every media tag and width; switch /zh/ product links to their English pages after checking they return 200.
  • Cover: the newest image in ~/Downloads, converted with sips -s format jpeg -s formatOptions 85 <src> --out public/assets/{n}.jpg.
  • Missing media the text refers to: search earlier issues first (rg over src/pages/posts), reuse the exact tag, and add it to both twins.
  • Run pnpm sync:content and pnpm test, check dist/posts/{n}/ and dist/en/posts/{n}/ exist, then commit and push per the global Git rules. git fetch first: the bot commits Updated content to main often.

2. Discussion reactions

Each issue gets a Discussion titled with its number (286 is #322). React as tw93 with THUMBS_UP, LAUGH, HOORAY, HEART, ROCKET and EYES, never THUMBS_DOWN or CONFUSED:

n=286  # the issue number
num=$(gh api graphql -f query='{repository(owner:"tw93",name:"Weekly"){discussions(first:10,orderBy:{field:CREATED_AT,direction:DESC}){nodes{number title}}}}' \
  -q ".data.repository.discussions.nodes[] | select(.title==\"$n\") | .number" | tail -1)
id=$(gh api graphql -f query="{repository(owner:\"tw93\",name:\"Weekly\"){discussion(number:$num){id}}}" -q .data.repository.discussion.id)
for r in THUMBS_UP LAUGH HOORAY HEART ROCKET EYES; do
  gh api graphql -f query='mutation($s:ID!,$c:ReactionContent!){addReaction(input:{subjectId:$s,content:$c}){reaction{content}}}' -f s="$id" -f c="$r"
done

Confirm gh api user -q .login is tw93 first, and read reactionGroups{content viewerHasReacted} back afterwards. If the Discussion does not exist yet, say so instead of creating one.

3. Telegram channel post

Channel 「Newlearnerの自留地」 (@NewlearnerChannel) in AyuGram, posted as Tw93. Read the desktop skill first. The agent fills the dialog and stops; the maintainer clicks Send or right-clicks it to schedule. Never click Send, Schedule or a menu item, and never use the Scheduled Messages view.

Caption, copied from the previous issue (curl -sL 'https://t.me/s/NewlearnerChannel?q=潮流周刊' shows its HTML):

#潮流周刊 #Newsletter<br><br><a href="https://weekly.tw93.fun/posts/{n}">潮流周刊(第{n}期) - {标题}</a><br><br>{封面说明}<br><br>潮流工具<br>1. …<br><br><b>随便看看</b><br>1. …<br><br><b>随便写写</b><br>1. …<br><br>频道:@NewlearnerChannel

List the bold item titles per section from the draft; drop a section the draft does not have. Keep hashtags plain text, not links.

Steps, each verified before the next:

  1. Tell the maintainer to stop dictating, typing and copying for a minute. Dictation goes into whatever field AyuGram has focused, and a copy between steps replaces the cover on the clipboard; both happened on 286.
  2. Open the channel's normal view with an empty input box.
  3. osascript -e 'set the clipboard to (read (POSIX file "<repo>/public/assets/{n}.jpg") as JPEG picture)', then click the input box and press super+v right away. The "Send an image" dialog must show the new cover.
  4. Click the Caption field and app.paste(caption, {format: "html"}).
  5. Read the Caption field's value from the AX tree: it must be the caption exactly once with nothing appended. Screenshot to confirm the title renders as a link.
  6. Stop and report. Context menus (right-click, ⋮) are invisible to LCU screenshots and the AX tree, which is one more reason the final click is the maintainer's.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Read issues of 潮流周刊 (Tw93 Weekly), a Chinese-language weekly newsletter of developer tools, open source projects, engineering notes and design, with English translations. Use when a task asks what a specific issue or week covered, which tools Tw93 recommended, or needs a bilingual quote from the archive.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tw93/Weekly8802026년 10월 19일 업데이트

tw93의 스킬 모두 보기

이 스킬의 문제 신고