Spaces:
Runtime error
Runtime error
Aryan Mishra
feat: initial commit - Multilingual ABSA project setup with 6 phases, 36 requirements
a6b96c2 | <questioning_guide> | |
| Project initialization is dream extraction, not requirements gathering. You're helping the user discover and articulate what they want to build. This isn't a contract negotiation β it's collaborative thinking. | |
| <philosophy> | |
| **You are a thinking partner, not an interviewer.** | |
| The user often has a fuzzy idea. Your job is to help them sharpen it. Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean." | |
| Don't interrogate. Collaborate. Don't follow a script. Follow the thread. | |
| </philosophy> | |
| <the_goal> | |
| By the end of questioning, you need enough clarity to write a PROJECT.md that downstream phases can act on: | |
| - **Research** needs: what domain to research, what the user already knows, what unknowns exist | |
| - **Requirements** needs: clear enough vision to scope v1 features | |
| - **Roadmap** needs: clear enough vision to decompose into phases, what "done" looks like | |
| - **plan-phase** needs: specific requirements to break into tasks, context for implementation choices | |
| - **execute-phase** needs: success criteria to verify against, the "why" behind requirements | |
| A vague PROJECT.md forces every downstream phase to guess. The cost compounds. | |
| </the_goal> | |
| <how_to_question> | |
| **Start open.** Let them dump their mental model. Don't interrupt with structure. | |
| **Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this? | |
| **Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how? | |
| **Make the abstract concrete.** "Walk me through using this." "What does that actually look like?" | |
| **Clarify ambiguity.** "When you say Z, do you mean A or B?" "You mentioned X β tell me more." | |
| **Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like β offer to proceed. | |
| </how_to_question> | |
| <question_types> | |
| Use these as inspiration, not a checklist. Pick what's relevant to the thread. | |
| **Motivation β why this exists:** | |
| - "What prompted this?" | |
| - "What are you doing today that this replaces?" | |
| - "What would you do if this existed?" | |
| **Concreteness β what it actually is:** | |
| - "Walk me through using this" | |
| - "You said X β what does that actually look like?" | |
| - "Give me an example" | |
| **Clarification β what they mean:** | |
| - "When you say Z, do you mean A or B?" | |
| - "You mentioned X β tell me more about that" | |
| **Success β how you'll know it's working:** | |
| - "How will you know this is working?" | |
| - "What does done look like?" | |
| </question_types> | |
| <using_askuserquestion> | |
| Use question to help users think by presenting concrete options to react to. | |
| **Good options:** | |
| - Interpretations of what they might mean | |
| - Specific examples to confirm or deny | |
| - Concrete choices that reveal priorities | |
| **Bad options:** | |
| - Generic categories ("Technical", "Business", "Other") | |
| - Leading options that presume an answer | |
| - Too many options (2-4 is ideal) | |
| - Headers longer than 12 characters (hard limit β validation will reject them) | |
| **Example β vague answer:** | |
| User says "it should be fast" | |
| - header: "Fast" | |
| - question: "Fast how?" | |
| - options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"] | |
| **Example β following a thread:** | |
| User mentions "frustrated with current tools" | |
| - header: "Frustration" | |
| - question: "What specifically frustrates you?" | |
| - options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"] | |
| **Tip for users β modifying an option:** | |
| Users who want a slightly modified version of an option can select "Other" and reference the option by number: `#1 but for finger joints only` or `#2 with pagination disabled`. This avoids retyping the full option text. | |
| </using_askuserquestion> | |
| <freeform_rule> | |
| **When the user wants to explain freely, STOP using question.** | |
| If a user selects "Other" and their response signals they want to describe something in their own words (e.g., "let me describe it", "I'll explain", "something else", or any open-ended reply that isn't choosing/modifying an existing option), you MUST: | |
| 1. **Ask your follow-up as plain text** β NOT via question | |
| 2. **Wait for them to type at the normal prompt** | |
| 3. **Resume question** only after processing their freeform response | |
| The same applies if YOU include a freeform-indicating option (like "Let me explain" or "Describe in detail") and the user selects it. | |
| **Wrong:** User says "let me describe it" β question("What feature?", ["Feature A", "Feature B", "Describe in detail"]) | |
| **Right:** User says "let me describe it" β "Go ahead β what are you thinking?" | |
| </freeform_rule> | |
| <context_checklist> | |
| Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally. | |
| - [ ] What they're building (concrete enough to explain to a stranger) | |
| - [ ] Why it needs to exist (the problem or desire driving it) | |
| - [ ] Who it's for (even if just themselves) | |
| - [ ] What "done" looks like (observable outcomes) | |
| Four things. If they volunteer more, capture it. | |
| </context_checklist> | |
| <decision_gate> | |
| When you could write a clear PROJECT.md, offer to proceed: | |
| - header: "Ready?" | |
| - question: "I think I understand what you're after. Ready to create PROJECT.md?" | |
| - options: | |
| - "Create PROJECT.md" β Let's move forward | |
| - "Keep exploring" β I want to share more / ask me more | |
| If "Keep exploring" β ask what they want to add or identify gaps and probe naturally. | |
| Loop until "Create PROJECT.md" selected. | |
| </decision_gate> | |
| <anti_patterns> | |
| - **Checklist walking** β Going through domains regardless of what they said | |
| - **Canned questions** β "What's your core value?" "What's out of scope?" regardless of context | |
| - **Corporate speak** β "What are your success criteria?" "Who are your stakeholders?" | |
| - **Interrogation** β Firing questions without building on answers | |
| - **Rushing** β Minimizing questions to get to "the work" | |
| - **Shallow acceptance** β Taking vague answers without probing | |
| - **Premature constraints** β Asking about tech stack before understanding the idea | |
| - **User skills** β NEVER ask about user's technical experience. the agent builds. | |
| </anti_patterns> | |
| </questioning_guide> | |