moon-proto-monorepo

Enforce canonical moon v2 and proto configuration patterns in polyglot monorepos.

Updated May 5, 2026
One-click install
npx skills add https://github.com/trypanic/skills --skill moon-proto-monorepo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: moon-proto-monorepo
Source: https://github.com/trypanic/skills/tree/main/moon-proto-monorepo
Command: npx skills add https://github.com/trypanic/skills --skill moon-proto-monorepo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires bash, awk, find, grep, sed, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Managing build tooling configuration for polyglot monorepos using moon v2 and proto is error-prone: scattered config files, inconsistent v1/v2 key usage, incorrect project discovery globs, and unpinned tool versions lead to broken builds, unreproducible CI, and wasted debugging time.

Core Features & Use Cases

  • Canonical config enforcement: Implements the single correct pattern for moon v2 + proto setup, including single-source tool version pinning in .prototools, v2-only config keys, and closed-set enum values for language, layer, and stack.
  • Drift detection and correction: Identifies and fixes common misconfigurations like dead project globs, undiscovered projects, invalid toolchains.default values, v1 key usage, and un-pinned tools in task definitions.
  • Task routing and guidance: Provides clear decision flows for common operations including adding new projects, defining shared tasks with proper inheritance, pinning tool versions, enabling caching, and setting up CI.
  • Built-in validation: Includes a read-only audit script that checks config against all skill rules and outputs a structured report of violations and fixes.
  • Use case example: When adding a new Python codegen tool to your monorepo, this skill ensures the tool is pinned in .prototools, enabled in .moon/toolchains.yml, the codegen task declares proper inputs/outputs for caching, and the project's moon.yml uses valid v2 keys and metadata.

Quick Start

Use the moon-proto-monorepo skill to audit your existing .moon and .prototools config for drift, or to add a new moon task, project, or toolchain version to your monorepo following canonical best practices.

Frequently Asked Questions about moon-proto-monorepo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent config drift in a moon v2 and proto monorepo?

You can prevent config drift by enforcing canonical configuration patterns across .moon/workspace.yml, .moon/toolchains.yml, and .prototools files. This approach standardizes v2-only keys, validates task inheritance, and pins tool versions to ensure reproducible monorepo builds.

Why are my moon v2 projects not being discovered correctly?

Projects may fail discovery due to dead project globs or invalid toolchains.default values in .moon/workspace.yml. Running a read-only audit against canonical patterns identifies these misconfigurations and corrects the project graph discovery rules.

How do I pin tool versions for a polyglot monorepo using proto?

To pin tool versions using proto, define all toolchain versions in a single .prototools file at the repository root. This establishes a single-source for version management, preventing unreproducible CI builds caused by unpinned tools in task definitions.

How do I set up task inheritance and caching in moon v2?

You set up task inheritance and caching by defining shared tasks in .moon/tasks/** and declaring explicit inputs and outputs in project moon.yml files. Following validated v2-only caching rules ensures correct build execution and dependency tracking across the monorepo.

Can I use v1 configuration keys with moon v2?

You cannot use v1 configuration keys with moon v2 because the canonical setup requires strict v2-only config key compliance. Using v1 keys leads to broken builds and invalid configuration, requiring migration to v2 keys with closed-set enum values for language, layer, and stack.

Does moon v2 work with proto for managing toolchains in a polyglot monorepo?

Moon v2 works with proto to manage toolchains in a polyglot monorepo by integrating .moon/toolchains.yml with .prototools. This combination enables single-source tool version management and reproducible builds, provided you follow canonical config patterns and pin all tools.