Skip to content

Add Perform Action Toolkit plugin - #26

Open
pallgeuer wants to merge 2 commits into
openai:mainfrom
pallgeuer:add-perform-toolkit
Open

pallgeuer wants to merge 2 commits into
openai:mainfrom
pallgeuer:add-perform-toolkit

Conversation

@pallgeuer

@pallgeuer pallgeuer commented Sep 29, 2026 •

Copy link
Copy Markdown

Summary

Add Perform Action Toolkit as an explicitly invoked, local Codex skill. This review revision proposes package 0.4.6, bringing the original 0.4.4 contribution forward to the current source package baseline (0.4.5) before applying the review changes.

Perform discovers bundled, system, user, and repository action JSON; selects an exact action variant; binds declared variables; and shows the final prompt before Codex executes it. The bundled Python scripts use only the standard library and do not execute configured actions themselves. The manifest retains explicit $toolkit:perform starter prompts and the skill disables implicit invocation.

Review response

  • Inspect and render responses now include the latest defining JSON source's tier, portable file path, and applied source order. The skill shows this information before execution and explains the precedence rule. Inherited fields may come from earlier definitions.
  • A malformed or unreadable applicable action file blocks configured actions because its intended overrides are unknown. An identifiable invalid variant blocks its strict selector and ambiguous selection of that action name; unrelated valid actions and exact valid sibling selectors remain available. Listings report blocked names and diagnostics. Immutable built-in help remains available.
  • The packaged README now explains action-source reads, possible file/tool/network behavior under active Codex permissions, provider disclosure, process-argument exposure for variable values, and the generated catalog's local write and replacement rules.
  • Offline tests in tests/toolkit/ exercise source precedence, malformed configuration, invalid overrides, strict selection, and safe catalog writes from a cold copied package. The npm master lists each integration test explicitly. No configured action or external service is used by these tests.

Verification

  • npm run test:toolkit — passed, 9 Node tests.
  • npm run validate:marketplace and npm run validate — passed.
  • Python runtime checks using the source repository's Ruff configuration, ty, and Vermin — passed; minimum Python version remains 3.6.
  • git diff --check — passed.
  • The full marketplace dispatcher passed its runner and Grafana suites, then stopped at the unrelated ReviewOps build because its ajv development dependency is absent from this clean clone. Required upstream CI remains authoritative for that gate.

Plugin impact

The selected action definition and active Codex session determine which files, local tools, or network destinations execution may access. Perform has no hosted service, plugin-owned account, authentication flow, telemetry collector, credential store, or external data store. The optional codex-perform companion is not part of this plugin package. Direct variable values are process arguments and should be nonsecret references rather than secret contents.

Please review the source/precedence display and fail-closed override behavior alongside the isolated tests. This PR is still a pre-merge community contribution; it does not publish a source-repository release or update already published directory listings.

@tonyloehr

Copy link
Copy Markdown
Collaborator

Thanks for the toolkit. Before merge, please show the selected action's source and precedence before execution, make invalid-override/fallback behavior explicit, and document permissions and file/data boundaries in the packaged README. Add isolated tests for overrides, malformed configuration, strict selection, and safe catalog writes. Required CI and final CDE review are still needed.

@pallgeuer

Copy link
Copy Markdown
Author

Thanks for the review. I pushed cb0c050 with the requested source/precedence preview, explicit invalid-override behavior, packaged data and permission disclosure, and isolated offline tests.

The chosen failure boundary is deliberate: malformed or unreadable action files block configured execution because their intended overrides cannot be identified. A parseable invalid variant blocks its strict selector and ambiguous selection of that action name, while unrelated actions and exact valid sibling selectors remain available. Perform shows the latest defining file and applied source order before executing the final rendered prompt. Its Python scripts still do not execute configured actions.

Local npm run test:toolkit passed 9 tests; marketplace and package validation, Ruff, ty, Vermin, and diff checks also passed. The full dispatcher stopped in the unrelated ReviewOps build because this clean clone lacks its ajv development dependency. The new pull-request workflows and final CDE review remain pending.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants