# GitHub Dev Announcements

> Generate user-facing development update announcements from recent GitHub commits across one or more repositories. The user supplies a list of repos on the first run (wildcards like `org/*` allowed); the workflow stores them in a Google Sheet so subsequent runs need no input. For each run, the agent fetches commits since the last run (or last 7 days on first run), categorizes them into New Features / Updates / Bug Fixes, applies a security filter to strip internal paths, endpoints, secrets, and vulnerability details, drafts the announcement in a Google Doc, polishes the writing with a quality check tool, and logs the run (date, repos, commit count, doc URL, status) back in the sheet. Designed as a starting template — users can remix it to add their own follow-up steps such as posting to Slack or emailing subscribers.

Content type: workflow
Source URL: https://www.agentpmt.com/agent-workflow-skills/github-dev-announcements
Markdown URL: https://www.agentpmt.com/api/agent/workflows/github-dev-announcements?format=agent-md
Updated: 2026-04-30T17:43:08.504Z
Author: firef1ie

---

Estimated time saved: 30 minutes.

## Tools

- GitHub Repo Browser - Read Only
- Google Sheets
- Google Docs Connector
- AI Writing Quality Check

## Workflow Outline

1. Parse User Input: Read the user's request. Extract: 1. `repos[]` — a list of `owner/repo` strings the user wants to monitor. Wildcards like `org/*` are allowed. 2. `lookback_days` — optional, default 7. Only used on the first run when th...
2. Fetch Commits: Call `list_commits` with: - `owner` — the owner portion of `repo` - `repo` — the repo name portion of `repo` - `since_hours` — computed from `cutoff_iso` to now (round up; max 720...
3. Find or Create Sheet: Search Google Drive root for a spreadsheet titled exactly `Github Dev Announcements`. If it does not exist, create it in Drive root with two tabs: 1. Tab `Repos` with header row:...
4. Resolve Repos and Cutoff: Using inputs from the prior steps: 1. Build the final repo list = union of `existing_repos` (from sheet) and `repos_input` (from user). Deduplicate. Preserve wildcard entries like `org/*` as-is — do not expand them in t...
5. Save Repos Tab: Update the `Repos` tab so it contains exactly `final_repo_list_for_sheet` (one repo per row, including any wildcard entries). Idempotent: if the contents already match, no changes...
6. For Each Repo: Repeat this section for each item.
7. Categorize and Draft: Aggregate all commits returned across all repos. **If total commit count is zero:** skip to step 12 (`Log Run`) with `status: "Skipped"`, `commit_count: 0`, and `doc_url: ""`. Do not create a Google Doc. Otherwise, buil...
8. Create Google Doc: Create a new Google Doc in Drive root titled `Dev Update — {YYYY-MM-DD}` using today's date. Insert `draft_markdown` as the document body in plain markdown form (the doc is meant...
9. Writing Quality Check: Call `check_for_banned_phrases` with `content` = `draft_markdown`. Return the tool's `passed` boolean and `corrections[]` array.
10. Polish Loop: If the quality check `passed` is true, set `final_markdown` = `draft_markdown` and continue. If `passed` is false: 1. Rewrite each flagged phrase in `corrections[]` while preserving the meaning of the announcement. 2. R...
11. Update Doc with Final: Replace the body of the doc at `doc_url` with `final_markdown`. Keep the same title and the same document — do not create a new one.
12. Log Run: Append one new row to the `Runs` tab of the `Github Dev Announcements` sheet: - Run Date: now (ISO 8601) - Repos: comma-separated `final_repo_list_for_sheet` (preserve wildcards a...

## Frequently Asked Questions

### How do I connect this workflow to my local agent like OpenClaw or Claude Code?

You can install the local MCP server by opening a terminal and running:

```
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

This will connect you to local agents like Claude Code, Windsurf, Grok Build, Cursor, etc.

Alternatively you can connect to the hosted version with this config block, no installation required:

```
{
  "mcpServers": {
    "agentpmt": {
      "type": "streamable-http",
      "url": "https://api.agentpmt.com/mcp",
      "headers": {
        "Authorization": "Bearer <AGENTPMT_BEARER_TOKEN>",
        "x-instance-metadata": "{\"client\":\"generic-mcp\",\"platform\":\"remote\"}"
      }
    }
  }
}
```

[View MCP Connection Instructions](/docs/mcp-reference/connection) for more details.

### How do I trigger this workflow?

You can use it here in the browser by clicking the 'Try It' button.

If you 'star' the workflow it will save to your dashboard for quick access.

To use the workflow in an external agent, make sure you have followed the steps to connect it to the MCP server and then copy / paste this prompt, or just tell it to use the AgentPMT MCP server and use this workflow.

> Call the AgentPMT-Workflow-Skills tool with action 'get\_workflow\_skill' and skill\_id 69f37f7af46aae20d3043b77 ("GitHub Dev Announcements").