Skip to content

Add terraform-policy-controls plugin with terraform-runtask skill#69

Open
srlynch1 wants to merge 2 commits intohashicorp:mainfrom
srlynch1:run-task
Open

Add terraform-policy-controls plugin with terraform-runtask skill#69
srlynch1 wants to merge 2 commits intohashicorp:mainfrom
srlynch1:run-task

Conversation

@srlynch1
Copy link
Copy Markdown
Contributor

@srlynch1 srlynch1 commented Apr 21, 2026

Summary

  • Adds a new terraform-policy-controls plugin under terraform/policy-controls/ with a terraform-runtask skill that fetches HCP Terraform/TFE run task stages, results, and outcomes via the REST API — filling a gap not covered by the Terraform MCP server.
  • Registers the plugin in the top-level .claude-plugin/marketplace.json so it's discoverable alongside the other HashiCorp plugins.

The skill ships a shell script (scripts/get-run-task-results.sh) that authenticates with TFE_TOKEN, sideloads task results via include=task_results, then fetches each outcome's HTML body for rich reporting. The SKILL.md guides Claude to present results in a four-tier structure (summary → stages → task results → outcomes) and synthesize actionable findings from the HTML bodies.

Test plan

  • jq . parses terraform/policy-controls/.claude-plugin/plugin.json and .claude-plugin/marketplace.json without error
  • ./terraform/policy-controls/skills/terraform-runtask/scripts/get-run-task-results.sh run-<id> returns valid JSON with task_stages, summary, and per-outcome body_html content against a real HCP Terraform run
  • Script exits cleanly on: missing TFE_TOKEN, invalid run ID format, 401/404 responses
  • URL input form (.../runs/run-abc123) correctly extracts run ID and auto-detects TFE_HOSTNAME
  • Plugin installs from the marketplace and the terraform-runtask skill activates on relevant prompts ("check the run tasks", "get task results for run-xxx")

Retrieves HCP Terraform run task stages, results, and outcomes via the
TFE REST API to fill gaps not covered by the MCP terraform tools.
Add the plugin manifest and marketplace entry so the new
terraform-runtask skill is installable alongside the other
HashiCorp plugins.
@srlynch1 srlynch1 requested a review from a team as a code owner April 21, 2026 01:13
@github-actions
Copy link
Copy Markdown

Tessl Skill Review Results

Skill Status Review Score Change
terraform/policy-controls/skills/terraform-runtask ✅ PASSED 92%

Detailed Review

terraform/policy-controls/skills/terraform-runtask — 92% (PASSED)
  Description: 100%
    \(.key): \(.value.score)/3 - \(.value.reasoning)
    \(.key): \(.value.score)/3 - \(.value.reasoning)
    \(.key): \(.value.score)/3 - \(.value.reasoning)
    \(.key): \(.value.score)/3 - \(.value.reasoning)

    Assessment: This is a strong skill description that clearly defines its purpose, provides explicit trigger guidance, and uses domain-specific terminology that makes it highly distinguishable. It follows the recommended pattern of stating what it does followed by when to use it, with concrete example phrases that users would naturally say.

  Content: 83%
    \(.key): \(.value.score)/3 - \(.value.reasoning)
    \(.key): \(.value.score)/3 - \(.value.reasoning)
    \(.key): \(.value.score)/3 - \(.value.reasoning)
    \(.key): \(.value.score)/3 - \(.value.reasoning)

    Assessment: This is a well-crafted skill with excellent actionability and workflow clarity — it provides concrete commands, exact output formats, and thorough edge case handling. The main weaknesses are moderate verbosity (explanations of why certain design choices matter, which Claude doesn't need) and a monolithic structure that could benefit from splitting the field reference and presentation templates into separate files.

Suggestions:

  • Trim explanatory rationale paragraphs (e.g., 'This distinction matters because...', 'This synthesis is what makes the skill output more valuable...') — Claude can infer the reasoning from the instructions themselves.
  • Move the 'Reading the JSON output' field reference section to a separate REFERENCE.md file and link to it, reducing the main skill's token footprint.

Checks: frontmatter validity, required fields, body structure, examples, line count.
Review score is informational — not used for pass/fail gating.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant