Loading...
Loading...
Compare original and translation side by side
warpdotdev/warpwarp-serverwrite-feature-docswarpdotdev/docs#growth-docsTODO for reviewers:is a temporary channel for engineer pings. Identify a more appropriate eng-facing channel (e.g. a shared eng/docs channel,#growth-docs, or a dedicated#devchannel) once this workflow is established.#docs-requests
warpdotdev/warpwarp-serverwrite-feature-docswarpdotdev/docs#growth-docs评审者待办事项:是用于通知工程师的临时频道。待此工作流建立后,请确定一个更合适的面向工程师的频道(例如共享的工程/文档频道、#growth-docs或专用的#dev频道)。#docs-requests
| Setting | Default | Description |
|---|---|---|
| | How many days back to scan for merged spec PRs |
| | Slack channel for engineer pings and summaries (temporary — see TODO above) |
| From | Slack bot token for posting via API (already available in the |
chat.postMessagebuzzSLACK_BOT_TOKENSLACK_BOT_TOKEN| 设置项 | 默认值 | 描述 |
|---|---|---|
| | 扫描近期合并的规格PR的回溯天数 |
| | 用于通知工程师和发布总结的Slack频道(临时频道 —— 参见上述待办事项) |
| 来自 | 用于通过API发布消息的Slack机器人令牌( |
chat.postMessagebuzzSLACK_BOT_TOKENSLACK_BOT_TOKEN--search "in:files"undefined--search "in:files"undefined
For each PR returned, check whether it actually contains a new `specs/*/PRODUCT.md` by inspecting the changed files (this is the correct filter step):
```bash
gh pr view <number> --repo warpdotdev/<repo> --json files -q '.files[].path' \
| grep -E '^specs/.+/PRODUCT\.md$'specs/warpwarp-serverundefined
对于返回的每个PR,通过检查变更文件确认是否包含新的 `specs/*/PRODUCT.md`(这是正确的筛选步骤):
```bash
gh pr view <number> --repo warpdotdev/<repo> --json files -q '.files[].path' \
| grep -E '^specs/.+/PRODUCT\.md$'specs/warpwarp-serverundefined
Store `ENG_MENTION`, `ENG_NAME`, and `ENG_GITHUB` for use in Slack messages.
存储 `ENG_MENTION`、`ENG_NAME` 和 `ENG_GITHUB`,用于Slack消息中。warpdotdev/docsundefinedwarpdotdev/docsundefined
A spec is considered **covered** if either query returns results (open, draft, or merged PR exists). Skip covered specs.
A spec is **uncovered** if neither query returns results. Closed-unmerged PRs do **not** count as coverage — a closed PR signals abandoned work that needs re-triggering.
若任一查询返回结果(存在开放、草稿或已合并PR),则该规格文档被视为**已覆盖**,跳过此类规格文档。
若两个查询均无结果,则该规格文档被视为**未覆盖**。已关闭未合并的PR不视为已覆盖——关闭的PR意味着文档工作已中止,需要重新触发。specs/<id>/PRODUCT.md## Behaviorspecs/<id>/PRODUCT.md## Behaviorwrite-feature-docswrite-feature-docswarpdotdev/docs@<github-username>@rachaelrenk@petradonka@hongyi-chenSLACK_CHANNEL📄 *Docs draft auto-generated*
Feature: *<spec-id>* (from `<repo>`)
Spec PR: <spec-pr-url>
<@USER_ID> (GitHub: <github-username>)
I’ve opened a draft docs PR for review: <docs-pr-url>
Please check the items marked *[UNVERIFIED]* and *[TODO]* in the PR — those are the only things that need your input.write-feature-docswrite-feature-docswarpdotdev/docs@<github-username>@rachaelrenk@petradonka@hongyi-chenSLACK_CHANNEL📄 *文档草稿已自动生成*
功能:*<spec-id>*(来自 `<repo>`)
规格PR:<spec-pr-url>
<@USER_ID>(GitHub:<github-username>)
我已创建一份文档草稿PR供评审:<docs-pr-url>
请检查PR中标记为 *[UNVERIFIED]* 和 *[TODO]* 的事项——这些是仅需您参与的内容。SLACK_CHANNEL📋 *New spec needs docs — not enough detail to auto-draft*
Feature: *<spec-id>* (from `<repo>`)
Spec PR: <spec-pr-url>
<@USER_ID> (GitHub: <github-username>)
The spec doesn’t have enough behavior detail for me to auto-generate docs yet. Please either:
• Add more detail to `specs/<spec-id>/PRODUCT.md` (a Behavior section with user-facing steps), OR
• Ping the docs team in this channel and we’ll draft it manually✅ *Docs coverage scan complete* — all recently merged specs have docs coverage.SLACK_CHANNEL📋 *新规格文档需要配套文档——内容不足无法自动生成草稿*
功能:*<spec-id>*(来自 `<repo>`)
规格PR:<spec-pr-url>
<@USER_ID>(GitHub:<github-username>)
该规格文档的行为细节不足,无法自动生成文档。请您选择以下操作之一:
• 为 `specs/<spec-id>/PRODUCT.md` 添加更多细节(包含面向用户步骤的Behavior章节),或
• 在本频道@文档团队,我们将手动生成文档✅ *文档覆盖范围扫描完成* —— 所有近期合并的规格文档均已覆盖。jq$MESSAGEjq -n \
--arg channel "$SLACK_CHANNEL" \
--arg text "$MESSAGE" \
'{channel: $channel, text: $text}' \
| curl -s -X POST https://slack.com/api/chat.postMessage \
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
-H 'Content-type: application/json' \
-d @-SLACK_BOT_TOKENjq$MESSAGEjq -n \
--arg channel "$SLACK_CHANNEL" \
--arg text "$MESSAGE" \
'{channel: $channel, text: $text}' \
| curl -s -X POST https://slack.com/api/chat.postMessage \
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
-H 'Content-type: application/json' \
-d @-SLACK_BOT_TOKENscan-new-specs run summary
Repos scanned: warpdotdev/warp, warp-server
Lookback window: <N> days (since <date>)
Specs found: <N>
Already covered: <N>
Auto-drafted: <N> (complete spec → draft PR opened)
Pinged (thin spec): <N> (incomplete spec → engineer notified)
Slack channel: <channel>scan-new-specs 运行总结
扫描的仓库: warpdotdev/warp, warp-server
回溯窗口: <N> 天(自 <date> 起)
找到的规格文档: <N>
已覆盖的规格文档: <N>
自动生成草稿的数量: <N> (完整规格文档 → 已创建草稿PR)
已通知的单薄规格: <N> (不完整规格文档 → 已通知工程师)
Slack频道: <channel>"Run scan-new-specs to check warpdotdev/warp and warp-server for newly merged PRODUCT.md specs that don't have a corresponding docs PR in warpdotdev/docs. For complete specs, auto-generate a draft docs PR and tag the engineer. For thin specs, ping the engineer in Slack. Post a summary to #growth-docs. Use the last 3 days as the lookback window."
"运行scan-new-specs,检查warpdotdev/warp和warp-server仓库中新合并的PRODUCT.md规格文档是否在warpdotdev/docs仓库中有对应的文档PR。对于完整的规格文档,自动生成文档草稿PR并标记工程师;对于内容单薄的规格文档,在Slack中通知工程师。将总结发布至#growth-docs频道。使用过去3天作为回溯窗口。"
warpdotdev/docswarpdotdev/docschat.postMessageSLACK_BOT_TOKENbuzz<@USER_ID>users.lookupByEmailbuzzSLACK_BOT_TOKENchat.postMessage<@USER_ID>users.lookupByEmailwrite-feature-docswrite-feature-docs