ace-git 0.18.0

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.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/git/config.yml +83 -0
  3. data/.ace-defaults/nav/protocols/guide-sources/ace-git.yml +10 -0
  4. data/.ace-defaults/nav/protocols/tmpl-sources/ace-git.yml +19 -0
  5. data/.ace-defaults/nav/protocols/wfi-sources/ace-git.yml +19 -0
  6. data/CHANGELOG.md +762 -0
  7. data/LICENSE +21 -0
  8. data/README.md +48 -0
  9. data/Rakefile +14 -0
  10. data/docs/demo/ace-git-getting-started.gif +0 -0
  11. data/docs/demo/ace-git-getting-started.tape.yml +18 -0
  12. data/docs/demo/fixtures/README.md +3 -0
  13. data/docs/demo/fixtures/sample.txt +1 -0
  14. data/docs/getting-started.md +87 -0
  15. data/docs/handbook.md +50 -0
  16. data/docs/usage.md +259 -0
  17. data/exe/ace-git +37 -0
  18. data/handbook/guides/version-control/ruby.md +41 -0
  19. data/handbook/guides/version-control/rust.md +49 -0
  20. data/handbook/guides/version-control/typescript.md +47 -0
  21. data/handbook/guides/version-control-system-git.g.md +829 -0
  22. data/handbook/skills/as-git-rebase/SKILL.md +43 -0
  23. data/handbook/skills/as-git-reorganize-commits/SKILL.md +41 -0
  24. data/handbook/skills/as-github-pr-create/SKILL.md +60 -0
  25. data/handbook/skills/as-github-pr-update/SKILL.md +41 -0
  26. data/handbook/skills/as-github-release-publish/SKILL.md +58 -0
  27. data/handbook/templates/commit/squash.template.md +59 -0
  28. data/handbook/templates/pr/bugfix.template.md +103 -0
  29. data/handbook/templates/pr/default.template.md +40 -0
  30. data/handbook/templates/pr/feature.template.md +41 -0
  31. data/handbook/workflow-instructions/git/rebase.wf.md +402 -0
  32. data/handbook/workflow-instructions/git/reorganize-commits.wf.md +158 -0
  33. data/handbook/workflow-instructions/github/pr/create.wf.md +282 -0
  34. data/handbook/workflow-instructions/github/pr/update.wf.md +199 -0
  35. data/handbook/workflow-instructions/github/release-publish.wf.md +162 -0
  36. data/lib/ace/git/atoms/command_executor.rb +253 -0
  37. data/lib/ace/git/atoms/date_resolver.rb +129 -0
  38. data/lib/ace/git/atoms/diff_numstat_parser.rb +82 -0
  39. data/lib/ace/git/atoms/diff_parser.rb +110 -0
  40. data/lib/ace/git/atoms/file_grouper.rb +152 -0
  41. data/lib/ace/git/atoms/git_scope_filter.rb +86 -0
  42. data/lib/ace/git/atoms/git_status_fetcher.rb +29 -0
  43. data/lib/ace/git/atoms/grouped_stats_formatter.rb +233 -0
  44. data/lib/ace/git/atoms/lock_error_detector.rb +79 -0
  45. data/lib/ace/git/atoms/pattern_filter.rb +156 -0
  46. data/lib/ace/git/atoms/pr_identifier_parser.rb +88 -0
  47. data/lib/ace/git/atoms/repository_checker.rb +97 -0
  48. data/lib/ace/git/atoms/repository_state_detector.rb +92 -0
  49. data/lib/ace/git/atoms/stale_lock_cleaner.rb +247 -0
  50. data/lib/ace/git/atoms/status_formatter.rb +180 -0
  51. data/lib/ace/git/atoms/task_pattern_extractor.rb +57 -0
  52. data/lib/ace/git/atoms/time_formatter.rb +84 -0
  53. data/lib/ace/git/cli/commands/branch.rb +62 -0
  54. data/lib/ace/git/cli/commands/diff.rb +252 -0
  55. data/lib/ace/git/cli/commands/pr.rb +119 -0
  56. data/lib/ace/git/cli/commands/status.rb +84 -0
  57. data/lib/ace/git/cli.rb +87 -0
  58. data/lib/ace/git/models/diff_config.rb +185 -0
  59. data/lib/ace/git/models/diff_result.rb +94 -0
  60. data/lib/ace/git/models/repo_status.rb +202 -0
  61. data/lib/ace/git/molecules/branch_reader.rb +92 -0
  62. data/lib/ace/git/molecules/config_loader.rb +108 -0
  63. data/lib/ace/git/molecules/diff_filter.rb +102 -0
  64. data/lib/ace/git/molecules/diff_generator.rb +160 -0
  65. data/lib/ace/git/molecules/git_status_fetcher.rb +32 -0
  66. data/lib/ace/git/molecules/pr_metadata_fetcher.rb +286 -0
  67. data/lib/ace/git/molecules/recent_commits_fetcher.rb +53 -0
  68. data/lib/ace/git/organisms/diff_orchestrator.rb +178 -0
  69. data/lib/ace/git/organisms/repo_status_loader.rb +264 -0
  70. data/lib/ace/git/version.rb +7 -0
  71. data/lib/ace/git.rb +230 -0
  72. metadata +201 -0
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: as-git-rebase
3
+ description: Rebase with CHANGELOG preservation
4
+ # bundle: wfi://git/rebase
5
+ # context: no-fork
6
+ # agent: Bash
7
+ user-invocable: true
8
+ allowed-tools:
9
+ - Bash(ace-git:*)
10
+ - Bash(ace-bundle:*)
11
+ - Read
12
+ - Edit
13
+ - Write
14
+ argument-hint: [target-branch]
15
+ last_modified: 2026-01-10
16
+ source: ace-git
17
+ integration:
18
+ targets:
19
+ - claude
20
+ - codex
21
+ - gemini
22
+ - opencode
23
+ - pi
24
+ providers: {}
25
+ assign:
26
+ source: wfi://git/rebase
27
+ steps:
28
+ - name: rebase-with-main
29
+ description: Rebase current branch onto origin/main while preserving changelog intent
30
+ intent:
31
+ phrases:
32
+ - "rebase with main"
33
+ - "rebase with origin main"
34
+ - "rebase onto main"
35
+ - "sync with main"
36
+ tags: [git, history, rebase]
37
+ skill:
38
+ kind: workflow
39
+ execution:
40
+ workflow: wfi://git/rebase
41
+ ---
42
+
43
+ Load and run `ace-bundle wfi://git/rebase` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: as-git-reorganize-commits
3
+ description: Reorganize commits into logical groups
4
+ # bundle: wfi://git/reorganize-commits
5
+ # context: no-fork
6
+ # agent: general-purpose
7
+ user-invocable: true
8
+ allowed-tools:
9
+ - Bash(ace-git:*)
10
+ - Bash(ace-bundle:*)
11
+ - Read
12
+ argument-hint: [version]
13
+ last_modified: 2026-01-19
14
+ source: ace-git
15
+ integration:
16
+ targets:
17
+ - claude
18
+ - codex
19
+ - gemini
20
+ - opencode
21
+ - pi
22
+ providers: {}
23
+ assign:
24
+ source: wfi://git/reorganize-commits
25
+ steps:
26
+ - name: reorganize-commits
27
+ description: Reorganize commits into logical groups for clean history
28
+ intent:
29
+ phrases:
30
+ - "reorganize commits"
31
+ - "clean up commits"
32
+ - "rewrite commit history"
33
+ - "tidy commit history"
34
+ tags: [git, history, cleanup]
35
+ skill:
36
+ kind: workflow
37
+ execution:
38
+ workflow: wfi://git/reorganize-commits
39
+ ---
40
+
41
+ Load and run `ace-bundle wfi://git/reorganize-commits` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: as-github-pr-create
3
+ description: Create GitHub pull request with generated description and summary
4
+ # bundle: wfi://github/pr/create
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-git:*)
9
+ - Bash(ace-bundle:*)
10
+ - Bash(gh:*)
11
+ - Read
12
+ argument-hint: pr-type
13
+ last_modified: 2026-01-10
14
+ source: ace-git
15
+ integration:
16
+ targets:
17
+ - claude
18
+ - codex
19
+ - gemini
20
+ - opencode
21
+ - pi
22
+ providers:
23
+ claude:
24
+ frontmatter:
25
+ context: fork
26
+ model: haiku
27
+ assign:
28
+ source: wfi://github/pr/create
29
+ steps:
30
+ - name: create-pr
31
+ description: Create a pull request for the implemented changes
32
+ intent:
33
+ phrases:
34
+ - "create pr"
35
+ - "create a pr"
36
+ - "open pr"
37
+ - "open pull request"
38
+ tags: [git, pr, publishing]
39
+ skill:
40
+ kind: workflow
41
+ execution:
42
+ workflow: wfi://github/pr/create
43
+ ---
44
+
45
+ ## Arguments
46
+
47
+ Use the skill `argument-hint` values as the explicit inputs for this skill.
48
+
49
+ ## Variables
50
+
51
+ None
52
+
53
+ ## Execution
54
+
55
+ - You are working in the current project.
56
+ - Run `ace-bundle wfi://github/pr/create` in the current project to load the workflow instructions.
57
+ - Read the loaded workflow and execute it end-to-end in this project.
58
+ - Follow the workflow as the source of truth.
59
+ - Do the work described by the workflow instead of only summarizing it.
60
+ - When the workflow requires edits, tests, or commits, perform them in this project.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: as-github-pr-update
3
+ description: Update PR description based on current work
4
+ # bundle: wfi://github/pr/update
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-git:*)
9
+ - Bash(ace-bundle:*)
10
+ - Bash(gh:*)
11
+ - Read
12
+ - Grep
13
+ argument-hint: pr-number
14
+ last_modified: 2026-01-10
15
+ source: ace-git
16
+ integration:
17
+ targets:
18
+ - claude
19
+ - codex
20
+ - gemini
21
+ - opencode
22
+ - pi
23
+ assign:
24
+ source: wfi://github/pr/update
25
+ steps:
26
+ - name: update-pr-desc
27
+ description: Update PR description with implementation summary and final state
28
+ intent:
29
+ phrases:
30
+ - "update pr description"
31
+ - "update pull request description"
32
+ - "refresh pr description"
33
+ - "sync pr description"
34
+ tags: [git, pr, documentation]
35
+ skill:
36
+ kind: workflow
37
+ execution:
38
+ workflow: wfi://github/pr/update
39
+ ---
40
+
41
+ Load and run `ace-bundle wfi://github/pr/update` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: as-github-release-publish
3
+ description: Create GitHub releases from unpublished CHANGELOG entries
4
+ # bundle: wfi://github/release-publish
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(gh:*)
9
+ - Bash(ace-bundle:*)
10
+ - Read
11
+ argument-hint: "[version-or-range] [--since duration] [--dry-run]"
12
+ last_modified: 2026-03-21
13
+ source: ace-git
14
+ integration:
15
+ targets:
16
+ - claude
17
+ - codex
18
+ - gemini
19
+ - opencode
20
+ - pi
21
+ providers:
22
+ claude:
23
+ frontmatter:
24
+ context: fork
25
+ model: haiku
26
+ assign:
27
+ source: wfi://github/release-publish
28
+ steps:
29
+ - name: publish-releases
30
+ description: Create GitHub releases from unpublished changelog entries
31
+ intent:
32
+ phrases:
33
+ - "publish github releases"
34
+ - "create github releases"
35
+ - "publish releases"
36
+ tags: [git, github, release, publishing]
37
+ skill:
38
+ kind: workflow
39
+ execution:
40
+ workflow: wfi://github/release-publish
41
+ ---
42
+
43
+ ## Arguments
44
+
45
+ Use the skill `argument-hint` values as the explicit inputs for this skill.
46
+
47
+ ## Variables
48
+
49
+ None
50
+
51
+ ## Execution
52
+
53
+ - You are working in the current project.
54
+ - Run `ace-bundle wfi://github/release-publish` in the current project to load the workflow instructions.
55
+ - Read the loaded workflow and execute it end-to-end in this project.
56
+ - Follow the workflow as the source of truth.
57
+ - Do the work described by the workflow instead of only summarizing it.
58
+ - When the workflow requires edits, tests, or commits, perform them in this project.
@@ -0,0 +1,59 @@
1
+ ---
2
+ doc-type: template
3
+ title: Features
4
+ purpose: Documentation for ace-git/handbook/templates/commit/squash.template.md
5
+ ace-docs:
6
+ last-updated: 2025-11-13
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ v[X.Y.Z]: [Brief Summary of Version]
11
+
12
+ ## Features
13
+ - [New feature description]
14
+ - [Another feature]
15
+ - [Feature with details]
16
+
17
+ ## Fixes
18
+ - [Bug fix description]
19
+ - [Another fix with issue reference #123]
20
+ - [Performance fix]
21
+
22
+ ## Documentation
23
+ - [Documentation updates]
24
+ - [Guide additions]
25
+ - [README improvements]
26
+
27
+ ## Technical Details
28
+ - [Implementation notes]
29
+ - [Architecture changes]
30
+ - [Refactoring performed]
31
+
32
+ ## Breaking Changes
33
+ [List any breaking changes, or state "None"]
34
+
35
+ - [Breaking change description]
36
+ - [Migration required]
37
+
38
+ ## Dependencies
39
+ - Added: [new-dependency] v[X.Y] - [reason]
40
+ - Updated: [dependency] [old-version] → [new-version]
41
+ - Removed: [deprecated-dependency] - [reason]
42
+
43
+ ## Performance
44
+ - [Performance improvement description]
45
+ - [Metric]: [before] → [after]
46
+
47
+ ## Security
48
+ - [Security fix or improvement]
49
+ - [Vulnerability addressed]
50
+
51
+ ## Migration Notes
52
+ [If users need to take action, describe steps. Otherwise, state "No migration required"]
53
+
54
+ ```bash
55
+ # Migration commands if needed
56
+ ```
57
+
58
+ Refs: #[issue], #[issue]
59
+ Co-authored-by: [Name] <[email]>
@@ -0,0 +1,103 @@
1
+ ---
2
+ doc-type: template
3
+ title: Problem
4
+ purpose: Documentation for ace-git/handbook/templates/pr/bugfix.template.md
5
+ ace-docs:
6
+ last-updated: 2025-11-13
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ ## Problem
11
+
12
+ [Clear description of the bug]
13
+
14
+ ### Symptoms
15
+ - [What users experience]
16
+ - [Error messages]
17
+ - [Unexpected behavior]
18
+
19
+ ### Root Cause
20
+ [Technical explanation of why the bug occurs]
21
+
22
+ ### Impact
23
+ - Severity: [Critical/High/Medium/Low]
24
+ - Users affected: [All/Specific use case/Edge case]
25
+ - Frequency: [Always/Often/Rare]
26
+
27
+ ## Solution
28
+
29
+ [Explanation of how the fix addresses the root cause]
30
+
31
+ ### Changes Made
32
+ - [File/module] - [Specific fix applied]
33
+ - [File/module] - [Specific fix applied]
34
+
35
+ ### Why This Approach
36
+ - [Reasoning for chosen solution]
37
+ - [Alternatives considered and why rejected]
38
+
39
+ ## Testing
40
+
41
+ ### Reproduction Steps (Before Fix)
42
+ 1. [Step to reproduce bug]
43
+ 2. [Another step]
44
+ 3. [Observe error/unexpected behavior]
45
+
46
+ ### Verification (After Fix)
47
+ 1. [Step to verify fix]
48
+ 2. [Another step]
49
+ 3. [Observe correct behavior]
50
+
51
+ ### Test Coverage
52
+ - [New tests added to prevent regression]
53
+ - [Existing tests modified]
54
+ - [Coverage percentage]
55
+
56
+ ### Test Commands
57
+ ```bash
58
+ # Run tests
59
+ bundle exec rake test
60
+
61
+ # Run specific test for this fix
62
+ bundle exec rake test:bug_fix
63
+ ```
64
+
65
+ ## Regression Prevention
66
+
67
+ - [ ] Added test to prevent future regression
68
+ - [ ] Updated validation/error handling
69
+ - [ ] Added documentation about edge case
70
+ - [ ] Improved error messages
71
+
72
+ ## Documentation
73
+
74
+ - [ ] Code comments added explaining fix
75
+ - [ ] README updated if behavior changed
76
+ - [ ] CHANGELOG.md updated
77
+ - [ ] Known issues list updated
78
+
79
+ ## Checklist
80
+
81
+ - [ ] Tests pass locally
82
+ - [ ] Root cause identified and documented
83
+ - [ ] Fix verified with reproduction steps
84
+ - [ ] No breaking changes
85
+ - [ ] CHANGELOG.md updated
86
+ - [ ] Regression test added
87
+
88
+ ## Breaking Changes
89
+
90
+ [Breaking changes should be rare in bugfixes. If present, describe them. Otherwise, state "None"]
91
+
92
+ ## Related Issues
93
+
94
+ Fixes #[issue-number]
95
+ Related to #[related-issue]
96
+
97
+ ## Additional Context
98
+
99
+ [Any additional information, logs, stack traces, or context]
100
+
101
+ ```
102
+ # Error logs or stack traces if relevant
103
+ ```
@@ -0,0 +1,40 @@
1
+ ---
2
+ doc-type: template
3
+ title: Summary
4
+ purpose: Documentation for ace-git/handbook/templates/pr/default.template.md
5
+ ace-docs:
6
+ last-updated: 2026-02-28
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ ## Summary
11
+
12
+ What is easier now:
13
+ - <impact>
14
+
15
+ What changed from user/reviewer perspective:
16
+ - <behavior-change>
17
+
18
+ ## Changes
19
+
20
+ - <primary-change> (<commit-sha>)
21
+ - <secondary-change> (<commit-sha>)
22
+
23
+ ## File Changes
24
+
25
+ - Use `ace-git diff --format grouped-stats` output
26
+
27
+ ## Test Evidence
28
+
29
+ - <test-name> -> <behavior-validated>
30
+ - Suite totals: <passed>/<total>
31
+
32
+ ## Releases
33
+
34
+ - <changelog-entry-from-diff-if-any>
35
+
36
+ ## Demo
37
+
38
+ - <runnable-command-demonstrating-the-change>
39
+ - <expected-output-and-artifact-locations>
40
+ - Omit this section if no user-facing CLI or runnable entry point
@@ -0,0 +1,41 @@
1
+ ---
2
+ doc-type: template
3
+ title: Summary
4
+ purpose: Documentation for ace-git/handbook/templates/pr/feature.template.md
5
+ ace-docs:
6
+ last-updated: 2026-02-28
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ ## Summary
11
+
12
+ What is easier now for users/reviewers:
13
+ - <impact>
14
+
15
+ What pain/manual step/error existed before:
16
+ - <previous-pain>
17
+
18
+ ## Changes
19
+
20
+ - <concern-1> (<commit-sha>)
21
+ - <concern-2> (<commit-sha>)
22
+
23
+ ## File Changes
24
+
25
+ - Use `ace-git diff --format grouped-stats` output
26
+ - Fallback: flat file list if grouped-stats unavailable
27
+
28
+ ## Test Evidence
29
+
30
+ - <test-file-or-test-name> -> <behavior-validated>
31
+ - Suite totals: <passed>/<total>
32
+
33
+ ## Releases
34
+
35
+ - <changelog-entry-from-diff>
36
+
37
+ ## Demo
38
+
39
+ - <runnable-command-demonstrating-the-feature>
40
+ - <expected-output-and-artifact-locations>
41
+ - Omit this section if no user-facing CLI or runnable entry point