协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
catia-v5-mcp-maintainer【开发与工程】Maintain daiemon12/catia-v5-mcp-server against a production reliability contract. Use when changing tool schemas or implementations, COM execution, session health, structured results, object handles, topology references, recovery, diagnostics, CAA bridge integration, or regression evaluation. Requires source-first changes, truthful schemas, determini…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when changing the target MCP server itself. Production support is a contract between schema, implementation, runtime behavior, diagnostics, recovery, and tests. Tool count alone is not a reliability metric.
Read references/repository-contract-gaps.md before modifying an existing tool or capability group.
Read references/production-architecture.md before changing COM/session execution, object lifecycle, recovery, topology, diagnostics, or CAA integration.
Read references/result-contract.md before adding or changing tool outputs/errors.
Read references/test-strategy.md before accepting a behavior change.
Read references/production-readiness-checklist.md when assessing support level across capability groups.
For each change:
The target runtime should separate asynchronous MCP transport from CATIA execution:
MCP request -> typed validation -> operation orchestrator -> serialized STA worker -> CATIA Automation / optional CAA adapter -> result verification
The worker owns COM initialization and COM object resolution on its own STA thread. Request handlers enqueue logical operations and await structured results.
Do not transfer apartment-bound raw COM objects to request threads. Store logical handles and resolve them on the worker.
Use explicit session health such as:
healthy: CATIA state is known and mutations are allowed;blocked: a known modal/blocked condition prevents safe calls;unknown: call completion or model state cannot be established;disconnected: no active CATIA connection.A timeout does not prove an in-flight COM call was cancelled. If completion is indeterminate, transition to unknown or blocked and reject further mutations until health and model state are re-established.
Each engineering-intent tool should define:
A mutation tool must not return only a phrase such as "created successfully" when design correctness can be measured.
A schema field is part of the public contract. If implementation ignores an advertised input, choose one of two actions:
Documentation must not be used to compensate for an ignored runtime input.
For a tool expected to add/remove material:
At minimum support typed outcomes for FEATURE_NO_EFFECT, WRONG_GEOMETRY_EFFECT, and UPDATE_FAILED when applicable.
Expose opaque logical handles for session objects such as documents, bodies, sketches, features, and parameters. The handle registry should track owning document/session and object validity.
After document close/reload/session reset, affected handles must fail deterministically, for example with STALE_HANDLE or OBJECT_NOT_FOUND. Never silently rebind a stale handle by display name.
Topology references are server-layer abstractions, not durable native CATIA IDs. Treat the external token format as opaque.
A topology record should include:
Every shape-changing mutation increments or invalidates the topology generation. A token from an older generation must return STALE_TOPOLOGY_TOKEN before feature creation. Never fall back to the same numeric index in a changed topology.
Use an operation journal or equivalent deterministic recovery record. This is a logical recovery mechanism, not an ACID transaction and not a claim of CATIA-native atomicity.
Record, as applicable:
Rollback must run in reverse order, update CATIA, and verify restoration where measurable.
Detect/report blocking CATIA modal dialogs around fragile or long-running calls. Auto-close only an explicit allowlist of non-destructive dialogs. Return dialog metadata and session-health impact. Do not invoke arbitrary buttons based on caption similarity.
Automation exceptions are insufficient for advanced repair. Expose the deepest available diagnostics without inventing native meaning.
When a CAA bridge is present:
When a CAA bridge is absent, return the limitation explicitly rather than synthesizing native diagnostic text.
Offline tests establish schema/orchestration contracts. Live CATIA probes establish actual COM/API/BRep behavior. Agent task evaluations establish end-to-end capability.
All three levels are required before broad production-support claims for features that depend on CATIA runtime semantics.
A production-supporting change is complete only when all applicable conditions hold: