Skip to content

Companion plugins

Nine plugins ship alongside this repo. Each is bundled as a per-plugin zip here so a fresh checkout has them on hand without a separate download. The plugins emit downloadable cumulative bundles that mirror the rosetta-platform directory layout; the operator unzip -ds the bundle into their working tree and applies via PR.

Plugins & skills at a glance

Plugin Folder Skills Slash commands Latest
rosetta-research rosetta-research/ product-family-research seven pipeline stages + run-all 0.28.1
rosetta-archaeology rosetta-archaeology/ digital-twin-archaeology, inheritance-tree-render four phases (survey/excavate/classify/preserve) + inheritance-tree-render + run-all 0.13.3
engagement-codex engagement-codex/ solution-thesis-render, sow-render, spec-manifest-render one per skill (command name = skill name) 0.12.0
rosetta-agent rosetta-agent/ agent-orchestration, context-retrieval-flows, conversation-lifecycle, decision-trace-capture, engagement-canvas, engagement-lifecycle, engagement-twin, governance-lifecycle query, turn, record, canvas, engagement, govern, twin 0.6.6
engagement-rehearsal engagement-rehearsal/ persona-conversation-sim rehearse, eval, run-all 0.1.3
d360-distiller d360-distiller/ seed-to-skill-distillation bind, audit, render, validate, run-all 0.2.0
engagement-authoring engagement-authoring/ engagement-creation, twin-authoring one per skill (command name = skill name) 0.2.1
deploy-distiller deploy-distiller/ deploy-library-distillation project, publish, run-all 0.3.0
tech-note-distiller tech-note-distiller/ tech-note-distillation plan, draft, validate, archive, run-all 0.1.0

Slash commands match their skill name (e.g. /engagement-codex:sow-render invokes the sow-render skill). The old render-* command names were one-release deprecated aliases and have been removed (engagement-codex 0.11.0, rosetta-archaeology 0.10.0; docs/decision-traces/plugin-skill-naming-scheme.md). rosetta-agent is a live MCP runtime router (prereqs per rosetta-agent/references/install-guide.md); engagement-rehearsal is a read-only, SIMULATED-stamped persona simulator that reuses rosetta-agent's MCP server.

The first two plugins are siblings of the canonical-authoring path — they emit Cypher seeds for the same target repo but operate on different parts of the metamodel.

  • rosetta-research authors canonical content (ContextPattern, BusinessIntent, VocabularyTerm, SemanticEntity, PlatformObject, EngineFunction) and submits it as a content:ingest bundle to the rosetta-app-server API, where it lands at draft (ADR-PL-024; db/seeds/ left main at the switch release, E9-S2-WP1).
  • rosetta-archaeology authors engagement-scoped instances (leaf KnowledgeDomain, Context Artifacts, DecisionTraces, promotion candidates as DecisionTrace transitions) and applies them through twin:apply. Output is projectId='<ENGAGEMENT-KEY>' / domainKey='salesforce:<partnerKey>:<engagementKey>'.
  • engagement-codex consumes an engagement's graph state and renders the deliverable stack — a Solution Thesis (four tones), a Statement of Work, and a Spec Manifest; produces Markdown deliverables under outputs/plugins/engagement-codex/.
  • rosetta-agent is the agent-substrate plugin for live retrieval-grounded answers against the Rosetta Data-360 graph at api.rosetta-design.com. Distinct from the others: it carries an MCP server (rosetta-mcp-server binary, separate repo) and requires a runtime token (agent-harness KMS scope) per E7-S7-WP3. The plugin files install via the install bundle alongside the rest; the runtime setup is a follow-up step.
  • engagement-rehearsal is a read-only consumer like engagement-codex, but conversational rather than render: it role-plays six personas through live rosetta_turn conversations to propose closures for an engagement's «TBD-N» / KnowledgeGap inventory (MODE=rehearsal) or to mint a labeled flow/persona corpus (MODE=eval). It writes nothing to the graph (ADR-RX-002) and stamps every emit SIMULATED (ADR-RX-007); outputs land under outputs/plugins/engagement-rehearsal/. It registers no MCP server — live mode reuses rosetta-agent's rosetta server.
  • d360-distiller is the seed-to-skill distillation pipeline: one skill (seed-to-skill-distillation) compiles task-level, happy-path builder skills from the canonical D360 seed corpus (db/seeds/03g–10g), or from a rosetta-deploy library release's CP/, ADR/, EF/ and BI/ files (library mode, 0.2.0), onto Salesforce's d360_* MCP tool surface (bind / audit / render / validate / run-all). Emits are compiled projections carrying a provenance colophon and a draft/UNVERIFIED banner lifted only by sandbox smoke via re-render; read-only against the graph, no own MCP server (reuses rosetta-agent's rosetta server). dt-pa-006 (ADR-PA-012 pending).
  • engagement-authoring is an authoring-reference plugin: two reference skills (engagement-creation, twin-authoring) that teach an agent how to correctly hand-construct the two engagement-scoped payloads against the rosetta-app-server API — the create request and the twin.json TwinDocument. It authors no files, calls no write tools, and registers no MCP server; the skill bodies are distilled mirrors of rosetta-app-server docs/{engagement-creation,twin-json-authoring}-guide.md (authoritative). It complements the archaeology/rehearsal generators and rosetta-agent's engagement-lifecycle doer with the shared how-to-construct-it-correctly reference. dt-pa-007 → ADR-PA-013 (Accepted 2026-09-27).
  • deploy-distiller is the graph-to-Git distillation pipeline for the rosetta-deploy library: one skill (deploy-library-distillation) runs the deterministic deploy-projection tool (make deploy-projection) over a checksummed content snapshot and writes one Markdown file per node, with YAML front matter, into the folders rosetta-deploy's rosetta.yaml assigns (CP/, ADR/, BI/, EF/, PO/, SE/, VT/, the derived sources/, anti-patterns/ and indexes/, plus release-manifest.json), with draft content in a visible draft lane (project / publish / run-all). publish puts the projection on a projection/<run-id> branch of vernonkeenan/rosetta-deploy and opens a PR, confirm-before; it never pushes main and never tags. It touches no graph and registers no MCP server. dt-pa-008 (ADR-PA-014 pending; E3-S5-WP22, WP23).
  • tech-note-distiller distills one user or practitioner document into Rosetta Tech Note drafts (tech-note-distillation; plan / draft / validate / archive / run-all). It reads the whole source, fact-checks every platform claim against official Salesforce docs (Trailhead MCP plus web search), writes RTN-DRAFT-NN drafts to the Tech Note template, and seals the run with a deterministic stdlib validator (embedded in a reference file and sha256-pinned), a scored rubric and a sha256 manifest. It never reserves ids, uploads or ingests: those stay human console acts. Runs on Claude Code or Claude.ai; archive needs Claude Code. dt-pa-012 (no ADR; E3-S4-WP70).

All nine can be installed at the same time and do not interfere.

Deploy-edition sources (not shipped here)

Two more directories hold the sources of rosetta-deploy's deploy editions (E3-S5-WP25; rosetta-deploy SM-RDEP-001 E3-S3-WP1 and WP2). rosetta-deploy copies each one into its own plugins/ by reviewed PR and distributes it from its own marketplace. This repo does not ship them: they are listed in deploy-edition-sources.txt, have no entry in .claude-plugin/marketplace.json, no committed zip and no make plugin-bundle-<name> target, and the install bundle leaves them out (operator ruling 2026-10-16). Fix a defect here; never in a copy.

Source Skills Slash commands Version
rosetta-archaeology-deploy digital-twin-archaeology four phases (survey/excavate/classify/preserve) + run-all 0.1.2
engagement-codex-deploy solution-thesis-render solution-thesis-render (command name = skill name) 0.1.1
  • rosetta-archaeology-deploy runs Project Archaeology in Claude Code inside an engagement repository: a rosetta-deploy clone cut from a release tag, with customer/<customer>/ filled from its template. It reads the dossier in project-docs/ and the library's files at the repository root, and writes the engagement twin under the engagement folder: archaeology/twin.json with its review notes, a draft per Context Artifact and DecisionTrace in CP/ and ADR/, and proposed-learnings.md for the user to send back by hand. No connection to Rosetta.
  • engagement-codex-deploy renders the Solution Thesis in the four tones from that archaeology/ folder into deliverables/, and cites the library by path and id. The customer tone still fails hard on an open gap. No SOW or Spec Manifest render: those stay with Rosetta.
  • Their skill names match their source plugins' skill names. That is safe because they never load beside the source plugins in a project this repo's installer writes.

Distribution — the install bundle (E1-S2-WP1)

All nine plugins ship to consumers via the install bundle published from this repo:

  • make publish-install-bundle VERSION=vX.Y.Z uploads install.tar.gz + sidecar + the tag-pinned installer script to the KMS-protected route on rosetta-design.com per contracts/install-bundle.md.
  • make install-plugins (Shape A) or curl … | bash (Shape B) on the consumer side fetches the bundle behind Authorization: Bearer ${ROSETTA_API_KEY} and unpacks into ~/.claude/plugins/ (plugin trees) and ~/.claude/rosetta/ (graph content + evidence manifest + per-release MANIFEST.txt).
  • Release runbook: docs/runbooks/release-cut.md.
  • End-user install guide: INSTALL.md.

The install bundle is closed by virtue of KMS-gating on the rosetta-design.com route, not by inclusion control. All nine plugins ship; access control on the route enforces RCP-C-12 for rosetta-agent.

Auto-loaded inside this repo

When you run claude from a rosetta-platform checkout, the plugins are auto-discovered via the .claude/settings.json extraKnownMarketplaces + enabledPlugins keys, which point at this directory as a project-local plugin marketplace. No install step required. First-run users get a "trust this folder?" prompt; subsequent runs are silent.

The slash commands /rosetta-research:* (rosetta-research), /rosetta-archaeology:* (rosetta-archaeology), /engagement-codex:* (engagement-codex), and /rosetta-agent:turn, /rosetta-agent:record, /rosetta-agent:query (rosetta-agent — when the runtime prereqs are in place) become available automatically. The standalone skill at ../skills/architecture-discovery-coach/ is loaded the same way via the skillsPath setting (different mechanism, see ../skills/README.md).

For non-repo use (Cowork upload, global Claude Code install), the install bundle described above is the supported path; each plugin's per-folder README documents the manual install fallback (unzip into ~/.claude/plugins/).

Bundles are derived; extracted form is canonical

Per ADR-PA-003, the extracted form of each plugin is the source of truth in this repo. The accompanying <plugin>-<version>.zip is a derived distribution artifact — regenerated from the extracted form via make plugin-bundle-<name> when a new version is shipped. Plugin authors who edit the extracted form in this repo own the regeneration step. The install bundle (above) ships these per-plugin zips verbatim; it does not re-bundle.

Claude.ai skill bundles (per-skill .zip)

In addition to the per-plugin zips (for Claude Code marketplaces), each plugin's user-facing skills are also published as standalone, Claude.ai-uploadable .zip bundles at util/plugins/<plugin>/claude-ai-skills/<skill>.zip — just the skill, with its folder at the zip root, symlinks resolved to real files, dev cruft pruned, and the description trimmed to Claude.ai's ≤200-char cap. There is no .skill format — Claude.ai ingests a .zip (Customize → Skills → Create skill → Upload a skill). Build with make claude-ai-skills. The 8 rosetta-agent skills are excluded (they are MCP-runtime adapter routers, not standalone skills). Full convention + sources: authoring/claude-ai-skill-bundles.md.

The shared upload model

This section applies to the two Cowork-upload plugins, rosetta-research and rosetta-archaeology. Both are read-only against your repo. The session you run them in only sees what you upload:

  1. Repo zip (every stage / phase). Produce with cd rosetta-platform && git archive --format=zip HEAD > /tmp/rp.zip.
  2. Prior-stage / prior-phase bundle (every step after the first). The plugin emits these; you re-upload the most recent one to continue.
  3. Domain references (archaeology only): the Project Archaeology Manual and the engagement discovery dossier.

Each stage / phase returns ONE cumulative zip containing every artifact produced so far. The internal layout mirrors the target repo paths so unzip -d ~/path/to/rosetta-platform/ drops files exactly where they belong.

Constitutional alignment

The plugins operate within the rosetta-platform invariants (CLAUDE.md):

  • C-2 / ADR-PL-001 — Cypher is canonical. Every seed file the plugins emit is .cypher; markdown projections are derived.
  • C-4 / ADR-PL-004 — Make is the operational surface. Plugins produce artifacts; the user runs make seed-diff, make intake-validate, make engagement-load, etc. against the unzipped output.
  • C-5 / metamodel §5 — Five-field identity on every inheritable graph write.
  • C-6 — ProvenanceEvent on every schema mutation.
  • C-7 / ADR-PL-016 — Producer-only contract; plugins never reference rosetta-app-server.

Plugins will not invoke make, cypher-shell, mysql, docker, or any command on your environment. Pushing to Neo4j and merging to main is always an operator action.

Plugin-author governance

The PA- ADR series and plugin-authoring notes co-located here constrain how Cowork plugins produce content for this repo. They are distinct from the platform-level PL- series under ../../docs/adrs/, which governs this repo's own code, schema, and infrastructure.

Path Contents
adrs/ ADR-PA-001 through ADR-PA-011, and ADR-PA-013 (ADR-PA-012 is reserved for d360-distiller, implementation-gated) — plugin-author architectural decisions (read-only contract, output paths, identity contract, MATCH-not-MERGE discipline, lifecycleState transitions, Makefile integration, runtime-output paths, render layout, engagement-twin dual sink, and the engagement-rehearsal read-only + SIMULATED simulator contracts — ADR-PA-011, Accepted 2026-06-14, promoted from dt-pa-005, E3-S5-WP19). ADR-PA-012 (d360-distiller) and ADR-PA-013 (engagement-authoring) are pending promotion from dt-pa-006 / dt-pa-007.
decision-traces/ Methodology DTs DT-PA-001…003 (in methodology-decisions.md) + standalone dt-pa-004 (engagement-twin dual sink → ADR-PA-010) and dt-pa-005 (engagement-rehearsal plugin → ADR-PA-011, RATIFIED 2026-06-14), plus dt-pa-006 (d360-distiller → ADR-PA-012 pending), dt-pa-007 (engagement-authoring → ADR-PA-013 pending), dt-pa-008 (deploy-distiller → ADR-PA-014 on ratification) and dt-pa-009 (rosetta-research reads rosetta-ugc dataset releases instead of docs/evidence/document-inventory.csv; RATIFIED 2026-10-08, no ADR; superseded in part for --kb runs by rosetta-meta DT-RX-063, recorded in docs/decision-traces/e3-s4-wp66-kb-list-replaces-pin-pr.md), dt-pa-010 (product-docs runs author BusinessIntents; every ContextPattern ADDRESSES one; RATIFIED 2026-10-29, no ADR) dt-pa-011 (rosetta-research reference profile reference/d360-mcp-kb: practice plus a deterministic catalog; RATIFIED 2026-10-30, no ADR) and dt-pa-012 (tech-note-distiller: document-to-Tech-Note distillation; OPEN, built on its recommended resolution, no ADR)
authoring/ Operational notes for plugin authors (empirical Cowork validator constraints discovered through bisection)

Open decisions

Two architectural calls remain Proposed pending Vernon-Mehmet alignment:

  1. ADR-PA-007 — Makefile integration for db/engagements/. Three options on the table; recommended is Option 3 (parallel db-engagement-load target). Resolution unblocks the plugin's VALIDATION-CHECKLIST.md from flagging the question on every run.
  2. DT-PA-003 — Inline-property vs child-node storage for alternativesConsidered and provenanceSources. Recommended child-node storage; would require a migration on rosetta-research v0.3.2's existing inline-array conventions.

The other ten ADR-PA- and the two methodology DTs (DT-PA-001 / DT-PA-002) are Accepted* — they ratify decisions already implemented in shipped plugin code (rosetta-research v0.3.2, rosetta-archaeology v0.1.6) and the NTO-01 dry-run.

Migration to ADR-PA-008

ADR-PA-008 establishes that plugin/skill runtime outputs land at outputs/{plugins,skills}/<name>/<run-id>/ in the repo root, gitignored, never auto-promoted. Skills-side compliance is complete at ratifying-PR merge (the architecture-discovery-coach SKILL.md directs deliverables to outputs/skills/architecture-discovery-coach/<session-id>/).

Plugins-side compliance is a per-plugin upstream release. Tracker:

Plugin Current version Compliant version Status Notes
rosetta-research 0.28.1 0.9.0 Complete v0.28.1 has Stage 7 publish the run's HTML review page for Curation > Runs (platform MySQL 055, app-server API 1.45.0). v0.28.0 writes the replacement runs' contract fixes into every profile (platform E3-S4-WP69): documented names exempt from the paraphrase gate, the five graph-wide unique properties checked at Stage 3 and Stage 7, the builder's evidence-reference limit and SPLIT=yes, SemanticEntity entityType, and thin-pattern consolidation. v0.27.1 folds the d360-mcp-kb replacement run's rulings into the reference profile (dt-pa-011 status log). v0.27.0 adds --profile=reference/d360-mcp-kb (dt-pa-011), which authors up to 60 practice patterns plus a deterministic catalog of the release's documented Data 360 objects. v0.26.0 reads a knowledge base's release list with --kb (rosetta-meta DT-RX-063). v0.23.0 reads Tech Notes as members of the pinned releases (rosetta-meta DT-RX-055; rtn-core retired). v0.22.0 reports one stable, revisioned seven-stage lifecycle through the app-server and completes it only from a real committed ingestion event. Compliance shipped in v0.9.0 alongside the per-node evidenceSources contract, Stage 6 corpus utilization report, and corpus-doc hygiene pass. Bundle's internal layout places MANIFEST.md, STATIC-ANALYSIS-REPORT.md, VALIDATION-CHECKLIST.md, and the per-stage research markdown under outputs/plugins/rosetta-research/<run-id>/. Canonical graph content remains off main.
rosetta-archaeology 0.13.3 0.2.0 Complete Compliance shipped in v0.2.0. Bundle's internal layout now places MANIFEST.md, VALIDATION-CHECKLIST.md, EVAL-INVOCATION-CHECKLIST.md, and the four phase research notes (survey-brief.md, excavation-inventory.md, classification-readiness-verdict.md, preservation-promotion-analysis.md) under outputs/plugins/rosetta-archaeology/<engagementKey>/. Canonical engagement Cypher (db/engagements/) and Site Package (site-packages/, including partner-validation/PARTNER-CERTIFICATION-REQUEST.md per Manual Ch. 15) unchanged.

Compliance criteria per plugin: bundle's internal layout for non-canonical files (manifests, validation checklists, partner certification requests, eval invocation scripts, run logs) moves to outputs/plugins/<plugin-name>/<run-id>/ paths inside the bundle. Canonical content (engagement Cypher, site packages) stays at its existing canonical destination per ADR-PA-002.

When a compliant plugin release lands here, its row drops from TODO to Complete and the row's "Compliant version" field records the actual version that brought compliance.

Durable run closeout

ADR-PA-008's 2026-10-19 amendment adds an optional platform-side archive adapter without changing any plugin bundle or execution path. The registered producer IDs are rosetta-research, rosetta-archaeology, engagement-codex, rosetta-agent, engagement-rehearsal, d360-distiller, engagement-authoring, deploy-distiller and tech-note-distiller (the last registered in rosetta-artifacts by its first archive PR).

After a stable run handoff, an operator may invoke make artifacts-checkpoint or make artifacts-closeout as documented in docs/runbooks/run-artifact-archive.md. The producer closeout uses archive-closeout-template.md and returns an exact archive commit, checkpoint path, checkpoint SHA-256 and inventory SHA-256 together with independent execution, structural, semantic, human-review, delivery and archive states. A reference-only plugin or a plugin that produced no run does not fabricate archive output.

The adapter is not a semantic validator or ingestion lane. A remotely verified or sealed run may still be interrupted, failed, semantically defective, unreviewed and not submitted.

Where each plugin fits in the manifest

  • rosetta-research submits its content:ingest bundle to the ingestion API (dry run first, then a commit on the operator's confirmed target); the content lands at draft and SME review in the console moves it (ADR-PL-024, in effect since the switch release, E9-S2-WP1). There are no content PRs.
  • rosetta-archaeology is engagement-scoped. Its twin.json is applied through twin:apply; nothing is committed to the repo, and make engagement-load is retired (the seed-era path is the baseline tag v0.27.0).

Reporting issues

File against this repo with the appropriate tag:

  • [plugin] for rosetta-research
  • [archaeology-plugin] for rosetta-archaeology
  • [<plugin-name>] for every other plugin (e.g. [engagement-codex], [rosetta-agent], [engagement-rehearsal], [d360-distiller], [engagement-authoring], [deploy-distiller], [tech-note-distiller])

Include the plugin version (visible in the zip filename and in .claude-plugin/plugin.json), the stage / phase you were running, and the upload manifest the plugin reported.

This page as Markdown — for pasting into Claude or another assistant · llms.txt