Skip to content

Host support: Kiro — Agent Plugins Powers, steering/skills, and versioned IDE/CLI hook profiles #707

Description

@ScriptedAlchemy

Scope / evidence

P2 feature expansion. Research date 2026-09-06; baseline 5fc8de37c9695b816d55bdcf18a6bcb1dfee69f5. Official Kiro documentation read; no native installation or authenticated test run.

The Ponytail reference only exercises steering. Current Kiro supports Powers based on Agent Plugins, plus skills, MCP and native hooks. Start by proving existing portable output before creating another native package format. IDE 1.x/CLI 3.x and prior IDE 0.x/CLI 2.x are separate compatibility profiles. Cloud-synced configuration is not equivalent to executing a local stdio server in a cloud session.

Primary documentation / schemas

Pin the tested host version and exact schema source. Preserve documented differences instead of treating the latest website as proof that every installed Kiro accepts the same files.

Power package

Powers activate context/tools on demand. The portable structure is root plugin.json, skills/, optional mcp.json, and dev.kiro/ for client-specific extensions. Current installation also accepts legacy POWER.md, but that format has different MCP registration behavior. Generate one intended format, not both without precedence tests.

composite-root/
  plugin.json
  skills/review/SKILL.md
  mcp.json                    # omitted for skills-only content
  dev.kiro/                   # only documented native extras
  mcp/example.mjs
{
  "$schema":"https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name":"example-plugin",
  "version":"1.0.0",
  "description":"Review project changes",
  "author":{"name":"Example team"},
  "keywords":["review","project"]
}

Kiro's authoring guide expects activation metadata beyond the minimal generic spec. Derive it from explicit authored metadata; do not invent marketing keywords or automatic instruction summaries.

Setup and native ownership

In the IDE: Powers → Add Custom Power → Import from folder/GitHub. Select the package root, review the integration, and test activation with its declared keywords. Current CLI /powers lists installations in a V3 session (kiro-cli --v3); do not invent an unverified kiro plugin install command from another host's syntax.

Power-managed MCP servers in the new format stay attached to the Power and activate/deactivate with it. Legacy Powers instead alter user MCP configuration. Independent project MCP is .kiro/settings/mcp.json, not a duplicate of the Power's internal registration. Test disable/remove through native controls and retain unrelated user config.

Illustrative portable MCP document:

{
  "$schema":"https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
  "mcpServers":{"example":{"type":"stdio","command":"node","args":["${PLUGIN_ROOT}/mcp/example.mjs"]}}
}

Prove native expansion of package root/data anchors before shipping. Keep secrets in operator inputs. Server names are namespaced; verify the effective tool-name length/character restrictions after namespacing, not only the canonical operation name.

Steering and hooks are distinct surfaces

Steering supports always/auto/fileMatch/manual inclusion; skills are activated as task resources. Neither alone establishes a deterministic deny boundary.

For current IDE/CLI, native hook files use .kiro/hooks/<id>.json, with trigger, optional matcher and command/agent action. Example project hook shape:

{"version":"v1","hooks":[{"name":"review-observation","trigger":"PostToolUse","action":{"type":"command","command":"node /installed/example/hooks/after.kiro.mjs"}}]}

This is a project installation binding, not proof that a Power automatically discovers an arbitrary embedded .kiro/hooks directory. Verify native namespace hook packaging separately or report that a separate project hook install is required. CLI2 hooks were embedded in agent config; the host's migration command does not authorize Agent Bundle to rewrite all old user agents.

Distinguish command actions, prompt injection, pre-tool control and confirmation prompts. Generate exact JSON/stdin/stdout codecs only after the selected event's contract is pinned. A file-save event is not equivalent to a tool-call event; an agent-prompt action is not executable application code.

Acceptance

  • Pin IDE/CLI profiles, selected Power format, required metadata and supported native extras.
  • Skills-only Power loads without MCP/Flight/state runtime; activation and deactivation preserve native behavior.
  • Bundled MCP is registered once, not duplicated in user/project config; a source-free relocated tool call succeeds with correct namespace and secret handling.
  • Test namespaced tool-name constraints and disabled/unsupported capabilities honestly.
  • Preserve steering inclusion/scope and prove that shared composite instructions do not activate on unintended hosts.
  • Hook codecs, matcher filtering, event semantics, failure/cancellation and old-profile rejection are covered independently from Power installation.
  • Distinguish local, cloud-synced configuration and cloud execution; local paths must not be silently advertised as cloud runnable.
  • Test native versus legacy manifest precedence, reversed target order and forbidden discovery under Composite conformance: test cross-host auto-discovery and precedence, not only file collisions #651.
  • Install/update/remove preserves unowned files, native trust and runtime data; no implicit credential or policy changes.
  • Real native completion is recorded separately from emitted-file/schema tests; English/Chinese setup docs explain limits.

Reuse portable manifest/MCP lowering and existing compiler, capability, receipt and #652 fixtures. No AWS/account provisioning, autonomous-agent scheduler, new Power registry, automatic publication, or broad removal of AB4106.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions