Read & understand a codebase
T1 · AUTONOMOUSWalks the repo, reads README + ARCHITECTURE docs, traces imports, builds a mental model. Speaks back what it understood before touching code.
Not autocomplete. Not a chat window. A real engineer-shaped Cyborg with its own machine, its own GitHub identity, its own seat in your repo. It picks up tickets from Linear, writes the code, runs your test suite, opens a pull request, responds to your review comments, and merges when you approve.
— CAPABILITIES
A Software Engineer ka kaam sirf typing nahi hota. Plan, code, review, test, deploy, debug, document — sab Cyborg karta hai. Yahan complete list hai, har ek capability ke saath confidence level (T1–T4).
Walks the repo, reads README + ARCHITECTURE docs, traces imports, builds a mental model. Speaks back what it understood before touching code.
Reads the ticket, asks clarifying questions in Linear comments if scope is unclear, opens a branch, writes code + tests, opens a draft PR.
Reproduces locally, finds root cause (not symptom), writes a regression test, fixes it, opens PR linked back to the issue.
Reads diff, runs static analysis, comments on edge cases, suggests cleaner alternatives. Flags security risks. Does not auto-approve.
Class component → hooks, callbacks → async/await, JS → TS, CommonJS → ESM. Always small PRs, never one-shot mega refactor.
GitHub Actions, GitLab CI, CircleCI. Adds caching, parallelisation, fixes flaky tests. Reads logs and proposes fixes for failed runs.
Writes Prisma / Knex / Alembic migrations. Always reversible. Always tested on staging copy first. Production run requires your green.
Profiles slow endpoints, optimises queries, finds N+1, suggests indexes, reduces bundle size. Reports before/after numbers.
Cyborg can prepare and stage the deploy, write the rollback plan, draft the changelog. Final "ship it" button is always pressed by a human.
Updates README every time public surface changes. Writes ADRs for architecture decisions. Keeps changelog in sync with merged PRs.
Pages alert → reads error → checks recent deploys → identifies likely culprit → posts findings to Slack within 2 min. Human decides revert.
Reads Dependabot / Snyk alerts, evaluates severity in your context, opens upgrade PR. Critical CVEs auto-paged to humans.
— FLUENCY
"Fluent" means >5,000 PRs reviewed and validated by senior humans during pre-training, plus production usage in real customer repos. Anything not on this list, Cyborg learns in your repo's first week — but with T2 trust until 50 successful PRs.
— TUESDAY · 09:00 → 18:00 IST
This is anonymised log output from a real Cyborg-Software-Engineer working on a Fintech customer's repo. Every line is a real action, real timestamp, real artifact.
Posts written standup in #eng-standup: yesterday's merged PRs, today's plan (3 tickets from Linear sprint), 1 blocker (waiting on design clarification for ticket FIN-412).
"Add CSV export to invoice list page." Reads ticket, comments asking whether export should respect current filters (yes, says PM in 11 min). Branches as fin-389-invoice-csv-export.
74 lines added, 6 deleted. Tests included (5 new). CI green. Self-reviews own diff, leaves 2 comments on parts to discuss. Tags @meera for review.
P2 alert fires. Cyborg drops current task, reads error, traces to Stripe webhook handler. Identifies likely cause (missing index on events.idempotency_key). Posts findings + proposed fix to #oncall in 4 min. Human approves migration.
Migration + index. Tested on staging. PR opened, reviewed by senior eng, merged. Sentry alert resolves at 12:14. Cyborg writes 3-line postmortem in #oncall.
Cyborg pauses. Process idles at <1% CPU. Saves session state to S3 snapshot. (Yes, even Cyborgs honour the "don't work through lunch" rule.)
Leaves 7 comments total. Catches one race condition in PR #1244 (concurrent webhook handler). Suggests fix using SELECT ... FOR UPDATE SKIP LOCKED. Does not auto-approve any.
"Move billing logic out of controller into service layer." Reads existing controller (320 LOC), proposes split as a comment on the ticket, waits for tech lead approval. Approval at 15:48. Begins refactor.
Refactor PR opened as draft. Tests still passing (no behaviour change). 2 follow-up tickets created for things found during refactor (dead code, missing test for edge case).
Posts in #eng-eod: 3 PRs opened (1 merged), 3 reviews left, 1 hotfix landed. Tomorrow: finish FIN-401, pick up FIN-422, follow up on review comments.
— REAL PR · ANONYMISED
From a Series-A SaaS customer, used with permission, with names anonymised. Real diff, real description, real review comments.
Closes FIN-389. Adds a "Download CSV" button to the invoice list page. The export respects the current filter state (date range, status, customer) per discussion with @priya in the ticket.
InvoiceCsvExportService with stream-based encoding for large result sets (no full-list-in-memory).GET /api/invoices/export.csv with the same filter query params as the list endpoint (DRY via shared InvoiceFilterDto).InvoiceListToolbar. Disabled when result count is 0. Loading state while streaming.T1 · AUTONOMOUS — standard feature work in an area I've shipped 12 PRs in. No DB migrations. No public API removal. Safe to merge after review.
42 describe('InvoiceCsvExportService', () => {
+ 43 it('quotes customer names with commas', async () => {
+ 44 const inv = await factory.invoice({ customer: 'Smith, John' });
+ 45 const csv = await service.export([inv]);
+ 46 expect(csv).toContain('"Smith, John"');
+ 47 });
+ 48
+ 49 it('respects active filter state', async () => {
+ 50 await factory.invoice({ status: 'paid' });
+ 51 await factory.invoice({ status: 'overdue' });
+ 52 const csv = await service.exportFiltered({ status: 'overdue' });
+ 53 expect(csv.split('\n').length).toBe(2); // header + 1 row
+ 54 });
55 });
Clean. Streaming encoder is the right call. One nit: in InvoiceCsvExportService:84, the BOM is hardcoded — make it an option in case we ever want UTF-8-no-BOM for non-Excel consumers. Otherwise LGTM.
Good catch on the BOM. Pushed e7a2c91 — added options.bom: boolean defaulting to true for backward compat. Test added. Re-running CI.
— INTEGRATIONS
Every integration is OAuth, tied to a Cyborg-only service account, with the minimum scopes needed. Your tenant. Your audit log. Revoke anytime, from your own admin console.
— FLAT MONTHLY · NO USAGE METER
Same Cyborg model under the hood. Difference is autonomy budget, parallel context size, and how much human review it expects. You can upgrade or downgrade any month.
Pair-coding with a senior. T1 capabilities only. Great for a side-project or first-time AI-team adoption.
The sweet spot. Most customers start here. T1 + T2 + T3 (with approvals). Owns features end-to-end.
Architects features, mentors human juniors via review, drives ADRs. Multi-repo context. Tech-lead-shaped.
14-DAY EVALUATION · 30-DAY MONEY-BACK · MONTH-TO-MONTH · CANCEL ANYTIME · See full pricing →
— DAY 1 → DAY 7
No 3-month POC theatre. Real timeline, with named milestones. If we miss any of them, you get a refund + an honest postmortem.
Contract + DPA. Stripe gets first month. We schedule kickoff.
Founder + your tech lead. Pick repo, pick first ticket, set trust levels per area.
Cyborg's machine spins up. OAuth wires through your tooling. Cyborg reads your repo + docs, writes a "what I understood" doc back to you.
Cyborg picks the smallest backlog ticket and opens a draft PR. You read it like any human's first PR. Comment, redirect, approve.
2-3 more PRs. You discover what to trust at T1, what stays T2 in your codebase. We tune the policy with you.
A real ticket from your sprint, merged. Cyborg posts retrospective in Slack. From here on, it's just a teammate.
— ENGINEERING-MANAGER QUESTIONS
By default no. Production DB writes are T4 (never alone). Cyborg can read read-replicas if you provision them, can write migrations as PRs (you run), can prepare data backfills as scripts (you execute). The "merge button" and the "run migration button" are different buttons — Cyborg presses neither in production.
You catch it in PR review, exactly like a human's PR. CI runs your tests. Linters run. Type-checker runs. Cyborg does not bypass any of your existing quality gates — those are the same gates that catch human mistakes. If a bad PR slips through, that's a process gap (yours and ours) and we hold a postmortem.
Code Cyborg writes in your repo is your IP from line 1, contractually. It's spelled out in §7 of the Terms. Commits are signed by a Cyborg service account but copyright is yours. We claim zero rights to your code, your data, or your prompts.
It builds a per-tenant context (style guide, naming conventions, common patterns) that lives only in your Cyborg's machine. We do not use your code to train any shared model — that's a hard contractual commitment, not a "best effort". See Privacy → AI training.
Three things. Trust levels — anything destructive (deploys, force-push, prod DB) is T3/T4 and needs human approval. Audit log — every action it takes is logged with the prompt that caused it; you can replay any decision. Kill switch — one button in your admin console pauses the Cyborg, revokes its tokens, and freezes its machine. Mean time to halt: <30 sec.
Honest list: COBOL, Fortran, Mainframe assembly, Salesforce Apex, ABAP, hand-rolled embedded C with custom toolchains. Anything where the public training corpus is thin or the toolchain is closed. We'll tell you upfront in the kickoff call if your stack is in this zone.
No, and we don't sell it that way. It absorbs the high-volume, low-judgement work — bug triage, small features, refactors, docs, review noise — so your humans go upstream into architecture, customer conversations, hard product decisions. Most customers use it to avoid hiring 1-2 mid-level engineers, not to fire any.