Skip to content

Add the parental consent form, and confirm what IJNDD actually says - #8

Merged
tytremblay merged 1 commit into
mainfrom
consent-form
Aug 20, 2026
Merged

Add the parental consent form, and confirm what IJNDD actually says#8
tytremblay merged 1 commit into
mainfrom
consent-form

Conversation

@tytremblay

Copy link
Copy Markdown
Contributor

Closes the two items the launch checklist was waiting on: the district-policy question in §8, and the consent form itself.

IJNDD says less than we assumed

Melrose's policy is not the MASC model §8 was reasoning from. It is a locally drafted IJNDD — Electronic Communication/Social Media, adopted June 12, 2018, and it contains neither clause §8 quoted, nor the "improper fraternization" language §8 attributed to it. Its operative provision reads:

Educators who wish to communicate with students or families on an individual basis should: (a) use their district e-mail account or web portal accounts rather than alternative media, and (b) inform families which social media are to be used for school business.

"Should," in a policy that says "shall not" and "must" in the clauses on either side of it — and half (b) presupposes that non-district platforms do carry school business, or there would be nothing to tell families about. Our employee-mentor is not barred from Slack.

Two consequences:

  • The district_observer seat is goodwill, not compliance. The clause that would have required it is absent.
  • The real constraint on that mentor is clause (k) — coach messages go to all team members — which is stricter than §4.1. Team channels satisfy it; group DMs do not. Enforced by the employee manual, deliberately not by hawk-mod.

IJNDD also puts an M.G.L. c. 66 §10 public-records burden on that mentor personally. export-conversation covers the substance; the forward-to-school-e-mail expectation is one to settle with the principal.

The consent form

docs/consent-form.md carries YPP §4.3's audit disclosure to both students and parents, the Slack CSS §IV notice of what is collected and shared, and IJNDD's requirement that families be told which platforms carry team business.

It leads with Slack keeping everything for as long as the workspace exists, and describes the team's records as a much smaller copy on top of that. The reverse framing made the deletion promise read as more total than it can be — Slack gives no way to remove one student's messages, and the form now says so.

Consent is unbundled: the media release is a separate form, and nothing optional appears on this page. Deletion-on-request is not offered, because it would not be honored.

Three promises that outrun the code

Filed rather than fixed here:

Also opened #7, to investigate huddle tracking.

Rendering

npm run render:form → HTML + PDF from one source, so what parents read on a phone and what they sign cannot drift. Puppeteer and markdown-it are devDependencies; the runtime image does not carry them, and --ignore-scripts means Chromium needs npx puppeteer browsers install chrome once.

Still open for a human

  • "Two screened adults" appears as a hard number in the form. True today; false the moment a third person gets Owner/Admin or Drive access.
  • "we will arrange another way to keep your student informed" commits to a fallback for a declining parent that nobody has designed.
  • The rendered PDF has not been visually reviewed — worth checking where the page breaks land before it goes to families.
  • Season inferred as 2027 from form version 2027.1.

🤖 Generated with Claude Code

Two things the launch checklist was blocked on.

The district policy question is settled. Melrose's IJNDD is not the MASC
model policy §8 was reasoning from: it is a locally drafted
"Electronic Communication/Social Media" adopted June 12, 2018, and it
contains neither of the two clauses §8 quoted, nor the "improper
fraternization" language §8 attributed to it. Its operative provision on
individual contact is advisory — "should" use district e-mail, in a
policy that says "shall not" and "must" in the clauses on either side —
and its second half presupposes that outside platforms do carry school
business once families are told. Our employee-mentor is not barred from
Slack.

Two consequences. The district_observer seat is goodwill rather than
compliance with anything written, since the clause that would have
required it is absent. And the real constraint on that mentor is clause
(k) — coach messages go to all team members — which is stricter than
§4.1 and belongs to the employee manual, not to hawk-mod. IJNDD also
puts a public-records burden (M.G.L. c. 66 §10) on that mentor
personally, which export-conversation covers in substance.

The consent form is new. It carries §4.3's audit disclosure to both
students and parents, the Slack CSS §IV notice of what is collected and
shared, and IJNDD's requirement that families be told which platforms
carry school business. It leads with Slack keeping everything for as
long as the workspace exists and describes the team's own records as a
much smaller copy on top of that, because the reverse framing made our
deletion promise read as more total than it can be. Consent is
unbundled: media release lives on its own form, and the optional items
are nowhere on this page.

Three commitments here outrun the code, and are filed as issues: nothing
purges at the retention deadline (#3), revokeConsent() has no caller so
withdrawal cannot be performed (#4), and the monthly Drive archive needs
both a bulk export (#5) and its own retention (#6).

Rendering is one source, two outputs — parents read the HTML on a phone
and sign the PDF, so the two cannot drift. Puppeteer and markdown-it are
devDependencies only; the runtime image does not carry them, and
--ignore-scripts means Chromium needs an explicit install.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tytremblay
tytremblay merged commit 323584a into main Aug 20, 2026
1 check passed
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