Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,22 @@ appreciated — please give us time to release a fix before any public disclosur
project directories. Review the paths you grant access to.
- `qti-core` produces QTI packages from local markdown; it makes no network calls
as part of generation.

## Data protection

This is a public repository. QuestionForge works with a teacher's exam material
in local project directories — none of that material belongs here. Git history
is permanent, so the rules below apply to code, tests, examples, documentation
and commit messages alike.

- **Never commit real personal data:** names (students, colleagues, teachers),
school or institution names, personal-identity numbers, file paths containing
a username (`/Users/...`), or secrets (API keys, tokens, `.env`).
- **Never commit real exam material:** actual exam questions, question banks and
assessment data stay in your local project. Examples and test fixtures use
fabricated questions only.
- **Use fabricated or anonymised data in every example and test** — for example
`School A`, `Colleague_A`, `/path/to/project`, an invented question.
- **Already committed something real?** Deleting the file is not enough — it
stays in the git history forever. Stop, scrub the history, rotate any exposed
secret, and resolve it before the next push.
11 changes: 10 additions & 1 deletion docs/decisions/017-track-repo-policy-rules.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
---
type: decision
status: active
status: superseded
created: 2026-06-24
superseded: 2026-07-07
origin: code
project: QuestionForge
relates_to: [ADR-015, ADR-016]
---

# ADR-017: Track the three repo-policy rules in `.claude/rules/`

> **Superseded** by ACDM ADR-017 (*Rule distribution — `.claude/` is dev-tooling;
> public policy lives in conventional docs*, 2026-06-24) and walked back in #33:
> the "read by repo-tooling" rationale below was wrong — the tooling that reads
> these rules is local and has them on disk regardless of git-tracking, and
> `.claude/rules/*.md` are agent instructions, not contributor-facing policy.
> `.claude/` is now wholly gitignored; the public data-protection policy lives
> in `SECURITY.md`. The text below is kept as the historical record.

## Context

`.claude/` holds Claude Code / ACDM configuration. Historically the whole
Expand Down
Loading