ace-support-core 0.29.11 → 0.30.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34f2b35cb1f2ed86e4c9f20fcb025c11f9497a795e7125482d103679d661de12
4
- data.tar.gz: ceeab35abee59c794fea8dc256b71d0d1537f15f45e240fc8b38626c62d5e6b2
3
+ metadata.gz: ab0c509e55d17f7e036b734bb992b9a671381c306cbb74e464717b70cf782c56
4
+ data.tar.gz: 6804e4f34fbc2bdf6ecba46fb935e0524962d778dc447f2bca2aa64639e73571
5
5
  SHA512:
6
- metadata.gz: 37de1f18daa80ab302776cae0e19751efd2c766b5e9d0cf5f393727b091a8e1afd9c5a2d9e7bc6a7d4d1ba07de667071758a42db81c777432dd1b6c39438f023
7
- data.tar.gz: b679b1bf4fa42a6b0c5e461e619217449dacb0c28f9d759a2a98c1e37aade84fefa352bf932506a01d602663b330381ef47928d02b3f5a3c384a9be0b69a03d8
6
+ metadata.gz: c37cca84a7b8ce502f33d458cf75bf7f03abd7e1cc5a56301f2702a4c304f11870ae820fd3f505650b2e5ec7a51b015ce767417c89ee0045e92ca12b9d5d42a7
7
+ data.tar.gz: b91c6b875944b39f693547b20b21d5eca1b4474afbf2ba6574c9a9570996083c5d72e6dd5c91ccc32b0291bcf33501234f8107c96c276354c729c3c188769a1e
@@ -3,9 +3,12 @@
3
3
  ACE generated this starter guidance from `ace-support-core` defaults.
4
4
  Customize it for your repository-specific rules and workflows.
5
5
  Refresh the starter version with `bundle exec ace-config sync ace-support-core --force`.
6
- Run `bundle exec ace-handbook sync` separately when you need to refresh projected skill folders.
6
+ Run `bundle exec ace-handbook sync` separately to refresh generated `.agents/skills`.
7
7
 
8
8
  Read `CLAUDE.md` first.
9
+ See `docs/tools.md#agent-engineering-practices` for expanded day-to-day agent practices.
10
+
11
+ **Cost Bias Override:** do not optimize for human work-weeks or token budgets — choose the technically correct path (full coverage, proper refactors, robust design) even when it costs more turns.
9
12
 
10
13
  ## ACE CLI Command Integrity
11
14
 
@@ -3,9 +3,12 @@
3
3
  ACE generated this starter guidance from `ace-support-core` defaults.
4
4
  Customize it for your repository-specific rules and workflows.
5
5
  Refresh the starter version with `bundle exec ace-config sync ace-support-core --force`.
6
- Run `bundle exec ace-handbook sync` separately when you need to refresh projected skill folders.
6
+ Run `bundle exec ace-handbook sync` separately to refresh generated `.agents/skills`.
7
7
 
8
8
  Agent guidance for this repository.
9
+ See `docs/tools.md#agent-engineering-practices` for expanded day-to-day agent practices.
10
+
11
+ **Cost Bias Override:** do not optimize for human work-weeks or token budgets — choose the technically correct path (full coverage, proper refactors, robust design) even when it costs more turns.
9
12
 
10
13
  ## Command Types
11
14
 
@@ -18,11 +21,8 @@ Agent guidance for this repository.
18
21
  - Do not use pipes, redirects, or shell post-processors on `ace-*` commands.
19
22
  - If an `ace-*` command prints a file path, read that file directly.
20
23
 
21
- ## Local Artifacts
24
+ ## Local Artifacts and Testing
22
25
 
23
26
  - Use `.ace-local/` for project-local ACE artifacts.
24
27
  - Use `/tmp/` for disposable temporary files.
25
-
26
- ## Testing
27
-
28
28
  - Prefer `ace-test` and `ace-test-suite` over raw `bundle exec` test commands when those targets exist.
@@ -0,0 +1,39 @@
1
+ # Tools
2
+
3
+ ACE generated this starter reference from `ace-support-core` defaults.
4
+ Customize it for repository-specific agent workflows and operational practices.
5
+
6
+ ## Agent Engineering Practices
7
+
8
+ Root agent files should stay short and reserve detail for this page or project skills.
9
+
10
+ **Cost Bias Override:** do not optimize for human work-weeks or token budgets — choose the technically correct path (full coverage, proper refactors, robust design) even when it costs more turns.
11
+
12
+ ### Skill Projections
13
+
14
+ - `ace-handbook sync` writes generated skills to `.agents/skills/` by default.
15
+ - Use explicit provider sync, such as `ace-handbook sync --provider codex`, only when a harness needs its native folder.
16
+ - Do not hand-edit generated skill projections; edit canonical package `handbook/skills/` or project `.ace-handbook/skills/`.
17
+
18
+ ### Workspace and File Safety
19
+
20
+ - Keep project-specific temporary output in `.ace-local/` and disposable scratch files in `/tmp/`.
21
+ - Do not let parallel agents share one writable checkout. Use isolated worktrees or durable workspace leases when running concurrent work.
22
+ - For CLIs or scripts that update shared text files, prefer file locks and atomic writes so interrupted agent runs cannot corrupt state.
23
+
24
+ ### Debugging and Change Safety
25
+
26
+ - Reproduce behavior before fixing it, preferably through the highest-fidelity test or E2E script that can fail the same way a user sees it.
27
+ - Read automation and validation config from trusted refs, such as the repository default branch or pinned setup config, before executing commands supplied by untrusted changes.
28
+ - Never use raw force pushes in automated flows. Fetch first and require lease or patch-equivalence checks before rewriting remote history.
29
+
30
+ ### Long-Running Tools and UI Review
31
+
32
+ - For warm daemons or browser sessions, check a health endpoint and exact version match before reusing the process; recycle mismatched daemons.
33
+ - When changing visual or interactive UI, run browser/layout audits for overflow, clipped text, overlaps, stale element references, and broken interaction targets.
34
+
35
+ ### Agent-Facing CLI Standards
36
+
37
+ - Keep default CLI output concise, deterministic, and useful to agents.
38
+ - Include definite empty states, precomputed counts, truncation hints, and next-step commands where they reduce follow-up probing.
39
+ - Make no-op mutations idempotent with exit code `0` when the desired state is already true.
data/CHANGELOG.md CHANGED
@@ -7,8 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.30.1] - 2026-06-30
11
+
12
+ ### Fixed
13
+ - Made frontmatter-free policy path matching symlink-safe by canonicalizing project roots and missing descendants before pattern evaluation.
14
+
15
+ ### Changed
16
+ - Updated generated bootstrap guidance to describe `.agents/skills/` as the default handbook skill projection and harness-native skill folders as explicit provider sync outputs.
17
+
18
+ ## [0.30.0] - 2026-06-30
19
+
20
+ ### Added
21
+ - Added generated `docs/tools.md` project-root bootstrap guidance with an `Agent Engineering Practices` section for expanded day-to-day agent conventions.
22
+
10
23
  ### Changed
11
24
  - Clarified the first-use bootstrap guidance so root `AGENTS.md` / `CLAUDE.md` starter files are documented as outputs of `ace-support-core` sync, and updated the shipped refresh commands to use `bundle exec` for repo-local installs.
25
+ - Updated generated root `AGENTS.md` and `CLAUDE.md` starter files with a compact cost-bias override and a pointer to `docs/tools.md#agent-engineering-practices`.
12
26
 
13
27
  ## [0.29.10] - 2026-04-24
14
28
 
@@ -19,15 +19,45 @@ module Ace
19
19
  return false if path.nil? || path.to_s.empty?
20
20
  return false if patterns.nil? || patterns.empty?
21
21
 
22
- absolute_path = File.expand_path(path)
23
- root = File.expand_path(project_root || Dir.pwd)
24
- relative_path = absolute_path.sub(/^#{Regexp.escape(root)}\/?/, "")
22
+ absolute_path = canonical_path(path)
23
+ root = canonical_path(project_root || Dir.pwd)
24
+ relative_path = relative_path_under(absolute_path, root) || absolute_path
25
25
 
26
26
  patterns.any? do |pattern|
27
27
  File.fnmatch?(pattern, relative_path, MATCH_FLAGS) ||
28
28
  File.fnmatch?(pattern, absolute_path, MATCH_FLAGS)
29
29
  end
30
30
  end
31
+
32
+ def self.canonical_path(path)
33
+ expanded = File.expand_path(path)
34
+ return File.realpath(expanded) if File.exist?(expanded)
35
+
36
+ canonical_missing_path(expanded)
37
+ rescue
38
+ File.expand_path(path)
39
+ end
40
+
41
+ def self.canonical_missing_path(path)
42
+ parent = path
43
+ suffix = []
44
+ until File.exist?(parent) || parent == File.dirname(parent)
45
+ suffix.unshift(File.basename(parent))
46
+ parent = File.dirname(parent)
47
+ end
48
+ return path unless File.exist?(parent)
49
+
50
+ File.join(File.realpath(parent), *suffix)
51
+ end
52
+
53
+ def self.relative_path_under(path, root)
54
+ return "." if path == root
55
+
56
+ prefix = "#{root}#{File::SEPARATOR}"
57
+ return path.delete_prefix(prefix) if path.start_with?(prefix)
58
+
59
+ nil
60
+ end
31
61
  end
32
62
  end
33
63
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ace
4
4
  module Core
5
- VERSION = '0.29.11'
5
+ VERSION = '0.30.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-support-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.11
4
+ version: 0.30.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-04-26 00:00:00.000000000 Z
10
+ date: 2026-06-30 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-config
@@ -64,6 +64,7 @@ files:
64
64
  - ".ace-defaults/core/settings.yml"
65
65
  - ".ace-defaults/project-root/AGENTS.md"
66
66
  - ".ace-defaults/project-root/CLAUDE.md"
67
+ - ".ace-defaults/project-root/docs/tools.md"
67
68
  - CHANGELOG.md
68
69
  - LICENSE
69
70
  - README.md