SuperAPI AI Directory

openydt-list

Office & productivity

View repository

Updated 10-16 02:56

About this skill

openydt-list — License plate list management domain (blacklist / redlist / visitor)

CRITICAL: Before starting, MUST first use the Read tool to read ../openydt-shared/SKILL.md(authentication / profile / signature / status codes / rate limiting / security rules). Do not execute any commands without reading the shared foundation.

When to use this skill

Use this skill when the user wants to maintain in the parking lotlicense plate lists, including three types of business:

  • Blacklist (blacklist): Prohibit a vehicle from entering / charge high fees. Phrasings such as "blacklist this car", "add to blacklist", "check the blacklist", "remove from blacklist".
  • Redlist (redlist): Passage rules, free / privileged passage. Phrasings such as "add to redlist", "police car passage", "redlist rules", "delete passage rule".
  • Visitor (visitor): Temporary visit registration, time-limited passage. Phrasings such as "register visitor vehicle", "visitor passage", "cancel visitor appointment".

Intent routing:

  • "add black / blacklist / check blacklist / remove from blacklist" → openydt blacklist ...
  • "add red / redlist rules / delete redlist" → openydt redlist ...
  • "visitor registration / cancel visitor" → openydt visitor ...
  • "create special vehicle type / VIP group" → openydt ticket add-special-car-type(prerequisite step, see business flow; see [[openydt-monthticket]] for details)

Note: The commands of this skill are distributed across blacklist / redlist / visitor three subcommand domains, and the invocation prefixes are all different.

Available commands

Chinese name Command Read/Write Key parameters
Add blacklist vehicle openydt blacklist add-black-list-car Write --park-code --special-car-type-id --car-code --car-owner --reason(all required)
Query blacklist vehicle list openydt blacklist get-park-black-list Read --body(parkCodeList required) / --car-code --owner --page-size --page-num
Cancel blacklist vehicle openydt blacklist remove-black-list-car Write --park-code(required) --blacklist-id / --car-no(choose one of two)
Add redlist rule openydt redlist red-list-add Write --redlist-param --park-code-list(required)--plate-color --operator --remark
Query redlist rules openydt redlist get-red-list Read --park-code-list(required)
Delete redlist rule openydt redlist del-red-list Write --rule-id(required, from query results)
Add visitor vehicle openydt visitor add-visitor-car-new Write --park-code --car-no --owner --special-car-type-id --visit-from --visit-to(all required)
Cancel visitor vehicle openydt visitor cancel-visitor-car-new Write --park-code(required) --visitor-id / --car-no(choose one of two)

Allwrite operations(add/remove/del/cancel) require appending --yes confirmation. Read operations (get-*) do not require --yes。

Business flow

Blacklist / visitor registration must first have a "special vehicle type", whose specialCarTypeId is a required input parameter for subsequent commands. The complete closed loop is as follows,be sure to use fields from the responses of preceding commands as input parameters for subsequent commands:

  1. Create special vehicle type(Prerequisite, belongs to the ticket domain) openydt ticket add-special-car-type --yes

    • For the blacklist use vipGroupType=2, for visitors use vipGroupType=1。
    • retrieved from the response specialCarTypeId is a required input parameter for step 2 (blacklist --special-car-type-id / visitor --special-car-type-id)。
  2. Register vehicle(using step 1's specialCarTypeId + license plate + parkCode)

    • Blacklist:openydt blacklist add-black-list-car --yes
    • Visitor:openydt visitor add-visitor-car-new --yes
  3. Query confirmation

    • Blacklist:openydt blacklist get-park-black-list, retrieve from the returned list blacklistId, for use by step 4 for precise cancellation.
    • Whitelist:openydt redlist get-red-list, retrieve from the response ruleId, for use by del-red-list .
  4. Cleanup / cancellation

    • Blacklist:openydt blacklist remove-black-list-car --yes(using step 3's --blacklist-id, or pass only --car-no to cancel all blacklist entries for that license plate)
    • Visitor:openydt visitor cancel-visitor-car-new --yes(using --visitor-id, or pass only --car-no to cancel the most recent visitor)
    • Whitelist rules:openydt redlist del-red-list --yes --rule-id <步骤3的ruleId>

Whitelist rules are relatively independent, no special vehicle type is needed, directly use openydt redlist red-list-add to add (supports a single license plate or *警 such wildcard rules).

Write idempotency and confirmation

  • add-black-list-car/add-visitor-car-new Repeatedly submitting the same license plate: the platform deduplicates by license plate (repeatedly blacklisting the same license plate does not create a new entry); if unsure whether the first attempt took effect, first get-park-black-list query.
  • ⚠️ remove-black-list-car/cancel-visitor-car-new Passing only --car-no(without id) will cancel all entries for that license plate—batch impact, before executing first get-park-black-list confirm the scope, and prefer using the blacklistId/visitorId obtained from the query for precise cancellation.

PII:--phone/--car-no is PII, prod does not record real values (see [[openydt-shared]]); for creating special vehicle types see [[openydt-monthticket]].

Error self-healing quick reference (blacklist/whitelist/visitor)

Symptom Meaning Recovery action
Failed to add to blacklist status=7/resultCode=909 specialCarTypeId not passed/does not belong to this parking lot/type mismatch First openydt ticket get-special-car-type-list query this parking lot's type ID, confirm vipGroupType=2 then add to blacklist
Visitor registration failed status=2 specialCarTypeId belongs to a blacklist type (vipGroupType=2) or is unauthorized Confirm using the visitor type (vipGroupType=1) specialCarTypeId
After canceling blacklist/visitor, suspected not to have taken effect Passing only --car-no but there is a delay in the platform-side query Wait 1-2 seconds then get-park-black-list recheck; if multiple entries exist for the same license plate, switch to --blacklist-id for precise cancellation
get-park-black-list returns 0 entries The parking lot has no blacklist or parkCodeList not fully passed Confirm parkCodeList is correct before concluding "no blacklist"; see [[openydt-shared]] result interpretation SOP

For general status codes and retry rules see [[openydt-shared]]; for the three-layer result interpretation see its ../openydt-shared/references/result-reading-sop.md。

Example

The following parkCode/time are documented test values (test only;1ZS7H5PQH9/PTD2YBBZ is a test parking lot, replace with an authorized parking lot in production). For write operations it is recommended to first --dry-run preview, and after confirmation then --yes。

  1. Add a blacklist vehicle (write, requires --yes;special-car-type-id from add-special-car-type response):
openydt blacklist add-black-list-car --yes \
  --park-code 1ZS7H5PQH9 \
  --car-code 粤EJW962 \
  --car-owner 车主 \
  --reason 原因 \
  --special-car-type-id 253
  1. Query a parking lot's blacklist list (read, no --yes, use --body to pass the parkCodeList array):
openydt blacklist get-park-black-list \
  --body '{"parkCodeList":["1ZS7H5PQH9"],"carCode":"粤EJW962","pageNum":1,"pageSize":10}'
  1. Add a whitelist release rule (write, requires --yes, park-code-list is an array using --body):
openydt redlist red-list-add --yes \
  --body '{"parkCodeList":["1ZS7H5PQH9","PTD2YBBZ"],"redlistParam":"粤EJW962"}'
  1. Register a visitor vehicle (write, requires --yes;special-car-type-id from the visitor type's add-special-car-type response):
openydt visitor add-visitor-car-new --yes \
  --park-code PTD2YBBZ \
  --car-no 粤EJW962 \
  --owner 李四 \
  --phone 13800000000 \
  --reason 访友 \
  --visit-from 20260601000000 \
  --visit-to 20260602000000 \
  --special-car-type-id 154