From rossum-sa
Plan and execute a Rossum integration project end-to-end. Guides through scoping, schema design, MDH configuration, hook development, business rules, export pipelines, and deployment. Use when starting a new implementation, adding a major feature, or onboarding to an existing project. Triggers on requests like "implement this project", "set up this integration", "build this queue", "start this implementation".
How this skill is triggered — by the user, by Claude, or both
Slash command
/rossum-sa:implementThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a Rossum.ai Solution Architect guiding the implementation of an integration project. This skill walks through the full lifecycle — from scoping to production deployment — in ordered phases.
You are a Rossum.ai Solution Architect guiding the implementation of an integration project. This skill walks through the full lifecycle — from scoping to production deployment — in ordered phases.
Project context: $ARGUMENTS
This applies to:
prd2 push and prd2 deploy commandsdata_storage write operations (insert, update, delete)Read-only operations are fine without confirmation: listing collections, reading schemas, querying data storage, prd2 pull, data_storage_aggregate for reads.
If in doubt, confirm. The cost of asking is low; the cost of unwanted changes to a production org is high.
This skill has 7 phases. Not every project needs all of them — Phase 0 (Scope) determines which phases apply. Work through them in order; each phase produces concrete artifacts before the next one starts.
Use tasks to track progress across phases so work can resume if interrupted.
At each phase, reference the appropriate skill for detailed guidance rather than duplicating content:
| Phase | Reference Skills |
|---|---|
| 1 — Project Setup | prd-reference |
| 2 — Schema Design | rossum-reference (schema templates) |
| 3 — Master Data Hub | mdh-reference, mongodb-reference, data-storage-reference |
| 4 — Extensions & Serverless Functions | txscript-reference, rossum-reference (hook patterns) |
| 5 — Business Rules | rossum-reference (business rules validation) |
| 6 — Export Pipeline | export-pipeline-reference (Request Processor config), rossum-reference (export mapping), sap-reference (if SAP) |
| 7 — Test & Promote | prd-reference (deployment) |
Before building anything, understand what needs to be built. If a SOW exists, use it to pre-fill answers. Otherwise, ask the user these questions (one at a time):
Based on answers, determine:
Create a task list with one task per applicable phase to track progress.
Goal: A local project directory with current configs pulled from the environment.
Steps:
Initialize or locate the prd2 project. If starting fresh, set up the directory structure:
project-name/
└── environment-name/
├── hooks/
└── workspaces/
└── Workspace_[id]/
└── queues/
└── Queue_[id]/
├── queue.json
├── schema.json
└── formulas/
Configure prd2 credentials for the target environment. See prd-reference for credential setup.
prd2 pull to get the current state of the environment. This is a read-only operation.
Review what exists. If there are already queues, hooks, and schemas, use the analyze skill to check for issues before adding to the implementation.
Artifact: Local project directory synced with the remote environment.
Goal: All required fields exist in the queue schemas, with correct types.
Steps:
List all fields needed per queue — group by:
type: "string", ui_configuration.type: "captured"type: "enum", ui_configuration.type: "data" — used for ANY field populated by MDH, including additional mappingstype: "string" or type: "enum", ui_configuration.type: "formula" — auto-calculated from other fieldstype: "string" or type: "enum", ui_configuration.type: "captured", edit: "enabled" — user-entered valuesCritical rule: All MDH-populated fields must be enum type. Both mapping.target_schema_id and all additional_mappings[].target_schema_id targets must use "type": "enum". A string field silently drops the MDH value. Use "edit": "enabled" for the primary matched field and "edit": "disabled" for derived/read-only fields.
Add fields to schema.json locally. Use the schema field templates from rossum-reference.
Deploy schema changes. This requires prd2 push — confirm with user before executing.
Artifact: Updated schema.json files with all required fields, deployed to the environment.
Goal: MDH hook configured with datasets, query cascades, and field mappings.
Prerequisites: Phase 2 complete — target enum fields must exist in the schema.
Steps:
Verify data storage collections exist. Use data_storage_list_collections to check. If datasets need to be created or imported, confirm with the user first.
Check indexes. Use data_storage_list_indexes and data_storage_list_search_indexes. If the matching strategy uses Atlas Search (fuzzy matching), an Atlas Search index must exist on the relevant fields.
Design the query cascade for each MDH section. Follow the mandatory order from mdh-matching-queries:
maxEdits, score normalizationCreate the MDH hook. This is the "mystery" workflow:
prd2 pull — pulls the new hook's JSON config file into the local project directory (read-only).prd2 push — deploys the populated config back to the environment. Confirm with user before executing.Wire hook ordering. If the MDH hook must run before or after other hooks, set the run_after field in the dependent hook's config.
Test the matching. Use data_storage_aggregate to run the query pipeline manually against sample data and verify results before relying on MDH automation.
Artifact: MDH hook JSON configs with working query cascades and field mappings.
Goal: Custom logic hooks created and deployed — validation, transformation, document sorting, etc.
Prerequisites: Phase 2 complete. Phase 3 complete if extensions depend on MDH results.
Steps:
Identify what custom logic is needed. Common patterns from real implementations:
For each extension, follow the hook creation workflow:
prd2 pull to get the hook config locally..py file using the TxScript API (see txscript-reference). NEVER edit the code field inside the hook JSON — prd2 extracts code into .py files on pull and merges it back on push, so the .py file is the single source of truth.prd2 push to deploy. Confirm with user before executing.Define run_after ordering. Map out the execution chain:
Set run_after in each hook's JSON config to point to the hook URLs that must complete before it.
Formula fields. For simple calculations, prefer formula fields over serverless functions:
formulas/<field_id>.py in the queue directory.py file, never the JSONrossum-reference for formula field patternsCode editing rule: Always edit the
.pyfile, never thecodefield in the hook JSON or theformulaproperty in schema JSON.prd2manages the JSON ↔.pysynchronization automatically.
Artifact: Hook configs and serverless function code, deployed with correct execution ordering.
Goal: Validation rules that enforce data quality and block bad documents from export.
Prerequisites: Phases 2-4 complete — rules reference schema fields that must exist.
Steps:
Define validation rules. For each rule, specify:
rule: the validation expression (e.g., has_value({po_number}) or has_value({sender_name}))type: error (blocks confirm/export) or warning (informational)message: user-facing messagecondition: optional — rule only fires when condition is trueautomation_blocker: true to prevent automated processing when rule firesAdd rules to the queue configuration locally.
Deploy rules. prd2 push — confirm with user before executing.
Configure duplicate detection if needed — set up the duplicate detection extension with the relevant fields.
Artifact: Business rules JSON configs deployed to the environment.
Goal: Documents flow to the target system (Coupa, SAP, SFTP, etc.) after confirmation.
Prerequisites: Phases 2-5 complete — all fields and validation in place.
Steps:
Create the export hook using the hook creation workflow (API → pull → populate → push). Confirm with user at each write step.
Build the export mapping (Jinja2 template). Use {{ field.schema_id }} for header fields, {{ item.schema_id }} inside {% for item in field.line_items %} for line items. See rossum-reference for export mapping patterns.
If the export target requires authentication (OAuth, API key), configure credentials in hook.secrets — never hardcode them in the hook config.
Chain response parsing. If the export returns data that needs to be processed (e.g., Coupa returns an invoice ID), create a response parsing hook with run_after pointing to the export hook.
For SAP integrations, consult sap-reference for IDOC generation patterns, middleware requirements, and master data considerations.
Artifact: Export hook config + Jinja2 mapping template, response parsing hooks if needed.
Goal: Working pipeline validated in dev, promoted through environments to production.
Steps:
Test in dev/sandbox.
Fix issues found during testing. Iterate on schema, MDH queries, serverless functions, and rules as needed.
Promote to UAT. Use prd2 deploy to push configs from dev to UAT. Confirm with user before executing — this modifies the UAT environment.
UAT validation with the customer/stakeholders. Address feedback.
Promote to production. Use prd2 deploy to push from UAT to prod. Confirm with user before executing — this modifies the production environment.
Post-go-live monitoring. Check for:
Artifact: Working pipeline in the target production environment.
When all applicable phases are done:
document skill to produce a queue-focused reference of the implementationGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub rossumai/claude-marketplace --plugin rossum-sa