@brms/ai-skills 0.1.0

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.
Files changed (90) hide show
  1. package/README.md +256 -0
  2. package/bin/brms-skills.mjs +411 -0
  3. package/package.json +30 -0
  4. package/skills/brms-prototype-generator/SKILL.md +129 -0
  5. package/skills/brms-prototype-generator/agents/openai.yaml +7 -0
  6. package/skills/brms-prototype-generator/examples/few-shot-examples.md +577 -0
  7. package/skills/brms-prototype-generator/references/01-list-query.md +444 -0
  8. package/skills/brms-prototype-generator/references/02-form-entry.md +129 -0
  9. package/skills/brms-prototype-generator/references/03-detail-display.md +125 -0
  10. package/skills/brms-prototype-generator/references/04-composite-page-package.md +339 -0
  11. package/skills/brms-prototype-generator/references/05-dialog-patterns.md +113 -0
  12. package/skills/brms-prototype-generator/references/06-backend-request-patterns.md +118 -0
  13. package/skills/brms-prototype-generator/references/resource-index.md +46 -0
  14. package/skills/brms-prototype-generator/references/system-prompt.md +242 -0
  15. package/skills/brms-prototype-generator/scripts/analyze-doc.mjs +554 -0
  16. package/skills/brms-prototype-generator/scripts/check-project.mjs +228 -0
  17. package/skills/brms-prototype-generator/scripts/discover-targets.mjs +158 -0
  18. package/skills/brms-prototype-generator/scripts/install-codex.mjs +74 -0
  19. package/skills/brms-prototype-generator/scripts/plan-pages.mjs +390 -0
  20. package/skills/brms-prototype-generator/scripts/validate-generated.mjs +838 -0
  21. package/skills/brms-prototype-generator/templates/user-input-template.md +182 -0
  22. package/skills/brms-vxe-plus-developer/SKILL.md +105 -0
  23. package/skills/brms-vxe-plus-developer/agents/openai.yaml +7 -0
  24. package/skills/brms-vxe-plus-developer/references/prototype-to-real.md +54 -0
  25. package/skills/brms-vxe-plus-developer/references/real-base-development.md +110 -0
  26. package/skills/brms-vxe-plus-developer/references/resource-index.md +43 -0
  27. package/skills/brms-vxe-plus-developer/references/review-checklist.md +49 -0
  28. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/01-mental-model.md +150 -0
  29. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/02-vxe-plus-form.md +302 -0
  30. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/03-vxe-plus-table.md +253 -0
  31. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/04-example-map.md +488 -0
  32. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/05-request-and-eiinfo.md +170 -0
  33. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/90-anti-patterns.md +137 -0
  34. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/README.md +43 -0
  35. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/README.md +21 -0
  36. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/A1/P0/A1P01601.vue +483 -0
  37. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/A1/P1/A1P11011.vue +444 -0
  38. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AB/BP/ABBP0201.vue +1648 -0
  39. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AM/AF/component/AMAF0601/Bidding/formConfig.ts +228 -0
  40. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AM/AF/component/AMAF0601/Record/columns.ts +110 -0
  41. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/BMBR01.vue +130 -0
  42. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/component/BMBR01/columns.ts +94 -0
  43. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/component/BMBR01/formConfig.ts +108 -0
  44. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Change/formConfig.ts +123 -0
  45. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Change/index.vue +103 -0
  46. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Clause/columns.ts +48 -0
  47. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Clause/index.vue +202 -0
  48. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Correcte/formConfig.ts +117 -0
  49. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Correcte/index.vue +103 -0
  50. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/Payment/formConfig.ts +90 -0
  51. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/Payment/index.vue +42 -0
  52. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/columns.ts +376 -0
  53. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/index.vue +619 -0
  54. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Domestic/formConfig.ts +73 -0
  55. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Domestic/index.vue +47 -0
  56. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Foreign/formConfig.ts +141 -0
  57. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Foreign/index.vue +42 -0
  58. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/columns.ts +123 -0
  59. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/index.vue +593 -0
  60. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/index.vue +68 -0
  61. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Fee/columns.ts +150 -0
  62. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Fee/index.vue +235 -0
  63. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Files/columns.ts +63 -0
  64. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Files/index.vue +117 -0
  65. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Goods/columns.ts +327 -0
  66. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Goods/index.vue +790 -0
  67. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve/formConfig.ts +341 -0
  68. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve/index.vue +63 -0
  69. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve2/formConfig.ts +232 -0
  70. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve2/index.vue +27 -0
  71. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Diff/columns.ts +46 -0
  72. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Diff/index.vue +92 -0
  73. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/formConfig.ts +979 -0
  74. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/index.vue +62 -0
  75. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Other/formConfig.ts +179 -0
  76. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Other/index.vue +140 -0
  77. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Sign/formConfig.ts +118 -0
  78. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Sign/index.vue +44 -0
  79. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/index.vue +168 -0
  80. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/Major/formConfig.ts +257 -0
  81. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/Major/index.vue +47 -0
  82. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/columns.ts +256 -0
  83. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/index.vue +738 -0
  84. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Price/formConfig.ts +174 -0
  85. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Price/index.vue +51 -0
  86. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Top/index.vue +924 -0
  87. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/SM/SW/SMSW0101.vue +567 -0
  88. package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/demo/index.vue +448 -0
  89. package/skills/brms-vxe-plus-developer/scripts/check-project.mjs +259 -0
  90. package/skills/brms-vxe-plus-developer/scripts/check-vxe-plus-page.mjs +137 -0
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: brms-prototype-generator
3
+ description: Generate BRMS/eplat-vue-base Vue prototype pages from product Markdown into a confirmed project under project/*. Use when users mention function.md, requirements.md, product docs, page packages, prototype Vue pages, mock-first BRMS UI, explicit EiInfo interfaces, route/menu handoff, or this repo's Codex/Claude skill workflow.
4
+ ---
5
+
6
+ # BRMS Prototype Generator
7
+
8
+ Use this skill as a coordinator, not as a full prompt dump. Keep `SKILL.md` loaded, then read only the referenced resource files needed for the current page type.
9
+
10
+ ## Safety
11
+
12
+ - Before executing the workflow in any repo, run the project check:
13
+
14
+ ```bash
15
+ node .claude/skills/brms-prototype-generator/scripts/check-project.mjs --repo-root . --format both
16
+ ```
17
+
18
+ If the user already named a target project, include it:
19
+
20
+ ```bash
21
+ node .claude/skills/brms-prototype-generator/scripts/check-project.mjs --repo-root . --target-project project/<name> --format both
22
+ ```
23
+
24
+ Stop only on `Blockers`. Treat `Warnings` as planning notes, because BRMS projects may differ by route/menu style or documentation completeness.
25
+ If the blocker says multiple project candidates were found, list the candidates and ask the user to choose the target project before generating code.
26
+ - Work only in the user-confirmed target project under `project/*`.
27
+ - Do not install, update, remove, or repair dependencies.
28
+ - Do not delete or recreate `node_modules`, `.pnpm`, lockfiles, or pnpm stores.
29
+ - Use Node `18.17.0` and pnpm `8.10.4`; stop if the active versions differ.
30
+ - Do not edit route/menu files until the target route style is known. If the target uses `src/routers/localMenuList.json` or permission-center dynamic routes, plan route/menu handoff instead of inventing `routers/config`.
31
+ - Default to mock-backed prototypes. Use real EiInfo/serviceConfig wiring only when the product document explicitly names service and method names.
32
+
33
+ ## Required Flow
34
+
35
+ 1. Discover candidate target projects:
36
+
37
+ ```bash
38
+ node .claude/skills/brms-prototype-generator/scripts/discover-targets.mjs --repo-root . --format both
39
+ ```
40
+
41
+ Ask the user to confirm the target, even when only one candidate is found.
42
+ If multiple candidates are found, stop here until the user chooses the exact `project/<name>`.
43
+ If the discovery reports `local-menu` or `dynamic-router`, do not assume the old static route config layout; inspect the reported route file and use it only when the user confirms local menu edits.
44
+
45
+ 2. Analyze the product Markdown:
46
+
47
+ ```bash
48
+ node .claude/skills/brms-prototype-generator/scripts/analyze-doc.mjs <entry-md> --repo-root . --format both
49
+ ```
50
+
51
+ Stop if `summary.completePages` is `0`. If field keys are missing, ask whether to supplement table design; if the user declines, derive lowerCamelCase keys and add TODO comments.
52
+
53
+ 3. For 4+ complete pages, create a compact generation plan before writing Vue:
54
+
55
+ ```bash
56
+ node .claude/skills/brms-prototype-generator/scripts/plan-pages.mjs <entry-md> --repo-root . --target-project <project/name> --page-prefix <PAGE_PREFIX> --format both
57
+ ```
58
+
59
+ `<PAGE_PREFIX>` must be the real 4+ character page prefix, for example `DMDA` -> `DMDA01`. Do not use a 2-character module prefix such as `KQ` because it produces invalid short page codes like `KQ01`.
60
+
61
+ Use the plan's page packets as the source of truth. Do not keep rereading the full product document for every page.
62
+
63
+ 4. Pick the generation mode:
64
+
65
+ - `single-agent-package`: 1-3 complete pages.
66
+ - `coordinator-subagents`: 4+ complete pages when subagents are available.
67
+ - `coordinator-sequential`: 4+ complete pages when subagents are unavailable.
68
+
69
+ For multi-page work, the coordinator owns the plan, shared `data.ts`, route config, final validation, and handoff summary. A worker may edit only its assigned page file.
70
+
71
+ ## Lazy Resource Loading
72
+
73
+ Read [resource-index.md](references/resource-index.md) after analysis. It tells you which detailed reference files to load for each page type and rule family.
74
+
75
+ Do not load all references or all examples by default. Load only:
76
+
77
+ - the page pattern file named by the page packet;
78
+ - `references/04-composite-page-package.md` for 4+ page packages;
79
+ - `references/05-dialog-patterns.md` only when dialogs, drawers, upload, or attachment behavior is present;
80
+ - `references/06-backend-request-patterns.md` only when explicit backend service and method names are present;
81
+ - `examples/few-shot-examples.md` only when a concrete snippet is needed, and search within it instead of reading it all.
82
+
83
+ Treat `references/system-prompt.md` as a legacy full prompt for external/manual use. Do not load it during normal skill execution.
84
+
85
+ ## Hard Gates
86
+
87
+ - Every generated `.vue` template has exactly one top-level root element.
88
+ - Generated dialogs stay inside the same root wrapper as page content.
89
+ - Mock-backed `VxePlusTable` with `:columns` must bind `:data`.
90
+ - Interface-backed pages must include `// @brms-explicit-interface <source>: <Service.method>`.
91
+ - Mock-backed data and local mock logic must be searchable for later cleanup: put `// @brms-mock-data <source-or-page>: <purpose>` before mock arrays/objects/row refs, and `// @brms-mock-handler <source-or-page>: <operation>` before local query/save/delete/upload/status handlers. A plain `TODO: 接入后台接口` is not enough.
92
+ - Do not generate REST `http.*` calls unless the product doc explicitly asks for REST.
93
+ - Do not generate operation/action columns or checkbox columns in `createColumns`; use table toolbar buttons and `:show-checkbox`.
94
+ - Page codes must be 6+ uppercase letters/digits; the first 2 characters are the module folder and the next 2 are the submodule folder, for example `DMDA01` -> `src/views/DM/DA/DMDA01.vue`.
95
+ - Do not generate short page codes such as `KQ01`; ask for or derive a 4+ character page prefix first.
96
+ - Dynamic route config `path` uses only `/<PAGE_CODE>` because `auth.ts` prefixes `/web`; keep physical folders only in `component`.
97
+ - Hidden detail/jump-only pages in a page package stay in the same parent menu `children` with `meta.isHide: true`; do not put them as separate top-level routes outside the parent array item.
98
+ - In-page navigation uses `/web/<PAGE_CODE>`, for example `/web/DMDA01`, not `/web/DM/DA/DMDA01`.
99
+ - Every documented cross-page navigation edge must have both sides wired: a visible source UI entry that calls `router.push` with `query`, and a target page that reads `route.query` as default filter or context.
100
+ - Generated add/edit/delete actions belong in `VxePlusTable :toolbar-buttons`, not in result-header `BxContainer :custom-btn-list`, to avoid duplicate buttons.
101
+ - Choose exactly one edit model per table: row edit uses `VxePlusTable :is-edit="true"` plus column `editRender`; dialog edit uses `vxe-modal + VxePlusForm` and must not enable table row edit. Do not use `cell-click` as a default edit opener.
102
+ - `vxe-modal show-footer` must explicitly set `show-cancel-button`, `show-confirm-button`, `cancel-button-text`, and `confirm-button-text`.
103
+ - Do not invent components such as `VxePlusDialog`, `FileUploadDialog`, `UploadDialog`, `BxUploadDialog`, or `AttachmentDialog`.
104
+ - Dialog `VxePlusForm` uses `:form-options`, not `:form-config`.
105
+ - Required validation for `VxePlusForm` must be written in form-level `rules`, for example `rules: { portCode: [{ required: true, message: '请输入港口代码' }] }`.
106
+ - Do not use `titlePrefix: { content: '必填' }` as validation. It only decorates the title and does not validate input.
107
+ - Do not put `required: true` on `formOption.items`; item-level `required` is ineffective in this VxePlusForm wrapper.
108
+ - Attachment upload/view actions use `useFileUpload().openFileBFSS0001` when available.
109
+
110
+ Keep the details for these gates in references and `validate-generated.mjs`; do not expand them in chat unless fixing a failure.
111
+
112
+ ## Validation
113
+
114
+ Validate only generated or modified files, not the whole `src/views` tree:
115
+
116
+ ```bash
117
+ node .claude/skills/brms-prototype-generator/scripts/validate-generated.mjs <generated-vue-or-route-files> --repo-root .
118
+ pnpm --filter <target-package-name> exec vue-tsc --noEmit --pretty false
119
+ ```
120
+
121
+ If `vue-tsc` is not available through the target package, report that instead of changing dependencies.
122
+
123
+ For 4+ page packages, write a compact handoff summary:
124
+
125
+ ```text
126
+ <target-project>/.generation-summaries/<lowercase-page-prefix>-<yyyymmddhhmmss>.md
127
+ ```
128
+
129
+ Include entry doc, confirmed target, generation plan path/output, generated files, route/menu handoff, per-page functions, validation output, and unresolved TODOs. Tell Claude Code users they may run `/compact` after the summary is written.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "BRMS Prototype Generator"
3
+ short_description: "Plan and generate BRMS prototypes with compact page packets"
4
+ default_prompt: "Use $brms-prototype-generator to discover the target BRMS project, analyze the product Markdown, create a compact page plan for multi-page work, and generate only the confirmed BRMS prototype pages."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true