Skip to content

docs(sdk): op-catalog guidance — merge semantics, inputs_fields rules, test_run verdicts - #5105

Merged
mmabrouk merged 2 commits into
big-agentsfrom
feat/build-kit-op-guidance
Jul 7, 2026
Merged

docs(sdk): op-catalog guidance — merge semantics, inputs_fields rules, test_run verdicts#5105
mmabrouk merged 2 commits into
big-agentsfrom
feat/build-kit-op-guidance

Conversation

@mmabrouk

@mmabrouk mmabrouk commented Jul 7, 2026

Copy link
Copy Markdown
Member

Context

The platform-op descriptions are the only thing a builder agent reads before calling a tool, and they were missing the facts behind three observed failure modes: agents wiping their own build kit by sending a one-entry tools list to commit_revision (deep-merge replaces lists wholesale, which the description never said), agents guessing the inputs_fields template language, and agents misreading test_run results because only two of the four verdicts were documented anywhere.

Changes

Model-facing description upgrades in op_catalog.py, each verified against the implementing code before writing:

  • commit_revision: lists (tools, skills, mcps) replace wholesale, send the complete list; the response returns the new revision id; existing triggers keep pointing at the old revision until re-pointed. (Verified against _deep_merge in workflows/service.py: lists hit the replace branch.)
  • inputs_fields (shared by create_schedule/create_subscription): $ leaf = JSON Path over the fire context, / leaf = JSON Pointer, other leaves literal, no interpolation, unmatched selector = null, omitted template = whole context, plus the canonical imperative-messages pattern. (Verified against resolvers.py and the trigger dispatcher's "$" fallback.)
  • test_run: all four verdicts spelled out (pass / incomplete / unconfirmed / failed), including that a tool name in the executed list is not proof it completed. (Verified against TestRunVerdict and _verdict in platform_handlers.py.)
  • create_schedule / create_subscription: when no revision is specified the trigger binds to the variant's latest revision at creation time and does not follow later commits (matches fix(api): pin trigger references to the variant HEAD revision when none is given #5103).

Scope / risk

Description and schema-description strings only; no behavior, no wire shape, no schema structure changes. The stacked PR above this one updates the build-an-agent skill to match.

Tests

  • test_op_catalog.py extended to pin the new load-bearing phrases (verdict words, wholesale replacement, JSON Path/Pointer rules, identical inputs_fields text on both trigger ops): 34 passed.

https://claude.ai/code/session_01N2djTMgXnpk84EqtugHDJB

@dosubot dosubot Bot added the size:XL This PR changes 500-999 lines, ignoring generated files. label Jul 7, 2026
@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenta-documentation Ready Ready Preview, Comment Jul 7, 2026 11:19am

Request Review

@dosubot dosubot Bot added the documentation Improvements or additions to documentation label Jul 7, 2026
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6c0c25c0-41f3-441c-a20a-4fb8a6d6773e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/build-kit-op-guidance

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

"required": ["use_cases"],
}

_TRIGGER_INPUTS_FIELDS_SCHEMA: Dict[str, Any] = {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every claim in these strings was verified against the implementing code before writing, since a wrong model-facing claim becomes agent behavior: list-wholesale replacement against _deep_merge in workflows/service.py (lists hit the replace branch), the template rules against resolvers.py resolve_json_selector + the dispatcher's "$" fallback, and the verdict enum against TestRunVerdict + _verdict in platform_handlers.py (including the two extra unconfirmed producers beyond stalled approval). The tests pin the load-bearing phrases so a future description edit that drops one fails loud.

@mmabrouk

mmabrouk commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

let last = 0
let m: RegExpExecArray | null
TOKEN_RE.lastIndex = 0
while ((m = TOKEN_RE.exec(template)) !== null) {
"content-type": "application/json",
"content-length": Buffer.byteLength(payload),
});
res.end(payload);
if (!isPlainObject(cursor[key])) cursor[key] = {};
cursor = cursor[key] as Record<string, unknown>;
}
cursor[parts[parts.length - 1]] = value;
@mmabrouk
mmabrouk changed the base branch from main to big-agents July 7, 2026 11:16
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:XL This PR changes 500-999 lines, ignoring generated files. labels Jul 7, 2026
…mmit_revision and test_run

The tool schema itself now advertises the parameters.agent shape (over MCP to Claude and
via the Pi extension): expanded agent-template with all required arrays stripped (a delta
is a deep partial) and embed-tolerant list items so re-sent full lists keep @ag.embed
entries intact.

Claude-Session: https://claude.ai/code/session_01N2djTMgXnpk84EqtugHDJB
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Jul 7, 2026

@mmabrouk mmabrouk left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mmabrouk
mmabrouk merged commit be69600 into big-agents Jul 7, 2026
23 checks passed
@mmabrouk
mmabrouk deleted the feat/build-kit-op-guidance branch July 7, 2026 11:53
@mmabrouk
mmabrouk restored the feat/build-kit-op-guidance branch July 7, 2026 11:54
@mmabrouk
mmabrouk deleted the feat/build-kit-op-guidance branch July 7, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants