radiantlogicinc/fastworkflow/validate-command-parameters
Claude Code and agent skill by radiantlogicinc/fastworkflow
- community
Checking that the SKILL.md file is still in the repository.
Implement the `Signature.validate_extracted_parameters` hook on a fastWorkflow command so whole-call rules, cross-field constraints and context preconditions are checked and corrected before the command body runs, and so a bad call stays a conversation instead of becoming an exception. Covers the exact contract and where it sits in the validation order, normalising values in place, writing error messages an agent can act on, and what belongs here versus in the field declaration. Use when a comm…
Install
npx vskill@latest install radiantlogicinc/fastworkflow/validate-command-parametersSKILL.md
Validating extracted parameters
Pydantic answers one field at a time: right type, matches the pattern, was supplied. It cannot answer the questions that only exist once the whole call is on the table — is this end date before its own start date, is anything actually selected for this bulk command to operate on, does this decision value exist in the backend's vocabulary. validate_extracted_parameters is where those go.
The contract
A static method on the command's Signature class:
Return (True, '') to proceed, or (False, message) to send message back to the caller. The hook is optional — a command without it simply skips this stage.
Where it runs in the order
The framework validates in this sequence, and stops at the first failure:
So this hook may assume every field is present and of the declared type. Do not re-check types, required-ness or regex here — declare those on the field and let stage 1 do it. What is left is exactly what the field declarations cannot express.
Before validation, in agent mode, the values are bound in code when the call's form allows it: XML tags, name=value pairs, or command_name value (positional). The positional form binds to the field declared json_schema_extra={'positional': True} (several words allowed), or else to the class's only str field (one token only); it declines on anything doubtful and the LLM extracts instead. Mark at most one field, and not a free-text field of a command that changes state. A lone command_name value that binds to no field is refused with a message naming the parameters, so the command never runs on its defaults instead. Whatever bound the values, the sequence above still runs.
It is a correction hook, not just a check
The cmd_parameters object it receives is the one the command body will read, so writing to it is the intended way to normalise:
Prefer normalising to rejecting whenever the intent is unambiguous. Every rejection costs a round trip; a value that can only have meant one thing should just be fixed.
Return, never raise
Exceptions are caught, logged at critical, and converted into a failure whose message names the command and the exception. That is strictly worse than a message written for the caller: the caller gets a stack-trace-flavoured string instead of an instruction. Return (False, message).
Write the message for an agent
The message is the only thing the caller has to work from. Every message should name the field, say what is wrong with the value that arrived, and say where an acceptable one comes from.
Vague messages ("invalid input") cause the agent to retry the same value.
Accumulate errors, report once
Check everything, then report together, so one round trip tells the caller all of it:
Three helper shapes are worth distinguishing at the call site:
| Shape | Returns | Use for | |
|---|---|---|---|
| normalising | (value, error) — store the value back | a code to upper-case, a uid to strip | |
| relational | error | two or more fields that must agree | |
| reading | value | turning an intent the caller can express into the value the body wants |
Keep it local and cheap
The hook runs on every attempt at the command, including the ones an agent is guessing at, and including retries after a correction. Do not call a backend from here. Check against values already in the workflow context, or against a constant vocabulary. If a check genuinely needs a live key set, that is what db_lookup is for — see the resolve-parameter-values skill.
Context preconditions belong here
This is the only hook that sees the workflow before the body runs, so it is where "is this command meaningful right now" goes:
Note the message names the producing command, the same job available_from does for a parameter that never arrived.
Do not treat it as a security boundary
The hook runs on both the NLU path and the direct-action path, but it is a command's own declaration of what it needs, not an enforcement layer — a caller reaching the body another way bypasses it. Invariants that must hold for correctness or safety belong in the command body as well.
Authoring checklist
Related
- Handle parameters that never arrived: the
declare-parameter-producersskill. - Values that arrived nearly right and should be fuzzy-resolved: the
resolve-parameter-valuesskill.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingfastworkflow/skills_for_coding_fastworkflows/validate-command-parameters/SKILL.md
Popularity
- Repository stars
- 52
- Repository forks
- 16
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/radiantlogicinc/fastworkflow/validate-command-parameters)