@qingflow-tech/qingflow-app-user-mcp 1.0.41 → 1.0.42

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 (28) hide show
  1. package/README.md +2 -4
  2. package/docs/local-agent-install.md +4 -4
  3. package/package.json +1 -1
  4. package/pyproject.toml +1 -1
  5. package/skills/qingflow-app-user/SKILL.md +3 -3
  6. package/src/qingflow_mcp/builder_facade/service.py +102 -2
  7. package/src/qingflow_mcp/cli/commands/builder.py +80 -6
  8. package/src/qingflow_mcp/response_trim.py +5 -4
  9. package/skills/qingflow-app-builder/SKILL.md +0 -290
  10. package/skills/qingflow-app-builder/agents/openai.yaml +0 -4
  11. package/skills/qingflow-app-builder/references/complete-system-development-guide.md +0 -59
  12. package/skills/qingflow-app-builder/references/create-app.md +0 -162
  13. package/skills/qingflow-app-builder/references/environments.md +0 -63
  14. package/skills/qingflow-app-builder/references/flow-actors-and-permissions.md +0 -123
  15. package/skills/qingflow-app-builder/references/gotchas.md +0 -113
  16. package/skills/qingflow-app-builder/references/match-rules.md +0 -129
  17. package/skills/qingflow-app-builder/references/public-surface-sync.md +0 -75
  18. package/skills/qingflow-app-builder/references/single-app-development-guide.md +0 -47
  19. package/skills/qingflow-app-builder/references/solution-playbooks.md +0 -62
  20. package/skills/qingflow-app-builder/references/tool-selection.md +0 -106
  21. package/skills/qingflow-app-builder/references/update-flow.md +0 -158
  22. package/skills/qingflow-app-builder/references/update-layout.md +0 -68
  23. package/skills/qingflow-app-builder/references/update-schema.md +0 -75
  24. package/skills/qingflow-app-builder/references/update-views.md +0 -286
  25. package/skills/qingflow-app-builder-code-integrations/SKILL.md +0 -139
  26. package/skills/qingflow-app-builder-code-integrations/agents/openai.yaml +0 -4
  27. package/skills/qingflow-app-builder-code-integrations/references/code-block.md +0 -66
  28. package/skills/qingflow-app-builder-code-integrations/references/q-linker.md +0 -77
@@ -1,139 +0,0 @@
1
- ---
2
- name: qingflow-app-builder-code-integrations
3
- description: Configure Qingflow code block and Q-Linker fields through the builder surface when the task involves input field insertion, alias parsing, target field binding, or troubleshooting broken code/q-linker form configurations. In Wingent Momo runtime, use the injected MCP session and recover auth/workspace only after a tool error.
4
- metadata:
5
- short-description: Configure Qingflow code blocks and Q-Linkers safely
6
- ---
7
-
8
- # Qingflow App Builder Code Integrations
9
-
10
- > **Skill 版本**:`qingflow-skills-2026.06.23.1`(入口文档版本;如需确认 CLI 包版本,使用 `qingflow --version` 或 `qingflow --json version`)。
11
-
12
- Use this skill when the user wants to build or repair:
13
- - `code_block` fields
14
- - `q_linker` fields
15
- - output alias parsing
16
- - target field binding
17
- - form configurations that depend on code block or Q-Linker relations
18
-
19
- Do not use this skill for MCP setup, generic field CRUD, or runtime execution debugging unless those are strictly supporting code block or Q-Linker configuration work.
20
-
21
- ## Core Rule
22
-
23
- Treat code blocks and Q-Linkers as **integration fields**, not ordinary fields.
24
-
25
- For both of them, the public builder request may look like one step, but the real backend form structure has multiple layers. Never invent a new backend meaning. Only compile into the backend structures that already exist.
26
-
27
- ## Mental Model
28
-
29
- ### Code block
30
-
31
- There are three conceptual layers:
32
-
33
- 1. Code block field itself
34
- 2. Parsed output aliases
35
- 3. Target field bindings
36
-
37
- Current builder support:
38
- - configure the code block field itself
39
- - configure input insertion into code content
40
- - configure alias parsing
41
-
42
- Important:
43
- - keep `qf_output = {...}` as a plain assignment
44
- - do not emit `const qf_output =` or `let qf_output =`
45
-
46
- ### Q-Linker
47
-
48
- There are two conceptual layers:
49
-
50
- 1. Q-Linker field itself via `remoteLookupConfig`
51
- 2. Target field bindings via relation-default + `questionRelations(relationType=Q_LINKER)`
52
-
53
- Current builder support:
54
- - one-step high-level config through `q_linker_binding`
55
- - internal compilation into existing backend payloads
56
-
57
- ## Operating Order
58
-
59
- For code block or Q-Linker work, use this order:
60
-
61
- 1. Resolve the app and read fields:
62
- - `app_resolve`
63
- - `app_get_fields`
64
- 2. Confirm the target field set already exists.
65
- 3. Apply schema updates with `app_schema_apply`.
66
- 4. Read fields again and verify:
67
- - field type
68
- - alias config
69
- - target field binding shape
70
- 5. For page-safety checks, use user-side schema or insert checks:
71
- - `record_insert_schema_get`
72
- - optional safe `record_insert`
73
-
74
- Do not treat raw apply success as enough. Always re-read the field config.
75
-
76
- ## Code Block Rules
77
-
78
- Read [references/code-block.md](references/code-block.md) before changing a code block field.
79
-
80
- Use builder high-level config only for:
81
- - input field insertion
82
- - code content
83
- - alias parsing
84
- - auto trigger
85
- - custom button text
86
-
87
- When binding outputs to target fields, do not guess payload shape from memory. Follow the current builder implementation and the readback shape.
88
-
89
- Hard rules:
90
- - target fields must already exist
91
- - keep target field types business-compatible
92
- - if a page starts hanging on “关联中”, inspect whether the target field default type or relation config was written incorrectly
93
-
94
- ## Q-Linker Rules
95
-
96
- Read [references/q-linker.md](references/q-linker.md) before changing a Q-Linker field.
97
-
98
- First-stage stable support is only:
99
- - custom mode
100
- - request config
101
- - alias parsing
102
- - target field binding
103
- - auto trigger / button text
104
-
105
- Do not generate:
106
- - template mode
107
- - openApp/light-wing branches
108
- - subtable table-match bindings
109
-
110
- Hard rules:
111
- - `outputs[*].target_field` is required
112
- - use only supported target field types
113
- - on rebinding, old target fields must be restored from relation-default to safe default type
114
- - `resultFormatPath` must preserve backend-required alias metadata
115
-
116
- ## Verification Checklist
117
-
118
- After each code block or Q-Linker change, verify all of these:
119
-
120
- - `app_get_fields` shows the intended field type
121
- - the high-level config is readable and stable
122
- - target fields still have valid types
123
- - insert schema can be opened
124
- - record insert does not get blocked by malformed integration config
125
-
126
- If the task explicitly includes runtime verification, keep it separate from configuration verification.
127
-
128
- ## Common Pitfalls
129
-
130
- - Writing code block code with `const qf_output =`
131
- - Treating a Q-Linker or code block binding as a plain field default
132
- - Forgetting to restore old target fields after unbinding
133
- - Using unsupported target field types
134
- - Assuming apply success means the form page can open
135
-
136
- ## References
137
-
138
- - Code block details: [references/code-block.md](references/code-block.md)
139
- - Q-Linker details: [references/q-linker.md](references/q-linker.md)
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "Qingflow Code Integrations"
3
- short_description: "Configure Qingflow code block and Q-Linker fields safely"
4
- default_prompt: "Use $qingflow-app-builder-code-integrations when configuring Qingflow code block or Q-Linker fields, especially when input insertion, alias parsing, target field binding, or page-safety verification matter."
@@ -1,66 +0,0 @@
1
- # Code Block Builder Notes
2
-
3
- ## What Builder Should Configure
4
-
5
- - code block field type
6
- - code content
7
- - inserted input fields inside code content
8
- - alias parsing
9
- - auto trigger
10
- - custom button text
11
-
12
- ## Stable Writing Rules
13
-
14
- - Always emit `qf_output = {...}`
15
- - Never emit `const qf_output = {...}`
16
- - Never emit `let qf_output = {...}`
17
-
18
- ## Useful CRM Pattern
19
-
20
- Inputs:
21
- - customer name
22
- - source
23
- - budget
24
- - timing
25
- - decision-maker flag
26
-
27
- Outputs:
28
- - score
29
- - level
30
- - priority
31
- - summary
32
- - next follow date
33
-
34
- ## Target Field Rules
35
-
36
- Required:
37
- - every `outputs[*].target_field` must point to an existing field
38
-
39
- Allowed target field types:
40
- - text
41
- - long text
42
- - number
43
- - amount
44
- - date
45
- - datetime
46
- - single select
47
- - multi select
48
- - boolean
49
-
50
- Do not bind code block outputs to:
51
- - q_linker
52
- - code_block
53
- - relation
54
- - subtable
55
- - attachment
56
- - member
57
- - department
58
- - address
59
-
60
- ## Safe Verification
61
-
62
- - `app_get_fields`
63
- - `record_insert_schema_get`
64
- - optional `record_code_block_run`
65
-
66
- Treat configuration verification and runtime verification as separate checks.
@@ -1,77 +0,0 @@
1
- # Q-Linker Builder Notes
2
-
3
- ## What Builder Should Configure
4
-
5
- - `remoteLookupConfig`
6
- - alias parsing
7
- - target field binding
8
- - auto trigger
9
- - custom button text
10
-
11
- ## Current Supported Scope
12
-
13
- - custom mode only
14
- - standard request fields
15
- - alias path parsing
16
- - target field binding to existing ordinary fields
17
-
18
- ## Recommended Public APIs For Samples
19
-
20
- ### Httpbin
21
-
22
- - URL: `https://httpbin.org/get`
23
- - Good for:
24
- - query echo
25
- - request URL echo
26
-
27
- Useful paths:
28
- - `$.args.keyword`
29
- - `$.url`
30
-
31
- ### Open-Meteo Geocoding
32
-
33
- - URL: `https://geocoding-api.open-meteo.com/v1/search`
34
- - Good for:
35
- - place normalization
36
- - country
37
- - lat/lng summary
38
-
39
- Useful paths:
40
- - `$.results[0].name`
41
- - `$.results[0].country`
42
- - `$.results[0].latitude`
43
- - `$.results[0].longitude`
44
-
45
- ## Target Field Rules
46
-
47
- Required:
48
- - every `outputs[*].target_field` must point to an existing field
49
-
50
- Prefer:
51
- - text
52
- - long text
53
- - number
54
- - amount
55
- - date
56
- - datetime
57
- - single select
58
- - multi select
59
- - boolean
60
-
61
- Avoid:
62
- - q_linker
63
- - code_block
64
- - relation
65
- - subtable
66
- - attachment
67
- - member
68
- - department
69
- - address
70
-
71
- ## Safe Verification
72
-
73
- - `app_get_fields`
74
- - `record_insert_schema_get`
75
- - `record_insert`
76
-
77
- This verifies that the configuration does not break the form page, even before runtime execution is tested.