con un clic
eforge-profile
List, inspect, and switch agent runtime profiles
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
List, inspect, and switch agent runtime profiles
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Enqueue a source for the eforge daemon to build — PRD file, inline description, or conversation context. Use when the user wants to hand work off to eforge.
Initialize or edit eforge/config.yaml team-wide settings, with validation via daemon tools
Author eforge TypeScript extensions from a natural-language request using the existing extension tooling and docs/examples
Inspect the recovery verdict for a failed PRD and apply the recommended action (retry, continue-repair, abandon, or manual)
Create a new agent runtime profile in eforge/profiles/
Initialize eforge in the current project with an interactive setup flow
| name | eforge-profile |
| description | List, inspect, and switch agent runtime profiles |
| disable-model-invocation | true |
Note: In Pi, the native
/eforge:profilecommand provides a richer interactive experience with TUI selector/panel profile browsing and switching. This skill serves as a fallback for non-interactive contexts and as model-readable documentation.
List, inspect, and switch named agent runtime profiles stored in .eforge/profiles/ (project-local scope), eforge/profiles/ (project scope), or ~/.config/eforge/profiles/ (user scope). The active profile is tracked by a marker file at any level; resolution follows a 6-step precedence chain (see below).
Inspect $ARGUMENTS:
$ARGUMENTS is empty or whitespace, go to Step 2 (inspect mode).Call the eforge_profile tool with { action: "show" }.
Parse the response (shape: { active, source, resolved: { harness, profile, metadata } }) and report:
{active} (or "(none - using team default)" when active is null){source} (local when the active profile is picked via the .eforge/.active-profile marker, project when picked via the eforge/.active-profile marker, missing when the marker points at a profile file that does not exist (stale marker), none when no profile is configured at all){resolved.harness} (e.g. claude-sdk or pi)resolved.metadata):
{resolved.metadata.description}{resolved.metadata.whenToUse} (as a bullet list){resolved.metadata.tags} (comma-separated)tierToolbelts is present in the response): render a per-tier summary under a Tier toolbelts: sub-header:
tierToolbelts, show <tier>: <toolbelt> followed by the sorted MCP server names in parentheses when non-empty, e.g. implementation: browser-ui (playwright) or planning: none or review: all (default).Then call eforge_profile with { action: "list" } to show the user what other profiles are available, rendering a table with the following columns:
| Name | Scope | Harness | Description | Active |
|---|---|---|---|---|
pi-anthropic | local | pi | Fast multi-provider | ● |
pi-glm | project (shadowed) | pi | ||
claude-fast | user | claude-sdk |
local for profiles in .eforge/profiles/ (gitignored, project-local), project for profiles in eforge/profiles/, user for profiles in ~/.config/eforge/profiles/.project (shadowed) or user (shadowed) in the Scope column.●.resolved.metadata.description when present (truncated to ~60 chars). Leave blank when absent.If no profiles exist, suggest /eforge:profile-new to create one.
Call eforge_profile with { action: "use", name: "<arg>" }. To set the active profile at user scope instead of project scope, pass scope: "user": { action: "use", name: "<arg>", scope: "user" }.
On success, the daemon writes the active-profile marker at the chosen scope (.eforge/.active-profile for local, eforge/.active-profile for project, ~/.config/eforge/.active-profile for user). Then call { action: "show" } again and report the new active profile plus the resolved harness:
Switched to
{name}. Resolved harness:{resolved.harness}. The next eforge build will use this profile.
On error (e.g. the profile does not exist), surface the error message and suggest running /eforge:profile with no args to list available profiles, or /eforge:profile-new to create a new one.
The scope parameter is available on list, use, create, and delete actions:
list: scope accepts "local", "project", "user", or "all" (default "all") - shows profiles from all scopes when omitted.use / create / delete: scope accepts "local", "project", or "user" (default "project") - operates on .eforge/profiles/ and .eforge/.active-profile for local scope, eforge/profiles/ and eforge/.active-profile for project scope, ~/.config/eforge/profiles/ and ~/.config/eforge/.active-profile for user scope.The active agent runtime profile is resolved using a 4-step precedence chain (highest to lowest):
.eforge/.active-profile file in the repo root (gitignored)eforge/.active-profile file in the project~/.config/eforge/.active-profile fileWhen a profile name is resolved, the profile file is looked up local-first, then project, then user-fallback - so a local profile shadows project and user profiles with the same name.
| Condition | Action |
|---|---|
| Profile name does not exist | Show the daemon error and list available profiles |
No eforge/profiles/ directory | Suggest /eforge:profile-new to create the first profile |
| Tool connection failure | The daemon is not running. Tell the user to start it with eforge_daemon { action: "start" }, /eforge:restart, or eforge daemon start. |
| No config found | Tell the user: "No eforge config found. Run /eforge:init to initialize eforge in this project." |
| Skill | When to suggest |
|---|---|
/eforge:profile-new | User wants to create a new named profile |
/eforge:config | User wants to view or edit eforge/config.yaml (the team default fallback) |
eforge_extension_contribution | User wants to discover or invoke workflows provided by loaded extensions |
/eforge:status | User wants to check current build status |