structured-context 0.10.0 → 0.12.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.
- package/README.md +85 -25
- package/dist/api.d.ts +25 -5
- package/dist/api.js +22 -2
- package/dist/commands/diagram.d.ts +1 -0
- package/dist/commands/diagram.js +7 -1
- package/dist/commands/dump.d.ts +15 -2
- package/dist/commands/dump.js +18 -4
- package/dist/commands/miro-sync.d.ts +3 -0
- package/dist/commands/miro-sync.js +8 -0
- package/dist/commands/render.d.ts +4 -0
- package/dist/commands/render.js +64 -9
- package/dist/commands/schemas.d.ts +2 -2
- package/dist/commands/schemas.js +117 -24
- package/dist/commands/show.d.ts +1 -0
- package/dist/commands/show.js +7 -1
- package/dist/commands/spaces.d.ts +3 -1
- package/dist/commands/spaces.js +11 -4
- package/dist/commands/validate-file.js +20 -5
- package/dist/commands/validate.js +54 -21
- package/dist/config.d.ts +26 -13
- package/dist/config.js +104 -31
- package/dist/filter/augment-nodes.d.ts +3 -1
- package/dist/filter/augment-nodes.js +12 -7
- package/dist/filter/filter-nodes.js +1 -1
- package/dist/index.js +51 -35
- package/dist/load-space-graph.d.ts +42 -0
- package/dist/load-space-graph.js +53 -0
- package/dist/plugins/index.js +3 -1
- package/dist/plugins/loader.js +4 -4
- package/dist/plugins/markdown/extract-content-links.d.ts +23 -0
- package/dist/plugins/markdown/extract-content-links.js +123 -0
- package/dist/plugins/markdown/index.js +5 -5
- package/dist/plugins/markdown/parse-embedded.d.ts +6 -0
- package/dist/plugins/markdown/parse-embedded.js +50 -7
- package/dist/plugins/markdown/read-space.js +41 -5
- package/dist/plugins/markdown/render-directory.d.ts +11 -0
- package/dist/plugins/markdown/render-directory.js +130 -0
- package/dist/plugins/mermaid/index.d.ts +2 -0
- package/dist/plugins/mermaid/index.js +14 -0
- package/dist/plugins/{markdown → mermaid}/render-mermaid.js +17 -15
- package/dist/{integrations → plugins}/miro/cache.d.ts +1 -1
- package/dist/plugins/miro/index.d.ts +2 -0
- package/dist/plugins/miro/index.js +27 -0
- package/dist/{integrations → plugins}/miro/layout.d.ts +2 -2
- package/dist/{integrations → plugins}/miro/layout.js +3 -16
- package/dist/{integrations → plugins}/miro/styles.d.ts +2 -2
- package/dist/plugins/miro/sync.d.ts +7 -0
- package/dist/{integrations → plugins}/miro/sync.js +22 -39
- package/dist/plugins/util.d.ts +48 -1
- package/dist/plugins/util.js +143 -0
- package/dist/read/resolve-graph-edges.d.ts +1 -1
- package/dist/read/resolve-graph-edges.js +78 -27
- package/dist/read/wikilink-utils.d.ts +17 -0
- package/dist/read/wikilink-utils.js +40 -0
- package/dist/render/render.d.ts +4 -1
- package/dist/render/render.js +20 -16
- package/dist/schema/evaluate-rule.js +1 -0
- package/dist/schema/meta-schemas.d.ts +13 -0
- package/dist/schema/meta-schemas.js +50 -0
- package/dist/schema/metadata-contract.d.ts +343 -187
- package/dist/schema/metadata-contract.js +68 -30
- package/dist/schema/schema.d.ts +17 -9
- package/dist/schema/schema.js +283 -200
- package/dist/schema/validate-graph.d.ts +2 -1
- package/dist/schema/validate-graph.js +40 -23
- package/dist/schema/validate-rules.d.ts +5 -1
- package/dist/schema/validate-rules.js +20 -1
- package/dist/schemas/_knowledge_wiki.json +21 -21
- package/dist/schemas/_ost_strict.json +2 -2
- package/dist/schemas/_sctx_base.json +2 -2
- package/dist/schemas/_strategy_general.json +38 -38
- package/dist/schemas/generated/0.12.0/_structured_context_schema_meta.json +229 -0
- package/dist/schemas/generated/latest/_structured_context_schema_meta.json +229 -0
- package/dist/schemas/knowledge_wiki.json +10 -9
- package/dist/schemas/strategy_general.json +15 -14
- package/dist/schemas/strict_ost.json +17 -16
- package/dist/space-context.d.ts +27 -0
- package/dist/space-context.js +46 -0
- package/dist/space-graph.d.ts +9 -7
- package/dist/space-graph.js +7 -5
- package/dist/testing.d.ts +33 -0
- package/dist/testing.js +72 -0
- package/dist/types.d.ts +101 -8
- package/dist/validate.d.ts +15 -3
- package/dist/validate.js +55 -20
- package/docs/concepts.md +37 -4
- package/docs/config.md +10 -0
- package/docs/rules.md +49 -22
- package/docs/schemas.md +110 -35
- package/package.json +13 -8
- package/schemas/_knowledge_wiki.json +21 -21
- package/schemas/_ost_strict.json +2 -2
- package/schemas/_sctx_base.json +2 -2
- package/schemas/_strategy_general.json +38 -38
- package/schemas/generated/0.12.0/_structured_context_schema_meta.json +229 -0
- package/schemas/generated/latest/_structured_context_schema_meta.json +229 -0
- package/schemas/knowledge_wiki.json +10 -9
- package/schemas/strategy_general.json +15 -14
- package/schemas/strict_ost.json +17 -16
- package/dist/integrations/miro/sync.d.ts +0 -8
- package/dist/schemas/generated/_structured_context_schema_meta.json +0 -191
- package/schemas/generated/_structured_context_schema_meta.json +0 -191
- /package/dist/plugins/{markdown → mermaid}/render-mermaid.d.ts +0 -0
- /package/dist/{integrations → plugins}/miro/cache.js +0 -0
- /package/dist/{integrations → plugins}/miro/client.d.ts +0 -0
- /package/dist/{integrations → plugins}/miro/client.js +0 -0
- /package/dist/{integrations → plugins}/miro/styles.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/_structured_context_schema_meta.json",
|
|
3
|
-
"$id": "sctx://_knowledge_wiki",
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/latest/_structured_context_schema_meta.json",
|
|
3
|
+
"$id": "sctx://core/_knowledge_wiki",
|
|
4
4
|
// Shared entity definitions for knowledge wiki schemas.
|
|
5
5
|
// Provides aliases, relationships, rules, and entity type $defs.
|
|
6
6
|
// This partial has no hierarchy — wiki entities are flat with no required parent links.
|
|
@@ -65,18 +65,18 @@
|
|
|
65
65
|
"source": {
|
|
66
66
|
"type": "object",
|
|
67
67
|
"description": "A processed summary of a raw source (article, paper, book, video, thread, podcast, etc.). Captures key information from the source in structured form with provenance.",
|
|
68
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
68
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
69
69
|
"properties": {
|
|
70
70
|
"type": { "const": "source" },
|
|
71
71
|
"summary": {
|
|
72
|
-
"$ref": "sctx://_sctx_base#/$defs/summary"
|
|
72
|
+
"$ref": "sctx://core/_sctx_base#/$defs/summary"
|
|
73
73
|
},
|
|
74
74
|
"url": {
|
|
75
75
|
"type": "string",
|
|
76
76
|
"description": "URL of the original source"
|
|
77
77
|
},
|
|
78
78
|
"local_copy": {
|
|
79
|
-
"$ref": "sctx://_sctx_base#/$defs/wikilink",
|
|
79
|
+
"$ref": "sctx://core/_sctx_base#/$defs/wikilink",
|
|
80
80
|
"description": "Wikilink to a local copy of the source (e.g. a saved PDF or clipped note)"
|
|
81
81
|
},
|
|
82
82
|
"author": {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
},
|
|
99
99
|
"sources": {
|
|
100
100
|
"type": "array",
|
|
101
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
101
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
102
102
|
"description": "Wikilinks to other source pages that this one references or extends"
|
|
103
103
|
}
|
|
104
104
|
},
|
|
@@ -117,20 +117,20 @@
|
|
|
117
117
|
"concept": {
|
|
118
118
|
"type": "object",
|
|
119
119
|
"description": "A concept page — defines and frames a specific idea, mechanism, or domain term. May draw from multiple sources. The building blocks of the wiki's knowledge graph.",
|
|
120
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
120
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
121
121
|
"properties": {
|
|
122
122
|
"type": { "const": "concept" },
|
|
123
123
|
"summary": {
|
|
124
|
-
"$ref": "sctx://_sctx_base#/$defs/summary"
|
|
124
|
+
"$ref": "sctx://core/_sctx_base#/$defs/summary"
|
|
125
125
|
},
|
|
126
126
|
"sources": {
|
|
127
127
|
"type": "array",
|
|
128
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
128
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
129
129
|
"description": "Wikilinks to source pages that contributed to this concept"
|
|
130
130
|
},
|
|
131
131
|
"related": {
|
|
132
132
|
"type": "array",
|
|
133
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
133
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
134
134
|
"description": "Wikilinks to related concept or synthesis pages"
|
|
135
135
|
}
|
|
136
136
|
},
|
|
@@ -147,20 +147,20 @@
|
|
|
147
147
|
"entity": {
|
|
148
148
|
"type": "object",
|
|
149
149
|
"description": "A concrete entity — a person, organisation, product, model, or other named thing. The building blocks of the wiki's knowledge graph alongside concepts. Entities are distinct from concepts: a concept frames an idea or mechanism; an entity is a specific, identifiable thing in the world.",
|
|
150
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
150
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
151
151
|
"properties": {
|
|
152
152
|
"type": { "const": "entity" },
|
|
153
153
|
"summary": {
|
|
154
|
-
"$ref": "sctx://_sctx_base#/$defs/summary"
|
|
154
|
+
"$ref": "sctx://core/_sctx_base#/$defs/summary"
|
|
155
155
|
},
|
|
156
156
|
"sources": {
|
|
157
157
|
"type": "array",
|
|
158
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
158
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
159
159
|
"description": "Wikilinks to source pages that contributed to this entity page"
|
|
160
160
|
},
|
|
161
161
|
"related": {
|
|
162
162
|
"type": "array",
|
|
163
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
163
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
164
164
|
"description": "Wikilinks to related entity, concept, or synthesis pages"
|
|
165
165
|
}
|
|
166
166
|
},
|
|
@@ -177,20 +177,20 @@
|
|
|
177
177
|
"synthesis": {
|
|
178
178
|
"type": "object",
|
|
179
179
|
"description": "A synthesis page — connects multiple concepts and sources into a coherent model, framework, or thesis. The highest-value pages in a knowledge wiki. Must reference contributing sources.",
|
|
180
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
180
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
181
181
|
"properties": {
|
|
182
182
|
"type": { "const": "synthesis" },
|
|
183
183
|
"summary": {
|
|
184
|
-
"$ref": "sctx://_sctx_base#/$defs/summary"
|
|
184
|
+
"$ref": "sctx://core/_sctx_base#/$defs/summary"
|
|
185
185
|
},
|
|
186
186
|
"sources": {
|
|
187
187
|
"type": "array",
|
|
188
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
188
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
189
189
|
"description": "Wikilinks to source pages this synthesis draws from"
|
|
190
190
|
},
|
|
191
191
|
"concepts": {
|
|
192
192
|
"type": "array",
|
|
193
|
-
"items": { "$ref": "sctx://_sctx_base#/$defs/wikilink" },
|
|
193
|
+
"items": { "$ref": "sctx://core/_sctx_base#/$defs/wikilink" },
|
|
194
194
|
"description": "Wikilinks to concept pages this synthesis connects"
|
|
195
195
|
}
|
|
196
196
|
},
|
|
@@ -207,8 +207,8 @@
|
|
|
207
207
|
},
|
|
208
208
|
"note": {
|
|
209
209
|
"type": "object",
|
|
210
|
-
"description": "Personal notes, journal entries,
|
|
211
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
210
|
+
"description": "Personal notes, journal entries, talk notes, or rough thoughts not drawn from an external URL.",
|
|
211
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
212
212
|
"properties": {
|
|
213
213
|
"type": { "const": "note" },
|
|
214
214
|
"date": {
|
|
@@ -230,7 +230,7 @@
|
|
|
230
230
|
"index": {
|
|
231
231
|
"type": "object",
|
|
232
232
|
"description": "The wiki index — a catalog of all pages with links, summaries, and metadata. Updated by the agent on ingest. Used as the primary navigation entry point.",
|
|
233
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
233
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
234
234
|
"properties": {
|
|
235
235
|
"type": { "const": "index" }
|
|
236
236
|
},
|
package/schemas/_ost_strict.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/_structured_context_schema_meta.json",
|
|
3
|
-
"$id": "sctx://_ost_strict",
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/latest/_structured_context_schema_meta.json",
|
|
3
|
+
"$id": "sctx://core/_ost_strict",
|
|
4
4
|
// Shared definitions for the strict OST (Opportunity Solution Tree) schema.
|
|
5
5
|
// This schema follows Teresa Torres' canonical 4-level structure as described in
|
|
6
6
|
// "Continuous Discovery Habits" (2021) and at producttalk.org.
|
package/schemas/_sctx_base.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
3
|
-
"$id": "sctx://_sctx_base",
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sctx://core/_sctx_base",
|
|
4
4
|
"description": "Shared definitions for structured-context schemas",
|
|
5
5
|
"$defs": {
|
|
6
6
|
"title": {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/_structured_context_schema_meta.json",
|
|
3
|
-
"$id": "sctx://_strategy_general",
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/latest/_structured_context_schema_meta.json",
|
|
3
|
+
"$id": "sctx://core/_strategy_general",
|
|
4
4
|
// Shared entity definitions for strategy-general schemas.
|
|
5
|
-
// Provides a
|
|
6
|
-
//
|
|
5
|
+
// Provides a hierarchy, aliases, relationships, and entity type $defs.
|
|
6
|
+
// Schemas that import this partial get its metadata; a $ref to its $defs alone brings none.
|
|
7
7
|
"$metadata": {
|
|
8
8
|
"hierarchy": {
|
|
9
9
|
"levels": [
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"$defs": {
|
|
46
46
|
"dashboard": {
|
|
47
47
|
"type": "object",
|
|
48
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
48
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
49
49
|
"properties": {
|
|
50
50
|
"type": { "const": "dashboard" }
|
|
51
51
|
},
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"ost_on_a_page": {
|
|
56
56
|
"type": "object",
|
|
57
|
-
"allOf": [{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" }],
|
|
57
|
+
"allOf": [{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" }],
|
|
58
58
|
"properties": {
|
|
59
59
|
"type": { "enum": ["ost_on_a_page", "space_on_a_page"] }
|
|
60
60
|
},
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"vision": {
|
|
65
65
|
"type": "object",
|
|
66
66
|
"allOf": [
|
|
67
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
68
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
67
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
68
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
69
69
|
],
|
|
70
70
|
"properties": {
|
|
71
71
|
"type": { "const": "vision" }
|
|
@@ -83,9 +83,9 @@
|
|
|
83
83
|
"mission": {
|
|
84
84
|
"type": "object",
|
|
85
85
|
"allOf": [
|
|
86
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
87
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
88
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
86
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
87
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
88
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
89
89
|
],
|
|
90
90
|
"properties": {
|
|
91
91
|
"type": { "const": "mission" }
|
|
@@ -103,13 +103,13 @@
|
|
|
103
103
|
"goal": {
|
|
104
104
|
"type": "object",
|
|
105
105
|
"allOf": [
|
|
106
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
107
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
108
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
106
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
107
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
108
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
109
109
|
],
|
|
110
110
|
"properties": {
|
|
111
111
|
"type": { "enum": ["goal", "outcome"] },
|
|
112
|
-
"priority": { "$ref": "sctx://_sctx_base#/$defs/priority" }
|
|
112
|
+
"priority": { "$ref": "sctx://core/_sctx_base#/$defs/priority" }
|
|
113
113
|
},
|
|
114
114
|
"required": ["type"],
|
|
115
115
|
"additionalProperties": true,
|
|
@@ -125,16 +125,16 @@
|
|
|
125
125
|
"opportunity": {
|
|
126
126
|
"type": "object",
|
|
127
127
|
"allOf": [
|
|
128
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
129
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
130
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
128
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
129
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
130
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
131
131
|
],
|
|
132
132
|
"properties": {
|
|
133
133
|
"type": { "const": "opportunity" },
|
|
134
|
-
"priority": { "$ref": "sctx://_sctx_base#/$defs/priority" },
|
|
135
|
-
"impact": { "$ref": "sctx://_sctx_base#/$defs/assessment" },
|
|
136
|
-
"feasibility": { "$ref": "sctx://_sctx_base#/$defs/assessment" },
|
|
137
|
-
"resources": { "$ref": "sctx://_sctx_base#/$defs/assessment" },
|
|
134
|
+
"priority": { "$ref": "sctx://core/_sctx_base#/$defs/priority" },
|
|
135
|
+
"impact": { "$ref": "sctx://core/_sctx_base#/$defs/assessment" },
|
|
136
|
+
"feasibility": { "$ref": "sctx://core/_sctx_base#/$defs/assessment" },
|
|
137
|
+
"resources": { "$ref": "sctx://core/_sctx_base#/$defs/assessment" },
|
|
138
138
|
"timeline": {
|
|
139
139
|
"type": "string",
|
|
140
140
|
"description": "Timeline estimate (e.g., S-M, M-L)"
|
|
@@ -158,16 +158,16 @@
|
|
|
158
158
|
"solution": {
|
|
159
159
|
"type": "object",
|
|
160
160
|
"allOf": [
|
|
161
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
162
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
163
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
161
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
162
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
163
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
164
164
|
],
|
|
165
165
|
"properties": {
|
|
166
166
|
"type": { "const": "solution" },
|
|
167
|
-
"priority": { "$ref": "sctx://_sctx_base#/$defs/priority" },
|
|
168
|
-
"impact": { "$ref": "sctx://_sctx_base#/$defs/assessment" },
|
|
169
|
-
"feasibility": { "$ref": "sctx://_sctx_base#/$defs/assessment" },
|
|
170
|
-
"resources": { "$ref": "sctx://_sctx_base#/$defs/assessment" },
|
|
167
|
+
"priority": { "$ref": "sctx://core/_sctx_base#/$defs/priority" },
|
|
168
|
+
"impact": { "$ref": "sctx://core/_sctx_base#/$defs/assessment" },
|
|
169
|
+
"feasibility": { "$ref": "sctx://core/_sctx_base#/$defs/assessment" },
|
|
170
|
+
"resources": { "$ref": "sctx://core/_sctx_base#/$defs/assessment" },
|
|
171
171
|
"timeline": {
|
|
172
172
|
"type": "string",
|
|
173
173
|
"description": "Timeline estimate (e.g., S-M, M-L)"
|
|
@@ -191,9 +191,9 @@
|
|
|
191
191
|
"experiment": {
|
|
192
192
|
"type": "object",
|
|
193
193
|
"allOf": [
|
|
194
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
195
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
196
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
194
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
195
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
196
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
197
197
|
],
|
|
198
198
|
"properties": {
|
|
199
199
|
"type": { "enum": ["experiment", "assumption_test", "test"] }
|
|
@@ -216,9 +216,9 @@
|
|
|
216
216
|
"assumption": {
|
|
217
217
|
"type": "object",
|
|
218
218
|
"allOf": [
|
|
219
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
220
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
221
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
219
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
220
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
221
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
222
222
|
],
|
|
223
223
|
"properties": {
|
|
224
224
|
"type": { "const": "assumption" },
|
|
@@ -242,9 +242,9 @@
|
|
|
242
242
|
"problem_statement": {
|
|
243
243
|
"type": "object",
|
|
244
244
|
"allOf": [
|
|
245
|
-
{ "$ref": "sctx://_sctx_base#/$defs/baseNodeProps" },
|
|
246
|
-
{ "$ref": "sctx://_sctx_base#/$defs/parentNodeProps" },
|
|
247
|
-
{ "$ref": "sctx://_sctx_base#/$defs/ostEntityProps" }
|
|
245
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/baseNodeProps" },
|
|
246
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/parentNodeProps" },
|
|
247
|
+
{ "$ref": "sctx://core/_sctx_base#/$defs/ostEntityProps" }
|
|
248
248
|
],
|
|
249
249
|
"properties": {
|
|
250
250
|
"type": { "const": "problem_statement" }
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/mindsocket/structured-context/main/schemas/generated/0.12.0/_structured_context_schema_meta.json",
|
|
4
|
+
"title": "structured-context schema dialect",
|
|
5
|
+
"description": "Extends JSON Schema 2020-12 with top-level $metadata for imports, hierarchy, relationships, aliases and rules.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"allOf": [
|
|
8
|
+
{
|
|
9
|
+
"$ref": "https://json-schema.org/draft/2020-12/schema"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"$metadata": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"imports": {
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"hierarchy": {
|
|
24
|
+
"oneOf": [
|
|
25
|
+
{
|
|
26
|
+
"type": "object",
|
|
27
|
+
"properties": {
|
|
28
|
+
"name": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 1
|
|
31
|
+
},
|
|
32
|
+
"override": {
|
|
33
|
+
"type": "boolean"
|
|
34
|
+
},
|
|
35
|
+
"levels": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"minItems": 1,
|
|
38
|
+
"items": {
|
|
39
|
+
"oneOf": [
|
|
40
|
+
{
|
|
41
|
+
"type": "string",
|
|
42
|
+
"minLength": 1
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "object",
|
|
46
|
+
"properties": {
|
|
47
|
+
"type": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1
|
|
50
|
+
},
|
|
51
|
+
"field": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1
|
|
54
|
+
},
|
|
55
|
+
"fieldOn": {
|
|
56
|
+
"enum": ["child", "parent"]
|
|
57
|
+
},
|
|
58
|
+
"multiple": {
|
|
59
|
+
"type": "boolean"
|
|
60
|
+
},
|
|
61
|
+
"templateFormat": {
|
|
62
|
+
"enum": ["heading", "list", "table", "page"]
|
|
63
|
+
},
|
|
64
|
+
"matchers": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"minLength": 1
|
|
69
|
+
},
|
|
70
|
+
"minItems": 1
|
|
71
|
+
},
|
|
72
|
+
"embeddedTemplateFields": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"minLength": 1
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"selfRef": {
|
|
80
|
+
"type": "boolean"
|
|
81
|
+
},
|
|
82
|
+
"selfRefField": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 1
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"required": ["type"],
|
|
88
|
+
"additionalProperties": false
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"allowSkipLevels": {
|
|
94
|
+
"type": "boolean"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"required": ["levels"],
|
|
98
|
+
"additionalProperties": false
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"type": "object",
|
|
102
|
+
"properties": {
|
|
103
|
+
"$ref": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"minLength": 1
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": ["$ref"],
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"relationships": {
|
|
114
|
+
"type": "array",
|
|
115
|
+
"items": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"parent": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"minLength": 1
|
|
121
|
+
},
|
|
122
|
+
"type": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"minLength": 1
|
|
125
|
+
},
|
|
126
|
+
"field": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"minLength": 1
|
|
129
|
+
},
|
|
130
|
+
"fieldOn": {
|
|
131
|
+
"enum": ["child", "parent"]
|
|
132
|
+
},
|
|
133
|
+
"multiple": {
|
|
134
|
+
"type": "boolean"
|
|
135
|
+
},
|
|
136
|
+
"templateFormat": {
|
|
137
|
+
"enum": ["heading", "list", "table", "page"]
|
|
138
|
+
},
|
|
139
|
+
"matchers": {
|
|
140
|
+
"type": "array",
|
|
141
|
+
"items": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"minLength": 1
|
|
144
|
+
},
|
|
145
|
+
"minItems": 1
|
|
146
|
+
},
|
|
147
|
+
"embeddedTemplateFields": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"items": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"minLength": 1
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"override": {
|
|
155
|
+
"type": "boolean"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"required": ["parent", "type"],
|
|
159
|
+
"additionalProperties": false
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"aliases": {
|
|
163
|
+
"type": "object",
|
|
164
|
+
"additionalProperties": {
|
|
165
|
+
"oneOf": [
|
|
166
|
+
{
|
|
167
|
+
"type": "string",
|
|
168
|
+
"minLength": 1
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"type": "object",
|
|
172
|
+
"properties": {
|
|
173
|
+
"type": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"minLength": 1
|
|
176
|
+
},
|
|
177
|
+
"override": {
|
|
178
|
+
"type": "boolean"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"required": ["type"],
|
|
182
|
+
"additionalProperties": false
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"rules": {
|
|
188
|
+
"type": "array",
|
|
189
|
+
"items": {
|
|
190
|
+
"type": "object",
|
|
191
|
+
"properties": {
|
|
192
|
+
"id": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"minLength": 1
|
|
195
|
+
},
|
|
196
|
+
"category": {
|
|
197
|
+
"enum": ["validation", "coherence", "workflow", "best-practice"]
|
|
198
|
+
},
|
|
199
|
+
"severity": {
|
|
200
|
+
"enum": ["error", "warning", "info"]
|
|
201
|
+
},
|
|
202
|
+
"description": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"minLength": 1
|
|
205
|
+
},
|
|
206
|
+
"check": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"minLength": 1
|
|
209
|
+
},
|
|
210
|
+
"type": {
|
|
211
|
+
"type": "string",
|
|
212
|
+
"minLength": 1
|
|
213
|
+
},
|
|
214
|
+
"scope": {
|
|
215
|
+
"enum": ["global"]
|
|
216
|
+
},
|
|
217
|
+
"override": {
|
|
218
|
+
"type": "boolean"
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"required": ["id", "category", "description", "check"],
|
|
222
|
+
"additionalProperties": false
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"additionalProperties": false
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|