{"id":44740335,"url":"https://github.com/nmallick1/mandali","last_synced_at":"2026-02-15T20:35:26.953Z","repository":{"id":337333411,"uuid":"1153099705","full_name":"nmallick1/mandali","owner":"nmallick1","description":"Mandali (मंडली) — Autonomous multi-agent collaborative development system using GitHub Copilot SDK","archived":false,"fork":false,"pushed_at":"2026-02-09T02:23:00.000Z","size":121,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-09T06:21:44.497Z","etag":null,"topics":["ai-agents","autonomous-agents","collaborative-ai","copilot-sdk","devtools","devtools-team","github-copilot","github-copilot-sdk","multi-agent","multi-agent-systems"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmallick1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-08T22:23:14.000Z","updated_at":"2026-02-09T02:23:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nmallick1/mandali","commit_stats":null,"previous_names":["nmallick1/mandali"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nmallick1/mandali","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmallick1%2Fmandali","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmallick1%2Fmandali/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmallick1%2Fmandali/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmallick1%2Fmandali/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmallick1","download_url":"https://codeload.github.com/nmallick1/mandali/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmallick1%2Fmandali/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29488688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","autonomous-agents","collaborative-ai","copilot-sdk","devtools","devtools-team","github-copilot","github-copilot-sdk","multi-agent","multi-agent-systems"],"created_at":"2026-02-15T20:35:26.346Z","updated_at":"2026-02-15T20:35:26.946Z","avatar_url":"https://github.com/nmallick1.png","language":"Python","readme":"# Mandali\n\n\u003e *Mandali (मंडली, pronounced \"mun-da-lee\") — Sanskrit: a circle of specialists that deliberates and acts together*\n\nAutonomous multi-agent collaborative development system using GitHub Copilot SDK\n\n## Prerequisites\n\nBefore using Mandali, ensure the following are installed:\n\n| Requirement | How to install |\n|-------------|---------------|\n| **Python 3.10+** | [python.org](https://www.python.org/downloads/) |\n| **Node.js 18+** | [nodejs.org](https://nodejs.org/) (required for Copilot CLI) |\n| **GitHub Copilot CLI** | `winget install GitHub.Copilot` or `npm install -g @github/copilot` |\n| **GitHub Copilot license** | Active Copilot Individual, Business, or Enterprise subscription |\n\n**Verify your setup:**\n```bash\npython --version      # 3.10 or higher\ncopilot --version     # Should print the CLI version\n```\n\n\u003e **Tip:** If the CLI is installed but not in your PATH, set the `COPILOT_CLI_PATH` environment variable to point directly at the binary.\n\n---\n\n## Quick Start\n\n### Install\n\n```bash\n# Option A: Install as a command (recommended)\npip install git+https://github.com/nmallick1/mandali.git\n\n# Option B: Clone and run directly\ngit clone https://github.com/nmallick1/mandali.git\ncd mandali\npip install -r requirements.txt\n```\n\nMandali checks for updates on each launch and notifies you when a newer version is available.\n\n### Run\n\n```bash\n# If installed via pip (Option A):\nmandali --plan phases/_INDEX.md --out-path ./output\n\n# If cloned (Option B):\npython mandali.py --plan phases/_INDEX.md --out-path ./output\n\n# Generate a NEW plan from scratch via interview\nmandali --prompt \"Add caching to the API layer\" --generate-plan --out-path ./output\n\n# Control verification retries (default: 5, set 0 to disable verification)\nmandali --plan phases/_INDEX.md --out-path ./output --max-retries 3\n```\n\n---\n\n## MCP Server Configuration\n\nThe orchestrator automatically loads MCP server configuration from:\n1. `~/.copilot/mcp-config.json` (user config - primary)\n2. `.copilot/mcp-config.json` (project config - fallback)\n\nThe orchestrator also passes the user's `~/.copilot` config directory to agent sessions, so locally installed **skills and extensions** are available to all persona agents.\n\n### Example mcp-config.json\n\n```json\n{\n  \"mcpServers\": {\n    \"aspire\": {\n      \"type\": \"local\",\n      \"command\": \"aspire\",\n      \"args\": [\"mcp\", \"start\"],\n      \"tools\": [\"*\"]\n    },\n    \"playwright\": {\n      \"type\": \"local\",\n      \"command\": \"npm\",\n      \"args\": [\"exec\", \"--yes\", \"--\", \"@playwright/mcp@latest\"],\n      \"tools\": [\"*\"]\n    }\n  }\n}\n```\n\nAgents will have access to all configured MCP servers, enabling them to:\n- Query databases\n- Browse web pages\n- Interact with APIs\n- Access specialized development tools\n\n---\n\n## Phased Plan Structure (Recommended for Large Projects)\n\nFor large projects, plans are split into multiple files to prevent context loss:\n\n```\n\u003cout-path\u003e/\n├── phases/\n│   ├── _CONTEXT.md           # Global context (READ FIRST)\n│   │                         # Architecture, security, non-negotiables\n│   ├── _INDEX.md             # Phase tracking table with status\n│   │                         # Agents update this after each phase\n│   ├── phase-01-foundation.md\n│   ├── phase-02-core.md\n│   ├── phase-03-feature.md\n│   └── ...\n└── mandali-artifacts/        # Orchestration files (auto-created)\n    ├── conversation.txt\n    ├── satisfaction.txt\n    └── DecisionsTracker.md\n```\n\n### Why Phased Files?\n\n| Single File Plan | Phased File Structure |\n|------------------|----------------------|\n| Context lost in long documents | Each phase is self-contained |\n| Easy to miss tasks | Clear task numbering (XX.Y) |\n| Hard to track progress | _INDEX.md shows status |\n| Agents forget constraints | _CONTEXT.md always available |\n\n### File Purposes\n\n| File | Purpose |\n|------|---------|\n| `_CONTEXT.md` | **Read first** - Architecture, security, non-negotiables that apply to ALL phases |\n| `_INDEX.md` | **Tracking** - Phase table with status, commits, dependencies |\n| `phase-XX-*.md` | **Implementation** - Detailed tasks for one phase with quality gates |\n\n---\n\n## Usage\n\n### Command Line Arguments\n\n```bash\npython mandali.py [OPTIONS]\n```\n\n| Argument | Required | Description |\n|----------|----------|-------------|\n| `--out-path \u003cpath\u003e` | **Yes** | Output directory where Mandali creates files. If inside a git repo, a worktree is created automatically for isolation |\n| `--plan \u003cpath\u003e` | One of plan/prompt | Path to existing plan (_INDEX.md or single plan.md) |\n| `--prompt \u003ctext\u003e` | One of plan/prompt | Prompt with instructions and references to plan files |\n| `--generate-plan` | No (default: off) | Opt-in: run interview + plan generation instead of direct launch |\n| `--stall-timeout \u003cminutes\u003e` | No (default: 5) | Minutes of inactivity before human escalation |\n| `--max-retries \u003cn\u003e` | No (default: 5) | Max verification rounds after all agents SATISFIED. Set 0 to disable |\n| `--verbose` | No | Show detailed status updates |\n| `--describe \u003cpersona\u003e` | No | Show detailed description of a persona (dev, security, pm, qa, sre) |\n\n### Examples\n\n```bash\n# Direct launch with existing plan file\npython mandali.py --plan ./phases/_INDEX.md --out-path ./output\n\n# Direct launch with prompt referencing existing files\npython mandali.py --prompt \"Read phases/_CONTEXT.md and phases/_INDEX.md. Complete all phases.\" --out-path ./output\n\n# Generate a NEW plan from scratch (opt-in)\npython mandali.py --prompt \"Add Redis caching for API responses\" --generate-plan --out-path ./output/redis-caching\n\n# Longer timeout for complex tasks\npython mandali.py --plan phases/_INDEX.md --out-path ./output --stall-timeout 10\n```\n\n### What is `--stall-timeout`?\n\nThe `--stall-timeout` option controls how long the orchestrator waits before escalating to a human when agents stop making progress.\n\n| Value | Behavior |\n|-------|----------|\n| `5` (default) | After 5 minutes of no conversation activity, pause agents and ask human for guidance |\n| `10` | More patient - good for complex implementations where agents may take longer |\n| `2` | Aggressive - escalate quickly if you want tight human oversight |\n\n**When stall is detected:**\n1. Orchestrator injects: `@AllAgents - Escalating to @HUMAN for guidance`\n2. All agents pause and update status to `PAUSED`\n3. Human is presented with options:\n   - Provide guidance (relayed to agents)\n   - View recent conversation\n   - Abort\n\n---\n\n## Modes\n\n### Default: Direct Launch (no `--generate-plan`)\n\nBy default, the orchestrator **skips** interview, plan generation, and AI review. It assumes you already have plan files ready.\n\n#### With `--plan`\n\nReads the plan file, uses LLM to discover all referenced artifacts (up to 5 levels deep), copies them to the workspace, and launches agents.\n\n```bash\npython mandali.py --plan ./phases/_INDEX.md --out-path ./output\n```\n\n#### With `--prompt`\n\nThe LLM extracts file/folder paths mentioned in your prompt, reads those files, recursively discovers any files they reference (up to 5 levels), copies everything to the workspace, and launches agents. Your prompt is passed as additional context alongside the plan.\n\n```bash\npython mandali.py --prompt \"Read phases/_CONTEXT.md and phases/_INDEX.md. Start from Phase 3.\" --out-path ./my-project\n```\n\n**What happens:**\n1. 🔍 LLM extracts paths: `phases/_CONTEXT.md`, `phases/_INDEX.md`\n2. 🔍 Reads those files, discovers nested references (depth 1/5, 2/5, ...)\n3. 📁 Copies all artifacts to workspace\n4. ✅ Shows you what was found — you confirm or reject\n5. 🚀 Launches agents with plan + prompt as context\n\n#### Prompt Tips\n\nReference your plan files explicitly in the prompt:\n- ✅ `\"Read phases/_CONTEXT.md and phases/_INDEX.md. Complete all phases.\"`\n- ✅ `\"Follow the plan in phases/_INDEX.md. Start from Phase 3.\"`\n- ❌ `\"Continue the implementation\"` (no file references — orchestrator won't find plan files)\n\n### Opt-in: Plan Generation (`--generate-plan`)\n\nAdd `--generate-plan` to trigger the full interview and plan generation flow. Only works with `--prompt`.\n\n1. **AI Interviewer** - Asks clarifying questions about scope, phases, existing context\n2. **Plan Generation** - Creates phased file structure (_CONTEXT.md, _INDEX.md, phase-XX.md files)\n3. **User Approval** - Shows plan directory, you review/edit externally, then accept or reject\n4. **Plan Review** - AI validates phased structure\n5. **Agent Launch** - 5 personas begin autonomous work\n\n```bash\npython mandali.py --prompt \"Add rate limiting to the API\" --generate-plan --out-path ./output\n```\n\n---\n\n## Workspace Isolation (Git Worktrees)\n\nWhen `--out-path` points to a directory inside a git repository, Mandali automatically creates a **git worktree** in a sibling directory. Agents work entirely in the worktree — your original directory is never touched.\n\n```\nmyproject/                        ← your repo (untouched)\nmyproject-mandali-20260210-053400/ ← worktree (agents work here)\n```\n\n**What happens:**\n1. Mandali detects `--out-path` is inside a git repo\n2. Creates a branch `mandali/session-\u003ctimestamp\u003e`\n3. Creates a worktree at `\u003cparent\u003e/\u003cdirname\u003e-mandali-\u003ctimestamp\u003e/`\n4. Redirects all agent work to the worktree\n5. After the run, shows instructions to merge or discard\n\n**After the run:**\n```bash\n# Review what agents changed\ngit diff main..mandali/session-20260210-053400\n\n# Keep the changes\ncd myproject\ngit merge mandali/session-20260210-053400\n\n# Or discard everything\ngit worktree remove ../myproject-mandali-20260210-053400\ngit branch -D mandali/session-20260210-053400\n```\n\n**When `--out-path` is NOT inside a git repo**, no worktree is created and agents work directly in the specified directory (same as before).\n\n---\n\n## Interactive Monitoring\n\nWhile agents work, you see periodic status updates:\n\n```\n[14:32:15] 📊 ✅dev 🔧sec ⏳pm ⏳qa ⏳sre | 12 msgs\n           └─ @Dev: Implementing Phase 1 task 1.1, writing tests first...\n```\n\n**Status icons:**\n| Icon | Meaning |\n|------|---------|\n| ✅ | SATISFIED - Agent's criteria are met |\n| 🔧 | WORKING - Agent is actively working |\n| 🔴 | BLOCKED - Agent is blocked on something |\n| ⏳ | Waiting - Agent is waiting for others |\n\n**You can type a message at any time** to interject. Your message is injected as:\n```\n@AllAgents - Human says:\n[your message]\n```\n\nAll agents will see and respond to your guidance.\n\n---\n\n## Agent Communication\n\n### Protocol\n\n| Mention | Meaning |\n|---------|---------|\n| `@Dev` | Addressing Developer |\n| `@Security` | Addressing Security Architect |\n| `@PM` | Addressing Product Manager |\n| `@QA` | Addressing QA Engineer |\n| `@SRE` | Addressing SRE |\n| `@Team` or `@AllAgents` | Addressing everyone |\n| `@HUMAN` | Human arbiter (injected by orchestrator) |\n\n### Turn-Taking Rules\n\n1. **When to speak:**\n   - You are @mentioned\n   - Discussion is in your domain (security issue → @Security speaks)\n   - You have concerns about current work\n   - Handoff to you: \"@QA please test\"\n\n2. **When to stay quiet:**\n   - You're not mentioned and it's not your domain\n   - Implementation is in progress (unless you spot an issue)\n   - Your feedback was already addressed\n\n### conversation.txt Format\n\n```\n[21:15:00] @PM: @Team - I've reviewed the plan. Acceptance criteria look clear.\n@Dev, you can start with Phase 1. SATISFACTION_STATUS: WORKING\n\n[21:16:30] @DEV: @PM - Acknowledged. Starting Phase 1 implementation.\nCreating SkillParser.cs... @QA - Ready for testing when available.\nSATISFACTION_STATUS: WORKING\n\n[21:18:00] @SECURITY: @Dev - Quick concern on line 45. You're not validating\nthe input path. This could allow path traversal. Please add validation.\nSATISFACTION_STATUS: BLOCKED - Path traversal vulnerability\n```\n\n---\n\n## Agent Lifecycle\n\n```\n┌──────────────────────────────────────────────────────────────┐\n│                     AGENT LIFECYCLE                          │\n├──────────────────────────────────────────────────────────────┤\n│                                                              │\n│  1. LAUNCH                                                   │\n│     Orchestrator creates session with:                       │\n│     - System prompt (persona definition)                     │\n│     - Plan artifacts (phased or single-file)                 │\n│     - MCP servers (from ~/.copilot/mcp-config.json)          │\n│     - User's Copilot config (skills, extensions)             │\n│     - Model verified via SDK list_models()                   │\n│                                                              │\n│  2. INTRODUCTION                                             │\n│     Agent introduces self, appends to conversation.txt       │\n│                                                              │\n│  3. WORK LOOP (autonomous)                                   │\n│     While not terminated:                                    │\n│       - Read conversation.txt (new entries since last read)  │\n│       - Decide if should respond                             │\n│       - If yes: do work, append response                     │\n│       - Update satisfaction status                           │\n│       - Check for @ORCHESTRATOR messages                     │\n│                                                              │\n│  4. PAUSE (on escalation)                                    │\n│     - Finish atomic work                                     │\n│     - Update status to PAUSED                                │\n│     - Wait for @HUMAN message                                │\n│                                                              │\n│  5. TERMINATE (on victory or abort)                          │\n│     - Acknowledge completion                                 │\n│     - Session destroyed by orchestrator                      │\n│                                                              │\n└──────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## Human Escalation Flow\n\n**Trigger:** No conversation activity for N minutes, or agent requests `@HUMAN`.\n\n**Escalation message (injected by orchestrator):**\n```\n@AllAgents - Escalating to @HUMAN for guidance.\nPlease pause your current work. Wait for human input before continuing.\n\nCurrent status:\n- @Dev: WORKING\n- @Security: BLOCKED - Disagreement on encryption approach\n- @PM: SATISFIED\n- @QA: WORKING\n- @SRE: SATISFIED\n```\n\n**Agents respond by:**\n1. Finishing any atomic operation\n2. Updating status to `PAUSED - Awaiting human guidance`\n3. Stopping until human responds\n\n**Human response (injected by orchestrator):**\n```\n@AllAgents - Human guidance:\nUse AES-256-GCM. This is a company standard.\n@Security, update requirements. @Dev, proceed with this approach.\n```\n\nAgents acknowledge, update status to WORKING/SATISFIED, and continue.\n\n---\n\n## Prior Art Acknowledgment\n\nThis system implements the **multi-agent collaborative development pattern**, which is an established approach in AI research. Key prior art includes:\n\n| Framework | Year | Contribution |\n|-----------|------|--------------|\n| **Society of Mind** (Minsky) | 1986 | Theoretical foundation - intelligence emerges from agent interaction |\n| **CAMEL** | 2023 | Debate-based agents that challenge each other |\n| **ChatDev** | 2023 | Role-based software development with \"communicative dehallucination\" |\n| **MetaGPT** | 2023 | SOP-driven pipeline with structured document handoffs |\n| **AutoGen** | 2023 | Async multi-agent with SocietyOfMindAgent consensus |\n| **CrewAI** | 2023 | Role/task/crew abstractions for workflow orchestration |\n\nWe do not claim to have invented multi-agent collaborative development.\n\n---\n\n## What This Implementation Adds\n\nOur contribution is **practical refinements for production/unsupervised use**:\n\n### 1. Autonomous Self-Organization\n- Agents communicate via @mentions in shared conversation file\n- No turn-taking orchestration - agents decide when to speak\n- Natural collaboration with \"When to Respond\" / \"When to Stay Quiet\" rules\n\n### 2. Design Discussion Phase\n- @PM leads design discussion before implementation\n- @Security raises all concerns at design time (not during implementation)\n- Team agrees on phase structure, then executes\n\n### 3. TDD + PoC Phased Development\n- **Phase 1**: Minimal working version (happy path + tests FIRST)\n- **Phase 2**: Error handling + tests\n- **Phase 3**: Edge cases + tests\n- **Phase 4**: Polish, security hardening, optimization\n\n### 4. Explicit Conflict Resolution\n- **Tie-breaker rules**: Security wins security disputes; PM wins other conflicts\n- **2-strike rule**: After raising same concern twice, agent MUST propose solution\n- **Self-unblocking**: Agents resolve blockers themselves (e.g., Security writes the test if Dev won't) rather than staying BLOCKED indefinitely\n- **DecisionsTracker.md**: Deviation log — records where implementation differs from the plan, so a human can review and decide whether to keep or discard the work\n- **Pre-action conversation check**: Every agent checks the last 50 lines of conversation before their key action (committing, reviewing, declaring complete)\n\n### 5. Human Escalation\n- Stall detection triggers human escalation\n- Agents pause gracefully, await guidance\n- Human input relayed as `@HUMAN` message\n\n### 6. Trust but Verify — Post-Implementation Verification Loop\n- After all agents declare `SATISFIED`, a **verification agent** compares plan vs actual implementation\n- The verification agent reads actual code — it does not blindly trust status claims\n- **DecisionsTracker.md entries are treated as intentional** — not flagged as gaps\n- Verification is **pragmatic, not strict** — alternative implementations that achieve the same goal are fine\n- If gaps are found: `conversation.txt` is archived (timestamped), `satisfaction.txt` is reset, and the team is **relaunched** with a gap report\n- Up to `--max-retries` rounds (default 5); set to `0` to disable verification (old behavior)\n- Each round gets a fresh conversation to keep agent context windows clean\n\n---\n\n## Personas\n\n| Role | Focus | Tie-Breaker Authority |\n|------|-------|----------------------|\n| **Dev** | Implementation, TDD, code quality | - |\n| **Security** | Threat modeling, secure defaults | TIER 1 (wins security disputes) |\n| **PM** | Acceptance criteria, user delight | TIER 2 (wins UX/scope disputes) |\n| **QA** | Testing, user journey, edge cases | - |\n| **SRE** | Observability, reliability, failure modes | - |\n\n---\n\n## Files\n\n```\nmandali/                           # Mandali source\n├── mandali.py                     # Autonomous orchestrator\n├── config.yaml                    # Personas, model, settings\n├── PRIOR_ART.md                   # Framework comparison\n├── DecisionsTracker.md            # Deviation log template\n├── personas/\n│   ├── dev.persona.md\n│   ├── security.persona.md\n│   ├── pm.persona.md\n│   ├── qa.persona.md\n│   └── sre.persona.md\n\n# When --out-path is inside a git repo (worktree isolation):\nmyproject/                         # Your repo (UNTOUCHED)\nmyproject-mandali-\u003ctimestamp\u003e/     # Worktree (agents work here)\n├── {feature files created by agents}\n├── phases/                        # Phased plan files (copied or generated)\n│   ├── _CONTEXT.md\n│   ├── _INDEX.md\n│   └── phase-*.md\n└── mandali-artifacts/             # Orchestration files\n    ├── conversation.txt\n    ├── conversation-round-*.txt\n    ├── satisfaction.txt\n    ├── DecisionsTracker.md\n    ├── plan.md\n    └── metrics.json\n\n# When --out-path is NOT inside a git repo (no isolation):\n\u003cout-path\u003e/                        # Agents work directly here\n├── {same layout as above}\n```\n\n---\n\n## Prior Art\n\nThis system builds on ideas from several multi-agent frameworks:\n\n| Framework | Key Influence |\n|-----------|---------------|\n| **Ralph Wiggum** | Iterative feedback loop pattern |\n| **Gas Town** | File-based persistence, CLI integration |\n| **AutoGen** | Multi-agent conversation patterns |\n| **CrewAI** | Role-based specialization |\n| **MetaGPT/ChatDev** | Software team role modeling |\n\nSee **[PRIOR_ART.md](./PRIOR_ART.md)** for detailed comparison, limitations of existing frameworks, and how our approach addresses them.\n\n---\n\n## What's Next\n\n### 🔮 Emulate Me Mode\n\nWhat if the agents didn't just play generic roles — but played *you*?\n\nMandali can already orchestrate five specialists. The next step: teach them how *you* think. Your code review instincts. Your bias toward simplicity or thoroughness. The concerns you always raise. The ones you never do.\n\nOne command. Autonomous agents. Your voice!\n\n*Coming soon: `--as-me`*\n\n---\n\n## License\n\nMIT (or as specified by repository)\n\n---\n\n## References\n\n- [Ralph Wiggum](https://ralph-wiggum.ai/) - Iterative agentic coding loop\n- [Gas Town](https://github.com/steveyegge/gastown) - Multi-agent workspace manager\n- [AutoGen](https://github.com/microsoft/autogen) - Microsoft multi-agent framework\n- [CrewAI](https://github.com/crewAIInc/crewAI) - Role-playing AI agents\n- [MetaGPT](https://github.com/geekan/MetaGPT) - Multi-agent meta programming\n- [ChatDev](https://github.com/OpenBMB/ChatDev) - AI software company simulation\n- [Society of Mind](https://en.wikipedia.org/wiki/Society_of_Mind) - Marvin Minsky\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmallick1%2Fmandali","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmallick1%2Fmandali","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmallick1%2Fmandali/lists"}