# MCP Apps Merged Skill — Changelog

## Merge Date: 2026-02-03

### Added from Official ext-apps Skill

These sections/content were **new** from the official skill and did not exist in the custom skill:

| Addition | Location in Merged Doc |
|----------|----------------------|
| YAML frontmatter with trigger phrases | Top of file |
| Framework selection table (Vue/Svelte/Preact/Solid) | Quick Start Decision Tree |
| Project context section (adding to existing vs new) | Quick Start Decision Tree |
| Full framework templates table (6 frameworks) | Get Reference Code → Framework Templates |
| API Reference source files table | Get Reference Code → API Reference |
| Additional advanced examples (video-resource, sheet-music, threejs, transcript, basic-host) | Get Reference Code → Advanced Examples |
| `npm install` vs manual versions warning | Required Packages + MUST DO table |
| `tsx` vs `bun` compatibility note | Required Packages |
| `ontoolinputpartial` streaming section with use cases table and code patterns | New section: Streaming Partial Input |
| Visibility-based resource management (IntersectionObserver) | New section: Visibility-Based Resource Management |
| Fullscreen mode (`requestDisplayMode()`) with CSS patterns | New section: Fullscreen Mode |
| Safe area insets handling (`safeAreaInsets`) | New section: Safe Area Insets |
| `sendLog` for debug logging to host | Client-Side + Debugging Checklist |
| Testing with basic-host example | Testing section |
| Host styling split into Applying / Using subsections | Host CSS Variables |
| `line-height` CSS variable example | Host CSS Variables |

### Kept from Custom Battle-Tested Skill

Everything from the custom skill was preserved as the structural base:

| Content | Status |
|---------|--------|
| "What MCP Apps Actually Are" explanation | Kept verbatim |
| "How The Data Flows" numbered diagram | Kept verbatim |
| Quick Reference pattern | Kept verbatim |
| Required Packages table | Kept, enhanced with official notes |
| Project Structure tree | Kept verbatim |
| Complete Server Template (annotated) | Kept verbatim |
| Tool Registration quick reference | Kept verbatim |
| Resource Registration snippet | Kept verbatim |
| Tool Visibility Options | Kept (merged — both had same content) |
| Server-Side Action Tools (view vs action) | Kept verbatim |
| Complete HTML Template | Kept verbatim |
| Complete UI Logic template | Kept verbatim |
| Vanilla JS Full Lifecycle pattern | Kept, enhanced with `ontoolinputpartial` + safe area |
| React Pattern | Kept verbatim |
| Calling Server Tools snippet | Kept verbatim |
| Updating Model Context snippet | Kept verbatim |
| App Lifecycle Handlers table | Kept, added `ontoolinputpartial` row |
| Host CSS Variables section | Kept, merged with official's richer version |
| Build Configuration (vite, tsconfig, package.json) | Kept verbatim |
| **Module Scope Issue** (critical gotcha) | Kept verbatim |
| **Drag-and-Drop Pattern** (complete) | Kept verbatim |
| **Edit Modal Pattern** (complete) | Kept verbatim |
| CSS for Drag-and-Drop & Modals | Kept verbatim |
| Key Lessons Learned (6 items) | Kept verbatim |
| Data Handling Gotchas (array validation, escaping) | Kept verbatim |
| MUST DO table | Kept, added 4 rows from official |
| MUST NOT table | Kept, added 3 rows from official |
| Host-Specific Notes (Goose, Claude Desktop) | Kept verbatim |
| JSONRPC pipe testing commands | Kept verbatim |
| Debugging Checklist | Kept, added sendLog step |
| Common Errors table (10+ entries) | Kept, added 2 rows from official |
| Summary: The Golden Path | Kept, expanded with new steps |
| `git clone` reference code command | Kept verbatim |

### Reorganization

| Change | Rationale |
|--------|-----------|
| Moved "Get Reference Code" earlier (after Project Structure) | Better flow — see examples before diving into implementation |
| Merged framework templates + advanced examples into one "Get Reference Code" section | Eliminates duplicate reference code sections |
| Added dedicated sections for Streaming, Visibility, Fullscreen, Safe Areas | These were inline in the official skill; standalone sections are more scannable |
| Split Host CSS Variables into "Applying" and "Using" subsections | Clearer separation of setup vs usage |
| Enhanced MUST DO/MUST NOT tables with official skill's requirements | Single authoritative rules table |
| Added `sendLog` to both client-side section and debugging checklist | Available in two contexts where you'd need it |
| Expanded Golden Path summary from 6 to 10 steps | Covers all new features (streaming, fullscreen, visibility, styling) |

### Deduplication

Only literally identical content was deduplicated:
- Tool visibility options (identical in both) → kept once
- `git clone` command (identical) → kept once
- CSS variable examples (nearly identical) → merged into richer version with `line-height`
- Handler registration order warning (same in both) → kept custom's more detailed version
