@oh-my-pi/pi-coding-agent 10.2.2 → 10.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/package.json +7 -7
- package/src/commit/agentic/prompts/analyze-file.md +7 -7
- package/src/commit/agentic/prompts/session-user.md +4 -4
- package/src/commit/agentic/prompts/system.md +14 -16
- package/src/commit/prompts/analysis-system.md +7 -9
- package/src/commit/prompts/analysis-user.md +0 -3
- package/src/commit/prompts/changelog-system.md +14 -19
- package/src/commit/prompts/file-observer-system.md +2 -2
- package/src/commit/prompts/reduce-system.md +13 -23
- package/src/commit/prompts/summary-system.md +7 -21
- package/src/config/settings-schema.ts +135 -38
- package/src/cursor.ts +2 -1
- package/src/extensibility/extensions/index.ts +0 -11
- package/src/extensibility/extensions/types.ts +1 -30
- package/src/extensibility/hooks/types.ts +1 -31
- package/src/index.ts +0 -11
- package/src/ipy/prelude.py +1 -113
- package/src/lsp/index.ts +66 -515
- package/src/lsp/render.ts +0 -11
- package/src/lsp/types.ts +3 -87
- package/src/modes/components/settings-defs.ts +3 -2
- package/src/modes/components/settings-selector.ts +14 -14
- package/src/modes/theme/theme.ts +45 -1
- package/src/prompts/agents/designer.md +23 -27
- package/src/prompts/agents/explore.md +28 -38
- package/src/prompts/agents/init.md +17 -17
- package/src/prompts/agents/plan.md +21 -27
- package/src/prompts/agents/reviewer.md +37 -37
- package/src/prompts/compaction/branch-summary.md +9 -9
- package/src/prompts/compaction/compaction-summary.md +8 -12
- package/src/prompts/compaction/compaction-update-summary.md +17 -19
- package/src/prompts/review-request.md +12 -13
- package/src/prompts/system/custom-system-prompt.md +6 -26
- package/src/prompts/system/plan-mode-active.md +23 -35
- package/src/prompts/system/plan-mode-subagent.md +7 -7
- package/src/prompts/system/subagent-system-prompt.md +7 -7
- package/src/prompts/system/system-prompt.md +84 -125
- package/src/prompts/system/web-search.md +10 -10
- package/src/prompts/tools/ask.md +12 -15
- package/src/prompts/tools/bash.md +7 -7
- package/src/prompts/tools/exit-plan-mode.md +6 -6
- package/src/prompts/tools/gemini-image.md +4 -4
- package/src/prompts/tools/grep.md +4 -4
- package/src/prompts/tools/lsp.md +12 -19
- package/src/prompts/tools/patch.md +26 -30
- package/src/prompts/tools/python.md +14 -57
- package/src/prompts/tools/read.md +4 -4
- package/src/prompts/tools/replace.md +8 -8
- package/src/prompts/tools/ssh.md +14 -27
- package/src/prompts/tools/task.md +23 -35
- package/src/prompts/tools/todo-write.md +29 -38
- package/src/prompts/tools/write.md +3 -3
- package/src/sdk.ts +0 -2
- package/src/session/agent-session.ts +27 -6
- package/src/system-prompt.ts +1 -219
- package/src/task/agents.ts +2 -1
- package/src/tools/bash-interceptor.ts +0 -24
- package/src/tools/bash.ts +1 -7
- package/src/tools/index.ts +8 -3
- package/src/tools/read.ts +74 -17
- package/src/tools/renderers.ts +0 -2
- package/src/lsp/rust-analyzer.ts +0 -184
- package/src/tools/ls.ts +0 -307
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,51 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [10.2.3] - 2026-02-02
|
|
6
|
+
### Added
|
|
7
|
+
|
|
8
|
+
- Added `find.enabled`, `grep.enabled`, `ls.enabled`, `notebook.enabled`, `fetch.enabled`, `web_search.enabled`, `lsp.enabled`, and `calc.enabled` settings to control availability of individual tools
|
|
9
|
+
- Added conditional tool documentation in system prompt that dynamically lists only enabled specialized tools
|
|
10
|
+
- Added `todos.enabled` setting to control availability of the todo_write tool for task tracking
|
|
11
|
+
- Added `tools` field to agent frontmatter for declaring agent-specific tool capabilities
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Consolidated `symbols` action to handle both file-based document symbols and workspace symbol search (query-based)
|
|
16
|
+
- Consolidated `diagnostics` action to handle both single-file and workspace-wide diagnostics (no file = workspace)
|
|
17
|
+
- Simplified `reload` action to gracefully reload language server with fallback to kill
|
|
18
|
+
- Updated LSP tool documentation to reflect simplified operation set and consolidated actions
|
|
19
|
+
- Reorganized settings tabs from 8 to 9 tabs with clearer categorization: Display, Agent, Input, Tools, Config, Services, Bash, LSP, and TTSR
|
|
20
|
+
- Moved behavior-related settings to new Agent tab for better organization
|
|
21
|
+
- Moved input/interaction settings to new Input tab
|
|
22
|
+
- Moved tool configuration settings to new Config tab
|
|
23
|
+
- Moved provider and service settings to new Services tab
|
|
24
|
+
- Added visual icons to settings tabs using theme symbols for improved UI clarity
|
|
25
|
+
- Changed default settings tab from Behavior to Display on startup
|
|
26
|
+
- Updated `read` tool to handle directory paths by returning formatted listings with modification times instead of redirecting to `ls`
|
|
27
|
+
- Updated tool documentation to reflect that `read` now handles both files and directories
|
|
28
|
+
- Updated system prompt tool precedence section to conditionally display only available specialized tools based on enabled settings
|
|
29
|
+
- Renamed todo completion settings from `todoCompletion.*` to `todos.reminders.*` and `todos.enabled` for clearer organization
|
|
30
|
+
- Updated todo reminder logic to check both `todos.reminders` and `todos.enabled` settings independently
|
|
31
|
+
|
|
32
|
+
### Removed
|
|
33
|
+
|
|
34
|
+
- Removed Rust-analyzer specific LSP operations: `flycheck`, `expand_macro`, `ssr`, `runnables`, `related_tests`, and `reload_workspace`
|
|
35
|
+
- Removed `workspace_diagnostics` action; use `diagnostics` without file parameter instead
|
|
36
|
+
- Removed `workspace_symbols` action; use `symbols` with query parameter and no file instead
|
|
37
|
+
- Removed `actions`, `incoming_calls`, and `outgoing_calls` LSP operations
|
|
38
|
+
- Removed `replacement`, `kind`, `action_index`, `end_line`, and `end_character` parameters from LSP tool
|
|
39
|
+
- Removed Python prelude helper functions: `pwd()`, `mkdir()`, `ls()`, `head()`, `tail()`, `sh()`, `cat()`, `touch()`, `wc()`, `basenames()`, and `batch()`
|
|
40
|
+
- Removed type guard functions (`isBashToolResult`, `isReadToolResult`, `isEditToolResult`, `isWriteToolResult`, `isGrepToolResult`, `isFindToolResult`, `isLsToolResult`) from public API exports
|
|
41
|
+
- Removed `ls` tool—directory listing is now handled by the `read` tool
|
|
42
|
+
- Removed `ls.enabled` setting and related configuration options
|
|
43
|
+
- Removed `bashInterceptor.simpleLs` setting that redirected simple `ls` commands to the dedicated tool
|
|
44
|
+
- Removed project tree snapshot generation from system prompt (unused feature)
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Fixed tool parameter schemas displaying internal TypeBox metadata fields in system prompt
|
|
49
|
+
|
|
5
50
|
## [10.2.1] - 2026-02-02
|
|
6
51
|
### Breaking Changes
|
|
7
52
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-my-pi/pi-coding-agent",
|
|
3
|
-
"version": "10.2.
|
|
3
|
+
"version": "10.2.3",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"ompConfig": {
|
|
@@ -79,12 +79,12 @@
|
|
|
79
79
|
"test": "bun test"
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@oh-my-pi/omp-stats": "10.2.
|
|
83
|
-
"@oh-my-pi/pi-agent-core": "10.2.
|
|
84
|
-
"@oh-my-pi/pi-ai": "10.2.
|
|
85
|
-
"@oh-my-pi/pi-natives": "10.2.
|
|
86
|
-
"@oh-my-pi/pi-tui": "10.2.
|
|
87
|
-
"@oh-my-pi/pi-utils": "10.2.
|
|
82
|
+
"@oh-my-pi/omp-stats": "10.2.3",
|
|
83
|
+
"@oh-my-pi/pi-agent-core": "10.2.3",
|
|
84
|
+
"@oh-my-pi/pi-ai": "10.2.3",
|
|
85
|
+
"@oh-my-pi/pi-natives": "10.2.3",
|
|
86
|
+
"@oh-my-pi/pi-tui": "10.2.3",
|
|
87
|
+
"@oh-my-pi/pi-utils": "10.2.3",
|
|
88
88
|
"@openai/agents": "^0.4.4",
|
|
89
89
|
"@sinclair/typebox": "^0.34.48",
|
|
90
90
|
"ajv": "^8.17.1",
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
Analyze
|
|
1
|
+
Analyze file at {{file}}.
|
|
2
2
|
|
|
3
3
|
Goal:
|
|
4
4
|
{{#if goal}}
|
|
5
5
|
{{goal}}
|
|
6
6
|
{{else}}
|
|
7
|
-
Summarize
|
|
7
|
+
Summarize purpose and commit-relevant changes.
|
|
8
8
|
{{/if}}
|
|
9
9
|
|
|
10
|
-
Return
|
|
11
|
-
- summary: one-sentence description of
|
|
10
|
+
Return concise JSON object with:
|
|
11
|
+
- summary: one-sentence description of file's role
|
|
12
12
|
- highlights: 2-5 bullet points about notable behaviors or changes
|
|
13
|
-
- risks:
|
|
13
|
+
- risks: edge cases or risks worth noting (empty array if none)
|
|
14
14
|
|
|
15
15
|
{{#if related_files}}
|
|
16
16
|
## Other Files in This Change
|
|
17
17
|
{{related_files}}
|
|
18
18
|
|
|
19
|
-
Consider how
|
|
19
|
+
Consider how file's changes relate to above files.
|
|
20
20
|
{{/if}}
|
|
21
21
|
|
|
22
|
-
Call
|
|
22
|
+
Call submit_result tool with JSON payload.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Generate
|
|
1
|
+
Generate conventional commit proposal for current staged changes.
|
|
2
2
|
|
|
3
3
|
{{#if user_context}}
|
|
4
4
|
User context:
|
|
@@ -6,13 +6,13 @@ User context:
|
|
|
6
6
|
{{/if}}
|
|
7
7
|
|
|
8
8
|
{{#if changelog_targets}}
|
|
9
|
-
Changelog targets (
|
|
9
|
+
Changelog targets (must call propose_changelog for these files):
|
|
10
10
|
{{changelog_targets}}
|
|
11
11
|
{{/if}}
|
|
12
12
|
|
|
13
13
|
{{#if existing_changelog_entries}}
|
|
14
14
|
## Existing Unreleased Changelog Entries
|
|
15
|
-
|
|
15
|
+
May include entries from list in propose_changelog `deletions` field for removal.
|
|
16
16
|
{{#each existing_changelog_entries}}
|
|
17
17
|
### {{path}}
|
|
18
18
|
{{#each sections}}
|
|
@@ -22,4 +22,4 @@ You may include entries from this list in the propose_changelog `deletions` fiel
|
|
|
22
22
|
{{/each}}
|
|
23
23
|
{{/if}}
|
|
24
24
|
|
|
25
|
-
Use
|
|
25
|
+
Use git_* tools to inspect changes. Call analyze_files for deeper per-file summaries. Finish with propose_commit or split_commit.
|
|
@@ -1,40 +1,38 @@
|
|
|
1
|
-
You are
|
|
1
|
+
You are omp commit workflow's conventional commit expert.
|
|
2
2
|
|
|
3
|
-
Your job: decide
|
|
3
|
+
Your job: decide needed git info, gather via tools, then call exactly one:
|
|
4
4
|
- propose_commit (single commit)
|
|
5
5
|
- split_commit (multiple commits when changes are unrelated)
|
|
6
6
|
|
|
7
7
|
Workflow rules:
|
|
8
8
|
1. Always call git_overview first.
|
|
9
|
-
2. Keep tool calls minimal: prefer 1-2 git_file_diff calls
|
|
10
|
-
3. Use git_hunk only for
|
|
9
|
+
2. Keep tool calls minimal: prefer 1-2 git_file_diff calls for key files (hard limit 2).
|
|
10
|
+
3. Use git_hunk only for large diffs.
|
|
11
11
|
4. Use recent_commits only if you need style context.
|
|
12
|
-
5. Use analyze_files only when diffs
|
|
12
|
+
5. Use analyze_files only when diffs too large or unclear.
|
|
13
13
|
6. Do not use read.
|
|
14
|
-
7. When confident, submit the final proposal with propose_commit or split_commit.
|
|
15
14
|
|
|
16
15
|
Commit requirements:
|
|
17
|
-
- Summary line
|
|
16
|
+
- Summary line: past-tense verb, <= 72 chars, no trailing period.
|
|
18
17
|
- Avoid filler words: comprehensive, various, several, improved, enhanced, better.
|
|
19
18
|
- Avoid meta phrases: "this commit", "this change", "updated code", "modified files".
|
|
20
|
-
- Scope
|
|
21
|
-
- Detail lines
|
|
22
|
-
- Use the conventional commit type guidance below.
|
|
19
|
+
- Scope: lowercase, max two segments; only letters, digits, hyphens, underscores.
|
|
20
|
+
- Detail lines optional (0-6). Each sentence ending in period, <= 120 chars.
|
|
23
21
|
|
|
24
22
|
Conventional commit types:
|
|
25
23
|
{{types_description}}
|
|
26
24
|
|
|
27
25
|
Tool guidance:
|
|
28
|
-
- git_overview: staged
|
|
26
|
+
- git_overview: staged files, stat summary, numstat, scope candidates
|
|
29
27
|
- git_file_diff: diff for specific files
|
|
30
|
-
- git_hunk:
|
|
28
|
+
- git_hunk: specific hunks for large diffs
|
|
31
29
|
- recent_commits: recent commit subjects + style stats
|
|
32
|
-
- analyze_files: spawn quick_task subagents in parallel
|
|
30
|
+
- analyze_files: spawn quick_task subagents in parallel for analysis
|
|
33
31
|
- propose_changelog: provide changelog entries for each changelog target
|
|
34
32
|
- propose_commit: submit final commit proposal and run validation
|
|
35
|
-
- split_commit: propose multiple commit groups (no overlapping files
|
|
33
|
+
- split_commit: propose multiple commit groups (no overlapping files; all staged files covered)
|
|
36
34
|
|
|
37
35
|
## Changelog Requirements
|
|
38
36
|
|
|
39
|
-
If changelog targets
|
|
40
|
-
If you propose
|
|
37
|
+
If changelog targets provided, you MUST call `propose_changelog` before finishing.
|
|
38
|
+
If you propose split commit plan, include changelog target files in relevant commit changes.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<context>
|
|
2
|
-
|
|
2
|
+
Senior release engineer writing precise, changelog-ready commit classifications.
|
|
3
3
|
</context>
|
|
4
4
|
|
|
5
5
|
<instructions>
|
|
6
|
-
Classify
|
|
6
|
+
Classify git diff into conventional commit format.
|
|
7
7
|
## 1. Determine Scope
|
|
8
8
|
|
|
9
|
-
Apply scope when 60%+
|
|
9
|
+
Apply scope when 60%+ line changes target single component:
|
|
10
10
|
- 150 lines in src/api/, 30 in src/lib.rs -> "api"
|
|
11
11
|
- 50 lines in src/api/, 50 in src/types/ -> null (50/50 split)
|
|
12
12
|
|
|
13
|
-
Use null for: cross-cutting changes,
|
|
13
|
+
Use null for: cross-cutting changes, project-wide refactoring.
|
|
14
14
|
|
|
15
15
|
Forbidden scopes (use null): src, lib, include, tests, benches, examples, docs, project name, app, main, entire, all, misc.
|
|
16
16
|
|
|
17
|
-
Prefer scopes from <common_scopes> over inventing new
|
|
17
|
+
Prefer scopes from <common_scopes> over inventing new.
|
|
18
18
|
## 2. Generate Details (0-6 items)
|
|
19
19
|
|
|
20
20
|
Each detail:
|
|
@@ -52,7 +52,7 @@ user_visible: true for: new features, APIs, breaking changes, user-affecting bug
|
|
|
52
52
|
|
|
53
53
|
user_visible: false for: internal refactoring, performance optimizations (unless documented), test/build/CI, code style.
|
|
54
54
|
|
|
55
|
-
Omit changelog_category when user_visible
|
|
55
|
+
Omit changelog_category when user_visible false.
|
|
56
56
|
</instructions>
|
|
57
57
|
|
|
58
58
|
<output_format>
|
|
@@ -147,6 +147,4 @@ Call create_conventional_analysis with:
|
|
|
147
147
|
"issue_refs": []
|
|
148
148
|
}
|
|
149
149
|
</example>
|
|
150
|
-
</examples>
|
|
151
|
-
|
|
152
|
-
Be thorough. This matters.
|
|
150
|
+
</examples>
|
|
@@ -17,11 +17,9 @@
|
|
|
17
17
|
{{ types_description }}
|
|
18
18
|
</commit_types>
|
|
19
19
|
{{/if}}
|
|
20
|
-
|
|
21
20
|
<diff_statistics>
|
|
22
21
|
{{ stat }}
|
|
23
22
|
</diff_statistics>
|
|
24
|
-
|
|
25
23
|
<scope_candidates>
|
|
26
24
|
{{ scope_candidates }}
|
|
27
25
|
</scope_candidates>
|
|
@@ -35,7 +33,6 @@
|
|
|
35
33
|
{{ recent_commits }}
|
|
36
34
|
</style_patterns>
|
|
37
35
|
{{/if}}
|
|
38
|
-
|
|
39
36
|
<diff>
|
|
40
37
|
{{ diff }}
|
|
41
38
|
</diff>
|
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
You
|
|
1
|
+
You're expert changelog writer analyzing git diffs to produce Keep a Changelog entries.
|
|
2
2
|
|
|
3
3
|
<instructions>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
3. Write entries starting with past-tense verb describing user impact
|
|
8
|
-
4. Omit categories with no entries
|
|
9
|
-
5. Return empty entries object for internal-only changes
|
|
10
|
-
|
|
11
|
-
This matters. Be thorough but precise.
|
|
4
|
+
1. Identify only user-visible changes
|
|
5
|
+
2. Categorize each change (use categories below)
|
|
6
|
+
3. Omit categories with no entries
|
|
12
7
|
</instructions>
|
|
13
8
|
|
|
14
9
|
<categories>
|
|
15
10
|
- Added: New features, public APIs, user-facing capabilities
|
|
16
|
-
- Changed: Modified
|
|
11
|
+
- Changed: Modified behavior
|
|
17
12
|
- Deprecated: Features scheduled for removal
|
|
18
13
|
- Removed: Deleted features or APIs
|
|
19
|
-
- Fixed: Bug
|
|
14
|
+
- Fixed: Bug fixes with observable impact
|
|
20
15
|
- Security: Vulnerability fixes
|
|
21
|
-
- Breaking Changes: API-incompatible
|
|
16
|
+
- Breaking Changes: API-incompatible changes (use sparingly)
|
|
22
17
|
</categories>
|
|
23
18
|
|
|
24
19
|
<entry_format>
|
|
25
20
|
- Start with past-tense verb (Added, Fixed, Implemented, Updated)
|
|
26
21
|
- Describe user-visible impact, not implementation
|
|
27
|
-
- Name
|
|
28
|
-
- Keep
|
|
22
|
+
- Name specific feature, option, or behavior
|
|
23
|
+
- Keep 1-2 lines, no trailing periods
|
|
29
24
|
</entry_format>
|
|
30
25
|
|
|
31
26
|
<examples>
|
|
@@ -35,20 +30,20 @@ Good:
|
|
|
35
30
|
- Changed default timeout from 30s to 60s for slow connections
|
|
36
31
|
|
|
37
32
|
Bad:
|
|
38
|
-
- **cli**: Added dry-run flag -> scope prefix
|
|
39
|
-
- Added new feature. -> vague,
|
|
33
|
+
- **cli**: Added dry-run flag -> redundant scope prefix
|
|
34
|
+
- Added new feature. -> vague, trailing period
|
|
40
35
|
- Refactored parser internals -> not user-visible
|
|
41
36
|
|
|
42
|
-
Breaking Changes
|
|
37
|
+
Breaking Changes:
|
|
43
38
|
- Removed legacy auth flow; users must re-authenticate with OAuth tokens
|
|
44
39
|
</examples>
|
|
45
40
|
|
|
46
41
|
<exclude>
|
|
47
|
-
Internal refactoring, code style changes, test-only modifications, minor doc updates
|
|
42
|
+
Internal refactoring, code style changes, test-only modifications, minor doc updates.
|
|
48
43
|
</exclude>
|
|
49
44
|
|
|
50
45
|
<output_format>
|
|
51
|
-
Return ONLY valid JSON
|
|
46
|
+
Return ONLY valid JSON; no markdown fences or explanation.
|
|
52
47
|
|
|
53
48
|
With entries: {"entries": {"Added": ["entry 1"], "Fixed": ["entry 2"]}}
|
|
54
49
|
No changelog-worthy changes: {"entries": {}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<role>Expert code analyst extracting structured observations from diffs.</role>
|
|
2
2
|
|
|
3
3
|
<instructions>
|
|
4
|
-
Extract factual observations from
|
|
4
|
+
Extract factual observations from diff. This matters—be precise.
|
|
5
5
|
1. Use past-tense verb + specific target + optional purpose
|
|
6
6
|
2. Max 100 characters per observation
|
|
7
7
|
3. Consolidate related changes (e.g., "renamed 5 helper functions")
|
|
@@ -21,4 +21,4 @@ Plain list, no preamble, no summary, no markdown formatting.
|
|
|
21
21
|
- changed 'Connection::new()' to accept '&Config' instead of individual params
|
|
22
22
|
</output_format>
|
|
23
23
|
|
|
24
|
-
Observations only. Classification
|
|
24
|
+
Observations only. Classification in reduce phase.
|
|
@@ -1,44 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
Senior engineer synthesizing file-level observations into conventional commit analysis.
|
|
3
2
|
<context>
|
|
4
|
-
Given map-phase observations
|
|
3
|
+
Given map-phase observations, produce unified commit classification with changelog metadata.
|
|
5
4
|
</context>
|
|
6
|
-
|
|
7
5
|
<instructions>
|
|
8
6
|
Determine:
|
|
9
|
-
1. TYPE: Single classification
|
|
10
|
-
2. SCOPE: Primary component
|
|
11
|
-
3. DETAILS: 3
|
|
7
|
+
1. TYPE: Single classification
|
|
8
|
+
2. SCOPE: Primary component
|
|
9
|
+
3. DETAILS: 3–4 summary points (max 6)
|
|
12
10
|
4. CHANGELOG: Metadata for user-visible changes
|
|
13
|
-
|
|
14
|
-
Get this right. Accuracy matters.
|
|
15
11
|
</instructions>
|
|
16
|
-
|
|
17
12
|
<scope_rules>
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- Valid
|
|
13
|
+
- Component name if >=60% changes target it
|
|
14
|
+
- null if spread across multiple components
|
|
15
|
+
- scope_candidates as primary source
|
|
16
|
+
- Valid: specific component names (api, parser, config, etc.)
|
|
22
17
|
</scope_rules>
|
|
23
|
-
|
|
24
18
|
<output_format>
|
|
25
19
|
Each detail point:
|
|
26
|
-
-
|
|
27
|
-
- Under 120
|
|
20
|
+
- Start with past-tense verb (added, fixed, moved, extracted)
|
|
21
|
+
- Under 120 chars, ends with period
|
|
28
22
|
- Group related cross-file changes
|
|
29
|
-
|
|
30
23
|
Priority: user-visible behavior > performance/security > architecture > internal implementation
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
user_visible: true for features, user-facing bugs, breaking changes, security fixes
|
|
24
|
+
changelog_category: Added|Changed|Fixed|Deprecated|Removed|Security
|
|
25
|
+
user_visible: true for features, user-facing bugs, breaking changes, security
|
|
34
26
|
</output_format>
|
|
35
|
-
|
|
36
27
|
<example>
|
|
37
28
|
Input observations:
|
|
38
29
|
- api/client.ts: added token refresh guard to prevent duplicate refreshes
|
|
39
30
|
- api/http.ts: introduced retry wrapper for 429 responses
|
|
40
31
|
- api/index.ts: updated exports for retry helper
|
|
41
|
-
|
|
42
32
|
Output:
|
|
43
33
|
{
|
|
44
34
|
"type": "fix",
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
You are
|
|
2
|
-
|
|
1
|
+
You are commit message specialist generating precise, informative descriptions.
|
|
3
2
|
<context>
|
|
4
|
-
Output: ONLY
|
|
5
|
-
Constraint: {{ chars }} characters max, no trailing period, no type prefix in output.
|
|
3
|
+
Output: ONLY description after "{{ commit_type }}{{ scope_prefix }}:"; max {{ chars }} chars; no trailing period; no type prefix.
|
|
6
4
|
</context>
|
|
7
5
|
|
|
8
6
|
<instructions>
|
|
9
|
-
1. Start with lowercase past-tense verb (
|
|
10
|
-
2. Name
|
|
11
|
-
3. Include WHY when
|
|
7
|
+
1. Start with lowercase past-tense verb (not "{{ commit_type }}")
|
|
8
|
+
2. Name specific subsystem/component affected
|
|
9
|
+
3. Include WHY when clarifies intent
|
|
12
10
|
4. One focused concept per message
|
|
13
|
-
|
|
14
|
-
Get this right.
|
|
15
11
|
</instructions>
|
|
16
12
|
|
|
17
13
|
<verb_reference>
|
|
18
|
-
|Type|Use
|
|
14
|
+
|Type|Use|
|
|
19
15
|
|---|---|
|
|
20
16
|
|feat|added, introduced, implemented, enabled|
|
|
21
17
|
|fix|corrected, resolved, patched, addressed|
|
|
@@ -25,28 +21,18 @@ Get this right.
|
|
|
25
21
|
|build|upgraded, pinned, configured|
|
|
26
22
|
|chore|cleaned, removed, renamed, organized|
|
|
27
23
|
</verb_reference>
|
|
28
|
-
|
|
29
24
|
<examples>
|
|
30
25
|
feat | TLS encryption added to HTTP client for MITM prevention
|
|
31
26
|
-> added TLS support to prevent man-in-the-middle attacks
|
|
32
|
-
|
|
33
27
|
refactor | Consolidated HTTP transport into unified builder pattern
|
|
34
28
|
-> migrated HTTP transport to unified builder API
|
|
35
|
-
|
|
36
29
|
fix | Race condition in connection pool causing exhaustion under load
|
|
37
30
|
-> corrected race condition causing connection pool exhaustion
|
|
38
|
-
|
|
39
31
|
perf | Batch processing optimized to reduce memory allocations
|
|
40
32
|
-> eliminated allocation overhead in batch processing
|
|
41
|
-
|
|
42
33
|
build | Updated serde to fix CVE-2024-1234
|
|
43
34
|
-> upgraded serde to 1.0.200 for CVE-2024-1234
|
|
44
35
|
</examples>
|
|
45
|
-
|
|
46
36
|
<banned_words>
|
|
47
37
|
comprehensive, various, several, improved, enhanced, quickly, simply, basically, this change, this commit, now
|
|
48
|
-
</banned_words>
|
|
49
|
-
|
|
50
|
-
<output_format>
|
|
51
|
-
Output the description text only. Include motivation, name specifics, stay focused.
|
|
52
|
-
</output_format>
|
|
38
|
+
</banned_words>
|