Mirror the factory-files skill from warpdotdev/warp (REMOTE-2868) - #3
Merged
Conversation
Codex loads filesystem skills from this plugin and cannot resolve a bundled_skill_id, so the skill is copied here. It validates against warp-server when reachable and falls back to the schemas beside it otherwise, which keeps a lagging mirror useful and honest about lagging. Mirrors warpdotdev/warp commit 85e89ea. Part of REMOTE-2868. Co-Authored-By: Warp <agent@warp.dev>
Re-mirrors warpdotdev/warp f6f4ceac8, which removes the skill's local copy of the Factory file format. The bundled schemas went stale inside a release and rejected Linear and Slack trigger aliases that warp-server accepts, so an agent clearing those diagnostics would delete working configuration. The skill now uploads the tree to warp-server and relays its verdict, and reports that a tree was not checked when the server cannot be reached. The smoke test drops --offline, which no longer exists. It checks the copy arrived complete, carries no schemas, and reports a missing verdict rather than claiming one. Co-Authored-By: Warp <agent@warp.dev>
advait-m
approved these changes
Aug 17, 2026
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
Mirrors the
factory-filesskill from warpdotdev/warp into this plugin, so an agent running here can author and validate file-based Warp software factory definitions.Part of REMOTE-2868, whose whole point is this gap: Warp bundles the skill for its own clients, but this harness loads filesystem skills from its plugin repository and cannot resolve a
bundled_skill_id, so the skill has to be copied.Mirrors warpdotdev/warp commit
f6f4ceac8(warp#15219).Changes
skills/factory-files/**— a byte-for-byte copy ofresources/bundled/skills/factory-filesat that commit. Verified withdiff -ragainst the source tree.tests/test-factory-files.sh— a smoke test that the copy arrived complete and runs: every file present, a valid tree accepted, a tree with no MAIN agent rejected, and the offline disclosure printed. The skill's real regression corpus (101 cases) lives in Warp and is not duplicated here.Why a stale mirror is safe
The skill no longer treats its bundled schemas as the source of truth. It reads the tree's
schemaVersion, confirms warp-server publishes it, and validates throughPOST /api/v1/factory-files/validate, which runs the same parser the apply path uses (warp-server#15209). The bundled schemas are the offline floor for when the server is unreachable or noWARP_API_KEYis present, and every run states which of the two ran.That is what makes mirroring tolerable: a mirror that falls behind still validates against the current server, and when it cannot, it says so instead of quietly answering from an old copy.
Verification
bash tests/test-factory-files.sh— 14/14 pass locally. The repository'sPlugin Testsworkflow auto-discovers**/tests/test-*.sh, so it runs there too with no workflow change.diff -ragainst the Warp source tree is clean.Out of scope
MINIMUM_PLATFORM_PLUGIN_VERSIONor plugin version value changes.This stays a draft until the Warp PR it mirrors lands.
Update: re-mirrored at
f6f4ceac8, no bundled schemasRe-pinned from
85e89eatof6f4ceac8, which removes the skill's local copy of the Factory file format.The earlier mirror shipped six JSON Schemas alongside the validator as an offline floor. Those were deleted upstream because the copy goes stale inside a release and does not fail quietly: it rejected the Linear and Slack trigger aliases (
teams,projects,states,issues,channels,users,itemUsers) on a tree taken from warp-server's owntestdata/valid— eleven false rejections on valid input. An agent clearing those diagnostics deletes working configuration.The skill now uploads the tree to warp-server and relays its verdict. When the server cannot be reached it reports that the tree was not checked, which is neither a pass nor a failure. The validation endpoint needs no credential, so this works without
WARP_API_KEY; the key is forwarded when the sandbox already has one.This makes the mirror much cheaper to keep honest. There is no schema here to drift any more, so a stale copy costs a stale workflow document rather than a wrong verdict.
Smoke test
test-factory-files.shdrops--offline, which no longer exists. It now checks the copy arrived complete, carries no*.schema.json, parses, and reports a missing verdict rather than claiming one — 10/10 locally.Still a draft
No plugin release is cut and
MINIMUM_PLATFORM_PLUGIN_VERSIONis untouched. No published plugin ships this skill yet, so there is no stale version to force anyone off; the bump only becomes relevant if you want to guarantee the skill's presence.