You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make a Ponytail-shaped plugin a first-class small end of the existing authoring/build/dev contract, alongside Cargo Hauler's demanding executable-plugin coverage. Extend existing examples/tests before adding another example or framework layer.
This is acceptance/regression work; it does not assert that static skills currently require an MCP server. The existing examples/skills-starter/agent-bundle.config.ts already declares a small skills bundle without registering one, and closed #108 already establishes static Skill compilation and portable Markdown support.
Reference evidence
Ponytail at 974d940a1c5344210874150b98ff0d2c861fab6a shares skills and an instruction builder across thin native integrations:
Its useful product does not depend on having a browser dashboard or a long-lived MCP server. Agent Bundle should not require those surfaces simply to inspect skills or run a plain hook.
Two small fixtures, existing public APIs
Prefer extending examples/skills-starter, examples/hooks-and-scripts, and their existing build/Workbench tests:
Static fixture: Markdown skills, resources, and supported rules/commands. One authored plugin identity; no MCP/App/state declarations and no executable renderer.
Plain-hook variant: the same content plus a supported plain Node hook using a shared application-owned function. Use the existing plain-hook contract; do not implement a second event API. A separately rendered event may opt into its documented RSC/runtime requirements, but is not needed to prove the plain path.
Use original minimal fixture content rather than copying Ponytail wholesale. Its mode-selection and instruction-filtering behavior remains application code, not a new framework service.
Acceptance
The static fixture builds, validates, relocates, and is inspectable without requiring React/JSX in its authored source, a dummy MCP registration, or an App route. Build-time tooling and the Workbench's own UI runtime are not prohibited.
Its published plugin contains only required content, metadata, and selected-host lifecycle helpers: no synthetic MCP server, Flight worker, browser App runtime, SQLite state owner, or notice kernel merely because the meta-framework supports them.
The plain-hook variant emits/runs its required hook executable without manufacturing a long-lived MCP service or render worker. Required validation and native output semantics stay intact.
Workbench's Application tree directly exposes skills/rules/commands and hooks. Selecting a static leaf shows its authored/generated content and applicable host metadata; it does not require a fake invocation, MCP session, or empty dashboard.
Opening static content starts no plugin execution process. Hook execution is explicit and shows real native output/diagnostics. Unsupported projections are reported honestly rather than triggering an unrelated runtime setup.
Editing shared content updates every intended generated projection through the existing dependency/watch pipeline. Deleting an authored component removes its generated leaf/output after a successful rebuild without touching unrelated authored files.
Use the existing Skill/rule/content lowering machinery to share content. Do not teach consumers to copy several host files and maintain a drift-check script. Where concise instructions and a full Skill intentionally differ, preserve explicit author-controlled variants; do not infer or automatically summarize one into the other.
A packed-copy test verifies the selected host-visible files remain present, and absent runtime surfaces remain absent. Reuse the existing pack-per-pool harness rather than packing once per assertion.
Record a baseline file/byte inventory and observed plugin-process starts; assert meaningful absence/ownership invariants, not arbitrary universal byte or wall-clock limits.
This can start with tests on existing behavior. Fix only the regressions those tests demonstrate. No new host support, orchestrator, domain state model, fake agent chat, or mandatory React conversion is in scope.
Goal
Make a Ponytail-shaped plugin a first-class small end of the existing authoring/build/dev contract, alongside Cargo Hauler's demanding executable-plugin coverage. Extend existing examples/tests before adding another example or framework layer.
This is acceptance/regression work; it does not assert that static skills currently require an MCP server. The existing
examples/skills-starter/agent-bundle.config.tsalready declares a small skills bundle without registering one, and closed #108 already establishes static Skill compilation and portable Markdown support.Reference evidence
Ponytail at
974d940a1c5344210874150b98ff0d2c861fab6ashares skills and an instruction builder across thin native integrations:Its useful product does not depend on having a browser dashboard or a long-lived MCP server. Agent Bundle should not require those surfaces simply to inspect skills or run a plain hook.
Two small fixtures, existing public APIs
Prefer extending
examples/skills-starter,examples/hooks-and-scripts, and their existing build/Workbench tests:Use original minimal fixture content rather than copying Ponytail wholesale. Its mode-selection and instruction-filtering behavior remains application code, not a new framework service.
Acceptance
Integration points / sequencing
examples/skills-starter/agent-bundle.config.tsexamples/hooks-and-scripts/This can start with tests on existing behavior. Fix only the regressions those tests demonstrate. No new host support, orchestrator, domain state model, fake agent chat, or mandatory React conversion is in scope.