multimodel-dev-os 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai/adapters/custom-adapter.example.yaml +9 -0
- package/.ai/adapters/registry.yaml +56 -0
- package/.ai/models/README.md +14 -0
- package/.ai/models/local-models.yaml +20 -0
- package/.ai/models/providers.yaml +29 -0
- package/.ai/models/registry.yaml +73 -0
- package/.ai/models/routing-presets.yaml +23 -0
- package/.ai/skills/custom-skill.example.md +15 -0
- package/.ai/templates/custom-template.example.yaml +19 -0
- package/.ai/templates/registry.yaml +522 -0
- package/README.md +48 -22
- package/assets/favicon.png +0 -0
- package/assets/logo.png +0 -0
- package/bin/multimodel-dev-os.js +810 -91
- package/docs/.vitepress/config.js +69 -0
- package/docs/adapter-authoring.md +46 -0
- package/docs/agent-compatibility.md +51 -0
- package/docs/case-studies/index.md +11 -7
- package/docs/cli-roadmap.md +15 -18
- package/docs/compatibility.md +7 -3
- package/docs/cost-optimization.md +6 -2
- package/docs/faq.md +32 -56
- package/docs/final-launch.md +10 -4
- package/docs/index.md +44 -1
- package/docs/local-models.md +48 -0
- package/docs/mobile-android.md +75 -0
- package/docs/model-compatibility.md +65 -0
- package/docs/model-routing.md +45 -0
- package/docs/npm-publishing.md +27 -0
- package/docs/package-safety.md +29 -0
- package/docs/protocol.md +8 -4
- package/docs/provider-strategy.md +44 -0
- package/docs/public/favicon.png +0 -0
- package/docs/public/humans.txt +13 -0
- package/docs/public/llms-full.txt +82 -0
- package/docs/public/llms.txt +36 -0
- package/docs/public/logo.png +0 -0
- package/docs/public/robots.txt +4 -0
- package/docs/public/sitemap.xml +68 -0
- package/docs/quickstart.md +17 -12
- package/docs/registry-contribution.md +20 -0
- package/docs/release-policy.md +26 -0
- package/docs/skill-authoring.md +56 -0
- package/docs/stable-protocol.md +8 -4
- package/docs/template-authoring.md +65 -0
- package/docs/token-optimization.md +27 -0
- package/docs/v2-migration.md +31 -0
- package/docs/v2-release-checklist.md +30 -0
- package/docs/v2-roadmap.md +95 -0
- package/examples/expo-react-native-android/.ai/config.yaml +22 -0
- package/examples/expo-react-native-android/.ai/context/architecture.md +18 -0
- package/examples/expo-react-native-android/.ai/context/context-budget.md +4 -0
- package/examples/expo-react-native-android/.ai/context/model-map.md +6 -0
- package/examples/expo-react-native-android/.ai/context/project-brief.md +9 -0
- package/examples/expo-react-native-android/.ai/session-logs/.gitkeep +1 -0
- package/examples/expo-react-native-android/.ai/skills/expo-android-build.md +11 -0
- package/examples/expo-react-native-android/AGENTS.md +20 -0
- package/examples/expo-react-native-android/MEMORY.md +13 -0
- package/examples/expo-react-native-android/README.md +101 -0
- package/examples/expo-react-native-android/RUNBOOK.md +36 -0
- package/examples/expo-react-native-android/TASKS.md +14 -0
- package/examples/expo-react-native-android/app.config.ts +40 -0
- package/examples/expo-react-native-android/app.json +34 -0
- package/examples/expo-react-native-android/eas.json +26 -0
- package/examples/expo-react-native-android/jest.config.js +11 -0
- package/examples/expo-react-native-android/src/app/_layout.tsx +89 -0
- package/examples/expo-react-native-android/src/lib/secure-storage.ts +63 -0
- package/examples/expo-react-native-android/src/services/api-client.ts +106 -0
- package/package.json +3 -2
- package/scripts/install.ps1 +230 -230
- package/scripts/install.sh +1 -1
- package/scripts/prepublish-guard.js +43 -0
- package/scripts/verify.js +192 -1
package/docs/release-policy.md
CHANGED
|
@@ -31,3 +31,29 @@ No package shall be merged or released without:
|
|
|
31
31
|
- Building the documentation site without dead links (`npm run docs:build`).
|
|
32
32
|
- Running packaging validation (`npm pack --dry-run`).
|
|
33
33
|
- Executing smoke tests on all templates.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 4. NPM Publishing Pause & Roadmap Development
|
|
38
|
+
|
|
39
|
+
To ensure high stability and thorough testing of the Template Galaxy and Model Compatibility Layers, package publishing to the public npm registry is paused during all `v1.2.x` minor releases:
|
|
40
|
+
* **GitHub Repository (Source)**: Serve as the primary, active source branch containing unreleased v1.2+ features (such as template extensions, model registries, and CLI expansions).
|
|
41
|
+
* **NPM Registry (Latest)**: Remains on the last approved stable version.
|
|
42
|
+
* **v2.0.0 (Next Target)**: Will serve as the next stable release published to the npm registry, packaging the hardened registries and Template Galaxy features.
|
|
43
|
+
|
|
44
|
+
### Local Source & Verification Procedures
|
|
45
|
+
|
|
46
|
+
Contributors and developers must verify and test unreleased `v1.2.x` features locally rather than running publication steps:
|
|
47
|
+
1. **Execute commands from the source binary:**
|
|
48
|
+
```bash
|
|
49
|
+
node bin/multimodel-dev-os.js init
|
|
50
|
+
node bin/multimodel-dev-os.js verify
|
|
51
|
+
```
|
|
52
|
+
2. **Compile and test the package bundle locally:**
|
|
53
|
+
```bash
|
|
54
|
+
npm pack
|
|
55
|
+
```
|
|
56
|
+
This generates a local `.tgz` archive. Install it in a target test project to run validations.
|
|
57
|
+
|
|
58
|
+
Never execute `npm publish` in the main workspace unless actively packaging the approved `v2.0.0` release.
|
|
59
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Skill Authoring Guide
|
|
2
|
+
|
|
3
|
+
This guide explains how to construct high-fidelity reusable skills for MultiModel Dev OS.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Skills are custom prompts placed in the `.ai/skills/` directory of a project workspace. They instruct coding agents on exactly how to perform specific coding, refactoring, validation, or deployment routines.
|
|
8
|
+
|
|
9
|
+
## Required Structure
|
|
10
|
+
|
|
11
|
+
Every reusable skill file must be a Markdown (`.md`) file containing the following key sections:
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
# Purpose
|
|
15
|
+
Describe what this skill accomplishes.
|
|
16
|
+
|
|
17
|
+
# Activation Trigger
|
|
18
|
+
Specify when a developer or agent should invoke this skill.
|
|
19
|
+
|
|
20
|
+
# Input Context
|
|
21
|
+
List the dependencies, files, or information required before executing this skill.
|
|
22
|
+
|
|
23
|
+
# Output Contract
|
|
24
|
+
Define the expected deliverables, formats, or file updates.
|
|
25
|
+
|
|
26
|
+
# Token Budget
|
|
27
|
+
Expected prompt footprint and limits.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Example Skill File
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# Purpose
|
|
34
|
+
Deploy a Next.js Server Action with security gates.
|
|
35
|
+
|
|
36
|
+
# Activation Trigger
|
|
37
|
+
Trigger when building or modifying API endpoints / React Server Actions.
|
|
38
|
+
|
|
39
|
+
# Input Context
|
|
40
|
+
* Target action file
|
|
41
|
+
* Schema validations definitions
|
|
42
|
+
|
|
43
|
+
# Output Contract
|
|
44
|
+
Return the modified action file containing secure CSRF/Origin validation rules.
|
|
45
|
+
|
|
46
|
+
# Token Budget
|
|
47
|
+
~500 tokens
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Validating a Skill
|
|
51
|
+
|
|
52
|
+
To test your skill structure compliance, run:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
node bin/multimodel-dev-os.js validate-skill my-skill-name
|
|
56
|
+
```
|
package/docs/stable-protocol.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# Stable Protocol Specification (v1.
|
|
1
|
+
# Stable Protocol Specification (v1.1.0 Freeze)
|
|
2
2
|
|
|
3
|
-
This document formalizes the official, frozen architectural layers and design contracts for the MultiModel Dev OS protocol, guaranteeing portability and long-term stability.
|
|
3
|
+
This document formalizes the official, frozen architectural layers and design contracts for the MultiModel Dev OS protocol, guaranteeing portability and long-term stability across diverse AI coding agents.
|
|
4
|
+
|
|
5
|
+
> **Best for**: Third-party client integrations, tool adapter developers, and engineering teams establishing robust AI coding guidelines.
|
|
4
6
|
|
|
5
7
|
---
|
|
6
8
|
|
|
@@ -33,7 +35,7 @@ MultiModel Dev OS enforces a three-tier design to decouple core workspace contex
|
|
|
33
35
|
## 2. Layer 1: Root Contracts
|
|
34
36
|
|
|
35
37
|
The following root files serve as the workspace single source of truth and are completely frozen:
|
|
36
|
-
- **`AGENTS.md`**: Defines team structures, boundaries, and model configurations.
|
|
38
|
+
- **`AGENTS.md`**: Defines team structures, boundaries, and model configurations (Codex project memory / Antigravity AI workflow).
|
|
37
39
|
- **`MEMORY.md`**: Preserves key context decisions, codebase state, and repository milestones.
|
|
38
40
|
- **`TASKS.md`**: Tracks current active goals and backlog.
|
|
39
41
|
- **`RUNBOOK.md`**: Operational scripts and workspace verify procedures.
|
|
@@ -52,7 +54,7 @@ The following directories and files under `.ai/` are strictly locked:
|
|
|
52
54
|
|
|
53
55
|
## 4. Layer 3: Adapters Setup
|
|
54
56
|
|
|
55
|
-
IDE adapters translate centralized rules to tool-specific paths:
|
|
57
|
+
IDE adapters translate centralized rules to tool-specific paths (Cursor project rules / Claude Code project instructions):
|
|
56
58
|
- **Cursor**: Linked via root `.cursorrules`
|
|
57
59
|
- **Claude**: Linked via root `CLAUDE.md`
|
|
58
60
|
- **Gemini**: Linked via `.gemini/settings.json`
|
|
@@ -64,3 +66,5 @@ IDE adapters translate centralized rules to tool-specific paths:
|
|
|
64
66
|
|
|
65
67
|
- **Stable**: Root files, scaffolding directories, CLI subcommand signatures, and standard config structures.
|
|
66
68
|
- **Experimental**: Custom check overrides under `.ai/checks/` and stack-specific context routing.
|
|
69
|
+
|
|
70
|
+
Explore our [Upgrades & Migration Guide](/migration-guide) or [Release Quality Checklist](/v1-checklist) for staging controls.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Custom Template Authoring Guide
|
|
2
|
+
|
|
3
|
+
This guide explains how to author a custom workspace configuration template for MultiModel Dev OS.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
A template packages a set of boilerplate markdown files (`AGENTS.md`, `MEMORY.md`, `TASKS.md`, `RUNBOOK.md`), a central `.ai/config.yaml` file, and stack-specific context files and skills.
|
|
8
|
+
|
|
9
|
+
## Structure of a Template Source
|
|
10
|
+
|
|
11
|
+
A template resides in the `examples/` directory of the project, or can be loaded dynamically from a custom path using `--registry` if declared in the registry.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
examples/my-custom-template/
|
|
15
|
+
├── AGENTS.md # Core workspace contracts
|
|
16
|
+
├── MEMORY.md
|
|
17
|
+
├── TASKS.md
|
|
18
|
+
├── RUNBOOK.md
|
|
19
|
+
└── .ai/
|
|
20
|
+
├── config.yaml # Core configuration rules
|
|
21
|
+
├── context/ # Context templates
|
|
22
|
+
│ ├── project-brief.md
|
|
23
|
+
│ ├── architecture.md
|
|
24
|
+
│ └── context-budget.md
|
|
25
|
+
└── skills/ # Custom reusable skill files
|
|
26
|
+
└── custom-action.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Creating a Registry Entry
|
|
30
|
+
|
|
31
|
+
Add your template metadata to `.ai/templates/registry.yaml`:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
templates:
|
|
35
|
+
my-custom-template:
|
|
36
|
+
name: "my-custom-template"
|
|
37
|
+
description: "My custom framework stack workspace baseline."
|
|
38
|
+
stack: "My Framework, TypeScript, PostgreSQL"
|
|
39
|
+
skill: "custom-action.md"
|
|
40
|
+
skillDesc: "Framework specific secure execution rules."
|
|
41
|
+
category: "Web"
|
|
42
|
+
status: "stable"
|
|
43
|
+
maturity: "production-ready"
|
|
44
|
+
required_files:
|
|
45
|
+
- AGENTS.md
|
|
46
|
+
- MEMORY.md
|
|
47
|
+
- TASKS.md
|
|
48
|
+
- RUNBOOK.md
|
|
49
|
+
- .ai/config.yaml
|
|
50
|
+
- .ai/context/project-brief.md
|
|
51
|
+
- .ai/skills/custom-action.md
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Validation Rules
|
|
55
|
+
|
|
56
|
+
You can validate your template configuration using the CLI:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
node bin/multimodel-dev-os.js validate-template my-custom-template
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Validation ensures:
|
|
63
|
+
1. The template metadata matches the registry schema.
|
|
64
|
+
2. The template source directory exists.
|
|
65
|
+
3. All files listed in `required_files` are present.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Token Optimization & Budget Policy
|
|
2
|
+
|
|
3
|
+
In agentic coding workflows, token overheads are the single largest source of API latency and cost. MultiModel Dev OS integrates tools and policies to optimize context inputs.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Caveman Mode
|
|
8
|
+
* **Goal**: Reduce baseline context token footprint by ~79%.
|
|
9
|
+
* **CLI Flag**: `node bin/multimodel-dev-os.js init --caveman`
|
|
10
|
+
* **Behavior**: Instantiates minimal `.caveman.md` files for `AGENTS.md`, `MEMORY.md`, `TASKS.md`, and `RUNBOOK.md`, omitting explanatory files and dense markdown guidelines.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 2. Context Budget Auditing
|
|
15
|
+
* Define strict context bounds inside [.ai/context/context-budget.md](file:///F:/multimodel-dev-os/.ai/context/context-budget.md).
|
|
16
|
+
* **CLI Command**: `node bin/multimodel-dev-os.js doctor --tokens`
|
|
17
|
+
* Checks if build outputs or caches (`node_modules/`, `dist/`, `.next/`, `build/`) are missing from `.gitignore` or are being exposed to LLM scan scopes.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 3. Policy Guidelines
|
|
22
|
+
|
|
23
|
+
### Keep Checklist Files Short
|
|
24
|
+
Use `TASKS.md` exclusively for active sprint tasks. Move completed or historical backlogs to archive directories or logs.
|
|
25
|
+
|
|
26
|
+
### Model Handoff Compression
|
|
27
|
+
When switching from reasoning models to quick-fixing models, use [.ai/prompts/compress-context.md](file:///F:/multimodel-dev-os/.ai/prompts/compress-context.md) to distill findings into high-density prompts.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# MultiModel Dev OS v2 Migration Guide
|
|
2
|
+
|
|
3
|
+
This guide describes how to migrate your developer configurations and workspace setup to the new Layered Architecture of MultiModel Dev OS v2.
|
|
4
|
+
|
|
5
|
+
## What is Changing
|
|
6
|
+
|
|
7
|
+
* **Version 1.1.0 and prior:** Handled flat configurations directly at the project root with individual configurations manually copied across.
|
|
8
|
+
* **Version 2.0.0 (and source milestones 1.2–1.5):** Establishes a clean, three-layered architecture where root contracts (`AGENTS.md`, `MEMORY.md`, `TASKS.md`, `RUNBOOK.md`) are automatically routed to adapters via the `.ai/` directory.
|
|
9
|
+
|
|
10
|
+
## Migration Steps
|
|
11
|
+
|
|
12
|
+
### 1. Upgrade the CLI
|
|
13
|
+
Run the latest v2 setup utility via npx:
|
|
14
|
+
```bash
|
|
15
|
+
npx multimodel-dev-os@latest init --template general-app
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 2. Move Legacy Configuration Files
|
|
19
|
+
If you have custom system instructions or rules:
|
|
20
|
+
* Move `.cursorrules` custom rules to `.ai/skills/` as custom markdown skills.
|
|
21
|
+
* Re-generate adapter links:
|
|
22
|
+
```bash
|
|
23
|
+
npx multimodel-dev-os@latest init --adapter cursor --adapter claude
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 3. Verify Migration Integrity
|
|
27
|
+
Run diagnostics to verify that ignored folders, boundaries, and files are clean:
|
|
28
|
+
```bash
|
|
29
|
+
npx multimodel-dev-os@latest doctor
|
|
30
|
+
npx multimodel-dev-os@latest validate
|
|
31
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# v2 Release Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist to verify compliance before publishing `multimodel-dev-os` to the npm registry.
|
|
4
|
+
|
|
5
|
+
## Pre-Flight Requirements
|
|
6
|
+
|
|
7
|
+
- [x] Ensure version string in `package.json` is set to `2.0.0`.
|
|
8
|
+
- [x] Verify version strings in documentation and install scripts (`scripts/install.sh`, `scripts/install.ps1`) align with the release.
|
|
9
|
+
- [x] Run full release verification:
|
|
10
|
+
```bash
|
|
11
|
+
npm run verify
|
|
12
|
+
```
|
|
13
|
+
- [x] Run registry checks:
|
|
14
|
+
```bash
|
|
15
|
+
node bin/multimodel-dev-os.js validate --all-registries
|
|
16
|
+
```
|
|
17
|
+
- [x] Run release doctor:
|
|
18
|
+
```bash
|
|
19
|
+
node bin/multimodel-dev-os.js doctor --release
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Packaging Verification
|
|
23
|
+
|
|
24
|
+
- [x] Execute dry pack run:
|
|
25
|
+
```bash
|
|
26
|
+
npm pack --dry-run
|
|
27
|
+
```
|
|
28
|
+
- [x] Inspect generated tarball file listing to verify only necessary directories (`.ai/`, `adapters/`, `bin/`, `docs/`, `examples/`, `scripts/`, `assets/`) are included.
|
|
29
|
+
- [x] Verify that the prepublish guard is bypassed only for the official production run.
|
|
30
|
+
- [x] Confirm no `.env` or sensitive `.npmrc` configurations are packaged.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# MultiModel Dev OS — v2.0.0 Roadmap
|
|
2
|
+
|
|
3
|
+
This document outlines the development path, stabilization targets, and migration roadmap leading to the `v2.0.0` stable release of MultiModel Dev OS.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Release Objective
|
|
8
|
+
|
|
9
|
+
The primary goal of the **v2.0.0 release** is to promote the experimental features introduced in `v1.2.0` (Template Galaxy, Model Compatibility Layer, and Android Expo template) into officially frozen, production-grade core components, and resume stable package publication to the public npm registry.
|
|
10
|
+
|
|
11
|
+
> [!IMPORTANT]
|
|
12
|
+
> **v2.0.0 is the active stable release.** NPM publishing is resumed, consolidating the Template Galaxy and Model registries.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 2. Key Stabilization Targets
|
|
17
|
+
|
|
18
|
+
### A. Template Galaxy Stabilization
|
|
19
|
+
* Standardize the schema for template configurations under `.ai/schema/template.schema.json`.
|
|
20
|
+
* Harden the built-in templates (`nextjs-saas`, `wordpress-site`, `ecommerce-store`, `seo-landing-page`, `expo-react-native-android`, `general-app`) to ensure they pass validation checks across diverse OS environments.
|
|
21
|
+
|
|
22
|
+
### B. Model Registry Stabilization
|
|
23
|
+
* Freeze the `.ai/models/` structure:
|
|
24
|
+
* `registry.yaml` — Core provider mappings and model metadata.
|
|
25
|
+
* `providers.yaml` — API endpoint declarations.
|
|
26
|
+
* `routing-presets.yaml` — Optimized task routing configurations.
|
|
27
|
+
* `local-models.yaml` — Offline execution definitions.
|
|
28
|
+
* Standardize validation rules inside `validate` and `doctor` commands to verify YAML configuration syntax and compatibility.
|
|
29
|
+
|
|
30
|
+
### C. Adapter Registry Stabilization
|
|
31
|
+
* Freeze `.ai/adapters/registry.yaml`.
|
|
32
|
+
* Extend support mapping for emerging developer tools (e.g. Continue, Cline, Roo Code, Aider, Windsurf).
|
|
33
|
+
* Ensure cross-linking logic maintains strict custom boundaries so that updates in `AGENTS.md` synchronize with adapter targets without wiping user overrides.
|
|
34
|
+
|
|
35
|
+
### D. Android Expo Template Stabilization
|
|
36
|
+
* Hardening the `examples/expo-react-native-android/` foundation.
|
|
37
|
+
* Verify clean execution of EAS Build and environment configurations on local developer machines and CI runner platforms.
|
|
38
|
+
|
|
39
|
+
### E. CLI Compatibility Pass
|
|
40
|
+
* Ensure the new subcommands introduced in `v1.2.0` are fully backward-compatible with `v1.0.0` and `v1.1.0` CLI patterns:
|
|
41
|
+
* `models` / `show-model`
|
|
42
|
+
* `providers`
|
|
43
|
+
* `route-model`
|
|
44
|
+
* `adapters` / `show-adapter`
|
|
45
|
+
* `skills` / `show-skill`
|
|
46
|
+
* `doctor --tokens`
|
|
47
|
+
* `validate --template`
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 3. Package Publishing Checklist
|
|
52
|
+
|
|
53
|
+
Before executing the `v2.0.0` release on the npm registry, the following steps must be completed:
|
|
54
|
+
|
|
55
|
+
1. [x] Set version to `2.0.0` in `package.json`.
|
|
56
|
+
2. [x] Ensure `scripts/prepublish-guard.js` allows the publish (since version starts with `2.`).
|
|
57
|
+
3. [x] Run all verification suites:
|
|
58
|
+
```bash
|
|
59
|
+
npm run verify
|
|
60
|
+
```
|
|
61
|
+
4. [x] Build documentation static bundles cleanly:
|
|
62
|
+
```bash
|
|
63
|
+
npm run docs:build
|
|
64
|
+
```
|
|
65
|
+
5. [x] Perform a dry-run publish to review package hygiene:
|
|
66
|
+
```bash
|
|
67
|
+
npm publish --dry-run
|
|
68
|
+
```
|
|
69
|
+
6. [x] Set the required publication environment variable:
|
|
70
|
+
* **PowerShell:** `$env:MMDO_ALLOW_PUBLISH="true"`
|
|
71
|
+
* **Bash:** `export MMDO_ALLOW_PUBLISH=true`
|
|
72
|
+
7. [x] Publish the package to the public registry:
|
|
73
|
+
```bash
|
|
74
|
+
npm publish --access public
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 4. Migration Notes: npm latest to v2.0.0
|
|
80
|
+
|
|
81
|
+
* **Direct Upgrades**: Projects running the last stable npm package (e.g., `1.1.0` / `1.0.0`) can migrate to `2.0.0` by executing `npx multimodel-dev-os@latest init --force` or installing the package locally.
|
|
82
|
+
* **Registry Release**: Now that v2.0.0 is released, cloning the repository is no longer required to access Layer 1 templates or model registries. Simply run:
|
|
83
|
+
```bash
|
|
84
|
+
npx multimodel-dev-os@latest init
|
|
85
|
+
```
|
|
86
|
+
* **Configuration Upgrades**: Existing `.ai/` folders can be upgraded by running `init --force` to pull the new centralized registries (`.ai/models/` and `.ai/adapters/`) into the workspace.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 5. Final Release Gate
|
|
91
|
+
|
|
92
|
+
The `v2.0.0` release requires:
|
|
93
|
+
1. 100% pass rate on all automated linter and verifier checks.
|
|
94
|
+
2. Complete documentation updates across all guides and discovery indices.
|
|
95
|
+
3. Explicit maintainer sign-off on local testing of the Android Expo template.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Mobile App configuration
|
|
2
|
+
|
|
3
|
+
project:
|
|
4
|
+
name: "expo-react-native-android"
|
|
5
|
+
description: "Production-ready Android mobile app with Expo, React Native, and EAS builds."
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
|
|
8
|
+
mode: "standard"
|
|
9
|
+
|
|
10
|
+
adapters:
|
|
11
|
+
cursor: false
|
|
12
|
+
claude: false
|
|
13
|
+
gemini: false
|
|
14
|
+
vscode: false
|
|
15
|
+
antigravity: false
|
|
16
|
+
|
|
17
|
+
skills:
|
|
18
|
+
directory: ".ai/skills/"
|
|
19
|
+
auto_load: true
|
|
20
|
+
|
|
21
|
+
prompts:
|
|
22
|
+
directory: ".ai/prompts/"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Mobile App Architecture Map
|
|
2
|
+
|
|
3
|
+
This document establishes key folder boundaries and separation of concerns.
|
|
4
|
+
|
|
5
|
+
## Layout Folder Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
mobile/
|
|
9
|
+
app/ # Expo Router screens & layouts
|
|
10
|
+
components/ # Reusable UI theme primitives
|
|
11
|
+
services/ # API Clients, storage abstractions
|
|
12
|
+
hooks/ # Custom custom hook libraries
|
|
13
|
+
tests/ # Jest testing configurations
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Core Foundations
|
|
17
|
+
1. **API Communications**: Handled exclusively under `/services/api-client.ts`.
|
|
18
|
+
2. **Device State**: Sensitive keys kept out of Async Storage, saved in `expo-secure-store`.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Model Mapping for Mobile Codebase
|
|
2
|
+
|
|
3
|
+
| Tasks | Model Choice | Rationales |
|
|
4
|
+
| :--- | :--- | :--- |
|
|
5
|
+
| Mocking Native Components / React Hooks | Claude 3.5 Sonnet | Strong TypeScript and code reasoning |
|
|
6
|
+
| Testing configurations / layout updates | Gemini 1.5 Flash | Fast verification loops |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Project Brief: Android Mobile Client
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Scaffolds a production-grade React Native app utilizing Expo Go, EAS CLI, and TypeScript.
|
|
5
|
+
|
|
6
|
+
## Goals
|
|
7
|
+
- Establish secure storage profiles (`expo-secure-store`).
|
|
8
|
+
- Construct environment splits via `eas.json` (development, staging, production).
|
|
9
|
+
- Implement responsive layout layouts and offline warnings.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Placeholder
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Skill: Expo Android EAS Build Checks
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Ensures that app.json, eas.json, and environment variables are verified before launching an EAS Build.
|
|
5
|
+
|
|
6
|
+
## Activation Trigger
|
|
7
|
+
Running `EAS build` or preparing staging/production releases.
|
|
8
|
+
|
|
9
|
+
## Safe Verification Check
|
|
10
|
+
- Assert `android.package` is set to `com.multimodel.devos` in `app.json`.
|
|
11
|
+
- Confirm `eas.json` contains `preview` and `production` profiles.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# MultiModel Dev OS - Android App Agents Specification
|
|
2
|
+
|
|
3
|
+
This document defines agent roles and boundaries for the Expo React Native Android application.
|
|
4
|
+
|
|
5
|
+
## Development Stack Guidelines
|
|
6
|
+
|
|
7
|
+
- **Framework**: Expo + React Native + TypeScript
|
|
8
|
+
- **State Management**: Zustand / React Context
|
|
9
|
+
- **Navigation**: Expo Router (File-based)
|
|
10
|
+
- **UI System**: Vanilla React Native + Tailwind CSS (NativeWind v4)
|
|
11
|
+
|
|
12
|
+
## CLI Executables Matrix
|
|
13
|
+
|
|
14
|
+
| Command | Action | Agent Role |
|
|
15
|
+
| :--- | :--- | :--- |
|
|
16
|
+
| `npm run lint` | Code style audit | Coder / Reviewer |
|
|
17
|
+
| `npm run test` | Jest test suite execution | QA Tester |
|
|
18
|
+
| `npx expo start` | Local development server | Coder |
|
|
19
|
+
| `npx eas build --platform android --profile preview` | Build staging APK bundle | DevOps |
|
|
20
|
+
| `npx eas build --platform android --profile production` | Build Play Store AAB release | DevOps |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Android App Architecture Memory & Constraints
|
|
2
|
+
|
|
3
|
+
## Technical Baseline
|
|
4
|
+
- **Build Tooling**: EAS CLI (Expo Application Services)
|
|
5
|
+
- **Android Target**: API level 34 (Android 14)
|
|
6
|
+
- **Minimum SDK**: API level 23 (Android 6.0)
|
|
7
|
+
|
|
8
|
+
## Security Guidelines
|
|
9
|
+
- **No Hardcoded Secrets**: All keys (API endpoints, tokens) must be injected dynamically via Expo Config `extra` parameters using `.env` files.
|
|
10
|
+
- **Secure Storage**: Sensitive auth tokens must be saved using `expo-secure-store`. Do NOT use standard `AsyncStorage` for passwords or tokens.
|
|
11
|
+
|
|
12
|
+
## Package Identity
|
|
13
|
+
- **Android Package Name**: `com.multimodel.devos` (defined in `app.json`)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Expo React Native Android Boilerplate
|
|
2
|
+
|
|
3
|
+
This template provides a production-ready React Native boilerplate configured for Android delivery using Expo, EAS Build, secure environment profile separation, automated API retries, and unit tests.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Directory Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
├── app.json # Expo application static configurations
|
|
11
|
+
├── eas.json # EAS Build pipeline profiles
|
|
12
|
+
├── app.config.ts # Dynamic env profiles selector
|
|
13
|
+
├── jest.config.js # Jest testing suite configuration
|
|
14
|
+
├── src/
|
|
15
|
+
│ ├── app/
|
|
16
|
+
│ │ └── _layout.tsx # Root layout, NetInfo listeners, and screen boundaries
|
|
17
|
+
│ ├── lib/
|
|
18
|
+
│ │ └── secure-storage.ts # Safe wrapper for expo-secure-store (key/value device encryption)
|
|
19
|
+
│ └── services/
|
|
20
|
+
│ └── api-client.ts # Fetch API wrapper with timeout thresholds and auto-retries
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 2. Environment Variables & App Configuration
|
|
26
|
+
|
|
27
|
+
We decouple environment configurations in [app.config.ts](file:///f:/multimodel-dev-os/examples/expo-react-native-android/app.config.ts) using `APP_ENV`.
|
|
28
|
+
|
|
29
|
+
### Supported Profiles
|
|
30
|
+
1. **Development (`development`)**:
|
|
31
|
+
* API Url: `http://10.0.2.2:3000/api` (Localhost mapping for Android Emulator)
|
|
32
|
+
2. **Staging (`staging`)**:
|
|
33
|
+
* API Url: `https://staging-api.multimodel.dev`
|
|
34
|
+
3. **Production (`production`)**:
|
|
35
|
+
* API Url: `https://api.multimodel.dev`
|
|
36
|
+
|
|
37
|
+
### To launch a specific environment locally:
|
|
38
|
+
```bash
|
|
39
|
+
# Start with staging parameters
|
|
40
|
+
APP_ENV=staging npx expo start
|
|
41
|
+
|
|
42
|
+
# Start with production parameters
|
|
43
|
+
APP_ENV=production npx expo start
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. EAS Build Setup
|
|
49
|
+
|
|
50
|
+
We configure three build targets in [eas.json](file:///f:/multimodel-dev-os/examples/expo-react-native-android/eas.json) to separate local debugging from store delivery.
|
|
51
|
+
|
|
52
|
+
### Build Commands
|
|
53
|
+
```bash
|
|
54
|
+
# 1. Build local development client (Internal testing APK with debugging tools)
|
|
55
|
+
eas build --profile development --platform android
|
|
56
|
+
|
|
57
|
+
# 2. Build staging/preview release (Internal testing APK)
|
|
58
|
+
eas build --profile preview --platform android
|
|
59
|
+
|
|
60
|
+
# 3. Build production release (Signed Android App Bundle (.aab) ready for Google Play Store)
|
|
61
|
+
eas build --profile production --platform android
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
> [!CAUTION]
|
|
65
|
+
> **No-Secrets Policy**: Do not commit actual `owner` or `projectId` credentials into `app.json` or environment files. Fill in placeholders locally during project provisioning.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 4. API Client & Secure Storage
|
|
70
|
+
|
|
71
|
+
### API Retry Loop
|
|
72
|
+
The [api-client.ts](file:///f:/multimodel-dev-os/examples/expo-react-native-android/src/services/api-client.ts) automatically retries requests up to 3 times on transient network failures before aborting. You can enable offline mock responses by setting:
|
|
73
|
+
```typescript
|
|
74
|
+
const USE_MOCK_DATA = true;
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Encrypted Key-Value Storage
|
|
78
|
+
Use the [secure-storage.ts](file:///f:/multimodel-dev-os/examples/expo-react-native-android/src/lib/secure-storage.ts) class to securely store credentials (like JWT tokens) on the device using keychain encryption:
|
|
79
|
+
```typescript
|
|
80
|
+
import { SecureStorage } from '../lib/secure-storage';
|
|
81
|
+
|
|
82
|
+
// Write credential
|
|
83
|
+
await SecureStorage.setItem('auth_token', 'JWT-TOKEN-DATA');
|
|
84
|
+
|
|
85
|
+
// Retrieve credential
|
|
86
|
+
const token = await SecureStorage.getItem('auth_token');
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 5. Pre-flight Play Store Release Checklist
|
|
92
|
+
|
|
93
|
+
Ensure you complete these steps before submitting `production` bundles:
|
|
94
|
+
1. **Change package name**: Update `"package": "com.multimodel.devos"` in `app.json` to your unique identifier.
|
|
95
|
+
2. **Update version parameters**: Set unique `"version"` and incremental `"versionCode"` in `app.json` for every build.
|
|
96
|
+
3. **Configure App Signing Keys**: Ensure your keystore is generated securely on EAS or imported safely from local credentials. Do not commit keystores to Git.
|
|
97
|
+
4. **Permissions Audit**: Verify that only required permissions (like `INTERNET`) are enabled in `app.json`.
|
|
98
|
+
5. **Run tests**:
|
|
99
|
+
```bash
|
|
100
|
+
npm test
|
|
101
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Mobile Staging Operations & Build Runbook
|
|
2
|
+
|
|
3
|
+
This document details common development, testing, and release build workflows.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Local Testing & Execution
|
|
8
|
+
|
|
9
|
+
Start local bundler:
|
|
10
|
+
```bash
|
|
11
|
+
npm run start
|
|
12
|
+
```
|
|
13
|
+
Run Jest unit tests:
|
|
14
|
+
```bash
|
|
15
|
+
npm run test
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 2. Staging / Preview Builds
|
|
21
|
+
|
|
22
|
+
Build staging APK locally or remotely using EAS CLI:
|
|
23
|
+
```bash
|
|
24
|
+
# Preview build for internal testing (requires EAS account configured)
|
|
25
|
+
npx eas build --platform android --profile preview
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Production Play Store release
|
|
31
|
+
|
|
32
|
+
Build production Play Store package (AAB):
|
|
33
|
+
```bash
|
|
34
|
+
npx eas build --platform android --profile production
|
|
35
|
+
```
|
|
36
|
+
Ensure that your Google Play Console credentials and key keystores are linked securely inside the EAS dashboard.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Active Mobile Application Backlog
|
|
2
|
+
|
|
3
|
+
- [ ] Mobile App Initialization
|
|
4
|
+
- [ ] Configure `app.json` package namespace and icon directories
|
|
5
|
+
- [ ] Setup `eas.json` profiles
|
|
6
|
+
- [ ] Core Integrations
|
|
7
|
+
- [ ] Implement API client with baseUrl environment variables
|
|
8
|
+
- [ ] Implement secure storage utility using `expo-secure-store`
|
|
9
|
+
- [ ] App Features
|
|
10
|
+
- [ ] Setup Expo Router layout screens
|
|
11
|
+
- [ ] Design loading states and offline warning screens
|
|
12
|
+
- [ ] Quality Assurance
|
|
13
|
+
- [ ] Add Jest test setups
|
|
14
|
+
- [ ] Build staging APK via `npx eas build`
|