freemo
25c571541f
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 33s
CI / security (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 37s
CI / integration_tests (pull_request) Successful in 2m48s
CI / unit_tests (pull_request) Successful in 17m30s
CI / benchmark-regression (pull_request) Successful in 17m43s
CI / docker (pull_request) Successful in 1m2s
CI / coverage (pull_request) Successful in 46m42s
CI / lint (push) Successful in 13s
CI / quality (push) Successful in 26s
CI / security (push) Successful in 53s
CI / typecheck (push) Successful in 53s
CI / build (push) Successful in 33s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 4m2s
CI / benchmark-publish (push) Successful in 13m12s
CI / unit_tests (push) Successful in 20m41s
CI / docker (push) Successful in 1m14s
CI / coverage (push) Successful in 1h7m53s
feat(skill): integrate agent skills discovery
Add agent skills discovery system that scans configurable filesystem
paths for Agent Skills Standard folders (containing SKILL.md with YAML
front-matter) and registers them as tools in ToolRegistry.
Core implementation:
- New skills/discovery.py module with path parsing, directory scanning,
SKILL.md front-matter parsing, ToolSpec building, and registration
with configurable conflict handling (skip/error/replace strategies)
- Config key skills.agent_skills_paths for comma-separated discovery paths
- ToolSpec extended with source and source_metadata fields for provenance
- ToolRegistry.list_tools() gains source filter parameter
- SkillRegistryService rewritten with discover_and_register() and
refresh_agent_skills() hooks for on-demand re-scanning
- CLI "agents skill tools" command updated with --refresh flag and
source metadata in JSON output
Testing:
- 27 Behave scenarios covering config key, path parsing, discovery,
ToolSpec building, registration, conflict handling, refresh, edge
cases (invalid YAML, empty front-matter, non-dict YAML, empty
descriptions, noop handler), and source metadata
- 10 Robot Framework integration tests for end-to-end discovery flow
- ASV benchmarks for discovery scan performance overhead
Documentation:
- docs/reference/skill_registry.md updated with Agent Skills Discovery
section covering config, algorithm, SKILL.md format, conflict
handling, refresh hook, CLI output, and service API
ISSUES CLOSED: #161
2026-02-24 19:41:29 +00:00
..
2026-02-20 16:31:01 +00:00
2025-12-24 18:50:34 -05:00
2026-02-24 19:41:29 +00:00
2025-11-13 18:25:24 -05:00
2026-02-22 17:22:52 +00:00
2026-02-08 11:33:30 -05:00
2026-02-14 12:16:39 -05:00
2026-02-14 12:16:39 -05:00
2026-02-14 12:16:39 -05:00
2026-02-14 12:16:39 -05:00
2026-02-13 09:41:28 -05:00
2026-02-13 09:41:28 -05:00
2026-02-17 20:25:12 +00:00
2026-02-13 09:41:28 -05:00
2026-02-12 20:19:42 +00:00
2026-02-13 19:01:55 +05:30
2026-02-08 11:33:30 -05:00
2026-02-24 19:12:01 +00:00
2026-02-24 17:57:18 +00:00
2026-02-24 17:57:18 +00:00
2026-02-12 22:58:15 -05:00
2026-02-12 22:01:51 +00:00
2026-02-18 12:18:37 +00:00
2026-02-20 20:24:10 +00:00
2026-02-12 04:47:02 +00:00
2026-02-12 23:35:53 -05:00
2026-02-12 22:01:51 +00:00
2026-02-20 08:48:33 -05:00
2026-02-08 11:33:30 -05:00
2026-02-22 08:31:45 +00:00
2026-02-17 13:34:48 +00:00
2025-12-19 12:35:56 -05:00
2026-02-12 23:35:53 -05:00
2026-02-12 04:47:02 +00:00
2026-01-27 21:55:06 -05:00
2025-11-07 17:54:15 -05:00
2025-11-07 17:54:15 -05:00
2025-11-07 17:54:15 -05:00
2025-12-08 23:02:29 -05:00
2025-12-10 16:46:55 -05:00
2026-02-12 20:19:42 +00:00
2025-11-26 23:24:46 -05:00
2025-12-22 11:18:57 -05:00
2025-12-23 20:57:14 -05:00
2026-02-20 15:57:21 +00:00
2026-02-12 20:19:42 +00:00
2026-02-20 08:50:06 -05:00
2026-02-20 15:57:21 +00:00
2026-02-18 03:27:00 +00:00
2026-02-20 15:57:21 +00:00
2026-02-18 03:27:00 +00:00
2026-02-22 10:19:43 +00:00
2026-02-18 03:27:00 +00:00
2026-02-18 03:27:00 +00:00
2026-02-21 16:27:40 +00:00
2026-02-18 03:27:00 +00:00
2026-02-12 22:01:51 +00:00
2026-02-22 00:43:08 -05:00
2026-02-22 00:43:08 -05:00
2025-11-16 20:38:02 -05:00
2026-02-12 04:47:02 +00:00
2026-02-18 12:18:03 +00:00
2026-02-16 23:50:59 -05:00
2026-02-24 13:41:11 +00:00
2025-11-16 20:38:02 -05:00
2026-02-20 15:57:21 +00:00
2026-02-19 22:44:34 +00:00
2025-11-22 15:23:39 -05:00
2026-02-22 00:43:08 -05:00
2026-02-14 13:51:12 -05:00
2025-12-23 17:12:16 -05:00
2025-12-24 18:50:34 -05:00
2026-01-17 12:54:03 -05:00
2026-02-18 12:18:03 +00:00
2026-02-22 00:43:08 -05:00
2026-02-19 23:48:40 +00:00
2026-01-27 21:55:06 -05:00
2026-02-23 10:44:58 +00:00
2026-02-24 12:19:04 -05:00
2026-02-12 04:47:02 +00:00
2026-02-12 22:58:15 -05:00
2026-02-12 22:01:51 +00:00
2026-02-08 11:33:30 -05:00
2026-02-12 04:47:02 +00:00
2026-02-12 22:58:15 -05:00
2026-02-12 22:01:51 +00:00
2025-12-16 17:20:37 -05:00
2025-11-16 20:38:02 -05:00
2026-02-08 11:33:30 -05:00
2026-02-12 04:47:02 +00:00
2026-02-14 04:01:20 +00:00
2025-11-16 20:38:02 -05:00
2026-02-22 17:15:51 +00:00
2026-02-22 17:56:18 +00:00
2026-02-24 12:19:04 -05:00
2026-02-22 15:29:41 -05:00
2026-02-16 16:46:54 -05:00
2025-12-23 17:12:16 -05:00
2025-11-06 23:51:03 -05:00
2025-11-05 15:11:03 -05:00
2026-02-13 13:05:20 -05:00
2026-02-13 18:54:15 +00:00
2026-02-16 21:35:54 +00:00
2025-11-07 17:54:15 -05:00
2025-12-19 12:35:56 -05:00
2026-02-16 21:35:54 +00:00
2026-02-13 20:34:57 +00:00
2026-02-24 12:19:04 -05:00
2026-02-22 15:29:41 -05:00
2026-02-22 00:43:08 -05:00
2025-11-07 17:54:15 -05:00
2025-12-19 12:35:56 -05:00
2026-02-23 22:20:03 +00:00
2026-02-12 04:47:02 +00:00
2026-02-13 20:34:57 +00:00
2025-11-07 17:54:15 -05:00
2026-02-24 00:41:01 +00:00
2026-02-19 13:46:48 +00:00
2026-02-21 16:30:33 +00:00
2026-02-16 21:35:54 +00:00
2026-02-14 04:01:20 +00:00
2025-12-09 18:28:14 -05:00
2026-02-22 15:29:41 -05:00
2026-02-22 09:23:35 +00:00
2025-12-10 12:39:07 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2025-12-05 21:00:46 -05:00
2025-11-13 18:25:24 -05:00
2026-02-17 00:38:33 +00:00
2026-02-22 15:29:41 -05:00
2026-02-22 10:15:25 +00:00
2025-11-06 23:51:03 -05:00
2025-11-05 15:11:03 -05:00
2025-11-30 17:36:52 -05:00
2026-02-12 22:01:51 +00:00
2025-12-23 17:12:16 -05:00
2025-11-06 23:51:03 -05:00
2025-11-01 20:56:38 -04:00
2026-02-13 21:54:31 +00:00
2026-02-12 20:19:42 +00:00
2025-12-10 12:39:07 -05:00
2025-12-09 19:28:24 -05:00
2025-11-07 17:54:15 -05:00
2026-02-21 10:23:33 -05:00
2026-02-20 00:28:15 +00:00
2026-02-23 10:45:01 +00:00
2026-02-21 10:18:26 -05:00
2026-02-24 12:19:04 -05:00
2026-02-16 21:35:54 +00:00
2026-02-14 13:42:02 -05:00
2026-02-12 22:58:15 -05:00
2025-12-08 17:45:49 -05:00
2026-02-22 15:29:41 -05:00
2026-02-08 11:33:30 -05:00
2026-02-22 00:43:08 -05:00
2026-02-21 10:23:33 -05:00
2026-02-22 15:13:43 +00:00
2026-02-24 12:19:04 -05:00
2026-02-22 15:29:41 -05:00
2025-12-10 20:25:11 -05:00
2025-12-16 17:20:37 -05:00
2026-02-12 20:19:42 +00:00
2026-02-12 20:19:42 +00:00
2026-02-20 15:57:21 +00:00
2026-02-17 00:37:53 +00:00
2026-02-08 11:33:30 -05:00
2026-02-17 00:37:53 +00:00
2026-02-17 00:37:53 +00:00
2026-02-24 12:19:04 -05:00
2026-02-15 00:12:07 -05:00
2026-02-20 15:57:21 +00:00
2026-02-22 00:43:08 -05:00
2026-02-15 00:12:07 -05:00
2026-02-18 00:09:56 +00:00
2026-02-15 06:16:19 +00:00
2026-02-15 08:29:31 +00:00
2025-11-28 23:52:23 -05:00
2026-01-14 17:35:09 -05:00
2026-01-14 17:35:09 -05:00
2026-02-17 16:40:18 +00:00
2026-02-18 03:27:00 +00:00
2026-02-16 23:56:55 -05:00
2026-02-17 14:40:16 +00:00
2026-02-18 03:27:00 +00:00
2026-02-18 03:27:00 +00:00
2026-02-16 16:46:54 -05:00
2025-11-16 20:38:02 -05:00
2025-11-19 22:40:53 -05:00
2026-02-15 11:04:18 -05:00
2025-12-09 19:28:24 -05:00
2026-01-28 13:33:45 -05:00
2026-02-12 23:35:53 -05:00
2026-02-08 11:33:30 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-02-24 12:19:04 -05:00
2026-02-23 03:11:12 +00:00
2026-02-17 00:37:53 +00:00
2026-02-17 22:59:16 -05:00
2026-02-22 00:43:08 -05:00
2026-02-18 03:27:00 +00:00
2026-02-18 00:10:15 +00:00
2026-02-18 03:27:00 +00:00
2026-02-16 16:46:54 -05:00
2026-02-20 08:48:33 -05:00
2026-02-16 16:46:54 -05:00
2026-02-18 03:27:00 +00:00
2026-02-24 12:19:04 -05:00
2026-02-23 22:20:44 +00:00
2026-02-16 16:46:54 -05:00
2026-02-13 21:54:31 +00:00
2026-02-18 03:27:00 +00:00
2026-02-17 21:07:54 +00:00
2026-02-16 21:35:54 +00:00
2026-02-18 03:27:00 +00:00
2026-02-18 03:27:00 +00:00
2026-02-15 15:19:09 +00:00
2025-11-19 22:40:53 -05:00
2026-02-19 22:00:53 +00:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-01-27 21:55:06 -05:00
2026-02-02 18:46:33 -05:00
2026-02-14 04:01:20 +00:00
2026-02-12 20:19:42 +00:00
2026-02-12 20:19:42 +00:00
2026-02-20 03:31:43 +00:00
2025-11-05 18:16:54 -05:00
2026-02-19 20:10:56 +00:00
2026-02-21 16:32:03 +00:00
2026-02-13 19:24:24 +00:00
2026-02-19 11:15:18 +00:00
2025-12-16 17:20:37 -05:00
2026-02-22 00:43:08 -05:00
2026-02-20 01:10:19 +00:00
2026-02-20 15:57:21 +00:00
2026-02-18 00:10:15 +00:00
2025-12-10 12:39:07 -05:00
2026-02-24 12:19:04 -05:00
2026-02-18 01:03:11 +00:00
2026-02-20 08:50:08 -05:00
2026-02-24 17:57:18 +00:00
2026-02-21 10:23:33 -05:00
2026-02-24 17:57:18 +00:00
2026-02-20 08:50:08 -05:00
2026-02-20 08:50:08 -05:00
2026-02-20 08:50:08 -05:00
2026-02-21 16:30:40 +00:00
2026-02-21 16:30:40 +00:00
2026-02-17 19:58:15 +00:00
2026-02-16 19:52:47 +05:30
2026-02-21 10:23:33 -05:00
2026-01-27 21:55:06 -05:00
2026-02-12 20:19:42 +00:00
2026-02-12 04:47:02 +00:00
2026-02-08 11:33:30 -05:00
2026-02-12 20:19:42 +00:00
2026-02-12 20:19:42 +00:00
2026-02-12 20:19:42 +00:00
2026-02-21 16:32:03 +00:00
2025-11-07 17:54:15 -05:00
2026-02-20 20:34:29 +00:00
2026-02-22 00:43:08 -05:00
2026-02-20 08:50:06 -05:00
2026-02-14 14:03:28 -05:00
2026-02-20 08:49:30 -05:00
2026-02-22 00:43:08 -05:00
2026-02-20 08:49:30 -05:00
2026-02-16 21:35:54 +00:00
2026-02-14 18:55:48 +00:00
2026-02-17 21:14:46 +00:00
2026-02-17 22:59:16 -05:00
2026-02-22 00:43:08 -05:00
2026-02-17 20:28:20 +00:00
2026-02-21 10:23:33 -05:00
2026-02-14 13:46:10 -05:00
2026-02-15 09:04:17 +00:00
2026-02-22 00:43:08 -05:00
2026-02-20 02:54:08 +00:00
2026-02-12 20:19:42 +00:00
2025-12-06 00:23:48 -05:00
2026-02-12 22:01:51 +00:00
2026-02-12 22:58:15 -05:00