Agent安装
- 作者仓库星标 13
- 作者更新于 实时读取
- 作者仓库 viepilot
- 领域
- 通用
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 92 / 100 · 已通过审计
- 作者 / 版本 / 许可
- @0-CODE · v0.8.0 · 未声明 license
- Token 消耗评级
- 中等消耗
- 接入复杂程度
- 需手动接入
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- Docker
- 底层运行要求
- Node.js · Docker
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 读取环境变量
- 网络行为
- 仅限本地
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: vp-crystallize
description: Convert brainstorm sessions into executable artifacts Output this banner as the first thing on e…
category: 通用
runtime: Node.js / Docker
---
# vp-crystallize 输出预览
## PART A: 任务判断
- 适用问题:通用任务拆解、检查和交付。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“Invocation Banner / Version Update Check (ENH-072) / Persona Context Injection (ENH-073)”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于通用任务拆解、检查和交付,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“Invocation Banner / Version Update Check (ENH-072) / Persona Context Injection (ENH-073)”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、执行终端命令、读取环境变量、主要在本地完成、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、执行终端命令、读取环境变量;主要在本地完成;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文出现了 `/vp-crystallize`、`/multitask`、`/vp-auto`、`/vp-evolve`、`/skill-name` 这类斜杠命令;如果你的 Agent 支持命令触发,优先用命令开场,再补充目标和边界。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、执行终端命令、读取环境变量。
先用一个小任务确认它会围绕“Invocation Banner / Version Update Check (ENH-072) / Persona Context Injection (ENH-073)”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: vp-crystallize
description: Convert brainstorm sessions into executable artifacts Output this banner as the first thing on e…
category: 通用
source: 0-CODE/viepilot
---
# vp-crystallize
## 什么时候使用
- vp-crystallize 是一个通用扩展技能,按 SKILL 适合处理通用任务拆解、检查、交付和复盘,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的步骤;通…
- 面向通用任务拆解、检查和交付,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「Invocation Banner / Version Update Check (ENH-072) / Persona Context Injection (ENH-073)」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、执行终端命令、读取环境变量;主要在本地完成;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "vp-crystallize" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> Invocation Banner / Version Update Check (ENH-072) / Persona Context Injection (ENH-073)
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Node.js / Docker | 读取文件、写入/修改文件、执行终端命令、读取环境变量 | 主要在本地完成
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} Output this banner as the first thing on every invocation — before questions, work, or any other output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VIEPILOT ► VP-CRYSTALLIZE v0.8.0 (fw 2.19.0)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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)
Flags:
--no-stakeholders: Skip the Step 1G Stakeholder Review Gate (ENH-098)
B. User Prompting
Prompt user conversationally with numbered list options.
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)
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
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.
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
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
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.
- Creates artifacts in
.viepilot/(and template copy) from brainstorm — does not replace/vp-autofor implementing application code / framework shipping. Backlog feature code:/vp-evolve+/vp-auto. Seeworkflows/request.md.
Creates:
.viepilot/
├── AI-GUIDE.md # AI navigation guide
├── PROJECT-META.md # Project metadata
├── ARCHITECTURE.md # System design
├── architecture/ # ENH-022: *.mermaid sidecars (mirror fenced diagrams)
├── PROJECT-CONTEXT.md # Domain knowledge + `<product_vision>` (phased scope)
├── SYSTEM-RULES.md # Coding rules & standards
├── ROADMAP.md # Phases & tasks in order from phases_inventory
├── TRACKER.md # Progress tracking
├── HANDOFF.json # Machine-readable state
└── schemas/ # Database, API, Kafka schemas
Also creates:
CHANGELOG.mdCONTRIBUTING.mdCONTRIBUTORS.mdLICENSE- Updated
README.md
ViePilot profile (FEAT-009):
- Reads
.viepilot/META.md→ file~/.viepilot/profiles/<slug>.md(contract:docs/dev/global-profiles.md); pre-fills Step 0; merges into ARCHITECTURE (## ViePilot organization context), PROJECT-CONTEXT (## ViePilot active profile), AI-GUIDE quick context.
Stack intelligence (global cache):
~/.viepilot/stacks/{stack}/SUMMARY.md~/.viepilot/stacks/{stack}/BEST-PRACTICES.md~/.viepilot/stacks/{stack}/ANTI-PATTERNS.md~/.viepilot/stacks/{stack}/SOURCES.md.viepilot/STACKS.md(project-local index to global cache)
After: Ready for /vp-auto
UI direction hard gate (ENH-026):
- Step 1A scans brainstorm for UI signal keywords; if ≥3 signals detected + no artifacts → STOP with 2-option dialogue (go back to brainstorm --ui OR proceed with assumptions written to ARCHITECTURE.md). Enforces direction-first workflow before crystallize proceeds.
Architect artifacts consumption (FEAT-011):
- Step 1D reads
.viepilot/architect/{session}/notes.mdYAML — importsdecisions[]→ ARCHITECTURE.md, usestech_stack{}as authoritative stack (conflict → ask user), surfacesopen_questions[]withstatus: open. Soft suggestion (not hard block) when architect dir missing but ≥5 services detected.
Admin & Governance Export (ENH-063):
- Step 1D item 7: if
admin.htmlornotes.md ## adminexists in architect workspace → append## Admin & Governancetable to.viepilot/PROJECT-CONTEXT.md(columns: Capability | Required | Phase | Notes) + Admin Personas table. Recordsadmin_importedandadmin_capabilities_countin working notes.
Content Management Export (ENH-065):
- Step 1D item 8: if
content.htmlornotes.md ## contentexists in architect workspace → append## Content Managementtable to.viepilot/PROJECT-CONTEXT.md(columns: Content Type | Created By | Lifecycle | Key Fields | Phase) + Media/Storage and Localization sub-tables. Recordscontent_importedandcontent_types_countin working notes.
Admin Entity Management Export (ENH-068):
- Step 1D item 10: if
entity-mgmt.htmlornotes.md ## entity_mgmtexists in architect workspace → append## Admin Entity Managementtable to.viepilot/PROJECT-CONTEXT.md(columns: Entity | CRUD Ops | Soft Delete | Bulk Actions | Audit Trail | Scope) + Import/Export sub-table. Recordsentity_mgmt_importedandentity_mgmt_entity_countin working notes.
User Data Management Export (ENH-066):
- Step 1D item 9: if
user-data.htmlornotes.md ## user_dataexists in architect workspace → append## User Data Managementtable to.viepilot/PROJECT-CONTEXT.md(columns: Capability | Supported | Notes) with 8 capability rows (profile editing, notification prefs, privacy settings, data export, right to erasure, connected accounts, session management, 2FA). Recordsuser_data_importedanduser_data_capabilities_countin working notes.
Crystallize version stamps (ENH-067):
- Generated
PROJECT-CONTEXT.mdincludes<!-- crystallize_version: {semver} -->as its first line. HANDOFF.jsonrecordscrystallize_versionandcrystallized_atfields.- Used by
--upgradere-scan mode to compute delta on future runs.
Upgrade re-scan mode (--upgrade) (ENH-067):
- Detects
crystallize_versiondelta; lists missing PROJECT-CONTEXT.md sections. - Patch mode: appends only missing sections non-destructively; re-stamps
crystallize_version. - Full re-generate: backs up
.viepilot/→ regenerates all artifacts using existing sessions. - Integrates brainstorm
## Upgrade supplementsections when present.
Mandatory Workspace Read Gates (ENH-064):
- Architect workspace (Step 1D): if
.viepilot/architect/exists → reads ALL 12 pages front-to-back before any extraction.architect_read_complete: truerequired. Missingnotes.md→ STOP. - UI Direction workspace (Step 1A strengthened): if
.viepilot/ui-direction/exists → reads ALL pages/*.html + ALL notes.md sections.ui_direction_read_complete: truerequired. Pages inventory mismatch → STOP. - Cross-reference gate (Step 1F): when both workspaces present → validates coverage matrix; warns on Phase 1 features with no architect OR UI coverage.
- No silent skip: any workspace that exists MUST be fully read. Partial reads are not allowed.
Language configuration (ENH-032):
- Step 0-A reads
~/.viepilot/config.json→DOCUMENT_LANG(default:en) andCOMMUNICATION_LANG(default:en). DOCUMENT_LANGcontrols content language for all generated files (ROADMAP, TRACKER, ARCHITECTURE, etc.).COMMUNICATION_LANGcontrols prompt/confirmation language for this session.- Configure via:
vp-tools config set language.document vi
Brownfield Mode (--brownfield) — FEAT-018:
Use when adopting ViePilot on an existing project (no brainstorm session required).
Flags:
--brownfield: Explicit brownfield mode- (auto-detected) : Triggers when
docs/brainstorm/is absent/empty AND.viepilot/does not exist
Scanner runs 12 signal categories across the existing codebase:
- Build manifests —
package.json,pom.xml,pyproject.toml,Cargo.toml,go.mod, etc. (11 platforms) → infers project_name, version, language, deps - Framework detection — 40+ dependency patterns → backend/frontend/ORM/auth/broker/test frameworks
- Architecture layers — 18 directory patterns → controller/service/repository/frontend/infra/etc.
- Database schema signals — Flyway/Liquibase/Prisma/Rails migrations + docker-compose services
- API contracts — OpenAPI, gRPC
.proto, GraphQL schemas - Infrastructure — Dockerfile, docker-compose, k8s, Terraform, Vercel, Fly.io, etc. (16 patterns)
- Environment config —
.env.examplekey names (never reads.env) - Test coverage — Jest/pytest/JUnit/Cypress config + coverage report dirs
- Code quality tools — ESLint/Prettier/SonarQube/pre-commit/golangci-lint/etc. (14 patterns)
- Documentation — README, CHANGELOG, ADRs, docs/ (priority-ordered)
- Git history — commit convention, version pattern, contributors, repo URL
- Language survey — file extension glob → language distribution
Multi-repo / monorepo support (ENH-047):
- Git submodule detection — reads
.gitmodules; scans each initialized submodule path (Signal Cat 1+2+4); records uninitialized paths asprimary_language: MISSING. Never runsgit submodule update— read-only. - Polyrepo hints — detects docker-compose
../build contexts,file:../deps, CI cross-repo clones, README external links, Makefilecd ../targets; outputspolyrepo_hints[]; prompts user to supplyrelated_repos[](optional). - Per-module gap detection — every
modules[]entry carriesgap_tier(DETECTED/ASSUMED/MISSING),must_detect_status{}(evidence per field: value + source + tier), andopen_questions[]. A module withgap_tier: MISSINGblocks artifact generation with a targeted per-field prompt.
Scan Report contains:
- Root
gap_tier(= worst tier across all modules: MISSING > ASSUMED > DETECTED) modules[]— one entry per workspace/submodule/root withgap_tier,must_detect_status{},open_questions[]polyrepo_hints[]— polyrepo signals (omitted when empty, no empty arrays)related_repos[]— user-supplied sibling repos (omitted when empty)- Root
open_questions[]— includes rollup from all modules
Produces Scan Report (YAML) with DETECTED / ASSUMED / MISSING classification.
MUST-DETECT gaps (root: project_name, primary_language, ≥1 framework, current_version; per-module: primary_language, framework, module_purpose, entry_point) block artifact generation until user fills interactively.
Generates docs/brainstorm/session-brownfield-import.md stub for vp-audit compatibility.
Safety: never reads .env; skips node_modules/, .git/, target/, build/, dist/.
Key steps:
Step 0: Collect Project Metadata
- FEAT-009: Load
.viepilot/META.md+ global profile file first (workflows/crystallize.md); setprofile_resolvedornone; pre-fill org/website when profile is present. Ask user for (confirm proposals from profile if present): - Project name, description
- Organization name, website
- Package Base ID (e.g., com.company.project)
- Maven Group ID, Artifact ID
- Lead developer info (name, email, GitHub)
- Repository URL
- License choice
- Inception year
Step 1: Analyze Brainstorm
- Load all brainstorm sessions
- Extract: decisions, architecture, schemas, features
- Extract selected tech stacks
- Phase assignment (ENH-030): parse
## Phasesfrom brainstorm sessions; buildphases_inventory; run phase assignment gate (all features must have a phase — full contract:workflows/crystallize.mdStep 1) - Validate completeness (tech stack, features, schema/API clarity, phase assignment gate)
Step 1A: Consume UI direction (if present)
- Read
.viepilot/ui-direction/{session-id}/notes.mdfirst, thenstyle.css, then HTML:- Multi-page: if
pages/*.htmlexists → require## Pages inventoryinnotes.md, validate it lists every page file, read eachpages/*.htmlplus hubindex.htmlfor navigation. - Legacy: no
pages/→ readindex.html+style.cssas before.
- Multi-page: if
- Carry approved layout/component decisions into architecture + roadmap artifacts; architecture must reference all pages from inventory when multi-page.
- Mark assumptions explicitly if direction artifacts are missing or inventory/files mismatch.
Step 1B: Official stack research (mandatory)
- For every selected stack, research official docs and authoritative sources
- Build concise "Do / Don't / Pitfalls" guidance
- If guidance is uncertain, ask user before locking decisions
- Tool policy:
- Use
WebSearchto discover candidate sources - Use
WebFetchto read source content before extracting guidance - Prioritize official docs, specs, and maintainers' references over blog posts
- Save source URLs and access date in
SOURCES.md
- Use
Step 1C: Write stack cache
- Persist guidance to
~/.viepilot/stacks/{stack}/... - Create
.viepilot/STACKS.mdfor lookup mapping
Step 2: Generate AI-GUIDE.md
- Quick lookup table
- Context loading strategy
- File relationships
- FEAT-009: Quick context for
profile_id+ profile path when resolved
Step 3: Generate PROJECT-META.md
- Project info
- Organization info
- Package structure
- Developer info
- File headers template
- FEAT-009: Align Organization with confirmed profile content (public only)
Step 4: Generate ARCHITECTURE.md
- System overview
- FEAT-009: Section
## ViePilot organization contextwhen profile is present (or none line) - Services definitions
- Data flow
- Technology decisions
- Build diagram applicability matrix for:
system-overview,data-flow,event-flows,module-dependencies,deployment,user-use-case
- For each type assign status:
required|optional|N/A - Apply generation policy:
required=> include concrete Mermaid blockoptional=> allow lightweight/merged representationN/A=> keep section heading + one-line rationale
- ENH-022: For each diagram type with real Mermaid, write
.viepilot/architecture/<type>.mermaid(raw source) and keep it identical to the body inside the fenced```mermaidblock inARCHITECTURE.md; omit files forN/Aor no diagram — seeworkflows/crystallize.mdStep 4.
Step 5: Generate PROJECT-CONTEXT.md
- FEAT-009: Block
## ViePilot active profile (FEAT-009)when binding is present - Domain knowledge
- Business rules
- Conventions
- Constraints
- Fill
<product_vision>from template (templates/project/PROJECT-CONTEXT.md): Project scope, Phase overview, anti-goals — aligned with brainstorm## Phases+ Step 1 phases_inventory
Step 6: Generate SYSTEM-RULES.md
- Architecture rules
- Coding rules
- Comment standards (good/bad examples)
- Versioning (SemVer)
- Git conventions (Conventional Commits)
- Changelog standards (Keep a Changelog)
- Quality gates
- Stack-specific rules from cache
Step 7: Generate ROADMAP.md
- Use
templates/project/ROADMAP.md— phases in order (Phase 1, Phase 2...) fromphases_inventory; no Post-MVP block - Each phase: tasks, acceptance criteria, verification commands
- Self-check before finalize: all phases from phases_inventory appear in ROADMAP; if mismatch → stop and ask user — see
workflows/crystallize.mdStep 7
Step 8: Generate schemas/
- database-schema.sql
- kafka-topics.yaml
- api-contracts.yaml
Step 9: Initialize TRACKER.md
- Current state
- Progress overview
- Decision log
- Version info
Step 10: Generate Project Files
- CHANGELOG.md
- CONTRIBUTING.md
- CONTRIBUTORS.md
- LICENSE
- README.md (updated)
Step 11: Commit & Confirm
- Git commit all artifacts
- Display summary
- Suggest:
/vp-auto
Adapter Compatibility
AskUserQuestion Tool (ENH-048)
This skill uses adapter-aware interactive prompts. Behavior depends on your adapter:
| Adapter | Interactive Prompts | Notes |
|---|---|---|
| Claude Code (terminal) | ✅ AskUserQuestion tool — REQUIRED |
Must call AUQ; plain-text only if tool errors or is unavailable |
| Claude Code (VS Code ext) | ⚠️ Partial | Terminal yes; VS Code UI pending anthropics/claude-code#12609 |
| Cursor (Plan Mode) | ⚠️ Partial | AskQuestion in Plan Mode only — not in Agent/Skills Mode |
| Cursor (Agent/Skills) | ❌ Text fallback | AskQuestion not available in Agent Mode |
| Codex CLI | ❌ Text fallback | Native tool N/A; community MCP available |
| Antigravity (native agent) | ❌ Text fallback | Artifact model, no raw tool calls |
| GitHub Copilot | ✅ /skill-name in Chat |
Via .agent.md custom agent; AUQ not available — text fallback |
Claude Code (terminal) — AUQ preload required (ENH-059):
Before the first interactive prompt, call ToolSearch with query: "select:AskUserQuestion" to load the deferred tool schema. Only after ToolSearch succeeds can AskUserQuestion be invoked. If ToolSearch returns an error, fall back to plain-text numbered list for that session.
When AskUserQuestion is not available on other adapters, the skill automatically falls back to
plain-text numbered list prompts — no configuration required.
Prompts using AskUserQuestion in this skill:
- License selection (Step 0 metadata)
- Brownfield overwrite confirmation (Step 0-B)
- Polyrepo related-repos prompt (Step 0-B)
- UI direction gate choice (Step 1A)
- Architect mode suggestion (Step 1D)
Step 1E — Skill Decision Gate (FEAT-020)
After scope lock, before SPEC generation, crystallize checks for ## skills_used
in the brainstorm session's notes.md:
- No skills_used found → step silently skipped
- Skills found → AUQ presents each skill (required / optional / exclude)
- Decision written to
PROJECT-CONTEXT.md ## Skills
The ## Skills decision is final — /vp-auto reads it at execution time
and injects skill best practices per task without re-prompting.
Install skills: vp-tools install-skill <source>
Registry: vp-tools scan-skills
Docs: docs/user/features/skill-registry.md
Step 1F — Cross-Reference Gate
Validates coverage matrix when both Architect and UI Direction workspaces are present. Warns on Phase 1 features with no architect OR UI coverage (non-blocking).
Step 1G — Stakeholder Review Gate (ENH-098)
After scope lock, spawns .claude/agents/ stakeholder agents in parallel fan-out,
collects gap analysis (Gaps/Risks/Suggestions), synthesizes feedback to enrich
PROJECT-CONTEXT.md before ROADMAP generation. Can be skipped with --no-stakeholders flag.
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核