thinkwise-software-factory-mcp-base

Resolves connector, model, and branch context before Thinkwise Software Factory MCP operations.

5|Updated Aug 25, 2026
One-click install
npx skills add https://github.com/rkortThinkwise/sf-mcp-skills-temp --skill thinkwise-software-factory-mcp-base-rkortthinkwise
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: thinkwise-software-factory-mcp-base
Source: https://github.com/rkortThinkwise/sf-mcp-skills-temp/tree/main/thinkwise-software-factory-mcp-base
Command: npx skills add https://github.com/rkortThinkwise/sf-mcp-skills-temp --skill thinkwise-software-factory-mcp-base-rkortthinkwise

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? A Thinkwise Software Factory repository commonly hosts multiple application models with multiple branches each, and most entities are keyed by model_id/branch_id. Queries without explicit scoping can silently match rows from the wrong model or branch, and staged writes can silently drop or cross-contaminate field values. This Skill pins down the correct connector, model, and branch once per task and documents verified write-API hazards so mutations land correctly. ## Core Features & Use Cases - Context resolution workflow: Determines which MCP connector (sf_mcp, meta_dev, indicium), which application model (model_id), and which branch (branch_id) apply, asking the user only when context is ambiguous. - Shared conventions for sibling skills: Enforces confirm-before-mutate planning, ask-don't-default design decisions, and live-sample verification of unfamiliar entity field names across all thinkwise_software_factory_* skills. - Write-hazard mitigations: Documents verified failure modes of the stage/patch/commit flow — silently dropped patch properties, cross-contamination from parallel writes, transient commit not-found errors, weak-entity key requirements, and truncated large text reads — with tested workarounds such as property ordering and OData substring paging. - Use Case: Before creating a control procedure via an MCP connector, run this base check to pin the connector, model, and branch, then carry those values into every subsequent execute_odata_query and stage_resource call. ## Quick Start Before making any Software Factory MCP calls, confirm which connector, application model, and branch this task targets.

Frequently Asked Questions about thinkwise-software-factory-mcp-base

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I avoid querying the wrong model or branch in Thinkwise Software Factory?

Pin the connector, model_id, and branch_id once at the start of the task, then carry them into every execute_odata_query and stage_resource filter. Queries without explicit model_id/branch_id filters can silently match rows from other models or branches in the same repository.

Why does a multi-property patch silently drop field values?

The staging write API can silently drop one property from a multi-property patch without returning an error. Re-read the field values after every patch, and try reordering properties so dependent fields come last in a single call before falling back to isolated single-property patches.

Can I patch multiple staged resources in parallel?

No. Patching different staged resources concurrently cross-contaminates their field values. Always serialize the workflow: fully stage, patch, and commit one resource before starting the sequence for the next one.

Why does staging an edit fail with an invalid_key error on a dependent entity?

Weak or dependent entities require their full key including the parent's id, not just their own identifier. Check the error's required_key_fields or missing_key_fields and supply every listed field, since read filtering works with looser keys than edits.

How do I read a large text field that gets truncated around 5000 characters?

Page through the field using an OData aggregation transformation with $apply=compute(substring(field, offset, length) as alias), incrementing the offset until a shorter chunk returns. Always supply both offset and length, since the two-argument substring form fails on this backend.