Files
aditya c40ea014dc
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / security (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 37s
CI / integration_tests (pull_request) Successful in 2m46s
CI / unit_tests (pull_request) Successful in 9m40s
CI / docker (pull_request) Successful in 39s
CI / benchmark-regression (pull_request) Successful in 20m53s
CI / coverage (pull_request) Successful in 34m31s
feat(cli): add skill tools and refresh commands
Implemented agents skill refresh command to recompute tool flattening and sync
MCP-backed skills. Enhanced skill list/show/tools outputs with capability
summary fields.

- agents skill refresh <name>|--all to recompute flattening
- Enhanced skill list/show/tools with capability summary and tool counts
- Added --format json/yaml schemas for refresh output
- CLI errors for nonexistent skills and MCP sync failures
- Behave tests (skill_cli.feature), Robot tests (skill_cli.robot)
- ASV benchmarks (skill_cli_bench.py) for CLI overhead baseline
- Updated docs/reference/skill_cli.md with refresh command examples
- Documented refresh side effects and caching behavior

ISSUES CLOSED: #167
2026-02-26 10:57:07 +00:00

82 lines
3.6 KiB
Plaintext

*** Settings ***
Documentation Smoke tests for Skill CLI commands (add, show, tools, list, remove)
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_skill_cli.py
*** Test Cases ***
Skill Add Config Registers Skill
[Documentation] Verify that ``skill add --config`` registers a skill
${result}= Run Process ${PYTHON} ${HELPER} add-config cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-add-config-ok
Skill Add Duplicate Fails Without Update
[Documentation] Verify that adding a duplicate skill fails without ``--update``
${result}= Run Process ${PYTHON} ${HELPER} add-duplicate-fails cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-add-duplicate-fails-ok
Skill Add Update Overwrites Existing
[Documentation] Verify that ``skill add --update`` overwrites an existing skill
${result}= Run Process ${PYTHON} ${HELPER} add-update cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-add-update-ok
Skill Show Displays Details
[Documentation] Verify that ``skill show`` displays skill details
${result}= Run Process ${PYTHON} ${HELPER} show-skill cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-show-ok
Skill Tools Shows Flattened List
[Documentation] Verify that ``skill tools`` shows the flattened tool list
${result}= Run Process ${PYTHON} ${HELPER} tools-skill cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-tools-ok
Skill List Shows All Skills
[Documentation] Verify that ``skill list`` shows all registered skills
${result}= Run Process ${PYTHON} ${HELPER} list-skills cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-list-ok
Skill Remove Deletes Skill
[Documentation] Verify that ``skill remove --yes`` removes a skill
${result}= Run Process ${PYTHON} ${HELPER} remove-skill cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-remove-ok
Skill Refresh Single Skill
[Documentation] Verify that ``skill refresh <name>`` recomputes tool flattening
${result}= Run Process ${PYTHON} ${HELPER} refresh-skill cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-refresh-ok
Skill Refresh All Skills
[Documentation] Verify that ``skill refresh --all`` refreshes all skills
${result}= Run Process ${PYTHON} ${HELPER} refresh-all cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skill-cli-refresh-all-ok