multimodel-dev-os 0.3.0 → 0.5.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.
Files changed (62) hide show
  1. package/README.md +103 -98
  2. package/bin/multimodel-dev-os.js +351 -35
  3. package/docs/caveman-mode.md +7 -3
  4. package/docs/cli-roadmap.md +33 -21
  5. package/docs/comparison.md +33 -0
  6. package/docs/faq.md +21 -4
  7. package/docs/installers.md +1 -1
  8. package/docs/launch-kit.md +99 -0
  9. package/docs/multimodel-workflow.md +10 -11
  10. package/docs/npm-publishing.md +2 -2
  11. package/docs/quickstart.md +42 -29
  12. package/docs/templates-guide.md +65 -0
  13. package/docs/use-cases.md +39 -0
  14. package/examples/ecommerce-store/.ai/config.yaml +7 -4
  15. package/examples/ecommerce-store/.ai/context/architecture.md +6 -0
  16. package/examples/ecommerce-store/.ai/context/context-budget.md +4 -0
  17. package/examples/ecommerce-store/.ai/context/model-map.md +4 -0
  18. package/examples/ecommerce-store/.ai/context/project-brief.md +3 -0
  19. package/examples/ecommerce-store/.ai/skills/webhook-handler.md +15 -0
  20. package/examples/ecommerce-store/AGENTS.md +15 -2
  21. package/examples/ecommerce-store/MEMORY.md +4 -3
  22. package/examples/ecommerce-store/TASKS.md +10 -0
  23. package/examples/general-app/.ai/config.yaml +7 -4
  24. package/examples/general-app/.ai/context/architecture.md +12 -0
  25. package/examples/general-app/.ai/context/context-budget.md +5 -0
  26. package/examples/general-app/.ai/context/model-map.md +7 -0
  27. package/examples/general-app/.ai/context/project-brief.md +6 -0
  28. package/examples/general-app/.ai/skills/example-skill.md +8 -0
  29. package/examples/general-app/AGENTS.md +69 -4
  30. package/examples/general-app/MEMORY.md +32 -2
  31. package/examples/general-app/TASKS.md +9 -0
  32. package/examples/nextjs-saas/.ai/config.yaml +7 -4
  33. package/examples/nextjs-saas/.ai/context/architecture.md +8 -0
  34. package/examples/nextjs-saas/.ai/context/context-budget.md +4 -0
  35. package/examples/nextjs-saas/.ai/context/model-map.md +4 -0
  36. package/examples/nextjs-saas/.ai/context/project-brief.md +5 -0
  37. package/examples/nextjs-saas/.ai/skills/nextjs-action-build.md +16 -0
  38. package/examples/nextjs-saas/AGENTS.md +8 -2
  39. package/examples/nextjs-saas/MEMORY.md +7 -4
  40. package/examples/nextjs-saas/TASKS.md +12 -0
  41. package/examples/seo-landing-page/.ai/config.yaml +0 -0
  42. package/examples/seo-landing-page/.ai/context/architecture.md +12 -0
  43. package/examples/seo-landing-page/.ai/context/context-budget.md +5 -0
  44. package/examples/seo-landing-page/.ai/context/model-map.md +7 -0
  45. package/examples/seo-landing-page/.ai/context/project-brief.md +6 -0
  46. package/examples/seo-landing-page/.ai/skills/seo-audit.md +21 -0
  47. package/examples/seo-landing-page/AGENTS.md +69 -4
  48. package/examples/seo-landing-page/MEMORY.md +33 -4
  49. package/examples/seo-landing-page/TASKS.md +9 -0
  50. package/examples/wordpress-site/.ai/config.yaml +7 -4
  51. package/examples/wordpress-site/.ai/context/architecture.md +7 -0
  52. package/examples/wordpress-site/.ai/context/context-budget.md +4 -0
  53. package/examples/wordpress-site/.ai/context/model-map.md +4 -0
  54. package/examples/wordpress-site/.ai/context/project-brief.md +3 -0
  55. package/examples/wordpress-site/.ai/skills/plugin-boilerplate.md +21 -0
  56. package/examples/wordpress-site/AGENTS.md +16 -3
  57. package/examples/wordpress-site/MEMORY.md +4 -3
  58. package/examples/wordpress-site/TASKS.md +10 -0
  59. package/package.json +1 -1
  60. package/scripts/install.ps1 +1 -1
  61. package/scripts/install.sh +1 -1
  62. package/scripts/verify.sh +12 -12
@@ -1,4 +1,7 @@
1
- version: "0.1"
2
- project:
3
- name: "nextjs-saas-starter"
4
- mode: "standard"
1
+ adapters:
2
+ cursor: true
3
+ claude: true
4
+ vscode: true
5
+ mode: standard
6
+ orchestrator:
7
+ mode: sequential
@@ -0,0 +1,8 @@
1
+ # Next.js SaaS — Architecture Map
2
+
3
+ ## Directory Boundaries
4
+ - `/app` — Route groups, API routes, and Server Actions controllers.
5
+ - `/components` — React UI components (Tailwind classes ordered).
6
+ - `/lib` — Prisma database Client singleton, helper utilities.
7
+ - `/prisma` — Postgres SQL schemas definitions, migrations files.
8
+ - `/tests` — Unit tests using vitest or Jest.
@@ -0,0 +1,4 @@
1
+ # Next.js SaaS — Context Budget
2
+
3
+ - Keep total context files under **12,000 tokens** per prompt.
4
+ - Never pass large dependencies directories like `node_modules` or `.next` artifacts into model prompts.
@@ -0,0 +1,4 @@
1
+ # Next.js SaaS — Model Map
2
+
3
+ - **Claude / Antigravity:** Best for designing database schemas modifications, Next.js Server Actions layouts, and Stripe integrations routing.
4
+ - **Cursor / Codex:** Ideal for refactoring react hooks, compiling component styling, and implementing unit tests.
@@ -0,0 +1,5 @@
1
+ # Next.js SaaS — Project Brief
2
+
3
+ This project is a high-performance, TypeScript-based SaaS platform boilerplate that provides secure database persistence, stripe-based subscription tiers, and standard authentication modules.
4
+
5
+ The goal is to enable AI coding tools to safely construct, refine, and deploy features under strict TypeScript constraints.
@@ -0,0 +1,16 @@
1
+ # Skill: React Server Actions secure implementation
2
+
3
+ Use this skill when implementing a secure React Server Action in Next.js:
4
+
5
+ 1. **State Isolation:** Ensure actions include `"use server"` at the top of the file or module.
6
+ 2. **Parameters validation:** Validate all input parameters via Zod schema parsers.
7
+ 3. **Connection safety:** Ensure Prisma queries inside the Action execute within try-catch blocks:
8
+ ```typescript
9
+ try {
10
+ const data = await prisma.user.update({...});
11
+ return { success: true, data };
12
+ } catch (e) {
13
+ return { success: false, error: e.message };
14
+ }
15
+ ```
16
+ 4. **No secret exposure:** Never return raw sensitive fields (like password hashes or API private keys) to the UI client layer.
@@ -1,8 +1,8 @@
1
1
  # Next.js SaaS — Agent Instructions
2
2
 
3
3
  project: nextjs-saas-starter
4
- stack: Next.js 14 (App Router), TypeScript, Tailwind CSS, Prisma, PostgreSQL, Stripe
5
- description: Subscription-based software-as-a-service application template
4
+ stack: Next.js 14 (App Router), React 18, TypeScript, Tailwind CSS, Prisma ORM, Stripe, PostgreSQL
5
+ description: Subscription-based SaaS boilerplate with checkout modules and database triggers.
6
6
 
7
7
  ## Build Commands
8
8
  ```
@@ -11,3 +11,9 @@ build: npm run build
11
11
  test: npm run test
12
12
  lint: npm run lint
13
13
  ```
14
+
15
+ ## Coding Conventions
16
+ - **Language:** TypeScript (strict mode enabled).
17
+ - **Framework:** Next.js App Router. Enforce Server Components by default; add `"use client"` only for files requiring state, effects, or user event handlers.
18
+ - **Data Access:** Enforce Prisma Client operations inside Server Actions or Route Handlers; keep connection pools under limits (e.g. `npx prisma db push`).
19
+ - **Styling:** Vanilla CSS modules or Tailwind CSS utilities classes. Order Tailwind classes systematically (layout first, then spacing, then typography).
@@ -1,5 +1,8 @@
1
- # Next.js SaaS — Memory
1
+ # Next.js SaaS — Project Memory
2
2
 
3
- ## Architecture Decisions
4
- - Decided to use Next-Auth with JWT session strategy.
5
- - Stripe Webhook events are processed asynchronously in route handlers.
3
+ ## Architectural Decisions
4
+ - **React Server Actions:** Adopted Server Actions for form submissions and mutation endpoints. Kept Route Handlers only for webhooks (like Stripe Webhook events).
5
+ - **Prisma Connection Pooling:** Instantiated PrismaClient as a global singleton on development to prevent socket fatigue on hot-reloading.
6
+
7
+ ## Active Conventions
8
+ - Always wrap database actions in standard try-catch blocks returning custom objects `{ success: boolean, data?: any, error?: string }` to simplify frontend feedback.
@@ -0,0 +1,12 @@
1
+ # Next.js SaaS — Starter Tasks
2
+
3
+ - [ ] Core Setup & Auth Integration
4
+ - [ ] Configure Prisma schema and run local DB migrations
5
+ - [ ] Connect NextAuth/Auth0 provider credentials inside `.env`
6
+ - [ ] Subscription Flows & Webhooks
7
+ - [ ] Set up Stripe product prices and API keys
8
+ - [ ] Implement secure order checkout Server Action
9
+ - [ ] Write secure endpoint under `/api/webhook/stripe` to handle billing updates
10
+ - [ ] Quality Assurance
11
+ - [ ] Run full build check `npm run build`
12
+ - [ ] Audit Lighthouse core web vitals parameters on landing pages
@@ -0,0 +1,12 @@
1
+ # Architecture Map
2
+
3
+ ```mermaid
4
+ graph TD
5
+ Markdown[Content Files] --> Astro[Astro Engine]
6
+ Components[React/Astro Components] --> Astro
7
+ Astro --> Static[Static Assets: HTML, JS, CSS]
8
+ Static --> Purge[PurgeCSS Optimization]
9
+ Purge --> CDN[Edge CDN Distribution]
10
+ ```
11
+
12
+ Static sites are distributed strictly through static hosting with zero server overhead.
@@ -0,0 +1,5 @@
1
+ # SEO Landing Page — Context Budget
2
+
3
+ - Keep total context files under **8,000 tokens** per prompt.
4
+ - Never pass large dependencies directories like `node_modules` or `.astro` folders.
5
+ - Avoid passing media assets (images, videos) into text-only models.
@@ -0,0 +1,7 @@
1
+ # Model Map
2
+
3
+ Define LLM task allocations for the SEO Landing Page context:
4
+
5
+ - **Coding & Implementation:** Gemini 3.5 Pro or Claude 3.5 Sonnet for Astro component templates.
6
+ - **Refactoring & Styling:** Gemini 3.5 Flash for rapid CSS class styling.
7
+ - **SEO Optimization & Content Auditing:** Claude 3.5 Sonnet for structured schema compliance.
@@ -0,0 +1,6 @@
1
+ # Project Brief
2
+
3
+ This project acts as an ultra-fast static landing page optimized for Astro, targeting high Core Web Vitals and structured JSON-LD SEO markup.
4
+ - Core Web Vitals target: 100/100 on Mobile and Desktop.
5
+ - Native CSS/purge pipelines configured.
6
+ - Structured content layouts for perfect semantic indexing.
@@ -0,0 +1,21 @@
1
+ # Skill: Google Lighthouse optimization
2
+
3
+ Use this skill when auditing and optimizing a static landing page:
4
+
5
+ 1. **Meta Descriptions Verification:** Every page layout must contain:
6
+ ```html
7
+ <meta name="description" content="Precise SEO description (under 160 characters)" />
8
+ ```
9
+ 2. **Alt Tags Check:** Ensure every `<img>` tag has a valid, descriptively non-empty `alt` string.
10
+ 3. **Structured Schemas:** Embed JSON-LD maps:
11
+ ```html
12
+ <script type="application/ld+json">
13
+ {
14
+ "@context": "https://schema.org",
15
+ "@type": "WebSite",
16
+ "name": "Custom Profile",
17
+ "url": "https://example.com"
18
+ }
19
+ </script>
20
+ ```
21
+ 4. **Compression Audits:** Enforce `.webp` or `.avif` extensions for large backgrounds instead of uncompressed PNGs.
@@ -1,5 +1,70 @@
1
- # SEO Landing Page — Agent Instructions
1
+ # Agent Instructions
2
2
 
3
- project: marketing-landing-page
4
- stack: HTML5, CSS3, Vanilla JS
5
- description: Fast, high-conversion static landing page optimized for Core Web Vitals
3
+ > This file is the **source of truth** for all AI coding agents working on this project.
4
+ > Tool-specific adapters in `adapters/` read from this file. Do not duplicate instructions there.
5
+
6
+ ## Project Overview
7
+
8
+ project: seo-landing-page
9
+ stack: Astro, React, Tailwind CSS, HTML5, JSON-LD
10
+ description: Premium static landing page optimized for high SEO performance and Core Web Vitals.
11
+
12
+ ## Build Commands
13
+
14
+ ```
15
+ dev: npm run dev
16
+ build: npm run build
17
+ test: npm run test
18
+ lint: npm run lint
19
+ ```
20
+
21
+ ## Coding Conventions
22
+
23
+ - Language: JavaScript / TypeScript
24
+ - Framework: Astro
25
+ - Style guide: Astro Standard
26
+ - Type checking: none
27
+ - Formatting: Prettier
28
+
29
+ ## File Structure Rules
30
+
31
+ ```
32
+ src/ → Application source code
33
+ lib/ → Shared libraries and utilities
34
+ tests/ → Test files
35
+ docs/ → Documentation
36
+ ```
37
+
38
+ ## Boundaries
39
+
40
+ ```
41
+ no-touch:
42
+ - .env
43
+ - .env.local
44
+ - node_modules/
45
+ - package-lock.json (do not manually edit)
46
+ ```
47
+
48
+ ## Agent Roles
49
+
50
+ | Role | Tool | Scope | Permissions |
51
+ |------|------|-------|-------------|
52
+ | default | any | all files | read + write |
53
+
54
+ ## Dependencies
55
+
56
+ - astro
57
+ - tailwindcss
58
+ - @astrojs/react
59
+
60
+ ## Testing Strategy
61
+
62
+ - Unit tests: none
63
+ - Integration tests: Playwright
64
+ - E2E tests: Lighthouse audits
65
+
66
+ ## Additional Context
67
+
68
+ - See `MEMORY.md` for project history and decisions
69
+ - See `TASKS.md` for current work items
70
+ - See `RUNBOOK.md` for operational procedures
@@ -1,5 +1,34 @@
1
- # SEO Landing Page — Memory
1
+ # Project Memory
2
2
 
3
- ## key-patterns
4
- - Strictly matching exactly one main header rules.
5
- - Fast interactive element parameters.
3
+ > Persistent context that AI agents carry across sessions.
4
+ > Update this file as the project evolves. Keep it under 200 lines.
5
+
6
+ ## Architecture Decisions
7
+
8
+ | Date | Decision | Rationale |
9
+ |------|----------|-----------|
10
+ | 2026-05-30 | Astro for static rendering | Astro offers zero-JS by default, ensuring perfect Lighthouse performance. |
11
+ | 2026-05-30 | Tailwind CSS for styling | Utility-first classes optimized and purged during the production build. |
12
+
13
+ ## Key Patterns
14
+
15
+ - **Structured Metadata:** Always include custom JSON-LD schemas in layout headers.
16
+ - **Image Optimization:** Enforce specific width/height ratios and lazy loading on all non-above-the-fold assets.
17
+
18
+ ## Known Issues
19
+
20
+ - External font loading might trigger visual flashes (CLS). Font display swapping is enabled.
21
+
22
+ ## Environment Notes
23
+
24
+ - OS: Platform independent
25
+ - CI: GitHub Actions
26
+ - Hosting: Vercel Static
27
+
28
+ ## Session Notes
29
+
30
+ ### Session: Baseline Scaffold
31
+ **Date:** 2026-05-30
32
+ **Agent:** Antigravity
33
+ **Summary:** Created layout structure and integrated SEO-audit skills guidelines.
34
+ **Files changed:** AGENTS.md, MEMORY.md, TASKS.md
@@ -0,0 +1,9 @@
1
+ # Tasks
2
+
3
+ ## Active Tasks
4
+ - [ ] Scaffold standard layout inside Astro project
5
+ - [ ] Embed JSON-LD structured data in header layout
6
+ - [ ] Perform Lighthouse performance audit and optimize styles
7
+
8
+ ## Completed Tasks
9
+ - [x] Set up initial project boundaries and configuration yaml
@@ -1,4 +1,7 @@
1
- version: "0.1"
2
- project:
3
- name: "custom-wordpress-theme"
4
- mode: "standard"
1
+ adapters:
2
+ cursor: true
3
+ claude: true
4
+ vscode: true
5
+ mode: standard
6
+ orchestrator:
7
+ mode: sequential
@@ -0,0 +1,7 @@
1
+ # WordPress Site — Architecture Map
2
+
3
+ ## Directory Boundaries
4
+ - `/inc` — Helper PHP classes and functions.
5
+ - `/src` — CSS/JS resources before build/compilation.
6
+ - `/languages` — Internationalization translation files (.pot).
7
+ - `plugin.php` — Core entry point defining plugin headers and activations.
@@ -0,0 +1,4 @@
1
+ # WordPress Site — Context Budget
2
+
3
+ - Keep total context files under **10,000 tokens** per turn.
4
+ - Do not feed full compiled vendor directories (e.g. `wp-admin`, `wp-includes`) into prompts.
@@ -0,0 +1,4 @@
1
+ # WordPress Site — Model Map
2
+
3
+ - **Claude / Antigravity:** Best for sanitizing PHP query functions and hooks orchestration.
4
+ - **Cursor / Codex:** Ideal for building block editor styles and custom block integrations.
@@ -0,0 +1,3 @@
1
+ # WordPress Site — Project Brief
2
+
3
+ This project is a custom WordPress plugin and theme configuration. The goal is to ensure PHP development adheres to safe database interaction practices and WordPress security standards.
@@ -0,0 +1,21 @@
1
+ # Skill: WordPress secure plugin structure
2
+
3
+ Use this skill when scaffolding a secure WordPress plugin or PHP module:
4
+
5
+ 1. **Direct Access Protection:** Ensure every PHP file starts with direct execution guards:
6
+ ```php
7
+ if ( ! defined( 'ABSPATH' ) ) {
8
+ exit; // Exit if accessed directly.
9
+ }
10
+ ```
11
+ 2. **Class Namespacing:** Namespace your classes to prevent namespace collisions (e.g. `namespace WP_Custom_Plugin;`).
12
+ 3. **Database Escaping:** Use prepared statements for direct database calls:
13
+ ```php
14
+ global $wpdb;
15
+ $query = $wpdb->prepare(
16
+ "SELECT * FROM {$wpdb->prefix}custom_table WHERE id = %d",
17
+ $item_id
18
+ );
19
+ $results = $wpdb->get_results( $query );
20
+ ```
21
+ 4. **Hook Verification:** Register all activations cleanly inside a central bootstrap hook.
@@ -1,5 +1,18 @@
1
1
  # WordPress Site — Agent Instructions
2
2
 
3
- project: custom-wordpress-theme
4
- stack: PHP, WordPress Core, MySQL, Sass, Webpack
5
- description: Custom theme design and plugin configuration for enterprise website
3
+ project: wordpress-custom-profile
4
+ stack: WordPress Core, Gutenberg Block Editor, PHP, custom plugins, MySQL
5
+ description: Custom theme and plugin scaffolding targeting sanitized PHP database queries.
6
+
7
+ ## Build Commands
8
+ ```
9
+ dev: composer run dev
10
+ build: composer run build
11
+ test: composer run test
12
+ lint: composer run lint
13
+ ```
14
+
15
+ ## Coding Conventions
16
+ - **Language:** PHP 8.1+ and ES6 Javascript for Gutenberg custom blocks.
17
+ - **Sanitization Gates:** Enforce output escaping: `esc_attr()`, `esc_html()`, `esc_url()`, and `wp_kses()`.
18
+ - **Database Safety:** Always use `$wpdb->prepare()` for custom SQL queries to avoid SQL Injection vulnerabilities.
@@ -1,4 +1,5 @@
1
- # WordPress Site — Memory
1
+ # WordPress Site — Project Memory
2
2
 
3
- ## Key Decisions
4
- - Standardized custom post types for "Events" and "News" services.
3
+ ## Architectural Decisions
4
+ - **Custom Post Types (CPT):** Registered custom post types strictly using the `init` action hook to ensure URL rewrite rules initialize cleanly.
5
+ - **WP Transients:** Cached heavy database option operations using WordPress Transients API to preserve SQL query load budgets.
@@ -0,0 +1,10 @@
1
+ # WordPress Site — Starter Tasks
2
+
3
+ - [ ] Core Setup & Setup hooks
4
+ - [ ] Scaffold the base plugin class structure
5
+ - [ ] Register the action and filter hooks in `plugin.php`
6
+ - [ ] Database Schema Setup
7
+ - [ ] Implement secure custom query wrapper using `$wpdb`
8
+ - [ ] Setup transient caches for complex queries
9
+ - [ ] Block Editor (Gutenberg)
10
+ - [ ] Build a custom block boilerplate matching registerBlockType parameters
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multimodel-dev-os",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "bin": {
5
5
  "multimodel-dev-os": "bin/multimodel-dev-os.js"
6
6
  },
@@ -11,7 +11,7 @@ param(
11
11
  [switch]$Help
12
12
  )
13
13
 
14
- $Version = "0.1.0"
14
+ $Version = "0.5.0"
15
15
  $RepoUrl = "https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main"
16
16
 
17
17
  if ($Help) {
@@ -7,7 +7,7 @@ set -euo pipefail
7
7
  # --all (install all adapters)
8
8
  # --dry-run (show what would be created without creating)
9
9
 
10
- VERSION="0.1.0"
10
+ VERSION="0.5.0"
11
11
  REPO_URL="https://raw.githubusercontent.com/rizvee/multimodel-dev-os/main"
12
12
  CAVEMAN=false
13
13
  DRY_RUN=false
package/scripts/verify.sh CHANGED
@@ -197,30 +197,30 @@ check_file "docs/npm-publishing.md"
197
197
  echo ""
198
198
  echo "Running CLI & Packaging Pre-Flight Tests..."
199
199
 
200
- # Verify package.json version is exactly 0.3.0
201
- if ! grep -q '"version": "0.3.0"' package.json; then
202
- echo -e " ${RED}✗${NC} package.json version is not 0.3.0"
200
+ # Verify package.json version is exactly 0.5.0
201
+ if ! grep -q '"version": "0.5.0"' package.json; then
202
+ echo -e " ${RED}✗${NC} package.json version is not 0.5.0"
203
203
  FAIL=$((FAIL + 1))
204
204
  else
205
- echo -e " ${GREEN}✓${NC} package.json version is exactly 0.3.0"
205
+ echo -e " ${GREEN}✓${NC} package.json version is exactly 0.5.0"
206
206
  PASS=$((PASS + 1))
207
207
  fi
208
208
 
209
- # Verify CLI version matches v0.3.0
210
- if ! node bin/multimodel-dev-os.js --help | grep -q 'v0.3.0'; then
211
- echo -e " ${RED}✗${NC} CLI help does not display v0.3.0"
209
+ # Verify CLI version matches v0.5.0
210
+ if ! node bin/multimodel-dev-os.js --help | grep -q 'v0.5.0'; then
211
+ echo -e " ${RED}✗${NC} CLI help does not display v0.5.0"
212
212
  FAIL=$((FAIL + 1))
213
213
  else
214
- echo -e " ${GREEN}✓${NC} CLI help displays v0.3.0"
214
+ echo -e " ${GREEN}✓${NC} CLI help displays v0.5.0"
215
215
  PASS=$((PASS + 1))
216
216
  fi
217
217
 
218
- # Verify npm pack dry-run shows v0.3.0
219
- if ! npm pack --dry-run 2>&1 | grep -q 'multimodel-dev-os@0.3.0'; then
220
- echo -e " ${RED}✗${NC} npm pack --dry-run does not report version 0.3.0"
218
+ # Verify npm pack dry-run shows v0.5.0
219
+ if ! npm pack --dry-run 2>&1 | grep -q 'multimodel-dev-os@0.5.0'; then
220
+ echo -e " ${RED}✗${NC} npm pack --dry-run does not report version 0.5.0"
221
221
  FAIL=$((FAIL + 1))
222
222
  else
223
- echo -e " ${GREEN}✓${NC} npm pack --dry-run reports version 0.3.0"
223
+ echo -e " ${GREEN}✓${NC} npm pack --dry-run reports version 0.5.0"
224
224
  PASS=$((PASS + 1))
225
225
  fi
226
226