CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

gcp-org-escalation

GCP organization-level privilege escalation — cross-project pivoting, org policy bypass, service account impersonation chains, Terraform state secrets, and GKE cluster compromise. Escalate from single-project access to org-wide control.

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/cloud/gcp-org-escalation/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

An unusually actionable, executable runbook: nearly every line is a real command, sequencing is reinforced by a decision gate and error-handling guidance, and there is no concept-explanation padding. The two structural weaknesses are inlined content that belongs in reference files (progressive disclosure) and duplicated Quick Reference / repeated loop scaffolding that inflates token cost.

Suggestions

Move per-service pivoting details (section 6), detection signatures, and the tools table into a references/ file (e.g., references/pivoting.md, references/detection.md) and keep SKILL.md as a lean overview with one-level-deep, clearly signaled pointers.

Delete or shrink the Quick Reference block — its five commands reappear verbatim in sections 1–4, so it duplicates content rather than adding value; alternatively keep only commands not shown later.

Define the per-project enumeration loop once (e.g., a short shell function or a single "for each project" convention stated in section 1) and reference it from sections 4–6 instead of repeating the full `for proj in $(jq ...)` scaffolding 8+ times.

Add explicit verify steps after destructive persistence actions (e.g., re-run `gcloud organizations get-iam-policy` after `add-iam-policy-binding` to confirm the binding applied).

DimensionReasoningScore

Conciseness

The body is almost entirely executable commands with terse comments and assumes Claude's competence — no padding explaining what GCP, IAM, or jq are. It is not a 5 because the "Quick Reference" block duplicates commands that reappear verbatim in sections 1–3, and the `for proj in $(jq -r '.[].projectId' all_projects.json)` enumeration scaffolding is repeated verbatim 8+ times across sections, which could be defined once and reused.

4 / 5

Actionability

Copy-paste-ready gcloud/gsutil/kubectl/curl commands with real flags, working jq filters, computed variables (e.g., `ORG_ID=$(gcloud organizations list --format="value(ID)" | head -1)`), and cross-section state files (all_projects.json produced in section 1, consumed in sections 4–6). This matches the fully-executable anchor covering the common cases; the 4 anchor would require missing key details, and the impersonation chains, org-policy bypasses, and secret-extraction one-liners are all concrete and complete.

5 / 5

Workflow Clarity

Sections 1–7 form an explicit escalation sequence (enumerate → impersonate → bypass org policy → pillage Terraform state → pivot via GKE/cross-service → persist), the "Decision Gate" adds conditional branching on achieved access state, and "Error Handling & Edge Cases" supplies recovery paths (e.g., "Org-level permissions denied: start with project-level SA, enumerate impersonation chains to find a path upward"). It is not a 5 because some checkpoints are implicit — destructive persistence actions (add-iam-policy-binding, roles create, keys create) have no verify step confirming the change took effect.

4 / 5

Progressive Disclosure

The body has well-organized section headers, but there are no bundle files and no references to any — everything (per-service pivoting details, detection-signature tables, tools list, GKE escape payloads) is inlined in a ~370-line monolithic SKILL.md. Content that clearly belongs in separate reference files (e.g., a cross-service pivoting reference or detection-signatures reference) is inline, matching the "should be separate is inline" anchor; it is not a 2 because internal structure and navigation via headers are good, and the sub-50-line simple-skill exception does not apply at this length.

3 / 5

Total

16

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, well-differentiated description that names concrete capabilities in third person with an explicit escalation outcome. Its main gap is the absence of an explicit "Use when..." trigger clause within the description field itself, which caps completeness and leaves trigger guidance to the separate metadata keywords.

Suggestions

Append a "Use when..." clause to the description itself (e.g., "Use when auditing or escalating GCP access from a compromised project, or when the user mentions GCP privesc, cross-project access, or org policy bypass") so the when-to-use guidance travels with the description field.

Add one or two common synonyms users naturally say ("Google Cloud", "IAM", "privesc") to broaden trigger coverage from good to comprehensive.

Consider mentioning the starting condition ("from a single compromised GCP project") earlier in the description so the applicable scenario is explicit, not just implied by the final sentence.

DimensionReasoningScore

Specificity

Lists five concrete technique-level capabilities ("cross-project pivoting, org policy bypass, service account impersonation chains, Terraform state secrets, and GKE cluster compromise") plus the end state ("org-wide control"). This matches the comprehensive-coverage anchor; the 4 anchor would require identifiable coverage gaps, and none exist within the domain the description claims.

5 / 5

Completeness

The "what" is explicit and concrete, but the description field contains no "Use when..." clause or equivalent trigger guidance — the when-to-use keywords live in a separate metadata field, not the description. Per the judging guideline, a missing "Use when" clause caps completeness at 3; the scenario framing ("Escalate from single-project access") only weakly implies when.

3 / 5

Trigger Term Quality

Contains strong natural terms a user would say: "GCP", "privilege escalation", "cross-project", "service account impersonation", "Terraform state", "GKE". A few natural variations are missing ("Google Cloud" spelled out, "IAM", "privesc"), so it fits the good-coverage-with-minor-gaps anchor rather than the comprehensive-synonyms anchor.

4 / 5

Distinctiveness Conflict Risk

"GCP organization-level privilege escalation" combined with distinctive technique triggers (Terraform state, GKE cluster, service account impersonation, org policy bypass) carves a clear niche with minimal overlap risk against generic cloud-security or other-provider skills. It is not the 4 anchor because there is no meaningful conflict with closely related skills.

5 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/cloud/gcp-org-escalation/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.