fxa-changelog

Generates two-audience changelogs from merged PRs in the FxA monorepo.

685|236|Updated Jun 3, 2015
One-click install
npx skills add https://github.com/mozilla/fxa --skill fxa-changelog
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fxa-changelog
Source: https://github.com/mozilla/fxa/tree/main/.claude/skills/fxa-changelog
Command: npx skills add https://github.com/mozilla/fxa --skill fxa-changelog

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Writing a train handoff for the Firefox Accounts monorepo means manually reviewing dozens of merged PRs, matching them to Jira tickets, and translating engineering work into product language. This Skill automates that entire pipeline, producing one document that serves both a product audience and the engineer picking up the work.

Core Features & Use Cases

  • Deterministic git scanning: A Python script walks the first-parent history of a train range, extracts PR numbers and Jira keys, classifies entries (SubPlat exclusions, dependency noise, reverted pairs), and detects release-tag containment and cherry-picks.
  • Two-audience output: Produces a plain-language product summary with epic milestones and story points, plus an engineer handoff with PR links, operational gotchas (migrations, config keys, API changes), and deploy state per workstream.
  • Jira reconciliation: Cross-checks tickets resolved in the window against PRs in the repo, finding work that landed in other repositories or resolved without code.
  • Optional Confluence publishing: With the --publish flag, writes the changelog as a child page under a train handoff index in Confluence.
  • Use Case: A train owner runs the skill for train 341 and receives a train-341.md file covering every PR merged since the v1.340.0 tag, ready to share with product and engineering stakeholders.

Quick Start

Ask the assistant to generate the changelog for train 341, or invoke it with no argument to cover the current in-development train on main.

Frequently Asked Questions about fxa-changelog

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a changelog for a Firefox Accounts release train?

Invoke the skill with a train number, such as train 341, and it resolves the range from the previous train's v1.NNN.0 base tag to that train's tag or HEAD. With no argument it defaults to the in-development train on main.

How does the skill match merged PRs to Jira tickets?

The scan script extracts Jira keys from branch names, commit subjects, and bodies using a regex. Enrichment collectors then fetch each ticket's summary, epic parent, and story points via the Atlassian MCP, falling back to the acli CLI when the MCP is unavailable.

Can the changelog be published to Confluence automatically?

Yes, passing the --publish flag creates or updates a child page per train under a handoff index page in the PXI Confluence space. Publishing requires the Atlassian MCP to be connected; the run fails fast before scanning if it is not.

Why are payments and subscriptions PRs missing from the changelog?

SubPlat work is excluded by design: PAY- and ENT- tickets, payments scopes, and payments package paths are filtered out by constants in the scan script. Exclusions are counted honestly in the coverage note rather than silently dropped.

What happens to security-sensitive fixes in the changelog?

Security-sensitive entries are redacted: the engineer section shows only a link like Security fix — see FXA-NNNNN with no vulnerability details, and the product section shows only a count. Restricted Jira tickets are marked as expected, not fetch failures.

What are the limitations of the cross-repository ticket search?

The reconciliation phase searches GitHub only, so work landed in mozilla-central (hg) or private repositories will not be found. Tickets with no code anywhere are listed under Resolved without linked code rather than being dropped.