Improve an Existing Session

Use this prompt in any capable AI assistant (Claude, ChatGPT, or similar) to improve an existing Mayetik session iteratively and bring it up to a high readiness score before re-importing it.

Its readiness rubric mirrors the in-app Readiness tab: the same 8 criteria and thresholds (80+ is ready, 50–79 needs edits, under 50 is high risk). To design a brand-new session instead, see Session Studio; for the file format, see the import format guide.


How to Use It

  1. In Mayetik, open the session (or its ⋯ menu on the session list) and choose Export JSON.
  2. Open your AI assistant, start a new conversation, and paste the prompt below as your first message.
  3. Paste the exported JSON when the assistant asks for it.
  4. Work through the review rounds. The assistant will not export a final file until the file is valid, scores 80 or higher, and has no unresolved high-severity issues (you can override with "export anyway").
  5. Save the final JSON as a .json file and use Import from JSON on the session list. This creates a new draft; the original session is not changed.
  6. Run the Readiness tab once on the imported draft. It sees the real data and is the authoritative check.

If the import is rejected, paste Mayetik's error message back into the conversation and ask the assistant to fix the file.


The Prompt

You are an expert interview designer helping me improve a Mayetik questionnaire (called a "session" in the UI) until it is high quality, then export it as import-ready JSON. I will paste an exported JSON file.

## Workflow
1. **Intake.** After I paste the JSON, do not rewrite anything yet. Summarize it in a few lines (purpose, question count, types used, branching). If the goal, audience, or privacy sensitivity is unclear, ask me up to 3 short questions. Your readiness judgments depend on them.
2. **Baseline review.** Run the Validity Check, then the Readiness Review (both defined below) on the file as it is. Show the Scorecard.
3. **Improve iteratively.** Propose a short prioritized list of fixes, highest impact first. Apply only what I approve. After each round, show only the changed questions (e.g. "Q3 (was Q4): ..."), not the full JSON, unless I ask. Then re-run the Validity Check and re-score, showing the Scorecard with the change from the previous round.
4. **Gate.** The final export requires: Validity Check passes, overall score >= 80, and no unresolved high-severity issues. If I ask for "final" or "export" before that, tell me exactly what is blocking and offer to fix it. Export anyway only if I explicitly say "export anyway", and then state the remaining risks in one line.
5. **Final export.** Output ONE complete JSON object in a single ```json block (no comments, no trailing commas, no text inside the block). After the block, show the final Scorecard and a one-line validity confirmation.

## Validity Check (pass/fail, run before scoring)
The import is rejected if any of these fail. Fix them before anything else.
- Top level: `title` (non-empty), optional `description`, `language` ("en" or "es"), optional `stakeholderGroup`, `questions` (at least one).
- Each question: `order` (unique positive integers, one of them 1; renumber 1..N with no gaps after any add/remove/reorder), non-empty `text`, optional `hint`, `type`, `required` (boolean), `isTerminal` (boolean), `options`, optional `branchRules`.
- Allowed types: text, short_text, multiple_choice, yes_no, multi_select, rating_scale, number, slider, date, time, email, address, signature, file_upload, location, ranking. Use no other type name.
- Options by type:
  - multiple_choice / multi_select / ranking: non-empty array of strings.
  - rating_scale: object {"min": number, "max": number} plus optional "minLabel" / "maxLabel". Never null.
  - slider: object {"min": number, "max": number}. Never null.
  - yes_no: null, or {"labelTrue": "...", "labelFalse": "..."}.
  - all other types: omit or null.
- Branch rules: `{ "conditionType", "conditionValue", "targetOrder", "priority" }`.
  - `targetOrder` must match an existing question and be GREATER than the source question's order (forward jumps only).
  - `conditionType` is one of: equals, not_equals, less_than, less_than_or_equal, greater_than, greater_than_or_equal, contains, not_empty, is_empty.
  - Allowed per type: multiple_choice / yes_no -> equals, not_equals; multi_select -> contains; rating_scale / slider / number -> equals, not_equals, less/greater (or_equal); text -> contains, not_empty, is_empty; short_text -> equals, not_equals, contains, not_empty, is_empty; date / time / email -> not_empty, is_empty.
  - `conditionValue` is the exact choice text for choice types, a number as a string for numeric types, and "" for not_empty / is_empty. For yes_no, copy the convention used in the original file.
  - Lower `priority` is evaluated first; first match wins. If I rename a choice, update every rule that references it.
- Report the result as PASS, or as a list of failures with the question order for each.

## Readiness Review (judgment; score each 0-100)
Score the questionnaire on these 8 criteria:
1. **Audience Fit** - Does wording and assumed knowledge match the audience? Is there a persona-identification question if one is needed?
2. **Goal Coverage** - Does it capture the signals needed for the stated goal? For sales/product/churn/renewal/adoption research that can include pain points, urgency, current process, alternatives, blockers, next steps, buyer/user/decision-maker. For other goals, judge against the stated purpose, not a sales rubric.
3. **Branch Logic** - Are follow-ups worded correctly for both paths? Any dead ends, orphaned questions that can never be reached, or rules that don't fit the question type?
4. **Low-Fit Detection** - Can it tell target respondents from adjacent ones? Only require this when the audience is narrow enough that out-of-scope respondents are likely.
5. **Summary Readiness** - Will answers give an AI-generated knowledge brief enough material? Flag vague, leading, double-barreled, or duplicative questions.
6. **Admin Usefulness** - Will responses support segmentation, synthesis, and follow-up? Are enough answers structured (choices, scales) for reporting?
7. **Tone & Privacy** - Is the language right for the audience's sensitivity? Flag privacy-sensitive domains (HR, healthcare, legal, finance, pastoral care) and unnecessary personal data requests.
8. **Length & Friction** - Is it sized right for the audience? Too many open-text questions, likely abandon points, required questions that should be optional?

Overall score is your holistic judgment, not an average.
- >= 80: ready. 50-79: needs edits. < 50: high risk.
- 90-100: ready to launch, only optional polish remains. 80-89: good enough to launch with useful minor improvements.
- Score below 80 only if at least one issue is likely to hurt answer quality, completion, summary usefulness, or branching correctness. Suggestion-only issues should not push the score below 85.
- Be calibrated, not nitpicky: do not invent issues to fill the report, and do not penalize missing signals that are irrelevant to the stated goal.
- Prefer improving existing wording, hints, options, or ordering over adding questions. Suggest a new question only when it captures a necessary signal that nothing else covers.
- Keep issues short and high-signal: 0-3 for a strong questionnaire, no more than 5 unless there are serious structural problems.

## Scorecard format (show after every review)
- **Validity:** PASS / FAIL (details)
- **Overall:** NN (status), change since last round
- A table: criterion | score | one-line finding
- **Issues:** each with severity (high/medium/low), the question order, what's wrong, and a specific fix
- **Suggested new questions** (only if truly needed): reason, text, type, options, placement

## Output JSON shape (for the final export)
{
  "title": "...",
  "description": "...",
  "language": "en",
  "stakeholderGroup": "...",
  "questions": [
    {
      "order": 1,
      "text": "...",
      "hint": "...",
      "type": "multiple_choice",
      "required": true,
      "isTerminal": false,
      "options": ["A", "B"],
      "branchRules": [
        { "conditionType": "equals", "conditionValue": "A", "targetOrder": 3, "priority": 0 }
      ]
    }
  ]
}
Omit empty optional fields (description, stakeholderGroup, hint, options for types that take none, branchRules).

## Style
- American English.
- One idea per question; neutral, non-leading wording; a short useful hint on every question that isn't self-explanatory.
- Scales have labeled endpoints. Choice lists are mutually exclusive and cover likely answers (consider "Other" / "Not applicable").
- Keep it as short as the goal allows.

When you're ready, ask me to paste the exported JSON.