viepilot 2.50.1 → 3.7.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.
- package/CHANGELOG.md +204 -0
- package/README.md +1 -1
- package/bin/viepilot.cjs +1 -0
- package/bin/vp-tools.cjs +123 -1
- package/docs/brainstorm/session-2026-05-22.md +472 -0
- package/docs/dev/agents.md +51 -41
- package/lib/adapter-context.cjs +294 -0
- package/lib/adapters/antigravity.cjs +8 -2
- package/lib/adapters/claude-code.cjs +4 -0
- package/lib/audit/browser-runner.cjs +102 -0
- package/lib/intake/adapters/browser.cjs +58 -0
- package/lib/intake/adapters/excel-m365.cjs +54 -6
- package/lib/intake/auto-intake.cjs +194 -0
- package/lib/intake/classifier.cjs +22 -4
- package/lib/intake/manifest.cjs +81 -0
- package/lib/intake/triage-ux.cjs +10 -2
- package/lib/intake/validator.cjs +97 -0
- package/lib/intake/writeback.cjs +169 -3
- package/lib/request/url-enricher.cjs +69 -0
- package/lib/viepilot-install.cjs +15 -0
- package/package.json +1 -1
- package/skills/vp-audit/SKILL.md +99 -3
- package/skills/vp-auto/SKILL.md +54 -4
- package/skills/vp-brainstorm/SKILL.md +69 -3
- package/skills/vp-crystallize/SKILL.md +52 -3
- package/skills/vp-debug/SKILL.md +52 -3
- package/skills/vp-design/SKILL.md +52 -3
- package/skills/vp-docs/SKILL.md +52 -3
- package/skills/vp-evolve/SKILL.md +52 -3
- package/skills/vp-info/SKILL.md +52 -3
- package/skills/vp-intake/SKILL.md +306 -7
- package/skills/vp-pause/SKILL.md +52 -3
- package/skills/vp-persona/SKILL.md +52 -3
- package/skills/vp-proposal/SKILL.md +52 -3
- package/skills/vp-request/SKILL.md +72 -3
- package/skills/vp-resume/SKILL.md +52 -3
- package/skills/vp-rollback/SKILL.md +52 -3
- package/skills/vp-skills/SKILL.md +52 -3
- package/skills/vp-status/SKILL.md +52 -3
- package/skills/vp-task/SKILL.md +52 -3
- package/skills/vp-ui-components/SKILL.md +52 -3
- package/skills/vp-update/SKILL.md +52 -3
- package/workflows/autonomous.md +268 -18
- package/workflows/brainstorm.md +222 -7
- package/workflows/crystallize.md +124 -6
- package/workflows/design.md +62 -1
- package/workflows/request.md +54 -8
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const URL_ROUTES = {
|
|
4
|
+
github: /github\.com\/[^/]+\/[^/]+\/issues\/\d+/,
|
|
5
|
+
linear: /linear\.app\/[^/]+\/issue\/[A-Z]+-\d+/,
|
|
6
|
+
jira: /atlassian\.net\/browse\/[A-Z]+-\d+/,
|
|
7
|
+
trello: /trello\.com\/c\/[a-zA-Z0-9]+/,
|
|
8
|
+
notion: /notion\.so\/[a-f0-9-]{8,}/,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Detect whether input string contains a known issue-tracker URL.
|
|
13
|
+
* @param {string} input - raw user input (may contain URL anywhere)
|
|
14
|
+
* @returns {{ matched: boolean, source?: string, url?: string }}
|
|
15
|
+
*/
|
|
16
|
+
function detectIssueUrl(input) {
|
|
17
|
+
if (!input || typeof input !== 'string') return { matched: false };
|
|
18
|
+
// Extract first https?:// URL from input
|
|
19
|
+
const urlMatch = input.match(/https?:\/\/[^\s]+/);
|
|
20
|
+
if (!urlMatch) return { matched: false };
|
|
21
|
+
const url = urlMatch[0].replace(/[.,!?)]+$/, ''); // strip trailing punctuation
|
|
22
|
+
for (const [source, pattern] of Object.entries(URL_ROUTES)) {
|
|
23
|
+
if (pattern.test(url)) return { matched: true, source, url };
|
|
24
|
+
}
|
|
25
|
+
return { matched: false };
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Enrich a request with details extracted from an issue URL via browser-intake-agent.
|
|
30
|
+
* Returns null (never throws) when extraction fails or agent is unavailable.
|
|
31
|
+
* CC adapter only — dispatched by vp-request SKILL.md / workflows/request.md.
|
|
32
|
+
* @param {string} url
|
|
33
|
+
* @param {string} source - detected source type
|
|
34
|
+
* @param {string} projectRoot
|
|
35
|
+
* @returns {Promise<{title,type,description,priority,labels}|null>}
|
|
36
|
+
*/
|
|
37
|
+
async function enrichFromUrl(url, source, projectRoot) {
|
|
38
|
+
try {
|
|
39
|
+
// CC adapter: Agent dispatch is handled by request.md (orchestrator layer).
|
|
40
|
+
// Direct callers (non-CC) receive null — enrichment silently skipped.
|
|
41
|
+
return null;
|
|
42
|
+
} catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Format pre-fill display for user confirmation.
|
|
49
|
+
* @param {object} enriched - { title, type, description, priority, labels }
|
|
50
|
+
* @param {string} url
|
|
51
|
+
* @returns {string} formatted display string
|
|
52
|
+
*/
|
|
53
|
+
function formatPreFillDisplay(enriched, url) {
|
|
54
|
+
if (!enriched) return '';
|
|
55
|
+
const lines = [
|
|
56
|
+
`Context extracted from: ${url}`,
|
|
57
|
+
``,
|
|
58
|
+
` Title: ${enriched.title || '(not detected)'}`,
|
|
59
|
+
` Type: ${enriched.type || '(not detected)'}`,
|
|
60
|
+
` Description: ${String(enriched.description || '').slice(0, 120)}${(enriched.description || '').length > 120 ? '...' : ''}`,
|
|
61
|
+
` Priority: ${enriched.priority || '(not detected)'}`,
|
|
62
|
+
];
|
|
63
|
+
if (enriched.labels && enriched.labels.length > 0) {
|
|
64
|
+
lines.push(` Labels: ${enriched.labels.join(', ')}`);
|
|
65
|
+
}
|
|
66
|
+
return lines.join('\n');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
module.exports = { detectIssueUrl, enrichFromUrl, formatPreFillDisplay, URL_ROUTES };
|
package/lib/viepilot-install.cjs
CHANGED
|
@@ -203,6 +203,21 @@ function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
|
203
203
|
steps.push(ent.isDirectory() ? { kind: 'copy_dir', from: src, to: dest } : { kind: 'copy_file', from: src, to: dest });
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
|
+
// BUG-027: copy adapter-native agent definitions to adapter's native agents dir
|
|
207
|
+
// e.g. agents/claude-code/ → ~/.claude/agents/ (not ~/.claude/viepilot/agents/claude-code/)
|
|
208
|
+
if (adapter.claudeAgentsSrc && adapter.claudeAgentsDir) {
|
|
209
|
+
const agentsSrcDir = path.join(root, adapter.claudeAgentsSrc);
|
|
210
|
+
const agentsDestDir = adapter.claudeAgentsDir(home);
|
|
211
|
+
if (fs.existsSync(agentsSrcDir)) {
|
|
212
|
+
steps.push({ kind: 'mkdir', path: agentsDestDir });
|
|
213
|
+
for (const ent of fs.readdirSync(agentsSrcDir, { withFileTypes: true })) {
|
|
214
|
+
const src = path.join(agentsSrcDir, ent.name);
|
|
215
|
+
const dest = path.join(agentsDestDir, ent.name);
|
|
216
|
+
steps.push(ent.isDirectory() ? { kind: 'copy_dir', from: src, to: dest } : { kind: 'copy_file', from: src, to: dest });
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
206
221
|
// BUG-007: copy package.json so resolveViepilotPackageRoot() finds the root
|
|
207
222
|
steps.push({ kind: 'copy_file', from: path.join(root, 'package.json'), to: path.join(vpDir, 'package.json') });
|
|
208
223
|
|
package/package.json
CHANGED
package/skills/vp-audit/SKILL.md
CHANGED
|
@@ -53,7 +53,7 @@ Silent if command unavailable or errors.
|
|
|
53
53
|
</persona_context>
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
<
|
|
56
|
+
<adapter id="claude-code">
|
|
57
57
|
## A. Skill Invocation
|
|
58
58
|
- Skill được gọi khi user mention `vp-audit`, `/vp-audit`, "audit", "kiểm tra", "check docs"
|
|
59
59
|
- Treat all user text after the skill mention as `{{VP_ARGS}}`
|
|
@@ -62,8 +62,57 @@ Silent if command unavailable or errors.
|
|
|
62
62
|
Display audit results clearly with actionable suggestions grouped by tier.
|
|
63
63
|
|
|
64
64
|
## C. Tool Usage
|
|
65
|
-
Use
|
|
66
|
-
|
|
65
|
+
Use Claude Code tools: `Bash` (shell), `Read` (file), `Edit` + `Write` (file write/patch),
|
|
66
|
+
`Grep` (search), `Glob` (file patterns), `LS`, `WebSearch`, `WebFetch`,
|
|
67
|
+
`Agent` (spawn subagent — multi-level nesting supported)
|
|
68
|
+
Interactive: `AskUserQuestion` (deferred — preload via ToolSearch before first call)
|
|
69
|
+
</adapter>
|
|
70
|
+
|
|
71
|
+
<adapter id="cursor-agent">
|
|
72
|
+
## A. Skill Invocation
|
|
73
|
+
Same trigger keywords as claude-code adapter.
|
|
74
|
+
|
|
75
|
+
## C. Tool Usage
|
|
76
|
+
Use Cursor tools: `run_terminal_cmd` (shell), `read_file` (read), `edit_file` (write/edit),
|
|
77
|
+
`grep_search` (search), `web_search`, `codebase_search`, `list_dir`, `file_search`
|
|
78
|
+
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
|
|
79
|
+
Subagent: `/multitask` (user command, single-level only — not a callable tool)
|
|
80
|
+
MCP limit: 40 tools
|
|
81
|
+
</adapter>
|
|
82
|
+
|
|
83
|
+
<adapter id="antigravity">
|
|
84
|
+
## A. Skill Invocation
|
|
85
|
+
Same trigger keywords as claude-code adapter.
|
|
86
|
+
Skill discovery: LLM-driven (automatic, no slash command needed).
|
|
87
|
+
|
|
88
|
+
## C. Tool Usage
|
|
89
|
+
Use Antigravity tools: `shell` (cmd), `file_read`, `file_write`, MCP plugins
|
|
90
|
+
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
|
|
91
|
+
Skill path: `.agents/skills/<skill>/SKILL.md` (project) or `~/.gemini/antigravity/skills/` (global)
|
|
92
|
+
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
|
|
93
|
+
</adapter>
|
|
94
|
+
|
|
95
|
+
<adapter id="codex">
|
|
96
|
+
## A. Skill Invocation
|
|
97
|
+
Same trigger keywords as claude-code adapter.
|
|
98
|
+
|
|
99
|
+
## C. Tool Usage
|
|
100
|
+
Use Codex tools: `container.exec` (sandboxed shell), `apply_patch` (file write), `web_search`
|
|
101
|
+
Interactive: text fallback (TUI Tab/Enter injection)
|
|
102
|
+
Config: `~/.codex/config.toml`
|
|
103
|
+
</adapter>
|
|
104
|
+
|
|
105
|
+
<adapter id="copilot">
|
|
106
|
+
## A. Skill Invocation
|
|
107
|
+
Same trigger keywords as claude-code adapter.
|
|
108
|
+
Discovery: User-driven (`@agent-name` in GitHub Copilot Chat).
|
|
109
|
+
|
|
110
|
+
## C. Tool Usage
|
|
111
|
+
Use Copilot tools: `runCommands` (shell), `read`/`readfile` (read), `edit`/`editFiles` (write),
|
|
112
|
+
`code_search`, `find_references`
|
|
113
|
+
Interactive: `askQuestions` (main agent only — NOT available in subagents; VS Code issue #293745)
|
|
114
|
+
Skill path: `.github/agents/<name>.agent.md`
|
|
115
|
+
</adapter>
|
|
67
116
|
<scope_policy>
|
|
68
117
|
## ViePilot Namespace Guard (BUG-004)
|
|
69
118
|
- Default mode: only use and reference `vp-*` skills in ViePilot workflows.
|
|
@@ -150,6 +199,8 @@ Optional flags:
|
|
|
150
199
|
- `--tier3` : Run Tier 3 (stack best-practice) only
|
|
151
200
|
- `--tier4` : Run Tier 4 (framework integrity) only
|
|
152
201
|
- `--no-autolog` : Skip auto-logging of gaps to `.viepilot/requests/`; report-only mode
|
|
202
|
+
- `--visual` : Run browser-based visual + functional audit of running dev server (ENH-091; requires agent-browser)
|
|
203
|
+
- `--browser <url>` : Specify base URL for browser audit (default: `http://localhost:3000`)
|
|
153
204
|
|
|
154
205
|
### Auto-Log Behavior (ENH-070)
|
|
155
206
|
|
|
@@ -180,6 +231,17 @@ Execute workflow from `@$HOME/{envToolDir}/workflows/audit.md`
|
|
|
180
231
|
**Step 0**: Detect project type (viepilot framework vs user project)
|
|
181
232
|
|
|
182
233
|
**Step 1 — Tier 1**: ViePilot State Consistency
|
|
234
|
+
|
|
235
|
+
**Claude Code — invoke file-scanner-agent for state file discovery:**
|
|
236
|
+
```
|
|
237
|
+
Agent({ subagent_type: "file-scanner-agent",
|
|
238
|
+
description: "file-scanner-agent: scan state files for stale phase refs",
|
|
239
|
+
prompt: "patterns: [\".viepilot/phases/*/PHASE-STATE.md\"]. keywords: [\"in_progress\", \"planned\"]. context: Find phases with stale in_progress or planned status."
|
|
240
|
+
})
|
|
241
|
+
```
|
|
242
|
+
Non-Claude Code: run Glob/Grep inline.
|
|
243
|
+
|
|
244
|
+
Then cross-check results against:
|
|
183
245
|
```bash
|
|
184
246
|
# TRACKER.md vs PHASE-STATE.md
|
|
185
247
|
# ROADMAP.md vs PHASE-STATE.md
|
|
@@ -188,6 +250,17 @@ Execute workflow from `@$HOME/{envToolDir}/workflows/audit.md`
|
|
|
188
250
|
```
|
|
189
251
|
|
|
190
252
|
**Step 2 — Tier 2**: Project Documentation Drift
|
|
253
|
+
|
|
254
|
+
**Claude Code — invoke file-scanner-agent for docs drift scan:**
|
|
255
|
+
```
|
|
256
|
+
Agent({ subagent_type: "file-scanner-agent",
|
|
257
|
+
description: "file-scanner-agent: scan docs for stale refs and placeholder URLs",
|
|
258
|
+
prompt: "patterns: [\"docs/**/*.md\", \"README.md\", \"CHANGELOG.md\"]. keywords: [\"your-org\", \"YOUR_USERNAME\", \"TODO\", \"placeholder\"]. context: Find stale placeholder refs and docs drift."
|
|
259
|
+
})
|
|
260
|
+
```
|
|
261
|
+
Non-Claude Code: run Glob/Grep inline.
|
|
262
|
+
|
|
263
|
+
Then check:
|
|
191
264
|
```bash
|
|
192
265
|
# Detect version: package.json / pom.xml / pyproject.toml
|
|
193
266
|
# README.md version mention
|
|
@@ -207,6 +280,29 @@ Execute workflow from `@$HOME/{envToolDir}/workflows/audit.md`
|
|
|
207
280
|
|
|
208
281
|
**Step 5**: Generate full report
|
|
209
282
|
|
|
283
|
+
**Step 5B**: Browser Audit (when `--visual` flag present, Claude Code adapter only)
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
When --visual is passed:
|
|
287
|
+
1. Resolve base URL: --browser <url> → config.json audit.baseUrl → http://localhost:3000
|
|
288
|
+
2. Dispatch browser-audit-agent:
|
|
289
|
+
Agent({ subagent_type: "browser-audit-agent",
|
|
290
|
+
description: "browser-audit-agent: audit running dev server",
|
|
291
|
+
prompt: `op: audit_routes. baseUrl: ${baseUrl}. projectRoot: ${projectRoot}` })
|
|
292
|
+
3. On success: call writeAuditReport(result, projectRoot) → lib/audit/browser-runner.cjs
|
|
293
|
+
4. Report path shown to user: .viepilot/audit/visual-report-{timestamp}.md
|
|
294
|
+
5. On agent-browser not installed: show prerequisite message, skip browser audit (non-blocking)
|
|
295
|
+
|
|
296
|
+
After audit_routes: optionally run accessibility_check on same routes:
|
|
297
|
+
Agent({ subagent_type: "browser-audit-agent",
|
|
298
|
+
prompt: `op: accessibility_check. baseUrl: ${baseUrl}. routes: ${JSON.stringify(routes)}. projectRoot: ${projectRoot}` })
|
|
299
|
+
|
|
300
|
+
Baseline management:
|
|
301
|
+
- --visual first run: saves screenshots to .viepilot/audit/baselines/{slug}.png
|
|
302
|
+
- Subsequent runs: compares current vs baseline (visual_check op)
|
|
303
|
+
- --update-baseline: forces baseline refresh (passes updateBaseline: true to agent)
|
|
304
|
+
```
|
|
305
|
+
|
|
210
306
|
**Step 6**: Auto-fix (if requested)
|
|
211
307
|
</process>
|
|
212
308
|
|
package/skills/vp-auto/SKILL.md
CHANGED
|
@@ -53,7 +53,7 @@ Silent if command unavailable or errors.
|
|
|
53
53
|
</persona_context>
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
<
|
|
56
|
+
<adapter id="claude-code">
|
|
57
57
|
## A. Skill Invocation
|
|
58
58
|
- Skill được gọi khi user mention `vp-auto`, `/vp-auto`, "auto", "vibe", "chạy tự động"
|
|
59
59
|
- Treat all user text after the skill mention as `{{VP_ARGS}}`
|
|
@@ -62,11 +62,61 @@ Silent if command unavailable or errors.
|
|
|
62
62
|
Prompt user conversationally with numbered list options at control points.
|
|
63
63
|
|
|
64
64
|
## C. Tool Usage
|
|
65
|
-
Use
|
|
65
|
+
Use Claude Code tools: `Bash` (shell), `Read` (file), `Edit` + `Write` (file write/patch),
|
|
66
|
+
`Grep` (search), `Glob` (file patterns), `LS`, `WebSearch`, `WebFetch`,
|
|
67
|
+
`Agent` (spawn subagent — multi-level nesting supported)
|
|
68
|
+
Interactive: `AskUserQuestion` (deferred — preload via ToolSearch before first call)
|
|
66
69
|
|
|
67
70
|
## D. Subagent Spawning
|
|
68
|
-
Use `
|
|
69
|
-
|
|
71
|
+
Use `Agent` tool for subagent dispatch. For parallel task execution: fan-out with multiple
|
|
72
|
+
`Agent` calls per cluster (see ADAPTER_CONTEXT.orchestration — claude-code supports parallel: true).
|
|
73
|
+
</adapter>
|
|
74
|
+
|
|
75
|
+
<adapter id="cursor-agent">
|
|
76
|
+
## A. Skill Invocation
|
|
77
|
+
Same trigger keywords as claude-code adapter.
|
|
78
|
+
|
|
79
|
+
## C. Tool Usage
|
|
80
|
+
Use Cursor tools: `run_terminal_cmd` (shell), `read_file` (read), `edit_file` (write/edit),
|
|
81
|
+
`grep_search` (search), `web_search`, `codebase_search`, `list_dir`, `file_search`
|
|
82
|
+
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
|
|
83
|
+
Subagent: `/multitask` (user command, single-level only — not a callable tool)
|
|
84
|
+
MCP limit: 40 tools
|
|
85
|
+
</adapter>
|
|
86
|
+
|
|
87
|
+
<adapter id="antigravity">
|
|
88
|
+
## A. Skill Invocation
|
|
89
|
+
Same trigger keywords as claude-code adapter.
|
|
90
|
+
Skill discovery: LLM-driven (automatic, no slash command needed).
|
|
91
|
+
|
|
92
|
+
## C. Tool Usage
|
|
93
|
+
Use Antigravity tools: `shell` (cmd), `file_read`, `file_write`, MCP plugins
|
|
94
|
+
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
|
|
95
|
+
Skill path: `.agents/skills/<skill>/SKILL.md` (project) or `~/.gemini/antigravity/skills/` (global)
|
|
96
|
+
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
|
|
97
|
+
</adapter>
|
|
98
|
+
|
|
99
|
+
<adapter id="codex">
|
|
100
|
+
## A. Skill Invocation
|
|
101
|
+
Same trigger keywords as claude-code adapter.
|
|
102
|
+
|
|
103
|
+
## C. Tool Usage
|
|
104
|
+
Use Codex tools: `container.exec` (sandboxed shell), `apply_patch` (file write), `web_search`
|
|
105
|
+
Interactive: text fallback (TUI Tab/Enter injection)
|
|
106
|
+
Config: `~/.codex/config.toml`
|
|
107
|
+
</adapter>
|
|
108
|
+
|
|
109
|
+
<adapter id="copilot">
|
|
110
|
+
## A. Skill Invocation
|
|
111
|
+
Same trigger keywords as claude-code adapter.
|
|
112
|
+
Discovery: User-driven (`@agent-name` in GitHub Copilot Chat).
|
|
113
|
+
|
|
114
|
+
## C. Tool Usage
|
|
115
|
+
Use Copilot tools: `runCommands` (shell), `read`/`readfile` (read), `edit`/`editFiles` (write),
|
|
116
|
+
`code_search`, `find_references`
|
|
117
|
+
Interactive: `askQuestions` (main agent only — NOT available in subagents; VS Code issue #293745)
|
|
118
|
+
Skill path: `.github/agents/<name>.agent.md`
|
|
119
|
+
</adapter>
|
|
70
120
|
<scope_policy>
|
|
71
121
|
## ViePilot Namespace Guard (BUG-004)
|
|
72
122
|
- Default mode: only use and reference `vp-*` skills in ViePilot workflows.
|
|
@@ -53,7 +53,7 @@ Silent if command unavailable or errors.
|
|
|
53
53
|
</persona_context>
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
<
|
|
56
|
+
<adapter id="claude-code">
|
|
57
57
|
## A. Skill Invocation
|
|
58
58
|
- Skill được gọi khi user mention `vp-brainstorm`, `/vp-brainstorm`, hoặc yêu cầu "brainstorm"
|
|
59
59
|
- Treat all user text after the skill mention as `{{VP_ARGS}}`
|
|
@@ -62,7 +62,10 @@ Silent if command unavailable or errors.
|
|
|
62
62
|
Prompt user conversationally with numbered list options.
|
|
63
63
|
|
|
64
64
|
## C. Tool Usage
|
|
65
|
-
Use
|
|
65
|
+
Use Claude Code tools: `Bash` (shell), `Read` (file), `Edit` + `Write` (file write/patch),
|
|
66
|
+
`Grep` (search), `Glob` (file patterns), `LS`, `WebSearch`, `WebFetch`,
|
|
67
|
+
`Agent` (spawn subagent — multi-level nesting supported)
|
|
68
|
+
Interactive: `AskUserQuestion` (deferred — preload via ToolSearch before first call)
|
|
66
69
|
|
|
67
70
|
## D. Session Actions — Proactive AUQ Triggers (BUG-026)
|
|
68
71
|
**No slash sub-commands.** All session actions are triggered proactively by the AI via
|
|
@@ -76,7 +79,53 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
76
79
|
| **Sync UI → Arch** | After arch update when UI workspace also active | "Sync architecture changes to UI Direction workspace?" |
|
|
77
80
|
|
|
78
81
|
**Why:** In Claude Code terminal, any `/command` is intercepted by the shell as a skill invocation. Using proactive AUQ triggers works identically on ALL adapters — no adapter-specific typing rules needed.
|
|
79
|
-
</
|
|
82
|
+
</adapter>
|
|
83
|
+
|
|
84
|
+
<adapter id="cursor-agent">
|
|
85
|
+
## A. Skill Invocation
|
|
86
|
+
Same trigger keywords as claude-code adapter.
|
|
87
|
+
|
|
88
|
+
## C. Tool Usage
|
|
89
|
+
Use Cursor tools: `run_terminal_cmd` (shell), `read_file` (read), `edit_file` (write/edit),
|
|
90
|
+
`grep_search` (search), `web_search`, `codebase_search`, `list_dir`, `file_search`
|
|
91
|
+
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
|
|
92
|
+
Subagent: `/multitask` (user command, single-level only — not a callable tool)
|
|
93
|
+
MCP limit: 40 tools
|
|
94
|
+
</adapter>
|
|
95
|
+
|
|
96
|
+
<adapter id="antigravity">
|
|
97
|
+
## A. Skill Invocation
|
|
98
|
+
Same trigger keywords as claude-code adapter.
|
|
99
|
+
Skill discovery: LLM-driven (automatic, no slash command needed).
|
|
100
|
+
|
|
101
|
+
## C. Tool Usage
|
|
102
|
+
Use Antigravity tools: `shell` (cmd), `file_read`, `file_write`, MCP plugins
|
|
103
|
+
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
|
|
104
|
+
Skill path: `.agents/skills/<skill>/SKILL.md` (project) or `~/.gemini/antigravity/skills/` (global)
|
|
105
|
+
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
|
|
106
|
+
</adapter>
|
|
107
|
+
|
|
108
|
+
<adapter id="codex">
|
|
109
|
+
## A. Skill Invocation
|
|
110
|
+
Same trigger keywords as claude-code adapter.
|
|
111
|
+
|
|
112
|
+
## C. Tool Usage
|
|
113
|
+
Use Codex tools: `container.exec` (sandboxed shell), `apply_patch` (file write), `web_search`
|
|
114
|
+
Interactive: text fallback (TUI Tab/Enter injection)
|
|
115
|
+
Config: `~/.codex/config.toml`
|
|
116
|
+
</adapter>
|
|
117
|
+
|
|
118
|
+
<adapter id="copilot">
|
|
119
|
+
## A. Skill Invocation
|
|
120
|
+
Same trigger keywords as claude-code adapter.
|
|
121
|
+
Discovery: User-driven (`@agent-name` in GitHub Copilot Chat).
|
|
122
|
+
|
|
123
|
+
## C. Tool Usage
|
|
124
|
+
Use Copilot tools: `runCommands` (shell), `read`/`readfile` (read), `edit`/`editFiles` (write),
|
|
125
|
+
`code_search`, `find_references`
|
|
126
|
+
Interactive: `askQuestions` (main agent only — NOT available in subagents; VS Code issue #293745)
|
|
127
|
+
Skill path: `.github/agents/<name>.agent.md`
|
|
128
|
+
</adapter>
|
|
80
129
|
<scope_policy>
|
|
81
130
|
## ViePilot Namespace Guard (BUG-004)
|
|
82
131
|
- Default mode: only use and reference `vp-*` skills in ViePilot workflows.
|
|
@@ -152,6 +201,23 @@ Optional flags:
|
|
|
152
201
|
- `--research` : Enable proactive research suggestions during the session
|
|
153
202
|
- `--ui` : Enable UI Direction mode (live HTML/CSS direction artifacts + auto-generates `design.md` when design keywords present — ENH-076)
|
|
154
203
|
- `--domain embedded` : Force-activate Embedded Domain Mode (hardware topology, RTOS, pin map, memory layout, protocol matrix, power budget pages + topic probes)
|
|
204
|
+
|
|
205
|
+
### Reference URL Input (ENH-092)
|
|
206
|
+
|
|
207
|
+
When user provides a URL during brainstorm (competitor app, documentation, reference product):
|
|
208
|
+
- research-agent is dispatched with `op: browse_url` using `vercel-labs/agent-browser`
|
|
209
|
+
- Extracted insights added as `## Reference Research` section in session output
|
|
210
|
+
- Covers: features, UX patterns, pricing model, tech stack clues
|
|
211
|
+
- Available as context for crystallize step
|
|
212
|
+
- Falls back to WebFetch if agent-browser not installed (static HTML only — warns if page is JS-rendered)
|
|
213
|
+
|
|
214
|
+
**Examples:**
|
|
215
|
+
```
|
|
216
|
+
/vp-brainstorm I want to build a task manager. Reference: https://linear.app
|
|
217
|
+
/vp-brainstorm --new Compare these two tools: https://notion.so https://coda.io
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Multiple URLs**: dispatches `compare_products` op → side-by-side comparison table.
|
|
155
221
|
</context>
|
|
156
222
|
|
|
157
223
|
### Embedded Domain Mode (ENH-071)
|
|
@@ -53,7 +53,7 @@ Silent if command unavailable or errors.
|
|
|
53
53
|
</persona_context>
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
<
|
|
56
|
+
<adapter id="claude-code">
|
|
57
57
|
## A. Skill Invocation
|
|
58
58
|
- Skill được gọi khi user mention `vp-crystallize`, `/vp-crystallize`, hoặc "crystallize", "setup project"
|
|
59
59
|
- Treat all user text after the skill mention as `{{VP_ARGS}}`
|
|
@@ -62,8 +62,57 @@ Silent if command unavailable or errors.
|
|
|
62
62
|
Prompt user conversationally with numbered list options.
|
|
63
63
|
|
|
64
64
|
## C. Tool Usage
|
|
65
|
-
Use
|
|
66
|
-
|
|
65
|
+
Use Claude Code tools: `Bash` (shell), `Read` (file), `Edit` + `Write` (file write/patch),
|
|
66
|
+
`Grep` (search), `Glob` (file patterns), `LS`, `WebSearch`, `WebFetch`,
|
|
67
|
+
`Agent` (spawn subagent — multi-level nesting supported)
|
|
68
|
+
Interactive: `AskUserQuestion` (deferred — preload via ToolSearch before first call)
|
|
69
|
+
</adapter>
|
|
70
|
+
|
|
71
|
+
<adapter id="cursor-agent">
|
|
72
|
+
## A. Skill Invocation
|
|
73
|
+
Same trigger keywords as claude-code adapter.
|
|
74
|
+
|
|
75
|
+
## C. Tool Usage
|
|
76
|
+
Use Cursor tools: `run_terminal_cmd` (shell), `read_file` (read), `edit_file` (write/edit),
|
|
77
|
+
`grep_search` (search), `web_search`, `codebase_search`, `list_dir`, `file_search`
|
|
78
|
+
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
|
|
79
|
+
Subagent: `/multitask` (user command, single-level only — not a callable tool)
|
|
80
|
+
MCP limit: 40 tools
|
|
81
|
+
</adapter>
|
|
82
|
+
|
|
83
|
+
<adapter id="antigravity">
|
|
84
|
+
## A. Skill Invocation
|
|
85
|
+
Same trigger keywords as claude-code adapter.
|
|
86
|
+
Skill discovery: LLM-driven (automatic, no slash command needed).
|
|
87
|
+
|
|
88
|
+
## C. Tool Usage
|
|
89
|
+
Use Antigravity tools: `shell` (cmd), `file_read`, `file_write`, MCP plugins
|
|
90
|
+
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
|
|
91
|
+
Skill path: `.agents/skills/<skill>/SKILL.md` (project) or `~/.gemini/antigravity/skills/` (global)
|
|
92
|
+
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
|
|
93
|
+
</adapter>
|
|
94
|
+
|
|
95
|
+
<adapter id="codex">
|
|
96
|
+
## A. Skill Invocation
|
|
97
|
+
Same trigger keywords as claude-code adapter.
|
|
98
|
+
|
|
99
|
+
## C. Tool Usage
|
|
100
|
+
Use Codex tools: `container.exec` (sandboxed shell), `apply_patch` (file write), `web_search`
|
|
101
|
+
Interactive: text fallback (TUI Tab/Enter injection)
|
|
102
|
+
Config: `~/.codex/config.toml`
|
|
103
|
+
</adapter>
|
|
104
|
+
|
|
105
|
+
<adapter id="copilot">
|
|
106
|
+
## A. Skill Invocation
|
|
107
|
+
Same trigger keywords as claude-code adapter.
|
|
108
|
+
Discovery: User-driven (`@agent-name` in GitHub Copilot Chat).
|
|
109
|
+
|
|
110
|
+
## C. Tool Usage
|
|
111
|
+
Use Copilot tools: `runCommands` (shell), `read`/`readfile` (read), `edit`/`editFiles` (write),
|
|
112
|
+
`code_search`, `find_references`
|
|
113
|
+
Interactive: `askQuestions` (main agent only — NOT available in subagents; VS Code issue #293745)
|
|
114
|
+
Skill path: `.github/agents/<name>.agent.md`
|
|
115
|
+
</adapter>
|
|
67
116
|
<scope_policy>
|
|
68
117
|
## ViePilot Namespace Guard (BUG-004)
|
|
69
118
|
- Default mode: only use and reference `vp-*` skills in ViePilot workflows.
|
package/skills/vp-debug/SKILL.md
CHANGED
|
@@ -53,7 +53,7 @@ Silent if command unavailable or errors.
|
|
|
53
53
|
</persona_context>
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
<
|
|
56
|
+
<adapter id="claude-code">
|
|
57
57
|
## A. Skill Invocation
|
|
58
58
|
- Skill được gọi khi user mention `vp-debug`, `/vp-debug`, "debug", "gỡ lỗi"
|
|
59
59
|
- Treat all user text after the skill mention as `{{VP_ARGS}}`
|
|
@@ -62,8 +62,57 @@ Silent if command unavailable or errors.
|
|
|
62
62
|
Prompt user conversationally. Guide through systematic debugging steps.
|
|
63
63
|
|
|
64
64
|
## C. Tool Usage
|
|
65
|
-
Use
|
|
66
|
-
|
|
65
|
+
Use Claude Code tools: `Bash` (shell), `Read` (file), `Edit` + `Write` (file write/patch),
|
|
66
|
+
`Grep` (search), `Glob` (file patterns), `LS`, `WebSearch`, `WebFetch`,
|
|
67
|
+
`Agent` (spawn subagent — multi-level nesting supported)
|
|
68
|
+
Interactive: `AskUserQuestion` (deferred — preload via ToolSearch before first call)
|
|
69
|
+
</adapter>
|
|
70
|
+
|
|
71
|
+
<adapter id="cursor-agent">
|
|
72
|
+
## A. Skill Invocation
|
|
73
|
+
Same trigger keywords as claude-code adapter.
|
|
74
|
+
|
|
75
|
+
## C. Tool Usage
|
|
76
|
+
Use Cursor tools: `run_terminal_cmd` (shell), `read_file` (read), `edit_file` (write/edit),
|
|
77
|
+
`grep_search` (search), `web_search`, `codebase_search`, `list_dir`, `file_search`
|
|
78
|
+
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
|
|
79
|
+
Subagent: `/multitask` (user command, single-level only — not a callable tool)
|
|
80
|
+
MCP limit: 40 tools
|
|
81
|
+
</adapter>
|
|
82
|
+
|
|
83
|
+
<adapter id="antigravity">
|
|
84
|
+
## A. Skill Invocation
|
|
85
|
+
Same trigger keywords as claude-code adapter.
|
|
86
|
+
Skill discovery: LLM-driven (automatic, no slash command needed).
|
|
87
|
+
|
|
88
|
+
## C. Tool Usage
|
|
89
|
+
Use Antigravity tools: `shell` (cmd), `file_read`, `file_write`, MCP plugins
|
|
90
|
+
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
|
|
91
|
+
Skill path: `.agents/skills/<skill>/SKILL.md` (project) or `~/.gemini/antigravity/skills/` (global)
|
|
92
|
+
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
|
|
93
|
+
</adapter>
|
|
94
|
+
|
|
95
|
+
<adapter id="codex">
|
|
96
|
+
## A. Skill Invocation
|
|
97
|
+
Same trigger keywords as claude-code adapter.
|
|
98
|
+
|
|
99
|
+
## C. Tool Usage
|
|
100
|
+
Use Codex tools: `container.exec` (sandboxed shell), `apply_patch` (file write), `web_search`
|
|
101
|
+
Interactive: text fallback (TUI Tab/Enter injection)
|
|
102
|
+
Config: `~/.codex/config.toml`
|
|
103
|
+
</adapter>
|
|
104
|
+
|
|
105
|
+
<adapter id="copilot">
|
|
106
|
+
## A. Skill Invocation
|
|
107
|
+
Same trigger keywords as claude-code adapter.
|
|
108
|
+
Discovery: User-driven (`@agent-name` in GitHub Copilot Chat).
|
|
109
|
+
|
|
110
|
+
## C. Tool Usage
|
|
111
|
+
Use Copilot tools: `runCommands` (shell), `read`/`readfile` (read), `edit`/`editFiles` (write),
|
|
112
|
+
`code_search`, `find_references`
|
|
113
|
+
Interactive: `askQuestions` (main agent only — NOT available in subagents; VS Code issue #293745)
|
|
114
|
+
Skill path: `.github/agents/<name>.agent.md`
|
|
115
|
+
</adapter>
|
|
67
116
|
<scope_policy>
|
|
68
117
|
## ViePilot Namespace Guard (BUG-004)
|
|
69
118
|
- Default mode: only use and reference `vp-*` skills in ViePilot workflows.
|
|
@@ -46,7 +46,7 @@ Inject the output as `## User Persona` context before any task execution.
|
|
|
46
46
|
Silent if command unavailable or errors.
|
|
47
47
|
</persona_context>
|
|
48
48
|
|
|
49
|
-
<
|
|
49
|
+
<adapter id="claude-code">
|
|
50
50
|
## A. Skill Invocation
|
|
51
51
|
- Skill is triggered when user mentions `vp-design`, `/vp-design`, "design system", "design.md", "sync tokens", "audit design"
|
|
52
52
|
- Treat all user text after the skill mention as `{{VP_ARGS}}`
|
|
@@ -55,8 +55,57 @@ Silent if command unavailable or errors.
|
|
|
55
55
|
Prompt user conversationally with numbered list options at control points.
|
|
56
56
|
|
|
57
57
|
## C. Tool Usage
|
|
58
|
-
Use
|
|
59
|
-
|
|
58
|
+
Use Claude Code tools: `Bash` (shell), `Read` (file), `Edit` + `Write` (file write/patch),
|
|
59
|
+
`Grep` (search), `Glob` (file patterns), `LS`, `WebSearch`, `WebFetch`,
|
|
60
|
+
`Agent` (spawn subagent — multi-level nesting supported)
|
|
61
|
+
Interactive: `AskUserQuestion` (deferred — preload via ToolSearch before first call)
|
|
62
|
+
</adapter>
|
|
63
|
+
|
|
64
|
+
<adapter id="cursor-agent">
|
|
65
|
+
## A. Skill Invocation
|
|
66
|
+
Same trigger keywords as claude-code adapter.
|
|
67
|
+
|
|
68
|
+
## C. Tool Usage
|
|
69
|
+
Use Cursor tools: `run_terminal_cmd` (shell), `read_file` (read), `edit_file` (write/edit),
|
|
70
|
+
`grep_search` (search), `web_search`, `codebase_search`, `list_dir`, `file_search`
|
|
71
|
+
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
|
|
72
|
+
Subagent: `/multitask` (user command, single-level only — not a callable tool)
|
|
73
|
+
MCP limit: 40 tools
|
|
74
|
+
</adapter>
|
|
75
|
+
|
|
76
|
+
<adapter id="antigravity">
|
|
77
|
+
## A. Skill Invocation
|
|
78
|
+
Same trigger keywords as claude-code adapter.
|
|
79
|
+
Skill discovery: LLM-driven (automatic, no slash command needed).
|
|
80
|
+
|
|
81
|
+
## C. Tool Usage
|
|
82
|
+
Use Antigravity tools: `shell` (cmd), `file_read`, `file_write`, MCP plugins
|
|
83
|
+
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
|
|
84
|
+
Skill path: `.agents/skills/<skill>/SKILL.md` (project) or `~/.gemini/antigravity/skills/` (global)
|
|
85
|
+
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
|
|
86
|
+
</adapter>
|
|
87
|
+
|
|
88
|
+
<adapter id="codex">
|
|
89
|
+
## A. Skill Invocation
|
|
90
|
+
Same trigger keywords as claude-code adapter.
|
|
91
|
+
|
|
92
|
+
## C. Tool Usage
|
|
93
|
+
Use Codex tools: `container.exec` (sandboxed shell), `apply_patch` (file write), `web_search`
|
|
94
|
+
Interactive: text fallback (TUI Tab/Enter injection)
|
|
95
|
+
Config: `~/.codex/config.toml`
|
|
96
|
+
</adapter>
|
|
97
|
+
|
|
98
|
+
<adapter id="copilot">
|
|
99
|
+
## A. Skill Invocation
|
|
100
|
+
Same trigger keywords as claude-code adapter.
|
|
101
|
+
Discovery: User-driven (`@agent-name` in GitHub Copilot Chat).
|
|
102
|
+
|
|
103
|
+
## C. Tool Usage
|
|
104
|
+
Use Copilot tools: `runCommands` (shell), `read`/`readfile` (read), `edit`/`editFiles` (write),
|
|
105
|
+
`code_search`, `find_references`
|
|
106
|
+
Interactive: `askQuestions` (main agent only — NOT available in subagents; VS Code issue #293745)
|
|
107
|
+
Skill path: `.github/agents/<name>.agent.md`
|
|
108
|
+
</adapter>
|
|
60
109
|
|
|
61
110
|
<scope_policy>
|
|
62
111
|
## ViePilot Namespace Guard (BUG-004)
|