Skip to content

docs: add privacy & GDPR documentation for workflow task descriptions#274

Open
mvillmow wants to merge 6 commits into
mainfrom
186-auto-impl
Open

docs: add privacy & GDPR documentation for workflow task descriptions#274
mvillmow wants to merge 6 commits into
mainfrom
186-auto-impl

Conversation

@mvillmow

@mvillmow mvillmow commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements issue #186 by adding comprehensive privacy and GDPR documentation for workflow task descriptions.

  • Added docs/privacy.md with data-flow table (what text leaves Telemachy), author guidance (what not to put in workflows), operator controls (log-level tuning, shipping-side scrubbing), and GDPR lawful-basis section
  • Added docs/adr/003-pii-handling-stance.md recording the decision to treat workflow text as opaque, not ship an in-tree redaction filter, and document the data flow
  • Updated SECURITY.md, README.md, and CLAUDE.md with cross-links to the privacy doc
  • Added PII handling notice to all three example workflow YAML files (example.yaml, hello-world.yaml, fleet-deploy.yaml)

Key Design Decisions

Per the approved plan:

  1. Documentation-only scope. The issue asks for "no privacy policy, data handling notice, or PII handling guidance." It does not ask for a runtime control; documentation alone satisfies the requirement.
  2. No schema changes. Per CLAUDE.md, workflow YAML is a public API; no contains_pii field is added.
  3. Data-flow table is factually grounded with concrete line numbers from executor.py and agamemnon_client.py, with a maintenance note pinning the table to revisit when issue Epic: Strict audit 2026-04-28 — ProjectTelemachy #92's NATS subscriber lands.
  4. No runtime redaction. The prior plan was NOGO'd for proposing an in-tree LOG_REDACT_PII filter; a heuristic regex would have false-positive redactions on legitimate content (model names, agent names, task subjects). Operators needing redaction should apply it at their log-shipping layer.

Test Plan

  • ✓ All three workflow YAML files validate against schema after comment insertion
  • ✓ Test suite passes with 77% coverage (above 75% floor)
  • ✓ Lint clean (ruff check)
  • ✓ All six cross-link targets reference docs/privacy.md (SECURITY.md, README.md, CLAUDE.md, example.yaml, hello-world.yaml, fleet-deploy.yaml)

Checklist

Closes #186

Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com

@mvillmow mvillmow left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scope correct; central artifact (docs/privacy.md table) has one false row (model not logged) + off-by-1-3 line anchors. Fix table, then merge.

Comment thread docs/privacy.md
Comment thread docs/privacy.md
mvillmow and others added 4 commits June 28, 2026 10:01
- Add docs/privacy.md with data-flow table, author guidance, and operator controls
- Add docs/adr/003-pii-handling-stance.md recording decision and alternatives
- Update SECURITY.md, README.md, and CLAUDE.md with cross-links to privacy doc
- Add PII handling notice to all three example workflow YAML files
- No schema changes, no runtime behavior changes, no new env vars

Closes #186

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
The privacy/GDPR ADR (003-pii-handling-stance.md) was added in the
prior commit but its row was missing from the docs/adr/README.md index
table. Add it now so the index reflects the actual on-disk ADRs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
Two review findings on docs/privacy.md:

1. agents[].model was incorrectly listed as logged by Telemachy (it is
   not — only agents[].name appears in the DEBUG log at executor.py:195).
   Split the row: agents[].name (logged DEBUG :195) and agents[].model
   (sent to Agamemnon as programArgs per agamemnon_client.py:148-149,
   not logged).

2. All line anchors in the table and Operator controls section were off
   by 1–3 lines. Re-anchored to live code:
   - metadata.name INFO: :102 (was :103)
   - agents[].name DEBUG: :195 (was :194)
   - teams[].name INFO: :236 (was :235)
   - tasks[].subject INFO: :304-305 (was :307)
   - dependency-failure WARNING: :264-268 (was :264-272)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
Follow-up review per strict scope rules (core, security, safety, critical_bug
only). Implementation is complete documentation-only; no discovered defects,
security gaps, safety hazards, or critical bugs within scope.

Maintenance note for issue #92's NATS subscriber already embedded in
docs/privacy.md table preamble.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
Signed-off-by: mvillmow <4211002+mvillmow@users.noreply.github.com>
@mvillmow mvillmow enabled auto-merge (squash) June 28, 2026 18:44
GHSA-4xgf-cpjx-pc3j)

Signed-off-by: Micah Villmow <4211002+mvillmow@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[MINOR] §15: No GDPR/privacy considerations documented for workflow task descriptions

1 participant