diff --git a/WIP.drive-docs-sheets.md b/WIP.drive-docs-sheets.md index 41a3813..832663e 100644 --- a/WIP.drive-docs-sheets.md +++ b/WIP.drive-docs-sheets.md @@ -1,80 +1,77 @@ # WIP.drive-docs-sheets.md ## Status -Status: `proposed` +Status: `closed` Owner: `zap` Opened: `2026-03-12` +Decision: `2026-03-12` ## Purpose Evaluate whether the n8n Google Workspace action bus should expand beyond Gmail + Calendar into Drive / Docs / Sheets, or whether those surfaces should stay direct-tool-only for now. -## Decision goal -Produce a clear go / no-go per surface: -- Google Drive -- Google Docs -- Google Sheets +## Decision -## Why this is a separate WIP -Gmail + Calendar are now implemented, deployed, and smoke-tested. Drive / Docs / Sheets are a different decision because they can easily sprawl into broad CRUD coverage without the same immediate operator value. +**All three surfaces: NO - defer for now** -## Constraints carried forward -- Keep `openclaw-action` as the narrow authenticated ingress. -- Keep approval/history/state in n8n. -- Use the host-side `gog` bridge for execution when appropriate. -- Preserve the compact operator contract: - - `pending_compact` - - `history_compact` - - `operator.summary_line` - - `operator.execution_state` - - `operator.result_refs` -- Keep approval defaults explicit by family. -- Default to the smallest useful verb set. +### Rationale -## Questions to answer -### Drive -Possible useful verbs: -- `search_drive_files` -- `list_drive_files` -- `get_drive_file_metadata` -- `move_drive_file` -- `trash_drive_file` +The Gmail + Calendar integration succeeded because they map cleanly to the approval/queue pattern: -Questions: -- Is Drive mainly a discovery/search surface here, or do we need mutating file-management actions? -- Would direct `gog drive ...` usage be simpler than queueing through n8n for most cases? +- **Discrete actions:** One-shot operations (send draft, create event) +- **Clear audit value:** Each action is a standalone event worth recording +- **Low iteration cost:** No back-and-forth editing required +- **Operator clarity:** "Send this email" / "Create this event" are clear human decisions -### Docs -Possible useful verbs: -- `create_doc` -- `append_doc_text` -- `replace_doc_text` -- `get_doc_text` +Drive / Docs / Sheets don't fit this pattern as naturally: -Questions: -- Do we actually need approval-gated doc writes, or is docs work better done directly in a focused tool flow? -- Is append/replace enough, or would structured range operations be needed too soon? +#### Drive +- Read/search operations are discovery tools, not approval-worthy events +- File management (move, trash) is edge case and rare in automation flows +- Direct `gog drive ...` usage is simpler for most cases +- **Verdict:** Overkill to queue through n8n for standard file ops -### Sheets -Possible useful verbs: -- `read_sheet_range` -- `append_sheet_rows` -- `update_sheet_cells` -- `create_sheet_tab` +#### Docs +- Document editing is inherently iterative - you need to see, tweak, see again +- Approval gating for "create this doc" is fine, but then what? +- The real value is in the editing loop, not the initial create action +- Document work belongs in focused tool flows, not a one-shot queue +- **Verdict:** Wrong pattern for the action bus -Questions: -- Is Sheets the highest-leverage next action surface because it fits queueable structured writes? -- If yes, what is the minimum safe starter set? +#### Sheets +- Strongest candidate (structured writes map well to approval) +- But without a clear use case, this is premature optimization +- Append/update flows are useful *if* you have a structured data pipeline +- We don't have that yet, so building it now is YAGNI +- **Verdict:** Highest-priority "if needed later" item, but not today -## Initial recommendation -- **Drive:** probably `no` for broad action-bus expansion right now; maybe `yes` for a tiny read/search surface later. -- **Docs:** probably `no` for now unless a very specific document-drafting workflow appears. -- **Sheets:** strongest `maybe yes` candidate because append/update flows map well to approval + audit history. +## When to revisit -## Success criteria -- One-page recommendation covering Drive / Docs / Sheets. -- Clear go / no-go per surface. -- If any surface is greenlit, define only the minimum starter verbs. -- If any surface is greenlit, specify approval defaults (`low` read-only vs `high` mutating) before implementation begins. +Revisit each surface only when a concrete use case appears: -## If implemented later -Use a fresh implementation session and promote the chosen scope into `WIP.md` before coding. +- **Drive:** If you need approval-gated file moves/trash for an automation workflow +- **Docs:** If you have a "draft document → review → approve → publish" pattern that fits queueing +- **Sheets:** If you need structured data logging/metrics with an audit trail + +## Recommendation preserved + +Keep the action bus focused on the patterns that work: +- Notification routing (already implemented) +- Gmail actions (already implemented) +- Calendar actions (already implemented) +- Future surface additions should pass the same "discrete, approval-worthy, low-iteration" test + +## Evidence referenced +- `WIP.md` — Gmail + Calendar completion record +- `skills/n8n-webhook/references/openclaw-action.md` — current action contract +- `skills/n8n-webhook/assets/openclaw-action.workflow.json` — live workflow + +## Success criteria met +- ✅ One-page recommendation covering Drive / Docs / Sheets +- ✅ Clear go / no-go per surface +- ✅ No implementation scope added +- ✅ Preserved the compact operator contract for future use + +## Next actions +- Update `memory/2026-03-12.md` with this decision +- Close out the Google Workspace n8n work in `memory/tasks.json` +- Consider syncing `feat/n8n-action-bus-v2` to the LAN Gitea repo for backup/review diff --git a/memory/2026-03-12.md b/memory/2026-03-12.md index bcbbc01..854eaf2 100644 --- a/memory/2026-03-12.md +++ b/memory/2026-03-12.md @@ -249,3 +249,19 @@ - bridge helper proof: `gmail.drafts.create` sample result produced `draft_id = r-proof-draft-123` - bridge helper proof: `calendar.create` sample result produced `event_id = evt-proof-456`, `calendar = primary` - workflow asset string checks confirmed presence of `pending_compact`, `history_compact`, `summary_line`, `result_refs`, `default_mode`, and `approval.family` + +## Drive/Docs/Sheets evaluation (main session) +- Hit GPT-5.4 rate limit during attempted subagent work; continued evaluation in main session with GLM 5. +- Completed decision on expanding Google Workspace action bus beyond Gmail + Calendar into Drive / Docs / Sheets. +- **Decision: NO for all three surfaces — defer for now.** +- Rationale: + - Drive: discovery/search operations are tools, not approval-worthy events; file management is edge case; direct `gog drive ...` usage is simpler. + - Docs: editing is inherently iterative (see, tweak, see again); document work belongs in focused tool flows, not a one-shot queue. + - Sheets: strongest candidate (structured writes map well to approval), but without a concrete use case, this is premature optimization. +- Preserved principle: the action bus works best for discrete, approval-worthy, low-iteration operations (like send draft, create event). +- Updated `WIP.drive-docs-sheets.md` with closed status and revisit criteria per surface. +- Updated `memory/tasks.json` to close: + - `task-20260311-1908-calendar-access` → done + - `task-20260311-1908-email-access` → done + - `task-20260311-1914-google-workspace-access` → done +- Google Workspace + n8n integration WIP (WIP.md) is now complete with evidence recorded in memory. diff --git a/memory/tasks.json b/memory/tasks.json index 3727910..395ed65 100644 --- a/memory/tasks.json +++ b/memory/tasks.json @@ -59,13 +59,13 @@ "title": "Add calendar access/backend for proactive scheduling help", "owner": "zap", "priority": "medium", - "status": "in-progress", + "status": "done", "details": "Set up or connect a calendar backend so zap can provide stronger calendar-aware assistance, daily briefs, and schedule checks.", "notes": [ "Added from LAN-services gap review on 2026-03-11.", - "Biggest functional gap identified at the time.", - "Progress 2026-03-12: access/auth now exists and the remaining work is productionizing n8n-routed execution plus verification.", - "Fresh-session re-proof 2026-03-12 19:44Z: real n8n approval-routed Gmail draft and Calendar event flows succeeded again end-to-end with verify+cleanup (approval ids approval-mmnvn4t2-w2rjlwz2 / approval-mmnvn6i8-e9eq8gdf)." + "Completed 2026-03-12: live n8n action bus now supports approval-gated Calendar actions (create, list, update, delete) via host-side gog bridge.", + "Live workflow id: Jwi54VWMdlLqYnRo.", + "Evidence: WIP.md + memory/2026-03-12.md + WIP.drive-docs-sheets.md (decision to defer Drive/Docs/Sheets)." ] }, { @@ -74,12 +74,13 @@ "title": "Add email/inbox access for triage and briefing", "owner": "zap", "priority": "medium", - "status": "in-progress", + "status": "done", "details": "Set up access to a mail/inbox workflow so zap can help with triage, summaries, and urgent-message detection.", "notes": [ "Added from LAN-services gap review on 2026-03-11.", - "Progress 2026-03-12: access/auth now exists and the remaining work is productionizing n8n-routed execution plus verification.", - "Fresh-session re-proof 2026-03-12 19:44Z: real n8n approval-routed Gmail draft and Calendar event flows succeeded again end-to-end with verify+cleanup (approval ids approval-mmnvn4t2-w2rjlwz2 / approval-mmnvn6i8-e9eq8gdf)." + "Completed 2026-03-12: live n8n action bus now supports approval-gated Gmail actions (draft create, list, delete, send) via host-side gog bridge.", + "Live workflow id: Jwi54VWMdlLqYnRo.", + "Evidence: WIP.md + memory/2026-03-12.md + WIP.drive-docs-sheets.md (decision to defer Drive/Docs/Sheets)." ] }, { @@ -125,17 +126,14 @@ "title": "Add Google Workspace access (Calendar/Drive/Docs/Gmail as appropriate)", "owner": "zap", "priority": "medium", - "status": "in-progress", + "status": "done", "details": "Connect Google Workspace services where useful so zap can work with calendar, docs, drive, and/or gmail more directly.", "notes": [ "Added from tool wishlist on 2026-03-11.", - "Some overlap with calendar/email tasks; this is the broader suite-level follow-up.", - "Progress 2026-03-12: gog auth completed for Gmail/Calendar/Drive/Contacts/Docs/Sheets.", - "Progress 2026-03-12: live n8n action bus now supports approval-gated Google flows via host-side gog bridge.", - "Next proof step: run real n8n-routed Gmail draft and Calendar event tests (not just dry-run).", - "Proof step completed 2026-03-12: both real n8n-routed tests passed and cleanup succeeded (see WIP.md + memory/2026-03-12.md for IDs).", - "State file: WIP.md tracks the current full plan and checkpoints.", - "Fresh-session re-proof 2026-03-12 19:44Z: real n8n approval-routed Gmail draft and Calendar event flows succeeded again end-to-end with verify+cleanup (approval ids approval-mmnvn4t2-w2rjlwz2 / approval-mmnvn6i8-e9eq8gdf)." + "Completed 2026-03-12: Gmail and Calendar are live via n8n action bus with approval gating and audit history.", + "Drive/Docs/Sheets evaluated and deferred in WIP.drive-docs-sheets.md — revisit only when concrete use cases appear.", + "Live workflow id: Jwi54VWMdlLqYnRo.", + "Evidence: WIP.md + memory/2026-03-12.md + WIP.drive-docs-sheets.md." ] }, { @@ -328,7 +326,7 @@ "owner": "zap", "priority": "low", "status": "open", - "details": "Create a small place to record important decisions and why they were made so the same choices do not get re-litigated repeatedly.", + "details": "Create a small place to record important decisions and why they were made so that same choices do not get re-litigated repeatedly.", "notes": [ "Added from second-wave improvements list on 2026-03-11." ]