Skip to content

feat(319): a skill that cannot decide says so before it runs - #134

Merged
munchist merged 1 commit into
mainfrom
feat/composer-decision-model
Oct 17, 2026
Merged

munchist merged 1 commit into
mainfrom
feat/composer-decision-model

Conversation

@aflow-pr-agent

Copy link
Copy Markdown
Contributor

What changes

A skill that cannot decide says so before it runs. ai.* is a platform prefix, so a skill with a decision step used to show as ready even when the space had no key for any decision model. The problem only showed up when the run reached its first decision step and failed with AI_PROVIDER_CREDENTIAL_MISSING.

  • A decision step now requires a new decision_model setup requirement, built the same way as the existing search_provider one.
    • Auto: a key for any decision model's provider (TypeSafe or OpenAI) satisfies it.
    • Assigned model: only that model's provider key satisfies it. A key for the other provider would show ready and then fail.
  • When the requirement isn't met, the skill shows needsSetup instead of ready. The remedy text names the providers that would fix it, and the install manifest offers a connect-provider step.
  • A contract test ties the provider list to the catalog's decision models, so adding a decision model from a new provider fails the test until the list is updated.

The composer's Models & reasoning menu shows the Decisions row. It's the same row Plan 319 added to the settings page: "Auto · first decision model with a key", or a specific model by alias.

Plan 319 records this as D7.

How it is proven

  • codePolicyReadiness.test.ts: four cases, covering no key, Auto with an OpenAI key, an assigned jev with only an OpenAI key, and a model missing from the catalog.
  • decisionLaneProviders.contract.test.ts: checks the provider list against the catalog, which steps need the requirement, and the remedy text. Removing a provider from the list makes the test fail.
  • yarn verify passes: typecheck, 234 test files, lint and format.

🤖 Generated with Claude Code

A decision step now requires the `decision_model` setup token. Under Auto a key
for any decision model's provider satisfies it; an assigned decision model
needs its own provider's key. A skill with no answerable decision step reads
needsSetup with a connect-provider remedy instead of reporting ready and
failing at its first decision. The provider list is pinned to the catalog's
decision models by a contract test.

The composer's Models & reasoning menu gains the Decisions row the settings
page already had.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aflow-pr-agent
aflow-pr-agent Bot requested a review from munchist October 17, 2026 20:09
@munchist
munchist merged commit 02230d2 into main Oct 17, 2026
3 checks passed
@munchist
munchist deleted the feat/composer-decision-model branch October 17, 2026 21:32
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.

1 participant