ace-handbook 0.30.1 → 0.31.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/handbook/workflow-instructions/release/bump-version.wf.md +93 -0
- data/handbook/workflow-instructions/release/local.wf.md +133 -0
- data/handbook/workflow-instructions/release/publish.wf.md +81 -0
- data/handbook/workflow-instructions/release/rubygems-publish.wf.md +112 -0
- data/handbook/workflow-instructions/release/update-changelog.wf.md +93 -0
- data/lib/ace/handbook/version.rb +1 -1
- metadata +14 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 837b9e5d5edbfab28596d94f6e53d3b0a4641451cf43da81899591736a3352ed
|
|
4
|
+
data.tar.gz: d99a5b04b59b095d60575aac6adc4a7e7bf8009071b0fe42ba7bdb6d342bee3c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90654bdde3d8faec5d009c9991091db20aa2f7033615959f82aeec5d7fdaab8a3a38865468f4b5d16c5f3331bbc582ab1fd9ead74f97fba798589cef9ab9a1d1
|
|
7
|
+
data.tar.gz: fc9dad5f9987207a3ff1c00782df8a4a663d8cba5296d06c3125ce8e0ab17d83506ba06186f91ae1d34f0033c3ef3362cfb80f927d67153edf6b01a5ca9d55b2
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.31.0] - 2026-08-12
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Shipped generic baseline `wfi://release/*` workflows (`local`, `bump-version`, `update-changelog`, `publish`, `rubygems-publish`) under `handbook/workflow-instructions/release/` so plain installs resolve release skills without monorepo overlays; defaults stay non-publishing until a project publication contract exists.
|
|
14
|
+
|
|
15
|
+
## [0.30.3] - 2026-08-12
|
|
16
|
+
|
|
17
|
+
### Technical
|
|
18
|
+
- Raised the `ace-support-core` dependency floor to `~> 0.31` after the principles-first bootstrap guidance release.
|
|
19
|
+
## [0.30.2] - 2026-08-12
|
|
20
|
+
|
|
21
|
+
### Technical
|
|
22
|
+
- Aligned gemspec dependency floors with current ACE package minor release lines and safe external minor dependency bumps (no major version jumps).
|
|
23
|
+
|
|
10
24
|
## [0.30.1] - 2026-07-15
|
|
11
25
|
|
|
12
26
|
### Fixed
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-bump-version
|
|
3
|
+
description: Bump project version surfaces following semver (local only)
|
|
4
|
+
allowed-tools: Bash, Read, Edit
|
|
5
|
+
argument-hint: "[target] [patch|minor|major]"
|
|
6
|
+
doc-type: workflow
|
|
7
|
+
purpose: generic version-bump baseline
|
|
8
|
+
update:
|
|
9
|
+
frequency: on-change
|
|
10
|
+
last-updated: "2026-08-12"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Bump Version Workflow
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Increment one or more project version surfaces according to Semantic Versioning and keep
|
|
18
|
+
changelog metadata consistent. This workflow is **local preparation only** — it does not publish,
|
|
19
|
+
tag remotely, or mutate external registries.
|
|
20
|
+
|
|
21
|
+
## Prep vs publication
|
|
22
|
+
|
|
23
|
+
- **In scope:** edit version files, align changelog headers/entries, refresh lockfiles when
|
|
24
|
+
required by the bump.
|
|
25
|
+
- **Out of scope:** `gem push`, `npm publish`, deploy scripts, GitHub Release creation, or
|
|
26
|
+
any other externally mutating publication step.
|
|
27
|
+
|
|
28
|
+
## Prerequisites
|
|
29
|
+
|
|
30
|
+
- Target(s) identified (package/module/app) or detectable from the working tree
|
|
31
|
+
- Readable current version and a known bump policy (explicit level or conventional commits)
|
|
32
|
+
- Clean enough git state to attribute the bump (prefer committed feature work first)
|
|
33
|
+
|
|
34
|
+
## Project Context Loading
|
|
35
|
+
|
|
36
|
+
- `ace-bundle project` (or project equivalent)
|
|
37
|
+
- `git status --short` and recent commits affecting the target
|
|
38
|
+
|
|
39
|
+
## Process Steps
|
|
40
|
+
|
|
41
|
+
### 1. Identify target and current version
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Discover version surfaces (adapt to the project)
|
|
45
|
+
# Examples:
|
|
46
|
+
# package.json → "version"
|
|
47
|
+
# lib/**/version.rb → VERSION =
|
|
48
|
+
# Cargo.toml → [package].version
|
|
49
|
+
# pyproject.toml → project.version
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Confirm the current version string before editing.
|
|
53
|
+
|
|
54
|
+
### 2. Decide bump level
|
|
55
|
+
|
|
56
|
+
Priority:
|
|
57
|
+
|
|
58
|
+
1. Explicit argument: `patch`, `minor`, or `major`
|
|
59
|
+
2. Otherwise infer from commits since the last release tag/changelog section
|
|
60
|
+
3. If ambiguous, stop and ask — do not guess major bumps
|
|
61
|
+
|
|
62
|
+
### 3. Apply the bump
|
|
63
|
+
|
|
64
|
+
1. Write the new version to every authoritative version surface for the target.
|
|
65
|
+
2. Update changelog to match (new section or Unreleased notes — follow project convention).
|
|
66
|
+
3. Update dependency pins/lockfiles only when the version bump requires it.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# TODO: project-specific bump commands
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 4. Verify and commit
|
|
73
|
+
|
|
74
|
+
- Run targeted tests/build for the bumped target when available.
|
|
75
|
+
- Commit version + changelog (+ required lockfile) as a focused release-prep commit.
|
|
76
|
+
- Do not publish.
|
|
77
|
+
|
|
78
|
+
## Override
|
|
79
|
+
|
|
80
|
+
Replace or overlay this file via project WFI sources (for example
|
|
81
|
+
`.ace-handbook/workflow-instructions/release/bump-version.wf.md`). Lower source priority
|
|
82
|
+
numbers win. Keep the URI `wfi://release/bump-version` stable for skills.
|
|
83
|
+
|
|
84
|
+
## Success Criteria
|
|
85
|
+
|
|
86
|
+
- [ ] New version written to all authoritative surfaces for the target
|
|
87
|
+
- [ ] Changelog aligned with the bump
|
|
88
|
+
- [ ] No external publish/deploy performed
|
|
89
|
+
|
|
90
|
+
## Common Issues
|
|
91
|
+
|
|
92
|
+
- Multiple version files disagree — reconcile before committing.
|
|
93
|
+
- Pre-1.0 projects may treat minor bumps as breaking; follow project policy, not assumptions.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-local
|
|
3
|
+
description: Prepare a local release (version, changelog, verification) without publishing
|
|
4
|
+
allowed-tools: Bash, Read, Edit
|
|
5
|
+
argument-hint: "[target...] [patch|minor|major]"
|
|
6
|
+
doc-type: workflow
|
|
7
|
+
purpose: generic local release-preparation baseline
|
|
8
|
+
update:
|
|
9
|
+
frequency: on-change
|
|
10
|
+
last-updated: "2026-08-12"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Local Release Preparation Workflow
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Prepare a release **locally**: decide what is being released, bump version surfaces, update
|
|
18
|
+
changelogs, run verification, and create release commits. This baseline does **not** publish
|
|
19
|
+
to any external registry, deploy target, or package host.
|
|
20
|
+
|
|
21
|
+
## Prep vs publication
|
|
22
|
+
|
|
23
|
+
| Mode | This workflow | External mutation |
|
|
24
|
+
|------|---------------|-------------------|
|
|
25
|
+
| **Local preparation (default)** | Version bumps, changelog edits, builds/tests, git commits | None |
|
|
26
|
+
| **Publication** | Out of scope here | Registries, deploys, GitHub Releases, etc. |
|
|
27
|
+
|
|
28
|
+
Do not run publish/deploy commands unless the project has replaced this baseline with an
|
|
29
|
+
explicit publication contract (see Override below, and `wfi://release/publish` /
|
|
30
|
+
`wfi://release/rubygems-publish` when customized).
|
|
31
|
+
|
|
32
|
+
## Prerequisites
|
|
33
|
+
|
|
34
|
+
- Working tree reflects the changes to release (committed or intentionally staged)
|
|
35
|
+
- Project has an identifiable version surface (examples below)
|
|
36
|
+
- You understand Semantic Versioning and the project's changelog convention
|
|
37
|
+
|
|
38
|
+
## Project Context Loading
|
|
39
|
+
|
|
40
|
+
- Load project conventions: `ace-bundle project` (or the project's equivalent context bundle)
|
|
41
|
+
- Inspect git state: `git status --short`, recent commits for the release set
|
|
42
|
+
|
|
43
|
+
## Process Steps
|
|
44
|
+
|
|
45
|
+
### 1. Resolve release targets
|
|
46
|
+
|
|
47
|
+
Treat workflow arguments as zero or more release targets plus an optional bump level
|
|
48
|
+
(`patch`, `minor`, or `major`).
|
|
49
|
+
|
|
50
|
+
- If targets are named, release only those.
|
|
51
|
+
- If none are named, detect candidates from the working tree and recent commits
|
|
52
|
+
(`git status --short`, `git diff --name-only`, `git diff origin/main...HEAD --name-only`
|
|
53
|
+
when `origin/main` exists).
|
|
54
|
+
- Prefer the project's existing package/module layout over inventing a new one.
|
|
55
|
+
|
|
56
|
+
### 2. Locate version and changelog surfaces
|
|
57
|
+
|
|
58
|
+
Discover (do not invent paths blindly):
|
|
59
|
+
|
|
60
|
+
| Concern | Common examples |
|
|
61
|
+
|---------|-----------------|
|
|
62
|
+
| Version | `package.json`, `lib/**/version.rb`, `*.gemspec`, `Cargo.toml`, `pyproject.toml`, `VERSION` |
|
|
63
|
+
| Changelog | root `CHANGELOG.md`, package `CHANGELOG.md`, Keep a Changelog sections |
|
|
64
|
+
| Lockfiles | `Gemfile.lock`, `package-lock.json`, `Cargo.lock`, etc. |
|
|
65
|
+
|
|
66
|
+
If the project has no clear version surface, stop and report what is missing rather than
|
|
67
|
+
guessing.
|
|
68
|
+
|
|
69
|
+
### 3. Choose bump level
|
|
70
|
+
|
|
71
|
+
- Use an explicit `patch|minor|major` argument when provided.
|
|
72
|
+
- Otherwise infer from conventional commits / user intent: fix→patch, feature→minor,
|
|
73
|
+
breaking→major.
|
|
74
|
+
- Record the chosen level before editing files.
|
|
75
|
+
|
|
76
|
+
### 4. Update version and changelog (local only)
|
|
77
|
+
|
|
78
|
+
For each target:
|
|
79
|
+
|
|
80
|
+
1. Bump the version surface to the new version.
|
|
81
|
+
2. Add or extend changelog entries for this release (Keep a Changelog categories when used).
|
|
82
|
+
3. Refresh lockfiles only when the project's dependency tooling requires it for the bump.
|
|
83
|
+
4. Do **not** push tags, create GitHub Releases, or publish packages in this workflow.
|
|
84
|
+
|
|
85
|
+
Placeholder checklist (fill with project-specific commands):
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# TODO: project version bump command(s)
|
|
89
|
+
# TODO: project changelog update approach
|
|
90
|
+
# TODO: project lockfile refresh (if required)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 5. Verify before commit
|
|
94
|
+
|
|
95
|
+
Run the project's standard verification for the release set:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# TODO: replace with project test/lint/build gates
|
|
99
|
+
# Examples: ace-test <package>, npm test, cargo test, pytest
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Fix failures before committing release metadata.
|
|
103
|
+
|
|
104
|
+
### 6. Commit release preparation
|
|
105
|
+
|
|
106
|
+
Create one or more commits that contain only release preparation (version, changelog,
|
|
107
|
+
required lockfile). Prefer the project's commit skill/tooling when available
|
|
108
|
+
(for example `ace-git-commit`).
|
|
109
|
+
|
|
110
|
+
Do not push or publish as part of this baseline.
|
|
111
|
+
|
|
112
|
+
## Override
|
|
113
|
+
|
|
114
|
+
Higher-priority project sources win over this gem baseline. To customize:
|
|
115
|
+
|
|
116
|
+
1. Add project workflows under `.ace-handbook/workflow-instructions/release/` (or another
|
|
117
|
+
registered WFI directory source), **or** package `handbook/workflow-instructions/release/`.
|
|
118
|
+
2. Keep URI names stable (`wfi://release/local`) so skills and assign steps keep working.
|
|
119
|
+
3. WFI source priority: lower number wins; project overlays typically beat gem defaults.
|
|
120
|
+
|
|
121
|
+
## Success Criteria
|
|
122
|
+
|
|
123
|
+
- [ ] Version and changelog surfaces updated for every selected target
|
|
124
|
+
- [ ] Verification gates for the release set passed
|
|
125
|
+
- [ ] Release preparation committed locally
|
|
126
|
+
- [ ] No registry publish, deploy, or remote release mutation performed
|
|
127
|
+
|
|
128
|
+
## Common Issues
|
|
129
|
+
|
|
130
|
+
- **Unresolved custom publish path:** this baseline stops at local prep; add a project
|
|
131
|
+
publication contract before publishing.
|
|
132
|
+
- **Missing version surface:** stop and ask rather than inventing version files.
|
|
133
|
+
- **Monorepo vs single package:** detect layout from the repo; do not assume `ace-*` gems.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-publish
|
|
3
|
+
description: Compatibility entrypoint for release preparation (non-publishing default)
|
|
4
|
+
allowed-tools: Bash, Read, Edit
|
|
5
|
+
argument-hint: "[target...] [patch|minor|major]"
|
|
6
|
+
doc-type: workflow
|
|
7
|
+
purpose: compatibility alias for local release prep until a publication contract exists
|
|
8
|
+
update:
|
|
9
|
+
frequency: on-change
|
|
10
|
+
last-updated: "2026-08-12"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Release Publish (Compatibility) Workflow
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Provide a stable `wfi://release/publish` entrypoint for skills and assign catalog steps.
|
|
18
|
+
**Default behavior is non-publishing:** follow local release preparation until the project
|
|
19
|
+
supplies an explicit publication contract.
|
|
20
|
+
|
|
21
|
+
## Prep vs publication
|
|
22
|
+
|
|
23
|
+
| State | Behavior |
|
|
24
|
+
|-------|----------|
|
|
25
|
+
| **Default (this baseline)** | Equivalent to local preparation — version/changelog/verify/commit only |
|
|
26
|
+
| **Project publication contract present** | Project overlay replaces this file and may perform registry/deploy steps |
|
|
27
|
+
|
|
28
|
+
Never invent registry credentials, deploy targets, or publish commands from this baseline.
|
|
29
|
+
|
|
30
|
+
## Prerequisites
|
|
31
|
+
|
|
32
|
+
Same as local release preparation: identifiable release targets, version/changelog surfaces,
|
|
33
|
+
and verification tooling when available.
|
|
34
|
+
|
|
35
|
+
## Project Context Loading
|
|
36
|
+
|
|
37
|
+
- Load `wfi://release/local` via `ace-bundle wfi://release/local` and treat that workflow as
|
|
38
|
+
the executable contract for this compatibility entrypoint.
|
|
39
|
+
- Also load project context (`ace-bundle project`) when the local workflow requires it.
|
|
40
|
+
|
|
41
|
+
## Process Steps
|
|
42
|
+
|
|
43
|
+
### 1. Prefer local preparation
|
|
44
|
+
|
|
45
|
+
1. Run `ace-bundle wfi://release/local`.
|
|
46
|
+
2. Read and execute that workflow end-to-end with the same arguments passed to this skill/step.
|
|
47
|
+
3. Stop after local preparation succeeds.
|
|
48
|
+
|
|
49
|
+
### 2. Publication gate (do not cross by default)
|
|
50
|
+
|
|
51
|
+
Only continue into external publication when **all** of the following are true:
|
|
52
|
+
|
|
53
|
+
- A project-local (or higher-priority) overlay for `wfi://release/publish` defines publish steps, **or**
|
|
54
|
+
the operator explicitly loaded a dedicated publication workflow (for example a customized
|
|
55
|
+
`wfi://release/rubygems-publish`).
|
|
56
|
+
- Credentials/targets required by that contract are present.
|
|
57
|
+
- The operator intent is clearly to publish (not merely prepare).
|
|
58
|
+
|
|
59
|
+
If those are not met, report that publication is blocked pending a project publication contract.
|
|
60
|
+
|
|
61
|
+
## Override
|
|
62
|
+
|
|
63
|
+
To make `wfi://release/publish` actually publish:
|
|
64
|
+
|
|
65
|
+
1. Add `.ace-handbook/workflow-instructions/release/publish.wf.md` (or another higher-priority
|
|
66
|
+
WFI source) with explicit registry/deploy steps, credentials checks, and verification gates.
|
|
67
|
+
2. Keep the URI stable so assign catalog steps (`release`, `release-minor`) keep resolving.
|
|
68
|
+
3. Optionally specialize sibling URIs (`rubygems-publish`, deploy workflows) instead of
|
|
69
|
+
overloading this compatibility entrypoint.
|
|
70
|
+
|
|
71
|
+
## Success Criteria
|
|
72
|
+
|
|
73
|
+
- [ ] Local release preparation completed via the local workflow contract
|
|
74
|
+
- [ ] No external publish/deploy performed unless a project publication contract authorized it
|
|
75
|
+
- [ ] If publication was requested without a contract, failure is explicit and actionable
|
|
76
|
+
|
|
77
|
+
## Common Issues
|
|
78
|
+
|
|
79
|
+
- Assign steps reference `wfi://release/publish` expecting prep — that is intentional for the
|
|
80
|
+
default baseline.
|
|
81
|
+
- Silent publish is forbidden; missing contracts must fail clearly rather than no-op publish.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-rubygems-publish
|
|
3
|
+
description: RubyGems publication guidance (blocked until project opts into a publish contract)
|
|
4
|
+
allowed-tools: Bash, Read
|
|
5
|
+
argument-hint: "[gem-name...] [--dry-run]"
|
|
6
|
+
doc-type: workflow
|
|
7
|
+
purpose: specialized RubyGems publication baseline with non-mutating default
|
|
8
|
+
update:
|
|
9
|
+
frequency: on-change
|
|
10
|
+
last-updated: "2026-08-12"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# RubyGems Publish Workflow (Baseline)
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Describe a safe RubyGems publication path for projects that ship gems. **This baseline does
|
|
18
|
+
not push gems by default.** It inventories readiness and stops until the project opts into an
|
|
19
|
+
explicit publication contract (project overlay or confirmed operator publish intent with
|
|
20
|
+
credentials and dry-run evidence).
|
|
21
|
+
|
|
22
|
+
## Prep vs publication
|
|
23
|
+
|
|
24
|
+
| Phase | Allowed in this baseline by default |
|
|
25
|
+
|-------|-------------------------------------|
|
|
26
|
+
| Inventory gemspecs, versions, dependency order | Yes |
|
|
27
|
+
| Credential presence check (non-secret) | Yes |
|
|
28
|
+
| `gem build` / dry-run planning | Yes when explicitly requested |
|
|
29
|
+
| `gem push` / registry mutation | **No** until publication contract + explicit publish path |
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- One or more `*.gemspec` files (or a documented gem build surface)
|
|
34
|
+
- Versions already bumped via local release preparation when releasing new versions
|
|
35
|
+
- For real pushes later: RubyGems credentials (`~/.gem/credentials` or `GEM_HOST_API_KEY`)
|
|
36
|
+
|
|
37
|
+
## Project Context Loading
|
|
38
|
+
|
|
39
|
+
- `ace-bundle project`
|
|
40
|
+
- Prefer completing `wfi://release/local` (or project release prep) before any publish attempt
|
|
41
|
+
|
|
42
|
+
## Process Steps
|
|
43
|
+
|
|
44
|
+
### 1. Discover gem targets
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Example discovery — adapt to the repository layout
|
|
48
|
+
ls ./*.gemspec 2>/dev/null
|
|
49
|
+
ls ./*/*.gemspec 2>/dev/null
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If arguments name specific gems, filter to those and fail clearly when a name is missing.
|
|
53
|
+
|
|
54
|
+
### 2. Build a publish plan (no push)
|
|
55
|
+
|
|
56
|
+
For each gem:
|
|
57
|
+
|
|
58
|
+
1. Read the local version from the gemspec / version file.
|
|
59
|
+
2. Note runtime dependencies that are also local gems (publish dependencies first).
|
|
60
|
+
3. Produce an ordered plan (topological order for internal gem deps).
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
Publish plan (dry):
|
|
64
|
+
1. <gem-a> <version> (deps: ...)
|
|
65
|
+
2. <gem-b> <version> (deps: gem-a)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 3. Credential check (non-mutating)
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
[ -f ~/.gem/credentials ] && echo "credentials file present" || echo "credentials file missing"
|
|
72
|
+
echo "${GEM_HOST_API_KEY:+GEM_HOST_API_KEY is set}"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Do not print secret values.
|
|
76
|
+
|
|
77
|
+
### 4. Publication gate
|
|
78
|
+
|
|
79
|
+
**Stop here by default.** Report:
|
|
80
|
+
|
|
81
|
+
- The ordered publish plan
|
|
82
|
+
- Whether credentials appear present
|
|
83
|
+
- That registry mutation requires a project overlay or an explicit operator-approved publish
|
|
84
|
+
contract that replaces/extends this baseline
|
|
85
|
+
|
|
86
|
+
Only if a higher-priority project workflow authorizes pushes **and** the operator requested a
|
|
87
|
+
real publish (not merely prep/dry-run) may `gem build` + `gem push` proceed under that
|
|
88
|
+
project contract's steps and verification gates.
|
|
89
|
+
|
|
90
|
+
Suggested placeholders for a project overlay (not executed by this baseline):
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# gem build <gemspec>
|
|
94
|
+
# gem push <built-gem> # only under project publication contract
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Override
|
|
98
|
+
|
|
99
|
+
Ship project-specific publish behavior at
|
|
100
|
+
`.ace-handbook/workflow-instructions/release/rubygems-publish.wf.md` (or another higher-priority
|
|
101
|
+
WFI source). Keep URI `wfi://release/rubygems-publish` stable for the distributed skill.
|
|
102
|
+
|
|
103
|
+
## Success Criteria
|
|
104
|
+
|
|
105
|
+
- [ ] Ordered publish plan produced for requested gems
|
|
106
|
+
- [ ] Credential presence reported without leaking secrets
|
|
107
|
+
- [ ] No `gem push` / registry mutation from this baseline alone
|
|
108
|
+
|
|
109
|
+
## Common Issues
|
|
110
|
+
|
|
111
|
+
- ACE monorepo operators may use a specialized overlay; plain projects must not depend on it.
|
|
112
|
+
- Missing credentials should block publish contracts, not local planning.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-update-changelog
|
|
3
|
+
description: Update CHANGELOG entries for recent changes (local only)
|
|
4
|
+
allowed-tools: Bash, Read, Edit
|
|
5
|
+
argument-hint: "[change-description]"
|
|
6
|
+
doc-type: workflow
|
|
7
|
+
purpose: generic changelog-update baseline
|
|
8
|
+
update:
|
|
9
|
+
frequency: on-change
|
|
10
|
+
last-updated: "2026-08-12"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Update Changelog Workflow
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Capture recent work in the project's changelog using the repository's established format
|
|
18
|
+
(prefer [Keep a Changelog](https://keepachangelog.com/) when the file already follows it).
|
|
19
|
+
This is **documentation/prep only** — it does not bump versions for publication or publish
|
|
20
|
+
artifacts.
|
|
21
|
+
|
|
22
|
+
## Prep vs publication
|
|
23
|
+
|
|
24
|
+
- **In scope:** audit commits/diffs, classify entries, edit changelog file(s), commit docs.
|
|
25
|
+
- **Out of scope:** cutting a GitHub Release, publishing packages, or deploying.
|
|
26
|
+
|
|
27
|
+
## Prerequisites
|
|
28
|
+
|
|
29
|
+
- A changelog file exists or the project agrees to create one (usually `CHANGELOG.md`)
|
|
30
|
+
- Enough git history to attribute changes since the last recorded entry
|
|
31
|
+
|
|
32
|
+
## Project Context Loading
|
|
33
|
+
|
|
34
|
+
- `ace-bundle project` (or project equivalent)
|
|
35
|
+
- Inspect `CHANGELOG.md` (root and/or package-level) and recent `git log`
|
|
36
|
+
|
|
37
|
+
## Process Steps
|
|
38
|
+
|
|
39
|
+
### 1. Locate changelog target
|
|
40
|
+
|
|
41
|
+
Prefer the changelog the project already uses. Common layouts:
|
|
42
|
+
|
|
43
|
+
- Single root `CHANGELOG.md`
|
|
44
|
+
- Per-package changelogs in a monorepo
|
|
45
|
+
- `## [Unreleased]` section that later becomes a versioned section at release time
|
|
46
|
+
|
|
47
|
+
### 2. Audit changes since the last entry
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git log --pretty=format:"%h %s" --no-merges
|
|
51
|
+
# Narrow with paths or --since once the last changelog boundary is known
|
|
52
|
+
git diff --stat <last-boundary>..HEAD
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Classify entries
|
|
56
|
+
|
|
57
|
+
Use Keep a Changelog categories when applicable:
|
|
58
|
+
|
|
59
|
+
| Category | Use when |
|
|
60
|
+
|----------|----------|
|
|
61
|
+
| Added | Net-new capability |
|
|
62
|
+
| Changed | Behavior change to existing capability |
|
|
63
|
+
| Fixed | Bug/crash correction |
|
|
64
|
+
| Removed | Capability removed |
|
|
65
|
+
| Deprecated | Still present but discouraged |
|
|
66
|
+
| Security | Vulnerability fixes |
|
|
67
|
+
| Technical | Non-functional chore/docs/test/refactor (if the project uses this bucket) |
|
|
68
|
+
|
|
69
|
+
### 4. Write entries
|
|
70
|
+
|
|
71
|
+
- Append under `## [Unreleased]` when that section exists; otherwise follow project layout.
|
|
72
|
+
- Keep bullets user-facing and scoped; mention package/module names in monorepos.
|
|
73
|
+
- Incorporate any explicit change-description argument from the skill invocation.
|
|
74
|
+
|
|
75
|
+
### 5. Commit locally
|
|
76
|
+
|
|
77
|
+
Commit changelog-only edits when that matches project practice. Do not publish.
|
|
78
|
+
|
|
79
|
+
## Override
|
|
80
|
+
|
|
81
|
+
Project overlays under registered WFI sources replace this baseline while keeping
|
|
82
|
+
`wfi://release/update-changelog` stable. Lower priority numbers win.
|
|
83
|
+
|
|
84
|
+
## Success Criteria
|
|
85
|
+
|
|
86
|
+
- [ ] Changelog reflects audited changes for the intended scope
|
|
87
|
+
- [ ] Categories match project convention
|
|
88
|
+
- [ ] No publish/deploy side effects
|
|
89
|
+
|
|
90
|
+
## Common Issues
|
|
91
|
+
|
|
92
|
+
- Missing `[Unreleased]` section — add it after the header when using Keep a Changelog.
|
|
93
|
+
- Duplicate bullets — dedupe against existing Unreleased items before committing.
|
data/lib/ace/handbook/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-handbook
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.31.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
10
|
+
date: 2026-08-12 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: ace-support-config
|
|
@@ -16,42 +15,42 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
18
|
+
version: '0.17'
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.
|
|
25
|
+
version: '0.17'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: ace-support-core
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - "~>"
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
32
|
+
version: '0.31'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - "~>"
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.
|
|
39
|
+
version: '0.31'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: ace-support-nav
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
44
|
- - "~>"
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.
|
|
46
|
+
version: '0.28'
|
|
48
47
|
type: :runtime
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
51
|
- - "~>"
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0.
|
|
53
|
+
version: '0.28'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
55
|
name: ace-support-cli
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -198,6 +197,11 @@ files:
|
|
|
198
197
|
- handbook/workflow-instructions/handbook/review-workflows.wf.md
|
|
199
198
|
- handbook/workflow-instructions/handbook/synthesize-research.wf.md
|
|
200
199
|
- handbook/workflow-instructions/handbook/update-docs.wf.md
|
|
200
|
+
- handbook/workflow-instructions/release/bump-version.wf.md
|
|
201
|
+
- handbook/workflow-instructions/release/local.wf.md
|
|
202
|
+
- handbook/workflow-instructions/release/publish.wf.md
|
|
203
|
+
- handbook/workflow-instructions/release/rubygems-publish.wf.md
|
|
204
|
+
- handbook/workflow-instructions/release/update-changelog.wf.md
|
|
201
205
|
- lib/ace/handbook.rb
|
|
202
206
|
- lib/ace/handbook/atoms/provider_registry.rb
|
|
203
207
|
- lib/ace/handbook/cli.rb
|
|
@@ -216,7 +220,6 @@ metadata:
|
|
|
216
220
|
homepage_uri: https://github.com/cs3b/ace
|
|
217
221
|
source_code_uri: https://github.com/cs3b/ace/tree/main/ace-handbook/
|
|
218
222
|
changelog_uri: https://github.com/cs3b/ace/blob/main/ace-handbook/CHANGELOG.md
|
|
219
|
-
post_install_message:
|
|
220
223
|
rdoc_options: []
|
|
221
224
|
require_paths:
|
|
222
225
|
- lib
|
|
@@ -231,8 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
231
234
|
- !ruby/object:Gem::Version
|
|
232
235
|
version: '0'
|
|
233
236
|
requirements: []
|
|
234
|
-
rubygems_version: 3.
|
|
235
|
-
signing_key:
|
|
237
|
+
rubygems_version: 3.6.9
|
|
236
238
|
specification_version: 4
|
|
237
239
|
summary: Standardized workflows for creating and managing guides, workflow instructions,
|
|
238
240
|
and agent definitions.
|