openspec-loop

📁 viteinfinite/skills 📅 1 day ago
0
总安装量
1
周安装量
安装命令
npx skills add https://github.com/viteinfinite/skills --skill openspec-loop

Agent 安装分布

amp 1
opencode 1
cursor 1
kimi-cli 1
github-copilot 1

Skill 文档

OpenSpec Loop: OpenSpec Subagent-Driven Development

Implement OpenSpec specs by dispatching fresh subagent per spec, with clean context isolation and sequential execution.

Core principle: Fresh subagent per spec + sequential execution + clean context = high quality isolated implementation

When to Use

digraph when_to_use {
    "Have OpenSpec specs to implement?" [shape=diamond];
    "Specs are independent changes?" [shape=diamond];
    "Want clean context per spec?" [shape=diamond];
    "openspec-subagent-driven-development" [shape=box];
    "Manual execution or other workflow" [shape=box];

    "Have OpenSpec specs to implement?" -> "Specs are independent changes?" [label="yes"];
    "Have OpenSpec specs to implement?" -> "Manual execution or other workflow" [label="no"];
    "Specs are independent changes?" -> "Want clean context per spec?" [label="yes"];
    "Specs are independent changes?" -> "Manual execution or other workflow" [label="no - tightly coupled"];
    "Want clean context per spec?" -> "openspec-subagent-driven-development" [label="yes"];
    "Want clean context per spec?" -> "Manual execution or other workflow" [label="no"];
}

Key characteristics:

  • Sequential execution (one spec at a time)
  • Fresh subagent per spec (no context pollution)
  • Each subagent starts with /clear
  • Spec archiving verifies completion

The Process

digraph process {
    rankdir=TB;

    "Run 'openspec view' to discover active specs" [shape=box];
    "Present active specs to user" [shape=box];
    "User confirms implementation order" [shape=box];
    "More specs remain?" [shape=diamond];

    subgraph cluster_per_spec {
        label="Per Spec";
        "Dispatch fresh general-purpose subagent" [shape=box];
        "Subagent executes /clear" [shape=box];
        "Subagent exports context usage" [shape=box];
        "Subagent executes /openspec:apply [spec-id]" [shape=box];
        "Subagent implements all spec changes using /openspec:apply [spec-id]" [shape=box];
        "Subagent archives the spec using /openspec:archive [spec-id]" [shape=box];
        "Verify spec archived successfully" [shape=box];
        "Report status to user" [shape=box];
    }

    "Provide implementation summary to user" [shape=box style=filled fillcolor=lightgreen];

    "Run 'openspec view' to discover active specs" -> "Present active specs to user";
    "Present active specs to user" -> "User confirms implementation order";
    "User confirms implementation order" -> "More specs remain?";
    "More specs remain?" -> "Dispatch fresh general-purpose subagent" [label="yes"];
    "Dispatch fresh general-purpose subagent" -> "Subagent executes /clear";
    "Subagent executes /clear" -> "Subagent exports context usage";
    "Subagent exports context usage" -> "Subagent executes /openspec:apply [spec-id]";
    "Subagent executes /openspec:apply [spec-id]" -> "Subagent implements all spec changes";
    "Subagent implements all spec changes" -> "Subagent archives the spec";
    "Subagent archives the spec" -> "Verify spec archived successfully";
    "Verify spec archived successfully" -> "Report status to user";
    "Report status to user" -> "More specs remain?";
    "More specs remain?" -> "Provide implementation summary to user" [label="no"];
}

Subagent Instructions Template

When launching a subagent, provide it with these exact instructions:

You are implementing a specific OpenSpec change proposal. Your workflow:

1. FIRST ACTION: Execute `/clear` to ensure clean context
2. THIRD ACTION: Execute `/openspec:apply [spec-id]` to apply the spec you're implementing
3. Implement all changes described in the spec
4. After successful implementation, archive the spec
5. Report completion and terminate

Spec to implement: [spec-details]

Example Workflow

You: I'm using OpenSpec Subagent-Driven Development to implement pending specs.

[Run 'openspec view' and parse active changes]
[Present list to user]

You: Found 3 active specs:
  1. add-base-image-uploads
  2. add-strapi-tag-creation
  3. some-other-feature

User: Implement in this order: add-base-image-uploads, then add-strapi-tag-creation

You: Confirmed. Starting implementation...

=== Spec 1: add-base-image-uploads ===

[Dispatch general-purpose subagent with spec details]
[Subagent executes /clear]
[Subagent exports context usage]
[Subagent executes /openspec:apply add-base-image-uploads]
[Subagent implements changes]
[Subagent archives spec]
[Verify archiving]

You: ✅ add-base-image-uploads completed and archived

=== Spec 2: add-strapi-tag-creation ===

[Dispatch fresh general-purpose subagent with spec details]
[Subagent executes /clear - completely fresh context]
[Subagent exports context usage]
[Subagent executes /openspec:apply add-strapi-tag-creation]
[Subagent implements changes]
[Subagent archives spec]
[Verify archiving]

You: ✅ add-strapi-tag-creation completed and archived

=== Summary ===

All requested specs implemented successfully:
  ✅ add-base-image-uploads
  ✅ add-strapi-tag-creation

Remaining: some-other-feature

Advantages

vs. Manual spec implementation:

  • Each spec gets dedicated, focused attention
  • Fresh context per spec (no confusion from previous work)
  • Automatic context usage tracking per spec
  • Spec archiving confirms completion

vs. Parallel implementation:

  • No context bleed between specs
  • Sequential execution prevents conflicts
  • Easier to debug if something goes wrong
  • Clear progress tracking

Quality benefits:

  • /clear ensures no mental contamination
  • Each subagent starts fresh
  • Failed specs don’t affect subsequent specs
  • Clean audit trail per spec

Operational Constraints

NEVER:

  • Read the specs directly yourself – always delegate to subagents
  • Implement specs yourself – always delegate to subagents
  • Allow context to bleed between spec implementations
  • Skip the /clear action – it’s critical for isolation
  • Proceed without verifying spec archiving
  • Implement specs in parallel – must be sequential
  • Use “superpowers:subagent-driven-development” skill

ALWAYS:

  • Verify spec exists and is valid before dispatching
  • Verify spec is archived after completion
  • Report failures and ask user how to proceed
  • Maintain clear status display

Error Handling

If subagent fails to implement its spec:

  • Report the failure to the user
  • Ask whether to: retry with new subagent, skip next spec, or abort
  • Document the failure reason

If spec cannot be applied:

  • Do not proceed to next spec without user confirmation
  • Get explicit direction before continuing

Progress Tracking

Maintain a clear status display showing:

  • Total specs to implement
  • Current spec being implemented
  • Completed specs
  • Remaining specs

Update after each spec completion.

Integration

Required workflow skills:

  • openspec:apply – Applies the spec to be implemented
  • openspec:archive – Archives completed specs

Related workflows:

  • superpowers:subagent-driven-development – Original task-based workflow (NOT for OpenSpec specs)

Termination

Terminate after:

  • All specs successfully implemented and archived
  • User explicitly requests termination
  • Unrecoverable error occurs and user chooses to abort