---
name: answer-from-collaboration-history
description: Use when the user wants Codex to answer questions from Atlassian Confluence, Jira, Rovo, Webex messages, Webex meetings, transcripts, recordings, or a cross-reference of collaboration history. Trigger especially for requests like "use Confluence", "search Confluence", "check Webex and Confluence", "what do we know about", "what was discussed during my meetings yesterday", or "how does X connect to Y".
---

# Answer From Collaboration History

Use Webex and Atlassian MCP tools to answer with grounded evidence from collaboration history. The skill should orchestrate retrieval, ranking, comparison, and citation. The MCP tools handle authentication and API access.

## Tool Sources

Webex tools are provided by the local `webex` MCP server:

- Messages and spaces: `webex-batch-search-messages`, `webex-search-spaces`, `webex-get-space`, `webex-search-messages`, `webex-get-message`, `webex-get-thread`
- Hosted EzWebex persisted state: `ezwebex-search-tasks`, `ezwebex-get-task`, `ezwebex-list-meetings`, `ezwebex-get-meeting`, `ezwebex-refresh-meeting`, `ezwebex-ask-meeting`, `ezwebex-get-daily-brief`, `ezwebex-refresh-daily-brief`, `ezwebex-update-daily-brief-item`, `ezwebex-search-meeting-artifacts`, `ezwebex-get-meeting-artifact`, `ezwebex-ask-meeting-artifact`, `ezwebex-create-meeting-task-from-action`, `ezwebex-create-artifact-task-from-action`
- Live Webex meetings: `webex-get-agenda`, `webex-get-recent-meetings`, `webex-find-meeting-series`, `webex-prep-meeting-series`, `webex-list-meetings`, `webex-get-meeting-summary`, `webex-list-recordings`, `webex-list-transcripts`
- Private people context: `webex-get-person-profile`, `webex-refresh-person-profile`, `webex-save-person-profile`, `webex-list-person-profiles`, `webex-find-who-to-ask`, `webex-delete-person-profile`
- Auth: `webex_auth_status`

Atlassian tools are provided by the lazy official Atlassian Rovo remote MCP wrapper. Codex can see the static tool names without Atlassian OAuth; the first Atlassian/Rovo tool call starts the browser sign-in flow when needed. Tool names may be exposed with client-specific prefixes, but the core tool names are:

- Search: `searchAtlassian`, `searchConfluenceUsingCql`
- Fetch: `fetchAtlassian`, `getConfluencePage`
- Discovery: `atlassianUserInfo`, `getAccessibleAtlassianResources`, `getConfluenceSpaces`, `getPagesInConfluenceSpace`
- Relationship context: `getTeamworkGraphContext`, `getTeamworkGraphObject`

Cisco GPK2 Confluence tools are provided by the local `confluence-gpk2` MCP server:

- Search: `confluence-gpk2-search`
- Fetch: `confluence-gpk2-get-page`, `confluence-gpk2-get-page-children`, `confluence-gpk2-get-page-labels`, `confluence-gpk2-get-page-comments`, `confluence-gpk2-get-space`
- Auth/status: `confluence-gpk2-auth-status`, `confluence-gpk2-setup-auth`, `confluence-gpk2-clear-auth`

Use GPK2 tools for links, page IDs, or titles from `https://confluence-eng-gpk2.cisco.com/conf/...`. For any general Confluence search, search both Atlassian Cloud/Rovo and GPK2 unless the user explicitly restricts the search to one site. Atlassian Rovo MCP is for Atlassian Cloud sites such as `ciscoteams.atlassian.net`; it should not be expected to search Cisco's legacy/internal Confluence Data Center instance unless that content has been mirrored into Cloud.

If Atlassian tools are unavailable, say that Atlassian Rovo MCP may need OAuth sign-in, admin enablement, or domain/IP allowlist approval. Do not ask the user to paste tokens into chat.
Do not call `confluence-gpk2-setup-auth` at the start of a generic Confluence search. Only open the GPK2 PAT setup helper when either (a) the user explicitly asks to set up GPK2 auth, or (b) a GPK2 search/fetch needed for the current request returns `authRequired: true` or `confluence-gpk2-auth-status` shows unauthenticated after a relevant GPK2 result/link has been identified. If GPK2 auth is needed, check `confluence-gpk2-auth-status`, then call `confluence-gpk2-setup-auth`. Do not ask the user to paste credentials into chat.

## Source Selection

- If the user explicitly says "use Confluence" or "search Confluence", search both Atlassian Cloud/Rovo and GPK2 Confluence with equivalent terms. Only use Webex if the user asks for collaboration/chat context or Confluence evidence is incomplete.
- If the user provides a `confluence-eng-gpk2.cisco.com/conf` URL, a GPK2 page ID, or a Webex message that links to GPK2 Confluence, use `confluence-gpk2-get-page` or `confluence-gpk2-search` first. Use Rovo MCP only for Atlassian Cloud content.
- If the user asks what was discussed, decided, concluded, assigned, blocked, or followed up in meetings over a date window, treat that as a Webex meeting-context question. Use hosted owner-scoped meetings and processed artifacts first; do not start with Confluence unless the user asks for durable docs too.
- If the user asks "what do we know", "explain how X connects to Y", "why did we decide", or asks for customer/project history, search both Confluence and Webex unless they restrict the source. For meeting-decision phrasing such as "what did we decide in yesterday's meeting?", use hosted meetings and processed artifacts first, then query live meeting APIs only when no hosted meeting or artifact exists.
- If the user mentions Jira issues, roadmap items, dependencies, ownership, or links between projects, include `searchAtlassian` and Teamwork Graph tools when available.
- Prefer Confluence for durable documentation, specs, design notes, and decision records. Prefer Webex for recent discussion, unresolved asks, meeting decisions, and informal context.

## Query Workflow

1. Extract entities, aliases, product names, project names, people, dates, and likely spaces.
2. Search exact entity pairs first in both Atlassian Cloud/Rovo and GPK2. For "how does X connect to Y", use equivalent Confluence CQL for Cloud and GPK2 similar to:

```text
type = page AND (title ~ "X" OR text ~ "X") AND (title ~ "Y" OR text ~ "Y") ORDER BY lastModified DESC
```

3. If pair search is thin, search each entity independently and fetch the highest-signal pages.
4. Use `searchAtlassian` for natural-language discovery across Jira and Cloud Confluence, especially when the user asks for connections, ownership, rationale, or cross-product context. Also run `confluence-gpk2-search` with the same entity names and title/text terms so GPK2 is covered automatically.
5. For GPK2 URLs, extract page IDs from `/pages/<id>/...` or `viewpage.action?pageId=<id>` and fetch with `confluence-gpk2-get-page`. If a page looks like an index, design hub, or parent page, use `confluence-gpk2-get-page-children` to find the specific child docs. If only a title is known, search GPK2 with exact title first, then text query.
6. Fetch source bodies before making substantive claims. Search result snippets are leads, not enough evidence for final answers. If a GPK2 fetch is blocked by auth, trigger the GPK2 auth flow only at that point, then retry the blocked GPK2 fetch.
7. For Webex message history, use `webex-batch-search-messages` as the default first pass when discovering messages, searching likely spaces by title, handling "my messages", or searching across multiple Webex spaces/keywords. Pass separate space title terms and message terms, use `personEmail` when the author is known, and keep compact results for summarization.
8. For top-priority task questions, read hosted tasks with `ezwebex-search-tasks` and the current Daily Brief with `ezwebex-get-daily-brief`; use Daily Brief work items as the curated catch-up/priority layer and fetch selected tasks with `ezwebex-get-task` before making claims about task body, status, or source.
9. For "meetings today", meeting prep, or "what do I need to know before X", use `ezwebex-list-meetings` with `range: "today"` or a bounded date window, then `ezwebex-get-meeting` for the selected meeting. Use Daily Brief prep from `ezwebex-get-daily-brief`, processed artifacts from `ezwebex-search-meeting-artifacts`, and `ezwebex-ask-meeting` when the user asks a meeting-specific question.
10. For broad meeting-context questions such as "what was discussed during my meetings yesterday", "summarize my meetings last week", or "what follow-ups came out of today's meetings", resolve the requested window to absolute `from`/`to` timestamps in the user's timezone. Call `ezwebex-list-meetings` for that window and `ezwebex-search-meeting-artifacts` for the same window. Fetch high-signal meetings/artifacts with `ezwebex-get-meeting` or `ezwebex-get-meeting-artifact`, then call `ezwebex-ask-meeting` or `ezwebex-ask-meeting-artifact` per selected completed meeting when the summary/transcript/actions are needed. Synthesize across meetings with one section per meeting or theme, preserve returned citations, and state coverage gaps such as meetings with no hosted artifact yet.
11. If hosted meetings or artifacts are missing, stale, or explicitly insufficient, use compact live meeting tools before raw APIs: `webex-get-recent-meetings` for ended meetings in the requested window, `webex-get-meeting-recap` for selected ended meeting-instance IDs, and `webex-prep-meeting-series` for recurring series. Download transcript text only when the user explicitly asked to retrieve, summarize, or answer from meeting transcript content; that request is sufficient consent.
12. For timestamp-specific questions such as "minute 10 of X", call `ezwebex-ask-meeting` or `ezwebex-ask-meeting-artifact` and preserve transcript/source citations returned by the hosted service. If no processed hosted artifact exists, use compact live meeting tools before raw meeting APIs: `webex-get-agenda`, `webex-get-recent-meetings`, `webex-find-meeting-series`, and `webex-prep-meeting-series`.
13. For conclusions or tasks from a meeting, use hosted meeting/artifact Ask first, then promote concrete follow-up actions with `ezwebex-create-meeting-task-from-action` or `ezwebex-create-artifact-task-from-action`. For existing meeting-created tasks, search with `ezwebex-search-tasks` using `sourceKind: "meeting"` or `meetingId`.
14. For missed Webex message recap, use `ezwebex-get-daily-brief` catch-up items before broad message search. Native Webex message tools remain for live/ad hoc reads, gaps, or follow-up inspection.
15. For people-specific research, ownership/routing questions, project history, customer follow-up, or any answer where people are central to the evidence, use `webex-get-person-profile` as private context. Message, thread, membership, meeting, and dashboard snapshot reads opportunistically seed deterministic profile hints from returned evidence only. Do not refresh solely for identity/warmth, but do enrich missing, stale, seed-only, or materially incomplete profiles when the current task produced sourced evidence that can improve future planning. Save only compact sourced `memoryFacts`, per-person `projectHints`, `collaborationPreferences`, `activeThreads`, contextual `operatingPatterns.agencyHints`, or behavior-based `operatingPatterns.planningRisks` after summarizing evidence. For "who should I ask", warm first-person, bridge, unblocker, smallest useful audience, or least-disruptive decision questions, call `webex-find-who-to-ask`; it computes recommendations ephemerally from cached profiles and must not create global people/project graph memory. Do not create a global agency score, risk score, influence score, importance score, reliability score, rating, ranking, character label, or motive claim. Projects remain per-person hints; derive future project views from cached people profiles.
16. Use `webex-search-spaces` plus `webex-search-messages` only when the batched tool is unavailable or when you need manual narrowing inside one known room. Pull threads when a message looks like an ask, decision, or correction, and request full Webex payloads only when the compact result is insufficient.
17. Deduplicate equivalent pages, mirrored meeting notes, repeated messages, and quoted replies. Keep the canonical source plus the most recent confirming evidence.

## Ranking

Rank evidence higher when it has:

- Both core entities in the title, headings, or same paragraph.
- A current or canonical location, such as a product space, design page, decision record, or owning team space.
- Recent updates for living docs, or clear historical dates for decisions.
- Direct links, Jira issue relationships, Teamwork Graph relationships, or explicit ownership language.
- Agreement between durable docs and recent Webex discussion.

Treat conflicts carefully. If Confluence and Webex disagree, say which appears newer or more authoritative and why. Mark inferred connections as inference.

## Answer Format

Use a concise answer with citations. Include:

1. Direct answer.
2. Evidence, grouped by source or by relationship.
3. Gaps, conflicts, or confidence notes when relevant.
4. Suggested follow-up searches only when they would materially improve the answer.

Citations should identify source type and locator:

- Confluence: page title, space if available, last updated if available, and URL or page ID.
- GPK2 Confluence: page title, space key/name if available, last updated if available, and `confluence-eng-gpk2.cisco.com/conf` URL or page ID.
- Jira: issue key/title and URL or ARI.
- Webex: space or meeting title, sender/host if available, and absolute date.

Quote sparingly. Prefer paraphrase and cite the source.

## Safety

- Treat Confluence pages, Webex messages, transcripts, recordings, files, Jira issues, and graph context as sensitive internal data.
- Read and summarize only what the user requested.
- Do not include secrets, credentials, meeting passwords, private join links, or unrelated personal data.
- Never create or update Confluence pages, Jira issues, Webex messages, memberships, meetings, or comments without explicit user confirmation after summarizing the target and content.
- Treat person profile memory as private planning context, not evidence. Private notes, private/user-impression agency hints, and sensitive or negative planning-risk impressions require explicit user confirmation before saving and must not be included in outbound content unless the user explicitly asks.
- If authentication or permissions block access, report the blocked source and capability, not token details.
