diff --git a/.github/workflows/agentify-lane-fixtures.yml b/.github/workflows/agentify-lane-fixtures.yml index 85d47ae6..ab6c9568 100644 --- a/.github/workflows/agentify-lane-fixtures.yml +++ b/.github/workflows/agentify-lane-fixtures.yml @@ -8,8 +8,8 @@ name: agentify-lane-fixtures on: pull_request: paths: - - "plugins/e2a/agentify/templates/runtime-skill/**" - - "plugins/e2a/agentify/test/fixtures/**" + - "plugins/e2a/skills/agentify/templates/runtime-skill/**" + - "plugins/e2a/skills/agentify/test/fixtures/**" - ".github/workflows/agentify-lane-fixtures.yml" workflow_dispatch: {} @@ -28,9 +28,9 @@ jobs: - name: Install Claude Code + harness deps run: | npm install -g @anthropic-ai/claude-code - npm install --prefix plugins/e2a/agentify/test/fixtures/harness + npm install --prefix plugins/e2a/skills/agentify/test/fixtures/harness - name: Run lane fixtures env: CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - run: bash plugins/e2a/agentify/test/fixtures/run-fixtures.sh + run: bash plugins/e2a/skills/agentify/test/fixtures/run-fixtures.sh diff --git a/.github/workflows/agentify-test.yml b/.github/workflows/agentify-test.yml index 53cd4829..440f8faf 100644 --- a/.github/workflows/agentify-test.yml +++ b/.github/workflows/agentify-test.yml @@ -1,13 +1,13 @@ -# Tests for the agentify feedback-loop framework (plugins/e2a/agentify). +# Tests for the agentify feedback-loop framework (plugins/e2a/skills/agentify). # Deterministic: script selftests + addon unit tests + static/YAML/config # validation. No secrets, no network — runs on every PR that touches it. name: agentify-test on: push: - paths: ["plugins/e2a/agentify/**", ".github/workflows/agentify-test.yml"] + paths: ["plugins/e2a/skills/agentify/**", ".github/workflows/agentify-test.yml"] pull_request: - paths: ["plugins/e2a/agentify/**", ".github/workflows/agentify-test.yml"] + paths: ["plugins/e2a/skills/agentify/**", ".github/workflows/agentify-test.yml"] permissions: contents: read @@ -24,4 +24,4 @@ jobs: - name: Install PyYAML (for config validation) run: pip install --quiet pyyaml - name: Run the agentify test suite - run: bash plugins/e2a/agentify/test/run.sh + run: bash plugins/e2a/skills/agentify/test/run.sh diff --git a/docs/design/autonomous-repo-framework.md b/docs/design/autonomous-repo-framework.md index eeaf951d..01e0eda6 100644 --- a/docs/design/autonomous-repo-framework.md +++ b/docs/design/autonomous-repo-framework.md @@ -241,9 +241,9 @@ runtime generic without a code plugin system. ### 4.5 Deploy skill (`/agentify`) -Bundle layout (home: `plugins/e2a/agentify/` for v0): +Bundle layout (home: `plugins/e2a/skills/agentify/`): ``` -agentify/SKILL.md # the deploy procedure (the only thing that "runs") +skills/agentify/SKILL.md # the deploy procedure (the only thing that "runs") templates/workflows/*.yml.tmpl # triage, fix, comms, released templates/autonomous-repo.config.yml.tmpl templates/runtime-skill/** # SKILL.md, triage.md, fix.md, comms.md, email-templates/ @@ -404,7 +404,7 @@ v0; `always_hitl` safety valve **on** even when `mode: auto`. auto | hitl`. `auto` = triage opens a PR directly; `hitl` (e2a default) = triage emails the approver, and a verified approval reply triggers the PR. PR merge stays the ship gate in both. Remaining sub-decisions in §4.7. -4. **Build location** — inside `e2a/plugins/e2a/agentify` first then extract to a +4. **Build location** — inside `e2a/plugins/e2a/skills/agentify` first then extract to a standalone repo at the second real adopter (recommended; extract-after-second-use), vs standalone from day one (purer framework-first). 5. **Shared-source for the runtime skill across adopters** — vendored copy (deploy @@ -433,7 +433,7 @@ Slices 1+2 already beat the status quo; 3 adds the fix automation; 4 makes it di ### §10 addenda (slice 4: the `/agentify` deploy flow) -Built on `main`. `plugins/e2a/agentify/agentify-render.sh` is the deterministic +Built on `main`. `plugins/e2a/skills/agentify/agentify-render.sh` is the deterministic scaffolder; `SKILL.md` is the interactive wrapper. - **Render** fills `autonomous-repo.config.yml` from `ANS_*` answers (failing @@ -490,7 +490,7 @@ is purely additive (zero loop changes). ### §10 addenda (test harness) -`plugins/e2a/agentify/test/run.sh` is the deterministic suite (CI: +`plugins/e2a/skills/agentify/test/run.sh` is the deterministic suite (CI: `.github/workflows/agentify-test.yml`): every script `_selftest` + the addon's `bridge.test.mjs` + bash/JS syntax + `test/validate.py` (YAML parse, the rendered config vs what the workflows read, **e2a MCP/REST URL host @@ -524,21 +524,20 @@ installable, not just copy-able: second skill alongside the existing `skills/e2a/`); the plugin's marketplace entry is unchanged, version bumped `0.3.2 → 0.4.0` across all manifests (`scripts/validate-plugin.mjs` enforces the sync + the frontmatter rules). -- The scaffolder + templates stay at `plugins/e2a/agentify/` (so CI and the - test suite are unchanged); the skill references them via - **`${CLAUDE_PLUGIN_ROOT}/agentify/`** — the whole plugin ships to the install - cache, so the bundled `agentify-render.sh` / `templates/` / `references/` - resolve at runtime. +- The scaffolder + templates live in the skill's own directory, + `plugins/e2a/skills/agentify/` alongside `SKILL.md` (the conventional + skill-local layout); the skill references them via + **`${CLAUDE_PLUGIN_ROOT}/skills/agentify/`** — the whole plugin ships to the + install cache, so the bundled `agentify-render.sh` / `templates/` / + `references/` resolve at runtime. (The CI workflows follow the same path.) - Install: `/plugin marketplace add Mnexa-AI/e2a` → `/plugin install e2a` → - `/agentify` is available (plus the e2a MCP tools). The §4.5 "home: - `plugins/e2a/agentify/`" note refers to the tooling dir; the user-facing - skill is the plugin skill above. + `/agentify` is available (plus the e2a MCP tools). ## 10. Implementation reconciliation (`feat/agentify-feedback-loop`) Deviations recorded at build time (slice 1 — intake + triage): -- **Home / shape**: the framework lives at `plugins/e2a/agentify/` — a deploy +- **Home / shape**: the framework lives at `plugins/e2a/skills/agentify/` — a deploy skill (`SKILL.md` + `references/`) whose `templates/` *are* the framework (`autonomous-repo.config.yml.tmpl`, `runtime-skill/**`, `workflows/feedback-triage.yml.tmpl`, `scripts/ticket_card.sh`). diff --git a/plugins/e2a/skills/agentify/SKILL.md b/plugins/e2a/skills/agentify/SKILL.md index b2d5d9a9..4acd35b7 100644 --- a/plugins/e2a/skills/agentify/SKILL.md +++ b/plugins/e2a/skills/agentify/SKILL.md @@ -12,7 +12,7 @@ framework. The install lands as a **PR the repo owner reviews and merges** — the install itself goes through the same human gate the framework runs on. > **Where the tooling lives.** The scaffolder and templates ship in this -> plugin at `${CLAUDE_PLUGIN_ROOT}/agentify/` — `agentify-render.sh`, +> plugin at `${CLAUDE_PLUGIN_ROOT}/skills/agentify/` — `agentify-render.sh`, > `templates/`, `references/`. Reference them with that variable (it resolves > to the plugin's install path); run commands from there. @@ -27,7 +27,7 @@ the install itself goes through the same human gate the framework runs on. ## What gets scaffolded into the target repo -| from `${CLAUDE_PLUGIN_ROOT}/agentify/templates/` | to the target repo | +| from `${CLAUDE_PLUGIN_ROOT}/skills/agentify/templates/` | to the target repo | |---|---| | `autonomous-repo.config.yml.tmpl` | `autonomous-repo.config.yml` (the only file the adopter owns) | | `runtime-skill/**` | `.claude/skills/autonomous-repo/**` | @@ -46,7 +46,7 @@ the install itself goes through the same human gate the framework runs on. recommended), `ANS_APPROVER_ADDRESS`, `ANS_VERIFY_SETUP_SCRIPT`. (The bot login can be filled later from the checklist; secrets are never gathered here.) -3. **Render.** Run `"${CLAUDE_PLUGIN_ROOT}/agentify/agentify-render.sh" --to `. It fills +3. **Render.** Run `"${CLAUDE_PLUGIN_ROOT}/skills/agentify/agentify-render.sh" --to `. It fills `autonomous-repo.config.yml` from the `ANS_*` answers (failing loudly on any unfilled placeholder) and scaffolds the runtime skill, the scripts, and the four workflows into their real paths @@ -57,7 +57,7 @@ the install itself goes through the same human gate the framework runs on. the config. Then **tune** the rendered config's `always_hitl` list for the product's sensitive surfaces, and sanity-check: `scripts/*.sh _selftest` all green and the config parses. **Optional addons** - (`${CLAUDE_PLUGIN_ROOT}/agentify/templates/addons/`) + (`${CLAUDE_PLUGIN_ROOT}/skills/agentify/templates/addons/`) — e.g. `submit-feedback-mcp` (a `submit_feedback` MCP tool that email-bridges into the support mailbox) — are opted in via `ANS_ADDONS=" ..."`; the render scaffolds each to `tools//` and @@ -86,7 +86,7 @@ variable to pause everything. Run the loop interactively any time with the ## References -(all under `${CLAUDE_PLUGIN_ROOT}/agentify/references/`) +(all under `${CLAUDE_PLUGIN_ROOT}/skills/agentify/references/`) - `setup-checklist.md` — the one-time identity/secret setup. - `adapters.md` — the TicketStore / CommsChannel / Intake adapter contracts diff --git a/plugins/e2a/agentify/agentify-render.sh b/plugins/e2a/skills/agentify/agentify-render.sh similarity index 100% rename from plugins/e2a/agentify/agentify-render.sh rename to plugins/e2a/skills/agentify/agentify-render.sh diff --git a/plugins/e2a/agentify/examples/e2a/agentify-fix-verify-setup.sh b/plugins/e2a/skills/agentify/examples/e2a/agentify-fix-verify-setup.sh similarity index 100% rename from plugins/e2a/agentify/examples/e2a/agentify-fix-verify-setup.sh rename to plugins/e2a/skills/agentify/examples/e2a/agentify-fix-verify-setup.sh diff --git a/plugins/e2a/agentify/examples/e2a/autonomous-repo.config.yml b/plugins/e2a/skills/agentify/examples/e2a/autonomous-repo.config.yml similarity index 100% rename from plugins/e2a/agentify/examples/e2a/autonomous-repo.config.yml rename to plugins/e2a/skills/agentify/examples/e2a/autonomous-repo.config.yml diff --git a/plugins/e2a/agentify/references/adapters.md b/plugins/e2a/skills/agentify/references/adapters.md similarity index 100% rename from plugins/e2a/agentify/references/adapters.md rename to plugins/e2a/skills/agentify/references/adapters.md diff --git a/plugins/e2a/agentify/references/security-invariants.md b/plugins/e2a/skills/agentify/references/security-invariants.md similarity index 100% rename from plugins/e2a/agentify/references/security-invariants.md rename to plugins/e2a/skills/agentify/references/security-invariants.md diff --git a/plugins/e2a/agentify/references/setup-checklist.md b/plugins/e2a/skills/agentify/references/setup-checklist.md similarity index 100% rename from plugins/e2a/agentify/references/setup-checklist.md rename to plugins/e2a/skills/agentify/references/setup-checklist.md diff --git a/plugins/e2a/agentify/templates/addons/README.md b/plugins/e2a/skills/agentify/templates/addons/README.md similarity index 100% rename from plugins/e2a/agentify/templates/addons/README.md rename to plugins/e2a/skills/agentify/templates/addons/README.md diff --git a/plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/bridge.mjs b/plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/bridge.mjs similarity index 100% rename from plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/bridge.mjs rename to plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/bridge.mjs diff --git a/plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/bridge.test.mjs b/plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/bridge.test.mjs similarity index 100% rename from plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/bridge.test.mjs rename to plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/bridge.test.mjs diff --git a/plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/package.json b/plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/package.json similarity index 100% rename from plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/package.json rename to plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/package.json diff --git a/plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/server.mjs b/plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/server.mjs similarity index 100% rename from plugins/e2a/agentify/templates/addons/submit-feedback-mcp/files/server.mjs rename to plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/files/server.mjs diff --git a/plugins/e2a/agentify/templates/addons/submit-feedback-mcp/manifest.yml b/plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/manifest.yml similarity index 100% rename from plugins/e2a/agentify/templates/addons/submit-feedback-mcp/manifest.yml rename to plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/manifest.yml diff --git a/plugins/e2a/agentify/templates/addons/submit-feedback-mcp/setup.md b/plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/setup.md similarity index 100% rename from plugins/e2a/agentify/templates/addons/submit-feedback-mcp/setup.md rename to plugins/e2a/skills/agentify/templates/addons/submit-feedback-mcp/setup.md diff --git a/plugins/e2a/agentify/templates/autonomous-repo.config.yml.tmpl b/plugins/e2a/skills/agentify/templates/autonomous-repo.config.yml.tmpl similarity index 100% rename from plugins/e2a/agentify/templates/autonomous-repo.config.yml.tmpl rename to plugins/e2a/skills/agentify/templates/autonomous-repo.config.yml.tmpl diff --git a/plugins/e2a/agentify/templates/runtime-skill/SKILL.md b/plugins/e2a/skills/agentify/templates/runtime-skill/SKILL.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/SKILL.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/SKILL.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/comms.md b/plugins/e2a/skills/agentify/templates/runtime-skill/comms.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/comms.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/comms.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/fix.md b/plugins/e2a/skills/agentify/templates/runtime-skill/fix.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/fix.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/fix.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/state-machine.md b/plugins/e2a/skills/agentify/templates/runtime-skill/state-machine.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/state-machine.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/state-machine.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/templates/approval-request.md b/plugins/e2a/skills/agentify/templates/runtime-skill/templates/approval-request.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/templates/approval-request.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/templates/approval-request.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/templates/resolved-closed.md b/plugins/e2a/skills/agentify/templates/runtime-skill/templates/resolved-closed.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/templates/resolved-closed.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/templates/resolved-closed.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/templates/shipped.md b/plugins/e2a/skills/agentify/templates/runtime-skill/templates/shipped.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/templates/shipped.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/templates/shipped.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/templates/triage-ack.md b/plugins/e2a/skills/agentify/templates/runtime-skill/templates/triage-ack.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/templates/triage-ack.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/templates/triage-ack.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/ticket-card.md b/plugins/e2a/skills/agentify/templates/runtime-skill/ticket-card.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/ticket-card.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/ticket-card.md diff --git a/plugins/e2a/agentify/templates/runtime-skill/triage.md b/plugins/e2a/skills/agentify/templates/runtime-skill/triage.md similarity index 100% rename from plugins/e2a/agentify/templates/runtime-skill/triage.md rename to plugins/e2a/skills/agentify/templates/runtime-skill/triage.md diff --git a/plugins/e2a/agentify/templates/scripts/comms_send.sh b/plugins/e2a/skills/agentify/templates/scripts/comms_send.sh similarity index 100% rename from plugins/e2a/agentify/templates/scripts/comms_send.sh rename to plugins/e2a/skills/agentify/templates/scripts/comms_send.sh diff --git a/plugins/e2a/agentify/templates/scripts/released_markers.sh b/plugins/e2a/skills/agentify/templates/scripts/released_markers.sh similarity index 100% rename from plugins/e2a/agentify/templates/scripts/released_markers.sh rename to plugins/e2a/skills/agentify/templates/scripts/released_markers.sh diff --git a/plugins/e2a/agentify/templates/scripts/ticket_card.sh b/plugins/e2a/skills/agentify/templates/scripts/ticket_card.sh similarity index 100% rename from plugins/e2a/agentify/templates/scripts/ticket_card.sh rename to plugins/e2a/skills/agentify/templates/scripts/ticket_card.sh diff --git a/plugins/e2a/agentify/templates/workflows/feedback-comms.yml.tmpl b/plugins/e2a/skills/agentify/templates/workflows/feedback-comms.yml.tmpl similarity index 100% rename from plugins/e2a/agentify/templates/workflows/feedback-comms.yml.tmpl rename to plugins/e2a/skills/agentify/templates/workflows/feedback-comms.yml.tmpl diff --git a/plugins/e2a/agentify/templates/workflows/feedback-fix.yml.tmpl b/plugins/e2a/skills/agentify/templates/workflows/feedback-fix.yml.tmpl similarity index 100% rename from plugins/e2a/agentify/templates/workflows/feedback-fix.yml.tmpl rename to plugins/e2a/skills/agentify/templates/workflows/feedback-fix.yml.tmpl diff --git a/plugins/e2a/agentify/templates/workflows/feedback-released.yml.tmpl b/plugins/e2a/skills/agentify/templates/workflows/feedback-released.yml.tmpl similarity index 100% rename from plugins/e2a/agentify/templates/workflows/feedback-released.yml.tmpl rename to plugins/e2a/skills/agentify/templates/workflows/feedback-released.yml.tmpl diff --git a/plugins/e2a/agentify/templates/workflows/feedback-triage.yml.tmpl b/plugins/e2a/skills/agentify/templates/workflows/feedback-triage.yml.tmpl similarity index 100% rename from plugins/e2a/agentify/templates/workflows/feedback-triage.yml.tmpl rename to plugins/e2a/skills/agentify/templates/workflows/feedback-triage.yml.tmpl diff --git a/plugins/e2a/agentify/test/fixtures/README.md b/plugins/e2a/skills/agentify/test/fixtures/README.md similarity index 100% rename from plugins/e2a/agentify/test/fixtures/README.md rename to plugins/e2a/skills/agentify/test/fixtures/README.md diff --git a/plugins/e2a/agentify/test/fixtures/harness/.gitignore b/plugins/e2a/skills/agentify/test/fixtures/harness/.gitignore similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/.gitignore rename to plugins/e2a/skills/agentify/test/fixtures/harness/.gitignore diff --git a/plugins/e2a/agentify/test/fixtures/harness/assert-selftest.sh b/plugins/e2a/skills/agentify/test/fixtures/harness/assert-selftest.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/assert-selftest.sh rename to plugins/e2a/skills/agentify/test/fixtures/harness/assert-selftest.sh diff --git a/plugins/e2a/agentify/test/fixtures/harness/mock-comms_send.sh b/plugins/e2a/skills/agentify/test/fixtures/harness/mock-comms_send.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/mock-comms_send.sh rename to plugins/e2a/skills/agentify/test/fixtures/harness/mock-comms_send.sh diff --git a/plugins/e2a/agentify/test/fixtures/harness/mock-gh b/plugins/e2a/skills/agentify/test/fixtures/harness/mock-gh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/mock-gh rename to plugins/e2a/skills/agentify/test/fixtures/harness/mock-gh diff --git a/plugins/e2a/agentify/test/fixtures/harness/mock-mcp.mjs b/plugins/e2a/skills/agentify/test/fixtures/harness/mock-mcp.mjs similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/mock-mcp.mjs rename to plugins/e2a/skills/agentify/test/fixtures/harness/mock-mcp.mjs diff --git a/plugins/e2a/agentify/test/fixtures/harness/mock-ticket_card.sh b/plugins/e2a/skills/agentify/test/fixtures/harness/mock-ticket_card.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/mock-ticket_card.sh rename to plugins/e2a/skills/agentify/test/fixtures/harness/mock-ticket_card.sh diff --git a/plugins/e2a/agentify/test/fixtures/harness/package.json b/plugins/e2a/skills/agentify/test/fixtures/harness/package.json similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/package.json rename to plugins/e2a/skills/agentify/test/fixtures/harness/package.json diff --git a/plugins/e2a/agentify/test/fixtures/harness/prompts/triage.txt b/plugins/e2a/skills/agentify/test/fixtures/harness/prompts/triage.txt similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/prompts/triage.txt rename to plugins/e2a/skills/agentify/test/fixtures/harness/prompts/triage.txt diff --git a/plugins/e2a/agentify/test/fixtures/harness/runner.sh b/plugins/e2a/skills/agentify/test/fixtures/harness/runner.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/harness/runner.sh rename to plugins/e2a/skills/agentify/test/fixtures/harness/runner.sh diff --git a/plugins/e2a/agentify/test/fixtures/run-fixtures.sh b/plugins/e2a/skills/agentify/test/fixtures/run-fixtures.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/run-fixtures.sh rename to plugins/e2a/skills/agentify/test/fixtures/run-fixtures.sh diff --git a/plugins/e2a/agentify/test/fixtures/triage/injection/assert.sh b/plugins/e2a/skills/agentify/test/fixtures/triage/injection/assert.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/injection/assert.sh rename to plugins/e2a/skills/agentify/test/fixtures/triage/injection/assert.sh diff --git a/plugins/e2a/agentify/test/fixtures/triage/injection/findbycomms.txt b/plugins/e2a/skills/agentify/test/fixtures/triage/injection/findbycomms.txt similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/injection/findbycomms.txt rename to plugins/e2a/skills/agentify/test/fixtures/triage/injection/findbycomms.txt diff --git a/plugins/e2a/agentify/test/fixtures/triage/injection/messages.json b/plugins/e2a/skills/agentify/test/fixtures/triage/injection/messages.json similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/injection/messages.json rename to plugins/e2a/skills/agentify/test/fixtures/triage/injection/messages.json diff --git a/plugins/e2a/agentify/test/fixtures/triage/new-feedback/assert.sh b/plugins/e2a/skills/agentify/test/fixtures/triage/new-feedback/assert.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/new-feedback/assert.sh rename to plugins/e2a/skills/agentify/test/fixtures/triage/new-feedback/assert.sh diff --git a/plugins/e2a/agentify/test/fixtures/triage/new-feedback/findbycomms.txt b/plugins/e2a/skills/agentify/test/fixtures/triage/new-feedback/findbycomms.txt similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/new-feedback/findbycomms.txt rename to plugins/e2a/skills/agentify/test/fixtures/triage/new-feedback/findbycomms.txt diff --git a/plugins/e2a/agentify/test/fixtures/triage/new-feedback/messages.json b/plugins/e2a/skills/agentify/test/fixtures/triage/new-feedback/messages.json similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/new-feedback/messages.json rename to plugins/e2a/skills/agentify/test/fixtures/triage/new-feedback/messages.json diff --git a/plugins/e2a/agentify/test/fixtures/triage/reply-skip/assert.sh b/plugins/e2a/skills/agentify/test/fixtures/triage/reply-skip/assert.sh similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/reply-skip/assert.sh rename to plugins/e2a/skills/agentify/test/fixtures/triage/reply-skip/assert.sh diff --git a/plugins/e2a/agentify/test/fixtures/triage/reply-skip/findbycomms.txt b/plugins/e2a/skills/agentify/test/fixtures/triage/reply-skip/findbycomms.txt similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/reply-skip/findbycomms.txt rename to plugins/e2a/skills/agentify/test/fixtures/triage/reply-skip/findbycomms.txt diff --git a/plugins/e2a/agentify/test/fixtures/triage/reply-skip/messages.json b/plugins/e2a/skills/agentify/test/fixtures/triage/reply-skip/messages.json similarity index 100% rename from plugins/e2a/agentify/test/fixtures/triage/reply-skip/messages.json rename to plugins/e2a/skills/agentify/test/fixtures/triage/reply-skip/messages.json diff --git a/plugins/e2a/agentify/test/run.sh b/plugins/e2a/skills/agentify/test/run.sh similarity index 100% rename from plugins/e2a/agentify/test/run.sh rename to plugins/e2a/skills/agentify/test/run.sh diff --git a/plugins/e2a/agentify/test/validate.py b/plugins/e2a/skills/agentify/test/validate.py similarity index 100% rename from plugins/e2a/agentify/test/validate.py rename to plugins/e2a/skills/agentify/test/validate.py