Cross-Team RFC Draft
Draft an RFC for a change that crosses team, service, or product boundaries. The output is a review-ready RFC skeleton with named approvers, per-consumer-team migration windows, and a release-train-aware review order.
Required Loading
Always load:
prompts/rfc-skeleton.md— the 9-section RFC template; the per-consumer-team migration-window section.
When To Run
- Before any change that crosses a public interface (auth token format, event schema, public API contract).
- Before any deprecation proposal (an endpoint, a package, a feature flag).
- Before any shared-kernel extraction (a package, a service, a CI template).
- Before any vendor swap (Stripe → Adyen, Datadog → Honeycomb, etc.).
- When a team has been blocked by another team's calendar and needs a written proposal to push the conversation past chat threads.
Discovery Order
- Identify the proposed change (one sentence: what changes).
- Identify the author's team.
- Identify every consumer team (every team whose service / product consumes the changed interface, the changed package, or the changed endpoint).
- For each consumer team, find the next release-train slot.
- Find the consumer-side deprecation window (the time between "we tell them" and "we cut them off").
- Find the per-consumer-team migration cost (small / medium / large) — usually from a past similar migration.
- Draft the 9 sections in order, with the per-consumer-team migration window section filled for each consumer.
Output Contract
The RFC is a single Markdown document with 9 sections in a fixed order. Each section has a fixed shape. The consumer-team section is per-team: for each consumer, the migration window, the named approver, the suggested review order.
Tools
codegraph_impact— every downstream consumer of the changed interface.codegraph_files— path → owner (for the per-consumer-team attribution).codegraph_callers— every site that calls into the interface.codegraph_search— locate the interface / contract.- Fallback — manual CODEOWNERS + consumer enumeration.
Fallback
If CodeGraph is unavailable, the fallback is manual CODEOWNERS + consumer enumeration. The final report must include the line:
CodeGraph unavailable; rfc gathered by rg/file inspection.
Related Skills
spec-doc-linter— keepsDevAgent.md/CONTEXT.mdhonest.code-ownership-impact— the per-PR packet; this skill is the long-form RFC.goal-driven-development— orchestrates the spec-to-code flow; this skill is the cross-team counterpart.
Examples
Each bad-* doc has a matching good-* in examples/ showing the minimum RFC. Read them side by side to calibrate depth. examples/rfc-output.md is the canonical "what the agent should emit" sample.