Skip to content

feat: add Amplifier configuration skill - #282

Merged
Brian Krabach (bkrabach) merged 1 commit into
microsoft:mainfrom
ramparte:feature/amplifier-config-skill
Aug 28, 2026
Merged

feat: add Amplifier configuration skill#282
Brian Krabach (bkrabach) merged 1 commit into
microsoft:mainfrom
ramparte:feature/amplifier-config-skill

Conversation

@ramparte

Copy link
Copy Markdown
Contributor

Problem

Amplifier CLI configuration spans root-session provider selection, spawned-session routing, bundle composition, and local/project/global scope overrides. Users need one reliable workflow that identifies the controlling plane and current effective configuration before changing anything.

Solution

Package an inline, user-invocable /amplifier-config skill that:

  • inspects effective configuration and authoritative current sources;
  • separates root provider selection from spawned routing;
  • proposes the smallest safe change with provenance, blast radius, and rollback;
  • applies only authorized changes and verifies observed outcomes.

Why app-cli

The skill depends on CLI-specific configuration behavior and app-cli:cli-expert. Packaging it with app-cli keeps its guidance version-locked to the installed CLI and its version-matched expert.

Files changed

  • amplifier_app_cli/data/skills/amplifier-config/SKILL.md — packaged inline configuration workflow.
  • tests/test_merge_utils.py — package-relative discovery and skill contract coverage.
  • tests/test_skills_cli.py — packaged slash-command discovery and invocation coverage.

Verification

  • uv run pytest -q: 1470 passed, 1 skipped, 13 deselected, 1 xfailed.
  • Built wheel includes amplifier_app_cli/data/skills/amplifier-config/SKILL.md.
  • Fresh-process pilot smoke verified slash discovery and the root-vs-spawned provider distinction.
  • Focused packaged-skill checks: 3 passed.

Breaking changes

None.

Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@bkrabach

Copy link
Copy Markdown
Collaborator

Thanks for this, Sam Schillace (@ramparte) — the underlying signal is real: users need a repeatable way to inspect effective Amplifier CLI configuration (root provider selection vs. spawned-session routing vs. bundle composition vs. scope precedence) instead of guessing from memory or stale docs. That's exactly the kind of friction an inline /amplifier-config skill should absorb.

Per our review policy for community PRs, here's the due diligence we ran before merging:

Accuracy check against this week's changes

The three "landmines" we specifically checked this skill against (all merged to main after this branch was cut):

None of these are hardcoded anywhere in SKILL.md. The skill is written at the right altitude: it classifies configuration planes (root selection, spawned routing, bundle composition, scope precedence, runtime session state, skill discovery, provider-module fields) and requires live inspection + delegation to app-cli:cli-expert for anything version-sensitive, rather than freezing today's field names or wizard behavior into the doc. That design choice is exactly what keeps a config-help skill from going stale the next time a provider module or wizard ships a change — so there was nothing to revise here. We also confirmed the scope names (global/project/local persisted, session runtime-only) and the ${VAR} env-placeholder convention it references match current lib/settings.py / provider_config_utils.py, and that app-cli:cli-expert is the real, existing agent reference used elsewhere in this repo (agents/cli-expert.md, behaviors/cli-expertise.yaml).

Wiring verdict: confirmed discoverable, not inert

amplifier_app_cli/data/skills/<name>/SKILL.md is auto-appended to tool-skills's config by _ensure_default_skills_dirs() (runtime/config.py) — no separate index/registration step, same mechanism that already ships goalify, goal-batch, and ten-lane-highway. The new test_packaged_amplifier_config_discovery_and_invocation test in tests/test_skills_cli.py exercises this end-to-end (reads the packaged dir, parses frontmatter, confirms /amplifier-config <args> dispatches to load_skill), and test_amplifier_config_skill_contract in tests/test_merge_utils.py pins the frontmatter contract (name/user-invocable/license/version, no context/model_role/allowed-tools, $ARGUMENTS and app-cli:cli-expert present in the body). Both pass.

Test results

Disposition

Accurate and wired as submitted — no revisions needed. Since this PR comes from a fork, we can't push a rebase to your branch, so we're merging the original commit as-is via squash (repo has no branch protection issue, but the ruleset requires 1 approving review — using admin-merge at team direction to land it, since CI is 9/9 green and content review is complete). Credit stays with you as author; thanks for surfacing the gap.

@bkrabach
Brian Krabach (bkrabach) merged commit 2aba0a3 into microsoft:main Aug 28, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants