Not in the top 1,000 by GitHub stars
StackGuardian/stackguardian-mcp
Deploy Terraform, OpenTofu and Ansible with AI agents. MCP + ready-to-use skills to go from code to cloud in minutes.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/sg-create-policy/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-create-stack/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-create-workflow/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-manage-roles/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-manage-secrets/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-update-workflow/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-upgrade-workflow/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-writing-stackguardian-policy-terraform/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-writing-stackguardian-workflow-group-terraform/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
skills/sg-writing-stackguardian-workflow-terraform/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
f737bd77fe0c → 66070a05d05c
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → f737bd77fe0c
No earlier version was observed for comparison.
Verified commit 66070a05d05c95c06fe936ac0ad2c9bb68bf7623
git clone --filter=blob:none --no-checkout https://github.com/StackGuardian/stackguardian-mcp.git .hotskills/stackguardian-stackguardian-mcp && git -C .hotskills/stackguardian-stackguardian-mcp checkout --detach 66070a05d05c95c06fe936ac0ad2c9bb68bf7623
# Copy each selected skill directory from .hotskills/stackguardian-stackguardian-mcp into .agents/skills/<skill-name>/Heat
1.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- sg-create-policy
skills/sg-create-policy - sg-create-stack
skills/sg-create-stack - sg-create-workflow
skills/sg-create-workflow - sg-manage-roles
skills/sg-manage-roles - sg-manage-secrets
skills/sg-manage-secrets - sg-update-workflow
skills/sg-update-workflow - sg-upgrade-workflow
skills/sg-upgrade-workflow - sg-writing-stackguardian-policy-terraform
skills/sg-writing-stackguardian-policy-terraform - sg-writing-stackguardian-workflow-group-terraform
skills/sg-writing-stackguardian-workflow-group-terraform - sg-writing-stackguardian-workflow-terraform
skills/sg-writing-stackguardian-workflow-terraform
How it works
sg-create-policy
When your agent uses it
Guided flow for creating (and adjusting) a StackGuardian policy with the create_policy / update_policy tools — walks the user through scope (which workflows), the rule source (inline Tirith document, marketplace policy template, or a git repo of Rego/Tirith), the verdict mapping (block / warn / require approval), and approvers, then creates the policy. Use when the user wants a guardrail, a policy, a compliance check on Terraform plans, a cost limit, or an approval gate on infrastructure changes.
What it loads into context
Frontmatter
113 tokensAlways available to the agent
SKILL.md
1,272 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step A — What should the policy check?
- Step B — What happens when a rule trips?
- Step C — Where does it apply?
- Step D — Approvals (only if any rule uses APPROVAL_REQUIRED)
- Step E — Name, describe, create
- Adjusting a policy later
Files
SKILL.mdcore5,138 bytes
Read SKILL.md
# Create Policy — Guided Flow
Create a StackGuardian policy with the `create_policy` tool.
Follow the steps IN ORDER. Never ask the user to type ids from memory —
fetch options with the listed tools and present choices. In user-facing
messages use plain language; never surface parameter names like
`enforcedOn`, `onFail`, `policyInputData`.
A policy is a named set of RULES. Each rule checks one thing (a Tirith
document, a Rego repo, or a marketplace template) and says what happens
when it trips. The policy as a whole is attached to a SCOPE.
## Step A — What should the policy check?
View the complete source on GitHubsg-create-stack
When your agent uses it
Guided flow for creating a StackGuardian STACK (a bundle of workflows deployed together in a defined order) from a stack template via the StackGuardian MCP create_stack tool — walks the user through picking a stack template (IAC_GROUP) and revision, workflow group, stack name/description/tags/context tags, a cloud connector and environment variables (stack-wide or per workflow), then the template inputs of EACH workflow in the stack (always presenting each workflow template's defaults and the stack template's pre-wired values for review), then creates the stack. Stacks are template-only (no git mode). Use when the user wants to create/deploy a stack, deploy a stack template / template group from the StackGuardian library, or stand up a multi-workflow environment (e.g. VPC + security group + EC2 + Ansible) in one go. For a single workflow use the sg-create-workflow skill.
What it loads into context
Frontmatter
192 tokensAlways available to the agent
SKILL.md
2,645 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step A — Pick the stack template and revision
- Step B — Workflow group and naming
- Step C — Cloud connection and environment variables
- Step D — Template parameters, per workflow
- Step E — Confirm and create
- Step F — After creation
- Error handling (teaching errors)
Files
SKILL.mdcore11,010 bytes
Read SKILL.md
# Create Stack — Guided Flow
Create a StackGuardian stack with the `create_stack` tool on the
StackGuardian MCP server. A stack is a set of workflows created together from
a **stack template** (library templateType `IAC_GROUP`), plus the template's
**Actions** (apply / plan / destroy…) that fix the order they run in. Follow
the steps IN ORDER. Never ask the user to type IDs from memory — fetch
options with the listed tools and present choices. In user-facing messages
use plain language; never surface internal parameter names like `wfGrp`,
`templateGroupId`, `workflows[].workflow` or `iacInputs`.
There is **no git mode** for stacks: the stack template already names the
workflow templates it is made of. If the user wants to deploy their own repo
they want a workflow, not a stack — hand over to the `sg-create-workflow` skill.View the complete source on GitHubsg-create-workflow
When your agent uses it
Guided flow for creating a StackGuardian workflow via the StackGuardian MCP create_workflow tool — first asks whether to deploy from a marketplace template or a git repository, then walks the user through template selection (or repo, branch, directory and public/private + VCS connector), workflow group, cloud connector, environment variables, custom step pipelines (CUSTOM/WfStepsConfig), template inputs (always presenting the template's defaults for review before creating), cron schedules, post-run notifications/chaining/webhooks, runner caching and job sizing, then creates the workflow. Covers TERRAFORM, OPENTOFU and CUSTOM workflow types and both template and git sources. Use when the user wants to create/deploy a workflow, deploy a template from the StackGuardian library, deploy IaC from their own git repo, or set up an Ansible/Helm/Kubernetes/CloudFormation step pipeline.
What it loads into context
Frontmatter
185 tokensAlways available to the agent
SKILL.md
4,954 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step A — Pick the IaC source mode
- Step B — Workflow group and naming
- Step C — Cloud connection and environment variables
- Step C2 — Custom steps (CUSTOM workflows only)
- Step D — Template parameters
- Step E — Options and create
- Error handling (teaching errors)
- Success
Files
SKILL.mdcore20,114 bytesSKILL.mdcore20,114 bytesSKILL.mdcore20,114 bytesSKILL.mdcore20,114 bytes
Read SKILL.md
# Create Workflow — Guided Flow
Create a StackGuardian IaC workflow with the `create_workflow` tool on the
StackGuardian MCP server. Follow the steps IN ORDER. Never ask the user to
type IDs or names from memory — always fetch options with the listed tools
and present choices. In user-facing messages use plain language; never
surface internal parameter names like `wfGrp`, `source`,
`deployment.connectorId`, or `iacInputs`.
Parameters are grouped to match the tool's own shape: `source` (one object,
template XOR git — never both), `deployment`,
`terraformConfig`, `approvals`, `runnerConstraints` are each a single nested
object, not flat siblings. Build each group's object as you collect its
fields in the steps below, then pass the assembled objects in the finalView the complete source on GitHubsg-manage-roles
When your agent uses it
Guided flow for creating, changing and deleting StackGuardian custom roles with the create_role / update_role / delete_role tools — turning "let team X read/run workflows in group Y" into the right permission names and scopes. Use when the user wants a new role, wants to widen or narrow what a role can do, asks why a role grants nothing, or wants to retire a role.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
2,223 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The rules that make a role silently wrong
- Step A — Translate the ask into permissions
- Step B — Create
- Step C — Change
- Step D — Delete
- Why does my role grant nothing?
Files
SKILL.mdcore8,883 bytes
Read SKILL.md
# Manage Roles — Guided Flow
A StackGuardian **role** is a named bundle of **permissions**. Each permission
is one platform capability (`GetWorkflow`, `CreateWorkflowRun`, ...) plus a
**scope**: for every placeholder the permission carries, a list of full-match
regex **patterns** over resource IDS. Five **predefined roles** (ADMIN, DEV,
SEC, OPS, READ_ONLY) are code and cannot be changed; everything else is a
**custom role**. Roles are allow-only and additive — a user with several
roles gets the union. Only ADMIN can manage roles. Follow the steps IN ORDER.
Never surface parameter names like `resourceName` or `<wfGrp>` to the user;
say "the role's name", "workflow group".
**What these tools can't do — say so up front, before building anything:**
they can't list users, look up a person, assign a role to anyone, or show aView the complete source on GitHubsg-manage-secrets
When your agent uses it
[Credential-related source omitted]
What it loads into context
Frontmatter
102 tokensAlways available to the agent
SKILL.md
1,005 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Handling the value
- Step A — Create
- Step B — Rotate
- Step C — Delete
- Wiring a new secret into a workflow
Files
SKILL.mdcore4,170 bytes
Read SKILL.md
# Manage Secrets — Guided Flow
A StackGuardian secret is an org-wide, KMS-encrypted vault entry with a
name and a value. It has no description, tags or type, and its value can
never be read back. Workflows use it by reference. Follow the steps IN
ORDER. Never surface parameter names like `resourceName` or `secret.value`
to the user; speak of "the secret's name" and "the value".
## Handling the value
- Ask the user to paste the value once, then pass it to the tool
immediately. Do not repeat it back, summarise it, or store it anywhere
else in the conversation.
- Pass it verbatim: whitespace and newlines are preserved. An SSH privateView the complete source on GitHubsg-update-workflow
When your agent uses it
Guided flow for changing an existing StackGuardian workflow's settings via the StackGuardian MCP update_workflow tool — locate the workflow, then change any of description/tags, cloud connector, environment variables, Terraform options, custom step pipelines (CUSTOM workflows), approvals, runner placement, cron schedules, post-run notifications/chaining/webhooks, runner cache, job sizing, activation, or template inputs. Only the fields you change are touched. Use when the user wants to edit/modify/reconfigure an existing workflow's settings (NOT to upgrade its template revision — that's the sg-upgrade-workflow skill).
What it loads into context
Frontmatter
127 tokensAlways available to the agent
SKILL.md
3,657 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step A — Locate the workflow
- Step B — Decide what to change
- Step C — Confirm and update
- Error handling (teaching errors)
- Success
Files
SKILL.mdcore14,864 bytesSKILL.mdcore14,864 bytesSKILL.mdcore14,864 bytesSKILL.mdcore14,864 bytes
Read SKILL.md
# Update Workflow — Guided Flow
Change an existing workflow's settings with the StackGuardian MCP
`update_workflow` tool. This is for editing a workflow that already exists —
to CREATE one use the `sg-create-workflow` skill; to UPGRADE its template
revision use the `sg-upgrade-workflow` skill.
Follow the steps IN ORDER. Never ask the user to type ids or names from memory —
fetch options with the listed tools and present choices. In user-facing messages
use plain language; never surface internal parameter names like `wfGrp`,
`terraformConfig`, or `DeploymentPlatformConfig`.
**Golden rule:** pass ONLY the fields the user wants to change. Everything you
omit is preserved automatically — the tool reads the current workflow and merges
your change in. You never need to restate unchanged settings.View the complete source on GitHubsg-upgrade-workflow
When your agent uses it
Guided flow for upgrading (or downgrading) an existing StackGuardian workflow to a different template revision via the StackGuardian MCP update_workflow tool — pick the target revision, choose an upgrade mode (keep your settings vs reset to the template), preview the exact diff with a dry-run, review the four inputs, then apply. Use when the user wants to upgrade/move a workflow to a newer (or older) template version. For plain settings edits use the sg-update-workflow skill.
What it loads into context
Frontmatter
109 tokensAlways available to the agent
SKILL.md
2,076 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step A — Locate the workflow
- Step B — Pick the target template revision
- Step C — Choose the upgrade mode
- Step D — Preview the change (dry-run)
- Step E — Review the four inputs (MANDATORY — never skip)
- Step F — Apply
- Error handling
- Success
Files
SKILL.mdcore8,808 bytesSKILL.mdcore8,808 bytes
Read SKILL.md
# Upgrade Workflow — Guided Flow
Move an existing workflow to a different template revision with the
StackGuardian MCP `update_workflow` tool (using its `upgradeMode` +
`dryRun`). This is a SEPARATE flow from a normal settings edit: an upgrade
changes the source template revision and lets the platform reconcile the
rest. For plain settings changes (Terraform version, approvals, connector,
env vars) use the `sg-update-workflow` skill instead.
Follow the steps IN ORDER. Never ask the user to type ids from memory — fetch
options with the listed tools and present choices.
## Step A — Locate the workflow
View the complete source on GitHubsg-writing-stackguardian-policy-terraform
When your agent uses it
Use when writing, reviewing or debugging Terraform/OpenTofu HCL for StackGuardian policies (stackguardian_policy, policies_config, enforced_on, Tirith JSON, OPA/Rego, marketplace policy templates, cost limits, approval gates, config-time workflow rules), attaching a policy to a workflow, group or connector — or when a policy applies but never blocks, blocks every plan, never asks for approval, or its scope silently disappears. Also covers resolving scopes and dependencies via the StackGuardian MCP server.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
3,683 tokensWhen the skill is activated
Reference documents
9,327 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Discover scope and dependencies first (StackGuardian MCP)
- Core template (runtime rule on the Terraform plan)
- Rules that bite
- Quick reference
- Common mistakes
- References
Files
SKILL.mdcore14,271 bytesSKILL.mdcore14,271 bytesSKILL.mdcore14,271 bytesexamples/README.mddoc1,678 bytesexamples/approvals.tfasset2,533 bytesexamples/config_rules.tfasset4,518 bytesexamples/network_guardrails.tfasset3,291 bytesexamples/no_public_s3.tfasset2,854 bytesexamples/opa_and_marketplace.tfasset2,781 bytesexamples/required_tags.tfasset2,589 bytesexamples/versions.tfasset587 bytesreferences/schema.mddoc2,776 bytesreferences/sources-and-lifecycle.mddoc15,049 bytesreferences/tirith.mddoc16,103 bytes
Read SKILL.md
# Writing StackGuardian policy Terraform
## Overview
A `stackguardian_policy` is a list of rules (`policies_config`) plus a scope (`enforced_on`).
**Attachment lives only on the policy** — workflows, groups and templates have no policy
attribute. Rules are evaluated at two different moments:
| `meta.required_provider` | Evaluated | Verdict effect |
|---|---|---|
| `stackguardian/terraform_plan`, `stackguardian/infracost`, OPA (`OPA_REGO`) | in the plan step of TERRAFORM/OPENTOFU runs (also CloudFormation/Pulumi steps), before `apply`; not on drift or `plan-without-policy` runs, not in Ansible/Kubernetes steps | FAIL errors the run; APPROVAL_REQUIRED pauses before the next step |
| `stackguardian/json` (config rule) | when a workflow in scope is **created/updated** (also via Terraform) and when a run is **built** | FAIL = `403 Workflow policy (<policy>:<rule>) failed …` on create/update (live); at run build the run is refused or gated at step 0 |
The provider validates nothing and the Tirith engine fails *open* on many mistakes, so a wrongView the complete source on GitHubsg-writing-stackguardian-workflow-group-terraform
When your agent uses it
Use when writing, reviewing or debugging Terraform/OpenTofu HCL for StackGuardian workflow groups (stackguardian_workflow_group) — nested groups, group ids vs display names, referencing a group from workflows, policies, chaining or runtime references, importing existing groups — or when a group create fails with "Workflow Group ID not unique", a nested group fails to create, a group has a random suffix, or destroy fails with "Workflow Group not empty".
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
2,429 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Core pattern
- Discover existing groups first (StackGuardian MCP)
- Ids
- How other resources reference a group
- Lifecycle
- Common mistakes
Files
SKILL.mdcore9,924 bytesSKILL.mdcore9,924 bytesSKILL.mdcore9,924 bytesexamples/groups.tfasset1,904 bytesexamples/versions.tfasset587 bytes
Read SKILL.md
# Writing StackGuardian workflow group Terraform
## Overview
A workflow group is a folder for workflows and stacks and the usual unit of access control.
Groups nest with `/`. Provider `StackGuardian/stackguardian` **1.12.3**; setup (source address,
`api_uri`) is in **sg-writing-stackguardian-workflow-terraform**. Facts marked **(live)** were
reproduced against a real org.
## Core pattern
```terraform
resource "stackguardian_workflow_group" "platform" {
id = "platform" # set it: the route id everything else usesView the complete source on GitHubsg-writing-stackguardian-workflow-terraform
When your agent uses it
Use when writing, reviewing or debugging Terraform/OpenTofu HCL for StackGuardian workflows (stackguardian_workflow_git, stackguardian_workflow_from_template, workflow templates/revisions, CUSTOM Ansible/Helm/kubectl/CloudFormation steps) — vcs_config, terraform_config, connectors, secrets in env vars, runners and stackguardian_runner_group, schedules, VCS triggers, notifications, chaining, workflow outputs — or when a workflow applies but every run fails, or when migrating old `stackguardian_workflow` + `data = jsonencode(...)` code. Also covers looking up the org's connectors, secrets, runner groups and templates via the StackGuardian MCP server.
What it loads into context
Frontmatter
149 tokensAlways available to the agent
SKILL.md
4,036 tokensWhen the skill is activated
Reference documents
23,755 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Setup
- Which resource
- Discover dependencies first (StackGuardian MCP)
- Core template
- Rules that bite
- Quick reference
- Common mistakes
- References (read when needed)
Files
SKILL.mdcore15,840 bytesSKILL.mdcore15,840 bytesexamples/README.mddoc1,984 bytesexamples/automation_opentofu.tfasset3,185 bytesexamples/custom_steps.tfasset4,504 bytesexamples/git_terraform.tfasset3,257 bytesexamples/git_vcs_triggers.tfasset1,925 bytesexamples/outputs_and_references.tfasset2,385 bytesexamples/own_template.tfasset4,593 bytesexamples/versions.tfasset587 bytesreferences/automation-and-outputs.mddoc10,413 bytesreferences/discovery.mddoc7,223 bytesreferences/execution.mddoc18,397 bytesreferences/lifecycle.mddoc11,962 bytesreferences/schema.mddoc24,364 bytesreferences/sources-and-templates.mddoc16,777 bytes
Read SKILL.md
# Writing StackGuardian workflow Terraform
## Overview
Provider `StackGuardian/stackguardian` **1.12.3** (Terraform Plugin Framework). Every nested
structure is an **attribute** (`x = {...}` / `x = [{...}]`), never a block. Facts were verified on
1.12.3; on a newer provider re-check rules 11 and 12 first (they are provider bugs). The provider
validates almost nothing, so mistakes show up as: a 400 at apply, *"Provider produced
inconsistent result after apply"* (the resource is tainted when this happens on create), or a
workflow that is created and then
fails every run. Everything below was checked against provider, api, core, run-controller
and step-template source, and the traps marked **(live)** were reproduced against a real org.
Groups: **sg-writing-stackguardian-workflow-group-terraform**. Guardrails/approvals on plans:View the complete source on GitHubSkills included
- sg-create-policy
- sg-create-stack
- sg-create-workflow
- sg-manage-roles
- sg-manage-secrets
- sg-update-workflow
- sg-upgrade-workflow
- sg-writing-stackguardian-policy-terraform
- sg-writing-stackguardian-workflow-group-terraform
- sg-writing-stackguardian-workflow-terraform
Repository facts
- License
- Apache-2.0
- Created
- Sep 8, 2026
- Last pushed
- Nov 2, 2026
- Forks
- 1
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 12 notes
skills/sg-create-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-create-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-create-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-update-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-update-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-update-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-upgrade-workflow/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-writing-stackguardian-policy-terraform/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-writing-stackguardian-policy-terraform/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-writing-stackguardian-workflow-group-terraform/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-writing-stackguardian-workflow-group-terraform/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sg-writing-stackguardian-workflow-terraform/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 3 dangerous shell commandsin 2 files: sg-writing-stackguardian-workflow-terraform/references/lifecycle.md:96 sg-writing-stackguardian-workflow-terraform/references/execution.md:93
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 9 references to secretsin 8 files: sg-writing-stackguardian-workflow-terraform/references/execution.md:182 sg-manage-secrets/SKILL.md:30 sg-writing-stackguardian-policy-terraform/examples/versions.tf:14 and 5 more
- No requests to vote in Hot
Show all 93 signals by file
skills/sg-create-stack/SKILL.md
- Network accessline 66
refuses an unknown group unless this flag is set. - **Browse in the dev portal**: share the workflow-groups page — `https://app.stackguardian.io/orchestrator/orgs/<org>?tab=workflowGroups`. - Network accessline 67
- **Browse in the dev portal**: share the workflow-groups page — `https://app.stackguardian.io/orchestrator/orgs/<org>?tab=workflowGroups`. This step is mandatory — never call `create_stack` without a - Network accessline 68
`https://app.stackguardian.io/orchestrator/orgs/<org>?tab=workflowGroups`.
skills/sg-create-workflow/SKILL.md
- Network accessline 99
user explicitly asks for a brand-new group. - **Browse in the dev portal**: share the workflow-groups page — `https://app.stackguardian.io/orchestrator/orgs/<org>?tab=workflowGroups`. - Network accessline 100
- **Browse in the dev portal**: share the workflow-groups page — `https://app.stackguardian.io/orchestrator/orgs/<org>?tab=workflowGroups`. This step is mandatory — never call `create_workflow` without a - Network accessline 101
`https://app.stackguardian.io/orchestrator/orgs/<org>?tab=workflowGroups`.
skills/sg-manage-secrets/SKILL.md
- Access to secretsline 30
[Credential-related source omitted]
skills/sg-writing-stackguardian-policy-terraform/examples/opa_and_marketplace.tf
skills/sg-writing-stackguardian-policy-terraform/examples/versions.tf
- Network accessline 14
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Network accessline 15
# STACKGUARDIAN_ORG_NAME org slug # STACKGUARDIAN_API_URI https://api.app.stackguardian.io (EU) or https://api.us.stackguardian.io (US) — there is no default provider "stackguardian" {} - Network accessline 16
# STACKGUARDIAN_API_URI https://api.app.stackguardian.io (EU) or https://api.us.stackguardian.io (US) — there is no default
skills/sg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md
- Network accessline 35
source_config_kind = "OPA_REGO" source_config_dest_kind = "GITHUB_COM" # never INLINE config = { repo = "https://github.com/acme/opa", ref = "main", working_dir = "terraform", is_private = true, auth = "/integrations/git - Network accessline 36
source_config_dest_kind = "GITHUB_COM" # never INLINE config = { repo = "https://github.com/acme/opa", ref = "main", working_dir = "terraform", is_private = true, auth = "/integrations/github_com" } additional_config = jsonen - Network accessline 37
config = { repo = "https://github.com/acme/opa", ref = "main", working_dir = "terraform", is_private = true, auth = "/integrations/github_com" } - Network accessline 88
[Credential-related source omitted] - Network accessline 89
[Credential-related source omitted] - Network accessline 90
[Credential-related source omitted]
skills/sg-writing-stackguardian-policy-terraform/references/tirith.md
- Network accessline 191
pip install "git+https://github.com/StackGuardian/tirith.git@1.0.5"
skills/sg-writing-stackguardian-workflow-group-terraform/examples/groups.tf
- Network accessline 31
custom_source = { source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/dns", is_private = false } - Network accessline 32
source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/dns", is_private = false } } - Network accessline 33
config = { repo = "https://github.com/acme/dns", is_private = false }
skills/sg-writing-stackguardian-workflow-group-terraform/examples/versions.tf
- Network accessline 14
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Network accessline 15
# STACKGUARDIAN_ORG_NAME org slug # STACKGUARDIAN_API_URI https://api.app.stackguardian.io (EU) or https://api.us.stackguardian.io (US) — there is no default provider "stackguardian" {} - Network accessline 16
# STACKGUARDIAN_API_URI https://api.app.stackguardian.io (EU) or https://api.us.stackguardian.io (US) — there is no default
skills/sg-writing-stackguardian-workflow-terraform/SKILL.md
- Access to secretsline 33
[Credential-related source omitted] - Network accessline 36
`api_uri` has **no default** (live): set `https://api.app.stackguardian.io` (EU) or - Network accessline 37
`https://api.us.stackguardian.io` (US). A key from the other region returns 401 (per the provider - Network accessline 88
source_config_dest_kind = "GITHUB_COM" # must equal the auth connector's kind config = { repo = "https://github.com/acme/payments-infra" - Network accessline 89
config = { repo = "https://github.com/acme/payments-infra" ref = "main" - Network accessline 90
repo = "https://github.com/acme/payments-infra" - Network accessline 196
| `terraform_version = "1.9.0"` with `wf_type = "TERRAFORM"` | 400 `… above the highest managed version (1.5.7)` on create and on update | | Repo has `backend "s3"` and `managed_terraform_state = true` | Every plan fails `Found more than 1 - Network accessline 197
| Repo has `backend "s3"` and `managed_terraform_state = true` | Every plan fails `Found more than 1 terraform state backend blocks` | | `pre_plan_hooks = ["tflint"]` | No tflint/jq/cloud CLIs in the image (busybox `sh`), and hooks start ou - Network accessline 198
| `pre_plan_hooks = ["tflint"]` | No tflint/jq/cloud CLIs in the image (busybox `sh`), and hooks start outside the repo: `cd "$MOUNTED_IAC_SOURCE_CODE_DIR" && …`, install tools via curl or use a step |
skills/sg-writing-stackguardian-workflow-terraform/examples/automation_opentofu.tf
- Network accessline 18
source_config_dest_kind = "GIT_OTHER" config = { repo = "https://github.com/acme/web-scripts" - Network accessline 19
config = { repo = "https://github.com/acme/web-scripts" is_private = false # public repo: no auth needed - Network accessline 20
repo = "https://github.com/acme/web-scripts" - Network accessline 52
source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/static-site" - Network accessline 53
config = { repo = "https://github.com/acme/static-site" working_dir = "infra" - Network accessline 54
repo = "https://github.com/acme/static-site" - Network accessline 85
completed = [{ webhook_name = "deploy-done" webhook_url = "https://hooks.acme.com/stackguardian" - Network accessline 86
[Credential-related source omitted] - Network accessline 87
webhook_url = "https://hooks.acme.com/stackguardian"
skills/sg-writing-stackguardian-workflow-terraform/examples/custom_steps.tf
- Network accessline 18
source_config_dest_kind = "GIT_OTHER" # self-hosted GitLab without a connector config = { repo = "https://gitlab.example.com/ops/playbooks" - Network accessline 19
config = { repo = "https://gitlab.example.com/ops/playbooks" ref = "main" - Network accessline 20
repo = "https://gitlab.example.com/ops/playbooks" - Network accessline 62
source_config_dest_kind = "GIT_OTHER" config = { repo = "https://github.com/acme/k8s-charts" - Network accessline 63
config = { repo = "https://github.com/acme/k8s-charts" is_private = false - Network accessline 64
repo = "https://github.com/acme/k8s-charts" - Network accessline 111
source_config_dest_kind = "GIT_OTHER" config = { repo = "https://github.com/acme/cfn-stacks" - Network accessline 112
config = { repo = "https://github.com/acme/cfn-stacks" working_dir = "logs-bucket" - Network accessline 113
repo = "https://github.com/acme/cfn-stacks"
skills/sg-writing-stackguardian-workflow-terraform/examples/git_terraform.tf
- Network accessline 38
source_config_dest_kind = "GITHUB_COM" # = the connector's kind config = { repo = "https://github.com/acme/payments-infra" - Network accessline 39
config = { repo = "https://github.com/acme/payments-infra" ref = "main" - Network accessline 40
repo = "https://github.com/acme/payments-infra"
skills/sg-writing-stackguardian-workflow-terraform/examples/git_vcs_triggers.tf
- Network accessline 22
source_config_dest_kind = "GITLAB_COM" config = { repo = "https://gitlab.com/acme/network" # https form: webhook events are matched on this URL - Network accessline 23
config = { repo = "https://gitlab.com/acme/network" # https form: webhook events are matched on this URL ref = "main" - Network accessline 24
repo = "https://gitlab.com/acme/network" # https form: webhook events are matched on this URL
skills/sg-writing-stackguardian-workflow-terraform/examples/outputs_and_references.tf
- Network accessline 19
custom_source = { source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/network", is_private = false } - Network accessline 20
source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/network", is_private = false } } - Network accessline 21
config = { repo = "https://github.com/acme/network", is_private = false } - Network accessline 40
custom_source = { source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/app-infra", is_private = false } - Network accessline 41
source_config_dest_kind = "GITHUB_COM" config = { repo = "https://github.com/acme/app-infra", is_private = false } } - Network accessline 42
config = { repo = "https://github.com/acme/app-infra", is_private = false }
skills/sg-writing-stackguardian-workflow-terraform/examples/own_template.tf
skills/sg-writing-stackguardian-workflow-terraform/examples/versions.tf
- Network accessline 14
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Network accessline 15
# STACKGUARDIAN_ORG_NAME org slug # STACKGUARDIAN_API_URI https://api.app.stackguardian.io (EU) or https://api.us.stackguardian.io (US) — there is no default provider "stackguardian" {} - Network accessline 16
# STACKGUARDIAN_API_URI https://api.app.stackguardian.io (EU) or https://api.us.stackguardian.io (US) — there is no default
skills/sg-writing-stackguardian-workflow-terraform/references/automation-and-outputs.md
skills/sg-writing-stackguardian-workflow-terraform/references/execution.md
- Network accessline 82
- `*_hooks`: lists of shell command strings. Each runs as `/bin/sh -c "<item>"` (busybox; **no bash, jq, tflint or cloud CLIs**; python, git and curl exist). Non-zero exit fails the run. - Network accessline 83
jq, tflint or cloud CLIs**; python, git and curl exist). Non-zero exit fails the run. - Network accessline 91
- Extra tools in a hook: download them (linux/amd64 image, egress needed) to `/tmp`, e.g. a sketch — pin a release you have checked: `"cd \"$MOUNTED_IAC_SOURCE_CODE_DIR\" && curl -sSLo /tmp/tflint.zip https://github.com/terraform-linter - Network accessline 92
pin a release you have checked: `"cd \"$MOUNTED_IAC_SOURCE_CODE_DIR\" && curl -sSLo /tmp/tflint.zip https://github.com/terraform-linters/tflint/releases/download/<version>/tflint_linux_amd64.zip && python -m zipfile -e /tmp/tflint.zip /tm - Dangerous shell operationline 93
`"cd \"$MOUNTED_IAC_SOURCE_CODE_DIR\" && curl -sSLo /tmp/tflint.zip https://github.com/terraform-linters/tflint/releases/download/<version>/tflint_linux_amd64.zip && python -m zipfile -e /tmp/tflint.zip /tmp && chmod +x /tmp/tflint && /tmp/ - Network accessline 93
`"cd \"$MOUNTED_IAC_SOURCE_CODE_DIR\" && curl -sSLo /tmp/tflint.zip https://github.com/terraform-linters/tflint/releases/download/<version>/tflint_linux_amd64.zip && python -m zipfile -e /tmp/tflint.zip /tmp && chmod +x /tmp/tflint && /tmp/ - Access to secretsline 182
[Credential-related source omitted] - Access to secretsline 205
[Credential-related source omitted]
skills/sg-writing-stackguardian-workflow-terraform/references/lifecycle.md
skills/sg-writing-stackguardian-workflow-terraform/references/schema.md
- Access to secretsline 16
[Credential-related source omitted]
skills/sg-writing-stackguardian-workflow-terraform/references/sources-and-templates.md
- Network accessline 32
- Other kind/auth mismatches (e.g. `/secrets/...` on `GITLAB_COM`) are accepted at create and fail at clone: `Unsupported 'auth' for private repo of '<KIND>' sourceConfigDestKind`. - `repo`: `https://…` or SSH (`git@host:org/repo.git`, `s - Network accessline 33
at clone: `Unsupported 'auth' for private repo of '<KIND>' sourceConfigDestKind`. - `repo`: `https://…` or SSH (`git@host:org/repo.git`, `ssh://…`). `http://` fails at run. For VCS triggers use the plain https URL (no trailing slash): the - Network accessline 34
- `repo`: `https://…` or SSH (`git@host:org/repo.git`, `ssh://…`). `http://` fails at run. For VCS - Network accessline 100
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 42 facts
- Network access in prose of the SKILL.mdsg-create-stack/SKILL.md:66Low confidence
- Network access in prose of the SKILL.mdsg-create-stack/SKILL.md:67Low confidence
- Network access in prose of the SKILL.mdsg-create-stack/SKILL.md:68Low confidence
- Network access in prose of the SKILL.mdsg-create-workflow/SKILL.md:99Low confidence
- Network access in prose of the SKILL.mdsg-create-workflow/SKILL.md:100Low confidence
- Network access in prose of the SKILL.mdsg-create-workflow/SKILL.md:101Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valuesg-manage-secrets/SKILL.md:30Low confidence
- Network access in code of documentationsg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md:35Low confidence
- Network access in code of documentationsg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md:36Low confidence
- Network access in code of documentationsg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md:37Low confidence
- Network access in prose of documentationsg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md:88Low confidence
- Network access in prose of documentationsg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md:89Low confidence
- Network access in prose of documentationsg-writing-stackguardian-policy-terraform/references/sources-and-lifecycle.md:90Low confidence
- Network access in code of documentationsg-writing-stackguardian-policy-terraform/references/tirith.md:191Low confidence
- Access to secrets in code of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:33High confidence
- Network access in prose of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:36Low confidence
- Network access in prose of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:37Low confidence
- Network access in code of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:88High confidence
- Network access in code of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:89High confidence
- Network access in code of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:90High confidence
- Network access in prose of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:196Low confidence
- Network access in prose of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:197Low confidence
- Network access in prose of the SKILL.mdsg-writing-stackguardian-workflow-terraform/SKILL.md:198Low confidence
- Network access in code of documentationsg-writing-stackguardian-workflow-terraform/references/automation-and-outputs.md:128Low confidence
- Network access in code of documentationsg-writing-stackguardian-workflow-terraform/references/automation-and-outputs.md:129Low confidence
- Network access in code of documentationsg-writing-stackguardian-workflow-terraform/references/automation-and-outputs.md:130Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:82Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:83Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:91Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:92Low confidence
- Dangerous shell operation in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:93Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:93Low confidence
- Access to secrets in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:182Low confidence
- Access to secrets in prose of documentationsg-writing-stackguardian-workflow-terraform/references/execution.md:205Low confidence
- Dangerous shell operation in prose of documentationsg-writing-stackguardian-workflow-terraform/references/lifecycle.md:96Low confidence
- Dangerous shell operation in prose of documentationsg-writing-stackguardian-workflow-terraform/references/lifecycle.md:158Low confidence
- Access to secrets in prose of documentationsg-writing-stackguardian-workflow-terraform/references/schema.md:16Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/sources-and-templates.md:32Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/sources-and-templates.md:33Low confidence
- Network access in prose of documentationsg-writing-stackguardian-workflow-terraform/references/sources-and-templates.md:34Low confidence
- Network access in code of documentationsg-writing-stackguardian-workflow-terraform/references/sources-and-templates.md:100Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuesg-writing-stackguardian-workflow-terraform/references/sources-and-templates.md:100Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/sg-create-policy/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/sg-create-policy/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/sg-create-policy/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/sg-create-policy/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/sg-create-policy/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.