-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstack-record.schema.json
More file actions
66 lines (66 loc) · 3.25 KB
/
Copy pathstack-record.schema.json
File metadata and controls
66 lines (66 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://www.thetechstack.com/schema/stack-record.schema.json",
"title": "StackRecord",
"description": "Evidence-backed structured record of one company's technology stack.",
"type": "object",
"additionalProperties": false,
"required": ["slug", "company", "as_of", "tools"],
"properties": {
"$schema": { "type": "string" },
"slug": { "type": "string", "pattern": "^[a-z0-9-]+$", "description": "URL-safe identifier, e.g. cursor-anysphere" },
"company": { "type": "string" },
"website": { "type": "string", "format": "uri" },
"sector": { "type": "string", "description": "e.g. ai-devtools, fintech, ecommerce" },
"size": {
"type": "string",
"enum": ["1-10", "11-50", "51-200", "201-1000", "1000+"],
"description": "Approximate headcount at as_of date"
},
"as_of": { "type": "string", "format": "date", "description": "Date the stack snapshot represents" },
"teardown_url": { "type": "string", "description": "Relative URL of the published teardown, if any" },
"verified_by_company": { "type": "boolean", "default": false },
"tools": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["category", "tool", "status", "confidence", "evidence"],
"properties": {
"category": {
"type": "string",
"description": "Controlled vocabulary — see categories.md",
"enum": ["llm-provider", "inference-infra", "orchestration", "vector-db", "ai-eval", "ml-training", "language", "frontend", "backend-framework", "database", "queue", "search", "data-pipeline", "hosting", "ci-cd", "observability", "auth", "payments", "analytics", "email", "crm", "internal-tools", "design", "support"]
},
"tool": { "type": "string", "description": "Canonical tool name, e.g. PostgreSQL, LangChain" },
"status": { "type": "string", "enum": ["current", "previous", "evaluating"] },
"replaced": { "type": "string", "description": "Tool this one replaced, if known" },
"since": { "type": "string", "description": "Approx date adopted, YYYY or YYYY-MM" },
"notes": { "type": "string" },
"confidence": { "type": "string", "enum": ["confirmed", "inferred", "reported"] },
"evidence": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["url", "type", "accessed"],
"properties": {
"url": { "type": "string", "format": "uri-reference" },
"type": { "type": "string", "enum": ["eng-blog", "job-post", "talk", "docs", "interview", "dns-fingerprint", "builtwith", "press", "social", "code", "other"] },
"quote": { "type": "string", "description": "Short supporting quote from the source" },
"accessed": { "type": "string", "format": "date" }
}
}
}
}
}
},
"sources": {
"type": "array",
"description": "All sources consulted for this record",
"items": { "type": "string", "format": "uri-reference" }
}
}
}