semaphore-config-schema

Generate config.schema.yaml from Go type definitions in util.

14.0k|1.3k|Updated Aug 23, 2014
One-click install
npx skills add https://github.com/semaphoreui/semaphore --skill semaphore-config-schema
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: semaphore-config-schema
Source: https://github.com/semaphoreui/semaphore/tree/main/.claude/skills/semaphore-config-schema
Command: npx skills add https://github.com/semaphoreui/semaphore --skill semaphore-config-schema

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Semaphore config schema is the single source of truth for config.json/yaml validation and IDE support, ensuring correct configuration and tooling compatibility.

Core Features & Use Cases

  • Automatically derive config.schema.yaml from the Go types in util, so changes to ConfigType propagate to the schema.
  • Ensure default values, patterns, and nested structures are reflected in the generated schema for accurate validation.
  • Use when updating the schema after adding fields, tags, or new nested types to keep config validation in sync.

Quick Start

Run the schema generator to update config.schema.yaml after any change to the ConfigType or related config structs.

Frequently Asked Questions about semaphore-config-schema

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

FAQPage Schema
How do I generate a YAML config schema from Go type definitions?

Update your YAML config schema by regenerating it from Go type definitions whenever ConfigType fields, nested types, or json, default, rule, and env tags are modified in the util directory.

When do I need to regenerate the config.schema.yaml file for Semaphore?

Regenerate the config.schema.yaml file whenever you add new fields, introduce nested types, or modify json, default, rule, or env tags in the Go configuration structs.

Does the schema generator modify my runtime config files?

No, the schema generator does not modify runtime config files; it strictly outputs the derived YAML schema in the project root to ensure validation and IDE support remain accurate.

How does deriving the schema from Go structs keep config validation in sync?

Deriving the schema from Go structs keeps config validation in sync by automatically propagating changes from ConfigType definitions to config.schema.yaml, maintaining a single source of truth for configuration rules.

What is the best way to maintain default values and patterns in a YAML schema?

Maintain default values and patterns in a YAML schema by deriving them directly from Go struct tags, ensuring the generated config.schema.yaml accurately reflects the underlying code constraints for validation.