v0.13.0: commit and pull request conventions, model-family adapter matching#10
Merged
Merged
Conversation
…atch model families (0.13.0) Adapter resolution matched a single exact model identifier, so every model outside that one release ran on the baseline standard with no corrections applied. Profiles are now named for families and matched by prefix. The commit skill was manual-only, which kept its conventions unreachable unless it was typed. It is now model-invocable and carries pull request guidance alongside commit-message guidance: lead with rationale, describe behavior rather than the diff, state the feedback wanted, report what was actually verified, and scale the description to the change. A single rule covers both artifacts: describe the resulting code, never the session that produced it. Reaching the conventions authorizes nothing; committing, pushing, and opening a pull request each still require an explicit request. Specs and sketches carry a Status line so a finished spec is distinguishable from an abandoned one.
…ipline (0.13.0) Description carries triggers and the cross-skill reach clause rather than restating identity the body already holds. The session-omission rule was a bulleted prohibition list, which names the behaviour it bans. It collapses to a diary, positive-first: describe what the code does, and cut what reads as a diary entry.
…ge gaps (0.13.0) `execute` and `auto` described the commit flow as unreachable, which contradicted the model-invocable skill and left the conventions unreached on the path that most needs them. Both now point at `meridian:commit` for message conventions while the flow itself stays user-owned. Family prefix matching had no regression guard: restoring the previous exact-only registry left the suite green. A test now pins that a later release in a mapped family receives its adapters and that an unmapped family stays on the baseline. Outward actions move behind a HARD-GATE, matching the device `brainstorm` and `sketch` already use, since `commit` is the only model-invocable skill that can push. `SHIPPED <sha>` moves to the commit flow, which is the only step that produces a sha; `execute` sets `IN PROGRESS` and covers sketches as well as specs. Two pull request claims asserted research findings that the source does not support and are removed. The guidance they justified stands on its own, and the section gains the pull request title and issue linking. The `opus-4.8` to `claude-opus` rename is recorded as breaking: a host-local `fallbackProfile` set to the old name silently yields no adapters. Prefix matching is documented as literal, so vendor-qualified identifiers still need the override.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
commitmodel-invocable so its conventions are reachable while outward actions stay behind a hard gatecommitpull request description guidance alongside its commit message guidanceStatusline on specs and sketches through toSHIPPED0.13.0Why
Adapter resolution matched one exact model identifier,
claude-opus-4-8. Every other model, including later releases of the same family, resolved to no profile and ran on the baseline standard with zero corrections applied. The correction most often wanted, comment narration, was therefore inert on the models actually in use.Separately,
commitwas manual-only. Its conventions could not be reached by the model or by another skill, so they applied only when the skill was typed by name — which is the least likely moment for a commit message or pull request description to need them.User impact
Breaking. The
opus-4.8profile is renamedclaude-opus. A host-local<state-base>/meridian/config.jsoncontaining"fallbackProfile": "opus-4.8"no longer resolves and silently yields the baseline with no adapters. Rename the value toclaude-opus. This matters most on Copilot, where the README recommends the fallback because no model identifier is exposed.Matching is a literal prefix over the identifier the host reports. Vendor- or region-qualified identifiers, such as the
us.anthropic.Bedrock form, still fall through to the baseline and need the environment override or a fallback.claude-fable-now resolves to thefableprofile, which carries no adapters by design, so a Fable session no longer picks up a configured fallback.commitmoves to the model-invoked table. Its conventions are reachable whenever a commit message or pull request description is written, including by other skills. Reaching them authorizes nothing: committing, pushing, and opening or editing a pull request sit behind a<HARD-GATE>and each require an explicit request for that action. It is the only model-invocable skill that performs outward actions, which is why it uses the same gate device asbrainstormandsketchrather than an ordinary section.executeandautopreviously described the commit flow as not-to-be-invoked, which contradicted the above and left the conventions unreached on the path that most needs them. Both now point atmeridian:commitfor message conventions while the flow itself stays user-owned.Validation
pnpm check— formatting, lint, typecheck, and 39 tests passclaude-opus-5,claude-opus-5[1m],claude-opus-4-8(adapters applied) andclaude-sonnet-5,claude-fable-5,gpt-5-codex(baseline)claude-opus-5against the previous registry, which yields the baselineThe paid promptfoo corpus was not run; it remains on-demand and non-blocking. Two scenarios changed: authoring a commit message or pull request description now reaches
commit, and an implied-approval prompt asserts no commit or push is proposed. That harness inspects skill calls and response text, so it can show no outward action was proposed but cannot prove none executed; the authorization boundary is prose and nothing enforces it mechanically.Review notes
skills/commit/SKILL.mdis the substance and worth reading first; the rest follows from it. The two judgment calls most worth a second opinion are the<HARD-GATE>placement over the flow, and keeping the pull request guidance inline rather than disclosing it toreferences/assketchdoes.The pull request guidance deliberately carries no citations or statistics. Earlier drafts asserted empirical findings about which description elements predict review outcomes; the sources did not support them as written, so the guidance now stands on its own.