developer-internals

Documents gh-aw compiler internals covering validation architecture, safe outputs, schemas, and YAML parsing.

5.1k|530|Updated Aug 12, 2025
One-click install
npx skills add https://github.com/github/gh-aw --skill developer-internals
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: developer-internals
Source: https://github.com/github/gh-aw/tree/main/.github/skills/developer-internals
Command: npx skills add https://github.com/github/gh-aw --skill developer-internals

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers working on the gh-aw compiler internals lack a single reference explaining how the validation system, safe output messaging, JSON schema validation, YAML parsing behavior, and MCP logs guardrail are designed and where to add new logic.

Core Features & Use Cases

  • Validation Architecture Guide: Maps centralized validation in validation.go versus domain-specific validators (strict mode, pip, npm, expression safety) with a decision tree for placing new checks.
  • Safe Output Message Patterns: Documents consistent formatting for AI attribution footers, staged mode previews, patch previews, and installation instructions across GitHub API write operations.
  • Schema and YAML Compatibility Notes: Explains strict JSON schema validation with additionalProperties disabled and the YAML 1.1 versus 1.2 boolean parsing issue affecting the on: trigger key.
  • Use Case: When adding a new strict-mode permission check, consult this reference to decide whether the validator belongs in strict_mode_validation.go or a new domain file, then follow the allowlist validation pattern shown.

Quick Start

Ask the agent to explain where to add a new validation rule in the gh-aw compiler and which existing validation pattern to follow.

Frequently Asked Questions about developer-internals

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

FAQPage Schema
How do I add a new validation rule to the gh-aw compiler?

Add cross-cutting checks to pkg/workflow/validation.go and domain-specific checks to dedicated files like strict_mode_validation.go, pip.go, or npm.go. Use the documented decision tree: security or strict-mode rules go in strict mode files, single-domain rules go in domain files.

Why does Python yaml.safe_load fail on GitHub Actions workflow files?

Python's yaml.safe_load uses YAML 1.1, which parses the key on: as boolean True instead of a string, causing false positives. gh-aw uses goccy/go-yaml, a YAML 1.2 parser that correctly treats on as a string key.

How does gh-aw prevent typos in workflow frontmatter fields?

The JSON schemas set additionalProperties to false at the root level, so unknown fields like permisions or engnie are rejected with an error listing valid field names. Schemas are embedded in the Go binary via go:embed directives.

What happens when MCP logs output exceeds the token limit?

When output exceeds the default 12000 token limit, the logs command returns a guardrail message with the schema description and suggested jq queries instead of full data. You can adjust the limit with the max_tokens parameter or filter with the jq parameter.

How are AI-generated GitHub issues and comments formatted in gh-aw?

Safe output functions apply consistent message patterns: an AI attribution blockquote footer linking to the workflow run, installation instructions, staged mode previews marked with the 🎭 emoji, and patch previews truncated at 500 lines or 2000 characters.