oh-my-copilot 4.13.21 → 4.13.54
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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +8 -0
- package/agents/code-reviewer.agent.md +24 -6
- package/agents/designer.agent.md +12 -0
- package/bridge/cli.cjs +2231 -1222
- package/bridge/mcp-server.cjs +678 -261
- package/bridge/runtime-cli.cjs +55 -8
- package/bridge/team.js +507 -38
- package/dist/__tests__/agent-registry.test.js +92 -1
- package/dist/__tests__/agent-registry.test.js.map +1 -1
- package/dist/__tests__/auto-slash-aliases.test.js +6 -6
- package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
- package/dist/__tests__/auto-update.test.js +132 -2
- package/dist/__tests__/auto-update.test.js.map +1 -1
- package/dist/__tests__/bedrock-model-routing.test.js +18 -17
- package/dist/__tests__/bedrock-model-routing.test.js.map +1 -1
- package/dist/__tests__/delegation-enforcer.test.js +46 -6
- package/dist/__tests__/delegation-enforcer.test.js.map +1 -1
- package/dist/__tests__/hooks/session-end-cleanup.test.d.ts +2 -0
- package/dist/__tests__/hooks/session-end-cleanup.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/session-end-cleanup.test.js +93 -0
- package/dist/__tests__/hooks/session-end-cleanup.test.js.map +1 -0
- package/dist/__tests__/hud/stdin.test.d.ts +2 -0
- package/dist/__tests__/hud/stdin.test.d.ts.map +1 -0
- package/dist/__tests__/hud/stdin.test.js +556 -0
- package/dist/__tests__/hud/stdin.test.js.map +1 -0
- package/dist/__tests__/model-routing-override-three-site-sync.test.d.ts +2 -0
- package/dist/__tests__/model-routing-override-three-site-sync.test.d.ts.map +1 -0
- package/dist/__tests__/model-routing-override-three-site-sync.test.js +75 -0
- package/dist/__tests__/model-routing-override-three-site-sync.test.js.map +1 -0
- package/dist/__tests__/non-claude-provider-detection.test.js +37 -0
- package/dist/__tests__/non-claude-provider-detection.test.js.map +1 -1
- package/dist/__tests__/package-dir-resolution-regression.test.js +25 -0
- package/dist/__tests__/package-dir-resolution-regression.test.js.map +1 -1
- package/dist/__tests__/pre-tool-enforcer.test.js +304 -0
- package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
- package/dist/__tests__/session-start-script-context.test.js +121 -0
- package/dist/__tests__/session-start-script-context.test.js.map +1 -1
- package/dist/__tests__/setup-claude-md-script.test.js +44 -1
- package/dist/__tests__/setup-claude-md-script.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +77 -7
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/wiki-hook-output-format.test.d.ts +2 -0
- package/dist/__tests__/wiki-hook-output-format.test.d.ts.map +1 -0
- package/dist/__tests__/wiki-hook-output-format.test.js +59 -0
- package/dist/__tests__/wiki-hook-output-format.test.js.map +1 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +2 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/autoresearch/__tests__/decide-outcome.test.d.ts +2 -0
- package/dist/autoresearch/__tests__/decide-outcome.test.d.ts.map +1 -0
- package/dist/autoresearch/__tests__/decide-outcome.test.js +69 -0
- package/dist/autoresearch/__tests__/decide-outcome.test.js.map +1 -0
- package/dist/autoresearch/runtime.d.ts.map +1 -1
- package/dist/autoresearch/runtime.js +16 -2
- package/dist/autoresearch/runtime.js.map +1 -1
- package/dist/cli/__tests__/launch.test.js +23 -0
- package/dist/cli/__tests__/launch.test.js.map +1 -1
- package/dist/cli/__tests__/self-improve-paths.test.js +3 -2
- package/dist/cli/__tests__/self-improve-paths.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +100 -0
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/commands/__tests__/team-role-shorthand.test.js +30 -0
- package/dist/cli/commands/__tests__/team-role-shorthand.test.js.map +1 -1
- package/dist/cli/commands/__tests__/team.test.js +48 -1
- package/dist/cli/commands/__tests__/team.test.js.map +1 -1
- package/dist/cli/commands/team.d.ts +2 -0
- package/dist/cli/commands/team.d.ts.map +1 -1
- package/dist/cli/commands/team.js +9 -2
- package/dist/cli/commands/team.js.map +1 -1
- package/dist/cli/launch.d.ts.map +1 -1
- package/dist/cli/launch.js +7 -0
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +34 -3
- package/dist/cli/team.js.map +1 -1
- package/dist/config/__tests__/loader.test.js +35 -4
- package/dist/config/__tests__/loader.test.js.map +1 -1
- package/dist/config/__tests__/models.test.js +126 -3
- package/dist/config/__tests__/models.test.js.map +1 -1
- package/dist/config/models.d.ts +8 -0
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +119 -8
- package/dist/config/models.js.map +1 -1
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +53 -5
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/delegation-enforcer.d.ts.map +1 -1
- package/dist/features/delegation-enforcer.js +10 -9
- package/dist/features/delegation-enforcer.js.map +1 -1
- package/dist/hooks/__tests__/bridge-routing.test.js +1 -0
- package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
- package/dist/hooks/autopilot/enforcement.d.ts.map +1 -1
- package/dist/hooks/autopilot/enforcement.js +19 -0
- package/dist/hooks/autopilot/enforcement.js.map +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +135 -4
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts +6 -0
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +96 -0
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +152 -23
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
- package/dist/hooks/session-end/index.d.ts +9 -2
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +90 -35
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hud/stdin.d.ts +12 -1
- package/dist/hud/stdin.d.ts.map +1 -1
- package/dist/hud/stdin.js +123 -18
- package/dist/hud/stdin.js.map +1 -1
- package/dist/hud/types.d.ts +1 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js.map +1 -1
- package/dist/installer/__tests__/session-start-template.test.d.ts +2 -0
- package/dist/installer/__tests__/session-start-template.test.d.ts.map +1 -0
- package/dist/installer/__tests__/session-start-template.test.js +174 -0
- package/dist/installer/__tests__/session-start-template.test.js.map +1 -0
- package/dist/lib/__tests__/mode-state-io.test.js +75 -12
- package/dist/lib/__tests__/mode-state-io.test.js.map +1 -1
- package/dist/lib/mode-state-io.d.ts +11 -0
- package/dist/lib/mode-state-io.d.ts.map +1 -1
- package/dist/lib/mode-state-io.js +64 -0
- package/dist/lib/mode-state-io.js.map +1 -1
- package/dist/lib/worktree-paths.d.ts +12 -0
- package/dist/lib/worktree-paths.d.ts.map +1 -1
- package/dist/lib/worktree-paths.js +75 -0
- package/dist/lib/worktree-paths.js.map +1 -1
- package/dist/planning/__tests__/artifacts.test.d.ts +2 -0
- package/dist/planning/__tests__/artifacts.test.d.ts.map +1 -0
- package/dist/planning/__tests__/artifacts.test.js +486 -0
- package/dist/planning/__tests__/artifacts.test.js.map +1 -0
- package/dist/planning/artifact-names.d.ts +13 -0
- package/dist/planning/artifact-names.d.ts.map +1 -0
- package/dist/planning/artifact-names.js +108 -0
- package/dist/planning/artifact-names.js.map +1 -0
- package/dist/planning/artifacts.d.ts +47 -0
- package/dist/planning/artifacts.d.ts.map +1 -0
- package/dist/planning/artifacts.js +221 -0
- package/dist/planning/artifacts.js.map +1 -0
- package/dist/team/__tests__/api-interop.compatibility.test.js +194 -5
- package/dist/team/__tests__/api-interop.compatibility.test.js.map +1 -1
- package/dist/team/__tests__/model-contract.test.js +92 -2
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.dispatch.test.js +30 -0
- package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
- package/dist/team/__tests__/scaling.test.js +39 -1
- package/dist/team/__tests__/scaling.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +6 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +89 -2
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/delegation-evidence.d.ts +5 -0
- package/dist/team/delegation-evidence.d.ts.map +1 -0
- package/dist/team/delegation-evidence.js +29 -0
- package/dist/team/delegation-evidence.js.map +1 -0
- package/dist/team/model-contract.d.ts +8 -0
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +13 -0
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/runtime-v2.d.ts +2 -1
- package/dist/team/runtime-v2.d.ts.map +1 -1
- package/dist/team/runtime-v2.js +3 -1
- package/dist/team/runtime-v2.js.map +1 -1
- package/dist/team/state/tasks.d.ts +4 -1
- package/dist/team/state/tasks.d.ts.map +1 -1
- package/dist/team/state/tasks.js +38 -1
- package/dist/team/state/tasks.js.map +1 -1
- package/dist/team/team-ops.d.ts +4 -1
- package/dist/team/team-ops.d.ts.map +1 -1
- package/dist/team/team-ops.js +2 -2
- package/dist/team/team-ops.js.map +1 -1
- package/dist/team/types.d.ts +22 -1
- package/dist/team/types.d.ts.map +1 -1
- package/dist/team/types.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +6 -1
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/tools/__tests__/state-tools.test.js +322 -5
- package/dist/tools/__tests__/state-tools.test.js.map +1 -1
- package/dist/tools/__tests__/wiki-tools-working-directory.test.d.ts +2 -0
- package/dist/tools/__tests__/wiki-tools-working-directory.test.d.ts.map +1 -0
- package/dist/tools/__tests__/wiki-tools-working-directory.test.js +66 -0
- package/dist/tools/__tests__/wiki-tools-working-directory.test.js.map +1 -0
- package/dist/tools/state-tools.d.ts +3 -10
- package/dist/tools/state-tools.d.ts.map +1 -1
- package/dist/tools/state-tools.js +393 -91
- package/dist/tools/state-tools.js.map +1 -1
- package/dist/tools/wiki-tools.js +8 -8
- package/dist/tools/wiki-tools.js.map +1 -1
- package/docs/GETTING-STARTED.md +7 -0
- package/docs/REFERENCE.md +5 -5
- package/docs/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/scripts/lib/model-routing-override-message.mjs +21 -0
- package/scripts/persistent-mode.cjs +107 -0
- package/scripts/persistent-mode.mjs +102 -0
- package/scripts/post-tool-verifier.mjs +1 -0
- package/scripts/pre-tool-enforcer.mjs +163 -2
- package/scripts/session-start.mjs +63 -0
- package/scripts/setup-copilot-instructions.sh +12 -2
- package/scripts/wiki-pre-compact.mjs +1 -4
- package/skills/configure-notifications/SKILL.md +3 -3
- package/skills/deep-dive/SKILL.md +52 -4
- package/skills/deep-interview/SKILL.md +109 -15
- package/skills/mcp-setup/SKILL.md +60 -45
- package/skills/omc-setup/SKILL.md +3 -3
- package/skills/omc-setup/phases/01-install-claude-md.md +1 -1
- package/skills/omc-setup/phases/04-welcome.md +8 -8
- package/skills/plan/SKILL.md +1 -1
- package/skills/project-session-manager/SKILL.md +2 -2
- package/skills/project-session-manager/psm.sh +1 -1
- package/skills/ralplan/SKILL.md +2 -2
- package/templates/hooks/lib/model-routing-override-message.mjs +21 -0
- package/templates/hooks/persistent-mode.mjs +66 -0
- package/templates/hooks/session-start.mjs +62 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: deep-interview
|
|
3
3
|
description: Socratic deep interview with mathematical ambiguity gating before autonomous execution
|
|
4
4
|
argument-hint: "[--quick|--standard|--deep] [--autoresearch] <idea or vague description>"
|
|
5
|
-
pipeline: [deep-interview,
|
|
6
|
-
next-skill:
|
|
5
|
+
pipeline: [deep-interview, plan, autopilot]
|
|
6
|
+
next-skill: plan
|
|
7
7
|
next-skill-args: --consensus --direct
|
|
8
8
|
handoff: .omcp/specs/deep-interview-{slug}.md
|
|
9
9
|
level: 3
|
|
@@ -39,10 +39,12 @@ Inspired by the [Ouroboros project](https://github.com/Q00/ouroboros) which demo
|
|
|
39
39
|
<Execution_Policy>
|
|
40
40
|
- Ask ONE question at a time -- never batch multiple questions
|
|
41
41
|
- Target the WEAKEST clarity dimension with each question
|
|
42
|
+
- Before Round 1 ambiguity scoring, run a one-time Round 0 topology enumeration gate that confirms the top-level component list and locks it into state
|
|
42
43
|
- Make weakest-dimension targeting explicit every round: name the weakest dimension, state its score/gap, and explain why the next question is aimed there
|
|
43
44
|
- Gather codebase facts via `explore` agent BEFORE asking the user about them
|
|
44
45
|
- For brownfield confirmation questions, cite the repo evidence that triggered the question (file path, symbol, or pattern) instead of asking the user to rediscover it
|
|
45
46
|
- Score ambiguity after every answer -- display the score transparently
|
|
47
|
+
- When the locked topology has multiple active components, score and target each component explicitly so depth-first clarity on one component cannot hide ambiguity in siblings
|
|
46
48
|
- Keep prompt payloads budgeted: summarize or trim oversized initial context/history before composing question, scoring, spec, or handoff prompts
|
|
47
49
|
- If the user's initial context is oversized, create a concise prompt-safe summary first and wait for that summary before ambiguity scoring, question generation, or downstream execution handoff
|
|
48
50
|
- Do not proceed to execution until ambiguity ≤ the resolved threshold for this run
|
|
@@ -103,6 +105,13 @@ When arguments include `--autoresearch`, Deep Interview becomes the zero-learnin
|
|
|
103
105
|
"current_ambiguity": 1.0,
|
|
104
106
|
"threshold": <resolvedThreshold>,
|
|
105
107
|
"codebase_context": null,
|
|
108
|
+
"topology": {
|
|
109
|
+
"status": "pending|confirmed|legacy_missing",
|
|
110
|
+
"confirmed_at": null,
|
|
111
|
+
"components": [],
|
|
112
|
+
"deferrals": [],
|
|
113
|
+
"last_targeted_component_id": null
|
|
114
|
+
},
|
|
106
115
|
"challenge_modes_used": [],
|
|
107
116
|
"ontology_snapshots": []
|
|
108
117
|
}
|
|
@@ -117,6 +126,69 @@ When arguments include `--autoresearch`, Deep Interview becomes the zero-learnin
|
|
|
117
126
|
> **Project type:** {greenfield|brownfield}
|
|
118
127
|
> **Current ambiguity:** 100% (we haven't started yet)
|
|
119
128
|
|
|
129
|
+
## Round 0: Topology Enumeration Gate
|
|
130
|
+
|
|
131
|
+
Run this gate exactly once after Phase 1 initialization and before any Phase 2 ambiguity scoring. The goal is to lock the **shape** of the user's scope before depth-first Socratic questioning can overfit to the most-described component.
|
|
132
|
+
|
|
133
|
+
1. **Enumerate candidate top-level components** from the prompt-safe initial idea and brownfield context:
|
|
134
|
+
- Extract top-level verbs/nouns, workstreams, surfaces, integrations, or deliverables that can succeed or fail independently.
|
|
135
|
+
- Prefer 1-6 components. If more than 6 candidates appear, group siblings at the highest useful level and note the grouping rationale.
|
|
136
|
+
- Do not treat implementation tasks, fields, or sub-features as top-level components unless the user framed them as independent outcomes.
|
|
137
|
+
2. **Ask one confirmation question** before Round 1:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Round 0 | Topology confirmation | Ambiguity: not scored yet
|
|
141
|
+
|
|
142
|
+
I'm reading this as {N} top-level component(s):
|
|
143
|
+
1. {component_name}: {one_sentence_description}
|
|
144
|
+
2. ...
|
|
145
|
+
|
|
146
|
+
Is that topology right? Should any component be added, removed, merged, split, or explicitly deferred?
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Options should include contextually relevant choices such as **Looks right**, **Add/remove/merge components**, **Defer one or more components**, plus free-text. This is the only pre-scoring question and preserves the one-question-per-round rule.
|
|
150
|
+
|
|
151
|
+
3. **Lock topology into state** after the answer. Store a normalized component list and confirmation timestamp:
|
|
152
|
+
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"topology": {
|
|
156
|
+
"status": "confirmed",
|
|
157
|
+
"confirmed_at": "<ISO-8601 timestamp>",
|
|
158
|
+
"components": [
|
|
159
|
+
{
|
|
160
|
+
"id": "component-slug",
|
|
161
|
+
"name": "Component Name",
|
|
162
|
+
"description": "Confirmed top-level outcome",
|
|
163
|
+
"status": "active|deferred",
|
|
164
|
+
"evidence": ["initial prompt phrase or brownfield citation"],
|
|
165
|
+
"clarity_scores": {
|
|
166
|
+
"goal": null,
|
|
167
|
+
"constraints": null,
|
|
168
|
+
"criteria": null,
|
|
169
|
+
"context": null
|
|
170
|
+
},
|
|
171
|
+
"weakest_dimension": null
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"deferrals": [
|
|
175
|
+
{
|
|
176
|
+
"component_id": "component-slug",
|
|
177
|
+
"reason": "User-confirmed deferral reason",
|
|
178
|
+
"confirmed_at": "<ISO-8601 timestamp>"
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
"last_targeted_component_id": null
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
4. **Legacy state migration:** When resuming an existing `deep-interview` state file that lacks `topology`, treat it as `"status": "legacy_missing"`. If no final `spec_path` exists yet, run Round 0 before the next ambiguity scoring pass and then continue with the existing transcript. If a final spec already exists, do not rewrite history; note in any handoff that topology was not captured for that legacy interview.
|
|
187
|
+
|
|
188
|
+
5. **Single-component pass-through:** If the user confirms one active component, Phase 2 proceeds with the existing flow while still carrying `topology.components[0]` into scoring and spec output.
|
|
189
|
+
|
|
190
|
+
6. **Four-component fixture shape:** For an initial idea such as "Build an intake pipeline that ingests CSVs, normalizes records, provides a detailed reviewer UI with inline comments and approvals, and exports audit-ready reports," Round 0 should surface all four top-level components — `Ingestion`, `Normalization`, `Review UI`, and `Export` — even though `Review UI` is the one detailed component. The detailed `Review UI` component must not collapse or stand in for the less-detailed sibling components. Phase 2 must ask follow-up questions until every active component has sufficient goal/constraint/criteria clarity. Phase 4 must cover each confirmed component in `## Topology` or explicitly list a user-confirmed deferral for that component.
|
|
191
|
+
|
|
120
192
|
## Phase 2: Interview Loop
|
|
121
193
|
|
|
122
194
|
Repeat until `ambiguity ≤ threshold` OR user exits early:
|
|
@@ -129,13 +201,15 @@ Build the question generation prompt with:
|
|
|
129
201
|
- Current clarity scores per dimension (which is weakest?)
|
|
130
202
|
- Challenge agent mode (if activated -- see Phase 3)
|
|
131
203
|
- Brownfield codebase context (if applicable), summarized to cited paths/symbols/patterns instead of raw dumps
|
|
204
|
+
- Locked topology from Round 0, including active components, deferred components, prior per-component scores, and `last_targeted_component_id`
|
|
132
205
|
|
|
133
206
|
If any prompt input is too large, summarize it first and then continue from the summary. Do not ask the next `AskUserQuestion`, score ambiguity, or hand off to execution from an over-budget raw transcript.
|
|
134
207
|
|
|
135
208
|
**Question targeting strategy:**
|
|
136
|
-
- Identify the dimension with the LOWEST clarity score
|
|
137
|
-
-
|
|
138
|
-
-
|
|
209
|
+
- Identify the active component + dimension pair with the LOWEST clarity score across the locked topology
|
|
210
|
+
- When N > 1 active components are tied or similarly weak, rotate targeting across active components rather than asking repeatedly about the last targeted component; update `topology.last_targeted_component_id` after each question
|
|
211
|
+
- Generate a question that specifically improves that component's weakest dimension
|
|
212
|
+
- State, in one sentence before the question, why this component/dimension pair is now the bottleneck to reducing ambiguity
|
|
139
213
|
- Questions should expose ASSUMPTIONS, not gather feature lists
|
|
140
214
|
- If the scope is still conceptually fuzzy (entities keep shifting, the user is naming symptoms, or the core noun is unstable), switch to an ontology-style question that asks what the thing fundamentally IS before returning to feature/detail questions
|
|
141
215
|
|
|
@@ -153,7 +227,7 @@ If any prompt input is too large, summarize it first and then continue from the
|
|
|
153
227
|
Use `AskUserQuestion` with the generated question. Present it clearly with the current ambiguity context:
|
|
154
228
|
|
|
155
229
|
```
|
|
156
|
-
Round {n} | Targeting: {weakest_dimension} | Why now: {one_sentence_targeting_rationale} | Ambiguity: {score}%
|
|
230
|
+
Round {n} | Component: {target_component_name} | Targeting: {weakest_dimension} | Why now: {one_sentence_targeting_rationale} | Ambiguity: {score}%
|
|
157
231
|
|
|
158
232
|
{question}
|
|
159
233
|
```
|
|
@@ -167,13 +241,18 @@ After receiving the user's answer, score clarity across all dimensions.
|
|
|
167
241
|
**Scoring prompt** (use opus model, temperature 0.1 for consistency):
|
|
168
242
|
|
|
169
243
|
```
|
|
170
|
-
Given the following interview transcript for a {greenfield|brownfield} project, score clarity on each dimension from 0.0 to 1.0. If the initial context or transcript was summarized for prompt safety, score from that summary plus the preserved round decisions/gaps; do not re-expand raw oversized context.
|
|
244
|
+
Given the following interview transcript for a {greenfield|brownfield} project, score clarity on each dimension from 0.0 to 1.0. If the initial context or transcript was summarized for prompt safety, score from that summary plus the preserved round decisions/gaps; do not re-expand raw oversized context. Honor the locked Round 0 topology: score every active component independently and never drop confirmed sibling components just because one component is already clear.
|
|
171
245
|
|
|
172
246
|
Original idea or prompt-safe initial-context summary: {idea_or_initial_context_summary}
|
|
173
247
|
|
|
174
248
|
Transcript or prompt-safe transcript summary:
|
|
175
249
|
{all rounds Q&A or summarized transcript}
|
|
176
250
|
|
|
251
|
+
Locked topology:
|
|
252
|
+
{state.topology.components and state.topology.deferrals}
|
|
253
|
+
|
|
254
|
+
Score each active component on each dimension, then provide the overall dimension scores as the minimum or coverage-weighted weakest score across active components. Deferred components are excluded from ambiguity math but must remain listed in topology and the final spec.
|
|
255
|
+
|
|
177
256
|
Score each dimension:
|
|
178
257
|
1. Goal Clarity (0.0-1.0): Is the primary objective unambiguous? Can you state it in one sentence without qualifiers? Can you name the key entities (nouns) and their relationships (verbs) without ambiguity?
|
|
179
258
|
2. Constraint Clarity (0.0-1.0): Are the boundaries, limitations, and non-goals clear?
|
|
@@ -186,8 +265,10 @@ For each dimension provide:
|
|
|
186
265
|
- gap: what's still unclear (if score < 0.9)
|
|
187
266
|
|
|
188
267
|
Also identify:
|
|
189
|
-
-
|
|
190
|
-
-
|
|
268
|
+
- weakest_component_id: the active component with the lowest clarity after applying rotation across components when N > 1
|
|
269
|
+
- weakest_dimension: the single lowest-confidence dimension for that component this round
|
|
270
|
+
- weakest_dimension_rationale: one sentence explaining why this component/dimension pair is the highest-leverage target for the next question
|
|
271
|
+
- component_scores: object keyed by component id, with per-dimension scores and gaps
|
|
191
272
|
|
|
192
273
|
5. Ontology Extraction: Identify all key entities (nouns) discussed in the transcript.
|
|
193
274
|
|
|
@@ -239,16 +320,18 @@ Round {n} complete.
|
|
|
239
320
|
| Context (brownfield) | {s} | {w} | {s*w} | {gap or "Clear"} |
|
|
240
321
|
| **Ambiguity** | | | **{score}%** | |
|
|
241
322
|
|
|
323
|
+
**Topology:** Targeted {target_component_name} | Active: {active_component_count} | Deferred: {deferred_component_count} | Next rotation after: {last_targeted_component_id}
|
|
324
|
+
|
|
242
325
|
**Ontology:** {entity_count} entities | Stability: {stability_ratio} | New: {new} | Changed: {changed} | Stable: {stable}
|
|
243
326
|
|
|
244
|
-
**Next target:** {weakest_dimension} — {weakest_dimension_rationale}
|
|
327
|
+
**Next target:** {target_component_name} / {weakest_dimension} — {weakest_dimension_rationale}
|
|
245
328
|
|
|
246
329
|
{score <= threshold ? "Clarity threshold met! Ready to proceed." : "Focusing next question on: {weakest_dimension}"}
|
|
247
330
|
```
|
|
248
331
|
|
|
249
332
|
### Step 2e: Update State
|
|
250
333
|
|
|
251
|
-
Update interview state with the new round
|
|
334
|
+
Update interview state with the new round, global scores, per-component `topology.components[].clarity_scores`, `topology.components[].weakest_dimension`, ontology snapshot, and `topology.last_targeted_component_id` via `state_write`.
|
|
252
335
|
|
|
253
336
|
### Step 2f: Check Soft Limits
|
|
254
337
|
|
|
@@ -310,8 +393,15 @@ Spec structure:
|
|
|
310
393
|
| **Total Clarity** | | | **{total}** |
|
|
311
394
|
| **Ambiguity** | | | **{1-total}** |
|
|
312
395
|
|
|
396
|
+
## Topology
|
|
397
|
+
{List every Round 0 confirmed top-level component. Active components must have coverage notes; deferred components must include the user-confirmed deferral reason and timestamp.}
|
|
398
|
+
|
|
399
|
+
| Component | Status | Description | Coverage / Deferral Note |
|
|
400
|
+
|-----------|--------|-------------|--------------------------|
|
|
401
|
+
| {component.name} | {active|deferred} | {component.description} | {covered acceptance criteria or deferral reason} |
|
|
402
|
+
|
|
313
403
|
## Goal
|
|
314
|
-
{crystal-clear goal statement derived from interview}
|
|
404
|
+
{crystal-clear goal statement derived from interview, covering every active topology component}
|
|
315
405
|
|
|
316
406
|
## Constraints
|
|
317
407
|
- {constraint 1}
|
|
@@ -379,7 +469,7 @@ After the spec is written, present execution options via `AskUserQuestion`:
|
|
|
379
469
|
|
|
380
470
|
1. **Ralplan → Autopilot (Recommended)**
|
|
381
471
|
- Description: "3-stage pipeline: consensus-refine this spec with Planner/Architect/Critic, then execute with full autopilot. Maximum quality."
|
|
382
|
-
- Action: Invoke `Skill("oh-my-copilot:
|
|
472
|
+
- Action: Invoke `Skill("oh-my-copilot:plan")` with `--consensus --direct` flags and the spec file path as context. The `--direct` flag skips the omc-plan skill's interview phase (the deep interview already gathered requirements), while `--consensus` triggers the Planner/Architect/Critic loop. When consensus completes and produces a plan in `.omcp/plans/`, invoke `Skill("oh-my-copilot:autopilot")` with the consensus plan as Phase 0+1 output — autopilot skips both Expansion and Planning, starting directly at Phase 2 (Execution).
|
|
383
473
|
- Pipeline: `deep-interview spec → omc-plan --consensus --direct → autopilot execution`
|
|
384
474
|
|
|
385
475
|
2. **Execute with autopilot (skip ralplan)**
|
|
@@ -431,6 +521,7 @@ Skipping any stage is possible but reduces quality assurance:
|
|
|
431
521
|
- Preserve the AskUserQuestion path for OMC-native interaction; do not introduce OMX-only structured-question transport into this skill
|
|
432
522
|
- Use `Task(subagent_type="oh-my-copilot:explore", model="haiku")` for brownfield codebase exploration (run BEFORE asking user about codebase)
|
|
433
523
|
- Use opus model (temperature 0.1) for ambiguity scoring — consistency is critical
|
|
524
|
+
- Round 0 topology confirmation happens before ambiguity scoring; Phase 2 scoring must honor locked topology and rotate targeting across active components when more than one is present
|
|
434
525
|
- Use `state_write` / `state_read` for interview state persistence
|
|
435
526
|
- Use `Write` tool to save the final spec to `.omcp/specs/deep-interview-{slug}.md` exactly; use `.omcp/state/` or `state_write` for ephemeral artifacts
|
|
436
527
|
- Use `Skill()` to bridge to execution modes — never implement directly
|
|
@@ -555,14 +646,17 @@ Why bad: 45% ambiguity means nearly half the requirements are unclear. The mathe
|
|
|
555
646
|
- [ ] Every round explicitly names the weakest dimension and why it is the next target
|
|
556
647
|
- [ ] Challenge agents activated at correct thresholds (round 4, 6, 8)
|
|
557
648
|
- [ ] Spec file written to `.omcp/specs/deep-interview-{slug}.md` exactly; ephemeral artifacts stayed under `.omcp/state/` or `state_write`
|
|
558
|
-
- [ ] Spec includes: goal, constraints, acceptance criteria, clarity breakdown, transcript
|
|
649
|
+
- [ ] Spec includes: topology, goal, constraints, acceptance criteria, clarity breakdown, transcript
|
|
559
650
|
- [ ] Execution bridge presented via AskUserQuestion
|
|
560
651
|
- [ ] Selected execution mode invoked via Skill() (never direct implementation)
|
|
561
652
|
- [ ] If 3-stage pipeline selected: omc-plan --consensus --direct invoked, then autopilot with consensus plan
|
|
562
653
|
- [ ] State cleaned up after execution handoff
|
|
563
654
|
- [ ] Brownfield confirmation questions cite repo evidence (file/path/pattern) before asking the user to decide
|
|
564
655
|
- [ ] Scope-fuzzy tasks can trigger ontology-style questioning to stabilize the core entity before feature elaboration
|
|
565
|
-
- [ ]
|
|
656
|
+
- [ ] Round 0 topology gate completed before ambiguity scoring and persisted `topology.confirmed_at`
|
|
657
|
+
- [ ] Per-round ambiguity report includes Topology target/coverage and Ontology row with entity count and stability ratio
|
|
658
|
+
- [ ] Multi-component interviews rotate targeting across active components when N > 1
|
|
659
|
+
- [ ] Spec includes Topology section with confirmed active components and user-confirmed deferrals
|
|
566
660
|
- [ ] Spec includes Ontology (Key Entities) table and Ontology Convergence section
|
|
567
661
|
</Final_Checklist>
|
|
568
662
|
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mcp-setup
|
|
3
3
|
description: Configure popular MCP servers for enhanced agent capabilities
|
|
4
|
-
level: 2
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# MCP Setup
|
|
8
7
|
|
|
9
|
-
Configure Model Context Protocol (MCP) servers to extend
|
|
8
|
+
Configure Model Context Protocol (MCP) servers to extend Copilot CLI's capabilities with external tools like web search, token optimization, and DevOps integration.
|
|
10
9
|
|
|
11
10
|
## Overview
|
|
12
11
|
|
|
13
|
-
MCP servers provide additional tools that
|
|
12
|
+
MCP servers provide additional tools that Copilot CLI agents can use. This skill helps you configure popular MCP servers using the `copilot mcp add` command-line interface.
|
|
14
13
|
|
|
15
14
|
## Step 1: Choose a Setup Path
|
|
16
15
|
|
|
17
|
-
Use **AskUserQuestion** with **one question at a time** and **no more than 3 options per question**. Recent
|
|
16
|
+
Use **AskUserQuestion** with **one question at a time** and **no more than 3 options per question**. Recent Copilot CLI builds reject larger option payloads as invalid tool parameters, so keep the MCP selection flow staged.
|
|
18
17
|
|
|
19
18
|
### Step 1.1: First menu
|
|
20
19
|
|
|
21
20
|
**Question:** "What kind of MCP setup would you like?"
|
|
22
21
|
|
|
23
22
|
**Options:**
|
|
24
|
-
1. **Recommended starter setup** - Fast path for the most common
|
|
23
|
+
1. **Recommended starter setup** - Fast path for the most common OMCP MCP additions
|
|
25
24
|
2. **Individual popular server** - Pick one built-in server from a short follow-up menu
|
|
26
25
|
3. **Custom server** - Add your own stdio or HTTP MCP server
|
|
27
26
|
|
|
@@ -33,8 +32,8 @@ Ask a follow-up **AskUserQuestion**:
|
|
|
33
32
|
|
|
34
33
|
**Options:**
|
|
35
34
|
1. **Context7 only (Recommended)** - Zero-config docs/context server
|
|
36
|
-
2. **Context7 +
|
|
37
|
-
3. **Full recommended bundle** - Context7,
|
|
35
|
+
2. **Context7 + lean-ctx** - Docs/context plus token-saving compression layer
|
|
36
|
+
3. **Full recommended bundle** - Context7, lean-ctx, Exa, and GitHub
|
|
38
37
|
|
|
39
38
|
Map that choice to the server list you will configure.
|
|
40
39
|
|
|
@@ -46,17 +45,17 @@ Ask a follow-up **AskUserQuestion**:
|
|
|
46
45
|
|
|
47
46
|
**Options:**
|
|
48
47
|
1. **Context7 (Recommended)** - Documentation and code context from popular libraries
|
|
49
|
-
2. **
|
|
50
|
-
3. **More server choices** -
|
|
48
|
+
2. **lean-ctx** - Token-saving compression layer for Read/Grep/Bash tools
|
|
49
|
+
3. **More server choices** - Exa, GitHub, Azure DevOps, or the full recommended bundle
|
|
51
50
|
|
|
52
51
|
If the user chooses **More server choices**, ask one more **AskUserQuestion**:
|
|
53
52
|
|
|
54
53
|
**Question:** "Which additional MCP option do you want?"
|
|
55
54
|
|
|
56
55
|
**Options:**
|
|
57
|
-
1. **
|
|
58
|
-
2. **GitHub
|
|
59
|
-
3. **Full recommended bundle** - Configure Context7,
|
|
56
|
+
1. **Exa Web Search** - Enhanced web search (replaces built-in websearch)
|
|
57
|
+
2. **GitHub / Azure DevOps** - Repository and project management integration
|
|
58
|
+
3. **Full recommended bundle** - Configure Context7, lean-ctx, Exa, and GitHub together
|
|
60
59
|
|
|
61
60
|
### Step 1.4: If the user chooses "Custom server"
|
|
62
61
|
|
|
@@ -75,13 +74,9 @@ Do you have an Exa API key?
|
|
|
75
74
|
- Enter your API key, or type 'skip' to configure later
|
|
76
75
|
```
|
|
77
76
|
|
|
78
|
-
### For
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
Which directories should the filesystem MCP have access to?
|
|
82
|
-
Default: Current working directory
|
|
83
|
-
Enter comma-separated paths, or press Enter for default
|
|
84
|
-
```
|
|
77
|
+
### For lean-ctx:
|
|
78
|
+
No API key required. Installs automatically. Saves 60-80% input tokens via caching and compression.
|
|
79
|
+
More info: https://github.com/yvgude/lean-ctx
|
|
85
80
|
|
|
86
81
|
### For GitHub:
|
|
87
82
|
Ask for token:
|
|
@@ -92,46 +87,64 @@ Do you have a GitHub Personal Access Token?
|
|
|
92
87
|
- Enter your token, or type 'skip' to configure later
|
|
93
88
|
```
|
|
94
89
|
|
|
90
|
+
### For Azure DevOps:
|
|
91
|
+
Ask for organization:
|
|
92
|
+
```
|
|
93
|
+
What is your Azure DevOps organization URL?
|
|
94
|
+
- Example: https://dev.azure.com/my-org
|
|
95
|
+
- Enter your organization URL, or type 'skip' to configure later
|
|
96
|
+
```
|
|
97
|
+
More info: https://github.com/microsoft/azure-devops-mcp
|
|
98
|
+
|
|
95
99
|
## Step 3: Add MCP Servers Using CLI
|
|
96
100
|
|
|
97
|
-
Use the `
|
|
101
|
+
Use the `copilot mcp add` command to configure each MCP server. The CLI automatically handles settings.json updates and merging.
|
|
98
102
|
|
|
99
103
|
### Context7 Configuration:
|
|
100
104
|
```bash
|
|
101
|
-
|
|
105
|
+
copilot mcp add context7 -- npx -y @upstash/context7-mcp
|
|
102
106
|
```
|
|
103
107
|
|
|
104
108
|
### Exa Web Search Configuration:
|
|
105
109
|
```bash
|
|
106
|
-
|
|
110
|
+
copilot mcp add -e EXA_API_KEY=<user-provided-key> exa -- npx -y exa-mcp-server
|
|
107
111
|
```
|
|
108
112
|
|
|
109
|
-
###
|
|
113
|
+
### lean-ctx Configuration:
|
|
110
114
|
```bash
|
|
111
|
-
|
|
115
|
+
npm install -g lean-ctx-bin && lean-ctx setup
|
|
112
116
|
```
|
|
117
|
+
> Note: lean-ctx uses its own installer (`lean-ctx setup`) which auto-configures shell and all detected editors. It hooks into existing tools (Read, Grep, Bash) to compress and cache results automatically.
|
|
118
|
+
|
|
113
119
|
|
|
114
120
|
### GitHub Configuration:
|
|
115
121
|
|
|
116
122
|
**Option 1: Docker (local)**
|
|
117
123
|
```bash
|
|
118
|
-
|
|
124
|
+
copilot mcp add -e GITHUB_PERSONAL_ACCESS_TOKEN=<user-provided-token> github -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
|
|
119
125
|
```
|
|
120
126
|
|
|
121
127
|
**Option 2: HTTP (remote)**
|
|
122
128
|
```bash
|
|
123
|
-
|
|
129
|
+
copilot mcp add --transport http github https://api.githubcopilot.com/mcp/
|
|
124
130
|
```
|
|
125
131
|
|
|
126
132
|
> Note: Docker option requires Docker installed. HTTP option is simpler but may have different capabilities.
|
|
127
133
|
|
|
134
|
+
### Azure DevOps Configuration:
|
|
135
|
+
```bash
|
|
136
|
+
copilot mcp add azure-devops -- npx -y @microsoft/azure-devops-mcp
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
> Note: Requires Azure DevOps authentication. Run `az login` first or configure a PAT. See https://github.com/microsoft/azure-devops-mcp for setup details.
|
|
140
|
+
|
|
128
141
|
## Step 4: Verify Installation
|
|
129
142
|
|
|
130
143
|
After configuration, verify the MCP servers are properly set up:
|
|
131
144
|
|
|
132
145
|
```bash
|
|
133
146
|
# List configured MCP servers
|
|
134
|
-
|
|
147
|
+
copilot mcp list
|
|
135
148
|
```
|
|
136
149
|
|
|
137
150
|
This will display all configured MCP servers and their status.
|
|
@@ -145,26 +158,27 @@ CONFIGURED SERVERS:
|
|
|
145
158
|
[List the servers that were configured]
|
|
146
159
|
|
|
147
160
|
NEXT STEPS:
|
|
148
|
-
1. Restart
|
|
161
|
+
1. Restart Copilot CLI for changes to take effect
|
|
149
162
|
2. The configured MCP tools will be available to all agents
|
|
150
|
-
3. Run `
|
|
163
|
+
3. Run `copilot mcp list` to verify configuration
|
|
151
164
|
|
|
152
165
|
USAGE TIPS:
|
|
153
166
|
- Context7: Ask about library documentation (e.g., "How do I use React hooks?")
|
|
154
167
|
- Exa: Use for web searches (e.g., "Search the web for latest TypeScript features")
|
|
155
|
-
-
|
|
168
|
+
- lean-ctx: Automatic — compresses Read/Grep/Bash results to save tokens
|
|
156
169
|
- GitHub: Interact with GitHub repos, issues, and PRs
|
|
170
|
+
- Azure DevOps: Manage work items, pipelines, repos, and wikis
|
|
157
171
|
|
|
158
172
|
TROUBLESHOOTING:
|
|
159
|
-
- If MCP servers don't appear, run `
|
|
173
|
+
- If MCP servers don't appear, run `copilot mcp list` to check status
|
|
160
174
|
- Ensure you have Node.js 18+ installed for npx-based servers
|
|
161
175
|
- For GitHub Docker option, ensure Docker is installed and running
|
|
162
176
|
- Run /oh-my-copilot:omc-doctor to diagnose issues
|
|
163
177
|
|
|
164
178
|
MANAGING MCP SERVERS:
|
|
165
|
-
- Add more servers: /oh-my-copilot:mcp-setup or `
|
|
166
|
-
- List servers: `
|
|
167
|
-
- Remove a server: `
|
|
179
|
+
- Add more servers: /oh-my-copilot:mcp-setup or `copilot mcp add ...`
|
|
180
|
+
- List servers: `copilot mcp list`
|
|
181
|
+
- Remove a server: `copilot mcp remove <server-name>`
|
|
168
182
|
```
|
|
169
183
|
|
|
170
184
|
## Custom MCP Server
|
|
@@ -179,24 +193,24 @@ Ask for:
|
|
|
179
193
|
5. Environment variables (optional, key=value pairs)
|
|
180
194
|
6. HTTP headers (optional, for http transport only)
|
|
181
195
|
|
|
182
|
-
Then construct and run the appropriate `
|
|
196
|
+
Then construct and run the appropriate `copilot mcp add` command:
|
|
183
197
|
|
|
184
198
|
**For stdio servers:**
|
|
185
199
|
```bash
|
|
186
200
|
# Without environment variables
|
|
187
|
-
|
|
201
|
+
copilot mcp add <server-name> -- <command> [args...]
|
|
188
202
|
|
|
189
203
|
# With environment variables
|
|
190
|
-
|
|
204
|
+
copilot mcp add -e KEY1=value1 -e KEY2=value2 <server-name> -- <command> [args...]
|
|
191
205
|
```
|
|
192
206
|
|
|
193
207
|
**For HTTP servers:**
|
|
194
208
|
```bash
|
|
195
209
|
# Basic HTTP server
|
|
196
|
-
|
|
210
|
+
copilot mcp add --transport http <server-name> <url>
|
|
197
211
|
|
|
198
212
|
# HTTP server with headers
|
|
199
|
-
|
|
213
|
+
copilot mcp add --transport http --header "Authorization: Bearer <token>" <server-name> <url>
|
|
200
214
|
```
|
|
201
215
|
|
|
202
216
|
### Company-context convention
|
|
@@ -206,7 +220,7 @@ If the custom server is meant to provide organization-specific reference materia
|
|
|
206
220
|
Example local registration:
|
|
207
221
|
|
|
208
222
|
```bash
|
|
209
|
-
|
|
223
|
+
copilot mcp add company-context -- node examples/vendor-mcp-server/server.mjs
|
|
210
224
|
```
|
|
211
225
|
|
|
212
226
|
Then point OMC at the full tool name in `.copilot/omg.jsonc` or `~/.config/copilot-omg/config.jsonc`:
|
|
@@ -227,19 +241,20 @@ This remains advisory prompt context, not runtime enforcement.
|
|
|
227
241
|
### MCP Server Not Loading
|
|
228
242
|
- Ensure Node.js 18+ is installed
|
|
229
243
|
- Check that npx is available in PATH
|
|
230
|
-
- Run `
|
|
244
|
+
- Run `copilot mcp list` to verify server status
|
|
231
245
|
- Check server logs for errors
|
|
232
246
|
|
|
233
247
|
### API Key Issues
|
|
234
248
|
- Exa: Verify key at https://dashboard.exa.ai
|
|
235
249
|
- GitHub: Ensure token has required scopes (repo, read:org)
|
|
236
|
-
-
|
|
250
|
+
- Azure DevOps: Run `az login` or check PAT permissions
|
|
251
|
+
- Re-run `copilot mcp add` with correct credentials if needed
|
|
237
252
|
|
|
238
253
|
### Agents Still Using Built-in Tools
|
|
239
|
-
- Restart
|
|
254
|
+
- Restart Copilot CLI after configuration
|
|
240
255
|
- The built-in websearch will be deprioritized when exa is configured
|
|
241
|
-
- Run `
|
|
256
|
+
- Run `copilot mcp list` to confirm servers are active
|
|
242
257
|
|
|
243
258
|
### Removing or Updating a Server
|
|
244
|
-
- Remove: `
|
|
259
|
+
- Remove: `copilot mcp remove <server-name>`
|
|
245
260
|
- Update: Remove the old server, then add it again with new configuration
|
|
@@ -79,7 +79,7 @@ EXAMPLES:
|
|
|
79
79
|
/oh-my-copilot:omc-setup --global # Update all projects
|
|
80
80
|
/oh-my-copilot:omc-setup --force # Re-run full setup wizard
|
|
81
81
|
|
|
82
|
-
For more info: https://github.com/
|
|
82
|
+
For more info: https://github.com/RobinNorberg/oh-my-copilot
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
## Pre-Setup Check: Already Configured?
|
|
@@ -156,13 +156,13 @@ bash "${CLAUDE_PLUGIN_ROOT}/scripts/setup-progress.sh" clear
|
|
|
156
156
|
## Phase Execution
|
|
157
157
|
|
|
158
158
|
### For `--local` or `--global` flags:
|
|
159
|
-
Read the file at `${CLAUDE_PLUGIN_ROOT}/skills/omc-setup/phases/01-install-
|
|
159
|
+
Read the file at `${CLAUDE_PLUGIN_ROOT}/skills/omc-setup/phases/01-install-copilot-instructions.md` and follow its instructions.
|
|
160
160
|
(The phase file handles early exit for flag mode.)
|
|
161
161
|
|
|
162
162
|
### For full setup (default or --force):
|
|
163
163
|
Execute phases sequentially. For each phase, read the corresponding file and follow its instructions:
|
|
164
164
|
|
|
165
|
-
1. **Phase 1 - Install
|
|
165
|
+
1. **Phase 1 - Install copilot-instructions.md**: Read `${CLAUDE_PLUGIN_ROOT}/skills/omc-setup/phases/01-install-copilot-instructions.md` and follow its instructions.
|
|
166
166
|
|
|
167
167
|
2. **Phase 2 - Environment Configuration**: Read `${CLAUDE_PLUGIN_ROOT}/skills/omc-setup/phases/02-configure.md` and follow its instructions. Phase 2 must delegate HUD/statusLine setup to the `hud` skill; do not generate or patch `statusLine` paths inline here.
|
|
168
168
|
|
|
@@ -46,7 +46,7 @@ For `local` installs inside a git repository, the script also seeds `.git/info/e
|
|
|
46
46
|
|
|
47
47
|
**FALLBACK** if curl fails:
|
|
48
48
|
Tell user to manually download from:
|
|
49
|
-
https://raw.githubusercontent.com/
|
|
49
|
+
https://raw.githubusercontent.com/RobinNorberg/oh-my-copilot/main/docs/CLAUDE.md
|
|
50
50
|
|
|
51
51
|
**Note**: The downloaded CLAUDE.md includes Context Persistence instructions with `<remember>` tags for surviving conversation compaction.
|
|
52
52
|
|
|
@@ -134,7 +134,7 @@ gh auth status &>/dev/null
|
|
|
134
134
|
**Before prompting, check if the repository is already starred:**
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
|
-
gh api user/starred/
|
|
137
|
+
gh api user/starred/RobinNorberg/oh-my-copilot &>/dev/null
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
**If already starred (exit code 0):**
|
|
@@ -147,15 +147,15 @@ Use AskUserQuestion:
|
|
|
147
147
|
|
|
148
148
|
**Question:** "If you're enjoying oh-my-copilot, would you like to support the project by starring it on GitHub?"
|
|
149
149
|
|
|
150
|
-
**Options
|
|
151
|
-
1. **Yes, star it
|
|
152
|
-
2. **
|
|
153
|
-
3. **
|
|
150
|
+
**Options** (list in this exact order — Copilot CLI preselects the first option):
|
|
151
|
+
1. **Yes, star it! (Recommended)** - Star the repository
|
|
152
|
+
2. **Maybe later** - Skip without further prompts
|
|
153
|
+
3. **No thanks** - Skip without further prompts
|
|
154
154
|
|
|
155
|
-
If user chooses "Yes, star it!":
|
|
155
|
+
If user chooses "Yes, star it! (Recommended)":
|
|
156
156
|
|
|
157
157
|
```bash
|
|
158
|
-
gh api -X PUT /user/starred/
|
|
158
|
+
gh api -X PUT /user/starred/RobinNorberg/oh-my-copilot 2>/dev/null && echo "Thanks for starring!" || true
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
**Note:** Fail silently if the API call doesn't work - never block setup completion.
|
|
@@ -165,7 +165,7 @@ gh api -X PUT /user/starred/Yeachan-Heo/oh-my-copilot 2>/dev/null && echo "Thank
|
|
|
165
165
|
```bash
|
|
166
166
|
echo ""
|
|
167
167
|
echo "If you enjoy oh-my-copilot, consider starring the repo:"
|
|
168
|
-
echo " https://github.com/
|
|
168
|
+
echo " https://github.com/RobinNorberg/oh-my-copilot"
|
|
169
169
|
echo ""
|
|
170
170
|
```
|
|
171
171
|
|
package/skills/plan/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: omc-plan
|
|
3
3
|
description: Strategic planning with optional interview workflow
|
|
4
4
|
argument-hint: "[--direct|--consensus|--review] [--interactive] [--deliberate] <task description>"
|
|
5
|
-
pipeline: [deep-interview,
|
|
5
|
+
pipeline: [deep-interview, plan, autopilot]
|
|
6
6
|
next-skill: autopilot
|
|
7
7
|
handoff: .omcp/plans/ralplan-*.md
|
|
8
8
|
level: 4
|
|
@@ -50,7 +50,7 @@ Supported formats:
|
|
|
50
50
|
{
|
|
51
51
|
"aliases": {
|
|
52
52
|
"omc": {
|
|
53
|
-
"repo": "
|
|
53
|
+
"repo": "RobinNorberg/oh-my-copilot",
|
|
54
54
|
"local": "~/Workspace/oh-my-copilot",
|
|
55
55
|
"default_base": "main"
|
|
56
56
|
}
|
|
@@ -564,7 +564,7 @@ if [[ ! -f ~/.psm/projects.json ]]; then
|
|
|
564
564
|
{
|
|
565
565
|
"aliases": {
|
|
566
566
|
"omc": {
|
|
567
|
-
"repo": "
|
|
567
|
+
"repo": "RobinNorberg/oh-my-copilot",
|
|
568
568
|
"local": "~/Workspace/oh-my-copilot",
|
|
569
569
|
"default_base": "main"
|
|
570
570
|
}
|
package/skills/ralplan/SKILL.md
CHANGED
|
@@ -7,7 +7,7 @@ level: 4
|
|
|
7
7
|
|
|
8
8
|
# Ralplan (Consensus Planning Alias)
|
|
9
9
|
|
|
10
|
-
Ralplan is a shorthand alias for `/oh-my-copilot:
|
|
10
|
+
Ralplan is a shorthand alias for `/oh-my-copilot:plan --consensus`. It triggers iterative planning with Planner, Architect, and Critic agents until consensus is reached, with **RALPLAN-DR structured deliberation** (short mode by default, deliberate mode for high-risk work).
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
@@ -33,7 +33,7 @@ Ralplan is a shorthand alias for `/oh-my-copilot:omc-plan --consensus`. It trigg
|
|
|
33
33
|
This skill invokes the Plan skill in consensus mode:
|
|
34
34
|
|
|
35
35
|
```
|
|
36
|
-
/oh-my-copilot:
|
|
36
|
+
/oh-my-copilot:plan --consensus <arguments>
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
The consensus workflow:
|