{"id":51600263,"url":"https://github.com/alexandramartinez/ai-showdown-api-led","last_synced_at":"2026-07-11T21:30:36.772Z","repository":{"id":370293194,"uuid":"1293573412","full_name":"alexandramartinez/ai-showdown-api-led","owner":"alexandramartinez","description":"AI Showdown: API-Led Edition — same prompt, three AIs (Claude Code, CurieTech, MuleSoft Vibes) design a 3-layer API-led connectivity solution in MuleSoft. Part of the AI Showdown series.","archived":false,"fork":false,"pushed_at":"2026-07-08T18:49:24.000Z","size":107,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-08T20:15:37.047Z","etag":null,"topics":["ai","claude","claude-code","curietechai","mule-vibes","mulesoft","mulesoft-vibes","opus","sonnet","vibes"],"latest_commit_sha":null,"homepage":"http://localhost:4321/post/ai-showdown-3-ais-design-api-led-connectivity-in-mulesoft","language":"RAML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexandramartinez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-07-08T12:27:31.000Z","updated_at":"2026-07-08T20:15:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alexandramartinez/ai-showdown-api-led","commit_stats":null,"previous_names":["alexandramartinez/ai-showdown-api-led"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/alexandramartinez/ai-showdown-api-led","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandramartinez%2Fai-showdown-api-led","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandramartinez%2Fai-showdown-api-led/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandramartinez%2Fai-showdown-api-led/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandramartinez%2Fai-showdown-api-led/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandramartinez","download_url":"https://codeload.github.com/alexandramartinez/ai-showdown-api-led/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandramartinez%2Fai-showdown-api-led/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35376133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","claude","claude-code","curietechai","mule-vibes","mulesoft","mulesoft-vibes","opus","sonnet","vibes"],"created_at":"2026-07-11T21:30:36.220Z","updated_at":"2026-07-11T21:30:36.767Z","avatar_url":"https://github.com/alexandramartinez.png","language":"RAML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Showdown: MuleSoft API-Led Connectivity\n\nThree different AIs were given the **same prompt** and asked to build a MuleSoft **API-led connectivity** network (Experience → Process → System) for a **Customers + Orders** domain. This repo holds all three solutions side by side so you can compare how each one interpreted and executed the same brief.\n\n## 📄 Start here\n\n- **[The prompt they were all given →](instructions-given.md)** — the exact instructions (3 layers, 11 operations, mock/seed in the system layer, ≥3 APIs, latest Mule/Maven/DataWeave).\n- **[The full comparison →](COMPARISON.md)** — architecture, API specs, operation coverage, error handling, mocking/seeding, versions, and a scorecard.\n\n## 🤖 The three contestants\n\n| | Model | Folder | What it built |\n|---|---|---|---|\n| 🟦 **Claude** | Opus 4.8, **MAX effort** | [`claude-code/`](claude-code/) | 4 apps (1 exp · 1 prc · 2 sys) with a **parent reactor POM** |\n| 🟨 **CurieTech** | (not disclosed) | [`curietech-ai/`](curietech-ai/) | **5 apps** (1 exp · 2 prc · 2 sys) — per-entity split at both process + system layers |\n| 🟩 **MuleSoft Vibes** | Sonnet (effort unknown) | [`mulesoft-vibes/`](mulesoft-vibes/) | 4 apps (1 exp · 1 prc · 2 sys) |\n\n\u003e **Model note:** Claude Code ran on **Opus 4.8 at MAX effort**. MuleSoft Vibes' UI showed it running on **Sonnet** (reasoning effort not shown). CurieTech AI did not surface which model/effort it used. Worth keeping in mind when reading the results — these weren't necessarily comparable tiers of compute.\n\n## The task, in one line\n\nBuild the layered API network for these **11 operations** — list customers, one customer's details, a customer's orders, one order's details, create/edit customer, delete customer *only if no orders*, create/edit order, cancel order *(status change, not delete)*, delete order — with **mock + seeded data in the system layer** (no real DB yet).\n\n## 🏁 Scorecard at a glance\n\n| Dimension | 🟦 Claude | 🟨 CurieTech | 🟩 MuleSoft Vibes |\n|---|---|---|---|\n| # Apps | 4 | 5 | 4 |\n| All 3 layers | ✅ | ✅ | ✅ |\n| Parent/aggregator POM | ✅ | ❌ | ❌ |\n| Contract-first (RAML + APIkit) | ✅ | ✅ | ❌ no specs |\n| 11 operations implemented | ✅ 11/11 | ✅ 11/11 | ⚠️ coded, writes don't persist |\n| Business rules (delete-guard, cancel≠delete) | ✅ | ✅ | ✅ (on read-only data) |\n| Security | ❌ none | ❌ none | ❌ none |\n| Error handling (code) | ✅ global, all apps | ✅ global + 502 gateway | ❌ none |\n| Mock/seed persistence | ✅ File (survives restart) | ✅ ObjectStore (in-memory) | ❌ read-only |\n| MUnit tests | ✅ 18 | ✅ 41 | ❌ 0 |\n| Docs/rationale | ✅ plan + READMEs | ✅ per-app READMEs | ❌ none |\n| Runtime version | 4.9.0 (oldest) | 4.11.3 / 4.9.3 (drift) | 4.11.2 (consistent) |\n\n## TL;DR\n\n### 🟦 Claude — *most engineering-disciplined*\n\n**Pros**\n- Contract-first (RAML + APIkit) with a documented design rationale\n- Parent reactor POM → consistent versions across all apps\n- All 11 operations work, and data **persists across restarts** (only one that does)\n- Global error handling in every app; 18 MUnit tests\n\n**Cons**\n- Oldest runtime (Mule 4.9.0 — still valid, but behind)\n- No security layer\n\n### 🟨 CurieTech — *most complete + granular*\n\n**Pros**\n- Full 5-app per-entity split (process **and** system layers)\n- All 11 operations working end-to-end\n- Most tests (41 MUnit cases) and richest error handling (502 gateway semantics)\n- Dedicated status-change endpoint (`PATCH .../status`)\n\n**Cons**\n- Version drift across its five apps — no central POM to govern them\n- No security layer; data lost on restart (in-memory ObjectStore)\n\n### 🟩 MuleSoft Vibes — *a runnable demo*\n\n**Pros**\n- Runs, and uses the freshest HTTP connector (1.11.3)\n- Consistent runtime version across all apps\n- All 11 operations coded with correct business rules\n\n**Cons**\n- Skips the API-led rigor: **no specs, no APIkit, no tests, no error handler, no docs**\n- Writes don't persist (system layer is read-only)\n- No security layer\n\n\u003e All three used real, released MuleSoft versions and Java 17; none used the true latest Mule 4.12.0. Full detail in **[COMPARISON.md](COMPARISON.md)**.\n\n## Repo layout\n\n```\nai-showdown-2/\n├── instructions-given.md   ← the shared prompt\n├── COMPARISON.md           ← detailed head-to-head analysis\n├── README.md               ← you are here\n├── claude-code/            ← 🟦 Claude's solution (4 Mule apps + parent pom)\n├── curietech-ai/           ← 🟨 CurieTech's solution (5 Mule apps)\n└── mulesoft-vibes/         ← 🟩 MuleSoft Vibes' solution (4 Mule apps)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandramartinez%2Fai-showdown-api-led","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandramartinez%2Fai-showdown-api-led","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandramartinez%2Fai-showdown-api-led/lists"}