@forwardimpact/schema 0.6.0 → 0.7.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.
@@ -80,49 +80,66 @@ skills:
80
80
  focus: |
81
81
  Define cloud infrastructure requirements and constraints.
82
82
  Clarify availability, security, and cost expectations.
83
- activities:
83
+ readChecklist:
84
84
  - Document availability and reliability requirements
85
85
  - Identify security and compliance constraints
86
86
  - Specify cost budget and constraints
87
87
  - Define performance requirements (latency, throughput)
88
88
  - Mark ambiguities with [NEEDS CLARIFICATION]
89
- ready:
89
+ confirmChecklist:
90
90
  - Availability requirements are documented
91
91
  - Security requirements are specified
92
92
  - Cost constraints are defined
93
93
  - Performance requirements are clear
94
94
  plan:
95
95
  focus: Selecting and designing cloud architecture
96
- activities:
96
+ readChecklist:
97
97
  - Evaluate service options for the use case
98
98
  - Plan multi-AZ deployment for availability
99
99
  - Design IAM roles with least privilege
100
100
  - Estimate costs and plan resource sizing
101
- ready:
101
+ confirmChecklist:
102
102
  - Service selection matches requirements
103
103
  - Architecture designed for availability
104
104
  - Security approach documented
105
105
  - Cost estimate prepared
106
+ onboard:
107
+ focus: |
108
+ Set up cloud development environment. Configure CLI tools,
109
+ authenticate with cloud provider, and verify infrastructure
110
+ tooling works.
111
+ readChecklist:
112
+ - Install cloud CLI tools (AWS CLI, Terraform)
113
+ - Configure cloud credentials and authentication
114
+ - Initialize Terraform workspace and providers
115
+ - Verify cloud account access and permissions
116
+ - Set up environment variables for cloud configuration
117
+ confirmChecklist:
118
+ - Cloud CLI authenticated and working
119
+ - Terraform initialized with correct providers
120
+ - IAM permissions verified for planned resources
121
+ - Environment variables configured securely
122
+ - Infrastructure as code directory structure created
106
123
  code:
107
124
  focus: Implementing cloud infrastructure and deployments
108
- activities:
125
+ readChecklist:
109
126
  - Define infrastructure as code (Terraform/CloudFormation)
110
127
  - Configure security groups and network policies
111
128
  - Set up encryption at rest and in transit
112
129
  - Implement monitoring and alerting
113
- ready:
130
+ confirmChecklist:
114
131
  - Infrastructure defined as code
115
132
  - Security groups properly configured
116
133
  - Encryption enabled for data
117
134
  - Monitoring and alerting in place
118
135
  review:
119
136
  focus: Validating cloud configuration and security
120
- activities:
137
+ readChecklist:
121
138
  - Verify IAM follows least privilege
122
139
  - Check multi-AZ deployment
123
140
  - Validate cost controls are in place
124
141
  - Review security configuration
125
- ready:
142
+ confirmChecklist:
126
143
  - IAM permissions are minimal
127
144
  - Multi-AZ deployment confirmed
128
145
  - Cost controls established
@@ -131,12 +148,12 @@ skills:
131
148
  focus: |
132
149
  Deploy cloud infrastructure and verify production readiness.
133
150
  Confirm failover and monitoring work correctly.
134
- activities:
151
+ readChecklist:
135
152
  - Deploy infrastructure to production
136
153
  - Verify multi-AZ failover works
137
154
  - Confirm monitoring and alerting are operational
138
155
  - Validate cost tracking is in place
139
- ready:
156
+ confirmChecklist:
140
157
  - Infrastructure deployed successfully
141
158
  - Failover tested in production
142
159
  - Monitoring is operational
@@ -197,49 +214,67 @@ skills:
197
214
  focus: |
198
215
  Define code quality requirements and review criteria.
199
216
  Clarify standards and acceptance criteria for the change.
200
- activities:
217
+ readChecklist:
201
218
  - Identify applicable coding standards
202
219
  - Document quality acceptance criteria
203
220
  - Specify test coverage requirements
204
221
  - Define review depth based on risk level
205
222
  - Mark ambiguities with [NEEDS CLARIFICATION]
206
- ready:
223
+ confirmChecklist:
207
224
  - Coding standards are identified
208
225
  - Quality criteria are documented
209
226
  - Test requirements are specified
210
227
  - Review approach matches risk level
211
228
  plan:
212
229
  focus: Planning for quality before implementation
213
- activities:
230
+ readChecklist:
214
231
  - Review project coding conventions
215
232
  - Plan testing strategy for the feature
216
233
  - Identify edge cases to handle
217
234
  - Consider error handling approach
218
- ready:
235
+ confirmChecklist:
219
236
  - Coding conventions understood
220
237
  - Testing strategy defined
221
238
  - Edge cases identified
222
239
  - Error handling planned
240
+ onboard:
241
+ focus: |
242
+ Set up code quality tooling. Configure linters, formatters,
243
+ testing frameworks, and pre-commit hooks for the project.
244
+ readChecklist:
245
+ - Install linter (ESLint for JS/TS, Ruff for Python)
246
+ - Install formatter (Prettier for JS/TS, Ruff for Python)
247
+ - Configure linter rules matching project standards
248
+ - Set up pre-commit hooks (husky/lint-staged or pre-commit)
249
+ - Install testing framework (Node.js test runner, pytest)
250
+ - Configure editor settings for format-on-save
251
+ confirmChecklist:
252
+ - Linter runs without configuration errors
253
+ - Formatter produces consistent output
254
+ - Pre-commit hooks catch style violations
255
+ - Test runner discovers and runs existing tests
256
+ - Editor integration works (format-on-save, inline errors)
257
+ - CI pipeline includes quality checks
223
258
  code:
224
259
  focus: Writing and testing quality code
225
- activities:
260
+ readChecklist:
226
261
  - Follow project coding conventions
227
262
  - Write tests alongside implementation
228
263
  - Handle error conditions appropriately
229
264
  - Self-review before requesting review
230
- ready:
265
+ confirmChecklist:
231
266
  - Code follows project conventions
232
267
  - Changes are covered by tests
233
268
  - Error handling is appropriate
234
269
  - Self-review completed
235
270
  review:
236
271
  focus: Verifying code quality and correctness
237
- activities:
272
+ readChecklist:
238
273
  - Verify code does what it claims
239
274
  - Check test coverage is adequate
240
275
  - Evaluate maintainability
241
276
  - Ensure no code you don't understand
242
- ready:
277
+ confirmChecklist:
243
278
  - Code compiles and passes all tests
244
279
  - No obvious security vulnerabilities
245
280
  - No unnecessary complexity
@@ -248,12 +283,12 @@ skills:
248
283
  focus: |
249
284
  Merge and deploy reviewed code. Verify quality checks pass
250
285
  in production pipeline.
251
- activities:
286
+ readChecklist:
252
287
  - Merge approved changes
253
288
  - Verify CI pipeline passes
254
289
  - Monitor for issues after deployment
255
290
  - Document any lessons learned
256
- ready:
291
+ confirmChecklist:
257
292
  - Code merged successfully
258
293
  - CI pipeline passes all checks
259
294
  - No regressions detected
@@ -306,49 +341,66 @@ skills:
306
341
  focus: |
307
342
  Define data requirements and access patterns.
308
343
  Clarify schema requirements before designing.
309
- activities:
344
+ readChecklist:
310
345
  - Document data entities and relationships
311
346
  - Identify query patterns and access requirements
312
347
  - Specify consistency and performance requirements
313
348
  - Define data retention and compliance needs
314
349
  - Mark ambiguities with [NEEDS CLARIFICATION]
315
- ready:
350
+ confirmChecklist:
316
351
  - Data entities are documented
317
352
  - Query patterns are identified
318
353
  - Performance requirements are specified
319
354
  - Compliance needs are clear
320
355
  plan:
321
356
  focus: Understanding data requirements and designing schema
322
- activities:
357
+ readChecklist:
323
358
  - Gather data requirements and access patterns
324
359
  - Choose appropriate storage technology
325
360
  - Design normalized schema
326
361
  - Plan indexing strategy
327
- ready:
362
+ confirmChecklist:
328
363
  - Requirements understood
329
364
  - Storage technology selected
330
365
  - Schema design documented
331
366
  - Index strategy planned
367
+ onboard:
368
+ focus: |
369
+ Set up the database environment. Install ORM/query tools,
370
+ configure database connections, and verify migration
371
+ tooling works.
372
+ readChecklist:
373
+ - Install database client and ORM (Prisma, SQLAlchemy)
374
+ - Configure database connection in .env file
375
+ - Start local database (Supabase, PostgreSQL, etc.)
376
+ - Initialize migration tooling and verify it connects
377
+ - Create database user with appropriate privileges
378
+ confirmChecklist:
379
+ - Database running locally and accepting connections
380
+ - ORM/client configured and connected
381
+ - Migration tooling initialized and working
382
+ - Test data can be seeded and queried
383
+ - Database credentials stored securely in .env
332
384
  code:
333
385
  focus: Implementing schema and migrations
334
- activities:
386
+ readChecklist:
335
387
  - Create database migrations
336
388
  - Implement schema changes
337
389
  - Add indexes for query patterns
338
390
  - Write efficient queries
339
- ready:
391
+ confirmChecklist:
340
392
  - Schema implemented correctly
341
393
  - Indexes support query patterns
342
394
  - Migrations are reversible
343
395
  - Queries are optimized
344
396
  review:
345
397
  focus: Validating schema design and performance
346
- activities:
398
+ readChecklist:
347
399
  - Verify schema matches requirements
348
400
  - Check migration safety
349
401
  - Validate query performance
350
402
  - Review backward compatibility
351
- ready:
403
+ confirmChecklist:
352
404
  - Schema meets requirements
353
405
  - Migrations tested on production-like data
354
406
  - Query performance acceptable
@@ -357,12 +409,12 @@ skills:
357
409
  focus: |
358
410
  Deploy schema changes to production safely.
359
411
  Verify data integrity and query performance.
360
- activities:
412
+ readChecklist:
361
413
  - Run migrations in production
362
414
  - Verify data integrity after migration
363
415
  - Monitor query performance
364
416
  - Confirm rollback plan works
365
- ready:
417
+ confirmChecklist:
366
418
  - Migration completed successfully
367
419
  - Data integrity verified
368
420
  - Performance meets requirements
@@ -6,6 +6,10 @@ tag: "#AcmeCorp"
6
6
  description: |
7
7
  A unified framework for human and AI collaboration in engineering. Define roles, track skills and behaviours, build career paths, and generate AI coding agents—all from the same coherent foundation. The pathway aligns human capabilities with AI assistance, enabling productive teams in the AI era.
8
8
 
9
+ # Distribution configuration
10
+ distribution:
11
+ siteUrl: https://pathway.example.com
12
+
9
13
  # Entity definitions for pages and chapters
10
14
  entityDefinitions:
11
15
  driver:
@@ -28,7 +32,7 @@ entityDefinitions:
28
32
 
29
33
  discipline:
30
34
  title: Disciplines
31
- emojiIcon: "🔧"
35
+ emojiIcon: "🔬"
32
36
  description: |
33
37
  Engineering specializations that define T-shaped skill profiles. Each discipline specifies primary skills for deep expertise, secondary skills for supporting capabilities, and broad skills for general awareness. Disciplines answer the question: "What kind of engineer are you?"
34
38
 
@@ -23,8 +23,8 @@
23
23
  - Write specifications as markdown files under specs/[feature-name]/spec.md
24
24
  - Mark ambiguities with [NEEDS CLARIFICATION]; ask the user; do not guess
25
25
  - No technology choices, APIs, or code structure in specifications
26
- entryCriteria: []
27
- exitCriteria:
26
+ readChecklist: []
27
+ confirmChecklist:
28
28
  - spec.md exists with user stories and acceptance criteria
29
29
  - No unresolved [NEEDS CLARIFICATION] markers in spec.md
30
30
 
@@ -42,23 +42,59 @@
42
42
  - targetStage: plan
43
43
  label: Alternative Plan
44
44
  prompt: Create an alternative plan.md exploring a different approach.
45
- - targetStage: code
46
- label: Start Coding
47
- prompt: Implement the tasks defined in plan.md.
45
+ - targetStage: onboard
46
+ label: Set Up Environment
47
+ prompt: Prepare the development environment based on plan.md requirements.
48
48
  constraints:
49
49
  - Do not make code edits or execute commands
50
50
  - Every technology choice must trace back to a specific requirement
51
51
  - Write plans as markdown files under specs/[feature-name]/plan.md
52
52
  - Define contracts and data models before implementation details
53
53
  - Document rationale for architectural decisions
54
- entryCriteria:
54
+ readChecklist: []
55
+ confirmChecklist:
55
56
  - spec.md exists with user stories and acceptance criteria
56
57
  - No unresolved [NEEDS CLARIFICATION] markers in spec.md
57
- exitCriteria:
58
58
  - plan.md exists with technology choices and architecture
59
59
  - Contracts and data models defined where applicable
60
60
  - No unresolved [NEEDS CLARIFICATION] markers in plan.md
61
61
 
62
+ - id: onboard
63
+ name: Onboard
64
+ emojiIcon: "🔧"
65
+ summary:
66
+ Prepares the development environment with dependencies, tools, and credentials
67
+ description:
68
+ Your primary task is to prepare the development environment with all
69
+ prerequisites for coding. Install dependencies, configure tools, set up
70
+ credentials, and verify the environment is ready for implementation.
71
+ handoffs:
72
+ - targetStage: onboard
73
+ label: Retry Setup
74
+ prompt: Re-run the environment setup to fix remaining issues.
75
+ - targetStage: plan
76
+ label: Update Plan
77
+ prompt: Update plan.md because the environment setup revealed issues.
78
+ - targetStage: code
79
+ label: Start Coding
80
+ prompt: Implement the tasks defined in plan.md.
81
+ constraints:
82
+ - Do not implement feature code; focus only on environment setup
83
+ - Verify each tool and dependency works before moving on
84
+ - Document all environment configuration in a reproducible way
85
+ - Never hardcode secrets; use .env files or secret managers
86
+ - Track progress with the todo tool
87
+ readChecklist: []
88
+ confirmChecklist:
89
+ - plan.md exists with technology choices and architecture
90
+ - No unresolved [NEEDS CLARIFICATION] markers in plan.md
91
+ - All dependencies installed and versions verified
92
+ - Environment variables and secrets configured (.env files, tokens)
93
+ - Linter and formatter configured and passing on existing code
94
+ - Build and test commands run successfully
95
+ - Version control hooks and CI checks are operational
96
+ - Development server or runtime starts without errors
97
+
62
98
  - id: code
63
99
  name: Code
64
100
  emojiIcon: "💻"
@@ -74,11 +110,14 @@
74
110
  - Implement one task at a time, verify before moving on
75
111
  - Write tests alongside implementation
76
112
  - Track progress with the todo tool
77
- entryCriteria:
113
+ readChecklist: []
114
+ confirmChecklist:
78
115
  - spec.md exists with user stories and acceptance criteria
79
116
  - plan.md exists with technology choices and architecture
80
117
  - No unresolved [NEEDS CLARIFICATION] markers in plan.md
81
- exitCriteria:
118
+ - All dependencies installed and versions verified
119
+ - Linter and formatter configured and passing
120
+ - Build and test commands run successfully
82
121
  - Implementation complete according to plan.md
83
122
  - Tests written and passing
84
123
  - Self-review completed
@@ -108,11 +147,11 @@
108
147
  - Track findings and required changes with the todo tool
109
148
  - Run the application locally and verify changes work as expected
110
149
  - Test user-facing functionality against acceptance criteria
111
- entryCriteria:
150
+ readChecklist: []
151
+ confirmChecklist:
112
152
  - Implementation complete according to plan.md
113
153
  - Tests written and passing
114
154
  - Self-review completed
115
- exitCriteria:
116
155
  - Application runs locally without errors
117
156
  - Changes verified against acceptance criteria through manual testing
118
157
  - No blocking issues identified in review
@@ -135,11 +174,11 @@
135
174
  - Do not make code edits; hand off to code stage if fixes are needed
136
175
  - Verify all workflows complete successfully before considering deployment
137
176
  done
138
- entryCriteria:
177
+ readChecklist: []
178
+ confirmChecklist:
139
179
  - Application runs locally without errors
140
180
  - Changes verified against acceptance criteria through manual testing
141
181
  - No blocking issues identified in review
142
182
  - Review approved
143
- exitCriteria:
144
183
  - All triggered workflows are green
145
184
  - Deployment verified in target environment
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forwardimpact/schema",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Schema definitions and data loading for skills, behaviours, and role frameworks",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -186,6 +186,7 @@
186
186
  "properties": {
187
187
  "specify": { "$ref": "#/$defs/skillStage" },
188
188
  "plan": { "$ref": "#/$defs/skillStage" },
189
+ "onboard": { "$ref": "#/$defs/skillStage" },
189
190
  "code": { "$ref": "#/$defs/skillStage" },
190
191
  "review": { "$ref": "#/$defs/skillStage" },
191
192
  "deploy": { "$ref": "#/$defs/skillStage" }
@@ -197,20 +198,20 @@
197
198
  },
198
199
  "skillStage": {
199
200
  "type": "object",
200
- "required": ["focus", "activities", "ready"],
201
+ "required": ["focus", "readChecklist", "confirmChecklist"],
201
202
  "properties": {
202
203
  "focus": {
203
204
  "type": "string",
204
205
  "description": "Primary focus for this stage"
205
206
  },
206
- "activities": {
207
+ "readChecklist": {
207
208
  "type": "array",
208
- "description": "Key activities to perform in this stage",
209
+ "description": "Read-Then-Do Checklist: steps to follow in order during this stage",
209
210
  "items": { "type": "string" }
210
211
  },
211
- "ready": {
212
+ "confirmChecklist": {
212
213
  "type": "array",
213
- "description": "Criteria that indicate readiness to move to next stage",
214
+ "description": "Do-Then-Confirm Checklist: items to verify before moving to next stage",
214
215
  "items": { "type": "string" }
215
216
  }
216
217
  },
@@ -28,6 +28,19 @@
28
28
  "additionalProperties": {
29
29
  "$ref": "#/$defs/entityDefinition"
30
30
  }
31
+ },
32
+ "distribution": {
33
+ "type": "object",
34
+ "description": "Distribution configuration for publishing and installing the framework",
35
+ "properties": {
36
+ "siteUrl": {
37
+ "type": "string",
38
+ "format": "uri",
39
+ "description": "Base URL for the published static site (e.g. https://pathway.myorg.com)"
40
+ }
41
+ },
42
+ "required": ["siteUrl"],
43
+ "additionalProperties": false
31
44
  }
32
45
  },
33
46
  "additionalProperties": false,
@@ -14,7 +14,7 @@
14
14
  "properties": {
15
15
  "id": {
16
16
  "type": "string",
17
- "enum": ["specify", "plan", "code", "review", "deploy"],
17
+ "enum": ["specify", "plan", "onboard", "code", "review", "deploy"],
18
18
  "description": "Stage identifier"
19
19
  },
20
20
  "name": {
@@ -47,16 +47,16 @@
47
47
  "type": "string"
48
48
  }
49
49
  },
50
- "entryCriteria": {
50
+ "readChecklist": {
51
51
  "type": "array",
52
- "description": "Conditions that must be met before entering this stage",
52
+ "description": "Read-Then-Do Checklist: steps to follow in order during this stage",
53
53
  "items": {
54
54
  "type": "string"
55
55
  }
56
56
  },
57
- "exitCriteria": {
57
+ "confirmChecklist": {
58
58
  "type": "array",
59
- "description": "Conditions that must be met before leaving this stage",
59
+ "description": "Do-Then-Confirm Checklist: items to verify before handing off to next stage",
60
60
  "items": {
61
61
  "type": "string"
62
62
  }
@@ -70,7 +70,7 @@
70
70
  "properties": {
71
71
  "targetStage": {
72
72
  "type": "string",
73
- "enum": ["specify", "plan", "code", "review", "deploy"],
73
+ "enum": ["specify", "plan", "onboard", "code", "review", "deploy"],
74
74
  "description": "The stage to transition to"
75
75
  },
76
76
  "label": {
@@ -153,14 +153,14 @@ fit:focus a rdf:Property ;
153
153
  rdfs:comment "Primary focus for this stage"@en ;
154
154
  rdfs:range xsd:string .
155
155
 
156
- fit:activities a rdf:Property ;
157
- rdfs:label "activities"@en ;
158
- rdfs:comment "Key activities to perform in this stage"@en ;
156
+ fit:readChecklist a rdf:Property ;
157
+ rdfs:label "readChecklist"@en ;
158
+ rdfs:comment "Read-Then-Do Checklist: steps to follow in order during this stage"@en ;
159
159
  rdfs:range xsd:string .
160
160
 
161
- fit:ready a rdf:Property ;
162
- rdfs:label "ready"@en ;
163
- rdfs:comment "Criteria that indicate readiness to move to next stage"@en ;
161
+ fit:confirmChecklist a rdf:Property ;
162
+ rdfs:label "confirmChecklist"@en ;
163
+ rdfs:comment "Do-Then-Confirm Checklist: items to verify before moving to next stage"@en ;
164
164
  rdfs:range xsd:string .
165
165
 
166
166
  # =============================================================================
@@ -425,16 +425,16 @@ fit:SkillStageShape a sh:NodeShape ;
425
425
  sh:description "Primary focus for this stage" ;
426
426
  ] ;
427
427
  sh:property [
428
- sh:path fit:activities ;
428
+ sh:path fit:readChecklist ;
429
429
  sh:datatype xsd:string ;
430
430
  sh:minCount 1 ;
431
- sh:name "activities" ;
432
- sh:description "Key activities to perform in this stage" ;
431
+ sh:name "readChecklist" ;
432
+ sh:description "Read-Then-Do Checklist: steps to follow in order during this stage" ;
433
433
  ] ;
434
434
  sh:property [
435
- sh:path fit:ready ;
435
+ sh:path fit:confirmChecklist ;
436
436
  sh:datatype xsd:string ;
437
437
  sh:minCount 1 ;
438
- sh:name "ready" ;
439
- sh:description "Criteria that indicate readiness to move to next stage" ;
438
+ sh:name "confirmChecklist" ;
439
+ sh:description "Do-Then-Confirm Checklist: items to verify before moving to next stage" ;
440
440
  ] .
@@ -22,6 +22,10 @@ fit:EntityDefinition a rdfs:Class ;
22
22
  rdfs:label "Entity Definition"@en ;
23
23
  rdfs:comment "Definition for an entity type used in pages and chapters"@en .
24
24
 
25
+ fit:Distribution a rdfs:Class ;
26
+ rdfs:label "Distribution"@en ;
27
+ rdfs:comment "Distribution configuration for publishing and installing the framework"@en .
28
+
25
29
  # -----------------------------------------------------------------------------
26
30
  # Properties
27
31
  # -----------------------------------------------------------------------------
@@ -38,6 +42,18 @@ fit:entityDefinitions a rdf:Property ;
38
42
  rdfs:domain fit:Framework ;
39
43
  rdfs:range fit:EntityDefinition .
40
44
 
45
+ fit:distribution a rdf:Property ;
46
+ rdfs:label "distribution"@en ;
47
+ rdfs:comment "Distribution configuration for the framework"@en ;
48
+ rdfs:domain fit:Framework ;
49
+ rdfs:range fit:Distribution .
50
+
51
+ fit:siteUrl a rdf:Property ;
52
+ rdfs:label "siteUrl"@en ;
53
+ rdfs:comment "Base URL for the published static site"@en ;
54
+ rdfs:domain fit:Distribution ;
55
+ rdfs:range xsd:anyURI .
56
+
41
57
  fit:entityType a rdf:Property ;
42
58
  rdfs:label "entityType"@en ;
43
59
  rdfs:comment "The type of entity this definition describes"@en ;
@@ -88,6 +104,28 @@ fit:FrameworkShape a sh:NodeShape ;
88
104
  sh:node fit:EntityDefinitionShape ;
89
105
  sh:name "entityDefinitions" ;
90
106
  sh:description "Definitions for each entity type" ;
107
+ ] ;
108
+ sh:property [
109
+ sh:path fit:distribution ;
110
+ sh:node fit:DistributionShape ;
111
+ sh:maxCount 1 ;
112
+ sh:name "distribution" ;
113
+ sh:description "Distribution configuration for the framework" ;
114
+ ] .
115
+
116
+ # -----------------------------------------------------------------------------
117
+ # Distribution Shape
118
+ # -----------------------------------------------------------------------------
119
+
120
+ fit:DistributionShape a sh:NodeShape ;
121
+ sh:targetClass fit:Distribution ;
122
+ sh:property [
123
+ sh:path fit:siteUrl ;
124
+ sh:datatype xsd:anyURI ;
125
+ sh:minCount 1 ;
126
+ sh:maxCount 1 ;
127
+ sh:name "siteUrl" ;
128
+ sh:description "Base URL for the published static site" ;
91
129
  ] .
92
130
 
93
131
  # -----------------------------------------------------------------------------