Skip to content

gh aw upgrade and gh aw init fail when .github/aw exists but contains no markdown files #36485

@sg650

Description

@sg650

Summary

gh aw upgrade fails while updating the dispatcher skill if an existing repository has a .github/aw directory but that directory contains no markdown files.

This blocks upgrading an existing gh-aw-enabled repository whose workflow sources live under .github/workflows/*.md, but whose .github/aw/ directory contains only non-documentation artifacts such as actions-lock.json and/or logs/.

The same dispatcher-skill builder issue also affects gh aw init in the same filesystem state.

Version

gh version 2.93.0 (2026-05-27)
gh aw version v0.77.5

Minimal reproduction: existing repo upgrade

tmpdir=$(mktemp -d /tmp/gh-aw-upgrade-empty-aw-repro.XXXXXX)
cd "$tmpdir"
git init --quiet
mkdir -p .github/aw/logs .github/workflows
touch .github/aw/actions-lock.json
cat > .github/workflows/example.md <<'EOF'
---
name: Example Agentic Workflow
on:
  workflow_dispatch:
permissions:
  contents: read
  actions: read
engine: copilot
strict: true
timeout-minutes: 5
---

Say hello.
EOF

gh aw upgrade -v

Actual behavior for gh aw upgrade

ℹ Checking gh-aw extension version...
✓ gh-aw extension is up to date
ℹ Updating dispatcher skill...
✗ failed to update dispatcher skill
  failed to update dispatcher skill
  failed to build dispatcher skill
  no markdown files found in /tmp/gh-aw-upgrade-empty-aw-repro.eqm7PG/.github/aw - ensure .github/aw contains workflow documentation files

Exit code: 1

The command fails before applying codemods, updating action versions, or compiling the existing .github/workflows/*.md files.

Minimal reproduction: init-only variant

tmpdir=$(mktemp -d /tmp/gh-aw-empty-aw-repro.XXXXXX)
cd "$tmpdir"
git init --quiet
mkdir -p .github/aw/logs
touch .github/aw/actions-lock.json
gh aw init -v

Actual behavior for gh aw init

🚀 Welcome to GitHub Agentic Workflows!

This tool will initialize your repository for GitHub Agentic Workflows.

ℹ Setting up repository...

✓ Configured .gitattributes
✗ failed to write dispatcher skill
  failed to build dispatcher skill
  no markdown files found in /tmp/gh-aw-empty-aw-repro.fBYzHq/.github/aw - ensure .github/aw contains workflow documentation files

Exit code: 1

Expected behavior

gh aw upgrade should be able to upgrade an existing repository in this state, or provide a recovery path that does not require manually discovering/restoring upstream .github/aw/*.md documentation files.

Possible acceptable behaviors:

  • build the dispatcher skill from packaged/embedded gh-aw docs when local .github/aw/*.md files are absent
  • seed the required .github/aw/*.md files during upgrade/init
  • ignore .github/aw if it exists but contains only non-documentation artifacts
  • emit an actionable message explaining exactly which command should repair the missing docs

Additional notes

Deleting .github/aw/actions-lock.json does not change the failure if .github/aw/ still exists without markdown files. The issue appears keyed to the presence of .github/aw with no *.md files, not to the lock file specifically.

A fresh repository with no pre-existing .github/aw directory can run gh aw init successfully and generates:

.gitattributes
.github/agents/agentic-workflows.md
.github/skills/agentic-workflows/SKILL.md
.github/workflows/copilot-setup-steps.yml
.github/mcp.json
.vscode/settings.json

But both gh aw upgrade and gh aw init fail before creating/updating the dispatcher skill once an empty/non-markdown .github/aw directory is present.

Metadata

Metadata

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions