Skip to content

feat(scanner): reject plugin aws gcloud and az deploy writes - #1177

Draft
seonghobae wants to merge 14 commits into
feat/claude-plugin-path-depth-1099from
feat/claude-plugin-cloud-deploy-1099
Draft

feat(scanner): reject plugin aws gcloud and az deploy writes#1177
seonghobae wants to merge 14 commits into
feat/claude-plugin-path-depth-1099from
feat/claude-plugin-cloud-deploy-1099

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Successor of #1176 / issue #1099. Does not Close those. Path depth stays #1176. Hosted vercel/fly stays #1174. Pass is not Noema admission.

Unique delta

Fail closed when a plugin hook or manifest runs remaining cloud-provider deploy writes that #1174/#1176 left as inventory:

  • aws cloudformation deploy and aws deploy create-deployment as claude-plugin-aws-deploy-command (CWE-269)
  • gcloud run|app|functions deploy as claude-plugin-gcloud-deploy-command (CWE-250)
  • az webapp deploy as claude-plugin-az-deploy-command (CWE-269)
  • aws s3 ls, gcloud config list, and az account show stay inventory
  • unquoted # comments and echo/printf/print lookalikes are not this class, including structural manifest command values; deploy-like description prose is not a command
  • README gcloud wording is not a hook command
  • vercel deploy stays claude-plugin-vercel-deploy-command
  • snippets are command labels, not tokens or secrets

#1174 remains owner of vercel/fly hosted deploy.

Evidence

  • RED ee554d2 then GREEN af6aa91

  • tests/test_claude_plugin_cloud_deploy.py plus sibling hosted-deploy lock

  • predecessor cloud plugin coverage suite 438 passed on Python 3.13

  • no hosted workflow is created on this stacked custom base; keep Draft pending stacked integration evidence

  • Normal two-parent descendant fdcda62e0948117231c130f62f47cb61ca1a3a8c integrates feat(scanner): fail closed on plugin terraform apply and helm install #1173 command-context RED/GREEN without force-push; compare to current parent 6f6e47c46e73... is 5 ahead / 0 behind and preserves this PR's unique delta.

  • Candidate source AST passes; the final stacked detector preserves 3/3 negative command-context and 2/2 later-real-command probes. Custom-base hosted workflow evidence remains absent, so Draft stays required.

Relates to #1099. Relates to #1176.

Current quoted-command context repair

This descendant inherits #1173 RED d7384e53d44a426356a73e24b2b9cc3fe153de27 and final canonical repair 3a5b14771cc7abb6553fa1ec9bcd8b62acc947ac without copying a leaf workaround. Exact head: 7802ad62082696dba275a1734c4fb81841f416db; current parent: 854425316ceeee270dec78fb0c6723050af36531; Git compare is 0 behind and preserves this PR's unique detector/test delta. The top #1183 source AST and extracted helper probes pass quoted/reporting negatives while preserving direct and command-substitution positives. This custom-base PR stays Draft until its own hosted integration and independent review are terminal.

Current assignment-value context repair — 2026-09-08

This normal two-parent descendant inherits canonical #1173 RED 90ae232e852b3d01463d978f9bccd9157c341fe7 and GREEN 1e6a3eb43a5bc2d146656af13e7fa6cad2a77315 without a leaf workaround. Exact head: 9e35b6eb1225210b75d2a63a907de44243df0a7d; current parent: bcf82acf97fb9bc7b541659fc61740323fc53a45; Git compare is 0 behind and preserves this PR's unique detector/test delta. Assignment-value negatives and environment-prefix/direct/substitution positives are present in the exact tree. This custom-base PR remains Draft until its own hosted integration and independent current-head review are terminal. Earlier head strings in this body are historical evidence only.

Current heredoc-safe restack — 2026-09-08

Canonical #1173 exact head 184b4b4f55906284ac1d8059e46cec8f0d9cfc9a fixes closed literal here-document payload false positives with RED 6f6be77d... → GREEN 12faf2f.... This branch was integrated non-destructively on parent e29cc87bcb33b084c17d563539356f7979136223; exact head is 9e0e4ad0ef263ae8a265482051df871a74bf871c. GitHub compare reports behind_by=0, ahead_by=14; the PR's unique detector delta remains in the tree. Exact-head hosted integration and independent review are not terminal, so this PR remains Draft. Earlier head strings are historical evidence only.

Lock executable aws cloudformation deploy, aws deploy
create-deployment, gcloud run/app/functions deploy, and az webapp
deploy. Keep reads, comments, echo lookalikes, and vercel on their
existing classes. Relates to #1099.
Fail closed on executable aws cloudformation deploy and aws deploy
create-deployment as claude-plugin-aws-deploy-command, gcloud
run/app/functions deploy as claude-plugin-gcloud-deploy-command,
and az webapp deploy as claude-plugin-az-deploy-command. Reads,
comments, and echo lookalikes stay inventory. Relates to #1099.
@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

seonghobae added a commit that referenced this pull request Sep 8, 2026
Summary:
- Snapshot 2026-09-08 04:13 UTC records Draft #1177 `af6aa91` stacked on #1176.
- Executable aws/gcloud/az deploy writes fail closed.
- Remaining leftover: aws s3 sync/cp and az containerapp up.

Rationale:
- #999 is the single writer of the product-technical gap baseline.
- Do not Close #1099, #1176, or #1174.

Tests:
- documentation-only; detector evidence lives on #1177 (438 passed)
Merge current #1176 without force and repair AWS/gcloud/Azure manifest scanning so only structural command values reach shell-context detection. Description and reporting-only values stay negative; later real commands stay positive.
@seonghobae seonghobae added enhancement New feature or request priority: high type: feature New or expanded product capability labels Sep 8, 2026 — with ChatGPT Codex Connector
seonghobae added a commit that referenced this pull request Sep 8, 2026
Exact head 8ca0628 stacked on #1177 fails closed on aws s3 sync/cp
and az containerapp up. Relates to #1099.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: high type: feature New or expanded product capability

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant