s32ct-gtm-facade
Headless facade that fronts the GTM (Generic Timer Module) tool of NXP S32 Configuration Tools via `nxp_s32ct_execute_action(action_name="s32ct.gtm_edit", params={...})`. Triggers when users ask to ap
Files1
View on GitHubSKILL.mdskills/s32ct/s32ct-gtm-facade/SKILL.md
GitHubS32CT GTM - Headless Facade
Thin per-tool facade over the generic s32ct-cli skill that exposes only the
flags relevant to the GTM tool of S32 Configuration Tools. This skill
fronts the nxp_s32ct_execute_action MCP tool with the s32ct.gtm_* actions (the
tool_name is pre-filled from the action). All shared launcher plumbing,
validation, and auto-retry behavior is inherited from s32ct-cli.
When to use
Use this skill when:
- You need to apply a GTM use-case template (
-ApplyUseCase) to an existing.mex, then tweak values via-SetValue. - You need to query GTM data-model values via
-GetValue(parsed and returned undervaluesin the response). - You need to list available GTM use-cases for an MCU
(
s32ct.gtm_list_usecases, no project required). - You need to bootstrap a GTM project from a use-case
(
s32ct.gtm_create_from_usecase); this complementss32ct-gtm-create-from-usecase(which starts from-EmptyConfig). - You need to export GTM source / HTML / MEX.
Migration note: The standalone gtm MCP tool no longer exists - it
has been replaced by the unified nxp_s32ct_execute_action dispatcher's gtm
action. Existing inputs are unchanged.
Do not use this skill for:
- Cross-tool operations combining flags from multiple tools -> use
s32ct-cli(s32ct.configure_cli). - Non-GTM peripheral configuration - use the matching facade.
Available Capabilities
| Type | Name | Invocation |
|---|---|---|
| MCP action | s32ct.gtm_edit |
nxp_s32ct_execute_action(action_name="s32ct.gtm_edit", params={...}) - edit / apply-use-case / query / export on a .mex |
| Companion action | s32ct.gtm_list_usecases |
nxp_s32ct_execute_action(action_name="s32ct.gtm_list_usecases", params={"mcu": ...}) - read-only discovery, no project needed |
| Companion action | s32ct.gtm_create_from_usecase |
nxp_s32ct_execute_action(action_name="s32ct.gtm_create_from_usecase", params={...}) - bootstrap from a template |
| Resource | skill://nxp_s32ct/s32ct-gtm-facade |
Auto-loaded on trigger |
These are three separate registered actions, each selected by its own
action_name. There is no gtm_action sub-selector parameter.
Quickstart
1. Load or bootstrap a .mex
Tool: nxp_s32ct_execute_action
Action: s32ct.gtm_edit
Input: project_path="<path>.mex" # OR empty_config=True + mcu + sdk_version
Output: {exit_code, command, stdout_tail, stderr_tail, values, summary}
2. Edit / apply use-case / query values, and export
nxp_s32ct_execute_action(
action_name="s32ct.gtm_edit",
params={
"project_path": "<path>.mex",
"apply_use_case": "<uc>.mex", # -ApplyUseCase
"set_values": ["key1=val1", "key2=val2"], # -SetValue
"get_values": ["<data-model-id>"], # -GetValue (parsed into `values`)
"export_kind": "ExportSrc", # or ExportAll|ExportHTML|ExportMEX
"output_dir": "<output-dir>",
},
)
# List available GTM use-cases for an MCU (no project required).
# This is a different action, not a mode of s32ct.gtm_edit:
nxp_s32ct_execute_action(
action_name="s32ct.gtm_list_usecases",
params={
"mcu": "S32K358",
},
)
3. Verify the export
Check that output_dir contains the expected artifacts and exit_code == 0;
inspect values for any -GetValue results.
Inputs
Mode (mutually exclusive)
project_path- existing.mexto load via-Load.empty_config- ifTrue,-EmptyConfig; requiresmcu+sdk_version.config_name--ConfigName <...>.
Tool-specific
apply_use_case- path to a use-case.mexvia-ApplyUseCase.set_values- array ofkey=valuestrings via-SetValue.get_values- array of data-model IDs via-GetValue(parsed into responsevalues).
Export
export_kindin {ExportAll, ExportSrc, ExportHTML, ExportMEX}.output_dir- required whenexport_kindis set.
Launcher / plumbing (shared with s32ct-cli)
data_dir(-data <workspace>),extra_args,s32ct_launcher,launcher_ini,timeout_s(default 600).
Output
Same as s32ct-cli:
{ exit_code, command, stdout_tail, stderr_tail, values, summary }.
Guardrails
Scope
- Only drives the gtm action of
nxp_s32ct_execute_action. For cross-tool workflows uses32ct-cli(s32ct.configure_cli) instead. - Does not modify hardware or program devices.
Destructive actions
- Exports overwrite files in
output_dir. Confirm the target directory is safe or empty before invoking withexport_kindset. -SetValuemutates the loaded.mexin memory; if the project is saved back, source data-model values change.
Refuse-and-escalate
- Missing
project_pathAND missingempty_config/mcu/sdk_versioncombination (when callings32ct.gtm_edit) -> ask which mode. - Unknown
export_kindvalue -> list allowed values. - Unknown
action_name-> list the three GTM actions (s32ct.gtm_edit,s32ct.gtm_list_usecases,s32ct.gtm_create_from_usecase). - Retryable
IllegalStateException-> auto-retry once, then escalate.
Validation loop
exit_code == 0.output_dircontains the expected artifacts for the chosenexport_kind.- If
get_valueswas supplied, verify each ID appears invalues.
Out of scope
- Interactive GUI operations - use S32 Configuration Tools directly.
- Cross-tool operations combining multiple tools' flags - use
s32ct-cli. - Distribution portability handled transparently; see
s32ct-distributions.
See Also
s32ct-cli- generic dispatcher with the full ~50-parameter surface.s32ct-distributions- launcher selection.s32ct-gtm-create-from-usecase- bootstrapping GTM from-EmptyConfig.