[claude-code-user-docs-review] 🔍 Claude Code User Documentation Review - 2026-05-20 #33546
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Claude Code User Documentation Review. A newer discussion is available at Discussion #33757. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Executive Summary
A Claude Code user can adopt gh-aw, but the path is consistently framed around GitHub Copilot — from the default
engine:, to thegh aw initartifacts, to the example workflows. The non-Copilot path works but requires the user to actively translate Copilot-centric docs into Claude-equivalent steps. There are no true critical blockers, but multiple major obstacles that would slow down or confuse a developer who has deliberately chosen Claude over Copilot.Key Finding: gh-aw is genuinely engine-agnostic at the runtime/compiler level, but the documentation, defaults, and worked examples are Copilot-first. A Claude Code user can succeed, but only after they learn to read past the Copilot framing.
Persona Context
I reviewed this documentation as a developer who:
Question 1: Onboarding Experience
Can a Claude Code user understand and get started with gh-aw?
The README and Quick Start do mention Claude as a supported engine (
README.md:40,quick-start.mdx:29,quick-start.mdx:70), so it's not invisible. However:add-wizardflow is shown installingdaily-repo-status, and the only inline> [!NOTE]blocks that walk through token creation are forCOPILOT_GITHUB_TOKENandANTHROPIC_API_KEY. Codex and Gemini are mentioned in the engine list (quick-start.mdx:70) but not given a setup block. A Claude user gets one short note (quick-start.mdx:82-86) versus a richer Copilot setup (quick-start.mdx:76-79).quick-start.mdx:130-136) does showengine: claude— this is a real bright spot for Claude users.engine:default iscopilot(engines.md:16andengines.md:24: "Copilot CLI is the default —engine:can be omitted when using Copilot."). A Claude user must remember to set it on every workflow or use--engine claudeingh aw new.Specific Issues Found:
README.md:40: "Supports GitHub Copilot, Claude (Anthropic), Codex (OpenAI), and Gemini (Google) — pick whichever AI account you already have." — Good, but the line is buried mid-Overview and easy to miss.quick-start.mdx:14: Sample workflow isdaily-repo-statusfromgithubnext/agentics— no indication whether the sample needs Copilot or works equally well underengine: claude.quick-start.mdx:78: "Setting upCOPILOT_GITHUB_TOKEN?" gets numbered step-by-step instructions including the pre-filled PAT creation link; the equivalent for Claude (quick-start.mdx:82-86) is two terse sentences.Recommended Fixes:
add-wizardexample show both--engine copilotand--engine claudeinvocations side-by-side.Question 2: Inaccessible Features for Non-Copilot Users
What features or steps don't work without Copilot?
The engine feature comparison table (
engines.md:34-46) is excellent and honest — it shows clearly that several capabilities are Copilot-only. The problem is discoverability: the table is in the engines reference, not surfaced in the Quick Start orhow-they-work.mdx. A Claude user might add a feature only to discover later it's Copilot-only.Features That Require Copilot:
engine.agent— custom agent files in.github/agents/(engines.md:41). This is whatgh aw initcreates by default at.github/agents/agentic-workflows.agent.md(cli.md:134). On Claude, this dispatcher file is created but has no engine-side effect.engine.harness— custom Node.js harness wrapper (engines.md:44,engines.md:293-306). Claude can't use it.max-continuations— autopilot multi-run mode (engines.md:38). Claude has no equivalent.add-wizardand many sample workflows ingithubnext/agenticsare written for Copilot defaults.Features That Work Without Copilot:
tools.*(edit, bash, github, playwright, cache-memory, repo-memory, qmd, agentic-workflows, web-fetch) — engine-agnostic pertools.md.safe-outputssubsystem — engine-agnostic, designed around the agent's read-only model regardless of engine.architecture.mdx).engine.bare,engine.api-target,engine.env,engine.version,engine.args,tools.timeout,tools.startup-timeout,max-runs,timeout-minutes— all engines perengines.md:34-46andengines.md:431-437.max-turns— Claude-only feature (engines.md:37) — a positive for Claude users.Missing Documentation:
gh aw initproduce that is Copilot-specific vs. engine-agnostic?cli.md:134says it creates.github/agents/agentic-workflows.agent.md— there is no note that this file is Copilot-only.gh aw initstill necessary? Should--no-mcpor some flag skip the Copilot-specific dispatcher agent?engine.agentormax-continuationspointing to the closest substitute (e.g., "use sub-workflows" or "increase max-turns instead").Question 3: Documentation Gaps and Assumptions
Where does the documentation assume Copilot usage?
The assumption surfaces in three places:
1. Defaults and worked examples lean Copilot.
engines.md:16,24: Copilot is the default engine — workflow authors who forgetengine:silently get Copilot.docs/src/content/docs/, I counted ~40engine: copilotsnippets vs. ~5engine: claudesnippets. The Patterns and Reference sections almost universally show Copilot in code samples (e.g.,architecture.mdx:228,cost-management.md:193, all four examples inaudit.md:174-252)..github/workflows/directory, there are 100+ Copilot workflows, 52 Claude workflows, 9 Codex workflows, and 0 Gemini workflows — yet Gemini is advertised onREADME.md:40as a supported engine. The repo eats its own dog food more enthusiastically with Copilot than with the alternatives.2.
gh aw initis implicitly Copilot-oriented.cli.md:132-145:gh aw initcreates.github/agents/agentic-workflows.agent.md. The "agent file" concept is documented inengines.md:41andcopilot-custom-agents.mdas Copilot-only. There is no warning that runninggh aw initproduces Copilot-specific scaffolding.3. "Claude Code" terminology is ambiguous.
engines.md:17calls the engine "Claude by Anthropic (Claude Code)" — but a Claude Code user (i.e., a developer who uses the Anthropic Claude Code CLI on their own laptop) might not immediately realize thatengine: claudeactually launches the Claude Code CLI inside the runner. A one-line clarification ("This is the sameclaudeCLI you may already have installed locally") would help.engines.md:201-268) lets users route Copilot CLI to Anthropic — which is a third meaning of "using Claude". This is genuinely confusing for newcomers.Copilot-Centric Language Found In:
docs/src/content/docs/setup/quick-start.mdx— Title screenshot/video showsadd-wizardflow; Copilot secret gets the detailed step-by-step note.docs/src/content/docs/reference/audit.md:174-252— All four configuration examples useengine: copilot.docs/src/content/docs/patterns/*.md— Patterns docs (spec-ops.md,side-repo-ops.mdx,central-repo-ops.mdx,deterministic-ops.md) useengine: copilotalmost exclusively;deterministic-ops.md:71is one of the few withengine: claude.docs/src/content/docs/blog/2026-02-05-how-workflows-work.md:210— The frontmatter sample saysengine: copilot # or claude, codex, custom. Thecustomengine value is referenced but I could not find a corresponding reference page.docs/src/content/docs/reference/auth.mdx:109— Claude API key creation link goes toplatform.claude.com/docs/en/get-startedbut the troubleshooting section atauth.mdx:199links toconsole.anthropic.comandquick-start.mdx:84links toconsole.anthropic.com/settings/keys. Three different URLs for the same task.Missing Alternative Instructions:
gh aw add-wizard --engine claude ...invocation would help.engines.md:28).cost-management.mdexists but its example is Copilot-only (cost-management.md:193).Severity-Categorized Findings
🚫 Critical Blockers (Score: 0/10)
No critical blockers found. Every Claude-as-engine code path is documented somewhere, and
ANTHROPIC_API_KEYsetup is described inauth.mdx. A determined Claude user can succeed.Obstacle 1: Quick Start is Copilot-first
Impact: A Claude user has to mentally translate the entire flow on their first read.
Current State:
quick-start.mdxwalks through Copilot setup as the canonical path; the Claude note is half the size and lacks the pre-filled PAT link equivalent.Why It's Problematic: First-time users abandon docs that feel like they don't speak their setup.
Suggested Fix: Add a
<Tabs>block with one tab per engine, each showing the matchinggh aw add-wizard --engine <name>command and matching secret setup. Or add a "For Claude users" sibling section to Step 2.Affected Files:
docs/src/content/docs/setup/quick-start.mdxObstacle 2: `gh aw init` creates Copilot-specific scaffolding silently
Impact: Claude users get a
.github/agents/agentic-workflows.agent.mdfile that has no effect underengine: claude. They will either commit it confused, or delete it not knowing it was Copilot-only.Current State:
cli.md:132-145describesgh aw initbut does not mention that the dispatcher agent file is Copilot-only.engines.md:41does sayengine.agentis Copilot-only, but a newcomer won't connect the dots.Why It's Problematic: Silent Copilot defaults erode trust when a Claude user discovers they've been given dead scaffolding.
Suggested Fix: Add a note to
cli.mdinitsection: "If you plan to useengine: claude,engine: codex, orengine: gemini, the dispatcher agent file is created but has no effect — Copilot-style custom agents are not supported on those engines." Consider an--engineflag oninitthat skips the dispatcher file for non-Copilot engines.Affected Files:
docs/src/content/docs/setup/cli.md,cmd/gh-aw/initimplementationObstacle 3: Sample workflows skew Copilot
Impact: Claude users can't easily find a "this is what a complete Claude workflow looks like" reference.
Current State: In the patterns/reference docs, ~40
engine: copilotexamples vs. ~5engine: claudeexamples. Theaudit.mdreference has four configuration examples, all Copilot. Of the in-repo.github/workflows/, 52 use Claude vs. 100+ Copilot.Why It's Problematic: Examples are the primary way developers learn. Without representative Claude examples, every Claude user re-derives the same configuration.
Suggested Fix: For each pattern doc with multiple examples, include at least one Claude version. Add a "Engine-agnostic by default" callout to
tools.mdso users know which features are universal.Affected Files:
docs/src/content/docs/patterns/*.md,docs/src/content/docs/reference/audit.md,docs/src/content/docs/reference/cost-management.mdObstacle 4: Inconsistent Anthropic Console URLs and unclear `CLAUDE_CODE_OAUTH_TOKEN` handling
Impact: Three different URLs documented for creating the same API key, and a Claude Code user who already has
CLAUDE_CODE_OAUTH_TOKENconfigured locally will be confused to learn it is silently ignored.Current State:
quick-start.mdx:84→console.anthropic.com/settings/keysauth.mdx:109→platform.claude.com/docs/en/get-startedauth.mdx:199→console.anthropic.comauth.mdx:121-123does explicitly sayCLAUDE_CODE_OAUTH_TOKENis unsupported, which is good — but a Claude Code user might never read auth docs in detail.Why It's Problematic: URL drift signals the docs are not being kept in sync; the OAuth caveat surprises Claude Code users who already use that token locally.
Suggested Fix: Pick one canonical URL (
console.anthropic.com/settings/keys) and use it everywhere. Promote the OAuth-not-supported note from a buried subsection to a callout in the Quick Start whenever a user selects Claude.Affected Files:
docs/src/content/docs/setup/quick-start.mdx,docs/src/content/docs/reference/auth.mdx💡 Minor Confusion Points (Score: 6/10)
README.md:40lists Gemini; counts: 0.github/workflows/*.mdfiles useengine: gemini. File:README.md,.github/workflows/engine: copilot # or claude, codex, customcomment in blog —customis referenced but I could not find acustomengine reference page. Misleading. File:docs/src/content/docs/blog/2026-02-05-how-workflows-work.md:210engines.md:17uses both names in one row. A Claude Code user might not realize thatengine: claudeis the Claude Code CLI. File:docs/src/content/docs/reference/engines.mddocs/src/content/docs/reference/engines.md:201-268tools.timeoutdefaults differ per engine but only Claude/Codex are documented —engines.md:381-388says Copilot/Gemini/Crush are "not enforced by gh-aw (engine-managed)" — the meaning of that phrase is opaque.network.allowedconfiguration example inarchitecture.mdx:227-237usesengine: copilot— even the security architecture overview uses Copilot in its illustration.Engine Comparison Analysis
Available Engines
Based on
engines.md:14-23andREADME.md:40, gh-aw supports:engine: copilot— Documented thoroughly. Default. Setup well-described in Quick Start.engine: claude— Documented adequately. Engine reference and auth reference both cover it. Few worked examples in docs.engine: codex— Documented in reference but underrepresented in Quick Start examples.engine: gemini— Listed as supported, but has 0 example workflows in the repo and minimal docs coverage.engine: crush,opencode,pi— Listed as experimental inengines.md:20-22.engine: custom— Referenced once in a blog comment but I could not locate a reference page.Documentation Quality by Engine
Tool Availability Analysis
Tools Review
Analyzed tool compatibility based on
tools.mdandengines.md:34-46:Engine-Agnostic Tools:
edit:— file editingbash:— shell commands (gated by Claude permission mode caveat,engines.md:439-470)github:— GitHub API toolsets (engine-agnostic protocol)playwright:— browser automationcache-memory:,repo-memory:— persistent memoryqmd:— vector searchagentic-workflows:— workflow introspectionweb-fetch:— universal (all engines perengines.md:39)mcp-servers:— engine-agnostic protocolEngine-Specific Tools:
web-search:— native on Codex (opt-in); requires third-party MCP for other engines (engines.md:40,tools.md:65-67).engine.agent— Copilot only.engine.harness— Copilot only.Unclear/Undocumented:
tools.cli-proxy: true(tools.md:129-149) — does it work consistently across all engines? Doc shows Copilot context (safeoutputs,mcpscriptsmounted as CLIs) but no per-engine note.bypassPermissionsquirk (engines.md:447-450) is a security caveat unique to Claude that's easy to miss when copy-pasting Copilot configs.Authentication Requirements
Current Documentation
auth.mdxandquick-start.mdx, but inconsistent URLs (three different links) andCLAUDE_CODE_OAUTH_TOKENrejection buried.CODEX_API_KEY/OPENAI_API_KEYfallback documented.Missing for Claude Users
CLAUDE_CODE_OAUTH_TOKENsupported?" explainer or roadmap note. Right now it's a one-paragraph rejection inauth.mdx:121-123.cost-management.mdexists but its example is Copilot-only.Secret Names
COPILOT_GITHUB_TOKEN(documented)ANTHROPIC_API_KEY(documented;CLAUDE_CODE_OAUTH_TOKENexplicitly unsupported)OPENAI_API_KEYorCODEX_API_KEY(both documented)GEMINI_API_KEY(documented)Example Workflow Analysis
Workflow Count by Engine (in
.github/workflows/)In the documentation site (
docs/src/content/docs/):Quality of Examples
Copilot Examples: Comprehensive, varied, span every pattern (
spec-ops,side-repo-ops,central-repo-ops,deterministic-ops,research-plan-assign-ops).Claude Examples: Adequate to demonstrate the engine works, but a Claude-first user lacks a complete "reference workflow" in the docs that matches the comprehensiveness of Copilot examples. The
deterministic-ops.md:71Claude example is one of the most complete in the docs.Recommended Actions
Priority 1: Critical Documentation Fixes
docs/src/content/docs/setup/quick-start.mdxgh aw initengine-specific behavior — add a note that the dispatcher agent file is Copilot-only. File:docs/src/content/docs/setup/cli.mddocs/src/content/docs/reference/auth.mdx,docs/src/content/docs/setup/quick-start.mdxPriority 2: Major Improvements
engine: claudeexample per pattern. File:docs/src/content/docs/patterns/*.mdhow-they-work.mdx— surface the feature matrix earlier so users know what's portable. File:docs/src/content/docs/introduction/how-they-work.mdxengine: copilot # or claude, codex, customin blog suggestscustomexists; verify and document, or remove from comments. File:docs/src/content/docs/blog/2026-02-05-how-workflows-work.mdREADME.md(or add Gemini workflows)Priority 3: Nice-to-Have Enhancements
engines.md:26-28would help non-Copilot users self-select.CLAUDE_CODE_OAUTH_TOKENrejection from buried subsection to a Quick Start callout — Claude Code users carrying that token locally will be surprised.engine: claudeis the Anthropic Claude Code CLI running inside the runner.cost-management.mdshould show side-by-side Copilot vs Claude vs Codex examples.Positive Findings
What Works Well
README.md:40does mention all four engines up-front.engines.md:34-46is excellent — clear, accurate, and honest about what's Copilot-only.auth.mdxcovers all four engines in one reference page with consistent structure.--engineflag is supported ongh aw new,gh aw add-wizard,gh aw compile,gh aw trial,gh aw run— so the CLI itself is genuinely engine-agnostic.gh aw secrets bootstrap --engine claude(cli.md:240-245) makes setup much easier for non-Copilot users.architecture.mdx) is engine-agnostic and applies equally to Claude workflows.max-turnsis documented as a Claude-specific positive feature (engines.md:404-417), not framed as a limitation.engines.md:439-470) is documented in depth — a real strength for security-conscious Claude users.Conclusion
Can Claude Code Users Successfully Adopt gh-aw?
Answer: Yes, with significant effort and patience to read past Copilot-framed examples.
Reasoning: All the building blocks for a Claude-based gh-aw workflow exist and are documented somewhere. The CLI accepts
--engine claudeeverywhere it matters. The auth reference, engine reference, and feature comparison table are honest and complete. But the path of least resistance documented in the Quick Start is Copilot-shaped, and a Claude user will spend their first hour translating Copilot-flavored snippets into Claude equivalents. There are no hard blockers — just enough friction that a less determined user might give up before reaching the working Claude workflow.Overall Assessment Score: 6/10
Breakdown:
Next Steps
If the team can take only one action, add a Claude variant to the Quick Start (full setup, full example, full secret link) at parity with the Copilot variant. That single change removes most of the onboarding friction documented above.
If the team can take two actions, also add a note to
gh aw initthat the dispatcher agent file is Copilot-only so non-Copilot users aren't silently given dead scaffolding.Appendix: Files Reviewed
Complete List of Documentation Files Analyzed
README.mddocs/src/content/docs/setup/quick-start.mdxdocs/src/content/docs/setup/cli.mddocs/src/content/docs/introduction/how-they-work.mdxdocs/src/content/docs/introduction/architecture.mdxdocs/src/content/docs/introduction/overview.mdxdocs/src/content/docs/reference/tools.mddocs/src/content/docs/reference/engines.mddocs/src/content/docs/reference/auth.mdxdocs/src/content/docs/and.github/workflows/Report Generated: §26165163800
Workflow: claude-code-user-docs-review
Engine Used: claude (eating our own dog food! 🐕)
All reactions