Openspec Verify Change
Fission-AI/OpenSpec
Verify implementation matches OpenSpec change artifacts. An agent skill from Fission-AI/OpenSpec.
MANDATORY skill that activates whenever the OpenSpec tasks phase begins.
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install elastic/terraform-provider-elasticstack openspec-plus-tasks --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/elastic/terraform-provider-elasticstack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/openspec-plus-tasks .claude/skills/openspec-plus-tasks && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "openspec-plus-tasks" agent skill from https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasks into .claude/skills/openspec-plus-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openspec-plus-tasks", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasksType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install elastic/terraform-provider-elasticstack openspec-plus-tasks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elastic/terraform-provider-elasticstack.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/openspec-plus-tasks .agents/skills/openspec-plus-tasks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openspec-plus-tasks" agent skill from https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasks into .agents/skills/openspec-plus-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openspec-plus-tasks", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install elastic/terraform-provider-elasticstack openspec-plus-tasks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elastic/terraform-provider-elasticstack.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/openspec-plus-tasks .cursor/skills/openspec-plus-tasks && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openspec-plus-tasks" agent skill from https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasks into .cursor/skills/openspec-plus-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openspec-plus-tasks", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/elastic/terraform-provider-elasticstack.git --path .agents/skills/openspec-plus-tasks--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install elastic/terraform-provider-elasticstack openspec-plus-tasks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elastic/terraform-provider-elasticstack.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/openspec-plus-tasks .gemini/skills/openspec-plus-tasks && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openspec-plus-tasks" agent skill from https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasks into .gemini/skills/openspec-plus-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openspec-plus-tasks", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install elastic/terraform-provider-elasticstack openspec-plus-tasksInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/elastic/terraform-provider-elasticstack.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/openspec-plus-tasks .github/skills/openspec-plus-tasks && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openspec-plus-tasks" agent skill from https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasks into .github/skills/openspec-plus-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openspec-plus-tasks", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install elastic/terraform-provider-elasticstack openspec-plus-tasks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elastic/terraform-provider-elasticstack.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/openspec-plus-tasks .opencode/skills/openspec-plus-tasks && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openspec-plus-tasks" agent skill from https://github.com/elastic/terraform-provider-elasticstack/tree/main/.agents/skills/openspec-plus-tasks into .opencode/skills/openspec-plus-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openspec-plus-tasks", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openspec-plus-tasksMANDATORY skill that activates whenever the OpenSpec tasks phase begins.
Openspec Plus Tasks is an agent skill from elastic/terraform-provider-elasticstack, published by the product's own GitHub organization. MANDATORY skill that activates whenever the OpenSpec tasks phase begins. Triggers: /opsx-new or /opsx-continue runs; openspec-new-change, openspec-continue-change, or openspec-explore is active; openspec instructions tasks is invoked; or the user wants to create, update, review, refine, or discuss an OpenSpec tasks.md file.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Terraform provider for Elastic Stack. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b6bbc21. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openspec Plus Tasks loads about 3.4k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 1,533 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from elastic/terraform-provider-elasticstack at commit b6bbc21, republished under its Apache-2.0 licence (© elastic). 1,533 words, ~3,407 tokens.
.claude/skills/openspec-plus-tasks/SKILL.md (or your agent's skills folder).Enrich OpenSpec's tasks.md generation with vertical-slice discipline and subagent review. Format is owned by the schema template (resolved in Phase 0) — this skill provides thinking discipline before the file is written and a subagent review after.
Two anchors that shape every task group:
This skill is RIGID. NEVER write tasks.md before completing Phase 1 vertical-slice discovery. NEVER skip the subagent review. Reading source code, writing implementation code, running TDD, including exact commit messages, or restructuring the template format is a skill violation.
Red flags — STOP, you are about to violate this skill:
openspec/changes/ — for naming convention onlyIf the design is missing detail you need to slice the work, the design is incomplete. Surface the gap to the user — do not paper over with code reading.
Three phases. NEVER skip or merge.
Phase 0: Schema & Template Resolution
Phase 1: Vertical Slicing & Discovery
Phase 2: Write & Artifact Compliance ReviewDisplay workflow phases via task tool at start; update as each phase completes.
## N. heading is a vertical slice: a feature or capability that, when all its tasks are done, produces one end-to-end testable outcome expressible in a single sentence. The slice heading implies the outcome. A slice spans whatever layers are needed (DB, API, UI, CLI). Slices are dependency-ordered — each slice's prerequisites are satisfied by earlier slices.- [ ] item is a capability the implementer delivers in one work session. A task operates at the spec requirement level, not the scenario level. It names the capability and summarizes the behavioral facets the implementer must deliver. The spec's Gherkin scenarios are the implementer's test cases during TDD — the task points to the capability; the spec holds the individual test cases. "Done" is unambiguous from the task description alone.src/kinesis/handler.rs") but never as step-by-step choreography.AGENTS.md, CLAUDE.md, equivalents at Phase 1 start; conflicts → surface to user, never silently override).Run FIRST, before any slicing:
openspec instructions tasks --change <name> --jsontemplate (structural authority; format you MUST follow), instruction (guidance on what content each section needs), rules (project constraints to honor). Parse template structure — if it includes metadata fields (priority, effort, labels, categories) beyond the default ## N. Name + - [ ] N.M desc format, Phase 1 must collect that information during slicing; discovery questions MUST satisfy template requirements.openspec/.plus/config.yaml (missing/unreadable/unrecognized → defaults): settings.questionMode (sequential default; batch groups step 5's clarifying questions into one round — see Phase 1 below).Pre-existing answers: If recent conversation already identifies vertical slices, names testable outcomes, or establishes dependency ordering — via prior exploration, a detailed initial request, or any other source — incorporate those and SKIP redundant clarification. Ask ONE question at a time only for unresolved slicing decisions (batch mode: present them together instead — see step 5). NEVER re-ask what's already established.
Read in this order:
AGENTS.md, CLAUDE.md, GEMINI.md, equivalents at project root, .claude/, .opencode/, docs/. These capture conventions for commit style, branching, file organization, naming. Tasks MUST follow these.openspec/changes/ for naming convention only.NEVER read source code. If grounding is missing, the design is incomplete — surface that to the user.
From spec requirements and design components, identify slices that deliver testable outcomes. Each slice spans whatever layers (DB, API, UI, CLI, background jobs) are needed.
For each candidate slice ask: "When all tasks in this group are done, what can the user observe or verify?" If "nothing observable", it's not a slice — re-slice or merge.
For each slice, write the testable outcome in one plain sentence. Example: "User can log in with email/password and see the dashboard".
Cannot name in one sentence? The slice is wrong — re-slice or surface a design gap.
Some slices depend on others (e.g., "user signup" before "user login"). Order so prerequisites are satisfied by earlier slices.
If slicing is ambiguous, use question tool, ONE question at a time:
In sequential mode (default), NEVER batch. NEVER assume. Always include your recommended slice boundary with rationale on every question — never a bare question without a recommendation. If the user's answer raises a follow-on slicing decision, resolve that branch before moving on (batch: next batch round).
In batch mode (settings.questionMode: batch), present all unresolved slicing questions together in one round instead — same real answers and recommendations.
Review rules from Phase 0. If any rule constrains task breakdown, verify the slices honor those constraints. If a rule is violated, surface the conflict to the user before proceeding (batch: fold multiple conflicts into one round).
Mark Phase 1 complete. Update task status. Proceed to Phase 2.
Use the template and outputPath from Phase 0. Use the structure exactly. Do not restructure, add sections, or change numbering convention.
Before writing — 2 mandatory steps:
Step 1 — Map Phase 1 slices to template: Phase 1 slices and task descriptions are in context — use them directly. Do NOT extract, summarize, or rephrase. Map each slice and its tasks to the corresponding ## N. group. Nothing left unmapped.
Step 2 — Density check: Tasks must be at least as dense as Phase 1.
Write from the mapping. Do NOT discard any Phase 1 slice or task.
CRITICAL — Missing or underrepresented information becomes missing or wrong work in implementation. Every Phase 1 slice must appear with full weight intact.
Following the template from Phase 0, write:
## 1. <First Vertical Slice — testable outcome implied by name>
- [ ] 1.1 <Task — references file paths inline where useful>
- [ ] 1.2 <Task — verifiable, small enough for one work session>
- [ ] 1.3 <Task>
## 2. <Second Vertical Slice>
- [ ] 2.1 <Task>
- [ ] 2.2 <Task>Every task must satisfy the Core Principles above. Additionally:
Write to outputPath from Phase 0.
Dispatch subagent of type general-purpose (use your subagent/task tool) with reviewer prompt below. Subagent loads tasks.md plus inputs into its own context, returns structured findings list, exits.
type-general-purpose dispatch: Claude Code
Agent(general-purpose)· Devin/Windsurfrun_subagent(subagent_general)· OpenCode@general· Codexspawn_agent(multi_agent=true) · Antigravityinvoke_subagent(self)· Pisubagent· unlisted → self-assess; no dispatch tool → execute inline as self-check.
Discipline:
You are a tasks.md reviewer for an OpenSpec change. Verify the tasks file is
complete, well-sliced, and ready for user review.
Inputs:
- Tasks file: <TASKS_PATH>
- Proposal file: <PROPOSAL_PATH>
- Specs file(s): <SPECS_PATHS>
- Design file: <DESIGN_PATH>
- Template: <TEMPLATE_CONTENT_FROM_PHASE_0>
Read all inputs before reviewing. Check each category:
| Category | What to look for |
|---|---|
| Slice discipline | Every `## N.` group is a vertical slice whose heading implies a one-sentence testable outcome. Not a layer (DB/API/UI), phase (setup/polish), or category (tests/docs). Slices are dependency-ordered |
| Task discipline | Every task operates at the spec requirement level, not the scenario level — it names a capability and summarizes its behavioral facets. A task that restates a single Gherkin scenario is too granular; the spec already holds that detail. The design holds HOW; tasks state WHAT |
| Coverage | Every spec requirement and design decision maps to at least one task; no speculative tasks for unrequested features |
| Naming & format | Same component named consistently across tasks. Artifact structure matches template — no custom sections, no extra nesting. No code, shell commands, commit messages, TBD/TODO placeholders |
Calibration: only flag issues that would mislead implementation, lose
coverage, or break the slicing discipline. Minor wording polish is NOT an issue.
Return format:
Status: Approved | Issues Found
Issues (if any):
- [Category]: [specific finding] — [why it matters]
Recommendations (advisory, do not block):
- [optional improvement suggestions]After receiving reviewer's response:
Mark Phase 2 complete. Update task status.
NEVER group tasks by layer (DB / API / UI separately) — vertical slice only. NEVER create groups for setup, build, polish, refactor, or other phase categories. NEVER create groups for "tests", "docs", or "config" — those activities live inside their respective vertical slices.
NEVER write code, exact shell commands, expected output, or commit messages in task descriptions. NEVER add custom sections (Files, Dependencies, Notes, Acceptance) — preserve template format. NEVER include TDD ordering inside a task group — that's the implementor's job. If implementation discipline appears, redirect to the implementor phase.
Succeeds: every group satisfies the Slice principle, every task satisfies the Task + WHAT-not-HOW + Behavior-only principles, spec and design coverage complete, template format preserved, reviewer dispatched once with findings applied.
Fails: any principle violated, reviewer skipped or re-dispatched, coverage gaps, source code read in root context.
© elastic, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/openspec-plus-tasks of elastic/terraform-provider-elasticstack.
Open the folder on GitHubat commit b6bbc21
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in elastic/terraform-provider-elasticstack, which our catalogue first saw on October 7, 2026.
Openspec Plus Tasks next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openspec Plus Tasks this skillelastic/terraform-provider-elasticstack | 210 | 1 repos | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Openspec Verify ChangeFission-AI/OpenSpec | 71k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| OpenSpec Guided OnboardingFission-AI/OpenSpec | 71k | 1 repos | ~4.5k | Automated safety check: Pass | MIT | |
| Modeling Activation MetricsPostHog/posthog | 40k | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| Gsd Phaseopen-gsd/gsd-core | 10k | 1 repos | ~603 | Automated safety check: Notes | MIT | |
| Summarize Activityalpinejs/alpine | 32k | — | ~1.6k | Automated safety check: Notes | MIT |
Fission-AI/OpenSpec
Verify implementation matches OpenSpec change artifacts. An agent skill from Fission-AI/OpenSpec.
Fission-AI/OpenSpec
Walks you through a complete OpenSpec workflow cycle with narration while doing real work in your codebase.
PostHog/posthog
Build reusable activation models — an activation-rate metric and a per-user/per-account activated flag — on either PostHog data-warehouse views (HogQL) or an external dbt project.
open-gsd/gsd-core
Multi-phase management — add, insert, remove, or edit phases in ROADMAP.md (roadmap phase CRUD)
alpinejs/alpine
Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Use unique IDs for active elements.
elastic/terraform-provider-elasticstack
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements.
elastic/terraform-provider-elasticstack
Implement tasks from an OpenSpec change. An agent skill from elastic/terraform-provider-elasticstack.
elastic/terraform-provider-elasticstack
Archive a completed change in the experimental workflow. An agent skill from elastic/terraform-provider-elasticstack.
elastic/terraform-provider-elasticstack
Monitor GitHub pull requests through a subagent-based loop that watches CI checks, review comments, PR comments, review state, merge conflicts, and branch freshness.
elastic/terraform-provider-elasticstack
MANDATORY skill that activates whenever the OpenSpec proposal phase begins.
elastic/terraform-provider-elasticstack
Continue working on an OpenSpec change by creating the next artifact.
MANDATORY skill that activates whenever the OpenSpec tasks phase begins. Openspec Plus Tasks is an agent skill from elastic/terraform-provider-elasticstack, published by the product's own GitHub organization. MANDATORY skill that activates whenever the OpenSpec tasks phase begins.
Run `npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a claude-code`. Or copy the skill folder (.agents/skills/openspec-plus-tasks in elastic/terraform-provider-elasticstack) into .claude/skills/openspec-plus-tasks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a codex`. Or copy the skill folder (.agents/skills/openspec-plus-tasks in elastic/terraform-provider-elasticstack) into .agents/skills/openspec-plus-tasks in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add elastic/terraform-provider-elasticstack --skill openspec-plus-tasks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openspec-plus-tasks, .gemini/skills/openspec-plus-tasks, .github/skills/openspec-plus-tasks and .opencode/skills/openspec-plus-tasks in your project.
SKILL.md names no scripts, command-line tools or credentials: Openspec Plus Tasks is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Openspec Plus Tasks is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Openspec Plus Tasks: Openspec Verify Change (Fission-AI/OpenSpec, 71k stars), OpenSpec Guided Onboarding (Fission-AI/OpenSpec, 71k stars), Modeling Activation Metrics (PostHog/posthog, 40k stars) and Gsd Phase (open-gsd/gsd-core, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
elastic (a GitHub organization, an official publisher) maintains it in elastic/terraform-provider-elasticstack, which has 210 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 2026.
Source: elastic/terraform-provider-elasticstack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.