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.
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.
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.
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.
fastpace fetches the document title, last-modified time, and owner via the Drive API. Stale docs (untouched > 180 days) flag in the dashboard automatically.
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.
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.
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.
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.
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.
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.
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.
Dashboard → References → Auto-discovery → Google Docs
fastpace queries Drive's files.list with fullText contains, restricted to allow-listed parent folder ids. Nothing outside those folders is ever read.
fastpace orders results by Drive's orderBy=relevance — Google's own ranking. No remote vector inference, no surprise costs. Same query → same suggestions.
Top 5 candidates surface as "Maybe related: …". Click Add to <slug> in the dashboard or run refs add — fastpace never writes refs by itself.
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
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 docdocs.google.com/document/d/...sheetdocs.google.com/spreadsheets/d/...slidesdocs.google.com/presentation/d/...drive-folderdrive.google.com/drive/folders/...drive-filedrive.google.com/file/d/...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.
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 $ fastpace refs test google-docs
✓ google-docs authenticated as jordan@mycompany.com 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 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.
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.