ワンクリックで
spectra-propose
Create a change proposal with all required artifacts
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Create a change proposal with all required artifacts
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Kim 黃晨皓的思維框架與決策方式。基於一手課程素材(墾丁特訓班、使用說明書), 提煉5個核心心智模型、7條決策啟發式和完整的表達DNA。 用途:作為思維顧問,用 Kim 的視角分析問題、拆解結構、審視決策。 觸發詞:「阿金視角」「Kim 會怎麼看」「Kim 會怎麼做」「阿金會怎麼做」「阿金模式」「kim perspective」「用阿金的方式」「用 Kim 的方式」「這件事 Kim」「這件事阿金」。 適用:結構拆解、創業決策分析、積木思維練習、BWPA 風險分析、溝通意圖分析。 不觸發:純技術問題、單純情感支持、法律財務專業建議。
Update an existing Spectra change from external context
BuyGo 五階段自動化 debug
WordPress 外掛一鍵部署
設計哲學核對、思維模型討論、設計洞察捕獲
建立或升級 Skill / Agent / Hook 時使用。走世代 3 完整流程:GATE 確認方向 → 分類 → 訪談 → 產出結構 → 品質檢查。用戶說「建 Skill」、「做 Agent」、「加 Hook」、「升級這個 Skill」等都應觸發。
| name | spectra-propose |
| description | Create a change proposal with all required artifacts |
| effort | high |
| license | MIT |
| compatibility | Requires spectra CLI. |
| metadata | {"author":"spectra","version":"1.0","generatedBy":"Spectra"} |
Create a complete Spectra change proposal — from requirement to validated artifacts — in a single workflow.
Input: The argument after /spectra-propose is the requirement description. Examples:
/spectra-propose add dark mode/spectra-propose fix the login page crash/spectra-propose improve search performanceIf no argument is provided, the workflow will extract requirements from conversation context or ask.
Prerequisites: This skill requires the spectra CLI. If any spectra command fails with "command not found" or similar, report the error and STOP.
Steps
Config 前置檢查(Project Setup Gate) ⚠️ 強制,不可跳過
目的:避免每次建立 artifact 時才發現
openspec/config.yaml是空的,導致 AI 沒有專案背景知識、產出品質低落。 處理原則:關鍵題問用戶(互動式),不自動猜、不沉默略過。
a. 檢查 config.yaml 是否存在且有實質內容:
openspec/config.yamlcontext: 欄位不存在 / 為空字串 / 只有註解骨架(無實質 tech stack 描述)→ 判定為「空」rules: 欄位不存在 / 為空 → 判定為「缺規則」b. 若判定為「空」→ 以 AskUserQuestion 詢問 3-5 題關鍵題(強制互動):
問完後,基於答案 + 自動偵測 package.json / CLAUDE.md 寫一份完整 context:,並套用預設 rules: 模板(proposal / design / specs / tasks 四類)。
c. 若判定為「缺規則」→ 不問用戶,直接套用預設 rules 模板:
d. 若 config.yaml 完整 → 靜默通過,進入 Step 1
e. 回報:不論是否修改 config.yaml,都向用戶顯示一行狀態:
Determine the requirement source
a. Argument provided (e.g., "add dark mode") → use it as the requirement description, skip to deriving the change name below.
b. Plan file available:
~/.claude/plans/<name>.md)~/.claude/plans/plan_title (H1 heading) → use as requirement descriptionplan_context (Context section) → use as proposal Why/Motivation contentplan_stages (numbered implementation stages) → use for artifact creationplan_files (all file paths mentioned) → use for Impact sectionc. Conversation context → attempt to extract requirements from conversation history
From the resolved description, derive a kebab-case change name (e.g., "add dark mode" → add-dark-mode).
IMPORTANT: Do NOT proceed without understanding what the user wants to build.
Classify the change type
Based on the requirement, classify the change into one of three types:
| Type | When to use |
|---|---|
| Feature | New functionality, new capabilities |
| Bug Fix | Fixing existing behavior, resolving errors |
| Refactor | Architecture improvements, performance optimization, UI adjustments |
This determines the proposal template format in step 5.
Scan existing specs for relevance
Before creating the change, check if any existing specs overlap:
openspec/specs/*/spec.mdIMPORTANT:
Create the change directory
spectra new change "<name>" --agent claude
If a change with that name already exists, suggest continuing the existing change instead of creating a new one.
Write the proposal
Get instructions:
spectra instructions proposal --change "<name>" --json
Write the proposal file using the template from instructions, with the following format based on change type:
## Why
<!-- Why this functionality is needed -->
## What Changes
<!-- What will be different -->
## Non-Goals (optional)
<!-- Scope exclusions and rejected approaches. Required when design.md is skipped. -->
## Capabilities
### New Capabilities
- `<capability-name>`: <brief description>
### Modified Capabilities
(none)
## Impact
- Affected specs: <new or modified capabilities>
- Affected code: <list of affected files>
## Problem
<!-- Current broken behavior -->
## Root Cause
<!-- Why it happens -->
## Proposed Solution
<!-- How to fix -->
## Non-Goals (optional)
<!-- Scope exclusions and rejected approaches. Required when design.md is skipped. -->
## Success Criteria
<!-- Expected behavior after fix, verifiable conditions -->
## Impact
- Affected code: <list of affected files>
## Summary
<!-- One sentence description -->
## Motivation
<!-- Why this is needed -->
## Proposed Solution
<!-- How to do it -->
## Non-Goals (optional)
<!-- Scope exclusions and rejected approaches. Required when design.md is skipped. -->
## Alternatives Considered (optional)
<!-- Other approaches considered and why not -->
## Impact
- Affected specs: <affected capabilities>
- Affected code: <list of affected files>
Get the artifact build order
spectra status --change "<name>" --json
Parse the JSON to get:
applyRequires: array of artifact IDs needed before implementationartifacts: list of all artifacts with their status and dependenciesCreate remaining artifacts in sequence
Loop through artifacts in dependency order (skip proposal since it's already done):
a. For each artifact that is ready (dependencies satisfied):
applyRequires artifact (i.e., removing it would not block reaching apply), it is optional. Get its instructions and read the instruction field. If the instruction contains conditional criteria (e.g., "create only if any apply"), evaluate whether any criteria apply to this change based on the proposal content. If none apply, skip the artifact and show: "⊘ Skipped (not needed for this change)". Then continue to the next artifact.spectra instructions <artifact-id> --change "<name>" --json
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 fileinstruction: Schema-specific guidanceoutputPath: Where to write the artifactdependencies: Completed artifacts to read for contextlocale: The language to write the artifact in (e.g., "Japanese (日本語)"). If present, you MUST write the artifact content in this language. Exception: spec files (specs/*/.md) MUST always be written in English regardless of locale, because they use normative language (SHALL/MUST).template as the structurecontext and rules as constraints - but do NOT copy them into the fileb. Continue until all applyRequires artifacts are complete
spectra status --change "<name>" --jsonapplyRequires has status: "done"applyRequires artifacts are donec. If an artifact requires user input (unclear context):
Inline Self-Review (before CLI analysis)
After creating all artifacts, scan them manually. Fix issues inline, then proceed to the CLI analyzer.
Check 1: No Placeholders
These patterns are artifact failures — fix each one before proceeding:
Check 2: Internal Consistency
Check 3: Scope Check
Check 4: Ambiguity Check
| What You're Thinking | What You Should Do |
|---|---|
| "The requirements are clear enough, no need for discuss" | Fine if true — but check you're not skipping because you're lazy |
| "This artifact isn't needed for this change" | Check applyRequires — if it's in the dependency chain, create it |
| "The spec doesn't need scenarios, the requirement is obvious" | Obvious to you now. Write scenarios for the implementer who doesn't have your context |
| "I'll keep the design brief, code will be self-explanatory" | Design exists so implementers don't reverse-engineer intent. Be specific |
| "This is a small change, skip the scope check" | Small changes touching 5 subsystems aren't small. Check |
| "The placeholder is fine for now, I'll fill it in later" | There is no "later" — implementation is next. Fill it in now |
Analyze-Fix Loop — 四大面向全零(Four-Dimension Zero Gate) ⚠️ 強制,不可跳過
目的:Spectra GUI 會顯示四個徽章(Coverage / Consistency / Ambiguity / Gaps),用戶要求必須全零才算過關。 處理原則:最多 3 輪自動修正,修不完不能靜默放行。
spectra analyze <change-name> --jsonfinding_count:
spectra analyze <change-name> --json
d. 四大全零 → 停,進入 Step 10
e. 尚有警告且未達 3 輪 → 繼續下一輪Validation
spectra validate "<name>"
If validation fails, fix errors and re-validate.
Show final status and end workflow
Show summary:
Use AskUserQuestion tool to ask what to do next. This ensures the workflow stops even when auto-accept is enabled. Provide exactly these options:
spectra park "<name>" to park the change, then inform the user they can run /spectra-apply <change-name> when ready (which will auto-unpark)./spectra-apply <change-name> to start implementation.If AskUserQuestion tool is not available, execute spectra park "<name>" and inform the user to run /spectra-apply <change-name> when ready. Then STOP — do not continue.
After the user responds, if they chose "Park", execute spectra park "<name>" and the workflow is OVER. If they chose "Apply", invoke /spectra-apply <change-name> to begin implementation.
Artifact Creation Guidelines
instruction field from spectra instructions for each artifact typetemplate as the structure for your output file - fill in its sectionscontext and rules are constraints for YOU, not content for the file
<context>, <rules>, <project_context> blocks into the artifact[P]): When creating the tasks artifact, first read .spectra.yaml. If parallel_tasks: true is set, add [P] markers to tasks that can be executed in parallel. Format: - [ ] [P] Task description. A task qualifies for [P] if it targets different files from other pending tasks AND has no dependency on incomplete tasks in the same group. When parallel_tasks is not enabled, do NOT add [P] markers.Guardrails
applyRequires dependency chain) may be skipped if their inclusion criteria don't apply./spectra-apply — this workflow ends after artifact creation. The user decides when to start implementation