CHECKFU_API_KEY, CHECKFU_PRINCIPAL_ID, CHECKFU_ENVIRONMENT_ID, SERVICE_PRINCIPAL, the source SESSION, and the target SKILL_SOURCE. The examples use Checkfu-Version: 2026-08-31.
The TypeScript tabs use the TypeScript SDK:
Check whether the trajectory is worth capturing
The suggestion endpoint is read-only. It looks at structural signals such as many Tool calls or failure followed by success. It does not author or install anything.
Create a version-fenced proposal
Name one to eight unique source Sessions. The current request contract also requires the logical The proposal moves from
model_routing_profile_key used by the authoring job. That transitional field selects authoring execution for this operation; it is not the Agent’s public identity or a replacement for Environment admission.Retain one idempotency key for the logical create attempt.authoring to drafted or authoring_failed. The current artifact is one instructional SKILL.md, bounded so the verification Session can carry the complete proposed content. There is no deterministic fallback author when model authoring fails.Verify in an isolated Session
Verification reserves an ordinary Session for the exact proposal version, acting Principal, and Environment. It runs the task class with the proposed Skill in graded context and reconciles the verdict from the Session event log.An exact retry uses the same proposal version, Principal, Environment, request body, and idempotency key. Verify returns the proposal in
verifying and launches a verification Session. Retrieve until the proposal is verified or verification_failed; do not treat launch as a pass. Verification is evidence, not adoption.Submit a governed repository change
Wait for the verification Session to settle, then submit only the verified proposal version to a SkillSource. Stop on Checkfu does not inject or return the source Connection’s custodied Git Credential value through the Skill, branch content, model context, harness configuration, Session events, sandbox files, commit message, pull-request body, or Tool payloads. The trusted provider path binds credential resolution to the exact Connection, immutable Connection revision, and provider named by the admitted effect.Submission creates a repository branch or equivalent change proposal. It does not merge the change, sync the SkillSource, update an Agent, create an AgentVersion, or alter the source Session.A lost response after the branch effect is not proof that Git rejected it. Reconcile the retained submission attempt or provider state before retrying; do not create a second branch effect merely because the first response was lost.
verification_failed or timeout — submit rejects any other status. The acting Principal must own and hold the current required Connection authority for the source repository.Merge, sync, and adopt deliberately
A person reviews and merges the repository change. Then sync the SkillSource. Sync creates a new immutable SkillVersion for the accepted content.Select that SkillVersion in a later Agent update. The configuration-changing update creates the next immutable AgentVersion. Start a new Session from that version; existing Sessions keep their admitted SkillVersion.
What the gate protects
Session-derived instructions can contain mistakes, prompt injection, private data, customer-supplied secrets, or a procedure that worked once for the wrong reason. Verification tests the artifact. Human review decides whether it belongs in the shared capability set. Immutable versioning preserves exactly what was adopted. A Skill can describe how to call a governed Tool, but the Tool still follows its own authority path. Connected Tools use Connection permission, policy, approval, exact revision/provider binding, revocation, and credential attachment at runtime. Custom tools use ActionPolicy and customer execution instead.Capabilities, Tools, and Skills
Understand Skill, SkillVersion, and SkillSource ownership.
Connections and credentials
See the trust path used by the repository submission effect.