Create or review a high-level vision document capturing project goals and purpose. Use when asked to "define the vision", "what is this project", "set goals", or when starting a new project that needs clarity on purpose and direction.
<tool_restrictions>
Ask one question at a time. In Claude Code use AskUserQuestion; elsewhere ask a single concise plain-text question. Keep any lead-in to 2-3 sentences. Don't narrate missing tools or fallbacks.
</tool_restrictions>
<arc_runtime>
Requires the full Arc bundle. Arc-owned paths (agents/, references/, disciplines/, templates/, scripts/, rules/, skills/) resolve from the plugin root — the directory containing agents/ and skills/. Everything else is the user's repository.
</arc_runtime>
Create or maintain a project's root CONTEXT.md: its goals, product boundary, non-goals, decision principles, and domain language. The output should be useful to future humans and agents: specific enough to guide decisions, short enough to be read, and honest about constraints.
When invoked:
/arc:vision.Read what exists from this list. Do not fail if a file is absent:
CONTEXT.mdCONTEXT-MAP.mddocs/vision.md (legacy — fold its content into CONTEXT.md if found)README.mdAGENTS.mddocs/brand-system.mddocs/design-context.mdpackage.jsonIf CONTEXT.md already exists, read it first and preserve the user's content. Update and extend it — sharpen goals, boundary, and glossary — rather than overwriting. If the user did not specify a mode, ask:
AskUserQuestion:
question: "I found an existing CONTEXT.md. What would you like to do?"
header: "Existing Context"
options:
- label: "Review"
description: "Assess the current CONTEXT.md and suggest improvements without overwriting it"
- label: "Extend"
description: "Update and sharpen goals, boundary, and glossary, preserving existing content"
- label: "Start fresh"
description: "Replace it with a new CONTEXT.md"
If no user response is available (an unattended or non-interactive run), default to Review — the read-mostly mode — and say so in the output.
If a legacy docs/vision.md exists but no CONTEXT.md, offer to fold it into a new root CONTEXT.md. If no foundation exists and the user's intent is clear, draft from available context. Do not force a long interview.
Ask only the questions needed to fill real gaps:
Create or update root CONTEXT.md by default unless the user specifies another path.
Use this structure unless the project already has a better local convention:
# <Project> Context
<One or two sentences: what this is and who it serves.>
## Goals
<Why it exists, what it should achieve, and what is true if it succeeds.>
## Product Boundary
<What this project owns, and what it deliberately does not become (non-goals + constraints).>
## Principles
<Decision rules that can resolve future tradeoffs.>
## Language
<Domain glossary: the terms the codebase and product actually use, each defined in one line.>
## Open Questions
<Unresolved assumptions the direction depends on.>
A good CONTEXT.md normally fits in 500-900 words.
If the repo has several distinct contexts (e.g. separate apps or publishable packages with their own product shape), offer to create a root CONTEXT-MAP.md that points to per-package CONTEXT.md files:
# Context Map
- `packages/<name>/CONTEXT.md` — <one-line scope>
- `apps/<name>/CONTEXT.md` — <one-line scope>
Keep the root CONTEXT.md for whole-project goals and boundary; let each package's CONTEXT.md hold its local goals and glossary. Only propose this when the repo genuinely has multiple contexts — do not split a single-context project.
When reviewing an existing CONTEXT.md, lead with issues:
If the user asked only for a review, do not overwrite the file. Provide findings and a proposed revision excerpt instead.
When extending an existing CONTEXT.md:
CONTEXT.md unless the user specified another path.When starting fresh — no CONTEXT.md exists, or the user chose to replace the existing one — write a new document using the structure in Output, then save it as described under Save.
When creating or updating, write to root CONTEXT.md unless another path was requested. Fold any legacy docs/vision.md content into it rather than maintaining both.
Offer to commit the change with one question — never commit silently:
AskUserQuestion:
question: "CONTEXT.md is ready. Commit it now?"
header: "Commit"
options:
- label: "Commit"
description: "git add CONTEXT.md && commit with a docs message"
- label: "Leave it"
description: "Save the file but do not commit"
On "Commit":
git add CONTEXT.md
test -f CONTEXT-MAP.md && git add CONTEXT-MAP.md
git commit -m "docs: update project context"
The project foundation lives in root CONTEXT.md. Downstream Arc skills should read it for product goals, boundary, and domain language.
/arc:ideate reads CONTEXT.md for product and scope context.<completion_check> Before finishing, verify that CONTEXT.md:
</completion_check>
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer