openxiangda-skill-kit 2.0.0-alpha.61 → 2.0.0-alpha.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -9,6 +9,14 @@ Use the generated React, NestJS and Data API workspace as one application. Befor
|
|
|
9
9
|
|
|
10
10
|
Start with `pnpm dlx openxiangda-cli@latest login`, then `pnpm dlx openxiangda-cli@latest create <directory>`. Run `pnpm openxiangda dev` for the local feedback loop and `pnpm openxiangda check` before delivery.
|
|
11
11
|
|
|
12
|
+
For an AI-native development client, start the workspace MCP through the same
|
|
13
|
+
pinned executable with `pnpm exec openxiangda --mcp-stdio --cwd <workspace>`.
|
|
14
|
+
Read `openxiangda://workspace/contracts` or call `contract_describe` and verify
|
|
15
|
+
that `aiCatalog` and `aiCatalogDigest` match the normal compiler result. This is a
|
|
16
|
+
stdio transport mode, not another public CLI command. Never create an
|
|
17
|
+
application-owned MCP server, Catalog file, preview store or AI authorization
|
|
18
|
+
path.
|
|
19
|
+
|
|
12
20
|
Keep ordinary CRUD on the platform Data API. Use NestJS only for real business actions. Page and field guards improve the interface; the platform remains authoritative for rows, fields and actions.
|
|
13
21
|
|
|
14
22
|
Deploy test data first with `pnpm openxiangda deploy`. Inspect it with `pnpm openxiangda status` and `pnpm openxiangda logs`. Select production explicitly only after the same tested version succeeds. Use `pnpm openxiangda rollback --to <app-version-id>` when a verified prior version must be restored.
|
|
@@ -62,6 +62,14 @@ calculate replacement counters in application code. Course selection is a
|
|
|
62
62
|
locked `record-assert` plus a bounded `increment`; replay must reach the
|
|
63
63
|
platform idempotency receipt even after the course becomes full.
|
|
64
64
|
|
|
65
|
+
An idempotency key and the complete command payload are one immutable pair.
|
|
66
|
+
Never put `new Date()`, `Date.now()`, `randomUUID()` or another changing value
|
|
67
|
+
inside a controller while constructing the transaction. If a business time is
|
|
68
|
+
part of the record, declare it as a required operation request field; the
|
|
69
|
+
caller creates it once together with the idempotency key and reuses both on
|
|
70
|
+
every retry. Platform-created record timestamps remain the source of truth
|
|
71
|
+
when no separate business time is required.
|
|
72
|
+
|
|
65
73
|
When declaring a lower-level transaction directly, use only the current
|
|
66
74
|
contract:
|
|
67
75
|
|
|
@@ -12,3 +12,4 @@
|
|
|
12
12
|
- A single directory user reference uses a `string` field; a single department or same-app resource reference uses `uuid`; every `multiple: true` reference uses `json`. Roles that consume directory-backed fields explicitly include `app:<app-code>:directory:read`.
|
|
13
13
|
- Do not add compatibility aliases, migration branches or silent fallbacks for an earlier 2.0 alpha contract. Replace an incorrect contract and regenerate the application.
|
|
14
14
|
- Run `pnpm openxiangda check` after contract changes. Deploy with `pnpm openxiangda deploy`, inspect with `pnpm openxiangda status` and `pnpm openxiangda logs`, and use the platform rollback command rather than mutating K3s directly.
|
|
15
|
+
- AI-native clients start the workspace protocol through the same pinned binary: `pnpm exec openxiangda --mcp-stdio --cwd <workspace>`. Read `openxiangda://workspace/contracts` or call `contract_describe`, and require its `aiCatalog` and `aiCatalogDigest` to match the normal compiler output. This is a stdio transport mode, not a ninth CLI command. Never write an application MCP server, Catalog file, preview store or second authorization path.
|