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

Merged
piersdd merged 1 commit from feat/dd-338-c-w5-py-catalog into main 2026-05-23 08:20:50 +00:00
piersdd commented 2026-05-23 08:02:23 +00:00 (Migrated from github.com)

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)

🤖 Generated with Claude Code

## 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 - [x] `python -c "json.load(open(...))"` — both files parse - [x] `jsonschema.validate` against `schemas/catalog-entry.schema.json` — VALID - [ ] CI catalog build (downstream) ## Related - Spec: `2026-05-23-dd-338-c-w5-apple-python.md` - Substrate PR: Groupthink-dev/apple-messages-blade-mcp#1 - Substrate PR: Groupthink-dev/apple-reminders-blade-mcp#1 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Stallari/plugins!27
No description provided.