Summary
Found 1 discrepancy between documentation and implementation during nightly reconciliation check.
Minor Issues 🔵
1. GITHUB_PERSONAL_ACCESS_TOKEN missing from proxy mode env var docs
Location: docs/ENVIRONMENT_VARIABLES.md, Proxy Mode Variables table
Problem: The documentation only lists GITHUB_TOKEN / GH_TOKEN as the supported auth token variables for proxy mode. However, the code also accepts GITHUB_PERSONAL_ACCESS_TOKEN as a third fallback, checked in priority order.
Actual Behavior (code): internal/cmd/proxy.go:143–149
token = os.Getenv("GH_TOKEN") // checked first
token = os.Getenv("GITHUB_TOKEN") // checked second
token = os.Getenv("GITHUB_PERSONAL_ACCESS_TOKEN") // checked third (undocumented)
```
**Current documentation** (`docs/ENVIRONMENT_VARIABLES.md`, Proxy Mode Variables section):
```
| `GITHUB_TOKEN` / `GH_TOKEN` | GitHub auth token for the proxy to forward requests | (required) |
Impact: Users who set only GITHUB_PERSONAL_ACCESS_TOKEN (a common GitHub token env var) may not realize it works as a fallback for proxy mode. The proxy will work, but users following the docs may not realize this is a valid option.
Suggested Fix: Update the Proxy Mode Variables table in docs/ENVIRONMENT_VARIABLES.md to include the third fallback:
| `GH_TOKEN` / `GITHUB_TOKEN` / `GITHUB_PERSONAL_ACCESS_TOKEN` | GitHub auth token for the proxy to forward requests (checked in priority order) | (required for upstream auth) |
Code Reference: internal/cmd/proxy.go:139–153
Accurate Sections ✅
All other documentation was verified accurate against the implementation:
- Quick Start config format —
"apiKey" JSON field matches StdinGatewayConfig.APIKey (json:"apiKey") ✅
- JSON stdin server fields —
container, entrypoint, entrypointArgs, mounts, env, type all present in StdinServerConfig ✅
- Go version — CONTRIBUTING.md specifies Go 1.25.0, matches
go.mod ✅
- Make targets —
build, test, test-unit, test-integration, test-all, lint, coverage, install, format, test-ci, clean all exist in Makefile ✅
- Binary name —
awmg matches Makefile build target output ✅
- Feature list — TOML/JSON config,
\$\{VAR} expansion (JSON only), routed/unified modes, Docker support, WASM guards all implemented ✅
--config-stdin flag — exists in internal/cmd/flags_core.go:36 ✅
run.sh default — starts on `(0.0.0.0/redacted) in routed mode, as documented in CONTRIBUTING.md ✅
- Environment variables (
MCP_GATEWAY_PORT, MCP_GATEWAY_DOMAIN, MCP_GATEWAY_API_KEY) — all validated in code ✅
docs/CONFIGURATION.md, docs/ENVIRONMENT_VARIABLES.md — both files exist and are linked correctly from README ✅
Tested Commands
- ✅
make --dry-run build — confirms build target exists and calls go build -o awmg
- ✅
make --dry-run test / make --dry-run test-unit — confirmed as aliases
- ✅
make --dry-run test-integration — auto-builds binary if needed, as documented
- ✅
make --dry-run test-all — runs both unit and integration tests
- ✅
make --dry-run lint — runs go vet, gofmt, golangci-lint
- ✅
make --dry-run coverage — runs unit tests with coverage profile
- ✅
make --dry-run install — verifies Go version, installs golangci-lint, downloads deps
- ⚠️
make build — fails in sandboxed CI (Go 1.25.0 toolchain download blocked at proxy.golang.org); expected to work in environments with internet access
Code References
- Configuration structs:
internal/config/config_core.go, internal/config/config_stdin.go
- Proxy token fallback:
internal/cmd/proxy.go:139–153
- Environment variable env var list:
docs/ENVIRONMENT_VARIABLES.md
Generated by Nightly Documentation Reconciler · ◷
Summary
Found 1 discrepancy between documentation and implementation during nightly reconciliation check.
Minor Issues 🔵
1.
GITHUB_PERSONAL_ACCESS_TOKENmissing from proxy mode env var docsLocation:
docs/ENVIRONMENT_VARIABLES.md, Proxy Mode Variables tableProblem: The documentation only lists
GITHUB_TOKEN/GH_TOKENas the supported auth token variables for proxy mode. However, the code also acceptsGITHUB_PERSONAL_ACCESS_TOKENas a third fallback, checked in priority order.Actual Behavior (code):
internal/cmd/proxy.go:143–149Impact: Users who set only
GITHUB_PERSONAL_ACCESS_TOKEN(a common GitHub token env var) may not realize it works as a fallback for proxy mode. The proxy will work, but users following the docs may not realize this is a valid option.Suggested Fix: Update the Proxy Mode Variables table in
docs/ENVIRONMENT_VARIABLES.mdto include the third fallback:Code Reference:
internal/cmd/proxy.go:139–153Accurate Sections ✅
All other documentation was verified accurate against the implementation:
"apiKey"JSON field matchesStdinGatewayConfig.APIKey(json:"apiKey") ✅container,entrypoint,entrypointArgs,mounts,env,typeall present inStdinServerConfig✅go.mod✅build,test,test-unit,test-integration,test-all,lint,coverage,install,format,test-ci,cleanall exist in Makefile ✅awmgmatches Makefile build target output ✅\$\{VAR}expansion (JSON only), routed/unified modes, Docker support, WASM guards all implemented ✅--config-stdinflag — exists ininternal/cmd/flags_core.go:36✅run.shdefault — starts on `(0.0.0.0/redacted) in routed mode, as documented in CONTRIBUTING.md ✅MCP_GATEWAY_PORT,MCP_GATEWAY_DOMAIN,MCP_GATEWAY_API_KEY) — all validated in code ✅docs/CONFIGURATION.md,docs/ENVIRONMENT_VARIABLES.md— both files exist and are linked correctly from README ✅Tested Commands
make --dry-run build— confirms build target exists and callsgo build -o awmgmake --dry-run test/make --dry-run test-unit— confirmed as aliasesmake --dry-run test-integration— auto-builds binary if needed, as documentedmake --dry-run test-all— runs both unit and integration testsmake --dry-run lint— runs go vet, gofmt, golangci-lintmake --dry-run coverage— runs unit tests with coverage profilemake --dry-run install— verifies Go version, installs golangci-lint, downloads depsmake build— fails in sandboxed CI (Go 1.25.0 toolchain download blocked atproxy.golang.org); expected to work in environments with internet accessCode References
internal/config/config_core.go,internal/config/config_stdin.gointernal/cmd/proxy.go:139–153docs/ENVIRONMENT_VARIABLES.md