{
  "markdown": "# Team — Virtual Senior Engineering Team\n\n[![version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FApoorve8055%2Fvirtual-team%2Fmain%2F.claude-plugin%2Fplugin.json&query=%24.version&label=version&color=blue)](./CHANGELOG.md)\n[![license: MIT](https://img.shields.io/badge/license-MIT-green)](./LICENSE)\n[![Claude Code plugin](https://img.shields.io/badge/Claude%20Code-plugin-d97757)](https://code.claude.com/docs/en/plugins)\n\nA Claude Code plugin that turns Claude into a virtual senior engineering team. Each\nmember is a slash command with a sharp expert persona, a repeatable workflow, and a\nstructured output contract — for **code review** and **development guidance**.\n\n**Project-adaptive:** the personas detect the current project's stack and conventions\nat invocation time (manifest, project instructions, layout). They work in any repo and\nare not tied to any single project.\n\n## Install\n\n```\n/plugin marketplace add Apoorve8055/virtual-team\n/plugin install virtual-team@virtual-team\n/reload-plugins\n```\n\nThe 13 `/virtual-team` commands then appear in the slash-command menu — run `/virtual-team` to list them.\n\n## Commands\n\n| Command | Role | Focus |\n|---------|------|-------|\n| `/virtual-team` | — | Lists the team (this index) |\n| `/virtual-team:senior-brother` | Senior Brother — generalist mentor | Help wherever you're stuck — the better solution, where you're lacking, how to level up |\n| `/virtual-team:review` | Senior Full Stack Engineer | End-to-end review, cross-cutting concerns, integration between layers |\n| `/virtual-team:frontend` | Senior Frontend Engineer | Component architecture, accessibility, UX states, client/server boundaries |\n| `/virtual-team:backend` | Senior Backend Engineer | API design, input validation, authorization, error handling, security |\n| `/virtual-team:database` | Senior Database Engineer | Schema design, indexing, query optimization, migration safety |\n| `/virtual-team:architect` | Senior Software Architect | Module boundaries, dependency direction, coupling, tradeoff analysis |\n| `/virtual-team:qa` | Senior QA / Test Engineer | Test strategy, coverage gaps, regression risk, edge-case analysis |\n| `/virtual-team:devops` | Senior DevOps Engineer | CI/CD pipelines, IaC, deployment safety, observability, secrets/config hygiene |\n| `/virtual-team:security` | Senior Security Engineer | Threat modeling, authn/authz, OWASP, supply-chain risk, secrets, data exposure |\n| `/virtual-team:mobile` | Senior Mobile Engineer | Native and cross-platform apps, lifecycle, offline/sync, performance, store release |\n| `/virtual-team:data` | Senior Data Engineer | Data pipelines, schema/data contracts, analytics correctness, ML/AI integration |\n| `/virtual-team:all` | Engineering Team (orchestrator) | Dispatches all specialists in parallel and synthesizes one prioritized report |\n\n## How it works\n\n**Stack detection.** Every persona's first step is to detect the project: it finds the\nproject root, reads the root `CLAUDE.md` / `AGENTS.md`, reads the nearest manifest and\nlockfile, and scans the layout. Project instructions and detected facts always override\nthis plugin's examples. The full protocol is in `reference/stack-detection.md`.\n\n**Two modes.** Each specialist works in **REVIEW** mode (a PR, files, or a changeset)\nor **DEVELOP** mode (guide new work). State which you want when invoking — e.g.\n`/virtual-team:backend review PR 25` vs `/virtual-team:database design a schema for recurring subscriptions`.\n\n**Structured output.** REVIEW mode produces a fixed contract — Critical / Warning /\nSuggestion findings (each with `path:line` and rationale) plus a one-paragraph role\nHealth line. Severity definitions live in `reference/review-rubric.md`.\n\n**Parallel orchestration.** `/virtual-team:all` detects the stack once, acquires the changeset\nonce, then dispatches the team as parallel subagents — the seven universal specialists\nalways, plus `mobile` and/or `data` when the detected stack calls for them (7-9 in\ntotal) — and synthesizes their findings into one de-duplicated, globally-prioritized\nreport with a ship verdict. It is review-only — for building, invoke a single specialist.\n\n**Generalist mentor.** `/virtual-team:senior-brother` is the default door — bring it anything.\nIt figures out what you actually need, then helps at the right depth: directly, by\nadopting a `/virtual-team:` specialist, by dispatching a focused subagent, or by pointing you\nat `/virtual-team:all`. Its output is the \"Brother's Take\" — what you actually need, the better\nsolution, where you're lacking, and how to level up. The last two are non-negotiable:\nthey're what make it a mentor rather than just a helper.\n\n## Usage\n\n```\n# Not sure who to ask — start with your senior brother\n/virtual-team:senior-brother how should I handle errors in this API?\n/virtual-team:senior-brother am I doing this right?\n/virtual-team:senior-brother 25\n\n# Single-specialist review\n/virtual-team:review 25\n/virtual-team:frontend review the components under src/components/checkout/\n/virtual-team:backend review the api routes touched in this branch\n/virtual-team:database review the migration in this PR\n/virtual-team:architect review the system design of the notification flow\n/virtual-team:qa review PR 25\n\n# Development guidance\n/virtual-team:frontend build a date-range calendar component\n/virtual-team:backend design the API for crew availability checking\n/virtual-team:database design the schema for recurring subscriptions\n/virtual-team:architect how should we structure the notification system?\n/virtual-team:qa write a test plan for the subscription cancellation feature\n\n# Full multi-specialist review\n/virtual-team:all 25\n```\n\n## Project adaptivity\n\nThe plugin is installed globally and works in any repo. Because personas detect the\nstack per invocation, the same `/virtual-team:backend` gives Next.js-aware feedback in one repo\nand Django-aware feedback in another.\n\nWhen the current directory is a **workspace root** containing multiple child repos\n(with no manifest of its own), a persona will not guess — it infers the target repo\nfrom your arguments (a file path or PR clearly inside one repo) or asks which repo to\nwork in.\n\n## Layout\n\nThe repository **is** the plugin — it also self-hosts as its own single-plugin marketplace.\n\n```\nvirtual-team/\n├── .claude-plugin/\n│   ├── plugin.json                # plugin manifest\n│   └── marketplace.json           # self-hosting marketplace manifest (source: \"./\")\n├── commands/\n│   ├── virtual-team.md            # /virtual-team — team index\n│   └── virtual-team/\n│       ├── senior-brother.md      # /virtual-team:senior-brother\n│       ├── review.md              # /virtual-team:review\n│       ├── frontend.md            # /virtual-team:frontend\n│       ├── backend.md             # /virtual-team:backend\n│       ├── database.md            # /virtual-team:database\n│       ├── architect.md           # /virtual-team:architect\n│       ├── qa.md                  # /virtual-team:qa\n│       ├── devops.md              # /virtual-team:devops\n│       ├── security.md            # /virtual-team:security\n│       ├── mobile.md              # /virtual-team:mobile\n│       ├── data.md                # /virtual-team:data\n│       └── all.md                 # /virtual-team:all\n├── reference/\n│   ├── stack-detection.md         # Shared stack-detection protocol\n│   ├── review-rubric.md           # Shared severity rubric + output format\n│   └── ecosystem-context.md       # Opt-in ecosystem context (customizable template)\n├── CHANGELOG.md\n├── README.md                      # this file\n└── LICENSE\n```\n\nThe `reference/*.md` docs are read on demand — command bodies carry short inline copies\nof the shared blocks and point to the reference files by relative path, so base context\nstays small.\n\n## Maintenance\n\nPublished as a public marketplace at\n[github.com/Apoorve8055/virtual-team](https://github.com/Apoorve8055/virtual-team) — the\nrepository is both the plugin and its own single-plugin marketplace.\n\n- When you change a shared inline block (`<stack-detection>`, the `<process>`\n  skeletons, or the Output Contract), update it in **all** command files together. The\n  blocks are kept short so this stays cheap.\n- On any **plugin release**, bump `version` in **both** `.claude-plugin/plugin.json`\n  **and** the `virtual-team` entry inside `.claude-plugin/marketplace.json`, add a\n  `CHANGELOG.md` entry, then commit and push.\n- On any **marketplace-only change** (renames, owner/category changes, or anything\n  that only touches `.claude-plugin/marketplace.json` outside the `plugins[]` block),\n  bump the **top-level** `version` field in `.claude-plugin/marketplace.json` instead.\n  That version is independent from the plugin version — track entries under it in\n  `CHANGELOG.md` with a `[Marketplace x.y.z]` prefix to keep the two namespaces\n  distinct.\n- Users pull updates with `/plugin marketplace update` followed by `/plugin update`.\n\n## Setup\n\nTo verify the plugin is active:\n\n1. Restart Claude Code (`exit`, then `claude`).\n2. The 13 `/virtual-team` commands appear in the slash-command menu.\n3. Invoke any specialist — it should run stack detection, then act in its persona.\n\n## Contributing\n\nIssues and pull requests are welcome at\n[github.com/Apoorve8055/virtual-team](https://github.com/Apoorve8055/virtual-team).\nWhen changing a shared inline block, keep it byte-identical across every command file —\nsee [Maintenance](#maintenance) for the discipline and the release process.\n\n## Author\n\n**Apoorve Verma**\n\n- Website — [apoorveverma.com](https://apoorveverma.com)\n- GitHub — [@Apoorve8055](https://github.com/Apoorve8055)\n- Repository — [Apoorve8055/virtual-team](https://github.com/Apoorve8055/virtual-team)\n\n## License\n\n[MIT](./LICENSE) © 2026 Apoorve Verma\n",
  "bytes": 9807,
  "sha": "97d68ba13153774b4cc8ae880b981fd8e9516df243a86a05c2ef12b124ce45ac",
  "repo_slug": "apoorve8055/virtual-team",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_apoorve8055_virtual_team_virtual_team_3610c074/readme"
}