- Try-it tab: download the de-identified output as JSON or CSV — a single sanitised
note, or the full sanitised dataset (only de-identified text is exported).
- Remove FLock.io as a technical reference across the UI and docs; keep the
hackathon credit only.
- Footer on every tab: "Live demo for the FLock Sovereign AI Challenge at the
Encode Vibe Coding Hackathon, hosted by Encode Hub."
- Align the event name to "Encode Vibe Coding Hackathon — FLock Sovereign AI
Challenge (Encode Hub)" across README / CLAUDE / tool_card / report / changelog.
- CHANGELOG: log this live-demo polish.
Add ATRS transparency record (docs/report.md); enhance tool card; align version
Chaeyoon+1: Claude Opus 4.8
033840c
Decision (model card vs tool card): keep the tool card. NoteGuard trains no model, so the
NHS England model-card template's training / data-split / hyperparameter sections do not
apply. Imported the model card's genuinely-relevant sections into the tool card instead:
- Specification table (with the tool-card-vs-model-card rationale)
- Use cases out of scope
- Bias and fairness (name-recall disparity for non-English names — an equity risk)
- DPIA / IG / DARS governance prerequisites
Add docs/report.md: a gov.uk ATRS-style transparency record (Tier 1 + Tier 2), modelled on
the NHS.UK Reviews Automoderation Tool record (component specs, data spec, risks+mitigations).
Insights folded in from the NHS ratings-and-reviews work: explicit human-final-decision,
proactive ATRS publication, and a bias section (notably absent from their page).
Also align src/__init__ __version__ to 0.0.1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move DEPLOY_HF_SPACES.md under docs/
Chaeyoon+1: Claude Opus 4.8
ba01b56
Deploy guide is documentation, so it belongs in docs/. CLAUDE.md stays at the repo root
(Claude Code only auto-loads project memory from a root CLAUDE.md, not from .claude/).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Release v0.0.1: version bump + final doc cleanup
Chaeyoon+1: Claude Opus 4.8
ba1ace4
- pyproject version 1.0.0 -> 0.0.1; tool_card version 0.0.1.
- Mark docs/CHANGELOG.md [0.0.1] release.
- Fix last stale strings (recognisers spelling in CLAUDE.md; root streamlit_app.py path).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Generated artifacts now write to outputs/ (data/raw = inputs stay under data/;
the old data/out is legacy and gitignored).
- Update all path refs: src/trust_demo.py, streamlit_app.py, tests/run_eval.py,
.gitignore, README.md, CLAUDE.md.
- Add docs/CHANGELOG.md documenting big changes per PR since the fork's initial commit.
Verified: ruff clean; 23 tests pass; run_eval writes outputs/results.json.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Refactor to Gold-RAP structure: src/ package, tests/, docs/, data/, output/
Chaeyoon+1: Claude Opus 4.8
84981a4
Structure
- Rename package noteguard/ -> src/; British spelling recognizers -> recognisers
(file, method, and all imports; Presidio's add_recognizer untouched).
- Streamlit app moved to repo root (streamlit_app.py); run_eval.py -> tests/.
- Generated artifacts now write to output/ (was data/out/).
Declutter
- Remove empty app/ and experiments/ dirs, the committed results.json, and the
stale docs/failed_experiments.md. Update docs/tool_card.md.
Gold RAP ("analysis as a product")
- pyproject.toml: pip-installable package + ruff/pytest config.
- CI (.github/workflows/ci.yml) runs ruff + pytest on push/PR.
- CHANGELOG.md; logging in the eval entry point.
Notes
- src/ stays one cohesive package (its modules import each other); evaluate.py is a
library used by both src/trust_demo.py and tests/run_eval.py, so both are kept.
Verified: pip install -e ".[dev]"; ruff clean; 23 tests pass; run_eval writes output/results.json.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remove the roster / gazetteer feature
yumi.h
4d404c0
Drop the optional Trust-roster (gazetteer) layer entirely:
- detect.py: remove GazetteerDetector and CompositeDetector (now unused), tidy imports
- data.py: remove roster_terms()
- trust_demo.py / run_eval.py / app/streamlit_app.py: drop roster wiring; the
Try-it "Add Trust roster" checkbox and the +roster eval row are gone
- README / CLAUDE / tool_card / run-evaluation skill: remove roster references
Detection is Presidio (en_core_web_lg) + rules only. Tests pass (23), demo runs.
feat: action items 1-4 from team briefing
Chaeyoon
39f19d3
1. Places recall fix
- Add ORGANIZATION to PresidioDetector.KEEP (hospital names tagged as ORG
were being silently dropped — root cause of low places recall)
- Add _SITE_RE rule recognizer for UK NHS site name patterns
("X Hospital / Infirmary / NHS Trust / Medical Centre") -> LOCATION
- Change default spaCy model to en_core_web_lg (100% name recall vs 91% sm)
- Raise default score_threshold to 0.6 now that lg is default
2. Human-in-the-loop review queue
- Add needs_review: bool field to Span (backward-compatible default False)
- PresidioDetector review_threshold (default 0.35): spans in
[review_threshold, score_threshold) redacted but flagged needs_review=True
- SanitiseResult.review_items property surfaces flagged spans
- Audit dict includes needs_review count
3. Streamlit SDE narrative
- Title/caption reframe tool as NHS SDE on-ramp gate
- Try-it tab: roster OFF by default; review queue shows flagged spans with
context and score fo…