# Acceptance Report: REQ-015

**Date:** 2026-03-05
**Verdict:** PASS

## Acceptance Criteria

| # | Criterion | Code | Test | Real outcome | Verdict |
|---|-----------|------|------|--------------|---------|
| 1 | Skill directory `ievo/`, `name: ievo`, body `/ievo` | `marketplace/skills/ievo/SKILL.md:2` | `test_install_deploys_ievo_skill:556` | ✅ file exists, name=ievo | PASS |
| 2 | `debugger.md` frontmatter `- ievo`, body `/ievo` | `marketplace/agents/debugger.md:17` | `test_marketplace_content.py` | ✅ `- ievo` in frontmatter, `/ievo` in body | PASS |
| 3 | `extract-best-practices` no ` /evo` | `marketplace/skills/extract-best-practices/SKILL.md` | `test_marketplace_content.py` | ✅ 0 occurrences of ` /evo` | PASS |
| 4 | `ievo install` works, no deprecation warning | `commands/install.py:75` | `test_install_shows_no_deprecation_warning:266` | ✅ `mock_warn.assert_not_called()` | PASS |
| 5 | `ievo init` not registered | `cli.py:33-58` | `test_cli_app.py:178` | ✅ expected set has `install` not `init` | PASS |
| 6 | `cli.py` imports + `main()` callback | `cli.py:14,98` | `test_cli_app.py` | ✅ `install.install(name=".")` at line 98 | PASS |
| 7 | `CLAUDE_SETTINGS_LOCAL_JSON` has `contextPaths` | `commands/init_templates.py:71` | `test_install_creates_settings_local:177` | ✅ parses as valid JSON, key present | PASS |
| 8 | Deployed `settings.local.json` has `contextPaths` | `commands/install.py:172` | `test_install_creates_settings_local:178` | ✅ `data["contextPaths"] == [".ievo/iEVO.md"]` | PASS |
| 9 | Skill deployed as `ievo` not `evo` | `core/agent_sync.py` | `test_install_deploys_ievo_skill:556` | ✅ `.claude/skills/ievo/SKILL.md` created | PASS |
| 10 | `test_install.py` replaces `test_init.py` | `tests/test_install.py` | — | ✅ test_init.py deleted, test_install.py exists | PASS |
| 11 | `test_cli_app.py` references `"install"` | `tests/test_cli_app.py:178` | — | ✅ `expected = {"install", ...}` | PASS |
| 12 | Coverage passes | — | full suite | ✅ 750 passing, 100% on changed files | PASS |

## Test Completeness

| File | Unit | Edge | Integration | Error paths | Coverage |
|------|------|------|-------------|-------------|----------|
| `commands/install.py` | ✅ | ✅ | ✅ | ✅ | 100% |
| `commands/init_templates.py` | ✅ | — | ✅ | — | 100% |
| `cli.py` | ✅ | ✅ | ✅ | ✅ | 100% |
| `commands/uninstall.py` | ✅ | ✅ | ✅ | ✅ | 99%* |
| `core/agent.py` | ✅ | ✅ | ✅ | ✅ | 100% |

*`uninstall.py` 99% — 2 missed branches (lines 171→169, 182→181) are pre-existing, not introduced by REQ-015.

## Gaps

None.

## Verdict: PASS
