ace-handbook 0.21.4 → 0.23.5
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 +47 -0
- data/README.md +2 -0
- data/handbook/skills/as-release-rubygems-publish/SKILL.md +4 -12
- data/lib/ace/handbook/cli/commands/sync.rb +18 -0
- data/lib/ace/handbook/organisms/provider_syncer.rb +17 -4
- data/lib/ace/handbook/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9ac7df9cd7a6a223a639a7cbc54f3669b81d33ce2e2a84ab6958117b7bf79041
|
|
4
|
+
data.tar.gz: 51256569bc2f4a4121a1aba33778e701e81a48e750c6887b2467e5bf21408dc2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a89bfa62563268247139b31d05fbc48fc508b0af6e18f249c82f9b3f5f8cf2486128bb013f711f718610fc4dd68d8ae8d0883ce9a417a2b299c55be8a5c7de15
|
|
7
|
+
data.tar.gz: 8879cb6414ae62d3648ac27cb91f2500e23799cf163a529bdb32b595b633c1791556cf883b5731769bc3a67e7e2aa4680412efc2aa9bb82edc7e7d26e531bd7f
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,53 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.23.5] - 2026-03-31
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Replaced `wfi://release/rubygems-verify-install` workflow with E2E scenario `TS-MONO-001-rubygems-install` in `ace-monorepo-e2e/`. Updated all skill and doc references to use `ace-test-e2e ace-monorepo-e2e --test-id TS-MONO-001`.
|
|
14
|
+
|
|
15
|
+
## [0.23.4] - 2026-03-31
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Shipped default sync config with no providers pre-enabled so users choose their own agent integrations.
|
|
19
|
+
- Reorganized install instructions across README, quick-start, and DEVELOPMENT docs by toolkit building blocks (Plan, Build, Context, QA, Git) with all gems in `development, test` group.
|
|
20
|
+
|
|
21
|
+
## [0.23.3] - 2026-03-31
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Extracted RubyGems installation verification into standalone `wfi://release/rubygems-verify-install` workflow with mise-based sandbox isolation.
|
|
25
|
+
- Updated `as-release-rubygems-publish` skill to recommend the standalone verification workflow instead of requiring inline proof classification.
|
|
26
|
+
|
|
27
|
+
## [0.23.2] - 2026-03-30
|
|
28
|
+
|
|
29
|
+
### Technical
|
|
30
|
+
- Added edge-case regression coverage for `ProviderSyncer#summarize_sources`, including empty inventory handling and nil/blank source normalization.
|
|
31
|
+
|
|
32
|
+
## [0.23.1] - 2026-03-30
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- Restored `Bash(gem:*)` permissions in the canonical `as-release-rubygems-publish` skill so release workflows can invoke gem commands directly.
|
|
36
|
+
|
|
37
|
+
### Technical
|
|
38
|
+
- Added regression coverage for projected release skill permissions to prevent permission drift.
|
|
39
|
+
|
|
40
|
+
## [0.23.0] - 2026-03-30
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- Clarified `ace-handbook sync` output by adding inventory source counts and explicit rerun guidance when only one source is discovered.
|
|
44
|
+
- Expanded `ace-handbook` docs to define `.ace-handbook/` as the canonical project-level handbook root for workflows, guides, templates, and skills in normal projects.
|
|
45
|
+
|
|
46
|
+
### Technical
|
|
47
|
+
- Added CLI sync command regression coverage for inventory-source summary and single-source guidance output.
|
|
48
|
+
|
|
49
|
+
## [0.22.0] - 2026-03-29
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- Added a deterministic RubyGems propagation proof gate to coordinated release workflows with explicit `SAFE`, `LAG_DETECTED`, and `METADATA_BROKEN` classification outcomes.
|
|
53
|
+
|
|
54
|
+
### Technical
|
|
55
|
+
- Added operator-facing proof contract documentation and synchronized `as-release-rubygems-publish` skill guidance with the updated release workflow expectations.
|
|
56
|
+
|
|
10
57
|
## [0.21.4] - 2026-03-29
|
|
11
58
|
|
|
12
59
|
### Technical
|
data/README.md
CHANGED
|
@@ -38,5 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
**Sync and inspect provider integrations** - run `ace-handbook sync` to project canonical skills into provider-native folders and `ace-handbook status` to check integration health across all configured providers.
|
|
40
40
|
|
|
41
|
+
**Extend handbook content in normal projects** - put project-specific workflows, guides, templates, and skills under `.ace-handbook/` and discover them with protocol URLs (`wfi://`, `guide://`, `tmpl://`, `skill://`). See [Usage Guide](docs/usage.md) for path conventions.
|
|
42
|
+
|
|
41
43
|
---
|
|
42
44
|
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
|
|
@@ -5,11 +5,12 @@ description: Publish ACE gems to RubyGems.org in dependency order
|
|
|
5
5
|
# agent: general-purpose
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools:
|
|
8
|
+
- Bash(bundle:*)
|
|
8
9
|
- Bash(gem:*)
|
|
9
10
|
- Bash(ace-bundle:*)
|
|
10
11
|
- Read
|
|
11
12
|
argument-hint: "[gem-name...] [--dry-run]"
|
|
12
|
-
last_modified: 2026-03-
|
|
13
|
+
last_modified: 2026-03-29
|
|
13
14
|
source: ace-handbook
|
|
14
15
|
integration:
|
|
15
16
|
targets:
|
|
@@ -23,17 +24,6 @@ integration:
|
|
|
23
24
|
frontmatter:
|
|
24
25
|
context: fork
|
|
25
26
|
model: haiku
|
|
26
|
-
assign:
|
|
27
|
-
source: wfi://release/rubygems-publish
|
|
28
|
-
steps:
|
|
29
|
-
- name: publish-gems
|
|
30
|
-
description: Publish ACE gems to RubyGems.org in dependency order
|
|
31
|
-
intent:
|
|
32
|
-
phrases:
|
|
33
|
-
- "publish gems"
|
|
34
|
-
- "push to rubygems"
|
|
35
|
-
- "publish to rubygems"
|
|
36
|
-
tags: [release, rubygems, publishing]
|
|
37
27
|
skill:
|
|
38
28
|
kind: workflow
|
|
39
29
|
execution:
|
|
@@ -56,3 +46,5 @@ None
|
|
|
56
46
|
- Follow the workflow as the source of truth.
|
|
57
47
|
- Do the work described by the workflow instead of only summarizing it.
|
|
58
48
|
- When the workflow requires edits, tests, or commits, perform them in this project.
|
|
49
|
+
|
|
50
|
+
- After live publishing, recommend running `ace-test-e2e ace-monorepo-e2e --test-id TS-MONO-001` for installation verification.
|
|
@@ -26,9 +26,27 @@ module Ace
|
|
|
26
26
|
"(#{result[:projected_skills]} skills, #{result[:updated_files]} updated, " \
|
|
27
27
|
"#{result[:removed_entries]} removed)"
|
|
28
28
|
end
|
|
29
|
+
print_inventory_summary(results)
|
|
29
30
|
rescue => e
|
|
30
31
|
raise Ace::Support::Cli::Error.new(e.message)
|
|
31
32
|
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def print_inventory_summary(results)
|
|
37
|
+
source_breakdown = results.first&.fetch(:source_breakdown, {})
|
|
38
|
+
return if source_breakdown.nil? || source_breakdown.empty?
|
|
39
|
+
|
|
40
|
+
puts "inventory sources: #{format_source_breakdown(source_breakdown)}"
|
|
41
|
+
return unless source_breakdown.length == 1
|
|
42
|
+
|
|
43
|
+
source = source_breakdown.keys.first
|
|
44
|
+
puts "note: only '#{source}' skills were discovered. if you installed additional ace-* packages recently, rerun `ace-handbook sync` after installation."
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def format_source_breakdown(source_breakdown)
|
|
48
|
+
source_breakdown.map { |source, count| "#{source}:#{count}" }.join(", ")
|
|
49
|
+
end
|
|
32
50
|
end
|
|
33
51
|
end
|
|
34
52
|
end
|
|
@@ -21,19 +21,23 @@ module Ace
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def sync(provider: nil)
|
|
24
|
-
|
|
24
|
+
skills = inventory.all
|
|
25
|
+
source_breakdown = summarize_sources(skills)
|
|
26
|
+
providers_to_sync(provider).map do |provider_id|
|
|
27
|
+
sync_provider(provider_id, skills: skills, source_breakdown: source_breakdown)
|
|
28
|
+
end
|
|
25
29
|
end
|
|
26
30
|
|
|
27
31
|
private
|
|
28
32
|
|
|
29
|
-
def sync_provider(provider)
|
|
33
|
+
def sync_provider(provider, skills:, source_breakdown:)
|
|
30
34
|
output_dir = File.join(project_root, registry.output_dir(provider))
|
|
31
35
|
prepare_output_dir(output_dir)
|
|
32
36
|
|
|
33
37
|
expected = {}
|
|
34
38
|
updated_files = 0
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
skills.each do |skill|
|
|
37
41
|
next unless Molecules::SkillProjection.projection_targets(skill.frontmatter, registry: registry).include?(provider)
|
|
38
42
|
|
|
39
43
|
frontmatter = Molecules::SkillProjection.projected_frontmatter(skill.frontmatter, provider: provider)
|
|
@@ -55,10 +59,19 @@ module Ace
|
|
|
55
59
|
relative_output_dir: registry.output_dir(provider),
|
|
56
60
|
projected_skills: expected.size,
|
|
57
61
|
updated_files: updated_files,
|
|
58
|
-
removed_entries: removed_entries
|
|
62
|
+
removed_entries: removed_entries,
|
|
63
|
+
source_breakdown: source_breakdown
|
|
59
64
|
}
|
|
60
65
|
end
|
|
61
66
|
|
|
67
|
+
def summarize_sources(skills)
|
|
68
|
+
skills.each_with_object(Hash.new(0)) do |skill, memo|
|
|
69
|
+
source = skill.source.to_s
|
|
70
|
+
key = source.empty? ? "unknown" : source
|
|
71
|
+
memo[key] += 1
|
|
72
|
+
end.sort.to_h
|
|
73
|
+
end
|
|
74
|
+
|
|
62
75
|
def providers_to_sync(requested_provider)
|
|
63
76
|
providers = if requested_provider
|
|
64
77
|
[requested_provider.to_s]
|
data/lib/ace/handbook/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +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.23.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-04-01 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-config
|