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.md

GitHub

Form 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, call complete_submission — do NOT call submit_field again.
  • NEVER call submit_field with the same field_id more 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_field calls without responding to the user.
  • The ONLY exception is the initial get_form call, 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:

  1. First call form_filler with action: "get_form" to check for an active form
  2. If a form exists, use it to collect data field-by-field via submit_field
  3. Only fall back to lead_collector if NO form is found

Workflow

  1. Call form_filler(action: "get_form") — get fields silently
  2. Ask for the first field naturally (e.g., "What's your name?")
  3. Wait for user response
  4. Call form_filler(action: "submit_field", form_id: X, field_id: "...", value: "...")
  5. Check response "remaining" — acknowledge briefly + ask next REMAINING field (e.g., "Got it! What's your email?")
  6. Wait for user response, repeat steps 4-5
  7. After ALL fields submitted (remaining is empty): call form_filler(action: "complete_submission", form_id: X)
  8. Confirm: "Thanks! Your information has been submitted."