GitHub Agentic Workflows

aw.yml repository package manifest specification

aw.yml Repository Package Manifest Specification

Section titled “aw.yml Repository Package Manifest Specification”

Version: 0.1.0
Status: Draft

This specification defines the aw.yml repository package manifest format used by gh aw to identify, validate, and install repository packages.

The aw.yml manifest describes an installable Agentic Workflow package located either at a repository root or within a nested package folder.

Package references use one of these forms:

  • owner/repo
  • owner/repo/path/to/package

The package root is the directory containing aw.yml.

The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are to be interpreted as described in RFC 2119.

The canonical manifest filename is aw.yml.

The manifest document MUST be a YAML mapping. Unknown top-level fields MUST be rejected.

FieldTypeRequiredMeaning
manifest-versionstringNoManifest format version. Defaults to "1".
min-versionstringNoMinimum supported gh-aw version.
namestringYesHuman-readable package name.
descriptionstringNoHuman-readable package description.
filesarray of stringsNoExplicit installable workflow file list.

If omitted, manifest-version defaults to "1".

For this version of the format, the only valid value is "1".

If present, min-version MUST use the exact vMAJOR.minor.patch form, such as:

  • v1.2.3

If the running compiler version is lower than min-version, validation MUST fail.

name MUST be present and MUST be a non-empty string after trimming surrounding whitespace.

If present, description MUST be a string.

Implementations SHOULD warn if description exceeds 255 characters.

If present, files MUST be an array of strings.

Each entry:

  • MUST be resolved relative to the package root;
  • MUST end in .md; and
  • MUST begin with either workflows/ or .github/workflows/.

Duplicate entries SHOULD be ignored after normalization.

Supported installable paths are:

  • workflows/<name>.md
  • .github/workflows/<name>.md

Nested descendants under those directories are also valid when referenced explicitly in files.

If files is present, valid entries are used as the installable workflow set. Invalid entries MUST be ignored with a warning.

If files is omitted, or if no valid entries remain after filtering, the implementation MUST attempt discovery under:

  • workflows/
  • .github/workflows/

If no installable workflow markdown files are resolved, package validation MUST fail.

Package documentation is README.md in the package root.

Examples:

  • Repository-root package: README.md
  • Nested package: path/to/package/README.md

If README.md is absent, package validation MUST fail.

Validation MUST fail for at least the following conditions:

  • manifest file not found at the resolved package root;
  • malformed YAML;
  • top-level document is not a mapping;
  • missing or empty name;
  • unsupported manifest-version;
  • invalid min-version;
  • current compiler version is lower than min-version;
  • unknown top-level fields, including docs; or
  • missing required README.md; or
  • no installable workflow files resolved.

Implementations SHOULD emit warnings for at least the following conditions:

  • a files entry is ignored because it is not a supported installable path; or
  • description exceeds 255 characters.

When gh aw compile encounters a repository-root aw.yml, it validates that manifest before compiling workflows.

A conforming compiler:

  • MUST parse and validate the manifest according to this specification;
  • MUST fail compilation on manifest errors;
  • SHOULD surface warnings as manifest_warning; and
  • SHOULD surface errors as manifest_error.

If JSON output is requested, manifest validation failure still causes an overall compilation failure result.

min-version: v0.38.0
name: Repo Assist
description: Friendly repository automation for review and issue triage
files:
- workflows/review.md
- .github/workflows/nightly-review.md

Package reference:

owner/repo/packages/repo-assist

Manifest location:

packages/repo-assist/aw.yml

Manifest:

name: Repo Assist
files:
- workflows/review.md

Documentation file:

packages/repo-assist/README.md