outbox-refresh
Regenerate per-stakeholder outbox files from flow:waiting (In Review) issue markdown.
Skill by Acestus
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/acestus-outbox-refresh
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/outbox-refresh
What's inside
- Skill name
outbox-refresh- Description
- Regenerate per-stakeholder outbox files from flow:waiting (In Review) issue markdown. Produces newspaper-lede cards (Lede / Status / Next / Links) in planner/outbox/{slug}.md. Use when the user says "refresh outbox", "rebuild outbox", "update outbox for backlog meeting", "fill the outbox", or before a 1:1/manager sync.
- License
- MIT
- Instructions
- 122 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- body: contains an absolute path from the author's machine
Files (1)
- SKILL.md
SKILL.md (first lines)
# Outbox Refresh Skill
Rebuild the per-stakeholder outbox under `planner/outbox/` from the `flow:waiting` issue markdown files. Each outbox file is a list of **newspaper-style cards** — Lede, Status, Next, Links — reconstructed from the source ticket's `## Notes` section. The same ticket can appear in multiple outbox files (one per stakeholder + manager catch-all + any vendor / code-review / external-ticket bucket).
This is what feeds backlog 1:1s, especially the <APPROVER_NAME> manager sync. Every waiting ticket should be visible to him in one place.
## When to Use
- User says "refresh outbox" / "rebuild outbox" / "regenerate outbox"
- User says "fill the outbox" / "outbox for backlog meeting" / "outbox for 1:1"
- End of day, before pushing — so tomorrow's manager sync has the full picture
- After bulk editing `flow:waiting` issue files
## Workflow
1. **Refresh the markdown.** `python3 scripts/outbox_refresh.py` — rebuilds `planner/outbox/*.md` from the source `issues/` files. Each card carries a prominent `💬 Comment on Linear →` link.
2. **Publish to Notion.** `python3 scripts/outbox_publish.py` — mirrors each outbox file to a child page under **WWeeks → WWeeks Outbox** in the IPM space. Idempotent; updates existing pages in place.
3. Open `planner/outbox/INDEX.md` and copy the URL of the stakeholder you're meeting with — paste it into the calendar invite or Teams chat.
4. During the meeting, share the Notion page and walk the cards. **Every direction or decision gets typed straight into the Linear ticket as a comment** — click `💬 Comment on Linear →` on the card; you land on the ticket; add the comment there. That's the durable record. The Notion page is just the read-only meeting agenda.
5. Commit and push (`planner/outbox/INDEX.md` reflects the latest Notion URLs).
The data flow is one-way: `issues/` → `planner/outbox/*.md` → Notion. Steering captured during the meeting lives in Linear (where every stakeholder, including future-me on rounds, can already see it). No round-trip sync needed.
## Standard Commands
```bash
cd /home/acestus/git/ace && export $(grep -v '^#' .env | xargs)
# The 90% case — refresh + publish
python3 scripts/outbox_refresh.py
python3 scripts/outbox_publish.py
# Preview routing without writing files
python3 scripts/outbox_refresh.py --dry-run
# Preview Notion calls without making them
python3 scripts/outbox_publish.py --dry-run
# Skip <APPROVER_NAME> manager catch-all (only route by explicit stakeholder)
python3 scripts/outbox_refresh.py --no-catchall
# Different manager catch-all
python3 scripts/outbox_refresh.py --manager "Some Other Manager"
```
## Sharing With Stakeholders
After `outbox_publish.py` runs, each person/bucket has a dedicated Notion
page. Open `planner/outbox/INDEX.md` for the URL table — copy the link to the
stakeholder's page when chasing a response (e.g. in a Teams DM to <APPROVER_NAME>
<APPROVER_NAME>, paste their `Outbox · <APPROVER_NAME>` URL — he sees every ticket I'm
waiting on him for as newspaper-lede cards, each with a direct `💬 Comment on
Linear →` link).
Page IDs persist in `planner/outbox/.notion-pages.json` so subsequent
publishes update the same pages. **Do not delete that file** — without it the
script would create duplicate pages instead of updating the existing ones.
## What the Script Does
1. **Scans** every `*.md` file under `issues/` (skipping `archive/`).
2. **Filters** to files containing the literal `flow:waiting` string.
3. **Parses** each file:
- `## Notes` → `### Lede` / `### Status` / `### Next` subsections (the card body)
- `## Web Links` → list of inline reference links
- `## Linked Issues` → blocks/blocked-by/relates-to chain
- `## Follow-up` → `Waiting on:` field (explicit stakeholder names)
- Last `### YYYY-MM-DD` action header → waiting-since date and stale-days
4. **Routes** each ticket to one or more outbox files:
- Any names in `Waiting on:` (split on comma, em-dash stripped)
- Any names parsed from the `### Status` line (`waiting on X`, `blocked by X`)
- Fallback buckets when no person is identified:
- `_code-review.md`, `_vendor.md`, `_external-ticket.md`, `_global-admin.md`, `_leadership.md`, `_compliance.md`, `_no-stakeholder.md`
- **Always: the manager catch-all (default `michael-seaman.md`)** so the weekly backlog meeting shows everything in one file
5. **Renders** a newspaper-style card per ticket — lede paragraph, **Status** line, **Next** line, then Links and Linked Issues.
6. **Preserves** the existing `## Draft Messages` block at the bottom of each outbox file (everything below `## Draft Messages` survives the refresh).
7. **Prunes** outbox files that no longer have any routed tickets (stale stakeholder files are deleted).
## Card Format
```markdown
### [<PROJECT>-371](https://<YOUR_ATLASSIAN>.atlassian.net/browse/<PROJECT>-371) — <PROJECT>-371 - Enable M365 Copilot Teams Meetings Agent (Scope + Propose)
_Waiting since 2026-05-25 · 1d ago_
M365 Copilot Teams Meetings agent enablement gives <ORG_NAME> users native transcript recap, action items, and cross-platform knowledge retrieval — satisfying Graham's ask without any custom Graph or OBO authentication development. Before licenses can be ordered, GLBA compliance requires an AI Use Policy and Vendor Risk Assessment reviewed and approved by <APPROVER_NAME>.
**Status.** flow:waiting — waiting on <APPROVER_NAME> to approve AI Use Policy and Vendor Risk Assessment on Notion
**Next.** <APPROVER_NAME> reviews AI Use Policy (Notion <PAGE_ID>) and Risk Assessment (<PAGE_ID>) and adds approval comment
**Links:**
- [Notion — AI Use Policy](https://...)
- [Microsoft data boundary documentation](https://...)
**Linked issues:**
- blocks: <PROJECT>-77 <!-- M365 Copilot Licensing -->
---
```
If a ticket renders with a thin lede or no Status/Next, **fix it at the source** — edit `issues/{KEY}*/...md` `## Notes` section, push, and re-run the refresh.
## Rules
- Always run a real refresh (not `--dry-run`) before committing — the outbox files are part of repo state.
- The `## Draft Messages` block is the operator's scratchpad. Never edit anything above it.
- If a card looks thin, the fix is in the **source issue markdown**, not the outbox file. The outbox file is generated.
- The manager catch-all is the default. Disable with `--no-catchall` only when intentionally producing a partial view.
- Outbox files do NOT sync back to Linear — they are purely a local routing/staging surface for follow-up messages.
## Composes
```
outbox-refresh
└── (standalone — reads issues/*.md → writes planner/outbox/*.md)
```
**Called by:** `end-my-day` (refresh before EOD push), directly by user before backlog meetings or 1:1s. Companion to `waiting-ticket-followup` which drafts the actual Teams/email messages.From Acestus/ace, MIT.
More from Acestus/ace
- 0.524score
hugo-writer
Acestus
Create and update Hugo Markdown content with optional PlantUML diagrams rendered by CI into static image assets.
SkillBFreshness: BClaude Code +9 - 0.479score
editorial-assistant
Acestus
Personal editorial assistant for reviewing and improving writing.
SkillCFreshness: CClaude Code +9 - 0.474score
azure-investigator
Acestus
Investigate Azure resources, managed identities, role assignments, and access patterns.
SkillCFreshness: CClaude Code +9 - 0.474score
end-my-day
Acestus
Close the work day: stop timers, generate standup summary, commit and push worklogs, post to Teams.
SkillCFreshness: CClaude Code +9 - 0.474score
rounds
Acestus
Orchestrate the work session as a kanban station rotation.
SkillCFreshness: CClaude Code +9 - 0.474score
inner-loop-score
Acestus
Score non-Gherkin inner-loop tests and generate markdown/json reports.
SkillCFreshness: CClaude Code +9 - 0.474score
lorcana
Acestus
Scrape a Lorcana card list from lorcanaplayer.com and produce a plain-text copy-paste file (names, rarity, ink color) in assets/lorcana/.
SkillCFreshness: CClaude Code +9 - 0.474score
knowledge-clerk
Acestus
Knowledge retrieval for <ORG_NAME> infrastructure work.
SkillCFreshness: CClaude Code +9 - 0.474score
aws-investigator
Acestus
Investigate AWS IAM users, roles, policies, CloudWatch access, and CloudTrail configuration.
SkillCFreshness: CClaude Code +9 - 0.470score
linear-backlog
Acestus
Create new Linear issues with native priority and local stub files.
SkillCFreshness: CClaude Code +9 - 0.470score
linear-dispatcher
Acestus
Dispatch the next unclaimed Linear issue into an open lane.
SkillCFreshness: CClaude Code +9 - 0.470score
linear-worklog
Acestus
Log time and comments to Linear issues via markdown files.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Jul 3, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Acestus/ace
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Acestus
- 0.524score
hugo-writer
Acestus
Create and update Hugo Markdown content with optional PlantUML diagrams rendered by CI into static image assets.
SkillBFreshness: BClaude Code +9 - 0.479score
editorial-assistant
Acestus
Personal editorial assistant for reviewing and improving writing.
SkillCFreshness: CClaude Code +9 - 0.474score
end-my-day
Acestus
Close the work day: stop timers, generate standup summary, commit and push worklogs, post to Teams.
SkillCFreshness: CClaude Code +9 - 0.474score
azure-investigator
Acestus
Investigate Azure resources, managed identities, role assignments, and access patterns.
SkillCFreshness: CClaude Code +9 - 0.474score
aws-investigator
Acestus
Investigate AWS IAM users, roles, policies, CloudWatch access, and CloudTrail configuration.
SkillCFreshness: CClaude Code +9 - 0.474score
inner-loop-score
Acestus
Score non-Gherkin inner-loop tests and generate markdown/json reports.
SkillCFreshness: CClaude Code +9
Cite this page
outbox-refresh skill. Agent Mart. https://agentmart.dev/skills/acestus-outbox-refresh (last updated 2026-10-24)