agent-orchestrator-kit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: openspec-sync-specs
3
+ description: Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.
4
+ license: MIT
5
+ compatibility: Requires openspec CLI.
6
+ metadata:
7
+ author: openspec
8
+ version: "1.0"
9
+ generatedBy: "1.4.1"
10
+ ---
11
+
12
+ Sync delta specs from a change to main specs.
13
+
14
+ This is an **agent-driven** operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
15
+
16
+ **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.
17
+
18
+ **Steps**
19
+
20
+ 1. **If no change name provided, prompt for selection**
21
+
22
+ Run `openspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.
23
+
24
+ Show changes that have delta specs (under `specs/` directory).
25
+
26
+ **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
27
+
28
+ 2. **Resolve change context**
29
+
30
+ Run:
31
+ ```bash
32
+ openspec status --change "<name>" --json
33
+ ```
34
+
35
+ If status reports `actionContext.mode: "workspace-planning"`, explain that workspace spec sync is not supported in this slice and STOP. Do not fall back to repo-local paths or edit linked repos.
36
+
37
+ 3. **Find delta specs**
38
+
39
+ Use `artifactPaths.specs.existingOutputPaths` from the status JSON as the list of delta spec files.
40
+
41
+ Each delta spec file contains sections like:
42
+ - `## ADDED Requirements` - New requirements to add
43
+ - `## MODIFIED Requirements` - Changes to existing requirements
44
+ - `## REMOVED Requirements` - Requirements to remove
45
+ - `## RENAMED Requirements` - Requirements to rename (FROM:/TO: format)
46
+
47
+ If no delta specs found, inform user and stop.
48
+
49
+ 4. **For each delta spec, apply changes to main specs**
50
+
51
+ For each repo-local capability delta spec path returned by the CLI:
52
+
53
+ a. **Read the delta spec** to understand the intended changes
54
+
55
+ b. **Read the main spec** at `openspec/specs/<capability>/spec.md` (may not exist yet)
56
+
57
+ c. **Apply changes intelligently**:
58
+
59
+ **ADDED Requirements:**
60
+ - If requirement doesn't exist in main spec → add it
61
+ - If requirement already exists → update it to match (treat as implicit MODIFIED)
62
+
63
+ **MODIFIED Requirements:**
64
+ - Find the requirement in main spec
65
+ - Apply the changes - this can be:
66
+ - Adding new scenarios (don't need to copy existing ones)
67
+ - Modifying existing scenarios
68
+ - Changing the requirement description
69
+ - Preserve scenarios/content not mentioned in the delta
70
+
71
+ **REMOVED Requirements:**
72
+ - Remove the entire requirement block from main spec
73
+
74
+ **RENAMED Requirements:**
75
+ - Find the FROM requirement, rename to TO
76
+
77
+ d. **Create new main spec** if capability doesn't exist yet:
78
+ - Create `openspec/specs/<capability>/spec.md`
79
+ - Add Purpose section (can be brief, mark as TBD)
80
+ - Add Requirements section with the ADDED requirements
81
+
82
+ 5. **Show summary**
83
+
84
+ After applying all changes, summarize:
85
+ - Which capabilities were updated
86
+ - What changes were made (requirements added/modified/removed/renamed)
87
+
88
+ **Delta Spec Format Reference**
89
+
90
+ ```markdown
91
+ ## ADDED Requirements
92
+
93
+ ### Requirement: New Feature
94
+ The system SHALL do something new.
95
+
96
+ #### Scenario: Basic case
97
+ - **WHEN** user does X
98
+ - **THEN** system does Y
99
+
100
+ ## MODIFIED Requirements
101
+
102
+ ### Requirement: Existing Feature
103
+ #### Scenario: New scenario to add
104
+ - **WHEN** user does A
105
+ - **THEN** system does B
106
+
107
+ ## REMOVED Requirements
108
+
109
+ ### Requirement: Deprecated Feature
110
+
111
+ ## RENAMED Requirements
112
+
113
+ - FROM: `### Requirement: Old Name`
114
+ - TO: `### Requirement: New Name`
115
+ ```
116
+
117
+ **Key Principle: Intelligent Merging**
118
+
119
+ Unlike programmatic merging, you can apply **partial updates**:
120
+ - To add a scenario, just include that scenario under MODIFIED - don't copy existing scenarios
121
+ - The delta represents *intent*, not a wholesale replacement
122
+ - Use your judgment to merge changes sensibly
123
+
124
+ **Output On Success**
125
+
126
+ ```
127
+ ## Specs Synced: <change-name>
128
+
129
+ Updated main specs:
130
+
131
+ **<capability-1>**:
132
+ - Added requirement: "New Feature"
133
+ - Modified requirement: "Existing Feature" (added 1 scenario)
134
+
135
+ **<capability-2>**:
136
+ - Created new spec file
137
+ - Added requirement: "Another Feature"
138
+
139
+ Main specs are now updated. The change remains active - archive when implementation is complete.
140
+ ```
141
+
142
+ **Guardrails**
143
+ - Read both delta and main specs before making changes
144
+ - Preserve existing content not mentioned in delta
145
+ - If something is unclear, ask for clarification
146
+ - Show what you're changing as you go
147
+ - The operation should be idempotent - running twice should give same result
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: spec-workflow-openspec
3
+ description: Користувач використовує OpenSpec (@fission-ai/openspec), а не SpecKit/Specify. Застосовуй при spec-driven workflow, плануванні фіч, згадках SpecKit, Specify, .specify/, specify-rules, або коли треба обрати інструмент специфікацій. Не налаштовуй SpecKit — використовуй OpenSpec і skill openspec-howto.
4
+ ---
5
+
6
+ # Spec workflow: OpenSpec, не SpecKit
7
+
8
+ ## Перевага користувача
9
+
10
+ **OpenSpec** — spec-driven workflow у проєктах.
11
+ **SpecKit / Specify** — **не використовується**.
12
+
13
+ Не пропонуй і не налаштовуй:
14
+ - `.specify/`
15
+ - `specify-rules.mdc`
16
+ - SpecKit CLI, `/speckit.*` команди
17
+ - інтеграції `cursor-agent` / `.specify/integration.json`
18
+
19
+ ## Що використовувати замість SpecKit
20
+
21
+ | SpecKit | OpenSpec |
22
+ |---------|----------|
23
+ | `.specify/` | `openspec/` |
24
+ | `specify-rules.mdc` | `openspec/config.yaml` |
25
+ | SpecKit commands | `/opsx:explore`, `/opsx:propose`, `/opsx:apply`, `/opsx:archive` |
26
+ | `.specify/init-options.json` | `openspec/config.yaml` + npm scripts |
27
+
28
+ ## Структура OpenSpec
29
+
30
+ ```
31
+ openspec/
32
+ ├── config.yaml
33
+ ├── specs/<domain>/spec.md
34
+ └── changes/
35
+ ├── <change-name>/
36
+ │ ├── proposal.md
37
+ │ ├── design.md
38
+ │ ├── tasks.md
39
+ │ └── specs/<domain>/spec.md
40
+ └── archive/
41
+ ```
42
+
43
+ ## Коли застосовувати
44
+
45
+ - Планування фічі або рефакторингу — `/opsx:propose <kebab-name>`
46
+ - Невизначений скоуп — `/opsx:explore`
47
+ - Реалізація затвердженого плану — `/opsx:apply`
48
+ - Після merge — `/opsx:archive`
49
+
50
+ ## Детальний посібник
51
+
52
+ Для CLI, валідації, іменування changes і типових сценаріїв — читай skill **`openspec-howto`**.
53
+
54
+ ## Vue skills + Amp
55
+
56
+ При встановленні `vue-cursor-skills`:
57
+ - дзеркалюй `.cursor/skills/` → `.agents/skills/`
58
+ - **не** налаштовуй SpecKit
59
+ - якщо в проєкті є `openspec/` — дотримуйся OpenSpec workflow
@@ -0,0 +1,31 @@
1
+ name: agent-verify
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main, master, develop]
7
+
8
+ jobs:
9
+ verify:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ - uses: actions/setup-node@v4
15
+ with:
16
+ node-version: 20
17
+ cache: npm
18
+
19
+ - run: npm ci
20
+
21
+ - name: OpenSpec validate
22
+ run: npx openspec validate --all --strict
23
+
24
+ - name: Lint
25
+ run: npm run lint --if-present
26
+
27
+ - name: Build
28
+ run: npm run build --if-present
29
+
30
+ - name: Test
31
+ run: npm test --if-present
@@ -56,9 +56,12 @@ fi
56
56
  # ── Amp Code ───────────────────────────────────────────────────────────
57
57
  echo ""
58
58
  info "Amp Code reads .agents/ directly — no sync needed"
59
- if [ ! -f .amp/settings.json ]; then
60
- warn ".amp/settings.json missing add Memory MCP manually (see README)"
61
- warn " {\"amp.mcpServers\":{\"memory\":{\"command\":\"npx\",\"args\":[\"-y\",\"@modelcontextprotocol/server-memory\"],\"env\":{\"MEMORY_FILE_PATH\":\".cursor/memory.json\"}}}}"
59
+ mkdir -p .amp
60
+ if [ ! -f .amp/settings.json ] && [ -f .agents/amp.settings.json.example ]; then
61
+ cp .agents/amp.settings.json.example .amp/settings.json
62
+ ok ".amp/settings.json created from example"
63
+ elif [ ! -f .amp/settings.json ]; then
64
+ warn ".amp/settings.json missing — copy from .agents/amp.settings.json.example"
62
65
  fi
63
66
 
64
67
  # ── .gitignore check ───────────────────────────────────────────────────