diff --git a/README.md b/README.md
index 6be44534..b145968d 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,17 @@
# π Antigravity Awesome Skills
-> **The Ultimate Collection of 50+ Agentic Skills for Claude Code (Antigravity)**
+> **The Ultimate Collection of 60+ Agentic Skills for Claude Code (Antigravity)**
[](https://opensource.org/licenses/MIT)
[](https://claude.ai)
[](https://github.com/guanyang/antigravity-skills)
-**Antigravity Awesome Skills** is a curated, battle-tested collection of **58 high-performance skills** compatible with both **Antigravity** and **Claude Code**.
+**Antigravity Awesome Skills** is a curated, battle-tested collection of **62 high-performance skills** compatible with both **Antigravity** and **Claude Code**, including official skills from **Anthropic** and **Vercel Labs**.
## π Table of Contents
- [Features & Categories](#features--categories)
-- [Full Skill Registry](#full-skill-registry-5858)
+- [Full Skill Registry](#full-skill-registry-6262)
- [Installation](#installation)
- [How to Contribute](#how-to-contribute)
- [Credits & Sources](#credits--sources)
@@ -36,47 +36,55 @@ The repository is organized into several key areas of expertise:
---
-## Full Skill Registry (58/58)
+## Full Skill Registry (62/62)
Below is the complete list of available skills. Each skill folder contains a `SKILL.md` that can be imported into Antigravity or Claude Code.
-| Skill Name | Description | Path |
-| :------------------------- | :--------------------------------------------------------- | :------------------------------------------ |
-| **Algorithmic Art** | Creative generative art using p5.js and seeded randomness. | `skills/algorithmic-art` |
-| **App Store Optimization** | Complete ASO toolkit for iOS and Android app performance. | `skills/app-store-optimization` |
-| **AWS Pentesting** | Specialized security assessment for Amazon Web Services. | `skills/aws-penetration-testing` |
-| **Backend Guidelines** | Core architecture patterns for Node/Express microservices. | `skills/backend-dev-guidelines` |
-| **Brainstorming** | Requirement discovery and intent exploration framework. | `skills/brainstorming` |
-| **Brand Guidelines** | Anthropic-specific styling and visual standards. | `skills/brand-guidelines` |
-| **Canvas Design** | Beautiful static visual design in PDF and PNG. | `skills/canvas-design` |
-| **Claude D3.js** | Advanced data visualization with D3.js. | `skills/claude-d3js-skill` |
-| **Content Creator** | SEO-optimized marketing and brand voice toolkit. | `skills/content-creator` |
-| **Core Components** | Design system tokens and baseline UI patterns. | `skills/core-components` |
-| **Doc Co-authoring** | Structured workflow for technical documentation. | `skills/doc-coauthoring` |
-| **DOCX/PPTX/XLSX** | Advanced MS Office document manipulation. | `skills/docx`, `skills/pptx`, `skills/xlsx` |
-| **Ethical Hacking** | Comprehensive penetration testing lifecycle methodology. | `skills/ethical-hacking-methodology` |
-| **Frontend Design** | Production-grade UI component implementation. | `skills/frontend-design` |
-| **Frontend Guidelines** | Modern React/TS development patterns and file structure. | `skills/frontend-dev-guidelines` |
-| **Git Pushing** | Automated staging and conventional commits. | `skills/git-pushing` |
-| **Internal Comms** | Standardized corporate communication templates. | `skills/internal-comms` |
-| **Kaizen** | Continuous improvement and error-proofing (Poka-Yoke). | `skills/kaizen` |
-| **Linux Shell Scripting** | Production-ready shell scripts for automation. | `skills/linux-shell-scripting` |
-| **Loki Mode** | Fully autonomous startup development engine. | `skills/loki-mode` |
-| **MCP Builder** | High-quality Model Context Protocol (MCP) server creation. | `skills/mcp-builder` |
-| **NotebookLM** | Source-grounded querying via Google NotebookLM. | `skills/notebooklm` |
-| **PDF Toolkit** | Extraction, creation, and manipulation of PDF docs. | `skills/pdf` |
-| **Pentest Checklist** | Structured security assessment planning and scoping. | `skills/pentest-checklist` |
-| **Product Toolkit** | RICE prioritization and product discovery frameworks. | `skills/product-manager-toolkit` |
-| **Prompt Engineering** | Expert patterns for LLM instruction optimization. | `skills/prompt-engineering` |
-| **React UI Patterns** | Standardized loading states and error handling for React. | `skills/react-ui-patterns` |
-| **Senior Architect** | Scalable system design and architecture diagrams. | `skills/senior-architect` |
-| **Skill Creator** | Meta-skill for building high-performance agentic skills. | `skills/skill-creator` |
-| **Software Architecture** | Quality-focused design principles and analysis. | `skills/software-architecture` |
-| **Systematic Debugging** | Root cause analysis and structured fix verification. | `skills/systematic-debugging` |
-| **TDD** | Test-Driven Development workflow and red-green-refactor. | `skills/test-driven-development` |
-| **UI/UX Pro Max** | Advanced design intelligence and 50+ styling options. | `skills/ui-ux-pro-max` |
-| **Web Artifacts** | Complex React/Tailwind/Shadcn UI artifact builder. | `skills/web-artifacts-builder` |
-| **Webapp Testing** | Local web application testing with Playwright. | `skills/webapp-testing` |
+> [!NOTE] > **Document Skills**: We provide both **community** and **official Anthropic** versions for DOCX, PDF, PPTX, and XLSX. Locally, the official versions are used by default (via symlinks). In the repository, both versions are available for flexibility.
+
+| Skill Name | Description | Path |
+| :------------------------------- | :------------------------------------------------------------ | :--------------------------------------------- |
+| **Algorithmic Art** | Creative generative art using p5.js and seeded randomness. | `skills/algorithmic-art` |
+| **App Store Optimization** | Complete ASO toolkit for iOS and Android app performance. | `skills/app-store-optimization` |
+| **AWS Pentesting** | Specialized security assessment for Amazon Web Services. | `skills/aws-penetration-testing` |
+| **Backend Guidelines** | Core architecture patterns for Node/Express microservices. | `skills/backend-dev-guidelines` |
+| **Brainstorming** | Requirement discovery and intent exploration framework. | `skills/brainstorming` |
+| **Brand Guidelines (Anthropic)** | Official Anthropic brand styling and visual standards. | `skills/brand-guidelines-anthropic` β NEW |
+| **Brand Guidelines (Community)** | Community-contributed brand guidelines and templates. | `skills/brand-guidelines-community` |
+| **Canvas Design** | Beautiful static visual design in PDF and PNG. | `skills/canvas-design` |
+| **Claude D3.js** | Advanced data visualization with D3.js. | `skills/claude-d3js-skill` |
+| **Content Creator** | SEO-optimized marketing and brand voice toolkit. | `skills/content-creator` |
+| **Core Components** | Design system tokens and baseline UI patterns. | `skills/core-components` |
+| **Doc Co-authoring** | Structured workflow for technical documentation. | `skills/doc-coauthoring` |
+| **DOCX (Official)** | Official Anthropic MS Word document manipulation. | `skills/docx-official` β NEW |
+| **Ethical Hacking** | Comprehensive penetration testing lifecycle methodology. | `skills/ethical-hacking-methodology` |
+| **Frontend Design** | Production-grade UI component implementation. | `skills/frontend-design` |
+| **Frontend Guidelines** | Modern React/TS development patterns and file structure. | `skills/frontend-dev-guidelines` |
+| **Git Pushing** | Automated staging and conventional commits. | `skills/git-pushing` |
+| **Internal Comms (Anthropic)** | Official Anthropic corporate communication templates. | `skills/internal-comms-anthropic` β NEW |
+| **Internal Comms (Community)** | Community-contributed communication templates. | `skills/internal-comms-community` |
+| **Kaizen** | Continuous improvement and error-proofing (Poka-Yoke). | `skills/kaizen` |
+| **Linux Shell Scripting** | Production-ready shell scripts for automation. | `skills/linux-shell-scripting` |
+| **Loki Mode** | Fully autonomous startup development engine. | `skills/loki-mode` |
+| **MCP Builder** | High-quality Model Context Protocol (MCP) server creation. | `skills/mcp-builder` |
+| **NotebookLM** | Source-grounded querying via Google NotebookLM. | `skills/notebooklm` |
+| **PDF (Official)** | Official Anthropic PDF document manipulation. | `skills/pdf-official` β NEW |
+| **Pentest Checklist** | Structured security assessment planning and scoping. | `skills/pentest-checklist` |
+| **PPTX (Official)** | Official Anthropic PowerPoint manipulation. | `skills/pptx-official` β NEW |
+| **Product Toolkit** | RICE prioritization and product discovery frameworks. | `skills/product-manager-toolkit` |
+| **Prompt Engineering** | Expert patterns for LLM instruction optimization. | `skills/prompt-engineering` |
+| **React Best Practices** | Vercel's 40+ performance optimization rules for React. | `skills/react-best-practices` β NEW (Vercel) |
+| **React UI Patterns** | Standardized loading states and error handling for React. | `skills/react-ui-patterns` |
+| **Senior Architect** | Scalable system design and architecture diagrams. | `skills/senior-architect` |
+| **Skill Creator** | Meta-skill for building high-performance agentic skills. | `skills/skill-creator` |
+| **Software Architecture** | Quality-focused design principles and analysis. | `skills/software-architecture` |
+| **Systematic Debugging** | Root cause analysis and structured fix verification. | `skills/systematic-debugging` |
+| **TDD** | Test-Driven Development workflow and red-green-refactor. | `skills/test-driven-development` |
+| **UI/UX Pro Max** | Advanced design intelligence and 50+ styling options. | `skills/ui-ux-pro-max` |
+| **Web Artifacts** | Complex React/Tailwind/Shadcn UI artifact builder. | `skills/web-artifacts-builder` |
+| **Web Design Guidelines** | Vercel's 100+ UI/UX audit rules (accessibility, performance). | `skills/web-design-guidelines` β NEW (Vercel) |
+| **Webapp Testing** | Local web application testing with Playwright. | `skills/webapp-testing` |
+| **XLSX (Official)** | Official Anthropic Excel spreadsheet manipulation. | `skills/xlsx-official` β NEW |
> [!TIP]
> Use the `validate_skills.py` script in the `scripts/` directory to ensure all skills are properly formatted and ready for use.
@@ -109,7 +117,14 @@ Please ensure your skill follows the Antigravity/Claude Code best practices.
## Credits & Sources
-This collection would not be possible without the incredible work of the Claude Code community:
+This collection would not be possible without the incredible work of the Claude Code community and official sources:
+
+### Official Sources
+
+- **[anthropics/skills](https://github.com/anthropics/skills)**: Official Anthropic skills repository - Document manipulation (DOCX, PDF, PPTX, XLSX), Brand Guidelines, Internal Communications.
+- **[vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills)**: Vercel Labs official skills - React Best Practices, Web Design Guidelines.
+
+### Community Contributors
- **[obra/superpowers](https://github.com/obra/superpowers)**: The original "Superpowers" by Jesse Vincent.
- **[guanyang/antigravity-skills](https://github.com/guanyang/antigravity-skills)**: Core Antigravity extensions.
diff --git a/skills/brand-guidelines/LICENSE.txt b/skills/brand-guidelines-anthropic/LICENSE.txt
similarity index 100%
rename from skills/brand-guidelines/LICENSE.txt
rename to skills/brand-guidelines-anthropic/LICENSE.txt
diff --git a/skills/brand-guidelines/SKILL.md b/skills/brand-guidelines-anthropic/SKILL.md
similarity index 100%
rename from skills/brand-guidelines/SKILL.md
rename to skills/brand-guidelines-anthropic/SKILL.md
diff --git a/skills/internal-comms/LICENSE.txt b/skills/brand-guidelines-community/LICENSE.txt
similarity index 100%
rename from skills/internal-comms/LICENSE.txt
rename to skills/brand-guidelines-community/LICENSE.txt
diff --git a/skills/brand-guidelines-community/SKILL.md b/skills/brand-guidelines-community/SKILL.md
new file mode 100644
index 00000000..47c72c60
--- /dev/null
+++ b/skills/brand-guidelines-community/SKILL.md
@@ -0,0 +1,73 @@
+---
+name: brand-guidelines
+description: Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
+license: Complete terms in LICENSE.txt
+---
+
+# Anthropic Brand Styling
+
+## Overview
+
+To access Anthropic's official brand identity and style resources, use this skill.
+
+**Keywords**: branding, corporate identity, visual identity, post-processing, styling, brand colors, typography, Anthropic brand, visual formatting, visual design
+
+## Brand Guidelines
+
+### Colors
+
+**Main Colors:**
+
+- Dark: `#141413` - Primary text and dark backgrounds
+- Light: `#faf9f5` - Light backgrounds and text on dark
+- Mid Gray: `#b0aea5` - Secondary elements
+- Light Gray: `#e8e6dc` - Subtle backgrounds
+
+**Accent Colors:**
+
+- Orange: `#d97757` - Primary accent
+- Blue: `#6a9bcc` - Secondary accent
+- Green: `#788c5d` - Tertiary accent
+
+### Typography
+
+- **Headings**: Poppins (with Arial fallback)
+- **Body Text**: Lora (with Georgia fallback)
+- **Note**: Fonts should be pre-installed in your environment for best results
+
+## Features
+
+### Smart Font Application
+
+- Applies Poppins font to headings (24pt and larger)
+- Applies Lora font to body text
+- Automatically falls back to Arial/Georgia if custom fonts unavailable
+- Preserves readability across all systems
+
+### Text Styling
+
+- Headings (24pt+): Poppins font
+- Body text: Lora font
+- Smart color selection based on background
+- Preserves text hierarchy and formatting
+
+### Shape and Accent Colors
+
+- Non-text shapes use accent colors
+- Cycles through orange, blue, and green accents
+- Maintains visual interest while staying on-brand
+
+## Technical Details
+
+### Font Management
+
+- Uses system-installed Poppins and Lora fonts when available
+- Provides automatic fallback to Arial (headings) and Georgia (body)
+- No font installation required - works with existing system fonts
+- For best results, pre-install Poppins and Lora fonts in your environment
+
+### Color Application
+
+- Uses RGB color values for precise brand matching
+- Applied via python-pptx's RGBColor class
+- Maintains color fidelity across different systems
diff --git a/skills/docx b/skills/docx
new file mode 120000
index 00000000..e37fbbb8
--- /dev/null
+++ b/skills/docx
@@ -0,0 +1 @@
+docx-official
\ No newline at end of file
diff --git a/skills/docx/LICENSE.txt b/skills/docx-official/LICENSE.txt
similarity index 100%
rename from skills/docx/LICENSE.txt
rename to skills/docx-official/LICENSE.txt
diff --git a/skills/docx/SKILL.md b/skills/docx-official/SKILL.md
similarity index 100%
rename from skills/docx/SKILL.md
rename to skills/docx-official/SKILL.md
diff --git a/skills/docx/docx-js.md b/skills/docx-official/docx-js.md
similarity index 100%
rename from skills/docx/docx-js.md
rename to skills/docx-official/docx-js.md
diff --git a/skills/docx/ooxml.md b/skills/docx-official/ooxml.md
similarity index 100%
rename from skills/docx/ooxml.md
rename to skills/docx-official/ooxml.md
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd
diff --git a/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd b/skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd
rename to skills/docx-official/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd
diff --git a/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd b/skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd
rename to skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd
diff --git a/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd b/skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd
rename to skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd
diff --git a/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd b/skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd
rename to skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd
diff --git a/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd b/skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd
rename to skills/docx-official/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd
diff --git a/skills/docx/ooxml/schemas/mce/mc.xsd b/skills/docx-official/ooxml/schemas/mce/mc.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/mce/mc.xsd
rename to skills/docx-official/ooxml/schemas/mce/mc.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-2010.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-2010.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-2010.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-2012.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-2012.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-2012.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-2018.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-2018.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-2018.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-cex-2018.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-cex-2018.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-cid-2016.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-cid-2016.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd
diff --git a/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd b/skills/docx-official/ooxml/schemas/microsoft/wml-symex-2015.xsd
similarity index 100%
rename from skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd
rename to skills/docx-official/ooxml/schemas/microsoft/wml-symex-2015.xsd
diff --git a/skills/docx/ooxml/scripts/pack.py b/skills/docx-official/ooxml/scripts/pack.py
similarity index 100%
rename from skills/docx/ooxml/scripts/pack.py
rename to skills/docx-official/ooxml/scripts/pack.py
diff --git a/skills/docx/ooxml/scripts/unpack.py b/skills/docx-official/ooxml/scripts/unpack.py
similarity index 100%
rename from skills/docx/ooxml/scripts/unpack.py
rename to skills/docx-official/ooxml/scripts/unpack.py
diff --git a/skills/docx/ooxml/scripts/validate.py b/skills/docx-official/ooxml/scripts/validate.py
similarity index 100%
rename from skills/docx/ooxml/scripts/validate.py
rename to skills/docx-official/ooxml/scripts/validate.py
diff --git a/skills/docx/ooxml/scripts/validation/__init__.py b/skills/docx-official/ooxml/scripts/validation/__init__.py
similarity index 100%
rename from skills/docx/ooxml/scripts/validation/__init__.py
rename to skills/docx-official/ooxml/scripts/validation/__init__.py
diff --git a/skills/docx/ooxml/scripts/validation/base.py b/skills/docx-official/ooxml/scripts/validation/base.py
similarity index 100%
rename from skills/docx/ooxml/scripts/validation/base.py
rename to skills/docx-official/ooxml/scripts/validation/base.py
diff --git a/skills/docx/ooxml/scripts/validation/docx.py b/skills/docx-official/ooxml/scripts/validation/docx.py
similarity index 100%
rename from skills/docx/ooxml/scripts/validation/docx.py
rename to skills/docx-official/ooxml/scripts/validation/docx.py
diff --git a/skills/docx/ooxml/scripts/validation/pptx.py b/skills/docx-official/ooxml/scripts/validation/pptx.py
similarity index 100%
rename from skills/docx/ooxml/scripts/validation/pptx.py
rename to skills/docx-official/ooxml/scripts/validation/pptx.py
diff --git a/skills/docx/ooxml/scripts/validation/redlining.py b/skills/docx-official/ooxml/scripts/validation/redlining.py
similarity index 100%
rename from skills/docx/ooxml/scripts/validation/redlining.py
rename to skills/docx-official/ooxml/scripts/validation/redlining.py
diff --git a/skills/docx/scripts/__init__.py b/skills/docx-official/scripts/__init__.py
similarity index 100%
rename from skills/docx/scripts/__init__.py
rename to skills/docx-official/scripts/__init__.py
diff --git a/skills/docx/scripts/document.py b/skills/docx-official/scripts/document.py
similarity index 100%
rename from skills/docx/scripts/document.py
rename to skills/docx-official/scripts/document.py
diff --git a/skills/docx/scripts/templates/comments.xml b/skills/docx-official/scripts/templates/comments.xml
similarity index 100%
rename from skills/docx/scripts/templates/comments.xml
rename to skills/docx-official/scripts/templates/comments.xml
diff --git a/skills/docx/scripts/templates/commentsExtended.xml b/skills/docx-official/scripts/templates/commentsExtended.xml
similarity index 100%
rename from skills/docx/scripts/templates/commentsExtended.xml
rename to skills/docx-official/scripts/templates/commentsExtended.xml
diff --git a/skills/docx/scripts/templates/commentsExtensible.xml b/skills/docx-official/scripts/templates/commentsExtensible.xml
similarity index 100%
rename from skills/docx/scripts/templates/commentsExtensible.xml
rename to skills/docx-official/scripts/templates/commentsExtensible.xml
diff --git a/skills/docx/scripts/templates/commentsIds.xml b/skills/docx-official/scripts/templates/commentsIds.xml
similarity index 100%
rename from skills/docx/scripts/templates/commentsIds.xml
rename to skills/docx-official/scripts/templates/commentsIds.xml
diff --git a/skills/docx/scripts/templates/people.xml b/skills/docx-official/scripts/templates/people.xml
similarity index 100%
rename from skills/docx/scripts/templates/people.xml
rename to skills/docx-official/scripts/templates/people.xml
diff --git a/skills/docx/scripts/utilities.py b/skills/docx-official/scripts/utilities.py
similarity index 100%
rename from skills/docx/scripts/utilities.py
rename to skills/docx-official/scripts/utilities.py
diff --git a/skills/internal-comms-anthropic/LICENSE.txt b/skills/internal-comms-anthropic/LICENSE.txt
new file mode 100644
index 00000000..7a4a3ea2
--- /dev/null
+++ b/skills/internal-comms-anthropic/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/skills/internal-comms/SKILL.md b/skills/internal-comms-anthropic/SKILL.md
similarity index 100%
rename from skills/internal-comms/SKILL.md
rename to skills/internal-comms-anthropic/SKILL.md
diff --git a/skills/internal-comms-anthropic/examples/3p-updates.md b/skills/internal-comms-anthropic/examples/3p-updates.md
new file mode 100644
index 00000000..5329bfbf
--- /dev/null
+++ b/skills/internal-comms-anthropic/examples/3p-updates.md
@@ -0,0 +1,47 @@
+## Instructions
+You are being asked to write a 3P update. 3P updates stand for "Progress, Plans, Problems." The main audience is for executives, leadership, other teammates, etc. They're meant to be very succinct and to-the-point: think something you can read in 30-60sec or less. They're also for people with some, but not a lot of context on what the team does.
+
+3Ps can cover a team of any size, ranging all the way up to the entire company. The bigger the team, the less granular the tasks should be. For example, "mobile team" might have "shipped feature" or "fixed bugs," whereas the company might have really meaty 3Ps, like "hired 20 new people" or "closed 10 new deals."
+
+They represent the work of the team across a time period, almost always one week. They include three sections:
+1) Progress: what the team has accomplished over the next time period. Focus mainly on things shipped, milestones achieved, tasks created, etc.
+2) Plans: what the team plans to do over the next time period. Focus on what things are top-of-mind, really high priority, etc. for the team.
+3) Problems: anything that is slowing the team down. This could be things like too few people, bugs or blockers that are preventing the team from moving forward, some deal that fell through, etc.
+
+Before writing them, make sure that you know the team name. If it's not specified, you can ask explicitly what the team name you're writing for is.
+
+
+## Tools Available
+Whenever possible, try to pull from available sources to get the information you need:
+- Slack: posts from team members with their updates - ideally look for posts in large channels with lots of reactions
+- Google Drive: docs written from critical team members with lots of views
+- Email: emails with lots of responses of lots of content that seems relevant
+- Calendar: non-recurring meetings that have a lot of importance, like product reviews, etc.
+
+
+Try to gather as much context as you can, focusing on the things that covered the time period you're writing for:
+- Progress: anything between a week ago and today
+- Plans: anything from today to the next week
+- Problems: anything between a week ago and today
+
+
+If you don't have access, you can ask the user for things they want to cover. They might also include these things to you directly, in which case you're mostly just formatting for this particular format.
+
+## Workflow
+
+1. **Clarify scope**: Confirm the team name and time period (usually past week for Progress/Problems, next
+week for Plans)
+2. **Gather information**: Use available tools or ask the user directly
+3. **Draft the update**: Follow the strict formatting guidelines
+4. **Review**: Ensure it's concise (30-60 seconds to read) and data-driven
+
+## Formatting
+
+The format is always the same, very strict formatting. Never use any formatting other than this. Pick an emoji that is fun and captures the vibe of the team and update.
+
+[pick an emoji] [Team Name] (Dates Covered, usually a week)
+Progress: [1-3 sentences of content]
+Plans: [1-3 sentences of content]
+Problems: [1-3 sentences of content]
+
+Each section should be no more than 1-3 sentences: clear, to the point. It should be data-driven, and generally include metrics where possible. The tone should be very matter-of-fact, not super prose-heavy.
\ No newline at end of file
diff --git a/skills/internal-comms-anthropic/examples/company-newsletter.md b/skills/internal-comms-anthropic/examples/company-newsletter.md
new file mode 100644
index 00000000..4997a072
--- /dev/null
+++ b/skills/internal-comms-anthropic/examples/company-newsletter.md
@@ -0,0 +1,65 @@
+## Instructions
+You are being asked to write a company-wide newsletter update. You are meant to summarize the past week/month of a company in the form of a newsletter that the entire company will read. It should be maybe ~20-25 bullet points long. It will be sent via Slack and email, so make it consumable for that.
+
+Ideally it includes the following attributes:
+- Lots of links: pulling documents from Google Drive that are very relevant, linking to prominent Slack messages in announce channels and from executives, perhgaps referencing emails that went company-wide, highlighting significant things that have happened in the company.
+- Short and to-the-point: each bullet should probably be no longer than ~1-2 sentences
+- Use the "we" tense, as you are part of the company. Many of the bullets should say "we did this" or "we did that"
+
+## Tools to use
+If you have access to the following tools, please try to use them. If not, you can also let the user know directly that their responses would be better if they gave them access.
+
+- Slack: look for messages in channels with lots of people, with lots of reactions or lots of responses within the thread
+- Email: look for things from executives that discuss company-wide announcements
+- Calendar: if there were meetings with large attendee lists, particularly things like All-Hands meetings, big company announcements, etc. If there were documents attached to those meetings, those are great links to include.
+- Documents: if there were new docs published in the last week or two that got a lot of attention, you can link them. These should be things like company-wide vision docs, plans for the upcoming quarter or half, things authored by critical executives, etc.
+- External press: if you see references to articles or press we've received over the past week, that could be really cool too.
+
+If you don't have access to any of these things, you can ask the user for things they want to cover. In this case, you'll mostly just be polishing up and fitting to this format more directly.
+
+## Sections
+The company is pretty big: 1000+ people. There are a variety of different teams and initiatives going on across the company. To make sure the update works well, try breaking it into sections of similar things. You might break into clusters like {product development, go to market, finance} or {recruiting, execution, vision}, or {external news, internal news} etc. Try to make sure the different areas of the company are highlighted well.
+
+## Prioritization
+Focus on:
+- Company-wide impact (not team-specific details)
+- Announcements from leadership
+- Major milestones and achievements
+- Information that affects most employees
+- External recognition or press
+
+Avoid:
+- Overly granular team updates (save those for 3Ps)
+- Information only relevant to small groups
+- Duplicate information already communicated
+
+## Example Formats
+
+:megaphone: Company Announcements
+- Announcement 1
+- Announcement 2
+- Announcement 3
+
+:dart: Progress on Priorities
+- Area 1
+ - Sub-area 1
+ - Sub-area 2
+ - Sub-area 3
+- Area 2
+ - Sub-area 1
+ - Sub-area 2
+ - Sub-area 3
+- Area 3
+ - Sub-area 1
+ - Sub-area 2
+ - Sub-area 3
+
+:pillar: Leadership Updates
+- Post 1
+- Post 2
+- Post 3
+
+:thread: Social Updates
+- Update 1
+- Update 2
+- Update 3
diff --git a/skills/internal-comms-anthropic/examples/faq-answers.md b/skills/internal-comms-anthropic/examples/faq-answers.md
new file mode 100644
index 00000000..395262a8
--- /dev/null
+++ b/skills/internal-comms-anthropic/examples/faq-answers.md
@@ -0,0 +1,30 @@
+## Instructions
+You are an assistant for answering questions that are being asked across the company. Every week, there are lots of questions that get asked across the company, and your goal is to try to summarize what those questions are. We want our company to be well-informed and on the same page, so your job is to produce a set of frequently asked questions that our employees are asking and attempt to answer them. Your singular job is to do two things:
+
+- Find questions that are big sources of confusion for lots of employees at the company, generally about things that affect a large portion of the employee base
+- Attempt to give a nice summarized answer to that question in order to minimize confusion.
+
+Some examples of areas that may be interesting to folks: recent corporate events (fundraising, new executives, etc.), upcoming launches, hiring progress, changes to vision or focus, etc.
+
+
+## Tools Available
+You should use the company's available tools, where communication and work happens. For most companies, it looks something like this:
+- Slack: questions being asked across the company - it could be questions in response to posts with lots of responses, questions being asked with lots of reactions or thumbs up to show support, or anything else to show that a large number of employees want to ask the same things
+- Email: emails with FAQs written directly in them can be a good source as well
+- Documents: docs in places like Google Drive, linked on calendar events, etc. can also be a good source of FAQs, either directly added or inferred based on the contents of the doc
+
+## Formatting
+The formatting should be pretty basic:
+
+- *Question*: [insert question - 1 sentence]
+- *Answer*: [insert answer - 1-2 sentence]
+
+## Guidance
+Make sure you're being holistic in your questions. Don't focus too much on just the user in question or the team they are a part of, but try to capture the entire company. Try to be as holistic as you can in reading all the tools available, producing responses that are relevant to all at the company.
+
+## Answer Guidelines
+- Base answers on official company communications when possible
+- If information is uncertain, indicate that clearly
+- Link to authoritative sources (docs, announcements, emails)
+- Keep tone professional but approachable
+- Flag if a question requires executive input or official response
\ No newline at end of file
diff --git a/skills/internal-comms-anthropic/examples/general-comms.md b/skills/internal-comms-anthropic/examples/general-comms.md
new file mode 100644
index 00000000..0ea97701
--- /dev/null
+++ b/skills/internal-comms-anthropic/examples/general-comms.md
@@ -0,0 +1,16 @@
+ ## Instructions
+ You are being asked to write internal company communication that doesn't fit into the standard formats (3P
+ updates, newsletters, or FAQs).
+
+ Before proceeding:
+ 1. Ask the user about their target audience
+ 2. Understand the communication's purpose
+ 3. Clarify the desired tone (formal, casual, urgent, informational)
+ 4. Confirm any specific formatting requirements
+
+ Use these general principles:
+ - Be clear and concise
+ - Use active voice
+ - Put the most important information first
+ - Include relevant links and references
+ - Match the company's communication style
\ No newline at end of file
diff --git a/skills/internal-comms-community/LICENSE.txt b/skills/internal-comms-community/LICENSE.txt
new file mode 100644
index 00000000..7a4a3ea2
--- /dev/null
+++ b/skills/internal-comms-community/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/skills/internal-comms-community/SKILL.md b/skills/internal-comms-community/SKILL.md
new file mode 100644
index 00000000..56ea935b
--- /dev/null
+++ b/skills/internal-comms-community/SKILL.md
@@ -0,0 +1,32 @@
+---
+name: internal-comms
+description: A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
+license: Complete terms in LICENSE.txt
+---
+
+## When to use this skill
+To write internal communications, use this skill for:
+- 3P updates (Progress, Plans, Problems)
+- Company newsletters
+- FAQ responses
+- Status reports
+- Leadership updates
+- Project updates
+- Incident reports
+
+## How to use this skill
+
+To write any internal communication:
+
+1. **Identify the communication type** from the request
+2. **Load the appropriate guideline file** from the `examples/` directory:
+ - `examples/3p-updates.md` - For Progress/Plans/Problems team updates
+ - `examples/company-newsletter.md` - For company-wide newsletters
+ - `examples/faq-answers.md` - For answering frequently asked questions
+ - `examples/general-comms.md` - For anything else that doesn't explicitly match one of the above
+3. **Follow the specific instructions** in that file for formatting, tone, and content gathering
+
+If the communication type doesn't match any existing guideline, ask for clarification or more context about the desired format.
+
+## Keywords
+3P updates, company newsletter, company comms, weekly update, faqs, common questions, updates, internal comms
diff --git a/skills/pdf b/skills/pdf
new file mode 120000
index 00000000..2d61450f
--- /dev/null
+++ b/skills/pdf
@@ -0,0 +1 @@
+pdf-official
\ No newline at end of file
diff --git a/skills/pdf/LICENSE.txt b/skills/pdf-official/LICENSE.txt
similarity index 100%
rename from skills/pdf/LICENSE.txt
rename to skills/pdf-official/LICENSE.txt
diff --git a/skills/pdf/SKILL.md b/skills/pdf-official/SKILL.md
similarity index 100%
rename from skills/pdf/SKILL.md
rename to skills/pdf-official/SKILL.md
diff --git a/skills/pdf/forms.md b/skills/pdf-official/forms.md
similarity index 100%
rename from skills/pdf/forms.md
rename to skills/pdf-official/forms.md
diff --git a/skills/pdf/reference.md b/skills/pdf-official/reference.md
similarity index 100%
rename from skills/pdf/reference.md
rename to skills/pdf-official/reference.md
diff --git a/skills/pdf/scripts/check_bounding_boxes.py b/skills/pdf-official/scripts/check_bounding_boxes.py
similarity index 100%
rename from skills/pdf/scripts/check_bounding_boxes.py
rename to skills/pdf-official/scripts/check_bounding_boxes.py
diff --git a/skills/pdf/scripts/check_bounding_boxes_test.py b/skills/pdf-official/scripts/check_bounding_boxes_test.py
similarity index 100%
rename from skills/pdf/scripts/check_bounding_boxes_test.py
rename to skills/pdf-official/scripts/check_bounding_boxes_test.py
diff --git a/skills/pdf/scripts/check_fillable_fields.py b/skills/pdf-official/scripts/check_fillable_fields.py
similarity index 100%
rename from skills/pdf/scripts/check_fillable_fields.py
rename to skills/pdf-official/scripts/check_fillable_fields.py
diff --git a/skills/pdf/scripts/convert_pdf_to_images.py b/skills/pdf-official/scripts/convert_pdf_to_images.py
similarity index 100%
rename from skills/pdf/scripts/convert_pdf_to_images.py
rename to skills/pdf-official/scripts/convert_pdf_to_images.py
diff --git a/skills/pdf/scripts/create_validation_image.py b/skills/pdf-official/scripts/create_validation_image.py
similarity index 100%
rename from skills/pdf/scripts/create_validation_image.py
rename to skills/pdf-official/scripts/create_validation_image.py
diff --git a/skills/pdf/scripts/extract_form_field_info.py b/skills/pdf-official/scripts/extract_form_field_info.py
similarity index 100%
rename from skills/pdf/scripts/extract_form_field_info.py
rename to skills/pdf-official/scripts/extract_form_field_info.py
diff --git a/skills/pdf/scripts/fill_fillable_fields.py b/skills/pdf-official/scripts/fill_fillable_fields.py
similarity index 100%
rename from skills/pdf/scripts/fill_fillable_fields.py
rename to skills/pdf-official/scripts/fill_fillable_fields.py
diff --git a/skills/pdf/scripts/fill_pdf_form_with_annotations.py b/skills/pdf-official/scripts/fill_pdf_form_with_annotations.py
similarity index 100%
rename from skills/pdf/scripts/fill_pdf_form_with_annotations.py
rename to skills/pdf-official/scripts/fill_pdf_form_with_annotations.py
diff --git a/skills/pptx b/skills/pptx
new file mode 120000
index 00000000..0b80d915
--- /dev/null
+++ b/skills/pptx
@@ -0,0 +1 @@
+pptx-official
\ No newline at end of file
diff --git a/skills/pptx/LICENSE.txt b/skills/pptx-official/LICENSE.txt
similarity index 100%
rename from skills/pptx/LICENSE.txt
rename to skills/pptx-official/LICENSE.txt
diff --git a/skills/pptx/SKILL.md b/skills/pptx-official/SKILL.md
similarity index 100%
rename from skills/pptx/SKILL.md
rename to skills/pptx-official/SKILL.md
diff --git a/skills/pptx/html2pptx.md b/skills/pptx-official/html2pptx.md
similarity index 100%
rename from skills/pptx/html2pptx.md
rename to skills/pptx-official/html2pptx.md
diff --git a/skills/pptx/ooxml.md b/skills/pptx-official/ooxml.md
similarity index 100%
rename from skills/pptx/ooxml.md
rename to skills/pptx-official/ooxml.md
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd
diff --git a/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd b/skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd
rename to skills/pptx-official/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd
diff --git a/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd b/skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd
rename to skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd
diff --git a/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd b/skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd
rename to skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd
diff --git a/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd b/skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd
rename to skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd
diff --git a/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd b/skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd
rename to skills/pptx-official/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd
diff --git a/skills/pptx/ooxml/schemas/mce/mc.xsd b/skills/pptx-official/ooxml/schemas/mce/mc.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/mce/mc.xsd
rename to skills/pptx-official/ooxml/schemas/mce/mc.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-2010.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-2010.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-2012.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-2012.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-2018.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-2018.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-cex-2018.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-cex-2018.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-cid-2016.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-cid-2016.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd
diff --git a/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd b/skills/pptx-official/ooxml/schemas/microsoft/wml-symex-2015.xsd
similarity index 100%
rename from skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd
rename to skills/pptx-official/ooxml/schemas/microsoft/wml-symex-2015.xsd
diff --git a/skills/pptx/ooxml/scripts/pack.py b/skills/pptx-official/ooxml/scripts/pack.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/pack.py
rename to skills/pptx-official/ooxml/scripts/pack.py
diff --git a/skills/pptx/ooxml/scripts/unpack.py b/skills/pptx-official/ooxml/scripts/unpack.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/unpack.py
rename to skills/pptx-official/ooxml/scripts/unpack.py
diff --git a/skills/pptx/ooxml/scripts/validate.py b/skills/pptx-official/ooxml/scripts/validate.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/validate.py
rename to skills/pptx-official/ooxml/scripts/validate.py
diff --git a/skills/pptx/ooxml/scripts/validation/__init__.py b/skills/pptx-official/ooxml/scripts/validation/__init__.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/validation/__init__.py
rename to skills/pptx-official/ooxml/scripts/validation/__init__.py
diff --git a/skills/pptx/ooxml/scripts/validation/base.py b/skills/pptx-official/ooxml/scripts/validation/base.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/validation/base.py
rename to skills/pptx-official/ooxml/scripts/validation/base.py
diff --git a/skills/pptx/ooxml/scripts/validation/docx.py b/skills/pptx-official/ooxml/scripts/validation/docx.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/validation/docx.py
rename to skills/pptx-official/ooxml/scripts/validation/docx.py
diff --git a/skills/pptx/ooxml/scripts/validation/pptx.py b/skills/pptx-official/ooxml/scripts/validation/pptx.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/validation/pptx.py
rename to skills/pptx-official/ooxml/scripts/validation/pptx.py
diff --git a/skills/pptx/ooxml/scripts/validation/redlining.py b/skills/pptx-official/ooxml/scripts/validation/redlining.py
similarity index 100%
rename from skills/pptx/ooxml/scripts/validation/redlining.py
rename to skills/pptx-official/ooxml/scripts/validation/redlining.py
diff --git a/skills/pptx/scripts/html2pptx.js b/skills/pptx-official/scripts/html2pptx.js
similarity index 100%
rename from skills/pptx/scripts/html2pptx.js
rename to skills/pptx-official/scripts/html2pptx.js
diff --git a/skills/pptx/scripts/inventory.py b/skills/pptx-official/scripts/inventory.py
similarity index 100%
rename from skills/pptx/scripts/inventory.py
rename to skills/pptx-official/scripts/inventory.py
diff --git a/skills/pptx/scripts/rearrange.py b/skills/pptx-official/scripts/rearrange.py
similarity index 100%
rename from skills/pptx/scripts/rearrange.py
rename to skills/pptx-official/scripts/rearrange.py
diff --git a/skills/pptx/scripts/replace.py b/skills/pptx-official/scripts/replace.py
similarity index 100%
rename from skills/pptx/scripts/replace.py
rename to skills/pptx-official/scripts/replace.py
diff --git a/skills/pptx/scripts/thumbnail.py b/skills/pptx-official/scripts/thumbnail.py
similarity index 100%
rename from skills/pptx/scripts/thumbnail.py
rename to skills/pptx-official/scripts/thumbnail.py
diff --git a/skills/react-best-practices/AGENTS.md b/skills/react-best-practices/AGENTS.md
new file mode 100644
index 00000000..898afb39
--- /dev/null
+++ b/skills/react-best-practices/AGENTS.md
@@ -0,0 +1,2249 @@
+# React Best Practices
+
+**Version 0.1.0**
+Vercel Engineering
+January 2026
+
+> **Note:**
+> This document is mainly for agents and LLMs to follow when maintaining,
+> generating, or refactoring React and Next.js codebases at Vercel. Humans
+> may also find it useful, but guidance here is optimized for automation
+> and consistency by AI-assisted workflows.
+
+---
+
+## Abstract
+
+Comprehensive performance optimization guide for React and Next.js applications, designed for AI agents and LLMs. Contains 40+ rules across 8 categories, prioritized by impact from critical (eliminating waterfalls, reducing bundle size) to incremental (advanced patterns). Each rule includes detailed explanations, real-world examples comparing incorrect vs. correct implementations, and specific impact metrics to guide automated refactoring and code generation.
+
+---
+
+## Table of Contents
+
+1. [Eliminating Waterfalls](#1-eliminating-waterfalls) β **CRITICAL**
+ - 1.1 [Defer Await Until Needed](#11-defer-await-until-needed)
+ - 1.2 [Dependency-Based Parallelization](#12-dependency-based-parallelization)
+ - 1.3 [Prevent Waterfall Chains in API Routes](#13-prevent-waterfall-chains-in-api-routes)
+ - 1.4 [Promise.all() for Independent Operations](#14-promiseall-for-independent-operations)
+ - 1.5 [Strategic Suspense Boundaries](#15-strategic-suspense-boundaries)
+2. [Bundle Size Optimization](#2-bundle-size-optimization) β **CRITICAL**
+ - 2.1 [Avoid Barrel File Imports](#21-avoid-barrel-file-imports)
+ - 2.2 [Conditional Module Loading](#22-conditional-module-loading)
+ - 2.3 [Defer Non-Critical Third-Party Libraries](#23-defer-non-critical-third-party-libraries)
+ - 2.4 [Dynamic Imports for Heavy Components](#24-dynamic-imports-for-heavy-components)
+ - 2.5 [Preload Based on User Intent](#25-preload-based-on-user-intent)
+3. [Server-Side Performance](#3-server-side-performance) β **HIGH**
+ - 3.1 [Cross-Request LRU Caching](#31-cross-request-lru-caching)
+ - 3.2 [Minimize Serialization at RSC Boundaries](#32-minimize-serialization-at-rsc-boundaries)
+ - 3.3 [Parallel Data Fetching with Component Composition](#33-parallel-data-fetching-with-component-composition)
+ - 3.4 [Per-Request Deduplication with React.cache()](#34-per-request-deduplication-with-reactcache)
+ - 3.5 [Use after() for Non-Blocking Operations](#35-use-after-for-non-blocking-operations)
+4. [Client-Side Data Fetching](#4-client-side-data-fetching) β **MEDIUM-HIGH**
+ - 4.1 [Deduplicate Global Event Listeners](#41-deduplicate-global-event-listeners)
+ - 4.2 [Use SWR for Automatic Deduplication](#42-use-swr-for-automatic-deduplication)
+5. [Re-render Optimization](#5-re-render-optimization) β **MEDIUM**
+ - 5.1 [Defer State Reads to Usage Point](#51-defer-state-reads-to-usage-point)
+ - 5.2 [Extract to Memoized Components](#52-extract-to-memoized-components)
+ - 5.3 [Narrow Effect Dependencies](#53-narrow-effect-dependencies)
+ - 5.4 [Subscribe to Derived State](#54-subscribe-to-derived-state)
+ - 5.5 [Use Functional setState Updates](#55-use-functional-setstate-updates)
+ - 5.6 [Use Lazy State Initialization](#56-use-lazy-state-initialization)
+ - 5.7 [Use Transitions for Non-Urgent Updates](#57-use-transitions-for-non-urgent-updates)
+6. [Rendering Performance](#6-rendering-performance) β **MEDIUM**
+ - 6.1 [Animate SVG Wrapper Instead of SVG Element](#61-animate-svg-wrapper-instead-of-svg-element)
+ - 6.2 [CSS content-visibility for Long Lists](#62-css-content-visibility-for-long-lists)
+ - 6.3 [Hoist Static JSX Elements](#63-hoist-static-jsx-elements)
+ - 6.4 [Optimize SVG Precision](#64-optimize-svg-precision)
+ - 6.5 [Prevent Hydration Mismatch Without Flickering](#65-prevent-hydration-mismatch-without-flickering)
+ - 6.6 [Use Activity Component for Show/Hide](#66-use-activity-component-for-showhide)
+ - 6.7 [Use Explicit Conditional Rendering](#67-use-explicit-conditional-rendering)
+7. [JavaScript Performance](#7-javascript-performance) β **LOW-MEDIUM**
+ - 7.1 [Batch DOM CSS Changes](#71-batch-dom-css-changes)
+ - 7.2 [Build Index Maps for Repeated Lookups](#72-build-index-maps-for-repeated-lookups)
+ - 7.3 [Cache Property Access in Loops](#73-cache-property-access-in-loops)
+ - 7.4 [Cache Repeated Function Calls](#74-cache-repeated-function-calls)
+ - 7.5 [Cache Storage API Calls](#75-cache-storage-api-calls)
+ - 7.6 [Combine Multiple Array Iterations](#76-combine-multiple-array-iterations)
+ - 7.7 [Early Length Check for Array Comparisons](#77-early-length-check-for-array-comparisons)
+ - 7.8 [Early Return from Functions](#78-early-return-from-functions)
+ - 7.9 [Hoist RegExp Creation](#79-hoist-regexp-creation)
+ - 7.10 [Use Loop for Min/Max Instead of Sort](#710-use-loop-for-minmax-instead-of-sort)
+ - 7.11 [Use Set/Map for O(1) Lookups](#711-use-setmap-for-o1-lookups)
+ - 7.12 [Use toSorted() Instead of sort() for Immutability](#712-use-tosorted-instead-of-sort-for-immutability)
+8. [Advanced Patterns](#8-advanced-patterns) β **LOW**
+ - 8.1 [Store Event Handlers in Refs](#81-store-event-handlers-in-refs)
+ - 8.2 [useLatest for Stable Callback Refs](#82-uselatest-for-stable-callback-refs)
+
+---
+
+## 1. Eliminating Waterfalls
+
+**Impact: CRITICAL**
+
+Waterfalls are the #1 performance killer. Each sequential await adds full network latency. Eliminating them yields the largest gains.
+
+### 1.1 Defer Await Until Needed
+
+**Impact: HIGH (avoids blocking unused code paths)**
+
+Move `await` operations into the branches where they're actually used to avoid blocking code paths that don't need them.
+
+**Incorrect: blocks both branches**
+
+```typescript
+async function handleRequest(userId: string, skipProcessing: boolean) {
+ const userData = await fetchUserData(userId)
+
+ if (skipProcessing) {
+ // Returns immediately but still waited for userData
+ return { skipped: true }
+ }
+
+ // Only this branch uses userData
+ return processUserData(userData)
+}
+```
+
+**Correct: only blocks when needed**
+
+```typescript
+async function handleRequest(userId: string, skipProcessing: boolean) {
+ if (skipProcessing) {
+ // Returns immediately without waiting
+ return { skipped: true }
+ }
+
+ // Fetch only when needed
+ const userData = await fetchUserData(userId)
+ return processUserData(userData)
+}
+```
+
+**Another example: early return optimization**
+
+```typescript
+// Incorrect: always fetches permissions
+async function updateResource(resourceId: string, userId: string) {
+ const permissions = await fetchPermissions(userId)
+ const resource = await getResource(resourceId)
+
+ if (!resource) {
+ return { error: 'Not found' }
+ }
+
+ if (!permissions.canEdit) {
+ return { error: 'Forbidden' }
+ }
+
+ return await updateResourceData(resource, permissions)
+}
+
+// Correct: fetches only when needed
+async function updateResource(resourceId: string, userId: string) {
+ const resource = await getResource(resourceId)
+
+ if (!resource) {
+ return { error: 'Not found' }
+ }
+
+ const permissions = await fetchPermissions(userId)
+
+ if (!permissions.canEdit) {
+ return { error: 'Forbidden' }
+ }
+
+ return await updateResourceData(resource, permissions)
+}
+```
+
+This optimization is especially valuable when the skipped branch is frequently taken, or when the deferred operation is expensive.
+
+### 1.2 Dependency-Based Parallelization
+
+**Impact: CRITICAL (2-10Γ improvement)**
+
+For operations with partial dependencies, use `better-all` to maximize parallelism. It automatically starts each task at the earliest possible moment.
+
+**Incorrect: profile waits for config unnecessarily**
+
+```typescript
+const [user, config] = await Promise.all([
+ fetchUser(),
+ fetchConfig()
+])
+const profile = await fetchProfile(user.id)
+```
+
+**Correct: config and profile run in parallel**
+
+```typescript
+import { all } from 'better-all'
+
+const { user, config, profile } = await all({
+ async user() { return fetchUser() },
+ async config() { return fetchConfig() },
+ async profile() {
+ return fetchProfile((await this.$.user).id)
+ }
+})
+```
+
+Reference: [https://github.com/shuding/better-all](https://github.com/shuding/better-all)
+
+### 1.3 Prevent Waterfall Chains in API Routes
+
+**Impact: CRITICAL (2-10Γ improvement)**
+
+In API routes and Server Actions, start independent operations immediately, even if you don't await them yet.
+
+**Incorrect: config waits for auth, data waits for both**
+
+```typescript
+export async function GET(request: Request) {
+ const session = await auth()
+ const config = await fetchConfig()
+ const data = await fetchData(session.user.id)
+ return Response.json({ data, config })
+}
+```
+
+**Correct: auth and config start immediately**
+
+```typescript
+export async function GET(request: Request) {
+ const sessionPromise = auth()
+ const configPromise = fetchConfig()
+ const session = await sessionPromise
+ const [config, data] = await Promise.all([
+ configPromise,
+ fetchData(session.user.id)
+ ])
+ return Response.json({ data, config })
+}
+```
+
+For operations with more complex dependency chains, use `better-all` to automatically maximize parallelism (see Dependency-Based Parallelization).
+
+### 1.4 Promise.all() for Independent Operations
+
+**Impact: CRITICAL (2-10Γ improvement)**
+
+When async operations have no interdependencies, execute them concurrently using `Promise.all()`.
+
+**Incorrect: sequential execution, 3 round trips**
+
+```typescript
+const user = await fetchUser()
+const posts = await fetchPosts()
+const comments = await fetchComments()
+```
+
+**Correct: parallel execution, 1 round trip**
+
+```typescript
+const [user, posts, comments] = await Promise.all([
+ fetchUser(),
+ fetchPosts(),
+ fetchComments()
+])
+```
+
+### 1.5 Strategic Suspense Boundaries
+
+**Impact: HIGH (faster initial paint)**
+
+Instead of awaiting data in async components before returning JSX, use Suspense boundaries to show the wrapper UI faster while data loads.
+
+**Incorrect: wrapper blocked by data fetching**
+
+```tsx
+async function Page() {
+ const data = await fetchData() // Blocks entire page
+
+ return (
+
+
Sidebar
+
Header
+
+
+
+
Footer
+
+ )
+}
+```
+
+The entire layout waits for data even though only the middle section needs it.
+
+**Correct: wrapper shows immediately, data streams in**
+
+```tsx
+function Page() {
+ return (
+
+
Sidebar
+
Header
+
+ }>
+
+
+
+
Footer
+
+ )
+}
+
+async function DataDisplay() {
+ const data = await fetchData() // Only blocks this component
+ return
{data.content}
+}
+```
+
+Sidebar, Header, and Footer render immediately. Only DataDisplay waits for data.
+
+**Alternative: share promise across components**
+
+```tsx
+function Page() {
+ // Start fetch immediately, but don't await
+ const dataPromise = fetchData()
+
+ return (
+
+}
+
+function DataSummary({ dataPromise }: { dataPromise: Promise }) {
+ const data = use(dataPromise) // Reuses the same promise
+ return
{data.summary}
+}
+```
+
+Both components share the same promise, so only one fetch occurs. Layout renders immediately while both components wait together.
+
+**When NOT to use this pattern:**
+
+- Critical data needed for layout decisions (affects positioning)
+
+- SEO-critical content above the fold
+
+- Small, fast queries where suspense overhead isn't worth it
+
+- When you want to avoid layout shift (loading β content jump)
+
+**Trade-off:** Faster initial paint vs potential layout shift. Choose based on your UX priorities.
+
+---
+
+## 2. Bundle Size Optimization
+
+**Impact: CRITICAL**
+
+Reducing initial bundle size improves Time to Interactive and Largest Contentful Paint.
+
+### 2.1 Avoid Barrel File Imports
+
+**Impact: CRITICAL (200-800ms import cost, slow builds)**
+
+Import directly from source files instead of barrel files to avoid loading thousands of unused modules. **Barrel files** are entry points that re-export multiple modules (e.g., `index.js` that does `export * from './module'`).
+
+Popular icon and component libraries can have **up to 10,000 re-exports** in their entry file. For many React packages, **it takes 200-800ms just to import them**, affecting both development speed and production cold starts.
+
+**Why tree-shaking doesn't help:** When a library is marked as external (not bundled), the bundler can't optimize it. If you bundle it to enable tree-shaking, builds become substantially slower analyzing the entire module graph.
+
+**Incorrect: imports entire library**
+
+```tsx
+import { Check, X, Menu } from 'lucide-react'
+// Loads 1,583 modules, takes ~2.8s extra in dev
+// Runtime cost: 200-800ms on every cold start
+
+import { Button, TextField } from '@mui/material'
+// Loads 2,225 modules, takes ~4.2s extra in dev
+```
+
+**Correct: imports only what you need**
+
+```tsx
+import Check from 'lucide-react/dist/esm/icons/check'
+import X from 'lucide-react/dist/esm/icons/x'
+import Menu from 'lucide-react/dist/esm/icons/menu'
+// Loads only 3 modules (~2KB vs ~1MB)
+
+import Button from '@mui/material/Button'
+import TextField from '@mui/material/TextField'
+// Loads only what you use
+```
+
+**Alternative: Next.js 13.5+**
+
+```js
+// next.config.js - use optimizePackageImports
+module.exports = {
+ experimental: {
+ optimizePackageImports: ['lucide-react', '@mui/material']
+ }
+}
+
+// Then you can keep the ergonomic barrel imports:
+import { Check, X, Menu } from 'lucide-react'
+// Automatically transformed to direct imports at build time
+```
+
+Direct imports provide 15-70% faster dev boot, 28% faster builds, 40% faster cold starts, and significantly faster HMR.
+
+Libraries commonly affected: `lucide-react`, `@mui/material`, `@mui/icons-material`, `@tabler/icons-react`, `react-icons`, `@headlessui/react`, `@radix-ui/react-*`, `lodash`, `ramda`, `date-fns`, `rxjs`, `react-use`.
+
+Reference: [https://vercel.com/blog/how-we-optimized-package-imports-in-next-js](https://vercel.com/blog/how-we-optimized-package-imports-in-next-js)
+
+### 2.2 Conditional Module Loading
+
+**Impact: HIGH (loads large data only when needed)**
+
+Load large data or modules only when a feature is activated.
+
+**Example: lazy-load animation frames**
+
+```tsx
+function AnimationPlayer({ enabled }: { enabled: boolean }) {
+ const [frames, setFrames] = useState(null)
+
+ useEffect(() => {
+ if (enabled && !frames && typeof window !== 'undefined') {
+ import('./animation-frames.js')
+ .then(mod => setFrames(mod.frames))
+ .catch(() => setEnabled(false))
+ }
+ }, [enabled, frames])
+
+ if (!frames) return
+ return
+}
+```
+
+The `typeof window !== 'undefined'` check prevents bundling this module for SSR, optimizing server bundle size and build speed.
+
+### 2.3 Defer Non-Critical Third-Party Libraries
+
+**Impact: MEDIUM (loads after hydration)**
+
+Analytics, logging, and error tracking don't block user interaction. Load them after hydration.
+
+**Incorrect: blocks initial bundle**
+
+```tsx
+import { Analytics } from '@vercel/analytics/react'
+
+export default function RootLayout({ children }) {
+ return (
+
+
+ {children}
+
+
+
+ )
+}
+```
+
+**Correct: loads after hydration**
+
+```tsx
+import dynamic from 'next/dynamic'
+
+const Analytics = dynamic(
+ () => import('@vercel/analytics/react').then(m => m.Analytics),
+ { ssr: false }
+)
+
+export default function RootLayout({ children }) {
+ return (
+
+
+ {children}
+
+
+
+ )
+}
+```
+
+### 2.4 Dynamic Imports for Heavy Components
+
+**Impact: CRITICAL (directly affects TTI and LCP)**
+
+Use `next/dynamic` to lazy-load large components not needed on initial render.
+
+**Incorrect: Monaco bundles with main chunk ~300KB**
+
+```tsx
+import { MonacoEditor } from './monaco-editor'
+
+function CodePanel({ code }: { code: string }) {
+ return
+}
+```
+
+**Correct: Monaco loads on demand**
+
+```tsx
+import dynamic from 'next/dynamic'
+
+const MonacoEditor = dynamic(
+ () => import('./monaco-editor').then(m => m.MonacoEditor),
+ { ssr: false }
+)
+
+function CodePanel({ code }: { code: string }) {
+ return
+}
+```
+
+### 2.5 Preload Based on User Intent
+
+**Impact: MEDIUM (reduces perceived latency)**
+
+Preload heavy bundles before they're needed to reduce perceived latency.
+
+**Example: preload on hover/focus**
+
+```tsx
+function EditorButton({ onClick }: { onClick: () => void }) {
+ const preload = () => {
+ if (typeof window !== 'undefined') {
+ void import('./monaco-editor')
+ }
+ }
+
+ return (
+
+ )
+}
+```
+
+**Example: preload when feature flag is enabled**
+
+```tsx
+function FlagsProvider({ children, flags }: Props) {
+ useEffect(() => {
+ if (flags.editorEnabled && typeof window !== 'undefined') {
+ void import('./monaco-editor').then(mod => mod.init())
+ }
+ }, [flags.editorEnabled])
+
+ return
+ {children}
+
+}
+```
+
+The `typeof window !== 'undefined'` check prevents bundling preloaded modules for SSR, optimizing server bundle size and build speed.
+
+---
+
+## 3. Server-Side Performance
+
+**Impact: HIGH**
+
+Optimizing server-side rendering and data fetching eliminates server-side waterfalls and reduces response times.
+
+### 3.1 Cross-Request LRU Caching
+
+**Impact: HIGH (caches across requests)**
+
+`React.cache()` only works within one request. For data shared across sequential requests (user clicks button A then button B), use an LRU cache.
+
+**Implementation:**
+
+```typescript
+import { LRUCache } from 'lru-cache'
+
+const cache = new LRUCache({
+ max: 1000,
+ ttl: 5 * 60 * 1000 // 5 minutes
+})
+
+export async function getUser(id: string) {
+ const cached = cache.get(id)
+ if (cached) return cached
+
+ const user = await db.user.findUnique({ where: { id } })
+ cache.set(id, user)
+ return user
+}
+
+// Request 1: DB query, result cached
+// Request 2: cache hit, no DB query
+```
+
+Use when sequential user actions hit multiple endpoints needing the same data within seconds.
+
+**With Vercel's [Fluid Compute](https://vercel.com/docs/fluid-compute):** LRU caching is especially effective because multiple concurrent requests can share the same function instance and cache. This means the cache persists across requests without needing external storage like Redis.
+
+**In traditional serverless:** Each invocation runs in isolation, so consider Redis for cross-process caching.
+
+Reference: [https://github.com/isaacs/node-lru-cache](https://github.com/isaacs/node-lru-cache)
+
+### 3.2 Minimize Serialization at RSC Boundaries
+
+**Impact: HIGH (reduces data transfer size)**
+
+The React Server/Client boundary serializes all object properties into strings and embeds them in the HTML response and subsequent RSC requests. This serialized data directly impacts page weight and load time, so **size matters a lot**. Only pass fields that the client actually uses.
+
+**Incorrect: serializes all 50 fields**
+
+```tsx
+async function Page() {
+ const user = await fetchUser() // 50 fields
+ return
+}
+
+'use client'
+function Profile({ user }: { user: User }) {
+ return
{user.name}
// uses 1 field
+}
+```
+
+**Correct: serializes only 1 field**
+
+```tsx
+async function Page() {
+ const user = await fetchUser()
+ return
+}
+
+'use client'
+function Profile({ name }: { name: string }) {
+ return
{name}
+}
+```
+
+### 3.3 Parallel Data Fetching with Component Composition
+
+**Impact: CRITICAL (eliminates server-side waterfalls)**
+
+React Server Components execute sequentially within a tree. Restructure with composition to parallelize data fetching.
+
+**Incorrect: Sidebar waits for Page's fetch to complete**
+
+```tsx
+export default async function Page() {
+ const header = await fetchHeader()
+ return (
+
+
{header}
+
+
+ )
+}
+
+async function Sidebar() {
+ const items = await fetchSidebarItems()
+ return
+}
+```
+
+**Correct: both fetch simultaneously**
+
+```tsx
+async function Header() {
+ const data = await fetchHeader()
+ return