원클릭으로
quiz-author
Write knowledge check quizzes
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Write knowledge check quizzes
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Identify deprecated Cypher syntax in code files.
Create linear issues for the GRAC (GraphAcademy) team.
Periodically review course content for accuracy, relevance, and consistency. This includes checking for deprecated Cypher syntax.
Fact-check a single lesson against Neo4j documentation using the neo4j-docs MCP. Fixes inaccurate claims inline and appends a WHY report.
Review a single lesson for US English grammar, style, voice, and Neo4j terminology. Fixes issues inline and appends a WHY report.
Review a single lesson for pedagogical structure, lesson length, opening pattern, concept delivery, and scaffolding. Fixes issues inline and appends a WHY report.
| name | quiz-author |
| description | Write knowledge check quizzes |
| allowed-tools | Read, Write, Edit, Glob, Grep |
Purpose: Write knowledge check quizzes that test understanding of workshop concepts.
When to use: Workshop requires a quiz to test learner comprehension (usually final module).
Prerequisites:
This skill writes quiz lessons that:
[.question] format (NOT .freetext)Do NOT write concept lessons, challenges, or practice lessons. This skill focuses ONLY on quiz lessons.
Focus on graph databases and graph technologies.
Quiz questions should test:
Before writing anything, answer:
MUST READ:
- WORKSHOP-PLAN.md (for quiz scope)
- All prior workshop lessons (for concepts covered)
- CONTENT_GUIDELINES.md (for question format)
REFERENCE:
- modules/5-final-review/lessons/2-knowledge-check/ (complete example)
- Question format examples in CONTENT_GUIDELINES.md
Quiz Introduction
└── Brief statement about testing knowledge
Questions
├── Question 1: Module 1 concept
├── Question 2: Module 1 concept
├── Question 3: Module 2 concept
├── Question 4: Module 2 concept
├── Question 5: Module 3 concept
├── Question 6: Module 3 concept
├── Question 7: Module 4 concept
├── Question 8: Module 4 concept
├── Question 9: Integration question
└── Question 10: Best practices question
Summary
└── Congratulations and next steps
Recommended distribution for a 4-module workshop:
Total: 8-12 questions
:type: quiz, :sequential: true= Knowledge Check
:type: quiz
:sequential: true
:order: X
// Source: [course-name]/modules/X/lessons/Y-quiz
Test your understanding of the workshop concepts.
include::questions/01-[topic].adoc[leveloffset=+1]
include::questions/02-[topic].adoc[leveloffset=+1]
include::questions/03-[topic].adoc[leveloffset=+1]
include::questions/04-[topic].adoc[leveloffset=+1]
include::questions/05-[topic].adoc[leveloffset=+1]
include::questions/06-[topic].adoc[leveloffset=+1]
include::questions/07-[topic].adoc[leveloffset=+1]
include::questions/08-[topic].adoc[leveloffset=+1]
include::questions/09-[topic].adoc[leveloffset=+1]
include::questions/10-[topic].adoc[leveloffset=+1]
[.summary]
== Summary
Congratulations on completing the [Workshop Name]!
You've successfully:
* [Achievement 1]
* [Achievement 2]
* [Achievement 3]
**Continue learning:**
* link:/courses/[course-slug]/[[Next Course Name]^]
* link:/courses/[course-slug]/[[Advanced Course]^]
read::Mark as completed[]
Example:
= Knowledge Check
:type: quiz
:sequential: true
:order: 2
// Source: neo4j-fundamentals/modules/5-review/lessons/1-knowledge-check
Test your understanding of graph data modeling, importing, and querying.
include::questions/01-node-identification.adoc[leveloffset=+1]
include::questions/02-relationships-vs-properties.adoc[leveloffset=+1]
include::questions/03-many-to-many.adoc[leveloffset=+1]
include::questions/04-bidirectional-traversals.adoc[leveloffset=+1]
include::questions/05-collection-filtering.adoc[leveloffset=+1]
include::questions/06-data-quality.adoc[leveloffset=+1]
include::questions/07-graph-advantages.adoc[leveloffset=+1]
include::questions/08-recommendation-pattern.adoc[leveloffset=+1]
[.summary]
== Summary
Congratulations on completing the Northwind Import Workshop!
You've successfully:
* Modeled business data as a graph
* Imported CSV files using Data Importer
* Written Cypher queries to answer business questions
* Built a recommendation query using collaborative filtering
**Continue learning:**
* link:/courses/cypher-fundamentals/[Cypher Fundamentals^]
* link:/courses/modeling-fundamentals/[Modeling Fundamentals^]
read::Mark as completed[]
[.question] marker (NOT .freetext)[.question]
= Question Title in Title Case
Question text asking about specific concept?
- [ ] A. Wrong answer with plausible reason
- [x] B. Correct answer
- [ ] C. Wrong answer with plausible reason
- [ ] D. Wrong answer with plausible reason
[TIP,role=hint]
.Hint
====
[Guidance toward solution without giving it away]
====
[TIP,role=solution]
.Solution
====
**B is correct:** [Explanation of why B is the right answer]
**Why others are wrong:**
* A: [Reason this is incorrect]
* C: [Reason this is incorrect]
* D: [Reason this is incorrect]
**Recall Module [N]:** [Reference to where this was taught]
====
File: questions/01-node-identification.adoc
[.question]
= Identifying Graph Nodes
When modeling business data as a graph, which of the following should be represented as a node?
- [ ] A. A customer's email address
- [x] B. A customer entity with properties
- [ ] C. The relationship between a customer and an order
- [ ] D. The quantity of products in an order
[TIP,role=hint]
.Hint
====
Think about what has independent existence and can have its own properties and relationships.
====
[TIP,role=solution]
.Solution
====
**B is correct:** A customer entity should be represented as a node because it has independent existence, its own properties (name, email, address), and can be connected to other entities through relationships.
**Why others are wrong:**
* A: Email address is a property of a customer, not a separate entity
* C: Relationships connect nodes, they are not nodes themselves
* D: Quantity is a property that belongs on the relationship between an order and a product
**Recall Module 2:** Nodes represent entities with independent existence in your domain model.
====
File: questions/02-graph-advantages.adoc
[.question]
= Graph Database Advantages
Which of the following are advantages of using a graph database for connected data? **Select all that apply.**
- [x] A. Relationships are traversed efficiently without JOIN operations
- [ ] B. All queries are automatically faster than SQL
- [x] C. Query complexity stays constant as relationship depth increases
- [x] D. Queries read like the questions you're asking
[TIP,role=hint]
.Hint
====
Focus on specific technical advantages related to how relationships work, not general performance claims.
====
[TIP,role=solution]
.Solution
====
**A, C, and D are correct:**
* **A is correct:** Graph databases store relationship pointers; traversals follow them in memory without scanning tables or materializing JOINs
* **C is correct:** Traversal cost depends on how many connections you follow, not total table sizes, so adding more hops doesn't blow up the way multi-join SQL does
* **D is correct:** Cypher patterns like `(Customer)-[:PLACED]->(Order)` mirror natural language questions
**Why B is wrong:**
* Not ALL queries are faster - graphs excel at connected data queries, but simple aggregations or full table scans may perform similarly to SQL
* Performance depends on the query pattern and data structure
**Recall Module 4:** We compared Cypher multi-hop traversals (pointer following, cost scales with connections) to SQL JOINs (repeated index scans and join materialization) and showed specific advantages for relationship-heavy queries.
====
Pattern 1: Reference concept
[TIP,role=hint]
.Hint
====
Think about what happens when you need to find data that's several relationship hops away in SQL vs Cypher.
====
Pattern 2: Ask guiding question
[TIP,role=hint]
.Hint
====
Which option represents something with independent existence that can have its own properties and relationships?
====
Pattern 3: Provide checklist
[TIP,role=hint]
.Hint
====
Consider these criteria:
* Does it have independent existence?
* Can it have its own properties?
* Does it connect to other entities?
====
❌ Giving away the answer:
The correct answer is B because customers are nodes.
❌ Antagonistic tone:
This should be obvious if you paid attention during Module 2.
❌ Vague and unhelpful:
Review the lesson materials.
✅ Good hint:
Nodes represent entities with independent existence. Properties are attributes of those entities.
[TIP,role=solution]
.Solution
====
**[Letter] is correct:** [Explanation of why this is the right answer]
**Why others are wrong:**
* [Letter]: [Specific reason]
* [Letter]: [Specific reason]
* [Letter]: [Specific reason]
**Recall Module [N]:** [Reference to where this was taught]
====
Example 1: Single correct answer
[TIP,role=solution]
.Solution
====
**C is correct:** Cypher uses `MATCH (n:Label)` syntax to find nodes by their label.
**Why others are wrong:**
* A: `FIND` is not a Cypher clause - use `MATCH` instead
* B: `SELECT` is SQL syntax, not Cypher
* D: `GET` is not a Cypher clause
**Recall Module 2:** You learned the basic Cypher pattern syntax in the Cypher Primer lesson.
====
Example 2: Multiple correct answers
[TIP,role=solution]
.Solution
====
**A and C are correct:**
* **A is correct:** Relationship properties store data that belongs to the connection between two entities (like quantity on an ORDER relationship)
* **C is correct:** Properties can be used for filtering without requiring additional JOINs or table scans
**Why others are wrong:**
* B: Relationship properties don't eliminate the need for relationships - they enhance them
* D: You can still query data with properties - this is a primary use case
**Recall Module 3:** The lesson on modeling relationships explained when to use relationship properties vs node properties.
====
❌ BAD - Trivia/memorization:
What is the default port number for Neo4j?
- [ ] A. 7474
- [x] B. 7687
- [ ] C. 8080
- [ ] D. 3000
✅ GOOD - Understanding/application:
You need to find customers who ordered the same products. Which pattern should you use?
- [ ] A. Single-hop traversal
- [ ] B. Aggregation with GROUP BY
- [x] C. Bidirectional traversal through products
- [ ] D. Direct Customer-Customer relationship
❌ BAD - Obvious wrong answers:
Which is a graph database?
- [x] A. Neo4j
- [ ] B. Microsoft Word
- [ ] C. Photoshop
- [ ] D. Calculator
✅ GOOD - Plausible wrong answers:
Which is best suited for highly connected data?
- [x] A. Graph database
- [ ] B. Document database (good for nested data, not connected)
- [ ] C. Key-value store (good for simple lookups, not connected)
- [ ] D. Relational database (works but requires complex JOINs)
:type: quiz, :sequential: true[.question] marker (NOT .freetext)- [x] for correct, - [ ] for wrong[TIP,role=hint][TIP,role=solution]leveloffset=+1CRITICAL: Use correct marker based on question type.
Multiple choice (default):
[.question]
= Question Title
Fill-in-the-blank code:
[.question.select-in-source]
= Question Title
Database verification (challenges only):
[.verify.slide]
== Validate Results
NEVER use for multiple choice:
[.question.freetext] ❌ WRONG - only for open-ended text entry
Before completing:
Can you answer each question?
Are hints helpful?
Are solutions complete?
See this real file:
modules/5-final-review/lessons/2-knowledge-check/
2-knowledge-check/lesson.adoc:
:type: quiz and :sequential: true metadataQuestion files:
[.question] marker (NOT .freetext)Question topics covered:
Before marking quiz complete, verify:
lesson.adoc exists with :type: quiz:sequential: true (if questions build on each other)[.question] marker