From pappardelle
Interactively configure Pappardelle by editing .pappardelle.yml and .pappardelle.local.yml to add profiles, keybindings, hooks, watchlists, providers, and workspace commands.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pappardelle:configure-pappardelleThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help the user configure their Pappardelle setup by editing `.pappardelle.yml` (shared, checked into git) and/or `.pappardelle.local.yml` (personal, gitignored).
Help the user configure their Pappardelle setup by editing .pappardelle.yml (shared, checked into git) and/or .pappardelle.local.yml (personal, gitignored).
REPO_ROOT=$(git rev-parse --show-toplevel)
echo "Repo root: $REPO_ROOT"
ls -la "$REPO_ROOT/.pappardelle.yml" "$REPO_ROOT/.pappardelle.local.yml" 2>/dev/null
Read the existing config (if it exists). If no .pappardelle.yml exists, suggest running /init-pappardelle first.
Ask what the user wants to configure using AskUserQuestion:
Options:
post_workspace_init)pre_workspace_deinit).pappardelle.local.ymlThen follow the appropriate section below based on their choice.
Profiles define project-specific workspace behavior. Ask these questions with AskUserQuestion:
my-app, backend-api)My iOS App, Backend API)ios, app, swift). Include the issue prefix with hyphen if applicable (e.g., MOB-)team_prefixvars and commands for xcodegen/xcodebuildprofiles:
my-profile:
keywords: [keyword1, keyword2]
display_name: 'My Profile'
team_prefix: PREFIX # Optional per-profile override
claude:
initialization_command: '/do' # Optional per-profile override
vars: # Custom template variables
KEY: 'value'
vcs:
label: 'github_label' # Label applied to PRs/MRs
links:
- url: '${ISSUE_URL}'
title: 'Issue'
- url: '${PR_URL}'
title: 'PR'
if_set: 'PR_URL'
apps:
- name: 'Xcode'
path: '${WORKTREE_PATH}/path/to/project.xcodeproj'
if_set: 'SOME_VAR'
commands:
- name: 'Build project'
run: 'cd ${WORKTREE_PATH} && make build'
continue_on_error: false
background: false
post_workspace_init: # Profile-specific init commands (run after global)
- name: 'Setup step'
run: 'some command'
pre_workspace_deinit: # Profile-specific deinit commands (run after global)
- name: 'Cleanup step'
run: 'some command'
continue_on_error: true
Keybindings are single-key shortcuts in the Pappardelle TUI. Ask with AskUserQuestion:
j, k, g, i, d, o, n, e, p, q, ?run) or send text to Claude (send_to_claude).pappardelle.yml, personal goes in .pappardelle.local.ymlkeybindings:
- key: 'b'
name: 'Build app'
run: 'cd ${WORKTREE_PATH} && make build'
- key: 'a'
name: 'Address PR feedback'
send_to_claude: '/address-pr-feedback'
.pappardelle.local.yml)The local file can add, override, or disable keybindings:
keybindings:
- key: 'V' # Add new personal binding
name: 'Open in VS Code'
run: 'code ${WORKTREE_PATH}'
- key: 'X' # Override a shared binding
name: 'Open in Nova'
run: 'nova ${WORKTREE_PATH}'
- key: 'r' # Disable a shared binding
disabled: true
post_workspace_init runs after worktree creation. Common patterns:
# Copy environment files
post_workspace_init:
- name: 'Copy .env'
run: 'cp -n ${REPO_ROOT}/.env ${WORKTREE_PATH}/.env 2>/dev/null || true'
- name: 'Install dependencies'
run: 'cd ${WORKTREE_PATH} && npm install'
continue_on_error: true
- name: 'Background task'
run: 'long-running-setup.sh'
background: true
Ask with AskUserQuestion:
continue_on_error: true)background: true)Note:
post_worktree_initis accepted as a backwards-compatible alias. Usepost_workspace_initfor new configs.
pre_workspace_deinit runs before workspace deletion. If a command fails (without continue_on_error), deletion is aborted.
pre_workspace_deinit:
- name: 'Close issue'
run: 'linctl issue update ${ISSUE_KEY} --state Done'
continue_on_error: true
- name: 'Remove worktree'
run: 'git worktree remove ${WORKTREE_PATH} --force'
continue_on_error: true
Ask with AskUserQuestion:
Auto-create workspaces for issues assigned to you.
issue_watchlist:
assignee: me # 'me' auto-detects, or use explicit username
statuses:
- To Do
- In Progress
labels: # Optional: filter by label
- pappardelle
Ask with AskUserQuestion:
me (auto-detect) or a specific username?issue_tracker:
provider: linear # or 'jira'
# base_url: https://mycompany.atlassian.net # Required for Jira
vcs_host:
provider: github # or 'gitlab'
# host: gitlab.mycompany.com # Optional for self-hosted GitLab
claude:
initialization_command: '/do' # Skill to run on new sessions
dangerously_skip_permissions: false # 'yolo mode'
Per-profile overrides take precedence:
profiles:
my-profile:
claude:
initialization_command: '/do-custom'
Available in all command templates, link URLs, and app paths:
| Variable | Description | Example |
|---|---|---|
${ISSUE_KEY} | Issue key | STA-361 |
${ISSUE_NUMBER} | Numeric part | 361 |
${ISSUE_URL} | Full issue URL | https://linear.app/... |
${TITLE} | Issue title | Add dark mode |
${DESCRIPTION} | Issue description | (full text) |
${WORKTREE_PATH} | Worktree path | /Users/.../STA-361 |
${REPO_ROOT} | Git repo root | /Users/.../stardust-labs |
${REPO_NAME} | Repo directory name | stardust-labs |
${PR_URL} | GitHub PR URL | https://github.com/... |
${MR_URL} | GitLab MR URL | https://gitlab.com/... |
${SCRIPT_DIR} | Pappardelle scripts dir | /path/to/scripts |
${VCS_LABEL} | VCS label from profile | stardust_jams |
${TRACKER_PROVIDER} | Issue tracker | linear or jira |
${VCS_PROVIDER} | VCS host | github or gitlab |
Profile vars keys also become template variables (e.g., vars: { APP_DIR: "src" } → ${APP_DIR}).
AskUserQuestion liberally — don't guess what the user wants, ask.pappardelle.yml affect everyone on the team; .pappardelle.local.yml is gitignored and personalj, k, g, i, d, o, n, e, p, q, ? — never assign thesename (string) and run (string). Optional: continue_on_error (bool), background (bool)/configure-pappardelle add a keybinding for running tests), skip the initial "what do you want to configure" question and jump directly to the relevant sectionq to quit, then re-launch with pappardellenpx claudepluginhub chardigio/pappardelle --plugin pappardelleInstalls and initializes Pappardelle in a Git repository: runs interactive wizard to configure VCS host, issue tracker, team prefix, profiles; generates .pappardelle.yml and local overrides. Use for initial setup or config updates.
Interactive wizard that generates or updates the Automation Config block in CLAUDE.md, with template support for popular stacks and version-aware migration.
Initializes and configures projects: detects tech stacks, scaffolds new apps, creates task files, sets branch strategies, handles git submodules, exports to other AI platforms.