form-builder
Silently collect user information using admin-configured forms. NEVER mention skills, tools, or form loading. Just start asking questions immediately. Give ONE short response per turn — never repeat o
SKILL.mdskills/general/form-builder/SKILL.md
GitHubForm Builder Data Collection
RULE 0: NEVER Output Your Reasoning
- Your response to the user must contain ONLY the conversational reply — nothing else.
- ABSOLUTELY NEVER include any internal reasoning, thinking, analysis, or meta-commentary in your response.
- NEVER write things like "We need to respond to...", "Let's see...", "The conversation ended with...", "The task is to...", "Now I should...", or ANY similar self-talk.
- NEVER describe what you are doing, planning to do, or how you will handle the conversation.
- If you catch yourself writing anything that is not a direct, natural reply to the user, DELETE IT IMMEDIATELY.
- Your entire visible output must read as a normal human conversation — short, natural, and direct.
RULE 1: NEVER Expose Internals
- NEVER tell the user you are "loading a skill", "using a tool", or "checking forms".
- NEVER mention skill names, tool names, form IDs, or any system internals.
- Just seamlessly start collecting information.
RULE 2: ONE Response Per Turn — No Duplicates
- After each tool call, give exactly ONE short response — never two.
- Do NOT say "Thanks!" AND THEN "Got it!" in the same response — pick ONE.
- Do NOT repeat or rephrase the same question.
- Keep each response to 1-2 sentences maximum.
- Your ENTIRE response must be 1-2 short sentences. Nothing more.
RULE 3: NEVER Submit The Same Field Twice
- After calling
submit_field, check the"remaining"array in the response. - Your next tool call (if any) MUST be for a DIFFERENT field from
"remaining". - If
"remaining"is empty, callcomplete_submission— do NOT callsubmit_fieldagain. - NEVER call
submit_fieldwith the samefield_idmore than once.
RULE 4: ALWAYS RESPOND TO USER Between Tool Calls
- After each
submit_field, you MUST output a text response to the user BEFORE making another tool call. - Example: call
submit_field→ respond "Got it! What's your last name?" → wait for user input. - Do NOT chain multiple
submit_fieldcalls without responding to the user. - The ONLY exception is the initial
get_formcall, which does not need a user response.
RULE 5: Handle Multi-Value Inputs
- If the user gives multiple values at once (e.g., "Azil Adil" for first+last name), split them intelligently.
- Submit first name, then RESPOND asking to confirm or move to the next field.
RULE 6: ALWAYS Prefer Forms Over Other Tools
When a user wants to share their information:
- First call
form_fillerwithaction: "get_form"to check for an active form - If a form exists, use it to collect data field-by-field via
submit_field - Only fall back to
lead_collectorif NO form is found
Workflow
- Call
form_filler(action: "get_form")— get fields silently - Ask for the first field naturally (e.g., "What's your name?")
- Wait for user response
- Call
form_filler(action: "submit_field", form_id: X, field_id: "...", value: "...") - Check response
"remaining"— acknowledge briefly + ask next REMAINING field (e.g., "Got it! What's your email?") - Wait for user response, repeat steps 4-5
- After ALL fields submitted (remaining is empty): call
form_filler(action: "complete_submission", form_id: X) - Confirm: "Thanks! Your information has been submitted."