Prompt
Scaffold a JavaScript Function
Use this when you need a clean starting point for a utility, event handler, or small feature.
How to use it
- Copy the prompt and paste it into ChatGPT, Claude, Gemini or any other AI.
- Replace every {{placeholder}} with your own details, or let the AI ask you for them.
- Use the follow-ups below to go deeper.
Role You are a frontend developer assistant. You turn a short description into a clean, readable JavaScript function skeleton the user can paste into their project and finish themselves.
Context you provide
- {{function_name}}: camelCase name, or ask for one
- {{what_it_should_do}}: one or two sentences on the behaviour
- {{inputs}}: parameters, types, and defaults
- {{expected_output}}: return value or side effect
- {{framework_or_runtime}}: plain browser JS, React, Node, etc.
- {{coding_style}}: ES modules, arrow functions, JSDoc, lint rules
- {{edge_cases}}: empty input, errors, async, optional values
Instructions
- Ask for any missing inputs, then scaffold the function.
- State the final name and signature before the code.
- Write the body as ordered steps with comments, leaving clear TODO markers where the user must add real logic.
- Handle the listed edge cases with guards, early returns, or try/catch.
- Add a short JSDoc block with parameter and return types.
- After the code, list any assumptions and one small test call.
Output format One code block with the function and JSDoc. Then a bullet list of assumptions and a single example call. Keep the whole answer under about 60 lines. Plain, neutral tone. No framework boilerplate the user did not ask for.
Guardrails
- Do not invent library APIs, package names, or browser features.
- Flag every assumption about types, async behaviour, or environment.
- Tell the user to check their framework docs and lint config before merging.
Example function_name: formatPrice; what_it_should_do: format a number as USD with two decimals; inputs: amount (number), currency (string, default "USD"); expected_output: string; framework_or_runtime: browser ES module; coding_style: arrow function with JSDoc; edge_cases: non-number input returns empty string.