Skip to content

Add conjure plugin - #35

Draft
lukealvoeiro wants to merge 1 commit into
masterfrom
luke/conjure-plugin
Draft

Add conjure plugin#35
lukealvoeiro wants to merge 1 commit into
masterfrom
luke/conjure-plugin

Conversation

@lukealvoeiro

Copy link
Copy Markdown

Warning

Do not merge until conjure is generally available. See Blocked on GA.

Packages the conjure skill as a standalone plugin so it is installable from the marketplace.

Why

The skill currently reaches you two ways: embedded in the conjure binary and written out by conjure init, or served from a running deployment. Both require you to have already found conjure and installed the CLI, so the skill only ever arrives after the point where it would have helped. A marketplace entry fixes discovery.

What

  • plugins/conjure/ — new plugin, one skill
  • skills/conjure — symlink, per the check-skills convention
  • .factory-plugin/marketplace.json and root README.md — registration

The skill covers the deploy loop (deploy, versions, rollback, logs), API tokens, and the six site-scoped APIs each site gets under /_conjure/: db, files, identity, ws, ai, warehouse. Plus the browser SDK surface and stable exit codes for branching.

Blocked on GA

The skill's every command starts with conjure, and there is no public way to get that binary yet:

gh release list --repo Factory-AI/conjure   ->  (empty)
.goreleaser.yaml                            ->  draft: true, owner: Factory-AI, name: conjure

Merging before there is a public release channel would ship a plugin whose tool nobody outside Factory can install. Holding until GA.

Content is deployment-agnostic

Worth stating explicitly, since this is a public marketplace and conjure has been internal. The skill hardcodes no host, tenant, or identity-provider details. Audited:

grep -nE "factory\.ai|okta\.com|factoryai|Factory-AI|cpv-|oauth2-proxy|X-Conjure-User" \
  plugins/conjure/skills/conjure/SKILL.md
-> no matches

Every example uses <base-domain>, <slug>, or the local dev server conjure.localhost:4600. The one section that touches authentication describes identity proxies generically ("Okta, IAP") against https://<base-domain>/.

On the duplicated SKILL.md

plugins/conjure/skills/conjure/SKILL.md is a byte-for-byte copy of internal/cli/scaffold_skill.md in the conjure repo, which is a go:embed asset and cannot be read across repos.

A CI drift gate is not possible here: the canonical file lives in a separate repository that this repo's CI cannot see. The copy will drift unless someone syncs it. The plugin README records the source path and the copy-forward step; a durable sync mechanism is being handled separately.

The copy is current as of Factory-AI/conjure#19.

Validation

  • Ran .github/workflows/check-skills.yml logic locally — pass, symlink resolves
  • marketplace.json and plugin.json parse as valid JSON
  • Frontmatter validated: name: conjure, description: present
  • Copy diffs clean against the canonical source

Packages the conjure skill so it is installable from the marketplace
instead of only reaching people who already have the CLI. Today the skill
ships two ways: embedded in the binary and written out by `conjure init`,
or served from a deployment. Both require you to have found conjure first.

The skill covers the deploy loop, API tokens, and the six site-scoped
platform APIs under /_conjure/. Content is unchanged from the source file
and is deployment-agnostic: examples use <base-domain> and a local dev
server, with no host, tenant, or identity-provider specifics.

SKILL.md is a copy of internal/cli/scaffold_skill.md in the conjure repo.
A CI drift gate is not possible because that repo is separate, so the
plugin README records the source and the copy-forward step.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.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