Google Docs integration

Google Docs — linked into your fastpace artifacts

Stop copy-pasting research into PRDs. fastpace lets every artifact reference Google Docs by URL — and resolves titles, last-edit metadata, and (with read scope) document bodies so the AI authors against the real research instead of summaries.

Link-first OAuth + PKCE Title + last-edit resolution AI context fetch Auto-discovery (opt-in) Docs · Sheets · Slides · Drive
Why this matters

Your research stays in Google — fastpace just knows about it

Most product teams have years of user interviews, kickoff notes, and PRD drafts in Google Docs. Migrating them is a non-starter; copy-pasting goes stale immediately. Linking is one line of frontmatter — and fastpace makes the link useful, not decorative.

Reference, never duplicate

Your PMs already have user research, kickoff notes, and PRD drafts in Google Docs. Don't copy them into the repo — link them from any fastpace artifact and let the source stay the source.

Resolve titles + last-edit

fastpace fetches the document title, last-modified time, and owner via the Drive API. Stale docs (untouched > 180 days) flag in the dashboard automatically.

Pull doc body as AI context

When /fp-write-prd authors a PRD that references a Google Doc, fastpace pulls the doc's plaintext (read scope) and feeds it as context — so the PRD ends up grounded in the actual research, not summaries.

Auto-discover, optionally

Opt-in: search allow-listed Drive folders for matching docs while authoring a PRD. Native Drive ranking, scoped by parent folder. Always asks before adding.

Three layers · all shipped

Linking → fetching → auto-discovery

Start at Layer 1 today (no OAuth, no setup). Add Layer 2 when you want titles + freshness auto-resolved. Layer 3 (auto-discovery) is opt-in — fastpace only suggests matches from allow-listed folders, never auto-adds them.

recommended start add when ready opt in later
1

Read-only manual linking shipped

Paste a Google Doc URL into a PRD's frontmatter or run fastpace refs add. fastpace stores it typed (kind: google-doc), renders a clickable card in the dashboard, and indexes it for search. Zero auth.

2

Authenticated fetching (OAuth) shipped

One-time loopback OAuth + PKCE flow grants fastpace read scope (drive.metadata.readonly + documents.readonly). Refresh token saved chmod 0600 in fastpace/.integrations.local.json. fastpace refs resolve populates title, last-modified, owner, word-count. Stale docs (>180 days) flagged red in the dashboard.

3

Auto-discovery shipped · opt-in

Off by default. Flip the dashboard toggle and fastpace queries Drive's files.list with fullText contains, scoped to allow-listed parent folders. Drive's native ranking, no remote inference, always asks before adding. See the auto-discovery panel below.

Layer 3 · how auto-discovery works

Drive search, never auto-add

Manual linking is the default — and the recommended path. Humans know which research matters; auto-matchers don't. Auto-discovery is for the case where your folders are well-organized and you'd like fastpace to surface candidates while you author a PRD.

Auto-suggest Google Docs while authoring PRDs

Dashboard → References → Auto-discovery → Google Docs

1

Drive search, scoped to allow-listed folders

fastpace queries Drive's files.list with fullText contains, restricted to allow-listed parent folder ids. Nothing outside those folders is ever read.

2

Drive's native ranking, no embeddings

fastpace orders results by Drive's orderBy=relevance — Google's own ranking. No remote vector inference, no surprise costs. Same query → same suggestions.

3

Always asks before adding

Top 5 candidates surface as "Maybe related: …". Click Add to <slug> in the dashboard or run refs add — fastpace never writes refs by itself.

4

Honestly: matches will be wrong

Drive search across thousands of docs is noisy. Treat suggestions as hints, not source of truth. If they're mostly noise for your team, turn the toggle off.

# fastpace.config.yaml — what the dashboard toggle writes
references:
  resolvers:
    google-docs:
      auto_discover:
        enabled: false                # off by default
        folders:
          - 1aBCdEf...                # Drive folder id — PRDs + research
          - 2gHiJkL...                # kickoff notes
        max_suggestions: 5
        require_confirmation: true     # always — fastpace never auto-adds
Reference shape

Typed references, committed to git

Every fastpace artifact gets a references block in its frontmatter. Google Docs URLs are recognized by pattern and stored with kind, url, title, and (after Layer 2 OAuth) metadata.

# Auto-written by `fastpace refs add` and `fastpace refs resolve`
references:
  - kind: google-doc
    url: https://docs.google.com/document/d/abc123XYZ/edit
    normalized_id: gdoc-abc123XYZ
    title: Q3 user research synthesis
    added_at: 2026-04-08T11:22:08Z
    added_by: ana
    resolved:
      fetched_at: 2026-04-12T16:42:08Z
      title: Q3 user research synthesis
      last_modified: 2026-04-12T08:30:14Z
      author: ana@mycompany.com
      word_count: 2840
      mime_type: application/vnd.google-apps.document
      stale: false
  - kind: drive-folder
    url: https://drive.google.com/drive/folders/1aBCdEf
    normalized_id: gfolder-1aBCdEf
    title: Customer feedback Q1 2026
Recognized URL shapes

Google URLs fastpace knows how to resolve

kind
URL pattern
Resolved fields
doc
docs.google.com/document/d/...
title · last-modified · owner · word count
sheet
docs.google.com/spreadsheets/d/...
title · last-modified · sheet count
slides
docs.google.com/presentation/d/...
title · last-modified · slide count
drive-folder
drive.google.com/drive/folders/...
name · file count · shared-with
drive-file
drive.google.com/file/d/...
filename · mime-type · size · last-modified
Setup

Four steps to live

1

Configure Google Docs in fastpace

Edit fastpace.config.yaml:

references:
  resolvers:
    google-docs:
      enabled: true
      auto_discover:                # Layer 3 — opt-in
        enabled: false
        folders: []                 # Drive folder ids to allow-list

Scopes are baked in: drive.metadata.readonly + documents.readonly. fastpace ships its own published OAuth client — set FASTPACE_GOOGLE_CLIENT_ID if you want a per-org one.

2

Authorize via OAuth (loopback + PKCE)

Run fastpace refs auth google-docs — fastpace spins up a temporary HTTP server on a random localhost port, opens your browser to Google's consent screen, exchanges the code with PKCE, and saves the refresh token to fastpace/.integrations.local.json (chmod 0600, gitignored).

$ fastpace refs auth google-docs
› starting Google OAuth flow (loopback PKCE)...
› opening browser for OAuth consent...
✓ google-docs authorized · refresh token saved (chmod 0600)
  · granted scopes: drive.metadata.readonly documents.readonly
3

Test the resolver

$ fastpace refs test google-docs
✓ google-docs authenticated as jordan@mycompany.com
4

Reference a doc from any artifact

Add Google Docs URLs to PRD/ERD/watch-card frontmatter, or run:

$ fastpace refs add partial-refunds \\
    --url https://docs.google.com/document/d/abc123
✓ added google-doc → partial-refunds (fastpace/docs/prd/partial-refunds.md)
$ fastpace refs resolve partial-refunds
✓ partial-refunds: resolved 1 · failed 0 · skipped 0 · total 1
CLI commands

The full Google-Docs-aware CLI

fastpace refs auth google-docs

Run the OAuth loopback PKCE flow. Stores refresh token chmod 0600 in fastpace/.integrations.local.json. Pass --revoke to clear.

fastpace refs add <slug>

Add a reference. Auto-detects kind from URL (Google Doc, Sheet, Slides, Drive folder, Drive file). Pass --url ....

fastpace refs resolve [slug]

Layer 2: re-fetch titles, last-modified, owner, word-count, mime-type. Stale docs (>180 days) flagged. Safe on cron with --force.

fastpace refs suggest <slug>

Layer 3: query Drive's files.list for candidates matching the slug's PRD body, scoped to allow-listed folders. Top 5 by default.

fastpace refs test google-docs

Sanity-check OAuth + Drive access. Returns the authenticated email or a clear error (token revoked, scope missing, network down).

fastpace refs list [slug]

Print references with resolution state. Without slug, lists every artifact that has refs.

Link Google Docs in 1 minute

Start with Layer 1 — no OAuth, just paste URLs into your artifacts. Add Layer 2 when you want titles + last-edit metadata auto-resolved. Layer 3 (auto-discovery) is opt-in, Drive-search-ranked, and never auto-adds — flip the dashboard toggle when your folders are ready.