Summary
Adds an opt-in, dismissible research recruitment banner to the docs site (docs/) that links
to a survey and is shown only to recruited participants. Adapted from the
github/research-accelerator recruitment-banner skill.
Survey: GitHub Agentic Workflows (Alchemer) · Slug: gh-aw-docs-research-2026q3
Contributing path
I'm not on the core team, so per CONTRIBUTING.md this is an issue rather than a PR (non-core PR
creation is blocked). The change is fully implemented on a fork branch — diff ready to review:
👉 https://github.com/github/gh-aw/compare/main...jayjdub:gh-aw:add-docs-recruitment-banner?expand=1
(branch jayjdub:gh-aw@add-docs-recruitment-banner). A core-team member can open the PR or
cherry-pick the branch.
Why this design (static-site targeting)
The stafftools recruitment banner targets current_user server-side. This docs site is static
GitHub Pages (github.github.com/gh-aw/) — no server, no current_user. Targeting is enforced
by who the recruitment link is distributed to (the dotcom_id audience):
- The link carries
?recruit=gh-aw-docs-research-2026q3 (optionally &uid=<dotcom_id>).
- Only recipients see the banner; eligibility is remembered per-browser (
localStorage) and
persists across docs pages; dismissal sticks.
- The audience list is never committed (committing participant IDs to a public repo would
expose them).
- CTA gets
utm_source=inproduct_banner&utm_medium=docs&utm_campaign=<slug> (+ pid); a
banner_research_cta event fires on click.
Proposed changes (all under docs/)
| File |
Purpose |
docs/src/config/recruitmentBanner.ts |
Knobs: enabled, slug, copy, ctaUrl, path scope, frequency |
docs/src/components/RecruitmentBanner.astro |
Banner UI + client eligibility; overrides Starlight's Banner slot (preserves native frontmatter banners) |
docs/astro.config.mjs |
One line wiring the Banner override |
docs/RECRUITMENT_BANNER.md |
Config guide + go-live checklist |
Safe by default
- Ships OFF (
enabled: false) — landing it does not make the banner visible; turning it
on is a deliberate follow-up change.
- No auto-cap — monitor and flip
enabled: false at quota.
- No participant IDs committed; the gift-card incentive is stated honestly in the copy (payout
is a separate flow).
Test plan
With enabled: true on a preview build, open any docs page with
?recruit=gh-aw-docs-research-2026q3&uid=<own-dotcom_id> → banner renders, CTA points at the
survey with UTM params, dismiss persists. Without ?recruit=, the banner never shows.
Summary
Adds an opt-in, dismissible research recruitment banner to the docs site (
docs/) that linksto a survey and is shown only to recruited participants. Adapted from the
github/research-accelerator recruitment-banner skill.
Survey: GitHub Agentic Workflows (Alchemer) · Slug:
gh-aw-docs-research-2026q3Contributing path
I'm not on the core team, so per
CONTRIBUTING.mdthis is an issue rather than a PR (non-core PRcreation is blocked). The change is fully implemented on a fork branch — diff ready to review:
👉 https://github.com/github/gh-aw/compare/main...jayjdub:gh-aw:add-docs-recruitment-banner?expand=1
(branch
jayjdub:gh-aw@add-docs-recruitment-banner). A core-team member can open the PR orcherry-pick the branch.
Why this design (static-site targeting)
The stafftools recruitment banner targets
current_userserver-side. This docs site is staticGitHub Pages (
github.github.com/gh-aw/) — no server, nocurrent_user. Targeting is enforcedby who the recruitment link is distributed to (the
dotcom_idaudience):?recruit=gh-aw-docs-research-2026q3(optionally&uid=<dotcom_id>).localStorage) andpersists across docs pages; dismissal sticks.
expose them).
utm_source=inproduct_banner&utm_medium=docs&utm_campaign=<slug>(+pid); abanner_research_ctaevent fires on click.Proposed changes (all under
docs/)docs/src/config/recruitmentBanner.tsenabled,slug, copy,ctaUrl, path scope, frequencydocs/src/components/RecruitmentBanner.astroBannerslot (preserves native frontmatter banners)docs/astro.config.mjsBanneroverridedocs/RECRUITMENT_BANNER.mdSafe by default
enabled: false) — landing it does not make the banner visible; turning iton is a deliberate follow-up change.
enabled: falseat quota.is a separate flow).
Test plan
With
enabled: trueon a preview build, open any docs page with?recruit=gh-aw-docs-research-2026q3&uid=<own-dotcom_id>→ banner renders, CTA points at thesurvey with UTM params, dismiss persists. Without
?recruit=, the banner never shows.