Official agent skill

Openspec Propose

by elastic in elastic/terraform-provider-elasticstack

Propose a new change with all artifacts generated in one step.

OfficialMITAuto-check passed

Install Openspec Propose

skills CLI
$ npx skills add elastic/terraform-provider-elasticstack --skill openspec-propose -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install elastic/terraform-provider-elasticstack openspec-propose --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-propose .claude/skills/openspec-propose && rm -rf skills-src

Use ~/.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/

Facts

Skill name
openspec-propose
GitHub stars
210
Used in
79 other repos
Token cost
~3.1k tokens
SKILL.md length
1,659 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Propose a new change with all artifacts generated in one step.

  • Works in 6 steps: Understand the request and clarify… → Determine the workflow schema → Create the change directory → …
  • The user wants to quickly describe what they want to build and get a complete proposal with design
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks ready for implementation

What it does

Openspec Propose is an agent skill from elastic/terraform-provider-elasticstack, published by the product's own GitHub organization. Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires openspec CLI.

The repository describes itself as: Terraform provider for Elastic Stack. The licence is MIT.

When your agent uses it

  • The user wants to quickly describe what they want to build and get a complete proposal with design
  • Tasks ready for implementation

Example prompts

  • “/openspec-propose”

Requirements

  • Compatibility (from SKILL.md): Requires openspec CLI.
  • Pre-approved tools (allowed-tools): Bash(openspec:*)

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Understand the request and clarify material ambiguity
  2. Determine the workflow schema
  3. Create the change directory
  4. Get the artifact build order
  5. Create every artifact in the required set
  6. Show final status

What it can do on your machine

Read from SKILL.md and the folder at commit b6bbc21. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(openspec:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires openspec CLI.

    From compatibility in the SKILL.md frontmatter.

Context cost

Openspec Propose loads about 3.1k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 1,659 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from elastic/terraform-provider-elasticstack at commit b6bbc21, republished under its MIT licence (© elastic). 1,659 words, ~3,095 tokens.

Download SKILL.mdSave it as .claude/skills/openspec-propose/SKILL.md (or your agent's skills folder).
name
openspec-propose
description
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
allowed-tools
Bash(openspec:*)
compatibility
Requires openspec CLI.
license
MIT
metadata.author
openspec
metadata.version
1.0
metadata.generatedBy
1.12.0

Propose a new change - create the change and generate all artifacts in one step.

Planning boundary: This workflow creates planning artifacts only. The user request that selected or triggered this workflow authorizes planning only, even if it asks to build or fix something. Do not edit project code. After the planning artifacts are complete, stop. Do not start implementation in the same response, even if the initial request asks for it. Wait for a new user request after the artifacts are presented; then start the apply workflow.

I'll create a change with the artifacts your schema defines. With the default spec-driven schema that is:

  • proposal.md (what & why)
  • specs/<capability-path>/spec.md (what the system must do - a delta, not the main spec)
  • design.md (how)
  • tasks.md (implementation steps)

<capability-path> is the spec directory relative to specs/ (for example, user-auth or identity/user-auth). Preserve an existing capability's full path and follow the project's established organization for new capabilities.

When the user is ready to implement, they must start the apply workflow explicitly.


Store selection: If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run openspec store list --json to discover registered store ids, then pass --store <id> on the commands that read or write specs and changes (new change, status, instructions, list, show, validate, archive, doctor, context, schemas, view). Once selected, treat --store <id> as sticky for the rest of the workflow. Every unscoped example of those commands below is shorthand: before running it, append the flag. For example, run openspec status --change "<name>" --json --store "<id>", not the unscoped form shown below. Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local openspec/ root.

Input: The user's request should include a change name (kebab-case) OR a description of what they want to build.

Steps

  1. Understand the request and clarify material ambiguity

    If no clear input is provided, ask the user (open-ended, no preset options):

    "What change do you want to work on? Describe what you want to build or fix."

    From their description, derive a kebab-case name (e.g., "add user authentication" → add-user-auth).

    IMPORTANT: Do NOT proceed without understanding what the user wants to build.

    If the request contains ambiguity that would materially affect scope, externally observable behavior, compatibility, or acceptance criteria, ask the user before creating the change. For minor details, make a reasonable assumption and record it in the planning artifacts.

  2. Determine the workflow schema

    Use the configured default schema unless the user explicitly requests a different workflow.

    Use a different schema only if the user:

    • Explicitly requests a specific schema by name → use --schema <schema-name>
    • Asks to "show workflows" or asks "what workflows" exist → resolve the authoritative root by running openspec context --json from the current working directory. If the user explicitly selected a registered store, use openspec context --json --store "<store-id>". Then run openspec schemas --json with its working directory set to the returned root.path and let them choose. This preserves roots selected by a local store: pointer or the global defaultStore; when a registered store was explicitly selected, append --store "<store-id>" to openspec schemas --json as well. If context reports only no_openspec_root, run openspec schemas --json from the current working directory instead. Do not use this fallback for invalid or unavailable stores.

    Otherwise, omit --schema to preserve the configured default.

  3. Create the change directory

    Choose one schema form below. If a registered store is selected, append --store "<store-id>" to that command and each later OpenSpec command shown below that accepts --store.

    Using the configured default:

    bash
    openspec new change "<name>"

    Using an explicitly requested schema:

    bash
    openspec new change "<name>" --schema "<schema-name>"

    This creates a scaffolded change in the planning home resolved by the CLI with .openspec.yaml.

  4. Get the artifact build order

    bash
    openspec status --change "<name>" --json

    Parse the JSON to get:

    • applyRequires: array of artifact IDs needed before implementation (e.g., ["tasks"])
    • artifacts: list of all artifacts, each with its status and its requires edges (the artifact IDs it directly depends on)
    • planningHome, changeRoot, artifactPaths, and actionContext: path and scope context. Use these instead of assuming repo-local paths.
  5. Create every artifact in the required set

    Use a todo list to track progress through the artifacts.

    Loop through artifacts in dependency order (artifacts with no pending dependencies first):

    a. For each artifact that is ready (dependencies satisfied):

    • Get instructions:
      bash
      openspec instructions <artifact-id> --change "<name>" --json
    • The instructions JSON includes:
      • context: Project background (constraints for you - do NOT include in output)
      • rules: Artifact-specific rules (constraints for you - do NOT include in output)
      • template: The structure to use for your output file
      • instruction: Schema-specific guidance for this artifact type
      • skipped/warning: present when the change declares skip_specs and this artifact must NOT be created - stop and pick another artifact
      • resolvedOutputPath: Resolved path or pattern to write the artifact
      • dependencies: Completed artifacts to read for context
    • Read any completed dependency files for context - always re-read them from disk, even if you saw them earlier in the conversation (the user may have edited them)
    • Inspect the relevant project before drafting: Read context and rules first, then inspect relevant implementation, nearby tests, configuration, and documentation outside openspec/. Keep inspection read-only and proportional to the change; reuse findings for later artifacts and inspect more only as needed.
      • Identify the target project from the request and project context; the planning home may be separate from the code. If the target is unclear, ask. For greenfield or non-code changes, inspect the available structure and relevant documents. If source is unavailable, state the limitation and ask when it materially affects the plan.
      • Ground scope, approach, and tasks in what you find. Distinguish observed behavior from assumptions and proposed additions; surface conflicts with existing specs instead of silently deciding which is correct.
      • Do this discovery now, rather than leaving generic "explore the codebase" or "make a plan" tasks for implementation. Keep any necessary follow-up investigation specific to an unresolved question.
    • If the instruction field delegates creation to a specific skill or command, invoke it to produce the artifact instead of writing the file yourself, then verify the artifact file exists at resolvedOutputPath
    • Otherwise create the artifact file using template as the structure and write it to resolvedOutputPath. If resolvedOutputPath is a glob, follow instruction to choose the concrete file path
    • Apply context and rules as constraints - but do NOT copy them into the file
    • Show brief progress: "Created <artifact-id>"

    b. Continue until every artifact in the required set exists (not just apply.requires)

    • After creating each artifact, re-run openspec status --change "<name>" --json
    • The required set is applyRequires plus every artifact reachable from those by following the requires edges in status --json - walk them transitively (spec-driven closes over proposal, specs, design, tasks). Leave artifacts outside that set alone
    • status is file-existence only, so an applyRequires artifact reading done does NOT mean its dependencies exist - writing tasks.md early marks tasks done while specs was never written. Use each artifact's requires edges, not its status, to build the required set: a done artifact still lists what it depends on
    • An artifact already reading status: "skipped" is satisfied: the change declares skip_specs in .openspec.yaml, so its files must NOT exist. Never try to create one
    • Create every artifact in the required set that is missing, then re-check - creating one can unblock others
    • Skip one only when status already reports it skipped, or when its own instruction says it is conditional: run openspec instructions <artifact-id> --change "<name>" --json and skip only if its instruction field marks it optional (e.g. "create only if..."). Spec-driven's design.md qualifies; specs qualifies only via the skipped status above, never by your own judgment. Tell the user, and do not reconsider it
    • Dependencies are enablers, not gates: if a required artifact is still blocked only because you skipped a conditional dependency, write it anyway
    • Stop when every artifact in the required set is done, skipped, or was deliberately skipped

    c. If an artifact requires user input (unclear context):

    • Ask the user to clarify
    • Then continue with creation
  6. Show final status

    bash
    openspec status --change "<name>"
Show full SKILL.md (321 more words)Show less

Output

After completing all artifacts, summarize:

  • Change name and location
  • List of artifacts created with brief descriptions, plus any conditional artifact you skipped and why
  • What's ready: "All artifacts needed for implementation are ready."
  • Prompt: "The artifacts are ready for review. When you are ready, run /openspec-apply-change or ask me to apply this change."

Artifact Creation Guidelines

  • Follow the instruction field from openspec instructions for each artifact type - it is the authoritative guidance, even for familiar artifact names
  • If the instruction field directs you to use a specific skill or command to create the artifact, invoke it instead of writing the artifact directly
  • The schema defines what each artifact should contain - follow it
  • Read dependency artifacts for context before creating new ones
  • Use template as the structure for your output file - fill in its sections
  • IMPORTANT: context and rules are constraints for YOU, not content for the file
    • Do NOT copy <context>, <rules>, <project_context> blocks into the artifact
    • These guide what you write, but should never appear in the output

Guardrails

  • The request that invoked this workflow authorizes planning only. Any implementation or apply instruction in that request does not carry forward. Do NOT implement the change, start the apply workflow, or edit project code during this workflow. After presenting the artifacts, stop and wait for a new user request to start the apply workflow
  • Create every artifact the apply phase transitively depends on, not just the ids listed in apply.requires
  • Always read dependency artifacts before creating a new one - re-read from disk, not from conversation memory (files may have changed since you last saw them)
  • Ask about ambiguities that would materially change scope, externally observable behavior, compatibility, or acceptance criteria; for minor details, make reasonable assumptions and record them
  • If a change with that name already exists, ask if user wants to continue it or create a new one
  • Verify each artifact file exists after writing before proceeding to next

© elastic, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/openspec-propose of elastic/terraform-provider-elasticstack.

Open the folder on GitHubat commit b6bbc21

Used in at least 29 other repositories

We found 155 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 79 other GitHub owners. This page covers the copy in elastic/terraform-provider-elasticstack, which our catalogue first saw on October 7, 2026.

…and 105 more copies not listed here.

Compare with similar skills

Openspec Propose 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.

Openspec Propose compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Openspec Propose this skillelastic/terraform-provider-elasticstack21079 repos~3.1kAutomated safety check: PassMIT
Openspec Proposeskuramatata/my-pi-agent114—~351Automated safety check: PassNone
Openspec Proposehenhen6/mdp131—~642Automated safety check: PassMIT
Geo Proposalsickn33/agentic-awesome-skills47k1 repos~3.2kAutomated safety check: NotesMIT
Better Proposals AutomationComposioHQ/awesome-claude-skills77k3 repos~764Automated safety check: PassNone
Contract And Proposal Writeralirezarezvani/claude-skills28k2 repos~3.4kAutomated safety check: PassMIT

Similar skills

  • Openspec Propose

    skuramatata/my-pi-agent

    A skill your agent uses when the user wants to propose a new OpenSpec change and generate proposal, design, specs, and tasks before implementation.

    114 GitHub stars~351 tokensUpdated 3 mo ago
    Auto-check passed
  • Openspec Propose

    henhen6/mdp

    一步提案新变更并生成所有产出物。当用户想要快速描述他们想要构建的内容,并获得包含设计、规格说明和任务的完整提案以准备实现时使用。

    131 GitHub stars~642 tokensUpdated 3 days ago
    Auto-check passed
  • Geo Proposal

    sickn33/agentic-awesome-skills

    Auto-generate a professional, client-ready GEO service proposal from audit data.

    47k GitHub starsUsed in 1 repo~3.2k tokens
    Sales & SupportAuto-check: notes
  • Better Proposals Automation

    ComposioHQ/awesome-claude-skills

    Automate Better Proposals tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~764 tokens
    Productivity & AutomationAuto-check passed
  • Contract And Proposal Writer

    alirezarezvani/claude-skills

    Generate professional, jurisdiction-aware business documents: freelance contracts, project proposals, SOWs, NDAs, and MSAs.

    28k GitHub starsUsed in 2 repos~3.4k tokens
    Legal & ComplianceAuto-check passed
  • Proposal

    Chorus-AIDLC/Chorus

    Chorus Proposal workflow on Hermes — create proposals with document and task drafts, manage dependency DAG, validate, submit, and run the read-only proposal reviewer via delegatetask.

    1.2k GitHub stars~5.5k tokensUpdated yesterday
    Sales & SupportAuto-check passed

More from elastic/terraform-provider-elasticstack

All 21 skills in this repo
  • Openspec Explore

    elastic/terraform-provider-elasticstack

    Official

    Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements.

    210 GitHub starsUsed in 87 repos~4.6k tokens
    Auto-check passed
  • Openspec Apply Change

    elastic/terraform-provider-elasticstack

    Official

    Implement tasks from an OpenSpec change. An agent skill from elastic/terraform-provider-elasticstack.

    210 GitHub starsUsed in 92 repos~2.1k tokens
    Auto-check passed
  • Openspec Archive Change

    elastic/terraform-provider-elasticstack

    Official

    Archive a completed change in the experimental workflow. An agent skill from elastic/terraform-provider-elasticstack.

    210 GitHub starsUsed in 86 repos~2.7k tokens
    Auto-check passed
  • PR Monitoring Loop

    elastic/terraform-provider-elasticstack

    Official

    Monitor GitHub pull requests through a subagent-based loop that watches CI checks, review comments, PR comments, review state, merge conflicts, and branch freshness.

    210 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Openspec Plus Proposal

    elastic/terraform-provider-elasticstack

    Official

    MANDATORY skill that activates whenever the OpenSpec proposal phase begins.

    210 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Openspec Continue Change

    elastic/terraform-provider-elasticstack

    Official

    Continue working on an OpenSpec change by creating the next artifact.

    210 GitHub starsUsed in 31 repos~1.7k tokens
    Auto-check passed

Questions about Openspec Propose

What does Openspec Propose do?

Propose a new change with all artifacts generated in one step. Openspec Propose is an agent skill from elastic/terraform-provider-elasticstack, published by the product's own GitHub organization. Propose a new change with all artifacts generated in one step.

When should I use Openspec Propose?

Openspec Propose fits situations like: the user wants to quickly describe what they want to build and get a complete proposal with design; tasks ready for implementation.

How do I install Openspec Propose in Claude Code?

Run `npx skills add elastic/terraform-provider-elasticstack --skill openspec-propose -a claude-code`. Or copy the skill folder (.agents/skills/openspec-propose in elastic/terraform-provider-elasticstack) into .claude/skills/openspec-propose in your project. Claude Code loads it when a task matches its description.

How do I install Openspec Propose in Codex?

Run `npx skills add elastic/terraform-provider-elasticstack --skill openspec-propose -a codex`. Or copy the skill folder (.agents/skills/openspec-propose in elastic/terraform-provider-elasticstack) into .agents/skills/openspec-propose in your project. Codex loads it when a task matches its description.

Can I use Openspec Propose in Cursor, Gemini CLI or GitHub Copilot?

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-propose -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-propose, .gemini/skills/openspec-propose, .github/skills/openspec-propose and .opencode/skills/openspec-propose in your project.

What does Openspec Propose need to run?

SKILL.md names no scripts, command-line tools or credentials: Openspec Propose is instructions for the agent only. Its frontmatter pre-approves these tools: Bash(openspec:*). Compatibility (from SKILL.md): Requires openspec CLI..

Does Openspec Propose access the network?

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.

Is Openspec Propose safe to install?

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.

What licence does Openspec Propose use?

Openspec Propose is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Openspec Propose use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Openspec Propose?

Skills that share tags, products or a category with Openspec Propose: Openspec Propose (skuramatata/my-pi-agent, 114 stars), Openspec Propose (henhen6/mdp, 131 stars), Geo Proposal (sickn33/agentic-awesome-skills, 47k stars) and Better Proposals Automation (ComposioHQ/awesome-claude-skills, 77k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Openspec Propose?

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.