01 · Just ask
Mention the bot where the conversation already is.
No command syntax to learn. The engineer describes the problem the
way they would to a colleague: the workload, the namespace, what
they want looked at.
The assistant acknowledges within seconds, in the thread, so
everyone in the channel can see it picked the request up.
02 · Understand the request
Pull out the names, not the adjectives.
The request is parsed with plain patterns, no extra model call:
quoted names, phrases like deployment orders-api,
namespace hints such as in namespace shop, and cluster
or repository hints. Filler words ("keeps", "please", "can you")
are dropped.
03 · Find what describes it
Search every repository it is allowed to read.
Manifests are matched on namespace first, then on name, kind and
repository. The best matches become the context for the analysis.
A repository in context mode contributes what it knows but
never receives an MR. Only repositories in full mode can get
a proposal.
04 · Check the live state In development
Optionally, look at the cluster too, read-only.
When tool servers are configured, the analysis can walk live
cluster state through a bounded tool loop: list the pods, read the
last termination reason, check the reconcile status. Every tool is
read-only and there is a hard ceiling on calls per request.
This path is built and opt-in; the default answers from the
manifests in git.
05 · Same gates as everything else
A Slack request does not skip the checks.
Suggestions below the confidence floor are dropped. A proposal that
already exists for the same repository is not opened twice. The
diff goes through the same safety guard as scheduled scans: large
removals are escalated to high risk and held for review.
06 · The answer, in the thread
What it found, what it proposes, how risky it is.
The reply lists each proposal with its category and risk. By
default the draft MR is opened by the next scheduled submit rather
than straight from Slack, so the reply says "draft MR pending
review". Teams that want it immediately can switch on
auto-submit.
If nothing matched, it says what it searched and suggests how to
be more specific. It does not invent a change.
07 · The proposal ping
Every new MR is announced where your team looks.
When the draft MR is opened, a card lands in the proposals
channel: repository, category, risk, which agent produced it, the
first lines of the reasoning and a button to the MR. Alert-driven
changes go to the alerts channel instead. High-risk proposals can
mention a named group.
08 · "Not for this one"
Skip a proposal, and make the decision durable.
A different thread: the assistant proposed monitoring for a batch
job the team is retiring. An allowlisted operator replies
skip <MR> monitoring. The assistant builds a
one-line change that adds a skip annotation to that resource and
stores it as its own proposal. Once merged, that class of proposal
stops for that resource, across every future run.
skip-all opts the resource out of everything. The same
commands work as /skip comments on the MR itself.
09 · Two more things you can say
Corrections, and a review on request.
A message starting with feedback or wrong
is recorded for the tuning pass and acknowledged.
review <MR> asks the reviewer to look at any MR,
including ones a human wrote In development.
The draft MR from the first thread is below.