ace-support-nav 0.25.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 +7 -0
- data/.ace-defaults/nav/config.yml +33 -0
- data/.ace-defaults/nav/protocols/guide-sources/ace-support-nav.yml +7 -0
- data/.ace-defaults/nav/protocols/guide.yml +69 -0
- data/.ace-defaults/nav/protocols/prompt.yml +39 -0
- data/.ace-defaults/nav/protocols/skill-sources/ace-support-nav.yml +19 -0
- data/.ace-defaults/nav/protocols/skill.yml +22 -0
- data/.ace-defaults/nav/protocols/tmpl-sources/ace-support-nav.yml +7 -0
- data/.ace-defaults/nav/protocols/tmpl.yml +55 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-support-nav.yml +7 -0
- data/.ace-defaults/nav/protocols/wfi.yml +61 -0
- data/CHANGELOG.md +231 -0
- data/LICENSE +21 -0
- data/README.md +48 -0
- data/Rakefile +12 -0
- data/docs/demo/ace-support-nav-getting-started.gif +0 -0
- data/docs/demo/ace-support-nav-getting-started.tape.yml +28 -0
- data/exe/ace-nav +49 -0
- data/handbook/workflow-instructions/test.wfi.md +14 -0
- data/lib/ace/support/nav/atoms/extension_inferrer.rb +134 -0
- data/lib/ace/support/nav/atoms/gem_resolver.rb +59 -0
- data/lib/ace/support/nav/atoms/path_normalizer.rb +52 -0
- data/lib/ace/support/nav/atoms/uri_parser.rb +62 -0
- data/lib/ace/support/nav/cli/commands/create.rb +114 -0
- data/lib/ace/support/nav/cli/commands/list.rb +122 -0
- data/lib/ace/support/nav/cli/commands/resolve.rb +187 -0
- data/lib/ace/support/nav/cli/commands/sources.rb +112 -0
- data/lib/ace/support/nav/cli.rb +66 -0
- data/lib/ace/support/nav/models/handbook_source.rb +73 -0
- data/lib/ace/support/nav/models/protocol_source.rb +104 -0
- data/lib/ace/support/nav/models/resource.rb +46 -0
- data/lib/ace/support/nav/models/resource_uri.rb +78 -0
- data/lib/ace/support/nav/molecules/config_loader.rb +275 -0
- data/lib/ace/support/nav/molecules/handbook_scanner.rb +204 -0
- data/lib/ace/support/nav/molecules/protocol_scanner.rb +434 -0
- data/lib/ace/support/nav/molecules/resource_resolver.rb +134 -0
- data/lib/ace/support/nav/molecules/source_registry.rb +133 -0
- data/lib/ace/support/nav/organisms/command_delegator.rb +122 -0
- data/lib/ace/support/nav/organisms/navigation_engine.rb +180 -0
- data/lib/ace/support/nav/version.rb +9 -0
- data/lib/ace/support/nav.rb +104 -0
- metadata +228 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e493ee4ffdce85ef637ce1ab36225ce053b40f85b24570ec2503823bf981b8f3
|
|
4
|
+
data.tar.gz: 7b2f34fadee418efd1e2bbf7d66a836b7d54e5ca6a72fb549eb1424c85d0f68f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 8dea4d0a2c5e5f511e84e76a72e33692aeda77eebf5d30d1a2549e980735d3253c2c27c68184d2a495d026b1681d9a33a87f613028e49fbe6e50a0a043680cfd
|
|
7
|
+
data.tar.gz: 9e9053d151aa8e3aa55d8d457114afe149c501263e3ddff69af774943bc502924458e70fb7424be5ff24e0485e8022ea4dd18fea91d978351384d4ebb215077f
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# ace-nav configuration
|
|
2
|
+
# Place in .ace/nav/config.yml to customize
|
|
3
|
+
# ADR-022: This file is the single source of truth for defaults
|
|
4
|
+
#
|
|
5
|
+
# Configuration cascade:
|
|
6
|
+
# 1. .ace-defaults/nav/config.yml (gem defaults - this file)
|
|
7
|
+
# 2. ~/.ace/nav/config.yml (user defaults)
|
|
8
|
+
# 3. .ace/nav/config.yml (project overrides)
|
|
9
|
+
|
|
10
|
+
# Cache settings for protocol resolution
|
|
11
|
+
cache:
|
|
12
|
+
enabled: false # Enable caching of protocol lookups
|
|
13
|
+
directory: ".ace-local/nav" # Cache directory path
|
|
14
|
+
ttl: 3600 # Cache TTL in seconds (1 hour)
|
|
15
|
+
|
|
16
|
+
# Fuzzy matching settings for resource names
|
|
17
|
+
fuzzy:
|
|
18
|
+
enabled: true # Enable fuzzy matching for resource names
|
|
19
|
+
threshold: 0.6 # Minimum similarity score (0.0 - 1.0)
|
|
20
|
+
|
|
21
|
+
# Output settings
|
|
22
|
+
output:
|
|
23
|
+
color: true # Enable colored output
|
|
24
|
+
verbose: false # Enable verbose output
|
|
25
|
+
|
|
26
|
+
# Extension inference settings for protocol resolution
|
|
27
|
+
extension_inference:
|
|
28
|
+
enabled: true # Enable DWIM extension inference when exact match fails
|
|
29
|
+
fallback_order:
|
|
30
|
+
- protocol_shorthand # e.g., .g, .wf
|
|
31
|
+
- protocol_full # e.g., .g.md, .wf.md
|
|
32
|
+
- generic_markdown # .md
|
|
33
|
+
- bare # no extension
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Protocol definition for guides
|
|
2
|
+
protocol: guide
|
|
3
|
+
name: "Guides"
|
|
4
|
+
description: "Documentation and how-to guides"
|
|
5
|
+
enabled: true
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# File extensions to match
|
|
9
|
+
extensions:
|
|
10
|
+
- .g.md # shorthand first
|
|
11
|
+
- .guide.md # full second
|
|
12
|
+
- .md # generic last
|
|
13
|
+
|
|
14
|
+
# Extension inference for DWIM behavior
|
|
15
|
+
inferred_extensions:
|
|
16
|
+
- .g
|
|
17
|
+
- .guide
|
|
18
|
+
- .g.md
|
|
19
|
+
- .guide.md
|
|
20
|
+
- .md
|
|
21
|
+
|
|
22
|
+
# Categories for organizing guides
|
|
23
|
+
categories:
|
|
24
|
+
- getting-started
|
|
25
|
+
- architecture
|
|
26
|
+
- development
|
|
27
|
+
- deployment
|
|
28
|
+
- troubleshooting
|
|
29
|
+
- best-practices
|
|
30
|
+
|
|
31
|
+
# Template for creating new guides
|
|
32
|
+
create_template: |
|
|
33
|
+
# %{name}
|
|
34
|
+
|
|
35
|
+
## Overview
|
|
36
|
+
|
|
37
|
+
Brief introduction to this guide.
|
|
38
|
+
|
|
39
|
+
## Table of Contents
|
|
40
|
+
|
|
41
|
+
- [Section 1](#section-1)
|
|
42
|
+
- [Section 2](#section-2)
|
|
43
|
+
- [Section 3](#section-3)
|
|
44
|
+
|
|
45
|
+
## Section 1
|
|
46
|
+
|
|
47
|
+
Content for section 1.
|
|
48
|
+
|
|
49
|
+
## Section 2
|
|
50
|
+
|
|
51
|
+
Content for section 2.
|
|
52
|
+
|
|
53
|
+
## Section 3
|
|
54
|
+
|
|
55
|
+
Content for section 3.
|
|
56
|
+
|
|
57
|
+
## Related Guides
|
|
58
|
+
|
|
59
|
+
- Link to related guide 1
|
|
60
|
+
- Link to related guide 2
|
|
61
|
+
|
|
62
|
+
# Protocol capabilities
|
|
63
|
+
capabilities:
|
|
64
|
+
searchable: true
|
|
65
|
+
supports_glob: true
|
|
66
|
+
supports_create: true
|
|
67
|
+
supports_content: true
|
|
68
|
+
supports_list: true
|
|
69
|
+
supports_tree: true
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Protocol definition for system prompts
|
|
2
|
+
protocol: prompt
|
|
3
|
+
name: "System Prompts"
|
|
4
|
+
description: "System prompts for LLM interactions and tools"
|
|
5
|
+
enabled: true
|
|
6
|
+
|
|
7
|
+
# File extensions to match
|
|
8
|
+
extensions:
|
|
9
|
+
- .md
|
|
10
|
+
- .prompt.md
|
|
11
|
+
|
|
12
|
+
# Template for creating new prompts
|
|
13
|
+
create_template: |
|
|
14
|
+
# %{name} System Prompt
|
|
15
|
+
|
|
16
|
+
You are an expert in %{domain}. Your task is to %{task}.
|
|
17
|
+
|
|
18
|
+
## Instructions
|
|
19
|
+
|
|
20
|
+
1. Follow these guidelines
|
|
21
|
+
2. Maintain consistency
|
|
22
|
+
3. Be precise and clear
|
|
23
|
+
|
|
24
|
+
## Format
|
|
25
|
+
|
|
26
|
+
Describe the expected output format.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
Provide concrete examples of expected behavior.
|
|
31
|
+
|
|
32
|
+
# Protocol capabilities
|
|
33
|
+
capabilities:
|
|
34
|
+
searchable: true
|
|
35
|
+
supports_glob: true
|
|
36
|
+
supports_create: true
|
|
37
|
+
supports_content: true
|
|
38
|
+
supports_list: true
|
|
39
|
+
supports_tree: true
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Skill Sources Protocol Configuration for ace-support-nav
|
|
3
|
+
# This enables canonical skill discovery from the ace-support-nav gem
|
|
4
|
+
|
|
5
|
+
name: ace-support-nav
|
|
6
|
+
type: gem
|
|
7
|
+
description: Canonical skills from ace-support-nav gem
|
|
8
|
+
priority: 10
|
|
9
|
+
|
|
10
|
+
# Configuration for skill discovery within the gem
|
|
11
|
+
config:
|
|
12
|
+
# Relative path within the gem
|
|
13
|
+
relative_path: handbook/skills
|
|
14
|
+
|
|
15
|
+
# Pattern for finding canonical skill files
|
|
16
|
+
pattern: "*/SKILL.md"
|
|
17
|
+
|
|
18
|
+
# Enable discovery
|
|
19
|
+
enabled: true
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Protocol definition for canonical skills
|
|
2
|
+
protocol: skill
|
|
3
|
+
name: "Canonical Skills"
|
|
4
|
+
description: "Canonical package-owned SKILL.md resources"
|
|
5
|
+
enabled: true
|
|
6
|
+
|
|
7
|
+
# Canonical skills resolve to handbook/skills/<name>/SKILL.md
|
|
8
|
+
extensions:
|
|
9
|
+
- /SKILL.md
|
|
10
|
+
|
|
11
|
+
# Extension inference for shorthand lookups
|
|
12
|
+
inferred_extensions:
|
|
13
|
+
- /SKILL.md
|
|
14
|
+
|
|
15
|
+
# Protocol capabilities
|
|
16
|
+
capabilities:
|
|
17
|
+
searchable: true
|
|
18
|
+
supports_glob: true
|
|
19
|
+
supports_create: false
|
|
20
|
+
supports_content: true
|
|
21
|
+
supports_list: true
|
|
22
|
+
supports_tree: true
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Protocol definition for templates
|
|
2
|
+
protocol: tmpl
|
|
3
|
+
name: "Templates"
|
|
4
|
+
description: "Reusable document and code templates"
|
|
5
|
+
enabled: true
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# File extensions to match
|
|
9
|
+
extensions:
|
|
10
|
+
- .tmpl.md
|
|
11
|
+
- .template.md
|
|
12
|
+
|
|
13
|
+
# Categories for organizing templates
|
|
14
|
+
categories:
|
|
15
|
+
- minitest
|
|
16
|
+
- rspec
|
|
17
|
+
- task
|
|
18
|
+
- release
|
|
19
|
+
- documentation
|
|
20
|
+
- code-review
|
|
21
|
+
|
|
22
|
+
# Template for creating new templates
|
|
23
|
+
create_template: |
|
|
24
|
+
---
|
|
25
|
+
name: %{name}
|
|
26
|
+
category: %{category}
|
|
27
|
+
description: Template description
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# %{name} Template
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
Describe how to use this template.
|
|
35
|
+
|
|
36
|
+
## Template Content
|
|
37
|
+
|
|
38
|
+
[Your template content here]
|
|
39
|
+
|
|
40
|
+
## Variables
|
|
41
|
+
|
|
42
|
+
- `%{variable}`: Description of this variable
|
|
43
|
+
|
|
44
|
+
## Examples
|
|
45
|
+
|
|
46
|
+
Show examples of the template in use.
|
|
47
|
+
|
|
48
|
+
# Protocol capabilities
|
|
49
|
+
capabilities:
|
|
50
|
+
searchable: true
|
|
51
|
+
supports_glob: true
|
|
52
|
+
supports_create: true
|
|
53
|
+
supports_content: true
|
|
54
|
+
supports_list: true
|
|
55
|
+
supports_tree: true
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Example: ace-support-nav workflow instruction sources
|
|
2
|
+
# Copy this file to .ace/protocols/wfi-sources/ to enable
|
|
3
|
+
name: ace-support-nav
|
|
4
|
+
type: directory
|
|
5
|
+
path: ./handbook/workflow-instructions/
|
|
6
|
+
priority: 100
|
|
7
|
+
description: "ace-support-nav workflow instructions"
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Protocol definition for workflow instructions
|
|
2
|
+
protocol: wfi
|
|
3
|
+
name: "Workflow Instructions"
|
|
4
|
+
description: "Step-by-step workflow guides for development tasks"
|
|
5
|
+
enabled: true
|
|
6
|
+
|
|
7
|
+
# File extensions to match
|
|
8
|
+
extensions:
|
|
9
|
+
- .wf.md # shorthand first
|
|
10
|
+
- .wfi.md
|
|
11
|
+
- .workflow.md
|
|
12
|
+
|
|
13
|
+
# Extension inference for DWIM behavior
|
|
14
|
+
inferred_extensions:
|
|
15
|
+
- .wf
|
|
16
|
+
- .wfi
|
|
17
|
+
- .workflow
|
|
18
|
+
- .wf.md
|
|
19
|
+
- .wfi.md
|
|
20
|
+
- .workflow.md
|
|
21
|
+
- .md
|
|
22
|
+
|
|
23
|
+
# Template for creating new workflows
|
|
24
|
+
create_template: |
|
|
25
|
+
# %{name}
|
|
26
|
+
|
|
27
|
+
## Goal
|
|
28
|
+
|
|
29
|
+
Describe the objective of this workflow.
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- List any requirements
|
|
34
|
+
- Tools or access needed
|
|
35
|
+
|
|
36
|
+
## Process Steps
|
|
37
|
+
|
|
38
|
+
1. **Step One**
|
|
39
|
+
- Details about this step
|
|
40
|
+
- Sub-steps if needed
|
|
41
|
+
|
|
42
|
+
2. **Step Two**
|
|
43
|
+
- Details about this step
|
|
44
|
+
|
|
45
|
+
## Success Criteria
|
|
46
|
+
|
|
47
|
+
- [ ] Criteria one
|
|
48
|
+
- [ ] Criteria two
|
|
49
|
+
|
|
50
|
+
## Common Issues
|
|
51
|
+
|
|
52
|
+
Document any common problems and solutions.
|
|
53
|
+
|
|
54
|
+
# Protocol capabilities
|
|
55
|
+
capabilities:
|
|
56
|
+
searchable: true
|
|
57
|
+
supports_glob: true
|
|
58
|
+
supports_create: true
|
|
59
|
+
supports_content: true
|
|
60
|
+
supports_list: true
|
|
61
|
+
supports_tree: true
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to ace-support-nav will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.25.0] - 2026-03-23
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Added getting-started demo tape and recorded GIF showing `ace-nav sources`, `list`, and `resolve` commands.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Added Quick Start section with `ace-nav` CLI examples and handbook link in README footer navigation.
|
|
17
|
+
- Added `docs/**/*` to gemspec file glob for demo and documentation assets.
|
|
18
|
+
|
|
19
|
+
## [0.24.0] - 2026-03-23
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- Refreshed the README layout for clearer package positioning, quick section navigation, and streamlined `ace-nav` usage/configuration guidance.
|
|
23
|
+
|
|
24
|
+
## [0.23.4] - 2026-03-22
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- Standardized README usage examples to consistently run `ace-nav` and `ace-test` commands via `mise exec --` for clear execution context.
|
|
28
|
+
|
|
29
|
+
## [0.23.3] - 2026-03-22
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- Refreshed README structure with explicit purpose framing, standardized license/footer sections, and consistent support-package layout.
|
|
33
|
+
- Updated README navigation examples and feature inventory to include canonical `skill://` protocol usage.
|
|
34
|
+
|
|
35
|
+
## [0.23.2] - 2026-03-19
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
- Expanded `TS-NAV-001` Goal 1 to include `ace-nav sources` command evidence capture in the runner and verifier contracts.
|
|
39
|
+
- Tightened Goal 4 and Goal 5 verifier expectations for missing-resource identification and protocol-specific shorthand evidence.
|
|
40
|
+
|
|
41
|
+
## [0.23.1] - 2026-03-18
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## [0.23.0] - 2026-03-18
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## [0.22.1] - 2026-03-15
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
57
|
+
|
|
58
|
+
## [0.22.0] - 2026-03-12
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
- Added explicit `start_path:` support to `SourceRegistry` so protocol source discovery can be rooted at an arbitrary project instead of always using process cwd.
|
|
62
|
+
|
|
63
|
+
### Technical
|
|
64
|
+
- Added regression coverage for rooted source discovery used by nav-backed handbook skill inventory.
|
|
65
|
+
|
|
66
|
+
## [0.21.0] - 2026-03-12
|
|
67
|
+
|
|
68
|
+
### Added
|
|
69
|
+
- Added project and user handbook override root support for dedicated `.ace-handbook` and `~/.ace-handbook` directories, including default `ace-nav create` targets under the new project root.
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
- Changed project-local workflow registration and user-facing nav docs to point at `.ace-handbook` instead of `.ace/handbook`.
|
|
73
|
+
|
|
74
|
+
### Technical
|
|
75
|
+
- Added regression coverage for `@project` / `@user` source discovery under the new override roots and for default create-target placement.
|
|
76
|
+
|
|
77
|
+
## [0.20.0] - 2026-03-09
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
- Added scanner/CLI/regression coverage for canonical `skill://` wildcard and direct lookup behavior, including priority-based duplicate resolution for canonical `SKILL.md` paths.
|
|
81
|
+
|
|
82
|
+
### Changed
|
|
83
|
+
- Converted default `skill-sources` registration to gem-backed canonical discovery config and aligned it with `handbook/skills` + `*/SKILL.md` matching.
|
|
84
|
+
|
|
85
|
+
## [0.19.0] - 2026-03-09
|
|
86
|
+
|
|
87
|
+
### Added
|
|
88
|
+
- Added canonical `skill://` protocol defaults for package-owned skill discovery.
|
|
89
|
+
- Added default `skill-sources` scaffold for `handbook/skills` registration in nav protocol configuration.
|
|
90
|
+
|
|
91
|
+
## [0.18.2] - 2026-03-04
|
|
92
|
+
|
|
93
|
+
### Fixed
|
|
94
|
+
- Sandbox-safe HOME isolation in user-source and user-protocol tests to avoid permission errors when writing under real `~/.ace`.
|
|
95
|
+
|
|
96
|
+
## [0.18.1] - 2026-03-04
|
|
97
|
+
|
|
98
|
+
### Changed
|
|
99
|
+
- Default nav cache directory now uses `.ace-local/nav`.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## [0.18.0] - 2026-03-04
|
|
103
|
+
|
|
104
|
+
### Added
|
|
105
|
+
- `resolve_cmd_to_path` method for programmatic resolution of cmd-type protocol URIs (e.g., `task://ref`)
|
|
106
|
+
|
|
107
|
+
### Fixed
|
|
108
|
+
- Prevent argument injection in `resolve_cmd_to_path` by escaping reference before command template interpolation
|
|
109
|
+
- Add 10-second timeout to cmd protocol execution to prevent indefinite hangs
|
|
110
|
+
|
|
111
|
+
## [0.17.10] - 2026-02-23
|
|
112
|
+
|
|
113
|
+
### Technical
|
|
114
|
+
- Updated internal dependency version constraints to current releases
|
|
115
|
+
|
|
116
|
+
## [0.17.9] - 2026-02-22
|
|
117
|
+
|
|
118
|
+
### Changed
|
|
119
|
+
- Migrate `ace-nav` to the standard multi-command help pattern with explicit top-level `help`, `--help`, and `-h` commands.
|
|
120
|
+
- Remove implicit default-command routing and require explicit `resolve`/`list`/`create`/`sources` command usage.
|
|
121
|
+
- Update README and command help examples to canonical explicit command forms.
|
|
122
|
+
|
|
123
|
+
### Technical
|
|
124
|
+
- Remove custom default-routing from `CLI` (`start`, `KNOWN_COMMANDS`, `DEFAULT_COMMAND`) and switch executable dispatch to `Dry::CLI.new(...).call(arguments: ...)`.
|
|
125
|
+
- Normalize no-argument invocation to `--help` in `exe/ace-nav` and preserve legacy `--sources` / `--create` aliases via executable argument translation.
|
|
126
|
+
- Update integration tests to assert explicit dry-cli invocation behavior.
|
|
127
|
+
|
|
128
|
+
## [0.17.7] - 2026-02-19
|
|
129
|
+
|
|
130
|
+
### Technical
|
|
131
|
+
- Add test coverage for subdirectory protocol resolution patterns
|
|
132
|
+
|
|
133
|
+
## [0.17.6] - 2026-02-17
|
|
134
|
+
|
|
135
|
+
### Fixed
|
|
136
|
+
- Add `--tree` option to Resolve command to prevent dry-cli from calling `exit(1)` on unknown option
|
|
137
|
+
- This caused integration tests to crash mid-process, breaking both grouped and single-batch test execution
|
|
138
|
+
- `ace-test-suite` reported 0 tests for ace-support-nav because the subprocess died before minitest output
|
|
139
|
+
|
|
140
|
+
### Technical
|
|
141
|
+
- Remove dead `navigation_integration_test.rb` that was permanently skipped via `runnable_methods` returning `[]`
|
|
142
|
+
- Consolidate E2E test configuration fixtures
|
|
143
|
+
|
|
144
|
+
## [0.17.5] - 2026-02-11
|
|
145
|
+
|
|
146
|
+
### Changed
|
|
147
|
+
- Simplified path resolution in `ProtocolSource` to consistently use project root
|
|
148
|
+
- Extracted `find_project_root` private method for cleaner code structure
|
|
149
|
+
|
|
150
|
+
### Technical
|
|
151
|
+
- Migrate E2E tests to per-TC directory format
|
|
152
|
+
- Add E2E tests for ace-nav and ace-timestamp
|
|
153
|
+
|
|
154
|
+
## [0.17.4] - 2026-02-02
|
|
155
|
+
|
|
156
|
+
### Fixed
|
|
157
|
+
- Protocol listing with empty path (`wfi://`) now correctly lists all resources
|
|
158
|
+
- Empty path after `://` is now normalized to `nil` in `ResourceUri`
|
|
159
|
+
- Enables `pattern = uri.path || "*"` to default to wildcard
|
|
160
|
+
- Bare protocol names (`wfi`, `tmpl`, `guide`) now auto-expand to `protocol://` format
|
|
161
|
+
- Added `normalize_protocol_shorthand` in Resolve command
|
|
162
|
+
- Both `ace-nav wfi` and `ace-nav wfi://` now list all workflow instructions
|
|
163
|
+
- Extension inference prefix matching bug (TC-004)
|
|
164
|
+
- `start_with?` was too permissive, matching `multi-ext.guide.md` when searching for `multi-ext.g`
|
|
165
|
+
- Now validates character following candidate is either end-of-string or dot separator
|
|
166
|
+
|
|
167
|
+
## [0.17.3] - 2026-01-24
|
|
168
|
+
|
|
169
|
+
### Added
|
|
170
|
+
- Extension inference for protocol resolution (task 224)
|
|
171
|
+
- Add `ExtensionInferrer` atom for DWIM extension inference
|
|
172
|
+
- Configure inference via `.ace/nav/config.yml` with `extension_inference.enabled` and `fallback_order`
|
|
173
|
+
- Add `inferred_extensions` to protocol configs (guide.yml, wfi.yml)
|
|
174
|
+
- Update `ProtocolScanner` to use inference when exact match fails
|
|
175
|
+
- Strip extensions using both protocol and inferred extension lists
|
|
176
|
+
|
|
177
|
+
## [0.17.2] - 2026-01-16
|
|
178
|
+
|
|
179
|
+
### Changed
|
|
180
|
+
- Updated README.md references from ace-context to ace-bundle (task 206)
|
|
181
|
+
|
|
182
|
+
## [0.17.1] - 2026-01-15
|
|
183
|
+
|
|
184
|
+
### Changed
|
|
185
|
+
- Migrate CLI commands to Hanami pattern
|
|
186
|
+
- Move commands from `commands/` to `cli/commands/`
|
|
187
|
+
- Update namespace from `Commands::*` to `CLI::Commands::*`
|
|
188
|
+
- Update test file references for new namespace
|
|
189
|
+
|
|
190
|
+
## [0.17.0] - 2026-01-12
|
|
191
|
+
|
|
192
|
+
### Changed
|
|
193
|
+
- **BREAKING**: Renamed gem from `ace-nav` to `ace-support-nav`
|
|
194
|
+
- Namespace changed from `Ace::Nav` to `Ace::Support::Nav`
|
|
195
|
+
- Import path changed from `require "ace/nav"` to `require "ace/support/nav"`
|
|
196
|
+
- Gem dependency changed from `ace-nav` to `ace-support-nav`
|
|
197
|
+
- Executable remains `ace-nav` for backwards compatibility
|
|
198
|
+
- User config path `.ace/nav/` preserved for backward compatibility
|
|
199
|
+
|
|
200
|
+
### Migration Guide
|
|
201
|
+
```ruby
|
|
202
|
+
# Before
|
|
203
|
+
require "ace/nav"
|
|
204
|
+
Ace::Nav.config
|
|
205
|
+
Ace::Nav::CLI.start(ARGV)
|
|
206
|
+
|
|
207
|
+
# After
|
|
208
|
+
require "ace/support/nav"
|
|
209
|
+
Ace::Support::Nav.config
|
|
210
|
+
Ace::Support::Nav::CLI.start(ARGV)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Previous Releases (as ace-nav)
|
|
214
|
+
|
|
215
|
+
For detailed changes prior to 0.17.0, see the git history of the ace-nav directory before the rename (commit da99d457b and earlier).
|
|
216
|
+
|
|
217
|
+
### Notable releases before rename:
|
|
218
|
+
|
|
219
|
+
- **0.16.1**: Eliminated wrapper pattern in dry-cli commands
|
|
220
|
+
- **0.16.0**: Migrated CLI framework from Thor to dry-cli
|
|
221
|
+
- **0.15.0**: Thor CLI migration with standardized command structure
|
|
222
|
+
- **0.14.0**: Minimum Ruby version raised to 3.3.0
|
|
223
|
+
- **0.13.0**: Renamed `.ace.example/` to `.ace-defaults/`
|
|
224
|
+
- **0.10.0**: Added task:// Protocol Support
|
|
225
|
+
- **0.9.0**: Initial release with core navigation functionality
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
## [0.17.8] - 2026-02-22
|
|
229
|
+
|
|
230
|
+
### Fixed
|
|
231
|
+
- Standardized quiet, verbose, debug option descriptions to canonical strings
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Michal Czyz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1> ACE - Support Nav </h1>
|
|
3
|
+
|
|
4
|
+
Protocol-aware navigation and resource discovery for ACE handbook content.
|
|
5
|
+
|
|
6
|
+
<img src="https://raw.githubusercontent.com/cs3b/ace/main/docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
|
|
7
|
+
<br><br>
|
|
8
|
+
|
|
9
|
+
<a href="https://rubygems.org/gems/ace-support-nav"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-support-nav.svg" /></a>
|
|
10
|
+
<a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
|
|
11
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
> Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
|
|
16
|
+
|
|
17
|
+
`ace-support-nav` powers the `ace-nav` CLI with cascade-aware URI resolution across project, user, and gem sources. It supports built-in protocols (`wfi://`, `guide://`, `tmpl://`, `skill://`, `prompt://`) and extensible command protocols like `task://` for tool delegation, with override targeting, wildcard discovery, and fast cached lookups.
|
|
18
|
+
|
|
19
|
+
## How It Works
|
|
20
|
+
|
|
21
|
+
1. Accept a protocol URI (e.g., `wfi://setup`) and search project, user, and gem handbook sources in cascade order.
|
|
22
|
+
2. Apply extension inference and override targeting (`@project` for repo `.ace-handbook/`, `@user` for `~/.ace-handbook/`, `@gem` for a specific gem's bundled handbook) to locate the best match.
|
|
23
|
+
3. Return the resolved path, content, or a list of candidates for wildcard and prefix patterns.
|
|
24
|
+
|
|
25
|
+
## Use Cases
|
|
26
|
+
|
|
27
|
+
**Resolve ACE resources without memorizing file paths** - run `ace-nav resolve wfi://setup` or `ace-nav resolve guide://configuration` to locate workflows, guides, templates, and skills through protocol URLs instead of raw paths.
|
|
28
|
+
|
|
29
|
+
**Target the right override layer explicitly** - use `@project`, `@user`, or specific gem aliases (e.g., `wfi://@ace-git/setup`) to bypass cascade ambiguity when multiple sources provide the same resource.
|
|
30
|
+
|
|
31
|
+
**Discover matching resources quickly** - use wildcard and prefix patterns like `ace-nav list 'wfi://*test*'` or `ace-nav resolve prompt://guidelines/` to browse available content across all handbook sources.
|
|
32
|
+
|
|
33
|
+
**Navigate task specs through the same interface** - use `task://` references (e.g., `ace-nav resolve task://083`) so task lookup shares the same navigation workflow as handbook resources, delegating to [ace-task](../ace-task) under the hood.
|
|
34
|
+
|
|
35
|
+
**Load resolved content into agent workflows** - pair with [ace-bundle](../ace-bundle) to fetch and embed resources discovered through `ace-nav` into agent context for skills and workflows.
|
|
36
|
+
|
|
37
|
+
## Quick Start
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
ace-nav resolve wfi://setup # Locate a workflow instruction
|
|
41
|
+
ace-nav resolve guide://configuration # Find a guide by protocol URI
|
|
42
|
+
ace-nav list 'wfi://*test*' # Wildcard search across sources
|
|
43
|
+
ace-nav --sources # List all registered handbook sources
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
[Handbook](handbook/) | Part of [ACE](https://github.com/cs3b/ace)
|
data/Rakefile
ADDED
|
Binary file
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Browse and resolve ACE handbook resources with ace-nav
|
|
3
|
+
tags:
|
|
4
|
+
- docs
|
|
5
|
+
- nav
|
|
6
|
+
- getting-started
|
|
7
|
+
settings:
|
|
8
|
+
font_size: 16
|
|
9
|
+
width: 960
|
|
10
|
+
height: 480
|
|
11
|
+
format: gif
|
|
12
|
+
scenes:
|
|
13
|
+
- name: Show registered handbook sources
|
|
14
|
+
commands:
|
|
15
|
+
- type: ace-nav sources
|
|
16
|
+
sleep: 4s
|
|
17
|
+
- name: List all workflow instructions
|
|
18
|
+
commands:
|
|
19
|
+
- type: clear
|
|
20
|
+
sleep: 1s
|
|
21
|
+
- type: ace-nav list 'wfi://*'
|
|
22
|
+
sleep: 4s
|
|
23
|
+
- name: Resolve a specific workflow
|
|
24
|
+
commands:
|
|
25
|
+
- type: clear
|
|
26
|
+
sleep: 1s
|
|
27
|
+
- type: ace-nav resolve wfi://task/work
|
|
28
|
+
sleep: 4s
|