Spreadsheet Automation, AI Governance & MCP Reliability
MCP Structural Step Coordinate Shift & Readback Audit
Audit 1-based row/column coordinate shifts R_shifted = R_0 + Ins_Above - Del_Above inside execute_steps (<= 10 steps, <= 20 structural ops, <= 100 cells), enforce post-mutation read_range verification, and reject unsupported file-create/export/macro requests.
Account for 1-based structural row shifts and never promise unsupported export or macro execution!
In the Arte Sheets ChatGPT plugin 0.1.0 (currently In review / Not published—never promise public installation, approval, OpenAI revenue share, or ChatGPT credit transfer) as well as the in-app Pro Assistant, multi-part workbook plans run through execute_steps bounded at <= 10 steps, <= 20 1-based row/column structural operations, and <= 100 edited cells per call (with MCP writes requiring active Pro or paid period, editor/owner role, base revision, and a fresh 16–80 character operation_id without consuming Arte AI credits, whereas in-app Assistant prompts consume metered monthly Pro AI credits). Crucially, structural row/column insertions and deletions shift later 1-based coordinates! Inserting Ins_Above rows at or above initial 1-based summary row R_0 and deleting Del_Above rows strictly above R_0 moves that summary row to R_shifted = R_0 + Ins_Above - Del_Above—requiring callers to update subsequent step targets and run read_range (<= 200 cells, raw values/formulas without recalculating) to verify the intended layout! Equally important, neither surface supports creating standalone workbook files, exporting .xlsx/PDF downloads, running VBA macros, or executing arbitrary code.
Verify in a shared release-readiness audit sheet—Planned_Steps = 4 (B2 <= 10), Initial_1Based_Summary_Row R_0 = 12 (B3), Rows_Inserted_At_Or_Above = 3 (B4), Rows_Deleted_Above = 1 (B5 -> Total Structural Ops = 3 + 1 = 4 <= 20 in E2), Edited_Cells = 24 (B6 <= 100), and Unsupported_Create_Export_Macro_Flag = 0 (B7): Shifted 1-Based Target Row is 12 + 3 - 1 = 14 (E3), Net Row Offset is +2 (E4), and E5 returns "Valid Batch: Shift Target Row & Read Back Range"!
| execute_steps Structural Audit Metric (4 Steps, Row 12, +3 Ins, -1 Del, 24 Cells) | Formula | Verified Output |
|---|---|---|
| Total 1-Based Structural Ops | Rows_Inserted + Rows_Deleted (Cap <= 20) | 4 Ops (>20 Requires Split) |
| Shifted 1-Based Target Row | R_0 + Rows_Inserted_Above - Rows_Deleted_Above | Row 14 (Row 12 if 0 Structural) |
| Net Coordinate Drift Offset | Rows_Inserted_Above - Rows_Deleted_Above | +2 Rows (Update Later Steps!) |
| MCP / Assistant Batch Gate | Reject Unsupported -> Cap Check -> Readback | Valid Batch: Shift Target Row & Read Back Range |
Structural Coordinate Shift & Capability Boundary Gate Formula
Validate Steps >= 1, 1-based Initial_Row > Rows_Deleted_Above, non-negative structural/cell counts, and binary/integer Unsupported_Flag >= 0!
=LET(st_n, B2, rw_0, B3, in_a, B4, dl_a, B5, cl_n, B6, un_f, B7, IF(OR(st_n < 1, rw_0 < 1, in_a < 0, dl_a < 0, rw_0 <= dl_a, cl_n < 0, un_f < 0), "Invalid Step Audit Input", IF(un_f > 0, "Reject: Unsupported Create/Export/Macro/Code", IF(OR(st_n > 10, in_a + dl_a > 20, cl_n > 100), "Split Batch: Exceeds 10-Step / 20-Struct / 100-Cell Cap", IF(in_a - dl_a <> 0, "Valid Batch: Shift Target Row & Read Back Range", "Valid Batch: Coordinates Unchanged")))))Unsupported Export/Macro Rejection & 20-Op Structural Cap Checks
Set Unsupported_Flag B7 = 1 (e.g., user asks ChatGPT to export a .xlsx file or run a VBA macro): E5 immediately returns "Reject: Unsupported Create/Export/Macro/Code"! Reset B7 = 0 and set B4 = 25 row inserts: E5 flags "Split Batch: Exceeds 10-Step / 20-Struct / 100-Cell Cap"!
=IF(OR(B2 < 1, B3 < 1, B4 < 0, B5 < 0, B3 <= B5, B6 < 0, B7 < 0), "Invalid Step Audit Input", B3 + B4 - B5)Try the example
Use the original values or change them to test your understanding.