Skip to content

Commit fd59bf0

Browse files
committed
docs: sync plugin references with upstream gh-aw specification
Audited all aw-author plugin assets against the canonical gh-aw specification. Key updates: safe-outputs.md: - Added call-workflow safe-output type (compile-time fan-out) - Added missing parameters: blocked (add-labels, remove-labels), state-reason (close-issue), footer (add-comment, create-issue, update-pull-request), protected-files (create-pull-request, push-to-pull-request-branch), allowed-repos, github-token - Fixed update-issue field types (status/title/body are booleans) - Expanded update-discussion and close-discussion with full params - Added resolution values for close-discussion - Added global config options (report-failure-as-issue, environment, allowed-domains, concurrency-group, etc.) - Expanded system types (noop, missing-tool, missing-data) details - Fixed upload-asset defaults (branch, max-size, allowed-exts) - Added common parameters section for cross-cutting fields tools-reference.md: - Added serena tool (semantic code analysis via language servers) - Added advanced cache-memory config (key, retention-days, scope, etc.) - Added advanced repo-memory config (branch-prefix, target-repo, etc.) - Added tool-level timeout and startup-timeout fields - Added web-search Codex engine note (disabled by default) - Added allowed/version sub-fields to github tool SKILL.md: - Added custom engine option (engine.id: custom) - Added serena tool to Phase 3 tool selection - Expanded Phase 4 safe-output options (13 additional types) - Added network ecosystem identifiers to Phase 6 - Added call-workflow to Critical Rules - Fixed rule numbering (22-29) aw-analyst.md: - Added call-workflow vs dispatch-workflow anti-pattern - Added missing serena tool anti-pattern
1 parent 346ea87 commit fd59bf0

4 files changed

Lines changed: 599 additions & 72 deletions

File tree

agents/aw-analyst.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ When analyzing, validate against the authoritative spec. If the embedded skill r
123123
18. **Standard `.yml` files in `.github/workflows/`** alongside gh-aw workflows — blocks App token pushes
124124
19. **Double quotes in MCP `entrypointArgs`**`gh aw compile` doesn't escape them, producing broken JSON
125125
20. **MCP server stdout before JSON-RPC handshake** — breaks gateway init; redirect install output to /dev/null
126+
21. **`call-workflow` vs `dispatch-workflow` confusion**`call-workflow` is compile-time fan-out (inlined), `dispatch-workflow` is runtime dispatch
127+
22. **Missing `serena` tool** when prose references semantic code analysis — add `tools: serena: ["language"]`
126128

127129
## Production Gotchas Reference
128130

skills/aw-author/SKILL.md

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,10 @@ Options:
6666
- "Copilot (GitHub native, default)" → engine.id: copilot
6767
- "Claude (Anthropic, strong reasoning)" → engine.id: claude
6868
- "Codex (OpenAI, code-focused)" → engine.id: codex
69+
- "Custom (bring your own engine)" → engine.id: custom
6970
```
7071

71-
Configure engine settings: `max-turns`, `timeout-minutes`, `thinking`.
72+
Configure engine settings: `max-turns`, `timeout-minutes`, `thinking`, `model`.
7273

7374
### Phase 3: Tool Selection
7475

@@ -80,6 +81,7 @@ Options:
8081
- "File editing" → tools.edit
8182
- "Web fetch / search" → tools.web-fetch, tools.web-search
8283
- "Browser automation (Playwright)" → tools.playwright
84+
- "Semantic code analysis (Serena)" → tools.serena
8385
- "Memory (cache/repo)" → tools.cache-memory, tools.repo-memory
8486
```
8587

@@ -98,12 +100,22 @@ bash: ["echo", "ls", "cat", "grep", "jq", "git:*"]
98100
AskUserQuestion: "What write operations should the workflow perform?" (multi-select)
99101
Options:
100102
- "Add labels to issues/PRs" → add-labels
103+
- "Remove labels" → remove-labels
101104
- "Add comments" → add-comment
102105
- "Create new issues" → create-issue
103-
- "Create pull requests" create-pull-request
106+
- "Update issues" update-issue
104107
- "Close issues" → close-issue
108+
- "Create pull requests" → create-pull-request
109+
- "Update pull requests" → update-pull-request
110+
- "Close pull requests" → close-pull-request
111+
- "Push to PR branch" → push-to-pull-request-branch
112+
- "PR review comments" → create-pull-request-review-comment
113+
- "Submit PR review" → submit-pull-request-review
114+
- "Create discussions" → create-discussion
105115
- "Assign users" → assign-to-user
116+
- "Add reviewers" → add-reviewer
106117
- "Dispatch other workflows" → dispatch-workflow
118+
- "Upload assets" → upload-asset
107119
- "None (read-only)" → no safe-outputs
108120
```
109121
@@ -152,11 +164,20 @@ Options:
152164
- "Yes, unrestricted" → network: true (discouraged)
153165
```
154166
155-
If specific domains, prompt for the list:
167+
If specific domains, prompt for the list. Use **ecosystem identifiers** for common bundles (these work in `strict: true` mode):
168+
- `defaults` — localhost, 127.0.0.1
169+
- `github` — GitHub and related domains
170+
- `containers` — container registries
171+
- `node` — npm, Node.js ecosystem (required for `npx`-based MCP servers)
172+
- `python` — PyPI, Python ecosystem (required for `uvx`-based MCP servers)
173+
174+
Custom domains require `strict: false`.
175+
156176
```yaml
157177
network:
158178
firewall:
159179
allowed:
180+
- "node"
160181
- "api.example.com"
161182
```
162183

@@ -399,10 +420,11 @@ These rules apply across ALL modes:
399420
19. **`tools.github` conflicts with `gh` CLI** — the MCP server takes ownership of GITHUB_TOKEN; if workflow only uses `gh` CLI via bash, remove `tools.github` entirely
400421
20. **`add-comment` defaults to `discussions:write`** — always add `discussions: false` under `add-comment:` unless discussions are explicitly needed, or the App token fails with HTTP 422
401422
21. **No `merge-pull-request` safe-output exists** — use `post-steps:` with a fresh App token to merge PRs
402-
22. **`.lock.yml` files are exempt from workflow push restrictions** — standard `.yml`/`.yaml` files block App token pushes in `.github/workflows/`; never mix standard GH Actions `.yml` files with gh-aw workflows if using App tokens for safe-outputs
403-
23. **Frontmatter `if:` guard** prevents workflow runs from starting entirely — evaluated before any jobs run, saves compute vs job-level guards
404-
24. **`post-steps:` runs after AI execution** — has access to job context (`${{ github.event.* }}`, secrets, vars); use for merging PRs, closing issues, cleanup requiring App tokens
405-
25. **`gh aw compile` does NOT escape `"` in entrypointArgs** — never use double quotes in MCP server command strings; use `grep` instead of `jq` if the expression would contain quotes
406-
26. **MCP server stdout breaks initialization** — any stdout before the JSON-RPC handshake breaks the MCP gateway; redirect all `apk add`, `pip install`, `curl` output to `/dev/null`
407-
27. **`gh aw mcp inspect/list` does NOT follow `imports:`** — only sees servers in direct frontmatter; check compiled `.lock.yml` to verify imported servers
408-
28. **`pull_request` trigger uses the merge commit workflow** — if you push a new lock.yml to main and immediately re-trigger a PR, the merge ref may use the old main; wait briefly between pushes and PR events
423+
22. **`call-workflow` is for compile-time fan-out** — unlike `dispatch-workflow` (runtime dispatch), `call-workflow` inlines reusable workflows at compile time
424+
23. **`.lock.yml` files are exempt from workflow push restrictions** — standard `.yml`/`.yaml` files block App token pushes in `.github/workflows/`; never mix standard GH Actions `.yml` files with gh-aw workflows if using App tokens for safe-outputs
425+
24. **Frontmatter `if:` guard** prevents workflow runs from starting entirely — evaluated before any jobs run, saves compute vs job-level guards
426+
25. **`post-steps:` runs after AI execution** — has access to job context (`${{ github.event.* }}`, secrets, vars); use for merging PRs, closing issues, cleanup requiring App tokens
427+
26. **`gh aw compile` does NOT escape `"` in entrypointArgs** — never use double quotes in MCP server command strings; use `grep` instead of `jq` if the expression would contain quotes
428+
27. **MCP server stdout breaks initialization** — any stdout before the JSON-RPC handshake breaks the MCP gateway; redirect all `apk add`, `pip install`, `curl` output to `/dev/null`
429+
28. **`gh aw mcp inspect/list` does NOT follow `imports:`** — only sees servers in direct frontmatter; check compiled `.lock.yml` to verify imported servers
430+
29. **`pull_request` trigger uses the merge commit workflow** — if you push a new lock.yml to main and immediately re-trigger a PR, the merge ref may use the old main; wait briefly between pushes and PR events

0 commit comments

Comments
 (0)