The end-of-day check that removes manager anxiety
A tiny agent that flags everything you forgot to close.
Hey Titans 💪🏻
Today you will learn how to reduce your daily stress level by running an agent flagging unclosed loops before you log off for the day. The agent markdown is minimal, and it takes 5 minutes to get it up and running.
Previously, I have posted about the following:
Creating your personal leadership file based on information that you already have - without long journaling notes. See Most managers can’t describe how they lead. Your agent should know.
Adding leadership style to an agent, and keeping it automatically up-to-date in Don’t ask chatbot questions, start writing briefs
Running a personal coach agent to highlight strengths and weaknesses in your communication in How to command meetings better than 99% of managers;
With this next installment in your transformation to a stress-free, AI-enabled manager I am providing you a way to catch any “unclosed loop” before you sign off for the day.
Note: this article assumes that you’re running Slack as your team communicator. DM me if you’d like to configure the agent with the communicator of your choice (i.e. Google Chat, or Microsoft Teams)
Things slip, then they escalate
We all hate it, when things slip through the cracks.
I’ve been already involved in escalations that were a direct result of me failing to follow up or touch base about something. Twice - about project progress and once - for failing to claim ownership over a project.
I don’t want the same thing to happen to you. This agent isn’t a silver bullet solution, but it gives you a way to combat that.
Consider my workday as a contracting engineering manager inside Google:
Permissions. A contractor at Google gets nothing done until their Google counterpart approves their systems access. I assumed that would fade after three or four months on the job. It hasn’t - I’ve had to request several rounds of access just to run the agents I write about here!
Coaching and mentoring. I love to coach and be a partner in goal-setting. Right now, I act as a mentor for my team members, so that they deliver the most value to the Google counterpart team.
Keeping tabs on risks. You already know me and how much I hate status updates so I will do everything to automate project management away. My pain is that the team is distributed onto several projects, making status tracking and alignment challenging. That is my main motivation for the agent in this article - to be alerted about when something is about to set off in one of the projects.
Networking. I form relationships not only with my team members, but also with other managers within the company. Where I work, there is a vast network of professionals that no one uses taps into! You can learn about how others get stuff done, that you can use for inspiration, or flat out smuggle into your work, too.
Individual contributions. Agentic coding brings down the time and effort to implement code, so I allocate an hour throughout my day to that.
The random drip. Can we provide this data? When does that feature land? The steady, random stream of questions from across the company.
That is a heavy plate for one engineering manager, there’s tons of potential for things to fall through the cracks.
Run your eye down it and the common thread is obvious - almost all of it lives or dies on communication.
Let’s take a look at defining that “unfinished business” so that we can tackle it.
What counts as an unclosed loop
Unanswered questions — when I forget to respond to someone’s question in a timely manner, or - when it’s the other person that has forgotten to write back.
Undelivered review requests — be it a design document or a code change, I get asked that a ton; be a channel, not a dam is what I tell everyone who wants to advance in their career to an engineering manager, and I never want to be the gatekeeper of progress.
Porous project communications — imagine that one of your team members asks a question on a project-specific channel, and it’s not addressed. That may be very well harmless, but if it’s a potential blocker that is not flagged, it can cause trouble for you if it isn’t resolved quickly.
What doesn’t count
When an answer and review is provided, applicable to points 1-3.
When an statement is not addressed explicitly, but there’s an “emocji reaction” on the unanswered message.
Knowing what are unclosed loops and what they’re not, let’s continue to find out how we can build that agent!
The agent markdown
It’s very simple to write: all you need is a MCP integration with the communicator(s) of choice. In my articles, I target specifically Slack. You can learn more on Slack-Claude integration in the Slack dev docs.
The file that is use is minimal:
---
name: loose-ends-catcher
description: >-
Searches Slack for unanswered questions, unresolved mentions, and pending
document reviews. Use when checking for loose ends, catching up at the end of
the day, or verifying whether there are pending action items in DMs and
channels.
---
# Loose Ends Catcher
This skill identifies unresolved conversations ("loose ends") across Slack
channels, DMs, and group chats over a specific timeframe.
## What is a Loose End?
A loose end is a message that still needs an action from the user, or a
message from the user still waiting on someone else. Three patterns count:
1. **Pending Document Review:** someone shares a document or link for review
(a file, a shared-drive or Notion link, or a message asking for a look
such as "PTAL"), and the user has not responded.
2. **Unanswered Question to the User:** a message addressed to or mentioning
the user contains a question, and the user has not replied.
3. **Unanswered Question from the User:** the user posts a question in a
thread or channel, and no one has replied yet.
### Exceptions (NOT Loose Ends)
- **Subsequent Messages:** if the user has posted any message in the same
thread after the suspected loose end (or, for unthreaded DMs, anywhere
later in the same conversation), treat it as handled.
- **Emoji Reactions:** if the user has reacted to the message with any emoji,
treat it as acknowledged and handled.
## Workflow
1. **Search messages.** Use the Slack MCP server to pull messages within the
requested timeframe (last week, today, and so on). Let the user set the
timeframe, or default to today. For each hit, capture the text, the parent
thread, the sender, the timestamp, and the permalink.
2. **Analyze loose ends.** Apply the definitions above to every candidate.
Use the Slack MCP to fetch thread replies and the user's reactions, then
drop anything the user already answered or reacted to.
3. **Report to the user.** Present the findings in three buckets:
- **Action needed from you** - questions and review requests aimed at the
user, DMs first;
- **You are waiting on a reply** - open questions the user asked;
- **Shared documents** - review requests still pending.
Prioritize DMs and direct mentions, link each item to its Slack permalink,
and keep the summary short.
It is an excellent example of “low hanging fruits” when it comes to decreasing cognitive load on a manager, and through that - reduce daily amount of stress.
It doesn’t provide you the full picture of what you’re supposed to do, but it quickly provides a sanity check whether you made a commitment, or you might’ve left someone hanging in your asynchronous communications.
I run this agent every time before I log off for the day. I love it.



