Skip to content

chore(skills): sync embedded agentfield-use mirror after #827#828

Open
AbirAbbas wants to merge 1 commit into
mainfrom
fix/sync-embedded-skills
Open

chore(skills): sync embedded agentfield-use mirror after #827#828
AbirAbbas wants to merge 1 commit into
mainfrom
fix/sync-embedded-skills

Conversation

@AbirAbbas

Copy link
Copy Markdown
Contributor

Summary

#827 edited the canonical skills/agentfield-use/SKILL.md without running scripts/sync-embedded-skills.sh, so the control-plane's embedded mirror drifted and TestEmbeddedSkillSyncCheck / TestSkillCatalogAndEmbeddedMirrorsStayAligned fail on main — leaking a red coverage gate into every open PR that merges main.

This runs the sync script and commits the regenerated mirror. Skillkit tests pass locally after the sync.

Test Plan

  • go test ./internal/skillkit/ -run "TestEmbeddedSkillSyncCheck|TestSkillCatalogAndEmbeddedMirrorsStayAligned" green after sync

🤖 Generated with Claude Code

#827 updated the canonical skills/agentfield-use/SKILL.md without running
scripts/sync-embedded-skills.sh, so TestEmbeddedSkillSyncCheck now fails on
main and leaks a red coverage gate into every PR that merges main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@AbirAbbas
AbirAbbas requested a review from a team as a code owner July 24, 2026 16:34
@github-actions

Copy link
Copy Markdown
Contributor

📊 Coverage gate

Thresholds from .coverage-gate.toml: per-surface ≥ 84%, aggregate ≥ 85%, max per-surface regression ≤ 1.0 pp, max aggregate regression ≤ 0.50 pp.

Surface Current Baseline Δ
control-plane 86.90% 87.40% ↓ -0.50 pp 🟡
sdk-go 92.50% 92.00% ↑ +0.50 pp 🟢
sdk-python 93.82% 93.73% ↑ +0.09 pp 🟢
sdk-typescript 91.05% 90.42% ↑ +0.63 pp 🟢
web-ui 84.75% 84.79% ↓ -0.04 pp 🟡
aggregate 85.54% 85.75% ↓ -0.21 pp 🟡

✅ Gate passed

No surface regressed past the allowed threshold and the aggregate stayed above the floor.

@github-actions

Copy link
Copy Markdown
Contributor

📐 Patch coverage gate

Threshold: 80% on lines this PR touches vs origin/main (from .coverage-gate.toml:thresholds.min_patch).

Surface Touched lines Patch coverage Status
control-plane 0 ➖ no changes
sdk-go 0 ➖ no changes
sdk-python 0 ➖ no changes
sdk-typescript 0 ➖ no changes
web-ui 0 ➖ no changes

✅ Patch gate passed

Every surface whose lines were touched by this PR has patch coverage at or above the threshold.

@AbirAbbas
AbirAbbas enabled auto-merge July 24, 2026 16:46
AbirAbbas added a commit that referenced this pull request Jul 24, 2026
Branch-local drift: this PR merged main (incl. #827's skill edit) while
carrying its own mirror copy; sync-embedded-skills.sh realigns them so the
skillkit drift tests pass regardless of #828.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AbirAbbas added a commit that referenced this pull request Jul 24, 2026
Branch-local drift: this PR merged main (incl. #827's skill edit) while
carrying its own mirror copy; sync-embedded-skills.sh realigns them so the
skillkit drift tests pass regardless of #828.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AbirAbbas added a commit that referenced this pull request Jul 24, 2026
…integration) (#817)

* feat(control-plane): add AGENTFIELD_MCP_ENABLED config toggle

Introduce MCPConfig under features with an IsEnabled() default of true so
the embedded MCP server ships on by default. AGENTFIELD_MCP_ENABLED=false
flips it off via the existing env-override precedence path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(control-plane): embedded MCP server handler and tools

Add a stateless streamable-HTTP JSON-RPC 2.0 handler that exposes AgentField
discovery and execution as MCP tools, calling the existing service layer
directly (no loopback HTTP). Supports initialize, notifications, ping,
tools/list and tools/call; rejects batch arrays; unknown methods return
-32601.

Five tools: discover_agents, get_reasoner_schema, execute_reasoner (starts an
async run), get_run, and wait_run (server-side poll with a hard timeout cap so
a tool call can never hang a harness). Results are single compact-JSON text
content blocks; validation/business failures come back as isError tool
results rather than transport errors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(control-plane): serve MCP at /mcp on the control-plane port

Register the embedded MCP server on the same Gin router as the REST API:
POST /mcp (JSON-RPC), GET /mcp -> 405, OPTIONS /mcp -> 204. The route is
gated by AGENTFIELD_MCP_ENABLED and simply not registered (so /mcp 404s) when
disabled. It lives behind the same global API-key auth and trust domain as
/api/v1 — no extra process, no extra setup; harnesses connect with one
command.

Thread the build version through server.SetBuildVersion so the MCP
serverInfo reports the real control-plane version.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(skills): document zero-setup MCP in agentfield-use

Add an "MCP (zero-setup)" section near the top of the agentfield-use skill
(both the repo copy and the embedded skill_data copy, kept identical): the
control plane serves MCP at <server>/mcp, with the one-liner claude mcp add
command and a generic streamable-HTTP note for other clients. The CLI/REST
flow remains the documented full-power path. Bump the skill version to 0.4.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: MCP integration guide

Add docs/mcp-integration.md covering the endpoint, the five tools, the
security posture (same trust domain and API-key auth as the REST API), the
disable flag, and an example tool-call flow. Link it from the README feature
table.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: enforce MCP execution authorization

* chore(skills): sync embedded agentfield-use mirror on branch

Branch-local drift: this PR merged main (incl. #827's skill edit) while
carrying its own mirror copy; sync-embedded-skills.sh realigns them so the
skillkit drift tests pass regardless of #828.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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