Skip to content

feat: ship a Claude Code plugin with the user skills - #311

Merged
aaaaahaaaaa merged 3 commits into
mainfrom
feat/claude-plugin
Sep 4, 2026
Merged

aaaaahaaaaa merged 3 commits into
mainfrom
feat/claude-plugin

Conversation

@aaaaahaaaaa

@aaaaahaaaaa aaaaahaaaaa commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

A Claude Code plugin aimed at users of the framework (people with interloper-core in their own project), distinct from the contributor skills in .claude/skills/.

  • .claude-plugin/marketplace.json: the repository is installable as a marketplace (/plugin marketplace add digitl-cloud/interloper, then /plugin install interloper@interloper).
  • plugins/interloper/: the plugin manifest (version pinned to the framework release) and ten skills:
    • interloper-source: writing a source with a connection, schemas on every asset, partitioning, dependencies, verification on one partition, typed read-back, registration.
    • interloper-run: run() versus materialize(), the DAG, the sync bridge, the CLI recipe and its spec file.
    • interloper-connection: credentials, OAuth through a provider, check(), fetch-field pickers, definition() attributes.
    • interloper-schema: what AUTO, STRICT and RECONCILE do, normalizer options, value-level transforms, error signatures.
    • interloper-destination: PartitionedDestination and DatabaseDestination hooks, window splitting, REPLACE semantics, reconcile on read.
    • interloper-manifest: the job spec shape, ${VAR} rules, select versus the assets whitelist, cross-source wiring by id.
    • interloper-backfill: one run per partition, windowed runs, lookback windows, per-partition progress and outcomes.
    • interloper-triage: reading an event stream, placing the failure in the operation lifecycle, error signature to fix table, when a retry helps.
    • interloper-deploy: interloper.yaml and INTERLOPER_* precedence, encryption, sign-in, catalog, provider apps, telemetry, images and chart.
    • interloper-upgrade: version discovery, changelog reading, the rename table from FileIO and OAuthConnectionBase to today's names.
  • docs/reference/claude-code.md: install instructions and the skill list, linked from the Reference nav.

Method

Every skill follows the same discipline: a subagent played a framework user without the skill (public docs and introspection only) on a realistic task, its report gave the failure list, the skill was written against that list, and the scenario was re-run with the skill and refined from the residual gaps. Ten scenarios in total (source authoring, run and backfill, OAuth connection with picker, vendor payload typing, JSONL and SQLite destinations, a two-source job spec, daily plus monthly backfill, three failed-run event logs, a platform deployment, a legacy script upgrade).

Docs corrections the baseline runs exposed

  • Specs: the assets override map is a whitelist; assets absent from it do not exist after reconstruction.
  • Dependencies: cross-source requires is a contract check, not wiring; the edge is wired by id in Python or in the spec.
  • Settings and Running the app: interloper.yaml is not interpolated, a field present in the YAML wins over its environment variable and the environment fills the rest.
  • Destinations: the bare il.Destination example is not partition-safe; partitioned assets belong on PartitionedDestination.

Follow-ups (not in this PR)

  • Resolve cross-source requires in DAG.__init__ instead of requiring manual wiring (found while testing; a task chip was raised).
  • Bumping plugin.json / marketplace.json versions from semantic-release alongside the pyproject files.

By Digitl

…oper-run skills

The repository doubles as a plugin marketplace (.claude-plugin/marketplace.json)
serving plugins/interloper, versioned with the framework. The two first skills
target users of the framework in their own projects: writing a source with a
connection, schemas, partitioning and dependencies, and running or backfilling
from Python or the CLI with a spec file. Both were written against baseline
runs of agents without the skills (guessed subcommands and constructor
keywords, import paths without destinations, windowed runs without
allow_window, unknown SettingsConfigDict import) and verified with the same
scenarios afterwards. A reference page documents the install.

By Digitl
… exposed

Adds interloper-connection, interloper-schema, interloper-destination,
interloper-manifest, interloper-backfill, interloper-triage, interloper-deploy
and interloper-upgrade, each written against a baseline run without the skill
and re-verified with it. Corrects the docs statements those runs disproved:
the spec assets map is a whitelist, cross-source requires are checked but not
wired, interloper.yaml is not interpolated and its fields win over the
environment, and the bare Destination example is not partition-safe.

By Digitl
@aaaaahaaaaa aaaaahaaaaa changed the title feat: ship a Claude Code plugin with the interloper-source and interloper-run skills feat: ship a Claude Code plugin with the user skills Sep 3, 2026
@aaaaahaaaaa
aaaaahaaaaa merged commit 193d211 into main Sep 4, 2026
10 checks passed
@aaaaahaaaaa
aaaaahaaaaa deleted the feat/claude-plugin branch September 4, 2026 09:22
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