@harperfast/template-react-studio 1.6.2 → 1.6.4
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 +1428 -303
- package/.agents/skills/harper-best-practices/SKILL.md +24 -20
- package/.agents/skills/harper-best-practices/rules/adding-tables-with-schemas.md +4 -2
- package/.agents/skills/harper-best-practices/rules/automatic-apis.md +144 -16
- package/.agents/skills/harper-best-practices/rules/caching.md +134 -21
- package/.agents/skills/harper-best-practices/rules/checking-authentication.md +139 -148
- package/.agents/skills/harper-best-practices/rules/creating-a-fabric-account-and-cluster.md +2 -0
- package/.agents/skills/harper-best-practices/rules/creating-harper-apps.md +2 -0
- package/.agents/skills/harper-best-practices/rules/custom-resources.md +5 -3
- package/.agents/skills/harper-best-practices/rules/defining-relationships.md +2 -0
- package/.agents/skills/harper-best-practices/rules/deploying-to-harper-fabric.md +97 -77
- package/.agents/skills/harper-best-practices/rules/extending-tables.md +3 -1
- package/.agents/skills/harper-best-practices/rules/handling-binary-data.md +2 -0
- package/.agents/skills/harper-best-practices/rules/logging.md +154 -77
- package/.agents/skills/harper-best-practices/rules/programmatic-table-requests.md +91 -0
- package/.agents/skills/harper-best-practices/rules/querying-rest-apis.md +190 -15
- package/.agents/skills/harper-best-practices/rules/real-time-apps.md +80 -21
- package/.agents/skills/harper-best-practices/rules/schema-design-tooling.md +4 -2
- package/.agents/skills/harper-best-practices/rules/serving-web-content.md +3 -2
- package/.agents/skills/harper-best-practices/rules/typescript-type-stripping.md +3 -1
- package/.agents/skills/harper-best-practices/rules/using-blob-datatype.md +3 -1
- package/.agents/skills/harper-best-practices/rules/vector-indexing.md +85 -120
- package/.agents/skills/harper-best-practices/rules.manifest.yaml +258 -0
- package/package.json +1 -1
- package/skills-lock.json +1 -1
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# Rules manifest for the harper-best-practices skill.
|
|
2
|
+
#
|
|
3
|
+
# Declarative source of truth for rule taxonomy, sources, and generation mode.
|
|
4
|
+
# Owned by humans; the generator reads this file and writes derived artifacts
|
|
5
|
+
# (rule bodies, AGENTS.md). See docs/plans/docs-driven-skills.md for the
|
|
6
|
+
# full schema definition and Manifest ↔ frontmatter reconciliation semantics.
|
|
7
|
+
#
|
|
8
|
+
# Phase 2 flipped vector-indexing to mode: generate.
|
|
9
|
+
# Phase 3 flips 7 obvious 1:1 rules to mode: generate (automatic-apis,
|
|
10
|
+
# querying-rest-apis, real-time-apps, checking-authentication, logging,
|
|
11
|
+
# deploying-to-harper-fabric, caching). All others remain synthesized.
|
|
12
|
+
|
|
13
|
+
rules:
|
|
14
|
+
# ===========================================================================
|
|
15
|
+
# Schema & Data Design (priority 1 — HIGH)
|
|
16
|
+
# ===========================================================================
|
|
17
|
+
|
|
18
|
+
- rule: adding-tables-with-schemas
|
|
19
|
+
description: Guidelines for adding tables to a Harper database using GraphQL schemas.
|
|
20
|
+
category: schema
|
|
21
|
+
priority: 1
|
|
22
|
+
order: 1
|
|
23
|
+
mode: synthesized
|
|
24
|
+
|
|
25
|
+
- rule: schema-design-tooling
|
|
26
|
+
description: Best practices for Harper schema design, including core directives and GraphQL tooling configuration.
|
|
27
|
+
category: schema
|
|
28
|
+
priority: 1
|
|
29
|
+
order: 2
|
|
30
|
+
mode: synthesized
|
|
31
|
+
|
|
32
|
+
- rule: defining-relationships
|
|
33
|
+
description: How to define and use relationships between tables in Harper using GraphQL.
|
|
34
|
+
category: schema
|
|
35
|
+
priority: 1
|
|
36
|
+
order: 3
|
|
37
|
+
mode: synthesized
|
|
38
|
+
|
|
39
|
+
- rule: vector-indexing
|
|
40
|
+
description: How to enable and query vector indexes for similarity search in Harper.
|
|
41
|
+
category: schema
|
|
42
|
+
priority: 1
|
|
43
|
+
order: 4
|
|
44
|
+
mode: generate
|
|
45
|
+
sources:
|
|
46
|
+
- path: reference/v5/database/schema.md
|
|
47
|
+
section: 'Vector Indexing'
|
|
48
|
+
role: primary
|
|
49
|
+
must_cover:
|
|
50
|
+
- '@indexed(type: "HNSW")'
|
|
51
|
+
- 'sort'
|
|
52
|
+
- 'target'
|
|
53
|
+
- 'cosine'
|
|
54
|
+
- 'efConstruction'
|
|
55
|
+
cross_links:
|
|
56
|
+
- adding-tables-with-schemas
|
|
57
|
+
|
|
58
|
+
- rule: using-blob-datatype
|
|
59
|
+
description: How to use the Blob data type for efficient binary storage in Harper.
|
|
60
|
+
category: schema
|
|
61
|
+
priority: 1
|
|
62
|
+
order: 5
|
|
63
|
+
mode: synthesized
|
|
64
|
+
|
|
65
|
+
- rule: handling-binary-data
|
|
66
|
+
description: How to store and serve binary data like images or audio in Harper.
|
|
67
|
+
category: schema
|
|
68
|
+
priority: 1
|
|
69
|
+
order: 6
|
|
70
|
+
mode: synthesized
|
|
71
|
+
|
|
72
|
+
# ===========================================================================
|
|
73
|
+
# API & Communication (priority 2 — HIGH)
|
|
74
|
+
# ===========================================================================
|
|
75
|
+
|
|
76
|
+
- rule: automatic-apis
|
|
77
|
+
description: How to use Harper's automatically generated REST and WebSocket APIs.
|
|
78
|
+
category: api
|
|
79
|
+
priority: 2
|
|
80
|
+
order: 1
|
|
81
|
+
mode: generate
|
|
82
|
+
sources:
|
|
83
|
+
- path: reference/v5/rest/overview.md
|
|
84
|
+
role: primary
|
|
85
|
+
- path: reference/v5/rest/websockets.md
|
|
86
|
+
role: supplemental
|
|
87
|
+
must_cover:
|
|
88
|
+
- 'rest: true'
|
|
89
|
+
- '@export'
|
|
90
|
+
- 'WebSocket'
|
|
91
|
+
cross_links:
|
|
92
|
+
- querying-rest-apis
|
|
93
|
+
- real-time-apps
|
|
94
|
+
|
|
95
|
+
- rule: querying-rest-apis
|
|
96
|
+
description: How to use query parameters to filter, sort, and paginate Harper REST APIs.
|
|
97
|
+
category: api
|
|
98
|
+
priority: 2
|
|
99
|
+
order: 2
|
|
100
|
+
mode: generate
|
|
101
|
+
sources:
|
|
102
|
+
- path: reference/v5/rest/querying.md
|
|
103
|
+
role: primary
|
|
104
|
+
must_cover:
|
|
105
|
+
- '=gt='
|
|
106
|
+
- '=lt='
|
|
107
|
+
- 'select('
|
|
108
|
+
- 'sort('
|
|
109
|
+
- 'limit('
|
|
110
|
+
cross_links:
|
|
111
|
+
- automatic-apis
|
|
112
|
+
|
|
113
|
+
- rule: real-time-apps
|
|
114
|
+
description: How to build real-time features in Harper using WebSockets and Pub/Sub.
|
|
115
|
+
category: api
|
|
116
|
+
priority: 2
|
|
117
|
+
order: 3
|
|
118
|
+
mode: generate
|
|
119
|
+
sources:
|
|
120
|
+
- path: reference/v5/rest/websockets.md
|
|
121
|
+
role: primary
|
|
122
|
+
must_cover:
|
|
123
|
+
- 'WebSocket'
|
|
124
|
+
- 'connect('
|
|
125
|
+
cross_links:
|
|
126
|
+
- automatic-apis
|
|
127
|
+
|
|
128
|
+
- rule: checking-authentication
|
|
129
|
+
description: How to handle user authentication and sessions in Harper Resources.
|
|
130
|
+
category: api
|
|
131
|
+
priority: 2
|
|
132
|
+
order: 4
|
|
133
|
+
mode: generate
|
|
134
|
+
sources:
|
|
135
|
+
- path: reference/v5/resources/resource-api.md
|
|
136
|
+
section: '`getCurrentUser(): User | undefined`'
|
|
137
|
+
role: primary
|
|
138
|
+
- path: reference/v5/resources/resource-api.md
|
|
139
|
+
section: 'Session and Login from a Resource'
|
|
140
|
+
role: primary
|
|
141
|
+
- path: reference/v5/security/jwt-authentication.md
|
|
142
|
+
role: supplemental
|
|
143
|
+
must_cover:
|
|
144
|
+
- 'getCurrentUser()'
|
|
145
|
+
- 'getContext()'
|
|
146
|
+
- 'context.login'
|
|
147
|
+
- 'enableSessions'
|
|
148
|
+
cross_links:
|
|
149
|
+
- custom-resources
|
|
150
|
+
|
|
151
|
+
# ===========================================================================
|
|
152
|
+
# Logic & Extension (priority 3 — MEDIUM)
|
|
153
|
+
# ===========================================================================
|
|
154
|
+
|
|
155
|
+
- rule: custom-resources
|
|
156
|
+
description: How to define custom REST endpoints with JavaScript or TypeScript in Harper.
|
|
157
|
+
category: logic
|
|
158
|
+
priority: 3
|
|
159
|
+
order: 1
|
|
160
|
+
mode: synthesized
|
|
161
|
+
|
|
162
|
+
- rule: extending-tables
|
|
163
|
+
description: How to add custom logic to automatically generated table resources in Harper.
|
|
164
|
+
category: logic
|
|
165
|
+
priority: 3
|
|
166
|
+
order: 2
|
|
167
|
+
mode: synthesized
|
|
168
|
+
|
|
169
|
+
- rule: programmatic-table-requests
|
|
170
|
+
description: How to interact with Harper tables programmatically using the `tables` object.
|
|
171
|
+
category: logic
|
|
172
|
+
priority: 3
|
|
173
|
+
order: 3
|
|
174
|
+
mode: synthesized
|
|
175
|
+
|
|
176
|
+
- rule: typescript-type-stripping
|
|
177
|
+
description: How to run TypeScript files directly in Harper without a build step.
|
|
178
|
+
category: logic
|
|
179
|
+
priority: 3
|
|
180
|
+
order: 4
|
|
181
|
+
mode: synthesized
|
|
182
|
+
|
|
183
|
+
- rule: caching
|
|
184
|
+
description: How to implement integrated data caching in Harper from external sources.
|
|
185
|
+
category: logic
|
|
186
|
+
priority: 3
|
|
187
|
+
order: 5
|
|
188
|
+
mode: generate
|
|
189
|
+
sources:
|
|
190
|
+
- path: learn/developers/caching-with-harper.md
|
|
191
|
+
role: primary
|
|
192
|
+
must_cover:
|
|
193
|
+
- 'expiration'
|
|
194
|
+
- 'sourcedFrom'
|
|
195
|
+
- '@table'
|
|
196
|
+
cross_links:
|
|
197
|
+
- custom-resources
|
|
198
|
+
- automatic-apis
|
|
199
|
+
|
|
200
|
+
# ===========================================================================
|
|
201
|
+
# Infrastructure & Ops (priority 4 — MEDIUM)
|
|
202
|
+
# ===========================================================================
|
|
203
|
+
|
|
204
|
+
- rule: deploying-to-harper-fabric
|
|
205
|
+
description: How to deploy a Harper application to the Harper Fabric cloud.
|
|
206
|
+
category: ops
|
|
207
|
+
priority: 4
|
|
208
|
+
order: 1
|
|
209
|
+
mode: generate
|
|
210
|
+
sources:
|
|
211
|
+
- path: reference/v5/components/applications.md
|
|
212
|
+
section: 'Remote Management'
|
|
213
|
+
role: primary
|
|
214
|
+
- path: fabric/cluster-creation-management.md
|
|
215
|
+
section: 'Connecting the Harper CLI to a Cluster'
|
|
216
|
+
role: supplemental
|
|
217
|
+
must_cover:
|
|
218
|
+
- 'harper deploy'
|
|
219
|
+
- 'harper login'
|
|
220
|
+
cross_links:
|
|
221
|
+
- creating-a-fabric-account-and-cluster
|
|
222
|
+
|
|
223
|
+
- rule: creating-a-fabric-account-and-cluster
|
|
224
|
+
description: How to create a Harper Fabric account, organization, and cluster.
|
|
225
|
+
category: ops
|
|
226
|
+
priority: 4
|
|
227
|
+
order: 2
|
|
228
|
+
mode: synthesized
|
|
229
|
+
|
|
230
|
+
- rule: creating-harper-apps
|
|
231
|
+
description: How to initialize a new Harper application using the CLI.
|
|
232
|
+
category: ops
|
|
233
|
+
priority: 4
|
|
234
|
+
order: 3
|
|
235
|
+
mode: synthesized
|
|
236
|
+
|
|
237
|
+
- rule: serving-web-content
|
|
238
|
+
description: How to serve static files and integrated Vite/React applications in Harper.
|
|
239
|
+
category: ops
|
|
240
|
+
priority: 4
|
|
241
|
+
order: 4
|
|
242
|
+
mode: synthesized
|
|
243
|
+
|
|
244
|
+
- rule: logging
|
|
245
|
+
description: Best practices for logging in Harper, including console capture, the granular logger interface, and programmatic log retrieval.
|
|
246
|
+
category: ops
|
|
247
|
+
priority: 4
|
|
248
|
+
order: 5
|
|
249
|
+
mode: generate
|
|
250
|
+
sources:
|
|
251
|
+
- path: reference/v5/logging/overview.md
|
|
252
|
+
role: primary
|
|
253
|
+
- path: reference/v5/logging/api.md
|
|
254
|
+
role: primary
|
|
255
|
+
must_cover:
|
|
256
|
+
- 'console.log'
|
|
257
|
+
- 'logger'
|
|
258
|
+
- 'withTag('
|
package/package.json
CHANGED
package/skills-lock.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"source": "harperfast/skills",
|
|
6
6
|
"sourceType": "github",
|
|
7
7
|
"skillPath": "harper-best-practices/SKILL.md",
|
|
8
|
-
"computedHash": "
|
|
8
|
+
"computedHash": "ec4a4a4e9f20599d3204e5d34cdebb0b1e6b78e89fdcb2542e9e15d6e0e3ae47"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
}
|