Skip to content
Report library
Purpose / Documents

Recipe Log Deal Update Skill Security Audit

What the author says it does (original text)

Append a deal status update to a Google Sheets sales tracking spreadsheet.

Independent security check

Do not install or run it yet

Files checked
1
Risks found
3
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.No risks found
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 1
Medium risk

The entire A:F sales pipeline is read into agent context before one row is appended

Source references: 2
What we found

Step 2 reads Pipeline!A1:F without a row limit, although appending the fixed row in step 3 does not itself require all existing records. That range may contain commercially sensitive customer, amount, stage, and owner information.

Why this matters

Execution may expose the complete existing sales dataset to the agent and spreadsheet-access tooling, unnecessarily widening data access. The supplied evidence does not show transmission to any additional external destination.

The read step requests every existing row from A1 through the end of columns A:F, with no row limit. A sales sheet may contain customers, amounts, stages, and owners, which the command would return to the execution environment. Reading could help inspect the schema, but the fixed append step does not show a need for all historical records. Users can restrict access to the header or a few trailing rows and ask why a full read is required.

SKILL.md:26In the instructionsOpen original file
1. Find the tracking sheet: `gws drive files list --params '{"q": "name = '\''Sales Pipeline'\'' and mimeType = '\''application/vnd.google-apps.spreadsheet'\''"}'`2. Read current data: `gws sheets +read --spreadsheet SHEET_ID --range "Pipeline!A1:F"`3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "Proposal Sent", "$50,000", "Q2", "jdoe"]'`
Show 1 other places
SKILL.md:27In the instructionsOpen original file
2. Read current data: `gws sheets +read --spreadsheet SHEET_ID --range "Pipeline!A1:F"`3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "Proposal Sent", "$50,000", "Q2", "jdoe"]'`
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.No risks found
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.No risks found
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.No risks found
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.Risks found: 2
High risk

The example command can write a fixed, fabricated deal into a live sales sheet

Source references: 2
What we found

The append step is an executable command with fixed values for the date, customer, stage, amount, quarter, and owner. It does not require replacing those values with user-supplied deal data or obtaining confirmation before writing.

Why this matters

Literal execution would add an Acme Corp $50,000 record to the real pipeline, potentially corrupting forecasts, ownership attribution, and later sales decisions.

This is an executable append command in the live steps, not an explicitly labeled example. It writes fixed values such as Acme Corp and $50,000 to the selected sheet. If run literally, it could add a false record to a real sales pipeline. A user can ask the author to require deal fields as inputs and confirm the target sheet and complete row before writing.

SKILL.md:27In the instructionsOpen original file
2. Read current data: `gws sheets +read --spreadsheet SHEET_ID --range "Pipeline!A1:F"`3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "Proposal Sent", "$50,000", "Q2", "jdoe"]'`
Show 1 other places
SKILL.md:21In the instructionsOpen original file
Append a deal status update to a Google Sheets sales tracking spreadsheet.
Medium risk

Name-only lookup can direct the deal update to the wrong spreadsheet

Source references: 2
What we found

The lookup filters only by file name and MIME type. It does not constrain owner, shared drive, folder, or a unique file ID, and gives no selection rule for multiple results, while the later write uses a SHEET_ID.

Why this matters

If several accessible spreadsheets are named Sales Pipeline, the agent could read and alter sales records belonging to the wrong team, customer, or environment.

The search filters only by exact name and spreadsheet MIME type. The visible instructions do not constrain owner, folder, or shared drive, and provide no rule for multiple matches. The later append uses a SHEET_ID obtained from that search, so a same-named file could be selected and modified incorrectly. Users can require a pre-approved unique file ID or confirmation of the file owner, location, and link before writing.

SKILL.md:25In the instructionsOpen original file
1. Find the tracking sheet: `gws drive files list --params '{"q": "name = '\''Sales Pipeline'\'' and mimeType = '\''application/vnd.google-apps.spreadsheet'\''"}'`2. Read current data: `gws sheets +read --spreadsheet SHEET_ID --range "Pipeline!A1:F"`3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "Proposal Sent", "$50,000", "Q2", "jdoe"]'`
Show 1 other places
SKILL.md:27In the instructionsOpen original file
2. Read current data: `gws sheets +read --spreadsheet SHEET_ID --range "Pipeline!A1:F"`3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "Proposal Sent", "$50,000", "Q2", "jdoe"]'`

Inside this skill

1 instruction sections

The Skill searches Google Drive for a spreadsheet with the fixed name “Sales Pipeline,” reads all existing rows in columns A through F of the Pipeline sheet, and then appends a row.

View source
SKILL.md:25In the instructionsOpen original file
1. Find the tracking sheet: `gws drive files list --params '{"q": "name = '\''Sales Pipeline'\'' and mimeType = '\''application/vnd.google-apps.spreadsheet'\''"}'`2. Read current data: `gws sheets +read --spreadsheet SHEET_ID --range "Pipeline!A1:F"`3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "Proposal Sent", "$50,000", "Q2", "jdoe"]'`

The Skill depends on the gws tool and companion skills that can access Google Sheets and Google Drive; its effective reach depends on the Google-account permissions granted to those components.

View source
SKILL.md:9In the instructionsOpen original file
    domain: "sales"    requires:      bins:        - gws      skills:        - gws-sheets        - gws-drive---
SKILL.md:19In the instructionsOpen original file
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-sheets`, `gws-drive`
Start here · InstructionsSKILL.md
recipe-log-deal-update
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source.
Files and check records1 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions
Lines read
29
File checksum (to compare versions)
892cd669f6842e341a756c2b5925884228f25cc955a1385604e175d4b13a4574