Why a Fleet
A single broad assistant demos well. It is hard to trust.
One big assistant
- No defined output
- No gate it has to pass
- No way to say “I do not have what I need”
- Access to everything, all the time
- When it is wrong, you cannot tell which part failed
A fleet of narrow agents
- One job, one output artefact each
- One named human approves each output
- Stops and asks when an input is missing
- Read-only, scoped access
- When it is wrong, you know which agent to fix
One job each
Role, Task, Context, Steps, Output. If you cannot say its output in one line, it is two agents.
Stop, do not guess
Missing input or an unresolved question? The agent stops and asks. It does not write a confident draft with quiet caveats.
Shared memory
All agents read and write one .ai-memory/. Module docs, domain glossary, code patterns, past decisions.
No invention
Endpoints, components, columns and queries come from the live code. If it cannot find one, it says so.
The Pipeline
Requirement in at the top. UAT pack out at the bottom.
Fourteen agents, six gates
The Fourteen Agents
Input, output, and who signs it off
Spec Agent
Takes a requirement however it arrives — email, call notes, a ticket — and writes a spec with testable acceptance criteria. It works from your own past specs, so the shape matches what your team already builds from. Anything it does not know becomes an open question rather than an assumption.
Regulatory Watch Agent
Reads an exchange or SEBI circular and turns it into engineering work: what it requires, which n.tasc modules cover that area today, and what the compliance deadline means for the release date. Regulatory releases are a standing part of your work, so they get a repeatable path instead of a scramble.
Architecture & Impact Agent
Reads the approved spec against the real solution and says exactly what is in scope: which services, React components, database logic and config tables. It also raises the restricted-zone flag when a change touches business-critical calculations or rule engines, which routes it through the restricted gate.
API Contract Agent
Your engines and UI are built on the API, so the contract gets designed and signed before anyone writes code behind it. The agent diffs the proposed shape against the existing surface, classifies it additive or breaking, and drafts the deprecation and notification plan when it breaks something.
Backend Agent
Works on a feature branch, reuse first. It has to find the existing service, repository or helper before writing a new one, and follow the conventions already present in that project. It never touches a file the change map did not authorise, and never edits restricted-zone code without routing through agent 11.
Web UI Agent — React
Works in the React idiom already in the codebase. Components, hooks, state management, routing and the existing component and state conventions. For dashboard work it follows the display conventions already in place: refresh behaviour, alert prominence, and the fact that an operations user reads that screen under time pressure.
Data & Migration Agent
Where real business logic sits in the database, code generation without database awareness is worse than useless. This agent writes forward and rollback migrations, query and database-logic changes, and an index and query-plan note. It reads the live schema, so it never guesses a column name. It never runs DDL anywhere.
Code Review Agent
Reviews the branch before a human opens it: your coding standards, ESLint on the React side plus the backend's linters and static analysis, the change map, and a security pass covering injection, encoding, authorisation and secrets. This is the agent that makes “production-ready code generation” a measurable claim instead of a hope.
Characterization Test Agent
This is what makes the rest safe. Point it at an untested part of n.tasc. It runs the existing code and writes tests that pin what it does today — no spec needed first. Anything it captures that looks wrong gets raised as a finding, not frozen into a test.
Test & QA Agent
Unit, integration and Playwright journey tests mapped one to one to acceptance criteria. Plus the cases n.tasc needs and people forget: empty data sets, a missing upstream feed, stale data, expired records, a value sitting exactly on a configured limit. It also generates the synthetic test data.
Critical-Logic Verification Agent ⚠
Any change touching business-critical calculations or rule engines gets re-run against golden datasets: known inputs, known correct outputs, agreed with your domain owners. It reports every difference from the reference, however small, and it cannot mark a change as passing. A rounding difference in a calculated figure is exactly the kind of defect that reaches a client.
Bug Triage Agent
Takes a defect however it arrives, finds the likely code, drafts a failing test that reproduces it, and writes the ticket in the shape your team already uses. Where the defect sits in a client-specific module rather than the core product, it says so, because the fix path differs.
Release & UAT Pack Agent
Your releases stay on request. What changes is that each one arrives in the same shape: what changed and why, the UAT checklist derived from the acceptance criteria, known limitations, the migration scripts to run, and the rollback plan. Assembling that by hand costs half a day per release.
Knowledge Update Agent
After each completed change it updates .ai-memory/: new patterns, decisions the PO or tech lead made, things reviewers pushed back on, dead ends worth not repeating. Skip this and the fleet is exactly as good in month twelve as it was in week one.
How an Agent Is Packaged
Version-controlled next to the code it reasons about. Agents are software.
Autonomy Levels
Where each agent starts, where it can get to, and where it stops for good
Promotion needs numbers
An agent moves L1 to L2 when its pilot data says so: how often its drafts are accepted, how much rework they cause in review, and escaped defects on work it touched. Promotions get decided in the Stage 4 review and written down, so nobody has to work out later why an agent was trusted with more.