feat: user-built subharness agents — personal-agent skill path, installable scaffolds, skill routing + cleanup#822
Merged
Conversation
Contributor
📊 Coverage gateThresholds from
✅ Gate passedNo surface regressed past the allowed threshold and the aggregate stayed above the floor. |
Contributor
📐 Patch coverage gateThreshold: 80% on lines this PR touches vs
✅ Patch gate passedEvery surface whose lines were touched by this PR has patch coverage at or above the threshold. |
AbirAbbas
force-pushed
the
feat/user-built-subharness-agents
branch
from
July 23, 2026 18:25
53b6b75 to
34aaa5e
Compare
…ersonal skill The 0.6.0 builder skill routed every request through a coverage pre-check and a deliverable question before the original repo workflow could start — a behavior change for everyone already using the skill. Split instead: - skills/agentfield: reverted to the pre-gate body (byte-identical to main); frontmatter gains version 0.5.1 and a one-sentence description pointer to agentfield-personal. Existing repo-builder behavior unchanged. - skills/agentfield-personal (new, 0.1.0): standalone personal-agent skill — stable source in ~/agentfield-agents, v1 manifest, scoped secrets via the af CLI, install/run, registration + live-call verification, Desktop handoff. Selection happens at skill-routing level via its description, not via an in-skill gate. - skills/agentfield-use: the no-coverage fallback keeps the offer and authorization boundaries but drops the coverage_precheck_complete marker protocol and bounce-limit that served the removed gate. Catalog/embed register the new skill; contract tests pin the reverted builder (routing-gate text banned), the personal lifecycle contract, and the simplified use-skill offer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What this does
Lets users build personal agents — agents that live on their machine, installed through
af, visible in AgentField Desktop — and gives coding agents a clean path to discover and delegate to them. Three pieces:1. New
agentfield-personalskill (0.1.0)A standalone skill for the machine-installed deliverable: author real source in
~/agentfield-agents/<name>, package it with aconfig_version: v1manifest, declare scoped secrets (globalvsnode) that surface as a keys form in Desktop,af install+af run, then verify actual control-plane registration and a live reasoner call before claiming success. Secrets are only ever set through theafCLI — never echoed, committed, or written into the manifest.Skill selection happens at routing level via the skill description. The existing
agentfield(repo builder) skill is unchanged in behavior: its body is byte-identical to main, with only a frontmatter version and a one-sentence description pointer to the new skill. An earlier revision of this PR added an in-skill coverage/routing gate to the builder; that was dropped as a regression for existing users in favor of this split.agentfield-usegains a bounded fallback: after discovery conclusively finds no capable installed agent, it may offer to build one (naming both builder skills) — list/inspect/diagnose requests never authorize a build.2.
af initnow emitsagentfield-package.yamlAll three language templates (Python, Go, TypeScript) scaffold a v1 manifest, so a generated project is installable with
af install ./dirout of the box. The TypeScript path also gains real dependency installation (npm install) in the package installer.3. Skillkit alias-orphan reconciliation
agentfield-multi-reasoner-builderwas folded intoagentfieldas an alias earlier; installs that predate that kept a stale standalone entry.af skill install/updatenow reconciles those orphans: removes recorded targets (symlinks / marker blocks, name-matched), the canonical store dir, and the state entry. It only touches state entries whose name is a catalog alias, so it cannot affect user skills.Testing
skills/and the embeddedskill_data/copies aligned (name/version/content).agentfield-package.yamlparses withpackages.ParsePackageMetadata.🤖 Generated with Claude Code