feat(deploy): add LLM agentic release notes skill suite for Data Commons Platform - #200
Conversation
- Add ComponentConfig and SourceRule multi-repository mapping rules in config.py - Add PullRequest, ComponentVersionInfo, and ReleaseInfoManifest models in models.py - Add PRExtractor with gcloud container image tag lookup and single-call gh pr list date search in pr_extractor.py - Add unit and integration tests in deploy/generate_release_notes/tests/ - Add generate-release-notes dependency group to pyproject.toml
…or to exclude post-release PRs
…passing missing image errors
…i pipeline (Flash + Pro) - Add Two-Stage Gemini LLM Pipeline in feature_extractor.py (Stage 1 Flash noise filter + Stage 2 Pro synthesis and SOP classification) - Add unit tests with mocked Gemini Client in test_feature_extractor.py
…ed PR IDs, SOPCategory enum, merged_at timestamps)
… FeatureUpdate model and Stage 2 Gemini prompt
…er using Gemini Pro - Add ReleaseNotesWriter in release_notes_writer.py with agentic prompt following streamlined DCP template - Add unit and integration test suite in test_release_notes_writer.py
…eration tool - Connect Step 1 (PRExtractor), Step 2 (FeatureExtractor), and Step 3 (ReleaseNotesWriter) into click CLI - Add test_main.py unit test suite
…ase_notes execution
…-2.5-pro for API compatibility
…nd synthesis model to gemini-2.5-pro
…2 synthesis and Step 3 writing
…file path rules into Stage 2 prompt
…etails across Feature Extractor and Release Notes Writer
…ipeline with direct bot/noise filtering instructions
…tform (focus on Ingestion Inputs & APIs, de-emphasize Spanner DB layer, drop internal testing)
…ng so t_max extends to current time for all repos
…de-emphasize Spanner DB layer in Release Notes Writer
…move backticks around PR links
…Enabled, focusing on explicit user actions and input types
… schema to use actionable use cases
…to feature_extractor.py
… vs DON'T table to release_notes_writer.py
…budgets to release notes prompts
…X ESPv2 mixer context
…gressions helper in FeatureExtractor
…ASE_NOTES_v1.1.1.md
…elease notes skills and README
…dynamically with release size
… output directory
There was a problem hiding this comment.
Code Review
This pull request introduces an agentic, skill-driven tool suite for generating partner-facing release notes for the Data Commons Platform (DCP), adding orchestrator and subagent skills alongside configuration and dependency updates in pyproject.toml and uv.lock. The review feedback highlights several necessary improvements, including resolving inconsistencies in the README regarding the number of skills and executive summary rules, replacing LaTeX arrows with standard Unicode arrows for proper markdown rendering, formatting the gcloud timestamp output to UTC to avoid timezone mismatches, and removing a contradiction in the release-writer skill instructions where a banned word was used.
…nd update skill descriptions
…h for component and repository mapping
…Start at top and architecture at end
…dcp-context SKILL.md
…ter SKILL.md and clean dcp-context SKILL.md
…touchpoints vs internal mechanics, and single source of truth mapping
…ards with Prime Directives, CoT phases, and zero fluff guidelines
…pointers to README.md
…ectory path filtering in release notes skills
|
|
||
| ### Step 2: Mandated Scale Analysis & Banned-Word Audit (Thinking Phase) | ||
| Open a `<thinking>` block to record your pre-writing analysis: | ||
| 1. **Scope Evaluation**: Assess whether this is a Major/Feature-Rich release or a Small/Patch release. |
There was a problem hiding this comment.
Do we give examples of these somewhere?
There was a problem hiding this comment.
add a few examples inline
|
|
||
| - **Partner & Operator Persona**: Write specifically for external developers, data engineers, and instance operators building ON TOP OF DCP. Frame features around user capabilities and touchpoints defined in `skills/dcp-context/SKILL.md`. | ||
| - **Zero Internal Database Terms (STRICT)**: NEVER output feature titles or section names containing internal database table names, schema DDLs, or storage migration mechanics (e.g. no "KeyValueStore", "Spanner Graph DDL", "Bigtable Cutover"). Frame latency improvements around user impact (e.g. *"API Serving Latency & Query Throughput"*). | ||
| - **Tone**: Direct, factual, punchy, senior-engineer technical changelog. Active voice for features ("You can now..."), past tense for bugs ("Resolved..."). |
| - Cloud Workflows internal execution IDs and status tracking tables (`IngestionHistory`). | ||
| - Internal SQL parameter unrolling and join ordering optimizations. | ||
|
|
||
| ### D. Sequential Decision SOP for Evaluating PR Relevance |
There was a problem hiding this comment.
reduced jargon by replacing the heading with "E. Step-by-Step Decision Process for Evaluating PR Relevance"
(SOP = standard operating procedure)
|
|
||
| When analyzing Pull Requests and synthesizing release notes, agents MUST categorize changes based on **where and how the user or operator interacts with the platform**: | ||
|
|
||
| ### A. Data Input & Ingestion Pipeline (What Data Engineers & Operators Care About) |
There was a problem hiding this comment.
On top of data engineers, we have the platform maintainers / managers - do we need a section for that (who are different than the data engineers)?
There was a problem hiding this comment.
added section for Platform Infrastructure & DevOps
…, SOP phrasing, and DevOps persona separation
|
Thanks! Addressed feedback in clincoln8@62f0a57 |
Description
This PR introduces an end-to-end, LLM-native Skill Suite for generating publication-ready, partner-facing release notes for the Data Commons Platform (DCP) stack.
Instead of relying on rigid Python CLI scripts or manual PR curation, this tool provides a 4-step agentic workflow using LLM subagents and structured verification checkpoints:
Architecture & Skill Suite Breakdown:
deploy/generate_release_notes/SKILL.md): Entrypoint skill that orchestrates the release notes pipeline across 6 repositories and 6 container images.deploy/generate_release_notes/skills/pr-extraction/SKILL.md): Instructs subagents to resolve image tags across Artifact Registry (with user prompt fallback on missing tags), query merged PRs viagh pr list, extract change summaries & DCP impact, filter out intermediate release-window regressions and Base DC flag flips, and output human-verifiable text files (prs_*.txt).deploy/generate_release_notes/skills/release-delta-synthesis/SKILL.md): Analyzes allprs_*.txtfiles to distinguish true platform bug fixes present in prior releases vs. intra-release intermediate fixes, synthesizes salient features per container image (separating Mixer, MCP Agent Toolkit, and Website UI into distinct sections), and outputsIMAGE_DELTAS_<version>.txt.deploy/generate_release_notes/skills/dcp-context/SKILL.md): Architectural reference mapping DCP components, persona principles (external contracts, zero internal DB table exposure), and section mapping rules.deploy/generate_release_notes/skills/release-writer/SKILL.md): Authors publication-ready release notes with dynamic Executive Summary scaling (2-3 sentences for major releases, 1 sentence for patch releases), two-tier Key Feature Updates (What's New + Specific Capabilities), GFM links ([repo#PR](URL)), and 4 grouped Bug Fix categories.deploy/generate_release_notes/README.md): Comprehensive instructions for developers on how to prompt their LLM agent to execute the pipeline.Technical Highlights
prs_*.txtincludes a 1-sentenceReason:explaining why it was excluded.KeyValueStore,IngestionHistory) for partner-facing clarity.Verification
v1.1.0->v1.1.1(RELEASE_NOTES_v1.1.1.mdandIMAGE_DELTAS_v1.1.1.txt).[repo#PR](URL)without backtick formatting errors.