Skip to content

Mirror the factory-files skill from warpdotdev/warp (REMOTE-2868) - #3

Merged
advait-m merged 2 commits into
mainfrom
factory/remote-2868-codex-skill-mirror
Aug 17, 2026
Merged

Mirror the factory-files skill from warpdotdev/warp (REMOTE-2868)#3
advait-m merged 2 commits into
mainfrom
factory/remote-2868-codex-skill-mirror

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Mirrors the factory-files skill 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 of resources/bundled/skills/factory-files at that commit. Verified with diff -r against 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.
  • A README section recording the mirrored commit and stating that edits made here are lost on the next sync.

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 through POST /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 no WARP_API_KEY is 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's Plugin Tests workflow auto-discovers **/tests/test-*.sh, so it runs there too with no workflow change.
  • diff -r against the Warp source tree is clean.

Out of scope

  • No plugin release is cut.
  • No MINIMUM_PLATFORM_PLUGIN_VERSION or plugin version value changes.

This stays a draft until the Warp PR it mirrors lands.


Update: re-mirrored at f6f4ceac8, no bundled schemas

Re-pinned from 85e89ea to f6f4ceac8, 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 own testdata/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.sh drops --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_VERSION is 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.

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
advait-m marked this pull request as ready for review August 17, 2026 07:32
@advait-m
advait-m merged commit 31ce59d into main Aug 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant