Files
junhong_cmp_fiber/.opencode/skills/openspec-continue-change/SKILL.md
huang b18ecfeb55
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m29s
refactor: 一次性佣金配置从套餐级别提升到系列级别
主要变更:
- 新增 tb_shop_series_allocation 表,存储系列级别的一次性佣金配置
- ShopPackageAllocation 移除 one_time_commission_amount 字段
- PackageSeries 新增 enable_one_time_commission 字段控制是否启用一次性佣金
- 新增 /api/admin/shop-series-allocations CRUD 接口
- 佣金计算逻辑改为从 ShopSeriesAllocation 获取一次性佣金金额
- 删除废弃的 ShopSeriesOneTimeCommissionTier 模型
- OpenAPI Tag '系列分配' 和 '单套餐分配' 合并为 '套餐分配'

迁移脚本:
- 000042: 重构佣金套餐模型
- 000043: 简化佣金分配
- 000044: 一次性佣金分配重构
- 000045: PackageSeries 添加 enable_one_time_commission 字段

测试:
- 新增验收测试 (shop_series_allocation, commission_calculation)
- 新增流程测试 (one_time_commission_chain)
- 删除过时的单元测试(已被验收测试覆盖)
2026-02-04 14:28:44 +08:00

5.9 KiB
Raw Blame History

name, description, license, compatibility, metadata
name description license compatibility metadata
openspec-continue-change 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. MIT Requires openspec CLI.
author version generatedBy
openspec 1.0 1.0.2

Continue working on a change by creating the next artifact.

Input: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.

Steps

  1. If no change name provided, prompt for selection

    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:
      • 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
      • 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//spec.md: Create one spec per capability listed in the proposal's Capabilities section (use the capability name, not the change name).

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

  • tasks.md: Break down implementation into checkboxed tasks, following TDD workflow structure:

    TDD Tasks Structure (MUST follow):

    ## 0. 测试准备(实现前执行)
    - [ ] 0.1 生成验收测试和流程测试(/opsx:gen-tests
    - [ ] 0.2 运行测试确认全部 FAIL证明测试有效
    
    ## 1. 基础设施(数据库 + Model
    - [ ] 1.x 创建迁移、Model、DTO
    - [ ] 1.y 验证:编译通过
    
    ## 2. 功能单元 A完整垂直切片
    - [ ] 2.1 Store 层
    - [ ] 2.2 Service 层
    - [ ] 2.3 Handler 层 + 路由
    - [ ] 2.4 **验证:功能 A 相关验收测试 PASS**
    
    ## N. 最终验证
    - [ ] N.1 全部验收测试 PASS
    - [ ] N.2 全部流程测试 PASS
    - [ ] N.3 完整测试套件无回归
    

    Key principles:

    • Task group 0 MUST be test preparation (generate tests + confirm all FAIL)
    • Organize by functional units, NOT by technical layers (Store/Service/Handler)
    • Each functional unit MUST end with "verify related tests PASS"
    • Final validation MUST include all acceptance + flow tests passing

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
  • 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