{"id":26885,"date":"2026-05-18T16:43:14","date_gmt":"2026-05-18T11:13:14","guid":{"rendered":"https:\/\/blog.razorpay.in\/blog\/?p=26885"},"modified":"2026-05-18T17:54:47","modified_gmt":"2026-05-18T12:24:47","slug":"razorpay-engineers-built-slash-slash-builds-the-rest","status":"publish","type":"post","link":"https:\/\/razorpay.com\/blog\/razorpay-engineers-built-slash-slash-builds-the-rest\/","title":{"rendered":"Razorpay Engineers Built Slash. Slash Builds the Rest."},"content":{"rendered":"<p><b>Tens of thousands of agent sessions. Thousands of PRs created automatically and merged every month. Over a third merged with no human in the loop. Every check still had to pass.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">That&#8217;s what one quarter looks like with an autonomous agent platform running inside Razorpay engineering. We call it <\/span><b><i>Slash<\/i><\/b><span style=\"font-weight: 400;\">. Slash writes code, opens PRs, reviews them, answers questions from engineering and business teams, and talks to fifteen plus internal systems along the way. This post kicks off a series on Razorpay&#8217;s Agentic SDLC. What we built, how Slash works, and what it took to get our repos ready.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Before we get into Slash, let&#8217;s set the scene.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Code got cheap. Everything else didn&#8217;t.<\/b><span style=\"font-weight: 400;\"> Engineers in 2025 spent about fifty percent of their time actually coding. The rest went in PR reviews, Slack threads, boilerplate tests, onboarding, flaky pipelines, and hunting down config files. It was easy to write code but it was still very hard to ship fast.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>The model curves bent.<\/b><span style=\"font-weight: 400;\"> By late 2025, coding agents could read a 50-file diff, hold the context, and produce a working PR with tests &#8211; on real production codebases. The question stopped being &#8220;can a model do this&#8221; and became &#8220;why are we still doing it ourselves&#8221;.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Cycle time has a new lever.<\/b><span style=\"font-weight: 400;\"> A PR raised at 3 AM gets reviewed at 11 AM in a human-only org. With agents in the loop, it gets reviewed in under five minutes. The metric every engineering org has tried to compress for a decade just got an answer that isn&#8217;t more humans.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Every handoff between humans drops context.<\/b><span style=\"font-weight: 400;\"> A ticket reads &#8220;Support amount filter on bulk refunds&#8221; and never mentions the seventeen edge cases the author walked through on a call. Agents have the ability to read it all in one pass &#8211; Ticket, call transcript, Slack thread, linked doc, previous attempt.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Slash is the answer to all four.<\/span><\/p>\n<h3><b>What Slash actually does<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Slash is a cloud agent that knows our codebase, our tools, our docs, and how we ship. Then it does the work.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Slash is one platform with three doors. Razorpay engineers reach it via a @Slash mention in Slack, auto-assign on a ticket, or trigger it from a GitHub CI pipeline. Same agent, same memory, same toolchain underneath. Inside, a handful of components do the actual work.<\/span><\/p>\n<h3><b>Here is what happens under the hood:<\/b><\/h3>\n<p><b>Launch Agents. <\/b><span style=\"font-weight: 400;\">An engineer hands Slash a task in plain English. It clones the repo, writes the code, runs tests, opens a PR, and posts an update to Slack. The whole loop, no hand-holding. It runs in single-repo mode for the standard case, batch mode for the same task across many repos, multi-repo mode for tasks spanning multiple codebases, and clean-slate mode for skill-based work that doesn&#8217;t need a repo at all. Execution logs stream the whole time, so engineers can watch it work or audit it later.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26903\" src=\"https:\/\/blog.razorpay.in\/wp-content\/uploads\/2026\/05\/slash-launch-agents-1.gif\" alt=\"\" width=\"800\" height=\"496\" \/><\/p>\n<p><b>Slash Reviewer. <\/b><span style=\"font-weight: 400;\">A fleet of specialised sub-agents on every pull request. Each one owns a single dimension: bug detection, security, code quality, Razorpay design system, internationalization, pre-mortem. They clone the repo and read actual file context, not just the diff. They use repo-specific code-review skills for standards-aware severity scoring. An AI filter layer drops false positives before any comment is posted. Low-severity PRs get auto-approved with no human in the loop. One in three code reviews flowing through Slash today gets reviewed, scored, approved, and merged with zero human comments.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26908\" src=\"https:\/\/blog.razorpay.in\/wp-content\/uploads\/2026\/05\/slash-reviewer-gif-1.gif\" alt=\"\" width=\"800\" height=\"497\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><b>Slash Event Listener<\/b>. Watches new tickets so engineers don&#8217;t have to break their focus mid-sprint. When a cross-functional ticket lands, it gets auto-assigned to Slash. Slash picks it up, writes a fix that follows our standards, and posts back to the thread. Zero human touches between ticket creation and PR approval.<br \/>\n<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26904\" src=\"https:\/\/blog.razorpay.in\/wp-content\/uploads\/2026\/05\/slash-event-listener-1.gif\" alt=\"\" width=\"800\" height=\"496\" \/><\/p>\n<p><b>Scheduled Skills.<\/b><span style=\"font-weight: 400;\"> A skill is a scoped instruction that tells Slash how to handle a specific task. Generate a sprint report. Build a weekly Slack digest. Analyse open PRs for missing tests. Review support escalations. Run a daily Trino cost report. A few hundred of them sit in the catalogue today, contributed by teams across the org. The boring stuff that used to eat an hour every Monday morning now runs by itself at 8:55 AM.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26905\" src=\"https:\/\/blog.razorpay.in\/wp-content\/uploads\/2026\/05\/slash-skills-1.gif\" alt=\"\" width=\"800\" height=\"496\" \/><\/p>\n<p><b>MCP and CLI Gateway. <\/b><span style=\"font-weight: 400;\">One agent, every tool. Slash reaches tickets, GitHub, our design system (Blade), docs, logs, Grafana, deployment pipelines, the data lake, Slack, and a couple of dozen more. Each connection ships with scoped permissions: what Slash can read, what it can write, what it can never touch. A tool gets added once. Every agent on the platform can use it.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26906\" src=\"https:\/\/blog.razorpay.in\/wp-content\/uploads\/2026\/05\/slash-mcp-gateway-1.gif\" alt=\"\" width=\"800\" height=\"514\" \/><\/p>\n<p><b>Discover: Slash&#8217;s Knowledge Graph. <\/b><span style=\"font-weight: 400;\">Razorpay&#8217;s internal Google, basically. Natural language queries across ten plus data sources: GitHub PRs, Slack threads, Google Drive, AWS, ticketing software, and internal tooling. Ask &#8220;what did the payments team discuss about the latency issue last week?&#8221; and it comes back with insights, the thread, the linked tickets, and the doc someone wrote up after. This is what kills the signal-loss problem.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26907\" src=\"https:\/\/blog.razorpay.in\/wp-content\/uploads\/2026\/05\/slash-discover-1.gif\" alt=\"\" width=\"800\" height=\"496\" \/><\/p>\n<p><b>Slash is the platform. Repos decide the output.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Connecting coding agents into a repo takes a few seconds. Getting useful output from it could take hours. Same agent, two repos, wildly different output. The gap comes down to how well each codebase describes itself to an agent.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We wanted Slash to behave with high accuracy across all our repos. So we score every repo on three pillars.<\/span><\/p>\n<p><b>Context<\/b><span style=\"font-weight: 400;\">. How well a repo describes itself. Does it have an <\/span><a href=\"http:\/\/agents.md\" rel=\"nofollow noopener\" target=\"_blank\"><span style=\"font-weight: 400;\">AGENTS.md<\/span><\/a><span style=\"font-weight: 400;\"> and the right repo context files? Do large subdirectories carry their own scoped skills?Are the knowledge docs updated from time to time?<\/span><\/p>\n<p><b>Testing<\/b><span style=\"font-weight: 400;\">. How safely can agents validate their work? Unit, integration, and end-to-end coverage; API and contract documentation; Dev Testing infra readiness so changes can be tested without touching prod.<\/span><\/p>\n<p><b>CI\/CD<\/b><span style=\"font-weight: 400;\">. How smoothly an agent&#8217;s output reaches production. Agent skills wired into CI, deployment automation, build speed, take-it-live config.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A repo scoring 80%+ across all three is Agent Ready. Full context, safe validation, fast path to production: the conditions where agents do their best work. Scores get refreshed periodically and show up in POD health dashboards. Better context compounds. Every future agent task on that repo benefits, not just today&#8217;s. Engineering teams across Razorpay have spent the last several months getting every repo above 80%. And this isn&#8217;t just about Slash. Once a repo is Agent Ready, every agent that touches it works better, across the whole SDLC.<\/span><\/p>\n<h3><b>What surprised us<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">We didn&#8217;t expect an internal platform to behave like an open-source project. But that&#8217;s what happened.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A small team built the first version. Most of what came next was contributed by engineers who weren&#8217;t on the project. One shipped the GitHub integration on a Saturday. The knowledge graph started as a hackathon. By the time we hit a limited launch internally, more than half the agents on the platform had been contributed by engineers who didn&#8217;t work on Slash at all. Nobody asked them to. And it wasn&#8217;t just engineering. Designers, business teams, and PMs started showing up with ideas for how to use Slash too.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">And it wasn&#8217;t only the platform. Teams started investing in their own repos. Sharpening docs, wiring CI agents, getting test coverage up. They could see the compounding effect. Every hour spent on a repo&#8217;s readiness paid back across every future agent task that touched it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The numbers moved accordingly. PRs created through Slash went from about 100 a week to about 1,000 a week inside a month. PRs merging with zero humans in the loop went from about 10 a week to about 100 a week in a couple of weeks. Queries through Discover went from about 1,000 a week to tens of thousands a week in the same window.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">All of this while we were still building it. From what we can tell, that&#8217;s rare.<\/span><\/p>\n<h3><b>What&#8217;s next<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Slash is the platform. The agents on top of it are what make it useful.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The next post in this series goes deep on the Agentic Quality Lifecycle. The agents we built on top of Slash to own testing across the SDLC. How they generate suites from PR diffs, run them in parallel against dev environments, triage failures, and decide what&#8217;s ready to ship.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Soon.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tens of thousands of agent sessions. Thousands of PRs created automatically and merged every month. Over a third merged with no human in the loop. Every check still had to pass. That&#8217;s what one quarter looks like with an autonomous agent platform running inside Razorpay engineering. We call it Slash. Slash writes code, opens PRs,<\/p>\n","protected":false},"author":179,"featured_media":26913,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1137],"tags":[],"class_list":{"0":"post-26885","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ai-products"},"_links":{"self":[{"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/posts\/26885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/users\/179"}],"replies":[{"embeddable":true,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/comments?post=26885"}],"version-history":[{"count":7,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/posts\/26885\/revisions"}],"predecessor-version":[{"id":26909,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/posts\/26885\/revisions\/26909"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/media\/26913"}],"wp:attachment":[{"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/media?parent=26885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/categories?post=26885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/razorpay.com\/blog\/wp-json\/wp\/v2\/tags?post=26885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}