Install
openclaw skills install @pm-geeker/skill-param-confirmerDownstream skill execution preflight layer. It inspects a target skill, extracts explicit and implicit confirmation fields, normalizes candidate parameters, resolves ambiguity, applies risk gating, and returns a structured confirmation payload before handing off to the downstream skill.
openclaw skills install @pm-geeker/skill-param-confirmerThis skill is used to complete structured information alignment and parameter confirmation before executing any downstream skill.
Its responsibilities are to:
It does not execute downstream business logic and does not replace the actual action of the downstream skill.
This skill applies to the following scenarios:
This skill does not do the following:
To avoid treating all confirmed items as a single undifferentiated “parameter” type, this skill classifies confirmation targets into the following categories:
A field explicitly declared by the downstream skill.
Examples: query, target_path, overwrite, timezone.
A candidate field inferred from user intent, context, history, or current session state. This type must be confirmed and must not be treated as final by default.
An information item required to align understanding with the user and avoid information asymmetry. It may not be a native downstream parameter, but it affects execution reliability. Examples: target object, scope, time range, output format, overwrite policy.
A confirmation gate associated with a high-risk action. Examples: delete, overwrite, publish, sync, external call, write to shared space, send to third parties.
A parameter computed from already confirmed fields. This type usually does not require another user question, but its origin and derivation rule must be recorded.
A preference that does not affect core execution but may improve output quality. Examples: sort order, summary length, language style, output format.
Each candidate field must carry an uncertainty level:
certain: The source is clear and the meaning is unique.probable: Highly likely to be correct, but still needs confirmation.possible: There is a candidate direction, but it is not stable enough for automatic selection.unknown: The system cannot reliably determine the value.Uncertainty is used to determine whether the user should be asked.
Each action or field must carry a risk level:
lowmediumhighRisk assessment is based on whether the action:
Risk level determines confirmation strength, not whether inference is allowed.
This skill consumes two inputs:
Each downstream skill should provide at least the following structured information:
{
"skill_name": "string",
"skill_version": "string",
"action": "create | query | update | delete | sync | publish | run | transform | validate | other",
"description": "string",
"input_schema": {
"required_fields": [],
"optional_fields": [],
"field_definitions": {}
},
"risk_level": "low | medium | high",
"external_effect": true,
"destructive": false,
"multi_stage": false,
"confirmation_policy": {
"require_explicit_confirmation": true,
"allow_inference": true,
"allow_defaults": false,
"allow_partial_execution": false
},
"dependencies": [],
"constraints": {},
"output_contract": {}
}
field_definitions should include:
typedescriptionrequiredallowed_valuesdefaultpatternminmaxdepends_onconflicts_withrisk_levelinference_allowedsource_priorityContext input may come from:
Context may be used to generate candidate options, but it cannot replace confirmation.
Identify the following:
The output must include:
skill_nameactioncandidate_entitiesrequired_fieldsoptional_fieldsalignment_fieldsrisk_gatesExtract the information that must be confirmed from the downstream skill. Sources include:
Extraction rules:
explicit_param.alignment_field.risk_gate.derived_param.Generate candidate values for missing or ambiguous fields.
Construction rules:
BLOCK_AND_CLARIFY.Candidate source tags:
source: user_explicitsource: context_inferredsource: schema_requiredsource: policy_requiredsource: derivedsource: default_suggestedThe system must detect the following conflicts:
If a conflict occurs, it must not be merged automatically. The system must return to clarification or staged confirmation.
Every item that requires confirmation must receive a risk level and a confirmation level.
Recommended confirmation levels:
none: No extra confirmation needed; continue directly.soft: Confirmation is recommended but not blocking.explicit: Explicit confirmation is required.strict: Must be confirmed separately and cannot be combined with other questions.Default rules:
high risk items → strictmedium risk items → explicitlow risk items with high certainty → soft or noneThe system must choose one of the following modes:
All critical parameters are explicit and the risk is acceptable.
The candidate set is finite and suitable for numbered selection.
Only yes/no confirmation is needed.
There are dependencies and confirmation must happen step by step.
Critical fields are missing, conflicts are severe, candidate sets are too large, or risk is too high.
Confirmation menus must follow these rules:
Example menu structure:
target_type?
1. Document
2. Folder
3. Task
4. Project
User replies may only use the following formats:
1231,2,31 2 3Parsing rules:
If the user replies in natural language, convert it only when the mapping is stable; otherwise, ask for confirmation again.
All confirmed results must be normalized into a structured payload before being passed to the downstream skill.
The normalized payload must include:
Recommended order:
The downstream skill may only receive the result if all of the following are true:
required_fields are confirmed, or proven derivable from confirmed data.high-risk gates have been explicitly confirmed.BLOCK_AND_CLARIFYThe system must block if any of the following occurs:
This skill must support session-level state persistence for interrupted flows and recovery.
session_idskill_nameskill_versionstepparsed_intentcandidate_fieldsconfirmed_fieldsrejected_fieldsrisk_leveluncertainty_levelbranch_pathtimestampDuring recovery, the system should support:
All steps must be logged for replay and debugging.
{
"session_id": "string",
"skill_name": "string",
"skill_version": "string",
"user_input": "string",
"parsed_intent": "string",
"candidate_fields": [],
"confirmed_fields": [],
"rejected_fields": [],
"risk_level": "low | medium | high",
"uncertainty_level": "certain | probable | possible | unknown",
"decision_mode": "DIRECT_EXECUTE | NUMERIC_CONFIRM | BOOLEAN_CONFIRM | MULTI_STAGE_CONFIRM | BLOCK_AND_CLARIFY",
"branch_path": [],
"timestamp": "string",
"final_handoff_payload": {}
}
The final output handed to the downstream skill should follow this structure:
{
"skill_name": "string",
"skill_version": "string",
"action": "string",
"confirmed_params": {},
"derived_params": {},
"alignment_fields": {},
"risk_gates": {},
"uncertainty_report": [],
"decision_mode": "string",
"session_id": "string",
"audit": {
"branch_path": [],
"timestamp": "string"
}
}
Yes / No are allowed.When fields depend on each other, the system must use a staged flow.
Example:
action.target_type.target_entity candidates based on target_type.target_entity.Stages must not be skipped. The next stage may not begin until the previous stage is confirmed.
When constructing parameters, the following limits apply:
This skill should be compatible with the following downstream skill types:
Regardless of the downstream type, this skill must be applied first.
The following actions require explicit confirmation:
The following behaviors must not be executed automatically by default:
{
"decision_mode": "DIRECT_EXECUTE",
"confirmed_params": {
"query": "string"
}
}
target_type?
1. Document
2. Folder
3. Project
This action may overwrite existing content.
Do you want to continue?
1. Yes
2. No
action?
1. create
2. query
target_type?
1. Task
2. Project
3. Document
{
"decision_mode": "BLOCK_AND_CLARIFY",
"missing_fields": ["target_entity"],
"conflicts": ["scope conflicts with overwrite_policy"],
"risk_level": "high"
}
An implementation of this skill must provide:
The output of this skill should meet the following standards:
The core purpose of this skill is:
The principle of this skill is not “ask less,” but rather “ask accurately, ask in a way that can be executed, and ask in a way that can be traced.”