Skip to content

DD-338 Phase C Wave 5 Python catalog flips — apple-messages + apple-reminders#27

Merged
piersdd merged 1 commit into
mainfrom
feat/dd-338-c-w5-py-catalog
May 23, 2026
Merged

DD-338 Phase C Wave 5 Python catalog flips — apple-messages + apple-reminders#27
piersdd merged 1 commit into
mainfrom
feat/dd-338-c-w5-py-catalog

Conversation

@piersdd
Copy link
Copy Markdown
Contributor

@piersdd piersdd commented May 23, 2026

Summary

Catalog-side flip for the DD-338 Phase C Wave 5 Python sub-cohort: 9 multi-record read tools across two Apple Python blade-mcps move granularity.audit_surface: minimal → structured.

apple-messages-blade-mcp (0.1.1 → 0.2.0)

  • messages_chats · messages_messages · messages_recent · messages_search · messages_contacts · messages_attachments

apple-reminders-blade-mcp (0.1.2 → 0.3.0)

  • reminders_items · reminders_search · reminders_due

Held at minimal

  • messages_unread and reminders_lists stay at audit_surface: minimal per OQ-5 PRIMARY lock (already-fully-returned personal data; no filter; trivial envelope adds zero contract value).

scope_filtering preserved

reminders_search keeps scope_filtering: client-side per Phase 0 divergence #1 — AppleScript enumerates all reminders then filters by title substring (genuine over-fetch).

Test plan

  • python -c "json.load(open(...))" — both files parse
  • jsonschema.validate against schemas/catalog-entry.schema.json — VALID
  • CI catalog build (downstream)

Related

🤖 Generated with Claude Code

…eminders

Flip granularity.audit_surface: minimal → structured on 9 multi-record read
tools across the apple-messages and apple-reminders Python blade-mcps:

apple-messages-blade-mcp (0.1.1 → 0.2.0):
- messages_chats, messages_messages, messages_recent, messages_search,
  messages_contacts, messages_attachments

apple-reminders-blade-mcp (0.1.2 → 0.3.0):
- reminders_items, reminders_search, reminders_due

reminders_search keeps scope_filtering: client-side per Phase 0 divergence #1
(AppleScript enumerates all reminders then filters by title substring — genuine
over-fetch). messages_unread and reminders_lists stay at audit_surface: minimal
per OQ-5 PRIMARY lock (already-fully-returned personal data; no filter; trivial
envelope adds zero contract value).

Paired with the substrate PRs landing the actual `_meta` envelope emission in
each blade.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@piersdd piersdd merged commit e8a8287 into main May 23, 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