@harperfast/template-react-ts-studio 1.11.3 → 1.11.5
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/.agents/skills/harper-best-practices/AGENTS.md +567 -490
- package/.agents/skills/harper-best-practices/rules/automatic-apis.md +46 -78
- package/.agents/skills/harper-best-practices/rules/defining-relationships.md +41 -63
- package/.agents/skills/harper-best-practices/rules/deploying-to-harper-fabric.md +59 -45
- package/.agents/skills/harper-best-practices/rules/load-env.md +24 -23
- package/.agents/skills/harper-best-practices/rules/programmatic-table-requests.md +62 -78
- package/.agents/skills/harper-best-practices/rules/querying-rest-apis.md +92 -65
- package/.agents/skills/harper-best-practices/rules/schema-design-tooling.md +53 -55
- package/.agents/skills/harper-best-practices/rules/v5-upgrade.md +98 -62
- package/.agents/skills/harper-best-practices/rules/vector-indexing.md +113 -42
- package/.agents/skills/harper-mcp/AGENTS.md +501 -0
- package/.agents/skills/harper-mcp/SKILL.md +91 -0
- package/.agents/skills/harper-mcp/rules/automatic-verb-tools.md +50 -0
- package/.agents/skills/harper-mcp/rules/connecting-clients.md +59 -0
- package/.agents/skills/harper-mcp/rules/custom-mcp-prompts.md +52 -0
- package/.agents/skills/harper-mcp/rules/custom-mcp-resources.md +64 -0
- package/.agents/skills/harper-mcp/rules/custom-mcp-tools.md +72 -0
- package/.agents/skills/harper-mcp/rules/durable-quotas.md +73 -0
- package/.agents/skills/harper-mcp/rules/enabling-mcp.md +63 -0
- package/.agents/skills/harper-mcp/rules/rate-limiting.md +62 -0
- package/.agents/skills/harper-mcp/rules/resources-surface.md +44 -0
- package/.agents/skills/harper-mcp/rules/security-posture.md +36 -0
- package/.agents/skills/harper-mcp/rules.manifest.yaml +203 -0
- package/agent/skills/harper-best-practices/AGENTS.md +567 -490
- package/agent/skills/harper-best-practices/rules/automatic-apis.md +46 -78
- package/agent/skills/harper-best-practices/rules/defining-relationships.md +41 -63
- package/agent/skills/harper-best-practices/rules/deploying-to-harper-fabric.md +59 -45
- package/agent/skills/harper-best-practices/rules/load-env.md +24 -23
- package/agent/skills/harper-best-practices/rules/programmatic-table-requests.md +62 -78
- package/agent/skills/harper-best-practices/rules/querying-rest-apis.md +92 -65
- package/agent/skills/harper-best-practices/rules/schema-design-tooling.md +53 -55
- package/agent/skills/harper-best-practices/rules/v5-upgrade.md +98 -62
- package/agent/skills/harper-best-practices/rules/vector-indexing.md +113 -42
- package/agent/skills/harper-mcp/AGENTS.md +501 -0
- package/agent/skills/harper-mcp/SKILL.md +83 -0
- package/agent/skills/harper-mcp/rules/automatic-verb-tools.md +50 -0
- package/agent/skills/harper-mcp/rules/connecting-clients.md +59 -0
- package/agent/skills/harper-mcp/rules/custom-mcp-prompts.md +52 -0
- package/agent/skills/harper-mcp/rules/custom-mcp-resources.md +64 -0
- package/agent/skills/harper-mcp/rules/custom-mcp-tools.md +72 -0
- package/agent/skills/harper-mcp/rules/durable-quotas.md +73 -0
- package/agent/skills/harper-mcp/rules/enabling-mcp.md +63 -0
- package/agent/skills/harper-mcp/rules/rate-limiting.md +62 -0
- package/agent/skills/harper-mcp/rules/resources-surface.md +44 -0
- package/agent/skills/harper-mcp/rules/security-posture.md +36 -0
- package/agent/skills/harper-mcp/rules.manifest.yaml +203 -0
- package/package.json +2 -2
- package/skills-lock.json +7 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Rules manifest for the harper-mcp skill.
|
|
2
|
+
#
|
|
3
|
+
# Declarative source of truth for rule taxonomy, sources, and generation mode.
|
|
4
|
+
#
|
|
5
|
+
# Four rules with a 1:1 mapping to canonical HarperFast/documentation pages are
|
|
6
|
+
# `mode: generate` (derived from reference/v5/mcp/* so the skill and the docs
|
|
7
|
+
# cannot drift): enabling-mcp, custom-mcp-tools, rate-limiting, durable-quotas.
|
|
8
|
+
#
|
|
9
|
+
# Three more rules are docs-mapped but held synthesized pending a source fix,
|
|
10
|
+
# each with its `sources`/`must_cover` recorded as comments to uncomment on flip:
|
|
11
|
+
# - automatic-verb-tools — its source's exportTypes-gating example is wrong on
|
|
12
|
+
# docs main (see the rule's note); flip once the doc is corrected.
|
|
13
|
+
# - resources-surface, custom-mcp-resources — pending documentation#567, which
|
|
14
|
+
# adds the `harper+rest://` scheme and the custom `mcpResources` section.
|
|
15
|
+
#
|
|
16
|
+
# The rest (connecting-clients' debugging guidance, custom-mcp-prompts — whose
|
|
17
|
+
# mcpPrompts feature is UNDOCUMENTED in reference/v5/mcp/, see documentation#575
|
|
18
|
+
# — and the security-posture checklist) are agent-oriented synthesis with no
|
|
19
|
+
# single docs source and stay synthesized.
|
|
20
|
+
|
|
21
|
+
rules:
|
|
22
|
+
# ===========================================================================
|
|
23
|
+
# Setup & Connection (priority 1 — HIGH)
|
|
24
|
+
# ===========================================================================
|
|
25
|
+
|
|
26
|
+
- rule: enabling-mcp
|
|
27
|
+
description: How to enable and configure Harper's MCP server profiles (application and operations).
|
|
28
|
+
category: setup
|
|
29
|
+
priority: 1
|
|
30
|
+
order: 1
|
|
31
|
+
mode: generate
|
|
32
|
+
sources:
|
|
33
|
+
- path: reference/v5/mcp/overview.md
|
|
34
|
+
role: primary
|
|
35
|
+
- path: reference/v5/mcp/configuration.md
|
|
36
|
+
role: supplemental
|
|
37
|
+
must_cover:
|
|
38
|
+
- '9926'
|
|
39
|
+
- '9925'
|
|
40
|
+
- presence
|
|
41
|
+
- 5.2.0+
|
|
42
|
+
cross_links:
|
|
43
|
+
- connecting-clients
|
|
44
|
+
- rate-limiting
|
|
45
|
+
|
|
46
|
+
- rule: connecting-clients
|
|
47
|
+
description: How MCP clients connect to Harper - the initialize handshake, session and protocol-version headers, and authentication.
|
|
48
|
+
category: setup
|
|
49
|
+
priority: 1
|
|
50
|
+
order: 2
|
|
51
|
+
mode: synthesized
|
|
52
|
+
|
|
53
|
+
# ===========================================================================
|
|
54
|
+
# Tools & Prompts (priority 2 — HIGH)
|
|
55
|
+
# ===========================================================================
|
|
56
|
+
|
|
57
|
+
- rule: automatic-verb-tools
|
|
58
|
+
description: How Harper auto-generates CRUD MCP tools from exported tables, with RBAC filtering and allow/deny/maxTools controls.
|
|
59
|
+
category: tools
|
|
60
|
+
priority: 2
|
|
61
|
+
order: 1
|
|
62
|
+
mode: synthesized
|
|
63
|
+
# Blocked from generate: the source's `### exportTypes gating` example shows
|
|
64
|
+
# `server.http(Resource, { exportTypes: { mcp: false } })`, but server.http
|
|
65
|
+
# (= httpServer in harper server/http.ts) never reads exportTypes — MCP
|
|
66
|
+
# gating is `server.resources.set(path, Resource, { mcp: false })`. Flip once
|
|
67
|
+
# the doc is corrected. This rule already carries the correct mechanism
|
|
68
|
+
# (skill commit 9ad155d1); generating from the buggy source would regress it.
|
|
69
|
+
# sources:
|
|
70
|
+
# - path: reference/v5/mcp/tools-and-resources.md
|
|
71
|
+
# section: 'Application profile — tool generation'
|
|
72
|
+
# role: primary
|
|
73
|
+
# must_cover:
|
|
74
|
+
# - tool names preserve Resource-path case (get_Widget)
|
|
75
|
+
# - tools/list is RBAC-filtered per user; calls enforce permissions
|
|
76
|
+
# - exportTypes.mcp gating via server.resources.set
|
|
77
|
+
cross_links:
|
|
78
|
+
- custom-mcp-tools
|
|
79
|
+
|
|
80
|
+
- rule: custom-mcp-tools
|
|
81
|
+
description: How to expose custom instance methods as MCP tools via static mcpTools, including the anonymous-exposure security model.
|
|
82
|
+
category: tools
|
|
83
|
+
priority: 2
|
|
84
|
+
order: 2
|
|
85
|
+
mode: generate
|
|
86
|
+
sources:
|
|
87
|
+
- path: reference/v5/mcp/tools-and-resources.md
|
|
88
|
+
section: 'Custom `mcpTools` opt-in'
|
|
89
|
+
role: primary
|
|
90
|
+
must_cover:
|
|
91
|
+
- mcpTools
|
|
92
|
+
- anonymous
|
|
93
|
+
- live-class
|
|
94
|
+
- context.user
|
|
95
|
+
cross_links:
|
|
96
|
+
- rate-limiting
|
|
97
|
+
- durable-quotas
|
|
98
|
+
|
|
99
|
+
- rule: custom-mcp-prompts
|
|
100
|
+
description: How to publish reusable prompt templates to MCP clients via static mcpPrompts.
|
|
101
|
+
category: tools
|
|
102
|
+
priority: 2
|
|
103
|
+
order: 3
|
|
104
|
+
mode: synthesized
|
|
105
|
+
# No canonical docs source exists for mcpPrompts yet (shipped 5.1.10,
|
|
106
|
+
# undocumented in reference/v5/mcp/, see documentation#575) — stays
|
|
107
|
+
# synthesized until that docs gap is filled; content grounded in the
|
|
108
|
+
# implementation.
|
|
109
|
+
|
|
110
|
+
# ===========================================================================
|
|
111
|
+
# Resources (priority 3 — MEDIUM)
|
|
112
|
+
# ===========================================================================
|
|
113
|
+
|
|
114
|
+
- rule: resources-surface
|
|
115
|
+
description: The MCP resources surface - harper:// metadata URIs, harper+rest:// table descriptors, templates, subscriptions, and list_changed notifications.
|
|
116
|
+
category: resources
|
|
117
|
+
priority: 3
|
|
118
|
+
order: 1
|
|
119
|
+
mode: synthesized
|
|
120
|
+
# Flip to generate once documentation#567 merges: it adds the
|
|
121
|
+
# `harper+rest://` descriptor scheme (currently only under `https://` on
|
|
122
|
+
# docs main) that this rule's must_cover requires.
|
|
123
|
+
# sources:
|
|
124
|
+
# - path: reference/v5/mcp/tools-and-resources.md
|
|
125
|
+
# section: 'Resources surface'
|
|
126
|
+
# role: primary
|
|
127
|
+
# - path: reference/v5/mcp/subscriptions.md
|
|
128
|
+
# role: supplemental
|
|
129
|
+
# must_cover:
|
|
130
|
+
# - the harper:// metadata URIs and which profile serves each
|
|
131
|
+
# - harper+rest:// descriptor scheme with http(s) back-compat
|
|
132
|
+
# - subscribe requires an open GET SSE stream
|
|
133
|
+
cross_links:
|
|
134
|
+
- custom-mcp-resources
|
|
135
|
+
|
|
136
|
+
- rule: custom-mcp-resources
|
|
137
|
+
description: How to serve custom content (docs pages, reports, binaries) as MCP resources via static mcpResources with URI templates and completions.
|
|
138
|
+
category: resources
|
|
139
|
+
priority: 3
|
|
140
|
+
order: 2
|
|
141
|
+
mode: synthesized
|
|
142
|
+
# Flip to generate once documentation#567 merges: the 'Custom `mcpResources`
|
|
143
|
+
# opt-in' section it adds does not yet exist on docs main, so sliceSection
|
|
144
|
+
# would fail.
|
|
145
|
+
# sources:
|
|
146
|
+
# - path: reference/v5/mcp/tools-and-resources.md
|
|
147
|
+
# section: 'Custom `mcpResources` opt-in'
|
|
148
|
+
# role: primary
|
|
149
|
+
# must_cover:
|
|
150
|
+
# - exactly one of uri/uriTemplate per entry; {name} vs {+name} semantics
|
|
151
|
+
# - encoded-separator rejection preserves the single-segment contract
|
|
152
|
+
# - reserved schemes are rejected at registration
|
|
153
|
+
# - anonymous sessions are served; gating is the read method's job
|
|
154
|
+
cross_links:
|
|
155
|
+
- resources-surface
|
|
156
|
+
- rate-limiting
|
|
157
|
+
|
|
158
|
+
# ===========================================================================
|
|
159
|
+
# Operations & Security (priority 4 — HIGH for public deployments)
|
|
160
|
+
# ===========================================================================
|
|
161
|
+
|
|
162
|
+
- rule: rate-limiting
|
|
163
|
+
description: MCP tools/call rate limiting - per-tool, per-session, and per-client-identity token buckets, and the identityHeader trust model.
|
|
164
|
+
category: security
|
|
165
|
+
priority: 4
|
|
166
|
+
order: 1
|
|
167
|
+
mode: generate
|
|
168
|
+
sources:
|
|
169
|
+
- path: reference/v5/mcp/configuration.md
|
|
170
|
+
section: '`mcp.<profile>.rateLimit.*`'
|
|
171
|
+
role: primary
|
|
172
|
+
must_cover:
|
|
173
|
+
- rate_limited
|
|
174
|
+
- perClientPerSecond
|
|
175
|
+
- identityHeader
|
|
176
|
+
- x-forwarded-for
|
|
177
|
+
cross_links:
|
|
178
|
+
- durable-quotas
|
|
179
|
+
|
|
180
|
+
- rule: durable-quotas
|
|
181
|
+
description: Operator-pluggable durable quotas for MCP tools/call via the server.setMcpQuotaHandler registration hook, with a race-safe counter pattern.
|
|
182
|
+
category: security
|
|
183
|
+
priority: 4
|
|
184
|
+
order: 2
|
|
185
|
+
mode: generate
|
|
186
|
+
sources:
|
|
187
|
+
- path: reference/v5/mcp/configuration.md
|
|
188
|
+
section: 'Durable quota handler'
|
|
189
|
+
role: primary
|
|
190
|
+
must_cover:
|
|
191
|
+
- setMcpQuotaHandler
|
|
192
|
+
- quota_exceeded
|
|
193
|
+
- Fail-closed
|
|
194
|
+
- read-modify-write
|
|
195
|
+
cross_links:
|
|
196
|
+
- rate-limiting
|
|
197
|
+
|
|
198
|
+
- rule: security-posture
|
|
199
|
+
description: The MCP security model - anonymous access, RBAC boundaries, origin validation, audit logging, and the hardening checklist for public instances.
|
|
200
|
+
category: security
|
|
201
|
+
priority: 4
|
|
202
|
+
order: 3
|
|
203
|
+
mode: synthesized
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@harperfast/template-react-ts-studio",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": "github:HarperFast/create-harper",
|
|
6
6
|
"scripts": {},
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@harperfast/schema-codegen": "^
|
|
8
|
+
"@harperfast/schema-codegen": "^2.0.0",
|
|
9
9
|
"@harperfast/vite": "^1.1.0",
|
|
10
10
|
"@vitejs/plugin-react": "^6.0.1",
|
|
11
11
|
"react": "^19.2.4",
|
package/skills-lock.json
CHANGED
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
"source": "harperfast/skills",
|
|
6
6
|
"sourceType": "github",
|
|
7
7
|
"skillPath": "harper-best-practices/SKILL.md",
|
|
8
|
-
"computedHash": "
|
|
8
|
+
"computedHash": "5a9eb10253b0c77d182917e2526ec0261c55d7eff1a55578a5cd53840f03e128"
|
|
9
|
+
},
|
|
10
|
+
"harper-mcp": {
|
|
11
|
+
"source": "harperfast/skills",
|
|
12
|
+
"sourceType": "github",
|
|
13
|
+
"skillPath": "harper-mcp/SKILL.md",
|
|
14
|
+
"computedHash": "a767336400a2ea7ec3bef3513d842a837ded5ef817165904a3c2ba7e7d14898a"
|
|
9
15
|
}
|
|
10
16
|
}
|
|
11
17
|
}
|