Skip to content

Mentorship

Mentor-led study is core to Garrison Bible Study. v1 ships foundation: invitation-only pairings, participation modes on studies, and per-step discipleship note lanes. Chat, tasks, and church assignment are later.

See also Study Plans, Identity and Access, Messaging (deferred).

RuleDetail
PairingInvitation only in v1 (no church auto-assign)
CardinalityOne mentor may have many mentees; one active mentor per mentee
Mentor eligibilityMentor must be Meat spiritual phase or higher
Gender pairingFemale mentor + male mentee: hard block (1 Timothy 2:11–12; Titus 2:3–5). Male mentor + female mentee: allowed only after both parties acknowledge a cross-gender warning on invite and accept. Same-gender pairings: no extra gate. Both users must have gender set.
Identity verificationWhen Identity verification ships, non-exempt users must pass platform IDV before initiating or accepting a mentorship invite
Study ownershipStudies remain on the mentee (studies.user_id); mentor access is via active mentorship_id

Table: mentorshipsmentor_user_id, mentee_user_id, status (pending, active, declined, ended, revoked), invited_by_user_id, timestamps.

Deferred: church-proposed mentors, guardian approval (pending_guardian), church_id on rows.

ExceptionEffect
Guardian mother + own young sonMay bypass female-mentor / male-mentee hard block when subprofiles ship
Spouse, parent/child, group (not 1:1)May skip cross-gender warning for male mentor + female mentee

Hooks live in MentorshipEligibility; all return false until household and group flows exist.

Templates declare what modes they support:

  • supports_mentored_participation
  • supports_individual_participation

Each study stores participation_mode:

ModeStep note lanesWriters
mentoredmentee + mentorMentee owns study; mentor writes mentor lane only
individualindividualStudy owner only

A study uses one mode at create time—not all three lanes on the same study.

  1. Resolve plan template (method, phase, focus) as today.
  2. Milk + template supports mentored → require active mentorship; force participation_mode = mentored.
  3. Transition / meatindividual when no mentorship or template allows; mentored when active mentorship and template allows (UI may offer choice when both flags are true).
  4. Persist studies.mentorship_id when mentored.

Milk book and guided plans are typically mentored-only in seed data.

Materialized study_steps link optional notes per lane:

  • mentee_note_id — mentee reflection (mentored studies)
  • mentor_note_id — mentor guidance (mentored studies)
  • individual_note_id — solo journaling (individual studies)

completeStudyStep attaches notes to the lane matching the study’s participation mode and the step’s completionMode.

Discipleship lanes are visible to the paired mentor and mentee. Mentor private notes (mentor_private_note_id on a step) are visible only to the mentor — not shared on the discipleship lane. General notes on the study detail page (not tied to a step lane) remain owner-private — see Identity and Access.

Mentored templates use typed completion modes instead of a single “complete step” for every row:

ModeTypical actorBehavior
write_noteMenteeMentee submits lane notes
review_noteMentorMentor reviews; may reject back to prior write step (mentor note required)
meetPairStub: acknowledge plus optional notes until study sessions exist
acknowledgeMentee / mentor / pairConfirm only
assign_trackMentorAssign published track to mentorship (completeStudyStep + trackId)
answer_quizMenteeSubmit quiz via submitQuizAttempt, then complete step with quizAttemptId
attest_outcomesMentorConfirm outcome slugs via outcomeChecks on completeStudyStep
promote_phaseMentorAdvance mentee spiritual_phase when track and outcomes are satisfied

Parallel waves let mentor and mentee prepare simultaneously before a shared meet step.

Published study_method = mentorship templates with mentorship_plan_kind = intro (seeded per spiritual phase) are promoted on the mentor mentee page when the pairing has no track and no studies yet. Assign via assignMentorshipIntroStudy. The final step uses assign_track; mentors browse tracks with tag filters or optionally call suggestMentorshipTracks (AI, admin_study_plan_ai flag) for a top-five shortlist.

When the assigned track is complete, mentors see checkupStudyPromotion for templates with mentorship_plan_kind = checkup and checkup_context = phase_promotion. Assign via assignMentorshipCheckupStudy. Steps combine quiz, mentor outcome attestation, meet, and promote_phase (sets users.phase_source = mentor). See Phase promotion and Learning outcomes.

learning_style, personality_focus, and study_motivation do not change step schema in v1. Templates use one instruction set per (method, phase, focus). Mentors may adapt in the mentor note lane without extra columns.

Later: variant templates or resolver logic keyed on users.learning_style.

AreaOperations
MentorshipinviteMentorship, acceptMentorship, declineMentorship, endMentorship, assignMentorshipIntroStudy, assignMentorshipCheckupStudy, assignMentorshipTrack, assignNextTrackStudy, submitQuizAttempt
QueriesmyMentorships, pendingMentorshipInvites, menteeStudy (mentor), activeMentorship (mentee), introStudyPromotion, checkupStudyPromotion, suggestMentorshipTracks
StudyparticipationMode, mentorshipId, outcomeEvaluations on Study; lane note ids, quizQuestions, latestQuizAttempt on StudyStep

DevSeeder creates two active mentorships before sample studies so milk book create works: user@garrison.test (milk) mentored by mentor@garrison.test (meat), and mentor@garrison.test mentored by admin@garrison.test (platform admin).

  • In-app mentor/mentee Messaging
  • Mentorship tasks (distinct from study steps)
  • Church assignment + guardian approval
  • Mentor aggregate dashboard (streaks, time studied)
  • Periodic checkup studies (checkup_context = periodic)
  • Per-user step variants from onboarding fields