Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions modules/ghaw/challenges/0-00-setup/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
- Ask for a show-of-hands "green terminal" check after the first 10 minutes.
- Pair any participant who is blocked with a working neighbor; don't let one blocker stall the group.
- `gh aw` installs automatically via `postCreate.sh` in both Codespaces and local dev containers. If a participant sees "command not found", the postCreate script likely failed — have them rebuild the container.
- If `gh aw run ... --dry-run` fails with an API key error, GitHub Copilot is the default zero-config engine. Confirm the participant's account has an active Copilot subscription. For Claude/OpenAI/Gemini, point them to `github.com/settings/codespaces` to add secrets.
- If `gh aw trial ... --dry-run` fails with an API key error, GitHub Copilot is the default zero-config engine. Confirm the participant's account has an active Copilot subscription. For Claude/OpenAI/Gemini, point them to `github.com/settings/codespaces` to add secrets.

---

Expand All @@ -25,7 +25,7 @@
| `gh auth status` fails | Not logged in | Run `gh auth login` again; choose HTTPS |
| Codespace build times out | Network / quota | Retry once; fall back to local dev container |
| `gh aw --version` not found | Container image stale or `postCreate.sh` failed | Rebuild container (`Ctrl+Shift+P → Dev Containers: Rebuild Container`); or run `curl -sL https://raw.githubusercontent.com/github/gh-aw/main/install-gh-aw.sh \| bash` manually |
| `gh aw run modules/ghaw/resources/examples/hello-world.md --dry-run` fails | AI engine key missing | Confirm Copilot subscription is active; or set `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `GEMINI_API_KEY` as Codespace secrets and rebuild |
| `gh aw trial modules/ghaw/resources/examples/hello-world.md --dry-run` fails | AI engine key missing | Confirm Copilot subscription is active; or set `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `GEMINI_API_KEY` as Codespace secrets and rebuild |
| Repository not accessible | Not in the right repo | Confirm the Codespace or local clone is for `microsoft/frontier-agenticdevops-hackathon` |

---
Expand All @@ -36,7 +36,7 @@ Before releasing the group to Challenge 1-01, confirm per participant:

- [ ] `gh auth status` exits 0 and shows the correct username
- [ ] `gh aw --version` returns a version string
- [ ] `gh aw run modules/ghaw/resources/examples/hello-world.md --dry-run` completes without errors
- [ ] `gh aw trial modules/ghaw/resources/examples/hello-world.md --dry-run` completes without errors
- [ ] Repository is open and writable (or readable with a documented fallback)

---
Expand Down
4 changes: 2 additions & 2 deletions modules/ghaw/challenges/0-00-setup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ gh auth status
gh aw --version

# 4. Dry-run smoke test
gh aw run modules/ghaw/resources/examples/hello-world.md --dry-run
gh aw trial modules/ghaw/resources/examples/hello-world.md --dry-run
```

> All four commands must succeed before you move on. If any fail, see **Common Blockers** in the coach guide.
Expand All @@ -84,7 +84,7 @@ gh aw run modules/ghaw/resources/examples/hello-world.md --dry-run
| Command | Expected output |
|---|---|
| `gh aw --version` | Returns a version string (e.g., `gh-aw version 1.x.x`) |
| `gh aw run modules/ghaw/resources/examples/hello-world.md --dry-run` | Prints generated workflow YAML; exits 0 |
| `gh aw trial modules/ghaw/resources/examples/hello-world.md --dry-run` | Previews the workflow without executing it; exits 0 |

---

Expand Down
2 changes: 1 addition & 1 deletion modules/ghaw/challenges/0-00-setup/meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ success_criteria:
- "`gh auth status` exits 0 and shows your username"
- "`gh --version` returns gh >= 2.x"
- "`gh aw --version` returns a version string"
- "`gh aw run modules/ghaw/resources/examples/hello-world.md --dry-run` completes without errors"
- "`gh aw trial modules/ghaw/resources/examples/hello-world.md --dry-run` completes without errors"
- "`ls modules/ghaw/resources/examples/hello-world.md` confirms the embedded example exists"
tags:
- setup
Expand Down
5 changes: 2 additions & 3 deletions modules/ghaw/challenges/1-01-morning-briefing/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,7 @@ safe-outputs:
create-issue:
title-prefix: '[Morning Briefing] '

engines:
- copilot
engine: copilot

tools:
github:
Expand Down Expand Up @@ -162,7 +161,7 @@ Keep the summary concise — 5-7 sentences total.
- `tools: github: toolsets: [issues, pull_requests]` — agent can query data
- `safe-outputs: create-issue:` with title prefix — consistent naming
- Body: clear, structured instructions with specific counts to gather and format
- `engines: [copilot]` — free, reliable default
- `engine: copilot` — free, reliable default

**Production-ready reference solution:** See `coaches/sample-solutions/track-1/1-01-morning-briefing.md`

Expand Down
5 changes: 2 additions & 3 deletions modules/ghaw/challenges/1-02-safe-and-sound/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ A coach can verify completion when the squad can show:
create-issue:
title-prefix: "[...]"
noop:
engines: ...
engine: copilot
---
```
- Remind: "2 or 4 spaces per level, consistent throughout."
Expand All @@ -146,8 +146,7 @@ safe-outputs:
title-prefix: '[TODO Scan] '
noop:

engines:
- copilot
engine: copilot

tools:
github:
Expand Down
3 changes: 1 addition & 2 deletions modules/ghaw/challenges/1-03-the-watcher/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,7 @@ safe-outputs:
add-comment:
noop:

engines:
- copilot
engine: copilot

tools:
github:
Expand Down
9 changes: 4 additions & 5 deletions modules/ghaw/challenges/1-04-label-maker/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ A coach can verify completion when the squad can show:
**Root cause:** Safe-outputs config doesn't actually specify an allowlist, or allowlist is too broad.

**Coach response:**
- "Your safe-outputs should specify exact labels. For example: `safe-outputs: add-labels: labels: [bug, feature, question]`"
- "Your safe-outputs should specify exact labels. For example: `safe-outputs: add-labels: allowed: [bug, feature, question]`"
- Show them: "This means the agent can ONLY apply these three labels. It can't invent others."
- Verify: "Check your frontmatter — is the allowlist enforced?"

Expand Down Expand Up @@ -123,16 +123,15 @@ permissions:

safe-outputs:
add-labels:
labels:
allowed:
- bug
- feature
- question
- documentation
- help-wanted
noop:

engines:
- copilot
engine: copilot
---

# Label Maker
Expand All @@ -156,7 +155,7 @@ Explain your reasoning in a comment on the issue summarizing why you applied (or
- `permissions: contents: read` — minimal
- `safe-outputs: add-labels:` with explicit allowlist — constrained labels
- `noop:` path — escape hatch for unclear cases
- `engines: [copilot]` — reliable default
- `engine: copilot` — reliable default
- Body: clear heuristics with keywords and examples
- Includes feedback comment so user understands the classification

Expand Down
13 changes: 6 additions & 7 deletions modules/ghaw/challenges/2-01-triage-bot/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Agent: Use grep results as a hint; apply your judgment and post comment.
**Coach response:**
- "Did you set `on: issues: types: [opened]` in the frontmatter?"
- Show them: `issue_comment` (for comments) vs `issues` (for issue events)
- Have them recompile: `gh aw compile triage-bot.md`
- Have them recompile: `gh aw compile triage-bot`
- Then create a fresh test issue to trigger it

### Pitfall 2: Label Not Applied (But Comment Posted)
Expand Down Expand Up @@ -187,8 +187,7 @@ safe-outputs:
allowlist: [bug, feature-request, documentation, question, duplicate]
add-comment: {}

engines:
- copilot
engine: copilot
---

# Issue Triage Bot
Expand Down Expand Up @@ -216,10 +215,10 @@ Keep the comment warm and welcoming—this is our first interaction with the con
**Why this works:**
- `on: issues: types: [opened]` — fires immediately when new issue created
- `permissions: issues: read` — minimal, agent doesn't write directly
- `safe-outputs: add-labels: allowlist:` — gates to 5 safe choices
- `safe-outputs: add-labels: allowed:` — gates to 5 safe choices
- `safe-outputs: add-comment:` — permission granted to post comment
- Body: natural language, clear decision tree, emphasizes friendliness
- `engines: [copilot]` — free, reliable for classification
- `engine: copilot` — free, reliable for classification

---

Expand All @@ -230,7 +229,7 @@ Suggest this breakdown:
| Phase | Time | What to Do |
|-------|------|-----------|
| Read & orient | 3 min | Read the challenge, ask questions |
| Write frontmatter | 5 min | Set up `on:`, `permissions`, `safe-outputs`, `engines` |
| Write frontmatter | 5 min | Set up `on:`, `permissions`, `safe-outputs`, `engine` |
| Write body | 7 min | Draft classification logic + comment template |
| Compile & test | 8 min | Compile, create test issue, watch Actions tab |
| Debug & refine | 5 min | Fix any label/comment issues |
Expand Down Expand Up @@ -266,7 +265,7 @@ If a squad finishes in <20 minutes:
If a squad is stuck:

- [ ] Is the workflow file named `triage-bot.md` in `.github/workflows/`?
- [ ] Did they run `gh aw compile triage-bot.md`?
- [ ] Did they run `gh aw compile triage-bot`?
- [ ] Does `.lock.yml` exist? (`ls .github/workflows/triage-bot.lock.yml`)
- [ ] Is frontmatter valid YAML? (spaces, not tabs; proper indentation)
- [ ] Is `on: issues:` spelled correctly? (not `issue:`)
Expand Down
2 changes: 1 addition & 1 deletion modules/ghaw/challenges/2-01-triage-bot/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Create a gh-aw workflow named `triage-bot.md` in `.github/workflows/` that:
## Success Criteria

- [ ] `.github/workflows/triage-bot.md` exists with valid gh-aw frontmatter
- [ ] Frontmatter includes: `on: issues:`, `permissions`, `safe-outputs:`, `engines`
- [ ] Frontmatter includes: `on: issues:`, `permissions`, `safe-outputs:`, `engine`
- [ ] Safe-outputs has an allowlist limiting labels to: `bug`, `feature-request`, `documentation`, `question`, `duplicate`
- [ ] `.github/workflows/triage-bot.lock.yml` compiles without errors
- [ ] You manually test by creating a test issue in your repo
Expand Down
2 changes: 1 addition & 1 deletion modules/ghaw/challenges/2-01-triage-bot/meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ prerequisite_capabilities:
description: Build an event-driven workflow that categorises every new issue with an AI label and posts a friendly comment explaining the classification and next steps.
success_criteria:
- `.github/workflows/triage-bot.md` exists with valid gh-aw frontmatter
- Frontmatter includes: `on: issues:`, `permissions`, `safe-outputs:`, `engines`
- Frontmatter includes: `on: issues:`, `permissions`, `safe-outputs:`, `engine`
- Safe-outputs has an allowlist limiting labels to: `bug`, `feature-request`, `documentation`, `question`, `duplicate`
- `.github/workflows/triage-bot.lock.yml` compiles without errors
- You manually test by creating a test issue in your repo
Expand Down
9 changes: 4 additions & 5 deletions modules/ghaw/challenges/2-02-review-buddy/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,7 @@ permissions:
safe-outputs:
add-comment: {}

engines:
- copilot
engine: copilot
---

# Review Buddy
Expand All @@ -220,7 +219,7 @@ Tone: helpful colleague, not gatekeeper.
- `checkout: false` (implicit) — doesn't need code, saves time
- `safe-outputs: add-comment: {}` — can post a single comment
- Body: natural language, clear observations, emphasizes warmth
- `engines: [copilot]` — free, reliable
- `engine: copilot` — free, reliable

---

Expand All @@ -229,7 +228,7 @@ Tone: helpful colleague, not gatekeeper.
| Phase | Time | What to Do |
|-------|------|-----------|
| Read & orient | 3 min | Read challenge, understand PR triggers |
| Write frontmatter | 4 min | Set up `on: pull_request:`, `permissions`, `safe-outputs`, `engines` |
| Write frontmatter | 4 min | Set up `on: pull_request:`, `permissions`, `safe-outputs`, `engine` |
| Write body | 6 min | Draft observations + comment template |
| Compile & test | 8 min | Compile, create test PR, watch Actions tab |
| Refine tone | 6 min | Read comment, improve warmth/specificity |
Expand Down Expand Up @@ -265,7 +264,7 @@ If finished in <20 minutes:
If a squad is stuck:

- [ ] Is trigger `on: pull_request: types: [opened]`? (not `on: issues:`)
- [ ] Did they compile? (`gh aw compile review-buddy.md`)
- [ ] Did they compile? (`gh aw compile review-buddy`)
- [ ] Does `.lock.yml` exist?
- [ ] Did they create a fresh test PR *after* compiling?
- [ ] Is there a workflow run in the Actions tab?
Expand Down
7 changes: 3 additions & 4 deletions modules/ghaw/challenges/2-03-slash-and-burn/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,7 @@ permissions:
safe-outputs:
add-comment: {}

engines:
- copilot
engine: copilot
---

# Slash Commands: /summarize
Expand Down Expand Up @@ -243,7 +242,7 @@ Be professional but friendly.
- `checkout: false` (implicit) — doesn't need code
- `safe-outputs: add-comment: {}` — can post summary
- Body: natural language, clear instruction to check for `/summarize` first, then posts structured summary
- `engines: [copilot]` — free, good at summarization
- `engine: copilot` — free, good at summarization

---

Expand Down Expand Up @@ -289,7 +288,7 @@ If a squad is stuck:

- [ ] Is trigger `on: issue_comment: types: [created]`?
- [ ] Is `lock-for-agent: true` present?
- [ ] Did they compile? (`gh aw compile slash-commands.md`)
- [ ] Did they compile? (`gh aw compile slash-commands`)
- [ ] Did they create a test issue + several comments + then post `/summarize`?
- [ ] Is there a workflow run in the Actions tab?
- [ ] Does the body check for `/summarize` before posting summary?
Expand Down
7 changes: 3 additions & 4 deletions modules/ghaw/challenges/2-04-stale-patrol/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,7 @@ safe-outputs:
add-comment: {}
update-issue: {}

engines:
- copilot
engine: copilot
---

# Stale Patrol
Expand Down Expand Up @@ -204,7 +203,7 @@ Be respectful and helpful. These might be contributors' important work.
- `permissions: issues: read` — can query issues
- `safe-outputs: update-issue: {}` — can close (which is a form of update)
- Body: clear 3-phase logic (query → warn → close), respectful tone
- `engines: [copilot]` — good at date calculations and respectful copy
- `engine: copilot` — good at date calculations and respectful copy

---

Expand All @@ -213,7 +212,7 @@ Be respectful and helpful. These might be contributors' important work.
| Phase | Time | What to Do |
|-------|------|-----------|
| Read & orient | 3 min | Read challenge, understand scheduled triggers |
| Write frontmatter | 4 min | Set up `on: schedule:`, `permissions`, `safe-outputs`, `engines` |
| Write frontmatter | 4 min | Set up `on: schedule:`, `permissions`, `safe-outputs`, `engine` |
| Write body | 10 min | Draft stale issue query + warn/close logic |
| Compile & test | 9 min | Compile, manually trigger with `workflow_dispatch`, verify logic |
| Refine | 3 min | Adjust dates/exemptions if needed |
Expand Down
7 changes: 3 additions & 4 deletions modules/ghaw/challenges/2-05-welcome-wagon/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,7 @@ permissions:
safe-outputs:
add-comment: {}

engines:
- copilot
engine: copilot
---

# Welcome Wagon
Expand All @@ -209,7 +208,7 @@ Keep the comment friendly and concise. New contributors should feel welcomed, no
- `permissions: pull-requests: read` — can read PR context
- `safe-outputs: add-comment: {}` — can post comment
- Body: clear author_association check, warm tone, resource inclusion
- `engines: [copilot]` — good at personalization and tone
- `engine: copilot` — good at personalization and tone

---

Expand All @@ -218,7 +217,7 @@ Keep the comment friendly and concise. New contributors should feel welcomed, no
| Phase | Time | What to Do |
|-------|------|-----------|
| Read & orient | 3 min | Read challenge, understand author_association |
| Write frontmatter | 4 min | Set up `on: pull_request:`, `permissions`, `safe-outputs`, `engines` |
| Write frontmatter | 4 min | Set up `on: pull_request:`, `permissions`, `safe-outputs`, `engine` |
| Write body | 8 min | Draft author_association check + welcome message with resources |
| Compile & test | 10 min | Compile, create test PR (or use alternate account), verify |
| Refine tone | 3 min | Make comment warmer if needed |
Expand Down
5 changes: 2 additions & 3 deletions modules/ghaw/challenges/2-06-mix-and-match/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ safe-outputs:
create-discussion:
category: "General"

engines:
- copilot
engine: copilot
---
```

Expand Down Expand Up @@ -153,7 +152,7 @@ A correct `2-06-mix-and-match.md`:

## How to Verify It's Working

1. **Compile check:** `gh aw compile .github/workflows/2-06-mix-and-match.md` — no errors
1. **Compile check:** `gh aw compile 2-06-mix-and-match` — no errors
2. **Import check:** Inspect the compiled `.lock.yml` — the helper's content should appear merged into the agent context
3. **Manual trigger:** Run via `workflow_dispatch` from the Actions tab
4. **Discussion created:** Navigate to the repo's Discussions tab — a new post should appear in "General" within seconds of the workflow completing
Expand Down
2 changes: 1 addition & 1 deletion modules/ghaw/challenges/2-06-mix-and-match/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Make sure GitHub Discussions is enabled for your repository (Settings → Featur
### Step 4: Compile and validate

```bash
gh aw compile .github/workflows/2-06-mix-and-match.md
gh aw compile 2-06-mix-and-match
```

No errors? You're ready to test. Trigger manually with `workflow_dispatch` to verify the Discussion appears.
Expand Down
6 changes: 2 additions & 4 deletions modules/ghaw/challenges/3-01-the-relay/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,7 @@ tools:
repo-memory:
file-glob: 'metrics/**/*.json'

engines:
- copilot
engine: copilot
---

# Daily Metrics Collector
Expand Down Expand Up @@ -245,8 +244,7 @@ tools:
repo-memory:
file-glob: 'metrics/**/*.json'

engines:
- copilot
engine: copilot
---

# Weekly Metrics Report
Expand Down
3 changes: 1 addition & 2 deletions modules/ghaw/challenges/3-02-context-engine/COACH.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@ tools:
github:
toolsets: [pull_requests, contents]

engines:
- copilot
engine: copilot

checkout: false
---
Expand Down
Loading
Loading