npx claudepluginhub todmy/valis-plugin[project-name]Connect this repository to a Valis project by creating `.valis.json`. ## Steps 1. Read `.valis.json` from the repo root. If it exists, show the current project and ask whether to switch. Stop if the user declines. 2. Call the **`valis_list_projects`** MCP tool to fetch projects the authenticated member can access. Do **not** use `WebFetch`, `Fetch`, or `Bash curl` to hit `/api/list-projects` directly — those tools do not carry the MCP OAuth token and will return 401. 3. Present a numbered list with names, roles, and decision counts. **Always include one additional option at the end*...
/initInitializes beads issue tracking database in current directory with optional prefix (defaults to dir name). Shows DB location, prefix, workflow overview, next steps; displays stats if already set up.
/initInitializes guided UI design for dashboards, apps, and tools. Assesses intent, proposes styles with rationale, builds components, and offers to save patterns.
/initDownloads and installs/updates the platform-specific notification binary for claude-notifications plugin from GitHub into the plugin's bin directory.
/initInitializes or re-boots llmdoc/ directory structure, runs multi-themed project investigations with investigator, and generates initial stable docs via recorder.
/initInitializes AI task harness with ai/tasks/ directory for modular backlog, progress log, bootstrap script, and CLAUDE.md instructions. Supports --mode new|scan and --task-type ops|data|infra|manual.
/initScans ~/.claude/agents/ for custom agent files, lets user select which to import/register into orchestration plugin registry, updates JSON registry and documentation.
Connect this repository to a Valis project by creating .valis.json.
Read .valis.json from the repo root. If it exists, show the current project and ask whether to switch. Stop if the user declines.
Call the valis_list_projects MCP tool to fetch projects the authenticated member can access.
Do not use WebFetch, Fetch, or Bash curl to hit /api/list-projects directly — those tools do not carry the MCP OAuth token and will return 401.
Present a numbered list with names, roles, and decision counts. Always include one additional option at the end: N+1. Create a new project (where N is the number of existing projects).
If $ARGUMENTS matches an existing project name, select it automatically. Otherwise ask the user to pick by number or name.
If user picks "Create a new project" (or equivalent):
Ask for the project name. Suggest the current repo directory basename as a default.
Show the baseline picker — present these four options as a numbered menu and ask the user to pick one:
1. Blank — start empty (0 decisions)
2. ts-saas v0.1 — TypeScript SaaS conventions (18 decisions, free plan)
3. fintech v0.1 — Fintech compliance + auditability (22 decisions, requires 'pro' plan or higher)
4. ai-agent v0.1 — AI agent / LLM app conventions (15 decisions, free plan)
The version labels (v0.1) come from the registry — keep them visible so the user knows which snapshot will be seeded if they audit the project later.
Call valis_create_project:
project_name only.project_name AND template_id (one of ts-saas | fintech | ai-agent).On success the response includes { project_id, project_name, role, template_source, decisions_seeded }. Surface decisions_seeded to the user so they know how much was preloaded.
Plan-locked errors: if the response has error: 'plan_too_low', surface the human-readable message to the user and offer to retry with a different template (Blank or another free-tier option). Do not retry blindly.
Quota errors: if the response has error: 'plan_quota_exceeded', surface the message and offer Blank as a fallback (no decisions seeded).
Treat the successful response as the selected project for step 6.
Write .valis.json to the repo root:
{ "project_id": "<id>", "project_name": "<name>" }
Print: "Connected to {project_name}. {decision_count} decisions available." Substitute decisions_seeded for templated projects, or 0 for blank ones.