cd /news/ai-agents/watch-it-work · home topics ai-agents article
[ARTICLE · art-96066] src=texturehq.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Watch It Work

Texture's internal Slack logs show its fleet of AI agents—including Morgan, the Chief of Staff agent, and Lyra, an engineer-agent—triaging bugs, shipping work, investigating alerts, and co-piloting a production database migration, with humans retaining final decisions. The company's website redesign was driven by non-engineers working with an agent named Web-Dave in Slack, enabling substantial product changes without engineering requests. The logs are real, unedited conversations that illustrate the emergent workflow where agents operate in the same channels as the team.

read14 min views1 publishedAug 13, 2026
Watch It Work
Image: source

Real Slack conversations show Texture's AI agent fleet triaging bugs, shipping work, investigating alerts, and co-piloting a production database migration.

What follows is a set of real exchanges from inside Texture: our team interacting with agents in the same Slack channels where we already work. These are not mockups, reenactments, or examples curated for publication. They are actual internal conversations, written in the moment by our team members and agents while doing the work and reproduced without rewriting. Had we known they would appear publicly, we might have phrased some things differently. Where necessary, we have only cropped the conversations or removed sensitive or irrelevant information. The messiness is part of the point. This is what the work actually looks like inside Texture.

Together, they show the whole model in motion: a human asks for an outcome or an operational event arrives, the fleet gathers context and does the work, and a human retains the consequential decision.

It starts with a human. Stefan, a member of our team, reported a bug in the dashboard to our #bugs Slack channel. Morgan then picked it up, checked for duplicates, created the Linear issue, and routed it to Lyra. Lyra found that the reported symptom shared a root cause with two other problems, fixed all three, and opened the pull requests.

However, neither Morgan nor Lyra are real people.

Morgan is my Chief of Staff agent. Lyra is one of our engineer-agents. The person reporting the bug did not have to copy it into a ticket, translate it into engineering language, decide which agent should handle it, or keep the handoff alive across multiple systems. They reported the problem in Slack. The fleet did the rest, right up to the point where a human needed to review the code and decide whether to ship it.

This is the emergent org chart I described in Part 2: Give Every Agent a Badge, now doing ordinary work. A report is filed through the same channel our team already uses. One agent handles intake and coordination. Another handles the technical investigation. The work comes back to humans as reviewable pull requests.

That is what the fleet looks like most of the time. It is not a row of chat windows waiting for me to invent prompts. It is a set of operational loops woven into the places where the company already works.

Remove the translation layer

And yes — if you noticed Web-Dave sign off with "Burrito proximity: high" above, here is the context. Somewhere along the way, the website channel developed a running joke: good work earns a burrito. As more shipped in a session, the stakes escalated from burrito to guacamole to queso to horchata. It is a small, silly, entirely emergent thing, and it is exactly the kind of texture you get when agents work in the same rooms as the rest of the team rather than behind an API.

During our website redesign, we put an agent named Web-Dave in the website team's Slack channel.

Marketing and product worked with Web-Dave directly on the redesign. Sometimes that meant copy or layout. More often it meant substantial product work: rebuilding major components, changing the menu system, restructuring pages, and creating the Contentful-backed blog you are reading now. They could describe what they wanted in the channel, and Web-Dave would make the code change and return a preview link in the same thread. The person who requested the change could click through a real version of the site, decide whether it matched what they meant, and ask for another pass if it did not. Once a human was satisfied, a human approved and merged it.

The interesting part is not that an agent can change website copy. Any modern coding model can do that. It is that non-engineers could drive sweeping, structural changes to a production website without turning every idea into a request for an engineer.

It is worth being concrete about the scale of that. Our website redesign produced a custom Next.js site, heavy on real application code, backed by Contentful, the very site you are reading this on. For a custom, production marketing site, that is genuinely remarkable.

The teammate requesting the work no longer needs to translate it through an engineer. They do not have to write a ticket in engineering language, find the right repository, explain where the component lives, or wait for a developer to turn their request into a context switch. They describe the outcome in the place where the conversation is already happening, then review the running result.

This is the human-in-the-loop model from Part 3 in its least dramatic form. The agent absorbs the translation cost. The human keeps the taste and the decision.

Diagnose the machinery around the work

Sometimes the code is finished, the automated checks are green, the pull request is approved, and it still will not merge.

Modern software delivery has accumulated a surprising number of invisible gates: organization-wide rules, required checks, stale branches, merge queues, permissions, and administrative policies. When one of those gates blocks a pull request, the interface often tells an engineer only that the change is blocked. It does not clearly explain which rule is responsible or who can resolve it.

My agent Morgan runs a standing procedure for this. She gathers the check results, review state, branch state, and applicable repository rules. She identifies the most likely blocker, states how confident she is, and routes one specific request to the person who can remove it.

In this case, four code-complete pull requests were all waiting on the same human approval: mine. Morgan re-verified that the fixes had not reached production, made the shared merge gate explicit in the engineering thread, and kept the agents ready to merge in the correct order and watch the deployment. She then sent me a direct message with the action I needed to take, along with a short summary of what that action was and why it mattered. I did not have to reconstruct the situation from four pull requests and a long Slack thread; I could intervene at the one point where human authority was required.

That sounds minor until you count the interruptions it replaces. Without the agent, an engineer stops building, opens several systems, develops a theory, asks around, and often escalates a vague “why won't this merge?” to me. With the agent, the human who owns the decision receives an evidence bundle and a concrete ask.

Again, the agent does not merge the code. It makes the path to the human decision legible.

This kind of work is easy to miss when people imagine agent fleets. Writing code is visible. Clearing the mechanical friction around writing, reviewing, and shipping it is not. But organizations lose an enormous amount of time in those seams.

Turn an alert into a useful first response

The same pattern applies when something breaks.

A production alert used to fire as exactly that: an alert. A human had to establish the basic facts, decide how urgent it was, identify the likely owner, and begin the investigation.

Now the alert is sent to Slack and Morgan picks it up. She acknowledges it, performs the initial triage, and assigns it to the right engineer-agent. That agent has read access to the same kinds of evidence a human engineer would use: Sentry, Datadog, application logs, and the codebase. It can move across those systems, correlate the failure with recent changes, inspect the implementation, form a theory, and test that theory against the evidence.

In the 90 percent case, the first human artifact is not a raw alarm or even a neatly summarized diagnosis. It is: here is the pull request that fixes the problem, here is the evidence that led me to this change, and here is my confidence that it will work. You should review and merge it.

That is the aha moment. The fleet did not merely notice the problem or route it more intelligently. It did the heavy lifting of investigation across the monitoring systems, logs, and code, then turned the result into a reviewable fix.

That does not eliminate on-call judgment. As I described in Part 3, the worst an engineer-agent can do in this loop is create a bad pull request that a human declines to merge. But even when the proposed fix is wrong, the investigation and evidence often give the human a substantial head start.

There is a deeper difference here than speed. This is coverage we did not have before. A person cannot spend every minute watching every intake channel, pull request, dashboard, and alert. An agent can keep watch, do the bounded first pass, and escalate when a human decision is actually required.

Give everyone access to engineering context

Two of our team members work in client operations. They are not engineers. But they share a Slack channel with Lyra, one of our autonomous engineer-agents, where they can ask detailed questions about how the Texture platform is behaving.

This is not a generic model answering from public documentation. Lyra has worked in our codebase for months, and that phrase is less mystical than it sounds. As she works, she writes memory files: notes on how the system is built and how it behaves. Each night, through OpenClaw's dreaming system, she compiles those notes into durable knowledge, roughly the way a person consolidates the day's learning in their sleep. Over months, that becomes a context graph of how the platform was designed and how it actually behaves in practice. So when she is asked a question, she is drawing on accumulated, self-maintained memory from operating inside our systems: writing migrations, debugging failures, and making changes across the platform.

Recently, the client operations team gave her a device identifier and asked what had happened to it. With bounded, least-privilege access, Lyra could inspect the Datadog logs for that identifier, query a read-only copy of non-PII device telemetry, and read the relevant code to understand how those events were processed.

She did not run one query and repeat the result. She formed a hypothesis, wrote a query, inspected what came back, revised the hypothesis, wrote another query, and kept going. The OpenClaw harness lets her iterate autonomously until she has assembled a coherent explanation.

The answer was not “the device is offline.” It was a timeline. The device remained online until a specific point. Then it disconnected for a specific reason. Here is what happened immediately beforehand. Here is the path through the system. Here is the evidence, and here is the most likely explanation for why it occurred.

Before the fleet, someone on the client operations team would have needed to ask an engineer to investigate. That engineer would stop writing software, gather context across several systems, run a series of queries, and then translate the result back into plain language. Depending on workload and urgency, that could take hours or days.

Now the client operations team can ask the system directly through an agent that understands it deeply. They get an answer in minutes, often explained more clearly than an engineer would explain it, while the engineering team keeps building.

This changes who can use technical context. The codebase, logs, and data models used to be practically accessible only to the people who knew how to interrogate them. The agent becomes an interface to that expertise. It does not give everyone unrestricted access to production. It gives a trusted agent bounded access to investigate on their behalf, and gives them the result in language they can act on.

That is much more interesting than an internal chatbot. It is institutional knowledge that can investigate.

Give the agent a bounded exception

The highest-stakes example came during a migration of 12 production databases from Amazon RDS to Neon.

Part 3 described our default access model: least privilege, read-only standing access, and no standing access to data stores containing customer PII or sensitive grid data. I also said the default is not absolute. This migration is what a deliberate exception looked like.

Lyra received temporary, task-scoped read and write access to the source and target systems. Some of the databases contained data that would ordinarily sit outside the fleet's standing access boundary. We treated that honestly as an exceptional grant, not as a clever interpretation of the rule. The access existed for this migration, and it was revoked when the work was complete.

A human (Sergey) drove the process alongside Lyra for every database. We did not authorize a batch migration, go to sleep, and hope for a green check mark in the morning. We handled the databases one at a time.

For each one, the human initiated the step. Lyra wrote and ran the dump and restore scripts. Then we gave her a broad instruction: make sure everything is okay. She did not respond with a reassuring paragraph. She created her own verification plan and executed it. She ran dozens of queries to compare row counts, test data integrity, and look for discrepancies between the source and destination. She investigated anything that looked wrong and surfaced the evidence for review.

The speed of that is easy to underestimate. Done carefully by a skilled engineer, dozens of queries to compare row counts, test data integrity, and hunt for discrepancies would take hours for a single database. Lyra did it in minutes. She can write a query, read the result, form the next question, and write the next query almost as fast as she can think it, and she does not slow down on the fifth database or the ninth. A person, however capable, is bounded by the human pace of assembling one query, interpreting the result, and constructing the next. The agent is not. Across the migration, that was not only a matter of avoiding fatigue. It compressed work that would otherwise have consumed the team for days into a fraction of the time.

Then a human decided whether to approve that database's cutover.

We repeated that gate 12 times. There was no blanket sign-off based on the first migration going well, and Lyra's own conclusion was never the final authority. Each database received its own checks, its own review, and its own human go/no-go decision. Once the full migration was finished, the temporary credentials were revoked.

This is the kind of access you might give an intern or another engineer for a specific migration: enough to do the job, limited to the job, supervised at the consequential moments, and removed afterward. The fact that the worker was an agent did not require inventing a new security principle. It required applying familiar principles with unusual discipline.

The obvious story is that an agent can write database migration scripts and SQL quickly. That was useful, but it was not the breakthrough.

The breakthrough was having a tireless second set of eyes.

Migrations are dangerous partly because they are repetitive. The first database gets everyone's full attention. By the ninth, a human is tired, the process feels familiar, and familiarity starts masquerading as safety. Lyra did not get bored. She did not decide that the twelfth database was probably fine because the eleventh one was. She kept generating checks, comparing results, and looking for reasons not to trust the cutover.

Across 12 systems, the agent supplied relentless verification. The human retained every actual go/no-go call.

That division of labor is one of the most valuable uses of an agent fleet, and one of the least discussed. The question is not only, “Can an agent do this task?” A better question is, “Can an agent make the human decision better informed, less rushed, and harder to get wrong?”

From reaction to initiative Every example in this post begins with an external event. Someone reports a bug. A teammate requests a website change. A pull request gets stuck. An alert fires. Client operations asks what happened to a device. A human starts a migration.

The fleet reacts, carries the operational load, and brings a better-formed decision back to a person. That alone has changed how Texture works. It removes handoffs, preserves context, adds coverage, and lets the team spend more time on judgment instead of coordination.

But reaction is not the ceiling.

In Part 5, I will show what happens when the fleet initiates the work: turning the company's daily output into a podcast, preserving meeting decisions automatically, building the infrastructure that runs new agents, and taking an internal tool from an unstructured idea through specification, implementation, and hands-on QA before a human decides whether it goes live.

That is where a fleet stops looking like a faster way to answer requests and starts looking like a new operating model.

This is Part 4 of a 5-part series on how we built and rebuilt the way AI agents operate inside Texture.

Engineering leader with 20+ years scaling systems across 8 industries. Co-founder/CTO at Texture, building next-gen energy infrastructure. J.D. holder and technical architect who believes in code that ships and ships fast.

── more in #ai-agents 4 stories · sorted by recency
── more on @texture 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/watch-it-work] indexed:0 read:14min 2026-08-13 ·