Project Principles

Codify vm0 architectural and code-quality principles for reviews and onboarding.

1.1k|68|Updated Nov 14, 2025
One-click install
npx skills add https://github.com/vm0-ai/vm0 --skill project-principles
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Project Principles
Source: https://github.com/vm0-ai/vm0/tree/main/.claude/skills/project-principles
Command: npx skills add https://github.com/vm0-ai/vm0 --skill project-principles

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill codifies VM0's essential coding standards and architectural principles to keep the codebase simple, reliable, and maintainable across projects.

Core Features & Use Cases

  • Enforces YAGNI: Avoid unnecessary features and abstractions; encourages simple, verifiable implementations.
  • Avoid Defensive Programming: Promote letting errors bubble up and rely on runtime/framework error handling.
  • Strict Type Checking: Enforce strong typing, no use of any, explicit types, and rigorous data structure definitions.
  • Zero Tolerance for Lint Violations: Mandate linted, clean code with strict adherence to rules.
  • Use Case: Teams onboarding VM0 can align on a shared set of practices to reduce bugs and speed up development.

Quick Start

Apply VM0's Project Principles to a new feature to verify YAGNI, avoid defensive coding, enforce strict typing, and lint compliance.

Frequently Asked Questions about Project Principles

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

FAQPage Schema
How does YAGNI help avoid unnecessary abstractions and improve code quality?

YAGNI keeps code quality high by preventing unnecessary features and abstractions, encouraging simple, verifiable implementations that reduce bugs and speed up development across the repository.

Why should I avoid defensive programming in my codebase?

Avoiding defensive programming lets errors bubble up naturally, relying on runtime and framework error handling instead of wrapping code in redundant checks that obscure failures and complicate maintenance.

How do I enforce strict typing and eliminate implicit any types in my project?

Enforce strict typing by mandating explicit types, prohibiting the use of any, and requiring rigorous data structure definitions throughout the codebase to catch type errors early.

What is the best way to achieve zero tolerance for lint violations in a repository?

Achieve zero tolerance for lint violations by mandating clean, linted code with strict adherence to configured rules, ensuring all contributions pass lint checks before merging.

Do I need YAML frontmatter with name and description in SKILL.md for onboarding?

Yes, SKILL.md requires YAML frontmatter with name and description fields to drive discovery, safety checks, and standard onboarding for new features and refactors.

When should I not use defensive coding during a refactor?

Avoid defensive coding during refactors when you want underlying errors to surface immediately, allowing the runtime or framework error handling to manage failures transparently without masking issues.