home / skills / dhughes / claude-marketplace / ezcater-research

This skill helps you investigate ezCater systems and project histories across Glean, Jira, Confluence, and Git to reveal architectural decisions.

npx playbooks add skill dhughes/claude-marketplace --skill ezcater-research

Review the files below or copy the command above to add this skill to your agents.

Files (8)
SKILL.md
9.7 KB
---
name: ezcater-research
description: This skill should be used when the user asks to "investigate ezCater systems", "research architectural decisions", "understand code evolution", "find historical context", "analyze project history", "search internal documentation", or needs to understand why technical decisions were made at ezCater. Use this for lighter research where the user doesn't explicitly request "deep research" (which triggers the agent).
version: 0.1.0
---

# ezCater Research Methodology

Investigate ezCater codebases, architectural decisions, and project histories using multiple data sources including Glean, Atlassian (Jira/Confluence), GitHub, and Git.

## Overview

ezCater research requires synthesizing information from multiple internal sources. This skill provides proven methodologies for:
- Finding why architectural decisions were made
- Understanding code evolution over time
- Discovering historical context for current implementations
- Researching multi-system interactions and workflows

**When to use this skill vs deep research agent:**
- **Use this skill**: Straightforward investigations, specific PR/ticket lookups, single-source searches
- **Use deep research agent**: Complex multi-source synthesis, historical timelines, architectural decision investigations requiring extensive context

## CRITICAL: Access Requirements

**Cannot access resources directly. Must use appropriate tools:**

### Google Docs / Google Drive
- ❌ **CANNOT** access Google Docs URLs directly
- ✅ **MUST** use Glean MCP tools (`mcp__glean__company_search`, `mcp__glean__chat`)
- Glean indexes Google Docs and retrieves content

### Atlassian (Jira / Confluence)
- ❌ **CANNOT** access ezcater.atlassian.net URLs directly
- ✅ **MUST** use `atl` CLI for all Jira and Confluence access
- Commands: `atl jira issue view FX-123`, `atl confluence search "keywords"`

### GitHub
- ✅ Use `gh` CLI for PR/issue searches
- ✅ Use git commands for repository analysis
- ✅ Use Read tool for files in checked out repositories

## Research Strategy by Question Type

### Architectural Decisions

"Why was X chosen over Y?"

1. **Search Glean** for design docs, RFCs, ADRs using keywords like:
   - "[feature] decision", "[component] architecture", "why [technology]"
2. **Find epics/tickets** using `atl jira search "project = <PROJECT> AND text ~ 'keywords'"`
3. **Locate PRs** with `gh pr list --search "keywords" --repo owner/repo`
4. **Review git history** for implementation context using `git log --grep="pattern"`

See `references/glean-search-guide.md` for detailed Glean querying strategies.
See `examples/architectural-decision.md` for a complete walkthrough.

### Code Evolution

"How did feature X evolve over time?"

1. **Trace file history** with `git log --follow -p -- <file>`
2. **Find related PRs** using `gh pr list --search "feature-name"`
3. **Search Glean** for discussions using feature name keywords
4. **Check Jira** for feature requests: `atl jira search "project = FX AND summary ~ 'feature'"`

See `references/github-git-analysis.md` for git history techniques.
See `examples/code-evolution.md` for a complete example.

### Process Understanding

"How do I get an order to state X?" or "What triggers workflow Y?"

1. **Search Glean** for process documentation using keywords like "order lifecycle", "state machine"
2. **Find relevant code** using Grep for state transitions, workflow definitions
3. **Check Confluence** using `atl confluence search "order process"` for diagrams and specs
4. **Locate test fixtures** that demonstrate the process

See `references/atlassian-cli-guide.md` for atl CLI patterns.
See `examples/process-understanding.md` for a workflow investigation example.

### Multi-System Interactions

"How does system A interact with system B?"

1. **Search Glean** for integration documentation
2. **Find API contracts** in code using Grep for client/service definitions
3. **Check Confluence** for architecture diagrams: `atl confluence search "architecture"`
4. **Review recent PRs** affecting both systems using `gh pr list --search "systemA systemB"`

## Tool Usage Patterns

### Glean Search

Use Glean MCP for internal information:

```
Query: "order management migration decision"
Datasources: ["confluence", "slack", "gdrive"]
```

**Effective queries:**
- Be specific: "feature flag eppo provider" not just "feature flags"
- Include context: "liberty authentication refactor" not just "authentication"
- Try variations: "DM rails seeders", "delivery management backfills"

See `references/glean-search-guide.md` for complete search strategies.

### Atlassian CLI

**Search Jira tickets:**
```bash
atl jira search "project = FX AND text ~ 'delivery tracking'"
atl jira issue view FX-4623
```

**Search Confluence:**
```bash
atl confluence search "order state machine"
atl confluence page view 12345678
```

See `references/atlassian-cli-guide.md` for full command reference and examples.

### GitHub CLI

**Search PRs:**
```bash
gh pr list --repo ezcater/ez-rails --search "authentication" --limit 20
gh pr view 1234 --repo ezcater/ez-rails --json title,body,comments
```

**Search issues:**
```bash
gh issue list --repo ezcater/delivery-management-rails --search "seeder"
```

### Git History

**File evolution:**
```bash
git log --follow -p -- path/to/file.rb
git blame path/to/file.rb
```

**Commit searches:**
```bash
git log --grep="feature flag"
git log --all --grep="migration"
```

See `references/github-git-analysis.md` for advanced git techniques.

## Information Synthesis

After gathering information from multiple sources:

1. **Create timeline** - Order findings chronologically to show evolution
2. **Identify stakeholders** - Note who made decisions and why
3. **Understand business context** - Connect technical decisions to business needs
4. **Recognize trade-offs** - Explain what was gained and what was sacrificed
5. **Cross-reference sources** - Confirm findings across Glean, Jira, GitHub, git

See `references/synthesis-reporting.md` for detailed synthesis techniques.

## Response Format

Structure research findings clearly:

**Executive Summary**: Direct answer (2-3 sentences)

**Key Findings**:
- Finding 1 with evidence
- Finding 2 with evidence
- Finding 3 with evidence

**Historical Context** (if relevant):
- Timeline of decisions and changes
- Stakeholders involved
- Business drivers

**References**:
- Jira: FX-1234
- PR: ezcater/ez-rails#5678
- Commit: abc123def
- Confluence: [Title](page-id)

## Quality Standards

- **Be specific**: Include ticket numbers, PR links, commit SHAs, dates
- **Cite sources**: Always reference where information was found
- **Acknowledge gaps**: State explicitly what couldn't be found
- **Distinguish facts from speculation**: Make clear what's confirmed vs. inferred
- **Anticipate follow-ups**: Address obvious related questions

## Common Research Scenarios

### Finding Original Implementation

1. Use `gh pr list --search "initial [feature]"` to find first PR
2. Check PR description for original requirements
3. Find linked Jira ticket for business context
4. Review commit messages for implementation decisions

### Understanding Recent Changes

1. Use `git log --since="1 month ago" --grep="[feature]"`
2. Check recent PRs with `gh pr list --search "is:merged [feature]"`
3. Search Glean for Slack discussions in recent timeframe
4. Check Jira for recent bugs or improvements

### Investigating Production Issues

1. Search Jira for related tickets: `atl jira search "project = FX AND text ~ 'error'"`
2. Find relevant code with Grep
3. Check git blame for recent changes
4. Search Glean for related incidents or postmortems

## Special Considerations

### EngPortal Documentation

EngPortal content comes from GitHub files:
- URL: `https://engportal.ezcater.com/docs/.../component/repo-name/path`
- Source: `https://github.com/ezcater/repo-name/blob/main/path.md`

Access via:
- Read file directly if repo checked out under `/Users/doughughes/code/ezcater`
- Ask Glean for engportal content
- Use `gh` CLI to read from GitHub

### Checked Out Repositories

If repository exists under `/Users/doughughes/code/ezcater`:
- Read files directly with Read tool
- Run git commands in repository directory
- Use grep/glob for code searches

### Multiple Projects

ezCater has many interconnected projects:
- ez-rails: Main monolith
- delivery-management-rails: Delivery tracking
- omnichannel-rails: Multi-channel features
- liberty: Mobile app backend

When researching cross-project features, check all relevant repositories.

## Additional Resources

### Reference Files

For detailed techniques and patterns, consult:
- **`references/glean-search-guide.md`** - Glean search strategies and datasource selection
- **`references/atlassian-cli-guide.md`** - Complete atl CLI command reference
- **`references/github-git-analysis.md`** - Advanced gh CLI and git history techniques
- **`references/synthesis-reporting.md`** - Connecting dots and reporting findings

### Example Files

Working examples of research investigations in `examples/`:
- **`examples/architectural-decision.md`** - Researching why a technology was chosen
- **`examples/code-evolution.md`** - Tracing feature implementation over time
- **`examples/process-understanding.md`** - Understanding workflows and state transitions

## When to Escalate to Deep Research Agent

Use the deep research agent (by saying "do deep research" or "deep research needed") when:
- Investigation requires synthesizing 5+ sources
- Need comprehensive historical timeline
- Architectural decision investigation spanning multiple systems
- Research involves connecting dots across quarters/years
- Question requires extensive Opus-level reasoning

For straightforward searches, PR lookups, or single-system investigations, this skill provides efficient guidance without the overhead of the autonomous agent.

Overview

This skill provides a practical methodology to investigate ezCater systems, code evolution, and architectural decisions for straightforward research requests. It guides you through the right internal tools, search patterns, and commands to locate design docs, PRs, Jira tickets, and git history. Use it for focused lookups and light synthesis without triggering a deep research workflow.

How this skill works

The skill prescribes a step-by-step approach: query indexed docs via Glean, run Atlassian CLI for Jira/Confluence lookups, search GitHub PRs with gh, and inspect repository history with git commands. It explains effective query patterns, which tools to use for each data source, and how to cross-reference findings to confirm conclusions. The output is a concise synthesis with citations and identified gaps.

When to use it

  • You need a quick explanation of why a specific technical decision was made (single-component).
  • Locate a PR, commit SHA, or Jira ticket related to a feature or bug.
  • Trace recent code changes or the history of a single file or module.
  • Understand a workflow or state transition by reading docs and related tests.
  • Search internal docs or Slack discussions indexed by Glean for focused context.

Best practices

  • Always use Glean MCP tools for Google Drive and Docs content; do not try to open Google Docs URLs directly.
  • Use the atl CLI for all Jira and Confluence queries to get reliable results and linkable references.
  • When searching GitHub, prefer gh CLI to list and view PRs and issues; use git log/blame for file-level history.
  • Be specific in queries: include feature names, component names, and common synonyms to avoid noisy results.
  • Cross-reference findings across at least two sources (e.g., PR + Jira, or commit + Confluence page) and explicitly note gaps or uncertainties.

Example use cases

  • Investigate why a legacy authentication library was chosen: search Glean for ADRs, list PRs with gh, and view related Jira tickets via atl.
  • Trace the evolution of an order-state file: run git log --follow -p on the file, find associated PRs, and search Confluence for process diagrams.
  • Find the original implementation PR for a feature: gh pr list with 'initial <feature>' then open linked Jira epic with atl.
  • Quickly gather evidence for a production bug: search Jira for incident tickets, grep the codebase for related functions, and check recent commits with git blame.

FAQ

Can this skill access Google Docs or Confluence URLs directly?

No. Use Glean MCP for Google Docs and the atl CLI for Confluence; direct URL access is not available.

When should I escalate to deep research?

Escalate when you need synthesis across 5+ disparate sources, a comprehensive historical timeline, or multi-system architectural analysis that requires extensive context.