Add personal-data skills; document ETL/infra procedures - #51
Open
oinkspook wants to merge 1 commit into
Open
Conversation
Codify documented-but-uncovered procedures into skills, sourced from corneel_notes.txt and the instroom/1cijferho implementations. New knowledge skills: - browser-pseudonymize: in-browser Pyodide/WASM encryption of sensitive columns before upload; encrypt-vs-pseudonymize distinction; never keyless-hash a BSN. - identifier-mapping: UUID + dual Postgres table + MinIO split; keyed server-side HMAC UUID derivation. Marks restricted-user/stored-procs/ constraints as design intent, not implemented. Extended skills: - surf-sdp-helm-flux: batch workloads section (scheduled CronJob + on-demand Job, unique-name-per-release mechanism); flags field bugs in the reference instroom chart. - etl-pipeline: cross-pipeline trigger-token setup (INSTROOM_CONFIG_TRIGGER_TOKEN). - surfdrive: public-share creation (where SHARE_TOKEN/PASSWORD come from). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Description
Type of Change
Description of Changes
Codifies procedures that were documented (in
corneel_notes.txtand theinstroom/1cijferhoimplementations) but not yet captured as skills. All content is grounded in real, verified code — not planning notes.New knowledge skills
browser-pseudonymize— in-browser Pyodide/WebAssembly encryption of sensitive columns (BSN/PGN/onderwijsnummer) before upload, in a Streamlit app. Captures the encrypt-vs-pseudonymize distinction, the "never keyless-hash a BSN" rule, the Pyodide bootstrap/caching, base64 JS-payload injection, and thest_js_blockingsession-state latching gotcha. Grounded in1cijferho/src/frontend/Files/.identifier-mapping— split a record into a derived UUID + dual Postgres tables (secret_sensitive/secret_regular, FK cascade) + a MinIO object. Server-side keyed-HMAC UUID derivation; three read-back resolution levels. Grounded in1cijferho/src/eencijferho/io/personal_data.py.Extended skills
surf-sdp-helm-flux— new "Batch workloads" section: scheduledCronJob+ on-demandJob, the unique-name-per-release mechanism, image-by-digest + config/secret wiring. Flags field bugs in the referenceinstroomchart.etl-pipeline— cross-pipeline trigger-token setup (INSTROOM_CONFIG_TRIGGER_TOKEN).surfdrive— public-share creation (whereSURFDRIVE_SHARE_TOKEN/PASSWORDcome from).Related Issues
None.
Comparison: Before and After
Before:
Personal-data handling (browser encryption, UUID/dual-store) and the batch-job / trigger-token / surfdrive-link procedures lived only in code and
corneel_notes.txt; no skill surfaced them.After:
Two new skills + three extended skills codify these patterns, with the security-sensitive parts (encrypt vs pseudonymize, keyed server-side hashing) made explicit.
Testing Instructions
Skills are markdown (no executable change). To validate:
SKILL.mdfrontmatterdescriptiontriggers on its intended prompts./browser-pseudonymize,/identifier-mapping,/sdp-secrets-management,/etl-pipeline) resolve to existing skills.Validation
styler::style_active_file()has been run — N/A: no R codeDependencies
None.
Additional Information
identifier-mappingexplicitly marks the restricted DB user, stored procedures, and INT-9/unique constraints as design intent, not implemented — it does not claim code that is absent.instroom-config(duplicatesuccessfulJobsHistoryLimit, misusedttlSecondsAfterFinished, CronJob-only keys on aJob) are documented in the skill but not fixed here — that is a separate change in theinstroom-configrepo.docs/skill-gaps.md: please review promptly rather than letting it queue.Checklist
🤖 Generated with Claude Code