Confluence integration

Confluence — linked into your fastpace artifacts

Stop migrating documentation. fastpace lets every PRD, ERD, ADR, and watch card reference Confluence pages by URL — and then resolves titles, last-modified, and (with read scope) the page body so the AI authors PRDs against the real architecture.

Link-first Title resolution Stale-page detection AI context fetch Auto-discovery (opt-in) Cloud + Server
Why this matters

Your Confluence stays Confluence — fastpace just knows about it

Most teams already have years of architecture, decisions, and onboarding in Confluence. Migrating it is a non-starter. Linking it is one line of frontmatter — and fastpace makes that link useful, not decorative.

Link, don't migrate

Years of architecture docs already in Confluence? Don't move them. Reference them inline from any fastpace PRD, ERD, or watch card with a single line of frontmatter.

Resolve titles + freshness

fastpace fetches the page title, last-modified date, and author via the Confluence Cloud API. The dashboard renders typed link cards instead of raw URLs.

Pull excerpts as AI context

When /fp-write-prd or /fp-prd-to-erd runs, fastpace can pull the body of a referenced Confluence page and feed it as context — so the AI authors against the real architecture, not assumptions.

Auto-discover, optionally

Opt-in: index allow-listed spaces with BM25 (no embeddings, no remote inference) and surface candidate pages while authoring a PRD. Always asks before adding.

Three layers · all shipped

Linking → fetching → auto-discovery

fastpace's Confluence integration ships in three layers, each independently useful. Start at Layer 1 today (no auth, no setup). Add Layer 2 when you want titles + freshness auto-resolved. Layer 3 (auto-discovery) is strictly opt-in — fastpace only suggests matches, never auto-adds them.

recommended start add when ready opt in later
1

Read-only manual linking shipped

Paste a Confluence URL into a PRD's frontmatter or run fastpace refs add. fastpace stores it typed (kind: confluence), renders a clickable card in the dashboard, and indexes it for search. No auth required.

2

Authenticated fetching shipped

Reuses your existing Atlassian API token (the one Jira uses), or a dedicated one. fastpace refs resolve populates title, last-modified, author, and space for every linked page. Stale pages (>180 days) flagged with a red pill in the dashboard. The AI can pull a 4k-char body excerpt as PRD-authoring context.

3

Auto-discovery shipped · opt-in

Off by default. Flip the dashboard toggle and fastpace indexes allow-listed spaces with BM25 (no embeddings, no remote inference) and surfaces candidate pages while you author a PRD. Always asks before adding — no automatic writes. See the auto-discovery panel below.

Layer 3 · how auto-discovery works

BM25 ranking, never auto-add

Manual linking is the default — and the recommended path. Humans know which docs matter; auto-matchers don't. Auto-discovery is for the case where your spaces are well-tagged and you'd like fastpace to surface candidate pages while you author a PRD.

Auto-suggest Confluence pages while authoring PRDs

Dashboard → References → Auto-discovery → Confluence

1

Indexed once, refreshed every 24h

fastpace pulls page titles + the first 800 chars of body text for spaces you allow-list, and caches them locally in fastpace/.refs-index/confluence.json (gitignored).

2

BM25 — no embeddings

fastpace ranks pages by lexical overlap with title weighted 3×. No remote inference, no surprise costs, deterministic. 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

Lexical match across thousands of pages is noisy. Treat this as a hint, not the source of truth. If suggestions are mostly noise for your space, turn the toggle off.

# fastpace.config.yaml — what the dashboard toggle writes
references:
  resolvers:
    confluence:
      auto_discover:
        enabled: false             # off by default
        spaces: [PROD, ARCH, SEC]   # allow-list — only these are indexed
        max_suggestions: 5
        max_age_hours: 24
        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. Confluence URLs are recognized by pattern and stored with kind, url, title, and (after Layer 2 resolution) metadata.

# Auto-written by `fastpace refs add` and `fastpace refs resolve`
references:
  - kind: confluence
    url: https://mycompany.atlassian.net/wiki/spaces/PROD/pages/12345
    normalized_id: cf-page-12345
    title: Checkout architecture
    added_at: 2026-04-08T11:22:08Z
    added_by: ana
    resolved:
      fetched_at: 2026-04-12T16:42:08Z
      title: Checkout architecture
      last_modified: 2026-03-14T09:15:00Z
      author: ana@mycompany.com
      space: PROD
      version: 14
      stale: false
  - kind: confluence
    url: https://mycompany.atlassian.net/wiki/spaces/SEC/pages/9876
    normalized_id: cf-page-9876
    title: Data handling policy
Recognized URL shapes

Confluence URLs fastpace knows how to resolve

kind
URL pattern
Resolved fields
page
wiki/spaces/.../pages/12345
title · last-modified · authors · space
page-blog
wiki/spaces/.../blog/...
title · publish-date · author
attachment
wiki/.../download/attachments/.
filename · mime-type · size
space-home
wiki/spaces/.../overview
space name · description · admins
Setup

Four steps to live

1

Configure Confluence in fastpace

Edit fastpace.config.yaml. If you already use Jira, the site and email are inferred — only the auto-discover block is new.

references:
  resolvers:
    confluence:
      enabled: true
      site: mycompany             # mycompany.atlassian.net
      email: you@mycompany.com    # falls back to integrations.jira.email
      auto_discover:              # Layer 3 — opt-in
        enabled: false            # off by default
        spaces: []                # allow-list (PROD, ARCH, SEC, ...)
2

Save your API token

Reuse your existing Atlassian API token (the one Jira uses) — fastpace falls back to jira_api_token automatically. Or generate a new one at id.atlassian.com → API tokens:

{
  "confluence_api_token": "ATATT3xFfGF0..."
}
3

Test the resolver

$ fastpace refs test confluence
✓ confluence authenticated as ana@mycompany.com
4

Reference a page from any artifact

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

$ fastpace refs add partial-refunds \\
    --url https://mycompany.atlassian.net/wiki/spaces/PROD/pages/12345
✓ added confluence → 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 Confluence-aware CLI

fastpace refs add <slug>

Add a reference to a slug's PRD/ERD/ADR frontmatter. Pass --url .... Auto-detects kind (Confluence, Google Docs, Jira, Linear, GitHub, Notion, Figma, generic URL).

fastpace refs resolve [slug]

Layer 2: re-fetch titles, last-modified, author, space for every linked page. Stale pages (>180 days) flagged. Safe to run on cron with --force.

fastpace refs index

Build the BM25 auto-discovery index from allow-listed spaces. Cached locally, gitignored. Refreshes on its own every 24h.

fastpace refs suggest <slug>

Layer 3: rank candidate pages against the slug's PRD body. Returns top 5 by default. Never auto-adds — confirm in the dashboard or with refs add.

fastpace refs test confluence

Sanity-check auth. Returns the authenticated identity or a clear error (token wrong, network down, scope missing).

fastpace refs list [slug]

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

Link Confluence in 1 minute

Start with Layer 1 — no auth, just paste URLs into your artifacts. Add Layer 2 when you want titles auto-resolved and stale-doc detection. Layer 3 (auto-discovery) is opt-in, BM25-ranked, and never auto-adds — flip the dashboard toggle when your spaces are ready.