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
♻️ Simplify structured output types to use markdown-based content
Replace complex structured JSON schemas (GeneratedPullRequest,
ChangelogResponse,
ReleaseNotesResponse) with simpler Markdown* types that wrap a single content
field.
This lets the LLM drive output structure while capability TOMLs provide
guidelines.
Changes:
- Add MarkdownChangelog, MarkdownPullRequest, MarkdownReleaseNotes types
- Update capability TOML prompts to request free-form markdown in content
field
- Refactor iris.rs to dispatch on new type names and use raw_content()/
format()
- Add list_directory() helper to file_read.rs for graceful directory handling
- Update tests to work with markdown-based assertions instead of structured
fields
- Clean up unused imports and remove format_pull_request() helper
The Markdown* types use render_markdown_for_terminal() for styled CLI output
while raw_content() provides clean markdown for file output or web UIs.
description = "Generate changelogs from Git commits and changes"
3
-
output_type = "ChangelogResponse"
3
+
output_type = "MarkdownChangelog"
4
4
5
5
task_prompt = """
6
-
You are Iris, an expert release engineer producing a structured changelog for the specified Git range. Match the legacy CLI exactly so downstream tooling parses the JSON without post-processing.
6
+
You are Iris, an expert release engineer producing a changelog entry for the specified Git range in Keep a Changelog format.
"content": "## [1.2.0] - 2024-01-15\n\nThis release introduces **parallel analysis** for large changesets and improves agent reliability.\n\n### Added\n\n- Add `parallel_analyze` tool for concurrent subagent processing (abc1234)\n- Add `workspace` tool for agent notes and task management (def5678)\n\n### Changed\n\n- Rename `changes/` module to `changelog.rs` for cleaner structure\n- Update token limits from 8K to 16K for complex outputs\n\n### Fixed\n\n- Fix memory leak in `cache_handler` when processing large diffs (ghi9012)\n- Fix JSON parsing for responses with trailing commas\n\n### Breaking Changes\n\n- **Remove MCP server** (`git-iris serve` command and all MCP tooling)\n - Users should migrate to direct CLI usage\n\n### Metrics\n\n- Total Commits: 12\n- Files Changed: 23\n- Insertions: +1,245\n- Deletions: -387"
59
99
}
60
100
```
61
101
62
-
- **You must emit all six section keys exactly as shown, even if some arrays are empty.** Do not rename them (no "Features" or "Bug Fixes").
63
-
- Descriptions must cite concrete artifacts (files, modules, commands) and the motivation/impact.
64
-
- Use associated_issues/pull_request whenever data is available; otherwise leave arrays empty / null.
65
-
66
102
## Tone & Emoji Policy
67
103
- Keep language precise and high-signal. NO YAPPING.
68
-
- When gitmoji mode is enabled: Start each description with an emoji matching the change type (✨ Added, 🔄 Changed, 🐛 Fixed, 🔒 Security, ⚠️ Deprecated, 🔥 Removed). Never modify JSON keys or section names; enum strings must stay plain text.
69
-
- When gitmoji mode is disabled (or conventional preset): Do not emit emojis in descriptions.
104
+
- When gitmoji mode is enabled: Start each entry with an emoji matching the change type (✨ Added, 🔄 Changed, 🐛 Fixed, 🔒 Security, ⚠️ Deprecated, 🔥 Removed).
105
+
- When gitmoji mode is disabled: No emojis in descriptions.
70
106
71
107
## Detail Level Adaptation
72
-
Adapt your output based on the detail level specified in the user prompt:
73
-
- **Minimal**: 1-2 entries per section, brief descriptions, no associated issues/PRs
108
+
Adapt your output based on the detail level specified:
109
+
- **Minimal**: 1-2 entries per section, brief descriptions
74
110
- **Standard** (default): 2-4 entries per section, balanced descriptions with commit refs
75
-
- **Detailed**: 3-5+ entries per section, full descriptions with all metadata (issues, PRs, impact)
76
-
77
-
## Writing Guidelines
78
-
- Use present tense and imperative mood ("Add X" not "Added X")
79
-
- Start each entry with capital letter, no ending period
0 commit comments