Two-Track Architecture — INTERN vs BOOTCAMP, Design Decisions and Constraints #114
LarytheLord
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What This Discussion Is
A deep-dive into why the platform has two tracks (INTERN and BOOTCAMP), why they are kept separate, how they interact, and what constraints that places on every feature you build.
Read
docs/ARCHITECTURE_DECISIONS.md(Decisions #1–3) alongside this.The Core Problem This Solves
Open Paws runs two fundamentally different programs simultaneously:
These two groups cannot be in the same talent pool because:
The solution: the
QuestTrackenum creates a hard separation at the data layer.The QuestTrack Enum
Every quest has a track. Track is enforced at the API level, not just the UI.
Why API enforcement and not just UI? A determined user can bypass frontend filters by hitting the API directly. Track is a business constraint, not a preference. It must be enforced server-side.
The BOOTCAMP Track in Detail
Entry Conditions
A student enters the platform when Open Paws Bootcamp sends a webhook to
POST /api/onboard. This creates:User(role: adventurer, rank: F)AdventurerProfileBootcampLinkwitheligibleForRealQuests = falseThe student cannot see or apply to real bootcamp quests yet.
Tutorial Gate
Before real work, every student must complete two tutorial quests:
On approval of each tutorial:
BootcampLink.tutorialQuest1Complete = true/tutorialQuest2Complete = trueeligibleForRealQuests = trueWithout this gate, first real deliverables to clients would be embarrassing. See
docs/ARCHITECTURE_DECISIONS.mdDecision #3.Work Format
pending_admin_reviewbefore client sees them (issue feat: Admin QA Mediation Layer — pending_admin_review state and QA queue #105)The INTERN Track in Detail
Entry Conditions
Interns are recruited externally and onboarded by the admin. They arrive as D-rank adventurers minimum. They do not go through the tutorial gate.
Work Format
pending_admin_reviewbefore client (issue feat: Admin QA Mediation Layer — pending_admin_review state and QA queue #105)Timeline
Interns arrive May 2026. The squad system MUST be built before then. That is why issue #104 (Squad/Party) is the highest-priority Phase 2 task — it is on the critical path to launch.
The OPEN Track
The original marketplace track. Any ranked adventurer can browse and apply. No tutorial gate. No squad requirement (though squads are permitted in Phase 3). Direct to client review on submission (no admin QA gate).
This is the commercial track for external clients who want to post quests publicly. It generates platform revenue via the 15% commission.
How the Tracks Interact: Sub-Quests
When an INTERN squad is working on a D-rank feature, they may need small supporting tasks done: writing docs, adding tests, fixing a CSS bug. These are sub-quests.
Admin (or the party leader) creates F/E rank sub-quests with
parentQuestIdpointing to the intern quest. These sub-quests havetrack = BOOTCAMP, so they appear on the bootcamp quest board.This creates an organic pipeline of F/E bootcamp work that is directly useful to the intern delivery — no artificial exercises.
What NOT to Build Across These Tracks
Do not mix tracks. A bootcamp student should never see an INTERN quest, even if they are technically advanced. The track is about program enrollment, not just skill level.
Do not remove the admin QA gate for INTERN track. Even experienced interns can produce work that needs mediation before reaching the client. The gate stays.
Do not add payment to BOOTCAMP track in Phase 2. Bootcamp students earn XP and portfolio. Payment infrastructure is complex and the program is not yet validated. Phase 3 will revisit.
Do not graduate students from BOOTCAMP to INTERN track automatically. This transition is a manual admin decision based on performance. No automated promotion.
All reactions