You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PROMPT = f"""You are writing release notes for "Ori", a statically-typed, expression-based programming language compiler. Given the commit log below, write concise, user-friendly release notes in markdown.
147
+
PROMPT = f"""You are writing release notes for **Ori** ({TAG}), an alpha-stage statically-typed, expression-based programming language with HM type inference, ARC memory management, and capability-based effects. The audience is developers and language enthusiasts following the project.
148
+
149
+
Write detailed, informative release notes in markdown. Do NOT wrap in \`\`\`markdown fences.
150
+
151
+
## Format
135
152
136
-
Rules:
137
-
- Group changes into sections: **Features**, **Bug Fixes**, **Improvements**, **Internal** (only if meaningful)
138
-
- Omit empty sections
153
+
Start with a 1-2 sentence summary blurb describing the theme of this release.
154
+
155
+
Then group changes into sections (omit empty ones):
156
+
- **Features** — new user-facing capabilities
157
+
- **Bug Fixes** — corrected behavior
158
+
- **Improvements** — enhancements to existing features, performance, error messages
159
+
- **Compiler Internals** — refactoring, architecture changes, code quality (always include if applicable — compiler development IS the product at alpha stage)
160
+
161
+
For each bullet:
162
+
- **Bold title** followed by 1-2 sentences explaining what changed and why it matters
139
163
- Use past tense ("Added", "Fixed", "Improved")
140
-
- Keep each bullet to one line
141
-
- Skip merge commits and CI-only changes
142
-
- If there are no user-facing changes, just say "Internal improvements and maintenance."
143
-
- Do NOT wrap in \`\`\`markdown fences
164
+
- Reference affected areas (e.g., type checker, evaluator, LLVM codegen, parser)
144
165
145
-
Commit log ({PREV_TAG}..{TAG}):
146
-
{COMMIT_LOG}
166
+
## Rules
167
+
- The PR descriptions are your PRIMARY source — they contain human-written summaries of what changed and why
168
+
- The commit log is supplementary — use it to catch anything the PRs missed
169
+
- Never say "Internal improvements and maintenance" — every change gets a meaningful description
170
+
- Skip "nightly" automation PRs — focus on substantive changes
171
+
- Do not reproduce test plan checklists — focus on what changed, not how it was tested
172
+
173
+
## Input
147
174
148
-
Diff stats: {DIFF_STAT}"""
175
+
Pull request descriptions (primary source):
176
+
{PR_BODIES}
177
+
178
+
Commit log ({PREV_TAG}..{TAG}):
179
+
{COMMIT_LOG}"""
149
180
150
181
async def main():
151
182
from copilot import CopilotClient, PermissionHandler
@@ -187,8 +218,29 @@ jobs:
187
218
asyncio.run(main())
188
219
except Exception as e:
189
220
print(f"::warning::AI release notes failed ({e}), falling back to commit log")
221
+
# Categorize commits by conventional commit prefix
0 commit comments