## Context

RN 插件仅有设计文档、无工程代码。本 change 建立可编译、可联调的脚手架，作为后续所有 Phase 的地基。架构与目录的**权威定义在 SPACE，本文只引用不复制**：

- 工程惯例（脚手架命令、codegenConfig、example 联调、内部-only 行为）：SPACE **§2.5**
- 仓库根目录树与分层职责：SPACE **§13.1**
- M1 最小文件清单（脚手架完成后应存在的文件）：SPACE **§13.6**
- 执行步骤逐条：实施规范 **Phase 0（0-1~0-8）**

## Goals / Non-Goals

**Goals:**
- 双端 example 编译绿、可安装启动。
- Codegen 在 New Architecture 下生成 TurboModule + Fabric 桩代码。
- 根目录 `npm run prepare`（builder-bob）产出 `lib/`。
- 本地 autolink 生效：改 `src/` 后 example 重编即生效，无需 npm publish。
- Android 包名统一 `com.anythink.reactnative`；移植 `Const.java`/`BridgeJsonMapUtil.java`（仅改包名）。

**Non-Goals:**
- 任何真实广告 load/show 或 Manager/Helper 业务逻辑。
- Banner/Native Fabric 的完整实现（spec 可留空壳）。
- 对外 L1 广告 API（留待 Phase 1+）。
- **`npm publish` 真发布**：本 Phase 只做本地 autolink 联调 + `lib/` 构建自检，产物不上传 npm；正式发布留待 Phase 4（`phase-4-release`，验收 REL-F01）。

## Decisions

- **New Architecture only（RN ≥ 0.76）**：仅生成/维护 TurboModule + Fabric 路径，不做 Old Arch 兼容。理由：SPACE 全篇以 New Arch 为基线；维护双架构成本高且非交付目标。
- **脚手架用 `create-react-native-library`（turbo-module + Fabric view + example vanilla）**：理由见实施规范 §6.1；标准产物便于 Codegen 与 autolink，避免手搓目录。
- **AnyThink Core 用 `compileOnly`**：插件不携带完整原生 SDK，由宿主 App 引入（实施规范 §6.5），避免版本绑死与包体膨胀。
- **从 Flutter 移植 `Const.java`/`BridgeJsonMapUtil.java`，仅改包名**：不重写字符串常量与 JSON 解析逻辑（config.yaml 规则 4：字典只引用 Const）。
- **空骨架先行**：`ATReactNativeBridgeModule` 与 `ATAdEvents` 仅留壳，证明编译链路通，不含业务（实施规范 0-6）。
- **iOS 类结构/前缀**：按 SPACE §3.4.2 决策（`Manager + Delegate` 两层、统一 `AT*`）；本 Phase 只建空 `Classes/` 目录对称占位。

## Risks / Trade-offs

- [Codegen 配置错误导致桩代码不生成] → 严格按实施规范 §6.2 配 `codegenConfig`（name/jsSrcsDir/javaPackageName）；P0-F05 验收检查 `android/build/generated` 或编译日志。
- [example autolink 不生效，误以为要发包] → 按 §6.3 配 `example/react-native.config.js` 指向库根；P0-F06 专门验收。
- [iOS pod install 失败（无宿主 Core）] → 本 Phase 空桥不依赖原生广告 SDK 符号，pod install 应能过；真实 Core 由 Phase 1+ 宿主引入。
- [包名遗漏个别文件] → P0 验收对照 SPACE §13.6 文件清单与包名 `com.anythink.reactnative`。
