Skip to content

docs: onboarding document — Jinendran - #226

Open
Jinendran10 wants to merge 1 commit into
vicharanashala:mainfrom
Jinendran10:docs/onboarding-jinendran
Open

docs: onboarding document — Jinendran#226
Jinendran10 wants to merge 1 commit into
vicharanashala:mainfrom
Jinendran10:docs/onboarding-jinendran

Conversation

@Jinendran10

Copy link
Copy Markdown
Contributor

Onboarding document required before a first contribution PR. One file, documentation only: Ideas/ONBOARDING-Jinendran.md.

All six mandated sections are present and in the required order.

On section 4 (Gaps)

Eleven gaps, every one verified against origin/main @ 1bd4599 with file paths and line ranges rather than carried over from existing docs. The ones I would flag for attention first:

  • G1 — authentication bypass. backend/src/routes/auth.ts:36-38 retries the committed demo password hash, and the guard is user.passwordHash — so the demo password is accepted precisely when the user has set a real password of their own. No role exception, so this includes superadmin.
  • G2 — the documented mitigation for G1 does nothing: SEED_DEMO_PASSWORD_HASH is defined twice (auth.ts:7 hardcoded, db.ts:12-13 environment-aware) and the login path imports the hardcoded one, so setting SEED_DEMO_PASSWORD changes what reseed writes but not what login accepts.
  • G4GET /api/students/:id/diagnostic-paper (routes/students.ts:60-125) never reads req.params.id and returns the caller's whole scoped student list via an unbounded getStudents().
  • G5/G6 — the diagnostic path discards both the Python pipeline's per-error analysis (root_causes, levels_failed, performance_by_difficulty, all written by ai-services/scripts/2_evaluate_child.py and never read) and the child's own answers (no AnswerSubmission is written for the one assessment that sets a child's initial level).
  • G8 — there are no test files in the repository, and no workflow has a pull_request trigger.

On section 5 (Ideas)

Every gap maps to a proposed fix with an implementation approach. G1–G3 → I1, G4 → I2, G5/G6 → I3, G7 → I4, G8/G10 → I5, G9 → I6, G11 → I7.

On section 6 (Contribution)

Covers work done during onboarding, including a fix implementing part of I3. My Misconception Fingerprinting feature is described there but is not included in this PR — it is on a separate branch, since the instructions ask for the onboarding document before a first contribution PR. Paths belonging to that branch are marked as such in the document so no reviewer is sent to a file that isn't on main.

Happy to split any gap out into its own issue if that is more useful for tracking.

Onboarding document required before a first contribution PR, covering the
six mandated sections.

Section 4 documents eleven gaps, each verified against origin/main @ 1bd4599
with file paths and line ranges — including a total authentication bypass
(routes/auth.ts:34-38 accepts the committed demo password for accounts that
already have a real one), a route that ignores its :id parameter and returns
the whole student collection, and the diagnostic path discarding both the
Python pipeline's per-error analysis and the child's own answers.

Section 5 maps every gap to a proposed fix. Section 6 records the work done
during onboarding.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant