agentleFS
LIDR-academyLIDR-academy/AI4Devs-LTI-extended/.cursor/skills/openspec-continue-change/SKILL.md

openspec-continue-change

Skill278 starsChanged 6 months agoMITView on GitHub

Continue working on an OpenSpec change by creating the next artifact. Use when the user wants to progress their change, create the next artifact, or continue their workflow.

We split this skill into the rules it gives an agent

32 rules. 13 are common, 9 are distinctive, and 10 are very specific to this project.

  • 13

    Common

    Most of the 63 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If omitted, check if it can be inferred from conversation context.

    line 17
  2. Very specific:

    Use getAccessibleAtlassianResources MCP tool to get the cloudId

    line 24
  3. Very specific:

    Use getJiraIssue MCP tool with:

    line 25
  4. Distinctive:

    Remove any leading/trailing hyphens

    line 32
  5. Distinctive:

    If ticket title is unclear or too long, use a shortened meaningful version

    line 34
  6. Distinctive:

    If no change exists, ask user if they want to create one or use an existing change

    line 36
  7. Distinctive:

    Use ticket content as context for creating the next artifact

    line 37
  8. Very specific:

    Run openspec list --json to get available changes sorted by most recently modified.

    line 42
  9. Common:

    IMPORTANT: Do NOT guess or auto-select a change.

    line 52
  10. Very specific:

    CRITICAL for tasks artifact: If creating tasks.md:

    line 89
  11. Very specific:

    Read openspec/config.yaml to get backend-specific rules (mandatory steps, branch naming, etc.)

    line 90
  12. Very specific:

    Read .claude/rules/openspec-tasks-mandatory-steps.mdc to understand mandatory testing requirements and agent execution responsibilities

    line 91
  13. Distinctive:

    All mandatory steps that MUST be included (e.g., Step 0: Create Feature Branch)

    line 93
  14. Distinctive:

    If Jira ticket was provided: Use ticket content to inform artifact creation

    line 94
  15. Common:

    Read any completed dependency files for context

    line 95
  16. Very specific:

    Use template as the structure - fill in its sections

    line 96
  17. Very specific:

    For tasks artifact: Ensure all mandatory steps from config.yaml and the rule file are included:

    line 98
  18. Distinctive:

    Run Unit Tests and Verify Database State (MANDATORY)

    line 101
  19. Distinctive:

    Update Technical Documentation (MANDATORY)

    line 104
  20. Common:

    Write to the output path specified in instructions

    line 106
  21. Common:

    STOP after creating ONE artifact

    line 108
  22. Common:

    After each invocation, show:

    line 123
  23. Common:

    proposal.md: Ask user about the change if not clear.

    line 137
  24. Common:

    design.md: Document technical decisions, architecture, and implementation approach.

    line 140
  25. Common:

    Create ONE artifact per invocation

    line 146
  26. Common:

    Always read dependency artifacts before creating a new one

    line 147
  27. Common:

    Never skip artifacts or create out of order

    line 148
  28. Very specific:

    For tasks.md: Read .claude/rules/openspec-tasks-mandatory-steps.mdc to ensure all mandatory steps are included with proper agent execution …

    line 149
  29. Common:

    If context is unclear, ask the user before creating

    line 150
  30. Common:

    Verify the artifact file exists after writing before marking progress

    line 151
  31. Common:

    Use the schema's artifact sequence, don't assume specific artifact names

    line 152
  32. Very specific:

    Do NOT copy <context>, <rules>, <project_context> blocks into the artifact

    line 154

“Common” is measured: kept by at least 6 in 10 of the 63 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Continue working on a change by creating the next artifact.

Input: Optionally specify:

  • A Jira ticket ID (e.g., SCRUM-123) - will fetch ticket content and find/create associated change
  • A change name - will use that change directly
  • If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.

Steps

  1. Determine input and get context

    a. If input looks like a Jira ticket ID (matches pattern like SCRUM-123, PROJ-456, etc.):

    • Use getAccessibleAtlassianResources MCP tool to get the cloudId
    • Use getJiraIssue MCP tool with:
      • cloudId: from step above
      • issueIdOrKey: the provided ticket ID
    • Extract ticket content (title, description, acceptance criteria, etc.)
    • Derive a kebab-case change name from the ticket title:
      • Convert ticket title to lowercase
      • Replace spaces and special characters with hyphens
      • Remove any leading/trailing hyphens
      • Example: "Update Position API" → update-position-api, "Add User Auth" → add-user-auth
      • If ticket title is unclear or too long, use a shortened meaningful version
    • Try to find existing change with the derived kebab-case name
    • If no change exists, ask user if they want to create one or use an existing change
    • Use ticket content as context for creating the next artifact

    b. If input is a change name or no input provided:

    • Proceed with existing logic (prompt for selection if needed)

    Run openspec list --json to get available changes sorted by most recently modified. Then use the AskUserQuestion tool to let the user select which change to work on.

    Present the top 3-4 most recently modified changes as options, showing:

    • Change name
    • Schema (from schema field if present, otherwise "spec-driven")
    • Status (e.g., "0/5 tasks", "complete", "no tasks")
    • How recently it was modified (from lastModified field)

    Mark the most recently modified change as "(Recommended)" since it's likely what the user wants to continue.

    IMPORTANT: Do NOT guess or auto-select a change. Always let the user choose.

  2. Check current status
    openspec status --change "<name>" --json
    Parse the JSON to understand current state. The response includes:
    • schemaName: The workflow schema being used (e.g., "spec-driven")
    • artifacts: Array of artifacts with their status ("done", "ready", "blocked")
    • isComplete: Boolean indicating if all artifacts are complete
  3. Act based on status:


    If all artifacts are complete (isComplete: true):

    • Congratulate the user
    • Show final status including the schema used
    • Suggest: "All artifacts created! You can now implement this change or archive it."
    • STOP

    If artifacts are ready to create (status shows artifacts with status: "ready"):

    • Pick the FIRST artifact with status: "ready" from the status output
    • Get its instructions:
      openspec instructions <artifact-id> --change "<name>" --json
    • Parse the JSON. The key fields are:
      • 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
      • outputPath: Where to write the artifact
      • dependencies: Completed artifacts to read for context
    • Create the artifact file:
      • CRITICAL for tasks artifact: If creating tasks.md:
        • Read openspec/config.yaml to get backend-specific rules (mandatory steps, branch naming, etc.)
        • Read .claude/rules/openspec-tasks-mandatory-steps.mdc to understand mandatory testing requirements and agent execution responsibilities
        • Task structure requirements
        • All mandatory steps that MUST be included (e.g., Step 0: Create Feature Branch)
      • If Jira ticket was provided: Use ticket content to inform artifact creation
      • Read any completed dependency files for context
      • Use template as the structure - fill in its sections
      • Apply context and rules as constraints when writing - but do NOT copy them into the file
      • For tasks artifact: Ensure all mandatory steps from config.yaml and the rule file are included:
        • Step 0: Create Feature Branch (MUST be first step for backend changes)
        • Review and Update Existing Unit Tests (MANDATORY)
        • Run Unit Tests and Verify Database State (MANDATORY)
        • Manual Endpoint Testing with curl (MANDATORY - AGENT MUST EXECUTE)
        • E2E Testing with Playwright MCP (MANDATORY if applicable - AGENT MUST EXECUTE)
        • Update Technical Documentation (MANDATORY)
      • For manual testing tasks: Include sub-tasks that make it clear the agent must execute tests (e.g., "Test GET endpoints with curl", "Restore database state", etc.)
      • Write to the output path specified in instructions
    • Show what was created and what's now unlocked
    • STOP after creating ONE artifact

    If no artifacts are ready (all blocked):

    • This shouldn't happen with a valid schema
    • Show status and suggest checking for issues
  4. After creating an artifact, show progress
    openspec status --change "<name>"

Output

After each invocation, show:

  • Which artifact was created
  • Schema workflow being used
  • Current progress (N/M complete)
  • What artifacts are now unlocked
  • Prompt: "Want to continue? Just ask me to continue or tell me what to do next."

Artifact Creation Guidelines

The artifact types and their purpose depend on the schema. Use the instruction field from the instructions output to understand what to create.

Common artifact patterns:

spec-driven schema (proposal → specs → design → tasks):

  • proposal.md: Ask user about the change if not clear. Fill in Why, What Changes, Capabilities, Impact.
    • The Capabilities section is critical - each capability listed will need a spec file.
  • specs/*.md: Create one spec per capability listed in the proposal.
  • design.md: Document technical decisions, architecture, and implementation approach.
  • tasks.md: Break down implementation into checkboxed tasks.

For other schemas, follow the instruction field from the CLI output.

Guardrails

  • Create ONE artifact per invocation
  • Always read dependency artifacts before creating a new one
  • Never skip artifacts or create out of order
  • For tasks.md: Read .claude/rules/openspec-tasks-mandatory-steps.mdc to ensure all mandatory steps are included with proper agent execution requirements
  • If context is unclear, ask the user before creating
  • Verify the artifact file exists after writing before marking progress
  • Use the schema's artifact sequence, don't assume specific artifact names
  • 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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.