eforge-build/eforge/eforge-profile-new
Claude Code and agent skill by eforge-build/eforge
- community
Checking that the SKILL.md file is still in the repository.
Create a new agent runtime profile in eforge/profiles/
Install
npx vskill@latest install eforge-build/eforge/eforge-profile-newSKILL.md
Note: In Pi, the native/eforge:profile:newcommand provides a richer interactive experience with a guided TUI wizard and panel previews. This skill serves as a fallback for non-interactive contexts and as model-readable documentation.
/eforge:profile-new
Interactively create a new named agent runtime profile (e.g. pi-anthropic, pi-openrouter, local-qwen, mixed). The profile can live at project scope (eforge/profiles/<name>.yaml) or user scope (~/.config/eforge/profiles/<name>.yaml). It configures a harness, model, and effort level per build tier (planning → implementation → review → evaluation), then optionally activates itself.
Pi is the recommended eforge execution harness for new profiles because it is provider-flexible. Claude Code or Pi can still be the host surface; the active profile chooses the execution harness. The claude-sdk harness remains supported as an optional Anthropic-specific path. Starting June 15, 2026, Anthropic says Claude Agent SDK and claude -p usage no longer count toward Claude plan limits; eligible plans may receive a separate monthly Agent SDK credit, usage beyond that credit is billed at standard API rates when extra usage is enabled, otherwise requests stop, and API-key users remain pay-as-you-go.
Workflow
Step 0: Ask scope
Ask: "Where should this profile live? Project-local scope (.eforge/profiles/), project scope (eforge/profiles/), or user scope (~/.config/eforge/profiles/)?"
- Project-local scope - profile lives in
.eforge/profiles/, gitignored and dev-personal. Takes highest precedence but is never committed. - Project scope (default) - profile is committed with the project, shared with the team.
- User scope - profile lives in
~/.config/eforge/profiles/, reusable across all projects on this machine.
If the user does not specify, default to project scope. Remember the chosen scope for Step 4 (pass it as scope to the create action) and Step 5 (pass it to use if activating).
Step 1: Determine the profile name
- If
$ARGUMENTSis non-empty, treat the first token as the profile name. - Otherwise ask the user: "What should this profile be called? (e.g.
pi-anthropic,pi-openrouter,local-qwen,mixed)"
The name will be used as the filename (local: .eforge/profiles/<name>.yaml, project: eforge/profiles/<name>.yaml, user: ~/.config/eforge/profiles/<name>.yaml).
Step 2: Configure each tier
Walk the four built-in tiers in fixed order: planning → implementation → review → evaluation.
For each tier, present the following options:
Copy from a previously configured tier (available from implementation onward): From the second tier onward, present one Copy from <tierName> (<modelId>) entry per tier already configured in this session (e.g. on review: Copy from planning and Copy from implementation, in TIER_ORDER order). The default selection is copy-from-immediately-previous when the user just presses enter.
Custom: walk the sub-flow:
- Harness: ask
pi(recommended/provider-flexible) orclaude-sdk(optional Anthropic-specific Agent SDK with credit/API-priced usage). - Provider (pi only): call
eforge_modelswith{ action: "providers", harness: "pi" }, show the list, confirm. - Model: call
eforge_modelswith{ action: "list", harness: "<harness>", provider: "<provider>" }(omitproviderfor claude-sdk). Show top 10 (id +releasedAtwhen available); add a "see all" affordance if the list is longer. Default to the newest model. Confirm. - Effort: ask from
low | medium | high | xhigh | max. Default:highfor planning/review/evaluation,mediumfor implementation.
For the planning tier present only Custom, since no prior tier exists yet. Start that first custom tier with pi selected first unless the user explicitly asks for claude-sdk.
Record each tier's harness, optional pi.provider, model, and effort.
Step 2b: Configure project MCP toolbelts (optional)
After tier configuration, ask: "Would you like to configure project MCP toolbelts for this profile?"
Present three options:
- Skip / default — leave
toolbeltfields omitted; all project MCP servers from.mcp.jsonpass through to each tier. - No project MCP access — set all four tiers to
toolbelt: none; no project MCP servers reach agents in any tier. - Choose a preset — configure a named toolbelt bundle with least-privilege tier assignments.
If skipped: Leave all tier toolbelt fields omitted. Proceed to Step 3.
If no project MCP access: Add toolbelt: none to all four tiers. Proceed to Step 3.
If a preset is selected: Present the preset gallery:
| Preset | Typical MCP servers | Tiers receiving access | |
|---|---|---|---|
browser-ui | playwright | implementation, review | |
docs-research | fetch, context7 | planning, implementation | |
issue-triage | github | planning | |
repo-review | github | planning, review | |
observability | datadog, sentry | planning, evaluation | |
database-readonly | postgres, sqlite | planning | |
api-testing | fetch | implementation, review | |
design-ui | figma | planning, implementation, review |
For each required MCP server in the chosen preset:
- Check whether the server name is present in
.mcp.jsonundermcpServers. - Check whether
tools.toolbelts.<preset>is declared ineforge/config.yaml.
Before assigning tier fields, ensure both checks pass. If the required server names are present but tools.toolbelts.<preset> is missing, add the tools.toolbelts.<preset> entry with the preset description and mcpServers list before assigning any tier toolbelt fields.
For `browser-ui` with missing Playwright: Show the following snippet and ask before adding:
If the user confirms, add the entry to .mcp.json (merge if the file exists) and declare the toolbelt in eforge/config.yaml:
Then assign toolbelt: browser-ui to implementation and review, and toolbelt: none to planning and evaluation.
For other presets with missing servers: Show the preset's setup hint and do not create tier toolbelt references. Ask the user to add the required MCP server to .mcp.json first, then re-run /eforge:profile-new.
When toolbelt fields are set, include them in agents.tiers in the Step 3 preview and in the Step 4 create payload.
Step 2c: Configure implementation runtime choices (optional)
Ask: "Would you like this profile to add per-invocation runtime choices for implementation work?"
- Skip / default — every implementation invocation uses the
implementationtier default. - Add UI/backend choices — create
implementation.uiandimplementation.backendchoices with ordered declarative routing rules.
Use runtime choices when the same built-in tier needs tier-local overlays. The four built-in tiers remain the role-routing axis; choices are selected only after a role resolves to its tier. The existing tier recipe is the implicit default choice (implementation.default), and named choices inherit from that tier default.
For the UI/backend preset, first ensure browser-ui is a declared project toolbelt using the same checks from Step 2b (required MCP server present or auto-added, then tools.toolbelts.browser-ui written to config). If it cannot be declared, omit toolbelt: browser-ui from the ui choice or reuse an already-declared implementation toolbelt instead of creating an invalid reference.
Then add:
Declarative rules run before extension runtime-choice routers. Extension router failures fall back to default and do not fail the build. registerProfileRouter still selects the active profile before build dispatch; it is separate from per-invocation runtime-choice routing. onAgentRun can observe selected choice metadata, but cannot change the selected harness, model, provider, effort, or toolbelt. Events expose non-secret runtime-choice metadata.
Step 3: Preview the profile
Show the user a rendered preview of the YAML that will land in the chosen scope directory. Example Pi-first profile:
Example with mixed Pi providers:
Optional claude-sdk tiers omit the pi block and use Anthropic model IDs:
Ask for confirmation or corrections before writing.
Step 4: Create the profile
Call eforge_profile with:
Omit pi for the claude-sdk harness. Include pi: { provider: "..." } for the pi harness.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/pi-eforge/skills/eforge-profile-new/SKILL.md
Popularity
- Repository stars
- 65
- Repository forks
- 4
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 20 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/eforge-build/eforge/eforge-profile-new)