The meta-repo as AI multiplier A developer built a meta-repo to give AI assistants full cross-platform context across three mature mobile repos that couldn't be merged into a monorepo. The meta-repo contains shared skills, docs, and symlinks so that every tool and platform repo points to a single source of truth, enabling agentic coding workflows like multi-platform search and dependency auditing. When I introduced the meta-repo to the team, the goal was a true agentic coding setup: a shared doc set, shared skills, shared rules, all loaded automatically no matter which platform repo you had open. Onboarding got easier and setup went from three commands to one as a side effect of that. Several months later, that's still true — structuring a codebase for AI context turns out to be a different problem than structuring it for human developers. This isn't a pattern we roll out on every project. It's what this specific project needed, given a constraint most codebases don't have: three mature repos that couldn't be merged into one. The platform I work on has three repos: shared Kotlin Multiplatform code, an iOS presentation layer, an Android presentation layer. They were set up 4–5 years ago, well before AI assistants were part of anyone's toolchain. Three separate git histories, three separate CI pipelines, three sets of conventions. That's just how multi-platform mobile worked on this project — it's not a universal N5 setup, just how this particular client's codebase evolved. When AI coding tools became serious, the obvious answer would have been a monorepo. One folder, full context, done. We raised it. The client team pushed back. Reasonable objections: independent release cycles, existing CI setup, git history. Migrating three mature repos into a monorepo isn't a weekend project, and it wasn't worth the disruption. So the meta-repo is the answer to a constraint: how do you give AI assistants full cross-platform context without moving everyone to a monorepo? It sits on top of the three platform repos. It contains no app code. What it contains is three things: a .ai/ directory with shared skills and agents, a docs/ folder with shared architecture knowledge, and a setup script. Via symlinks, every tool and every platform repo points back to .ai/ : meta-repo/ ├── .ai/ ← single source of truth │ └── skills/ ├── docs/ ← shared architecture docs, ADRs, diagrams ├── .cursor/skills → ../.ai/skills ├── .claude/skills → ../.ai/skills │ ├── ios-app/ │ └── .claude/skills → ../../.ai/skills ├── android-app/ │ └── .claude/skills → ../../.ai/skills └── shared-kmp/ └── .claude/skills → ../../.ai/skills Skills are multi-step workflows encoded as files. Some are basic and used daily by everyone — commit , which writes a properly formatted commit message from the staged diff, branch , which creates a new branch following our naming convention, worktree , which sets up a git worktree for parallel work on a ticket. Others are heavier — multi-platform-search , which runs parallel agents against iOS, Android, and KMP simultaneously, or dependency-audit , which compares pinned versions against latest across all three codebases at once. They live in .ai/skills/ and get symlinked into every tool config and every platform repo. Write a skill once, it goes through code review like any other change, and every teammate gets it on next pull. The scoping matters too. Engineers don't have to work from the meta-repo root. Open ios-app/ directly and you get iOS-scoped context without Android or KMP noise, useful for a focused bug fix or a platform-specific feature. Either way, the full skill library is available. An Android developer who rarely touches iOS can work entirely out of android-app/ and get a clean, platform-focused experience, with access to cross-platform skills when a ticket touches the shared layer. The scoping is intentional, not a limitation. docs/ serves three purposes at once: documentation for future teammates who need to understand how the system works, a record of architectural decisions so the reasoning behind past choices doesn't get lost, and direct context for agents. When a skill or agent needs to answer a question about how something works, it reads from docs/ rather than scanning the codebase from scratch every time. The documentation isn't just for humans anymore — it's fuel. Before the meta-repo, getting a new developer up and running meant cloning three separate repos, finding the scattered docs, figuring out which branch conventions applied where, and hoping someone remembered to mention the CI quirks. AI context was whatever they managed to assemble themselves. Now it's one command: git clone