@fulmenhq/tsfulmen 0.1.13 → 0.2.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/CHANGELOG.md +73 -512
- package/README.md +111 -28
- package/config/crucible-ts/agentic/roles/README.md +76 -0
- package/config/crucible-ts/agentic/roles/cicd.yaml +82 -0
- package/config/crucible-ts/agentic/roles/dataeng.yaml +104 -0
- package/config/crucible-ts/agentic/roles/devlead.yaml +84 -0
- package/config/crucible-ts/agentic/roles/devrev.yaml +105 -0
- package/config/crucible-ts/agentic/roles/entarch.yaml +101 -0
- package/config/crucible-ts/agentic/roles/infoarch.yaml +95 -0
- package/config/crucible-ts/agentic/roles/prodmktg.yaml +92 -0
- package/config/crucible-ts/agentic/roles/qa.yaml +148 -0
- package/config/crucible-ts/agentic/roles/secrev.yaml +101 -0
- package/config/crucible-ts/agentic/roles/uxdev.yaml +168 -0
- package/config/crucible-ts/branding/ecosystem.yaml +26 -0
- package/config/crucible-ts/library/foundry/exit-codes.snapshot.json +26 -0
- package/config/crucible-ts/library/foundry/exit-codes.yaml +28 -3
- package/config/crucible-ts/library/foundry/patterns.yaml +2 -2
- package/config/crucible-ts/library/foundry/signal-resolution-fixtures.yaml +207 -0
- package/config/crucible-ts/library/foundry/signals.yaml +21 -0
- package/config/crucible-ts/library/foundry/simplified-modes.snapshot.json +9 -1
- package/config/crucible-ts/library/{foundry/similarity-fixtures.yaml → similarity/fixtures.yaml} +1 -1
- package/config/crucible-ts/library/v1.0.0/module-manifest.yaml +1 -2
- package/config/crucible-ts/taxonomy/fixture-catalog.yaml +145 -0
- package/config/crucible-ts/taxonomy/languages.yaml +2 -2
- package/config/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalogs.yaml +77 -0
- package/config/crucible-ts/taxonomy/library/platform-modules/v1.1.0/modules.yaml +722 -0
- package/config/crucible-ts/taxonomy/metrics.yaml +1 -1
- package/config/crucible-ts/taxonomy/repository-categories.yaml +134 -1
- package/dist/appidentity/index.d.ts +117 -35
- package/dist/appidentity/index.js +752 -592
- package/dist/appidentity/index.js.map +1 -1
- package/dist/config/index.js +118 -6
- package/dist/config/index.js.map +1 -1
- package/dist/crucible/index.js +118 -6
- package/dist/crucible/index.js.map +1 -1
- package/dist/errors/index.js +118 -6
- package/dist/errors/index.js.map +1 -1
- package/dist/foundry/index.d.ts +13 -676
- package/dist/foundry/index.js +118 -6
- package/dist/foundry/index.js.map +1 -1
- package/dist/foundry/similarity/index.d.ts +2 -2
- package/dist/fulhash/index.d.ts +64 -12
- package/dist/fulhash/index.js +292 -53
- package/dist/fulhash/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +753 -593
- package/dist/index.js.map +1 -1
- package/dist/{manager-D27vrdaS.d.ts → manager-CH3fX7zO.d.ts} +1 -1
- package/dist/pathfinder/index.js +368 -59
- package/dist/pathfinder/index.js.map +1 -1
- package/dist/reports/license-inventory.csv +302 -0
- package/dist/schema/index.js +118 -6
- package/dist/schema/index.js.map +1 -1
- package/dist/signals/index.d.ts +675 -0
- package/dist/signals/index.js +5790 -0
- package/dist/signals/index.js.map +1 -0
- package/dist/similarity/index.d.ts +2 -0
- package/dist/similarity/index.js +136 -0
- package/dist/similarity/index.js.map +1 -0
- package/dist/{suggest-Cv7SVQRu.d.ts → suggest-D8LbwtPV.d.ts} +1 -1
- package/dist/telemetry/http/index.js +704 -591
- package/dist/telemetry/http/index.js.map +1 -1
- package/dist/telemetry/index.js +118 -6
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/prometheus/index.d.ts +1 -1
- package/dist/telemetry/prometheus/index.js +175 -11
- package/dist/telemetry/prometheus/index.js.map +1 -1
- package/package.json +15 -6
- package/schemas/crucible-ts/assessment/v1.0.0/severity-definitions.schema.json +1 -1
- package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/fulmen-config-paths.schema.json +1 -1
- package/schemas/crucible-ts/config/repository/app-identity/v1.0.0/app-identity.schema.json +3 -3
- package/schemas/crucible-ts/config/repository/v1.0.0/lifecycle-phase.json +1 -1
- package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json +1 -1
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-adoption-status.json +1 -1
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-frontmatter.schema.json +3 -3
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-lifecycle-status.json +1 -1
- package/schemas/crucible-ts/config/sync-keys.schema.yaml +14 -0
- package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json +1 -1
- package/schemas/crucible-ts/design/README.md +159 -0
- package/schemas/crucible-ts/design/core/v1.0.0/component-states.schema.json +204 -0
- package/schemas/crucible-ts/design/core/v1.0.0/semantic-colors.schema.json +179 -0
- package/schemas/crucible-ts/design/core/v1.0.0/spacing-scale.schema.json +165 -0
- package/schemas/crucible-ts/design/core/v1.0.0/typography-roles.schema.json +195 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/color-palette.schema.json +303 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/component.schema.json +374 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/layout.schema.json +272 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/theme.schema.json +205 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/typography.schema.json +316 -0
- package/schemas/crucible-ts/devsecops/lorage-central/activity/v1.0.0/activity.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/credentials/v1.0.0/credentials.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/policy/v1.0.0/policy.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/recipe/v1.0.0/recipe.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/runbooks/v1.0.0/runbook.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/tenant/v1.0.0/tenant.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/secrets/v1.0.0/secrets.schema.json +1 -1
- package/schemas/crucible-ts/error-handling/v1.0.0/error-response.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/country-codes.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/exit-codes.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/http-status-groups.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/mime-types.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/patterns.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/signal-resolution-fixtures.schema.json +140 -0
- package/schemas/crucible-ts/library/foundry/v1.0.0/signals.schema.json +6 -1
- package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +1 -1
- package/schemas/crucible-ts/library/fulhash/v1.0.0/checksum-string.schema.json +2 -2
- package/schemas/crucible-ts/library/fulhash/v1.0.0/digest.schema.json +61 -1
- package/schemas/crucible-ts/library/fulhash/v1.0.0/fixtures.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-entry.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-info.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-manifest.schema.json +2 -2
- package/schemas/crucible-ts/library/fulpack/v1.0.0/create-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-result.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/scan-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/validation-result.schema.json +1 -1
- package/schemas/crucible-ts/library/module-manifest/v1.0.0/module-manifest.schema.json +1 -1
- package/schemas/crucible-ts/library/{foundry → similarity}/v1.0.0/similarity.schema.json +2 -2
- package/schemas/crucible-ts/library/{foundry → similarity}/v2.0.0/similarity.schema.json +2 -2
- package/schemas/crucible-ts/observability/metrics/v1.0.0/metrics-event.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/find-query.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/finder-config.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/path-result.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/error-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/health-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/success-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/version-response.schema.json +1 -1
- package/schemas/crucible-ts/server/management/v1.0.0/server-management.schema.json +1 -1
- package/schemas/crucible-ts/standards/publishing/v1.0.0/spec-catalog.schema.json +134 -0
- package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/modules/v1.0.0/devsecops-module-entry.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/fixture/v1.0.0/fixture-catalog.schema.json +166 -0
- package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalog-entry.schema.json +98 -0
- package/schemas/crucible-ts/taxonomy/library/fulencode/detection-confidence/v1.0.0/levels.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulencode/encoding-families/v1.0.0/families.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulhash/algorithms/v1.0.0/algorithms.yaml +16 -0
- package/schemas/crucible-ts/taxonomy/library/modules/v1.0.0/module-entry.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/modules/v1.1.0/module-entry.schema.json +436 -0
- package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-key.schema.json +16 -8
- package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-metadata.schema.json +1 -1
- package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +43 -0
- package/schemas/crucible-ts/upstream/3leaps/agentic/v0/role-prompt.schema.json +183 -0
- package/schemas/crucible-ts/upstream/3leaps/ailink/v0/prompt.schema.json +204 -0
- package/schemas/crucible-ts/upstream/3leaps/ailink/v0/search-response.schema.json +152 -0
- package/schemas/crucible-ts/upstream/README.md +50 -0
- package/schemas/crucible-ts/web/branding/v1.0.0/site-branding.schema.json +1 -1
- package/schemas/crucible-ts/web/styling/v1.0.0/site-styling.schema.json +1 -1
- package/schemas/crucible-ts/config/goneat/README.md +0 -60
- package/schemas/crucible-ts/config/goneat/v1.0.0/dates.yaml +0 -234
- package/schemas/crucible-ts/config/goneat/v1.0.0/goneat-config.yaml +0 -344
- package/schemas/crucible-ts/config/goneat/v1.0.0/lifecycle-phase.json +0 -20
- package/schemas/crucible-ts/config/goneat/v1.0.0/release-phase.json +0 -17
- package/schemas/crucible-ts/config/goneat/v1.0.0/security-policy.yaml +0 -178
- package/schemas/crucible-ts/config/goneat/v1.0.0/version-policy.schema.yaml +0 -205
- package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/README.md +0 -177
- package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/goneat-tools-config.schema.yaml +0 -146
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.3leaps.dev/agentic/v0/role-prompt.schema.json",
|
|
4
|
+
"title": "Agentic Role Prompt",
|
|
5
|
+
"description": "Schema for AI coding agent role prompts. Defines structured role definitions that guide AI assistants working in repositories.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"slug",
|
|
9
|
+
"name",
|
|
10
|
+
"description",
|
|
11
|
+
"version",
|
|
12
|
+
"status",
|
|
13
|
+
"scope",
|
|
14
|
+
"responsibilities",
|
|
15
|
+
"escalates_to",
|
|
16
|
+
"does_not"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"slug": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^[a-z][a-z0-9]*$",
|
|
22
|
+
"minLength": 2,
|
|
23
|
+
"maxLength": 16,
|
|
24
|
+
"description": "Role identifier (lowercase letters/numbers, no hyphens). Examples: devlead, secrev, infoarch"
|
|
25
|
+
},
|
|
26
|
+
"name": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1,
|
|
29
|
+
"maxLength": 64,
|
|
30
|
+
"description": "Human-readable role name. Example: Development Lead"
|
|
31
|
+
},
|
|
32
|
+
"description": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"minLength": 10,
|
|
35
|
+
"maxLength": 256,
|
|
36
|
+
"description": "One-line description of the role's purpose"
|
|
37
|
+
},
|
|
38
|
+
"version": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
|
|
41
|
+
"description": "Semantic version for role prompt evolution"
|
|
42
|
+
},
|
|
43
|
+
"author": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"maxLength": 64,
|
|
46
|
+
"description": "Role prompt author (role slug or human identifier)"
|
|
47
|
+
},
|
|
48
|
+
"status": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["draft", "review", "approved", "deprecated"],
|
|
51
|
+
"description": "Role prompt lifecycle status"
|
|
52
|
+
},
|
|
53
|
+
"category": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"enum": ["agentic", "automation", "review", "governance", "marketing"],
|
|
56
|
+
"description": "Role category for organization"
|
|
57
|
+
},
|
|
58
|
+
"tags": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
63
|
+
},
|
|
64
|
+
"description": "Searchable tags for the role"
|
|
65
|
+
},
|
|
66
|
+
"extends": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"format": "uri",
|
|
69
|
+
"description": "URL to base role this extends"
|
|
70
|
+
},
|
|
71
|
+
"context": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"description": "When to use this role, distinct from similar roles"
|
|
74
|
+
},
|
|
75
|
+
"scope": {
|
|
76
|
+
"type": "array",
|
|
77
|
+
"items": {
|
|
78
|
+
"type": "string"
|
|
79
|
+
},
|
|
80
|
+
"minItems": 1,
|
|
81
|
+
"description": "What this role covers - boundaries of responsibility"
|
|
82
|
+
},
|
|
83
|
+
"mindset": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"focus": {
|
|
87
|
+
"type": "array",
|
|
88
|
+
"items": {
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
"description": "Key questions to ask, thinking patterns"
|
|
92
|
+
},
|
|
93
|
+
"principles": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "string"
|
|
97
|
+
},
|
|
98
|
+
"description": "Guiding principles for this role"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"description": "Context engineering - shapes how the agent approaches problems"
|
|
102
|
+
},
|
|
103
|
+
"responsibilities": {
|
|
104
|
+
"type": "array",
|
|
105
|
+
"items": {
|
|
106
|
+
"type": "string"
|
|
107
|
+
},
|
|
108
|
+
"minItems": 1,
|
|
109
|
+
"description": "Specific tasks and duties"
|
|
110
|
+
},
|
|
111
|
+
"escalates_to": {
|
|
112
|
+
"type": "array",
|
|
113
|
+
"items": {
|
|
114
|
+
"$ref": "#/$defs/escalation"
|
|
115
|
+
},
|
|
116
|
+
"minItems": 1,
|
|
117
|
+
"description": "When and to whom to escalate"
|
|
118
|
+
},
|
|
119
|
+
"does_not": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"items": {
|
|
122
|
+
"type": "string"
|
|
123
|
+
},
|
|
124
|
+
"minItems": 1,
|
|
125
|
+
"description": "Explicit exclusions and out-of-scope items"
|
|
126
|
+
},
|
|
127
|
+
"examples": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"items": {
|
|
130
|
+
"$ref": "#/$defs/example"
|
|
131
|
+
},
|
|
132
|
+
"description": "Concrete examples of role application"
|
|
133
|
+
},
|
|
134
|
+
"checklists": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"additionalProperties": {
|
|
137
|
+
"type": "array",
|
|
138
|
+
"items": {
|
|
139
|
+
"type": "string"
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"description": "Named checklists for common tasks"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"additionalProperties": false,
|
|
146
|
+
"$defs": {
|
|
147
|
+
"escalation": {
|
|
148
|
+
"type": "object",
|
|
149
|
+
"required": ["target", "when"],
|
|
150
|
+
"properties": {
|
|
151
|
+
"target": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"description": "Who to escalate to (role slug, 'human maintainers', etc.)"
|
|
154
|
+
},
|
|
155
|
+
"when": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"description": "Conditions that trigger escalation"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"additionalProperties": false
|
|
161
|
+
},
|
|
162
|
+
"example": {
|
|
163
|
+
"type": "object",
|
|
164
|
+
"required": ["type", "content"],
|
|
165
|
+
"properties": {
|
|
166
|
+
"type": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"enum": ["commit", "review", "checklist", "other"],
|
|
169
|
+
"description": "Type of example"
|
|
170
|
+
},
|
|
171
|
+
"title": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"description": "Example title"
|
|
174
|
+
},
|
|
175
|
+
"content": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"description": "Example content (may be multi-line)"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"additionalProperties": false
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.3leaps.dev/ailink/v0/prompt.schema.json",
|
|
4
|
+
"title": "AILink Prompt Configuration",
|
|
5
|
+
"description": "Schema for AILink prompt configuration files. Prompts define how AI backends process requests, including input variables, tools, and response validation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"slug",
|
|
9
|
+
"name",
|
|
10
|
+
"description",
|
|
11
|
+
"version"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"slug": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"maxLength": 64,
|
|
19
|
+
"description": "Unique identifier for the prompt (lowercase alphanumeric with hyphens)"
|
|
20
|
+
},
|
|
21
|
+
"name": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1,
|
|
24
|
+
"maxLength": 128,
|
|
25
|
+
"description": "Human-readable display name"
|
|
26
|
+
},
|
|
27
|
+
"description": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1,
|
|
30
|
+
"maxLength": 512,
|
|
31
|
+
"description": "Brief description of what this prompt does"
|
|
32
|
+
},
|
|
33
|
+
"version": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
|
|
36
|
+
"description": "Semantic version for prompt content evolution"
|
|
37
|
+
},
|
|
38
|
+
"author": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"maxLength": 64,
|
|
41
|
+
"description": "Prompt author or maintainer"
|
|
42
|
+
},
|
|
43
|
+
"updated": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"format": "date",
|
|
46
|
+
"description": "Last update date (YYYY-MM-DD)"
|
|
47
|
+
},
|
|
48
|
+
"input": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"description": "Input specification for prompt variables",
|
|
51
|
+
"properties": {
|
|
52
|
+
"required_variables": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"pattern": "^[a-z][a-z0-9_]*$"
|
|
57
|
+
},
|
|
58
|
+
"description": "Variables that must be provided"
|
|
59
|
+
},
|
|
60
|
+
"optional_variables": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"pattern": "^[a-z][a-z0-9_]*$"
|
|
65
|
+
},
|
|
66
|
+
"description": "Optional variables with defaults"
|
|
67
|
+
},
|
|
68
|
+
"accepts_images": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"default": false,
|
|
71
|
+
"description": "Whether this prompt accepts image input"
|
|
72
|
+
},
|
|
73
|
+
"image_types": {
|
|
74
|
+
"type": "array",
|
|
75
|
+
"items": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"enum": [
|
|
78
|
+
"image/png",
|
|
79
|
+
"image/jpeg",
|
|
80
|
+
"image/webp",
|
|
81
|
+
"image/gif"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"description": "Accepted image MIME types (if accepts_images is true)"
|
|
85
|
+
},
|
|
86
|
+
"max_images": {
|
|
87
|
+
"type": "integer",
|
|
88
|
+
"minimum": 1,
|
|
89
|
+
"maximum": 20,
|
|
90
|
+
"default": 1,
|
|
91
|
+
"description": "Maximum number of images allowed"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"additionalProperties": false
|
|
95
|
+
},
|
|
96
|
+
"system_template": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"minLength": 1,
|
|
99
|
+
"description": "System prompt template with {{variable}} placeholders"
|
|
100
|
+
},
|
|
101
|
+
"user_template": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"default": "{{input}}",
|
|
104
|
+
"description": "User prompt template (optional)"
|
|
105
|
+
},
|
|
106
|
+
"depth_variants": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"additionalProperties": {
|
|
109
|
+
"type": "string"
|
|
110
|
+
},
|
|
111
|
+
"description": "Keyed user prompt variants (e.g., quick, deep, thorough)"
|
|
112
|
+
},
|
|
113
|
+
"tools": {
|
|
114
|
+
"type": "array",
|
|
115
|
+
"items": {
|
|
116
|
+
"$ref": "#/$defs/tool"
|
|
117
|
+
},
|
|
118
|
+
"description": "Server-side tools the prompt may use"
|
|
119
|
+
},
|
|
120
|
+
"response_schema": {
|
|
121
|
+
"anyOf": [
|
|
122
|
+
{
|
|
123
|
+
"type": "object",
|
|
124
|
+
"description": "Inline JSONSchema for response validation"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"type": "object",
|
|
128
|
+
"required": [
|
|
129
|
+
"$ref"
|
|
130
|
+
],
|
|
131
|
+
"properties": {
|
|
132
|
+
"$ref": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"description": "Reference to external schema"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"additionalProperties": false
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"description": "JSONSchema for expected response structure"
|
|
141
|
+
},
|
|
142
|
+
"response_options": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"may_include_images": {
|
|
146
|
+
"type": "boolean",
|
|
147
|
+
"default": false,
|
|
148
|
+
"description": "Whether response may contain images"
|
|
149
|
+
},
|
|
150
|
+
"image_types": {
|
|
151
|
+
"type": "array",
|
|
152
|
+
"items": {
|
|
153
|
+
"type": "string"
|
|
154
|
+
},
|
|
155
|
+
"description": "Expected image MIME types in response"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"additionalProperties": false
|
|
159
|
+
},
|
|
160
|
+
"provider_hints": {
|
|
161
|
+
"type": "object",
|
|
162
|
+
"properties": {
|
|
163
|
+
"preferred_models": {
|
|
164
|
+
"type": "array",
|
|
165
|
+
"items": {
|
|
166
|
+
"type": "string"
|
|
167
|
+
},
|
|
168
|
+
"description": "Models known to work well with this prompt"
|
|
169
|
+
},
|
|
170
|
+
"min_context_window": {
|
|
171
|
+
"type": "integer",
|
|
172
|
+
"minimum": 1000,
|
|
173
|
+
"description": "Minimum context window size needed"
|
|
174
|
+
},
|
|
175
|
+
"supports_tools": {
|
|
176
|
+
"type": "boolean",
|
|
177
|
+
"default": true,
|
|
178
|
+
"description": "Whether this prompt benefits from tool use"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"additionalProperties": false
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"additionalProperties": false,
|
|
185
|
+
"$defs": {
|
|
186
|
+
"tool": {
|
|
187
|
+
"type": "object",
|
|
188
|
+
"required": [
|
|
189
|
+
"type"
|
|
190
|
+
],
|
|
191
|
+
"properties": {
|
|
192
|
+
"type": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"description": "Tool type identifier (e.g., web_search, x_search, code_execution)"
|
|
195
|
+
},
|
|
196
|
+
"config": {
|
|
197
|
+
"type": "object",
|
|
198
|
+
"description": "Tool-specific configuration"
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
"additionalProperties": false
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.3leaps.dev/ailink/v0/search-response.schema.json",
|
|
4
|
+
"title": "AILink Search Response",
|
|
5
|
+
"description": "Base schema for AILink search/analysis response validation. Extensible for domain-specific responses.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"summary"
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"summary": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"minLength": 1,
|
|
14
|
+
"description": "Concise overall assessment"
|
|
15
|
+
},
|
|
16
|
+
"risk_level": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": [
|
|
19
|
+
"low",
|
|
20
|
+
"medium",
|
|
21
|
+
"high",
|
|
22
|
+
"critical",
|
|
23
|
+
"unknown"
|
|
24
|
+
],
|
|
25
|
+
"description": "Overall risk assessment"
|
|
26
|
+
},
|
|
27
|
+
"confidence": {
|
|
28
|
+
"type": "number",
|
|
29
|
+
"minimum": 0,
|
|
30
|
+
"maximum": 1,
|
|
31
|
+
"description": "Model's confidence in the assessment (0-1)"
|
|
32
|
+
},
|
|
33
|
+
"insights": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
},
|
|
38
|
+
"description": "Key findings as bullet points"
|
|
39
|
+
},
|
|
40
|
+
"mentions": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"items": {
|
|
43
|
+
"$ref": "#/$defs/mention"
|
|
44
|
+
},
|
|
45
|
+
"description": "Relevant mentions found during search"
|
|
46
|
+
},
|
|
47
|
+
"recommendations": {
|
|
48
|
+
"type": "array",
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"description": "Actionable recommendations"
|
|
53
|
+
},
|
|
54
|
+
"attachments": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"$ref": "#/$defs/attachment"
|
|
58
|
+
},
|
|
59
|
+
"description": "Images or other media in response"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": true,
|
|
63
|
+
"$defs": {
|
|
64
|
+
"mention": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"required": [
|
|
67
|
+
"source",
|
|
68
|
+
"description"
|
|
69
|
+
],
|
|
70
|
+
"properties": {
|
|
71
|
+
"source": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"enum": [
|
|
74
|
+
"web",
|
|
75
|
+
"news",
|
|
76
|
+
"social",
|
|
77
|
+
"github",
|
|
78
|
+
"registry",
|
|
79
|
+
"trademark",
|
|
80
|
+
"other"
|
|
81
|
+
],
|
|
82
|
+
"description": "Source type of the mention"
|
|
83
|
+
},
|
|
84
|
+
"description": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"description": "Brief summary of the finding"
|
|
87
|
+
},
|
|
88
|
+
"url": {
|
|
89
|
+
"type": "string",
|
|
90
|
+
"format": "uri",
|
|
91
|
+
"description": "URL to the source (if available)"
|
|
92
|
+
},
|
|
93
|
+
"relevance": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"enum": [
|
|
96
|
+
"high",
|
|
97
|
+
"medium",
|
|
98
|
+
"low"
|
|
99
|
+
],
|
|
100
|
+
"description": "Relevance to the query"
|
|
101
|
+
},
|
|
102
|
+
"sentiment": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"enum": [
|
|
105
|
+
"positive",
|
|
106
|
+
"neutral",
|
|
107
|
+
"negative",
|
|
108
|
+
"mixed"
|
|
109
|
+
],
|
|
110
|
+
"description": "Sentiment of the mention"
|
|
111
|
+
},
|
|
112
|
+
"date": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"format": "date-time",
|
|
115
|
+
"description": "When the mention was found or published"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"additionalProperties": true
|
|
119
|
+
},
|
|
120
|
+
"attachment": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"required": [
|
|
123
|
+
"type"
|
|
124
|
+
],
|
|
125
|
+
"properties": {
|
|
126
|
+
"type": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"description": "IANA media type (e.g., image/png)"
|
|
129
|
+
},
|
|
130
|
+
"data": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"contentEncoding": "base64",
|
|
133
|
+
"description": "Base64-encoded binary data"
|
|
134
|
+
},
|
|
135
|
+
"url": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"format": "uri",
|
|
138
|
+
"description": "URL reference (alternative to inline data)"
|
|
139
|
+
},
|
|
140
|
+
"name": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"description": "Filename if applicable"
|
|
143
|
+
},
|
|
144
|
+
"description": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"description": "Description or alt text"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"additionalProperties": true
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Upstream Schemas
|
|
2
|
+
|
|
3
|
+
**DO NOT EDIT FILES IN THIS DIRECTORY.**
|
|
4
|
+
|
|
5
|
+
This directory contains vendored copies of schemas from upstream repositories. These files are copied verbatim for offline validation and CI reliability.
|
|
6
|
+
|
|
7
|
+
## Why Vendoring?
|
|
8
|
+
|
|
9
|
+
CI pipelines need to validate against these schemas without network dependencies. Fetching from remote URLs at build time creates fragile builds that fail when upstream is unavailable.
|
|
10
|
+
|
|
11
|
+
## Refresh Process
|
|
12
|
+
|
|
13
|
+
When upstream schemas change:
|
|
14
|
+
|
|
15
|
+
1. Pull latest from upstream repository
|
|
16
|
+
2. Copy updated schemas to appropriate subdirectory
|
|
17
|
+
3. Update `PROVENANCE.md` in the source directory
|
|
18
|
+
4. Run `make precommit` to validate
|
|
19
|
+
5. Commit with clear attribution
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Example refresh from local clone
|
|
23
|
+
cp -r ../3leaps/crucible/schemas/ailink schemas/upstream/3leaps/
|
|
24
|
+
cp -r ../3leaps/crucible/schemas/agentic schemas/upstream/3leaps/
|
|
25
|
+
# Update PROVENANCE.md with new commit hash
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Directory Structure
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
upstream/
|
|
32
|
+
├── README.md # This file
|
|
33
|
+
└── 3leaps/ # From github.com/3leaps/crucible
|
|
34
|
+
├── PROVENANCE.md # Source commit and date
|
|
35
|
+
├── ailink/v0/ # AILink prompt schemas
|
|
36
|
+
└── agentic/v0/ # Agentic role prompt schemas
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Provenance
|
|
40
|
+
|
|
41
|
+
Each upstream source has a `PROVENANCE.md` documenting:
|
|
42
|
+
|
|
43
|
+
- Source repository
|
|
44
|
+
- Commit hash
|
|
45
|
+
- Sync date
|
|
46
|
+
- Files included
|
|
47
|
+
|
|
48
|
+
## Related
|
|
49
|
+
|
|
50
|
+
- [goneat metaschemas](https://github.com/fulmenhq/goneat) - Same pattern for JSON Schema metaschemas
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://schemas.fulmenhq.dev/web/branding/v1.0.0/site-branding.schema.json",
|
|
2
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/web/branding/v1.0.0/site-branding.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"title": "Fulmen Site Branding",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "https://schemas.fulmenhq.dev/web/styling/v1.0.0/site-styling.schema.json",
|
|
2
|
+
"$id": "https://schemas.fulmenhq.dev/crucible/web/styling/v1.0.0/site-styling.schema.json",
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"title": "Fulmen Site Styling",
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Goneat Configuration Schemas
|
|
2
|
-
|
|
3
|
-
This directory contains JSON Schema definitions that codify configuration and policy
|
|
4
|
-
files consumed by the goneat toolchain. Each schema is published at
|
|
5
|
-
`https://schemas.fulmenhq.dev/config/goneat/<name>-<version>.schema.json` and should
|
|
6
|
-
be referenced from the corresponding YAML/JSON policy files via the `$schema` field
|
|
7
|
-
whenever possible.
|
|
8
|
-
|
|
9
|
-
## Available Schemas
|
|
10
|
-
|
|
11
|
-
| Schema | Purpose |
|
|
12
|
-
| --------------------------------------------- | ---------------------------------------------------------------- |
|
|
13
|
-
| `goneat-config.yaml` | Core goneat CLI configuration (toolchain sources, telemetry opt) |
|
|
14
|
-
| `dates.yaml` | Date formatting conventions for release automation |
|
|
15
|
-
| `security-policy.yaml` | Security scanning and suppression policy |
|
|
16
|
-
| `lifecycle-phase.json` / `release-phase.json` | Lifecycle metadata used by release automation |
|
|
17
|
-
| `version-policy.schema.yaml` | Version SSOT propagation policy (new in v0.3.0) |
|
|
18
|
-
|
|
19
|
-
## Version Policy (`version-policy.schema.yaml`)
|
|
20
|
-
|
|
21
|
-
The version policy schema enables repositories to describe how the authoritative
|
|
22
|
-
`VERSION` file propagates into downstream package manifests using goneat’s
|
|
23
|
-
`version propagate` command. Policies live at `.goneat/version-policy.yaml` in consumer
|
|
24
|
-
repositories and should reference the schema via:
|
|
25
|
-
|
|
26
|
-
```yaml
|
|
27
|
-
$schema: https://schemas.fulmenhq.dev/config/goneat/version-policy-v1.0.0.schema.json
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Key capabilities:
|
|
31
|
-
|
|
32
|
-
- **Schemes & Channels**: declare whether the repo uses SemVer or CalVer and optionally
|
|
33
|
-
constrain prerelease channels.
|
|
34
|
-
- **Propagation Rules**: control default include/exclude patterns, handler-specific
|
|
35
|
-
overrides, workspace behaviour, and backup retention.
|
|
36
|
-
- **Content Rules vs Guards**: `rules` describes version content constraints (channels,
|
|
37
|
-
tags, prerelease allowances) while `guards` enforce execution preconditions (branch
|
|
38
|
-
allow-lists, dirty worktree checks). Both sections are optional—planned for Phase 3a of
|
|
39
|
-
goneat’s roadmap.
|
|
40
|
-
- **Extensibility**: `metadata` allows teams to attach internal annotations that goneat
|
|
41
|
-
will ignore while keeping the schema forward-compatible.
|
|
42
|
-
|
|
43
|
-
The schema keys align with manifest filenames (e.g., `package.json`, `pyproject.toml`,
|
|
44
|
-
`go.mod`). The workspace strategy supports three patterns:
|
|
45
|
-
|
|
46
|
-
- `single-version`: all manifests inherit the root VERSION.
|
|
47
|
-
- `opt-in`: only globs listed in `allowlist` receive independent version control.
|
|
48
|
-
- `opt-out`: everything propagates except paths explicitly listed in `blocklist`.
|
|
49
|
-
|
|
50
|
-
See the schema `examples` block for a reference configuration that covers common
|
|
51
|
-
use cases (JS + Python monorepo with Go validation only). Additional cookbook
|
|
52
|
-
samples will ship with goneat v0.3.0 documentation.
|
|
53
|
-
|
|
54
|
-
## Contributing
|
|
55
|
-
|
|
56
|
-
- Update the `$id` to point at the published schema URL when introducing new versions.
|
|
57
|
-
- Keep the schema version number in lock-step with goneat releases that introduce
|
|
58
|
-
breaking changes to the configuration surface.
|
|
59
|
-
- Whenever a schema is added or updated, ensure `make check-all` passes so that
|
|
60
|
-
downstream language wrappers receive the new definition during sync.
|