# ShepBarPrep (MEE product) – Current Implementation and Recommendations for Differentiated Features

## Overview of the Current Product (as of April 19 2026)

The **MEE simulator** at **shepbarprep.com** currently presents a clean, minimal interface.  After logging in, the student sees a **Quick Start** section and tiles for each subject (Civil Procedure, Constitutional Law, Contracts, etc.), along with counts of essays completed and average score.  Clicking a subject opens the full MEE question (fact pattern plus call of the question) with a choice of **Begin Essay** (timed or untimed).  The writing interface shows the fact pattern on the left and a text editor with a timer on the right; students can format text and submit their answer.  However, the front‑end available on the production site shows no **results page**; after an essay is completed there is no visible feedback on scoring or areas for improvement【955502911353714†screenshot】【480598436077639†screenshot】.

From exploring the GitHub repository (`airobal/barprep-by-shep`) and reading the extensive **v3.2 system specification**, it is clear that the team has already designed and partially implemented a more sophisticated pipeline:

* A **grading engine** that scores essays on a **1–6 band scale** modeled on the MEE with calibrations against LLM‑generated exemplars.
* A results page template (`apps/web-svelte/src/routes/mee/practice/packet/\[packetId]/results/\[submissionId]/+page.svelte`) that displays a **Band Line** with a band label and descriptor, a **launch disclosure**, lists of **strengths** and **missed issues**, and **improvement priorities**.  It also includes a section showing word count, raw score and calibrated score【877285368389907†L0-L29】.  The associated components (e.g., `BandLine.svelte`, `IssueFindingCard.svelte`) already exist.
* A feedback renderer in the server code that composes band labels, narrative feedback and issues from the grading engine【772251941271722†L0-L113】.

Nevertheless, the production UI currently lacks access to these results because there is no visible “results” link or page accessible after submission.  There is also no **repair loop**, **pass ladder**, **mistake map**, or knowledge graph in the UI.  The user experience stops at “Submit Essay,” leaving students without actionable feedback.

The design recommendations in the previous answer emphasised converting Shep from a generic AI grader into a **focused MEE writing gym**.  Below are concrete specifications for how those recommendations can be implemented within the existing system architecture.

\---

## 1\. Results Page as the Point‑Map (MEE Scoring Feedback)

**Current implementation:**  The repository already includes a `results` page component that accepts `run`, `findings`, `evidence`, and `feedback` objects and renders band information, strengths and missed issues, improvement priorities, and raw/calibrated scores【847462888087613†L0-L243】.  However, this page is not surfaced in the production workflow.

**Recommendation:**  Ensure that after a student submits an essay, the backend records the grading run and redirects the student to the results page (`/mee/practice/packet/:packetId/results/:submissionId`).  The results page should be the first user‑visible implementation of the **Point Map** concept.  In addition to the existing sections, add a **highlight link** in each issue card to allow the student to see the sentences in their answer that triggered the finding.  The `evidenceQuotes` property, already used by `IssueFindingCard.svelte`【231316849777995†L33-L44】, can handle this.  This will make the scoring explanation inspectable and build trust in the grading engine.

**Implementation steps**:

1. **Routing:**  Modify the submission handler to create a `submissionId` and redirect to the results page route with appropriate parameters.
2. **Storage:**  Ensure the `run`, `findings`, `evidence`, and `feedback` data are persisted and passed to the results page via the SvelteKit `load` function.
3. **UI improvements:**  Add a short legend explaining that band scores are calibrated against LLM exemplars, not official MEE graders.  This is already available via the `launch disclosure` component imported from `labels.ts`【876233652477680†L0-L3】.

\---

## 2\. Pass Ladder (Comparative Examples at Different Passing Levels)

**Rationale:**  Students frequently complain that model answers feel unattainably perfect and that they do not know what a minimally passing answer looks like.  A **Pass Ladder** offers three comparator answers (Bare Pass, Comfortable Pass, Top Answer) for each essay, illustrating the difference in issue coverage, rule depth and application.

**Implementation:**

1. **Author Pass Ladder Answers:**  For each MEE question in the bank, create three answer examples corresponding to a score of 3 (bare pass), 4–5 (comfortable pass) and 6 (top answer).  These can be generated via LLMs guided by rubric constraints, then reviewed by a legal content expert.  Example text should be stored in the packet bundle or a separate file.
2. **UI Integration:**  On the results page, include a **Pass Ladder** section below the Point Map.  Provide a tab or toggle to switch between the three example answers.  Each example should highlight the issues and rules used, ideally with inline annotations showing the weight of each section.  Students can compare their own answer to these examples.
3. **Instructional Copy:**  Explain that the Pass Ladder demonstrates how many points are awarded for issue spotting and rule statements even when analysis is not perfect.  This addresses the perception that only a flawless answer receives credit.

\---

## 3\. Repair Pack (Targeted Follow‑Up Drills)

**Rationale:**  Bar students need immediate, specific drills to fix weaknesses rather than generic feedback.  A **Repair Pack** converts the top missed issues into micro‑drills and a mini‑retest schedule.

**Implementation:**

1. **Generate Repair Items:**  For each missed issue identified in the results, create:

   * **Missed‑rule flashcards:**  micro rule statements (one‑sentence, two‑sentence and element checklist forms) that the student must type from memory.  Leverage the LLM to produce these variations and record them in the packet.
   * **Paragraph rewrite drill:**  ask the student to rewrite one of their weak paragraphs incorporating the missing rule and analysis.  Provide a sample rewrite at the end for comparison.
   * **Mini‑hypo:**  a short hypo (2–3 sentences) focusing on the same rule; the student must spot the issue and state the rule.
   * **Retest scheduling:**  schedule a new attempt of the same issue in 48–72 hours.
2. **UI Integration:**  After the Point Map and Pass Ladder, display a **Repair Pack** card for each missed issue.  Each card contains the four drill activities listed above with approximate time requirements (12–18 minutes total).  Each drill opens a modal or new page to complete the exercise.
3. **Progress Tracking:**  Record completion of each repair drill and schedule the retest.  In the **Today Queue** (home screen), surface pending repair drills and retests; this is the “Fix yesterday’s weak rule” and “Review due mistakes” recommended earlier.

\---

## 4\. Rule Builder (Personalised Rule Bank)

**Rationale:**  Memorization is an ongoing pain point; Shep should convert misses into active recall exercises instead of just showing outlines.

**Implementation:**

1. **Capture Rules from Packets:**  Each MEE packet should include the issue’s canonical rule statement and any acceptable paraphrases.  This already exists in the `scoring-bundle` schema used by the grading engine.  Expose these rules through the UI.
2. **Typing Exercise:**  In the Repair Pack, include a **Rule Builder** exercise.  Show the issue name and ask the student to write the rule from memory.  Compare the typed answer to the canonical rule and highlight missing elements.  Provide immediate feedback and allow the student to re‑type until they can recall it.
3. **Rule Bank:**  Build a private rule bank for each user.  Each rule card records the last time it was tested and whether the user can recall it correctly.  Use spaced repetition to schedule future recall checks.  The **Today Queue** should surface the most overdue rule cards for review.

\---

## 5\. Pass Diff (Rewrite Screen)

**Rationale:**  Students benefit from seeing exactly how to rewrite their paragraph to achieve a passing score; text diffing is more instructive than generic comments.

**Implementation:**

1. **Line‑by‑line Diff:**  After a student completes a paragraph rewrite drill, present a side‑by‑side diff between their original paragraph and a passing version.  Use diff markup (additions and deletions) to identify missing headings, rule elements, facts and conclusion.  Tag each addition with its purpose: **Issue**, **Rule**, **Fact Application**, **Organization**.
2. **Use LLM:**  Generate the passing paragraph automatically using the LLM under rubric constraints and calibrate it against the canonical example.  Because this is part of the rewrite drill, the diff can be generated on demand.  The diff can be implemented in the front end using an existing diff library or by writing a simple custom component.

\---

## 6\. Mistake Map \& Knowledge Graph

**Rationale:**  A **Mistake Map** visualizes repeated misses by subject and issue, helping students see patterns.  What you meant by the “Obsidian graph” idea is a **native in-app graph view** that makes the student’s weaknesses, connected doctrines, and review paths feel visual and rewarding.  The right interpretation is not Obsidian integration; it is an internal graph experience built for MEE learning.

**Implementation:**

1. **Data Model:**  Use existing packet identifiers and issue IDs to create nodes in a map: **Subject → Issue → Sub-issue**.  Each node stores miss count, last miss date, mastery status, next review date, and links to essays, rule cards, and repair drills.
2. **List View as Default:**  In the “Progress” section of the site, display a simple tree or list summarizing the Mistake Map.  Each node can expand to show essays where the mistake occurred and scheduled review items.  Avoid making a graph the default view; a list/tree is less overwhelming.
3. **Native Graph View:**  Add a toggle to open a force-directed or radial graph inside the app.  Nodes should be color-coded by mastery and sized by how often the student misses them.  Clicking a node should open the linked essays, rules, missed issue narratives, and due repair tasks.  This is where the “fun” value comes from: students can watch weak areas shrink, stable areas solidify, and related doctrines cluster together.  The graph should be built with something like D3 or a lightweight graph library already suited to your Svelte stack.
4. **Use the Graph for Review, Not Decoration:**  The graph should drive action.  Every node should expose a “Review now” or “Start repair pack” CTA.  The goal is not a pretty map of legal concepts in the abstract; it is a living visualization of where the student is losing and regaining points.

\---

## 7\. Today Queue (Home Screen Improvements)

**Current state:**  The dashboard shows subject tiles and metrics but does not guide the student on what to do next.【955502911353714†screenshot】

**Recommendation:**  Transform the home page into a **Today Queue** with only three items: (1) today’s essay, (2) yesterday’s repair pack, and (3) overdue rule cards.  This queue should be reorderable based on urgency (e.g., retest due soon).  A summary of completed essays and mastery trends can still appear in a separate “Progress” section, but it should not distract from the immediate tasks.

\---

## Conclusion

The ShepBarPrep MEE product already has a strong foundation: a grading engine with band scores, issue‑level feedback, and an initial results page template.  The next step is to **surface these capabilities** in the live product and build a **closed feedback loop** for writing improvement.  Implementing the **Point Map** results page, **Pass Ladder**, **Repair Pack**, **Rule Builder**, **Pass Diff**, **Mistake Map**, and **Today Queue** will transform Shep into a comprehensive writing gym.  These features respond directly to student complaints about inconsistent feedback and insufficient memorization support, differentiating Shep from competitors like UGrader and Bar Essay Grader.

