Kingdee MCP Dev
WaHaiLong/KingdeeMCP
Knowledge base for the Kingdee MCP Dev Squad. An agent skill from WaHaiLong/KingdeeMCP.
Keep contributor changes aligned with repository test patterns, diagnostics, black-box test boundaries, release/versioning workflow, documentation requirements, and compatibility.
$ npx skills add counterfact/api-simulator --skill counterfact-maintenance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install counterfact/api-simulator counterfact-maintenance --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/counterfact/api-simulator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/counterfact-maintenance .claude/skills/counterfact-maintenance && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "counterfact-maintenance" agent skill from https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenance into .claude/skills/counterfact-maintenance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "counterfact-maintenance", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenanceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add counterfact/api-simulator --skill counterfact-maintenance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install counterfact/api-simulator counterfact-maintenance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/counterfact/api-simulator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/counterfact-maintenance .agents/skills/counterfact-maintenance && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "counterfact-maintenance" agent skill from https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenance into .agents/skills/counterfact-maintenance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "counterfact-maintenance", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add counterfact/api-simulator --skill counterfact-maintenance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install counterfact/api-simulator counterfact-maintenance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/counterfact/api-simulator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/counterfact-maintenance .cursor/skills/counterfact-maintenance && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "counterfact-maintenance" agent skill from https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenance into .cursor/skills/counterfact-maintenance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "counterfact-maintenance", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/counterfact/api-simulator.git --path .github/skills/counterfact-maintenance--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add counterfact/api-simulator --skill counterfact-maintenance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install counterfact/api-simulator counterfact-maintenance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/counterfact/api-simulator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/counterfact-maintenance .gemini/skills/counterfact-maintenance && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "counterfact-maintenance" agent skill from https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenance into .gemini/skills/counterfact-maintenance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "counterfact-maintenance", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install counterfact/api-simulator counterfact-maintenanceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add counterfact/api-simulator --skill counterfact-maintenance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/counterfact/api-simulator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/counterfact-maintenance .github/skills/counterfact-maintenance && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "counterfact-maintenance" agent skill from https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenance into .github/skills/counterfact-maintenance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "counterfact-maintenance", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add counterfact/api-simulator --skill counterfact-maintenance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install counterfact/api-simulator counterfact-maintenance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/counterfact/api-simulator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/counterfact-maintenance .opencode/skills/counterfact-maintenance && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "counterfact-maintenance" agent skill from https://github.com/counterfact/api-simulator/tree/main/.github/skills/counterfact-maintenance into .opencode/skills/counterfact-maintenance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "counterfact-maintenance", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
counterfact-maintenanceKeep contributor changes aligned with repository test patterns, diagnostics, black-box test boundaries, release/versioning workflow, documentation requirements, and compatibility.
Counterfact Maintenance is an agent skill from counterfact/api-simulator. Keep contributor changes aligned with repository test patterns, diagnostics, black-box test boundaries, release/versioning workflow, documentation requirements, and compatibility.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Operations and SOPs and OpenAPI specifications. It works with TypeScript and OpenAPI. The repository describes itself as: Turn an OpenAPI spec into a local API in one command. Build and test your frontend with custom responses, shared state, and simulated failures, without waiting for the backend. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fc1c7f8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
yarnrgnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use yarn and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Counterfact Maintenance loads about 3.1k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 1,546 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from counterfact/api-simulator at commit fc1c7f8, republished under its MIT licence (© counterfact). 1,546 words, ~3,091 tokens.
.claude/skills/counterfact-maintenance/SKILL.md (or your agent's skills folder).Use this skill when finalizing contributor-facing changes that affect tests, diagnostics/errors, release semantics, docs, or compatibility guarantees.
package.json (canonical scripts)AGENTS.mdpackages/counterfact/docs/reference.mdpackages/counterfact/docs/faq.md.changeset/*.md (format examples)packages/counterfact/test/**/* for existing patterns/fixturesKeep historical study environments under site/study/2026/experiments/environments/ excluded from Renovate; their manifests and lockfiles are reproducibility evidence, not maintained application dependencies. When changing ignorePaths, preserve the exclusions inherited from config:recommended because the array replaces inherited values.
Use usingTemporaryFiles() for filesystem-heavy tests.
The Astro site uses compressHTML: true to preserve HTML whitespace around inline prose across source line breaks. Keep that setting explicit when upgrading Astro, and run cd site && npm run test:whitespace for rendering or formatting changes. Check generated text before applying CSS spacing: punctuation and intentional in-word links must remain adjacent.
Keep single-line command snippets in a focusable horizontal scroll region, with copy controls outside that region. A scrolling flex item needs min-width: 0 so long text cannot widen the whole page. Emitted CSS/HTML checks establish this contract; they do not replace browser checks of scrolling, keyboard access, or viewport overflow.
In file-watching tests, register the expected event listener before writing the file, then await the saved promise. Close watchers in test teardown so Jest timeouts cannot skip cleanup; restore any changed working directory there as well.
For source or tsconfig analysis in repository tooling, use the existing TypeScript parser instead of custom tokenizers or JSONC stripping. Preserve the source filename so TypeScript and TSX syntax are parsed correctly.
Package-boundary export checks validate public subpaths across conditions; they do not replace installed-consumer tests for runtime resolution. Keep regression coverage for null exclusions and overlapping export patterns.
Keep tests focused by subsystem (packages/counterfact/test/cli, packages/counterfact/test/server, packages/counterfact/test/typescript-generator, packages/counterfact/test/util).
Preserve documented behavior promises (e.g., regen preserves route edits; types are regenerated).
When terminal output displays an HTTP message, split its head and body at the first \r\n\r\n separator only: multipart bodies contain additional separators that must remain visible.
For user-facing behavior changes: add a changeset and update docs under packages/counterfact/docs/.
After Changesets versions workspace packages, run yarn install --mode skip-build --no-immutable so yarn.lock can match the new internal versions before immutable installation; CI enables Yarn immutability by default, so the explicit override is required in release:version.
A push to main with no remaining changesets publishes the merged package versions automatically; a manual Release workflow dispatch is the retry and recovery path.
Keep the npm-publish environment name, OIDC permission, and provenance setting aligned with the npm trusted-publisher configuration.
Use OS-assigned ephemeral ports for tests that start network servers; fixed high ports can collide on shared CI hosts.
When an OpenAPI-aware request builder gains an input kind or encoding rule, keep the route-catalog metadata, immutable builder state, required-input diagnostics, help and inspection output, wire serialization, public docs, focused unit tests, and ephemeral-port integration tests aligned. Define and test precedence whenever two builder methods compete for the same HTTP request entity.
When a status check is required by a merge-queue ruleset, configure its workflow to run on merge_group with checks_requested; a pull_request-only workflow leaves the queue's synthetic commit without that check and eventually times out.
When a pull-request workflow's decision depends on labels, include labeled and unlabeled activity types so a label change refreshes the required status rather than leaving a stale result.
For public repository-history audits, record classification confidence separately from chronology confidence. Use an exact origin only when the introducing change is demonstrated; otherwise publish the earliest confirmed affected bound and label it as a bound.
Keep audit windows, population rules, candidate dispositions, deduplication rules, immutable source identifiers, and derived totals in a checked-in manifest with an offline consistency check. Do not make a headline denominator depend only on hand-maintained page copy or a live search URL.
For time-to-report quality cohorts, close intake early enough to give every included release the same fixed follow-up. Publish the complete candidate ledger, treat unresolved response cases as censored, make raw event counts primary when exposure units are heterogeneous, and label rate denominators as sensitivity analyses.
Reserve test-black-box/ for implementation-unaware behavioral tests that exercise Counterfact as a complete product through user-facing interfaces.
A test is black-box because it controls product inputs and observes product outputs without depending on implementation details, not because it runs in a particular process.
The product execution may cross several packages without the harness knowing or selecting which packages are involved.
These tests may be more sensitive to subtle regressions than they are helpful at pinpointing their source.
Gherkin feature files are the authoritative inventory of black-box behavior.
Each scenario should describe a coherent developer journey and preserve every distinct user-visible claim, while equal or stronger journey coverage should replace duplicate assertions.
Python under test-black-box/ is limited to pytest-bdd scenario bindings, step glue, and lifecycle support; do not add standalone pytest test functions as a second behavioral inventory.
Create contracts and configurations inside the scenario's temporary project instead of relying on mutable state or shared checked-in fixtures.
Reuse one generated project and server within a scenario, but never share mutable state between scenarios.
Use dynamic ports, deterministic named examples, bounded polling with complete process diagnostics, and teardown that terminates every child process.
Allowed observation and control surfaces are:
counterfact CLI's arguments, stdin, stdout, stderr, and exit status.Do not put a test in test-black-box/ if it does any of the following:
counterfact or @counterfact/* package APIs directly.dist paths.The test layers are intentionally complementary:
A separate process is neither necessary nor sufficient evidence that a test is black-box.
Calling the shipped CLI from Python is valid; using Python only to launch a Node script that imports packages is a package-consumer test, not a product black-box test.
Writing an editable generated route and letting the shipped CLI load it remains a product black-box test, even when that route uses a documented handler type from counterfact.
Broad and focused tests may overlap when they protect behavior at different abstraction levels.
Before adding or approving a black-box test:
State the user-visible regression or behavior in one sentence.
Identify the product interface that a user would operate.
Launch the shipped product without importing application packages into the test harness or a standalone consumer script.
Assert only observable output such as terminal text, HTTP responses, exit status, or generated files.
Confirm the test fails with the regression present, not merely that it passes after the fix.
Search test-black-box/ for generated consumer scripts, direct package imports, and private source or build paths:
rg -n '_run_node_script|consume\.mjs|--eval|input-type=module|packages/.+/(src|dist)/' test-black-box
rg -n '@counterfact/|import .*counterfact|from .*counterfact' test-black-boxFor interactive CLI behavior, use a real pseudo-terminal and send the literal keystrokes a user would type. If the required terminal facility is unavailable on an operating system, skip explicitly and ensure another CI operating system executes the test; do not replace the test with a direct function call. Keep that operating-system skip scoped to the real-terminal scenario so non-interactive journeys continue to run cross-platform.
usingTemporaryFiles helper.counterfact-cli-runtime, counterfact-runtime-architecture, or counterfact-generator-internals).AGENTS.md only when they do not belong to a single subsystem skill.yarn lint:fix, yarn lint, yarn build, yarn test.yarn build then yarn test:black-box.© counterfact, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/counterfact-maintenance of counterfact/api-simulator.
Open the folder on GitHubat commit fc1c7f8
Counterfact Maintenance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Counterfact Maintenance this skillcounterfact/api-simulator | 170 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Kingdee MCP DevWaHaiLong/KingdeeMCP | 105 | — | ~853 | Automated safety check: Pass | MIT | |
| OpenAPI to MCP Servermcp-use/mcp-use | 11k | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Api2clialexknowshtml/api2cli | 454 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Projectsamchon/nestia | 2.2k | — | ~3k | Automated safety check: Pass | MIT | |
| API ContractChenyCHENYU/Robot_Admin | 1k | — | ~1.9k | Automated safety check: Pass | MIT |
WaHaiLong/KingdeeMCP
Knowledge base for the Kingdee MCP Dev Squad. An agent skill from WaHaiLong/KingdeeMCP.
mcp-use/mcp-use
Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.
alexknowshtml/api2cli
Generate a working CLI from any API, then wrap it in a Claude Code skill.
samchon/nestia
Defines the nestia product contract, workspace layout, package boundaries, the Go plugin composition model, and canonical commands.
ChenyCHENYU/Robot_Admin
A skill your agent uses when: generating TypeScript API layer (type definitions + request functions) from page-spec JSON or Swagger/OpenAPI docs.
scalar/scalar
Write clear, predictable TypeScript and Vue TypeScript code with strong typing, maintainability, and consistent documentation conventions.
counterfact/api-simulator
Create Counterfact pull requests with the required agent-authored acceptance and repository-learning notes; do not use to review another PR.
counterfact/api-simulator
Interact with Counterfact mock API server programmatically. An agent skill from counterfact/api-simulator.
counterfact/api-simulator
Build a fully simulated API from an OpenAPI spec using Counterfact.
counterfact/api-simulator
Provide Counterfact repository orientation, high-level architecture, and the canonical command reference for install/build/test/lint workflows.
counterfact/api-simulator
Edit Counterfact route files to add endpoint behavior while keeping handlers thin and delegating business logic to context classes.
counterfact/api-simulator
Create and update Counterfact scenario modules that seed or mutate context state through reusable scenario functions.
Works with
Keep contributor changes aligned with repository test patterns, diagnostics, black-box test boundaries, release/versioning workflow, documentation requirements, and compatibility. Counterfact Maintenance is an agent skill from counterfact/api-simulator. Keep contributor changes aligned with repository test patterns, diagnostics, black-box test boundaries, release/versioning workflow, documentation requirements, and compatibility.
Counterfact Maintenance fits situations like: tasks that involve Operations and SOPs; tasks that involve OpenAPI specifications.
Run `npx skills add counterfact/api-simulator --skill counterfact-maintenance -a claude-code`. Or copy the skill folder (.github/skills/counterfact-maintenance in counterfact/api-simulator) into .claude/skills/counterfact-maintenance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add counterfact/api-simulator --skill counterfact-maintenance -a codex`. Or copy the skill folder (.github/skills/counterfact-maintenance in counterfact/api-simulator) into .agents/skills/counterfact-maintenance in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add counterfact/api-simulator --skill counterfact-maintenance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/counterfact-maintenance, .gemini/skills/counterfact-maintenance, .github/skills/counterfact-maintenance and .opencode/skills/counterfact-maintenance in your project.
Going by SKILL.md and its folder, Counterfact Maintenance needs the command-line tools its instructions call (yarn, rg and npm). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Counterfact Maintenance is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Counterfact Maintenance: Kingdee MCP Dev (WaHaiLong/KingdeeMCP, 105 stars), OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars), Api2cli (alexknowshtml/api2cli, 454 stars) and Project (samchon/nestia, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
counterfact (a GitHub organization) maintains it in counterfact/api-simulator, which has 170 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.
Source: counterfact/api-simulator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.