vp 上下文验证
- 作者仓库星标 13
- 作者仓库 viepilot
Output this banner as the first thing on every invocation — before questions, work, or any other output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VIEPILOT ► VP-PAUSE v0.1.1 (fw 2.19.0)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
</greeting>
<version_check>
## Version Update Check (ENH-072)
After displaying the greeting banner, run:
node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
If exit code = 1 (update available — new version printed to stdout): Display notice banner before any other output:
┌──────────────────────────────────────────────────────────────────┐
│ ✨ ViePilot {latest_version} available (installed: {current}) │
│ npm i -g viepilot && vp-tools install --target {adapter_id} │
└──────────────────────────────────────────────────────────────────┘
Replace {latest_version} with stdout from the command, {current} with the installed
version, {adapter_id} with the active adapter (claude-code / cursor / antigravity / codex / copilot).
If exit code = 0 or command unavailable: silent, continue.
Suppression rules:
--no-update-checkflag on skill invocation → skip this step entirelyconfig.json→update.check: false→ skip this step entirely- Show at most once per session (
update_check_donesession guard)</version_check>
B. User Prompting
Prompt user conversationally to gather state info.
C. Tool Usage
Use Claude Code tools: Bash (shell), Read (file), Edit + Write (file write/patch),
Grep (search), Glob (file patterns), LS, WebSearch, WebFetch,
Agent (spawn subagent — multi-level nesting supported)
Interactive: AskUserQuestion (deferred — preload via ToolSearch before first call)
</adapter>
C. Tool Usage
Use Cursor tools: run_terminal_cmd (shell), read_file (read), edit_file (write/edit),
grep_search (search), web_search, codebase_search, list_dir, file_search
Interactive: text list fallback (AskQuestion available in Plan Mode only; Agent Mode = text)
Subagent: /multitask (user command, single-level only — not a callable tool)
MCP limit: 40 tools
</adapter>
C. Tool Usage
Use Antigravity tools: shell (cmd), file_read, file_write, MCP plugins
Interactive: text fallback (TUI-based; no formal AskUserQuestion)
Skill path: .agents/skills/<skill>/SKILL.md (project) or ~/.gemini/antigravity/skills/ (global)
Note: Gemini CLI deprecated June 18, 2026 — use Antigravity CLI.
</adapter>
C. Tool Usage
Use Codex tools: container.exec (sandboxed shell), apply_patch (file write), web_search
Interactive: text fallback (TUI Tab/Enter injection)
Config: ~/.codex/config.toml
</adapter>
C. Tool Usage
Use Copilot tools: runCommands (shell), read/readfile (read), edit/editFiles (write),
code_search, find_references
Interactive: askQuestions (main agent only — NOT available in subagents; VS Code issue #293745)
Skill path: .github/agents/<name>.agent.md
</adapter>
<scope_policy>
ViePilot Namespace Guard (BUG-004)
- Default mode: only use and reference
vp-*skills in ViePilot workflows. - External skills (
non vp-*) are out of framework scope unless user explicitly opts in. - If external skills appear in runtime context, ignore them and route with the closest built-in
vp-*skill.</scope_policy>
- Handoff state — does not implement shipping; resume with
/vp-resumethen/vp-autoper plan. Seeworkflows/request.md.</implementation_routing_guard>
Creates/Updates:
.viepilot/HANDOFF.json- Machine-readable state.viepilot/phases/{current}/.continue-here.md- Human-readable context- Git WIP commit
After: Safe to close session. Resume with /vp-resume
</objective>
Step 1: Detect Current Position
# Find current phase from TRACKER.md or recent files
Read TRACKER.md → current_phase, current_task
Check PHASE-STATE.md → task status
Step 2: Gather State
Collect:
- Current position: Phase, task, line
- Work completed: What got done this session
- Work remaining: What's left
- Decisions made: Key decisions and rationale
- Blockers/issues: Anything stuck
- Human actions pending: Manual interventions needed
- Background processes: Running servers/watchers
- Uncommitted files: Changes not yet committed
Ask user for clarifications if needed.
Step 3: Write HANDOFF.json
{
"version": "1.0",
"timestamp": "{ISO8601}",
"phase": "{phase_number}",
"phase_name": "{phase_name}",
"task": "{current_task}",
"total_tasks": "{total}",
"status": "paused",
"completed_tasks": [...],
"remaining_tasks": [...],
"blockers": [...],
"human_actions_pending": [...],
"decisions": [...],
"uncommitted_files": [...],
"next_action": "{specific first action when resuming}",
"context_notes": "{mental state, approach}"
}
Step 4: Write .continue-here.md
---
phase: {phase}
task: {task}
total_tasks: {total}
status: in_progress
last_updated: {timestamp}
---
<current_state>
[Where exactly are we? Immediate context]
</current_state>
<completed_work>
- Task 1: [name] - Done
- Task 2: [name] - In progress, [what's done]
</completed_work>
<remaining_work>
- Task 2: [what's left]
- Task 3: Not started
</remaining_work>
<decisions_made>
- Decided [X] because [reason]
</decisions_made>
<blockers>
- [Blocker]: [status/workaround]
</blockers>
<context>
[Mental state, what were you thinking]
</context>
<next_action>
Start with: [specific first action when resuming]
</next_action>
Step 5: Git Commit
git add -A
git commit -m "wip({phase}): paused at task {task}/{total}"
Step 6: Confirm
✓ Work paused successfully
Current state:
- Phase: {phase_name}
- Task: {task} of {total}
- Status: {status}
- Blockers: {count}
Files saved:
- .viepilot/HANDOFF.json
- .viepilot/phases/{phase}/.continue-here.md
To resume: /vp-resume
</process>
<success_criteria>
- [ ] HANDOFF.json created with complete state
- [ ] .continue-here.md created in phase directory
- [ ] All sections filled with specific content
- [ ] Uncommitted changes identified
- [ ] Git WIP commit created
- [ ] User knows how to resume
</success_criteria>
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 92 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @0-CODE · v0.1.1 · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- Node.js
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Step 1: Detect Current Position
Collect: Current position: Phase, task, line Work completed: What got done this session
<greeting>
## Invocation Banner
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VIEPILOT ► VP-PAUSE v0.1.1 (fw 2.19.0)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
</greeting>
<version_check>
## Version Update Check (ENH-072)
After displaying the greeting banner, run:
```bash
node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
```
**If exit code = 1** (update available — new version printed to stdout):
Display notice banner before any other output:
```
┌──────────────────────────────────────────────────────────────────┐
│ ✨ ViePilot {latest_version} available (installed: {current}) │
│ npm i -g viepilot && vp-tools install --target {adapter_id} │
└──────────────────────────────────────────────────────────────────┘
```
Replace `{latest_version}` with stdout from the command, `{current}` with the installed
version, `{adapter_id}` with the active adapter (claude-code / cursor / antigravity / codex / copilot).
**If exit code = 0 or command unavailable**: silent, continue.
**Suppression rules:**
- `--no-update-check` flag on skill invocation → skip this step entirely
- `config.json` → `update.check: false` → skip this step entirely
- Show at most once per session (`update_check_done` session guard)
</version_check>
<persona_context>
## Persona Context Injection (ENH-073)
At skill start, run:
```bash
node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona auto-switch
node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona context
```
Inject the output as `## User Persona` context before any task execution.
Silent if command unavailable or errors.
</persona_context>
<adapter id="claude-code">
## A. Skill Invocation
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Invocation Banner → Version Update Check (ENH-072) → Persona Context Injection (ENH-073) → A. Skill Invocation → B. User Prompting → C. Tool Usage
要点 -> first · If exit code = 1 · If exit code = 0 or command unavailable · Suppression rules · Handoff state · /vp-resume · /vp-auto · Creates/Updates
文件/命令 -> {latestversion} · {current} · {adapterid} · --no-update-check · config.json · update.check: false · updatecheckdone · ## User Persona
内容 SHA-256 -> e88cb3af1903
方法与流程
适用与边界
原文中的明确线索
{latestversion}、{current}、{adapterid}、--no-update-check、config.json、update.check: false、updatecheckdone、## User Persona