@robotaccomplice/architext 1.0.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/LICENSE +22 -0
- package/README.md +497 -0
- package/docs/architecture/AGENTS_APPENDIX.md +39 -0
- package/docs/architecture/ARCHITECTURE_PLAN.md +520 -0
- package/docs/architecture/LLM_ARCHITEXT.md +95 -0
- package/docs/architext/AGENTS_APPENDIX.md +39 -0
- package/docs/architext/LLM_ARCHITEXT.md +64 -0
- package/docs/architext/README.md +120 -0
- package/docs/architext/data/data-classification.json +34 -0
- package/docs/architext/data/decisions.json +54 -0
- package/docs/architext/data/flows.json +114 -0
- package/docs/architext/data/glossary.json +24 -0
- package/docs/architext/data/manifest.json +23 -0
- package/docs/architext/data/nodes.json +194 -0
- package/docs/architext/data/risks.json +59 -0
- package/docs/architext/data/views.json +91 -0
- package/docs/architext/dist/assets/index-BWZ6sEpA.js +51 -0
- package/docs/architext/dist/assets/index-iWLms0Pa.css +1 -0
- package/docs/architext/dist/compass.svg +9 -0
- package/docs/architext/dist/index.html +14 -0
- package/docs/architext/index.html +13 -0
- package/docs/architext/package-lock.json +1822 -0
- package/docs/architext/package.json +28 -0
- package/docs/architext/public/compass.svg +9 -0
- package/docs/architext/schema/data-classification.schema.json +28 -0
- package/docs/architext/schema/decisions.schema.json +33 -0
- package/docs/architext/schema/flows.schema.json +72 -0
- package/docs/architext/schema/glossary.schema.json +22 -0
- package/docs/architext/schema/manifest.schema.json +47 -0
- package/docs/architext/schema/nodes.schema.json +69 -0
- package/docs/architext/schema/risks.schema.json +34 -0
- package/docs/architext/schema/views.schema.json +48 -0
- package/docs/architext/src/main.tsx +2133 -0
- package/docs/architext/src/styles.css +1475 -0
- package/docs/architext/tools/validate-architext.mjs +163 -0
- package/docs/architext/tsconfig.json +21 -0
- package/docs/architext/vite.config.ts +47 -0
- package/docs/assets/screenshots/architext-c4.png +0 -0
- package/docs/assets/screenshots/architext-data-risks.png +0 -0
- package/docs/assets/screenshots/architext-flows.png +0 -0
- package/docs/assets/screenshots/architext-sequence.png +0 -0
- package/package.json +81 -0
- package/tools/architext-adopt.mjs +874 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "architext-template",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=20"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "vite --host 127.0.0.1 --port 4317",
|
|
11
|
+
"build": "tsc && vite build",
|
|
12
|
+
"preview": "vite preview --host 127.0.0.1 --port 4317",
|
|
13
|
+
"validate": "node tools/validate-architext.mjs"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
17
|
+
"ajv": "^8.17.1",
|
|
18
|
+
"ajv-formats": "^3.0.1",
|
|
19
|
+
"vite": "^6.0.7",
|
|
20
|
+
"typescript": "^5.7.2",
|
|
21
|
+
"react": "^19.0.0",
|
|
22
|
+
"react-dom": "^19.0.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/react": "^19.0.2",
|
|
26
|
+
"@types/react-dom": "^19.0.2"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Architext drafting compass favicon">
|
|
2
|
+
<rect width="64" height="64" rx="12" fill="#080b10"/>
|
|
3
|
+
<circle cx="32" cy="15" r="5" fill="#111620" stroke="#f5c84c" stroke-width="3"/>
|
|
4
|
+
<path d="M32 20L18 52" stroke="#e9edf4" stroke-width="4" stroke-linecap="round"/>
|
|
5
|
+
<path d="M32 20l15 32" stroke="#e9edf4" stroke-width="4" stroke-linecap="round"/>
|
|
6
|
+
<path d="M25 35h14" stroke="#58a6ff" stroke-width="3" stroke-linecap="round"/>
|
|
7
|
+
<path d="M16 55l5-1M44 54l6 1" stroke="#f5c84c" stroke-width="3" stroke-linecap="round"/>
|
|
8
|
+
<path d="M20 48a17 17 0 0 1 24 0" fill="none" stroke="#5dd39e" stroke-width="2" stroke-linecap="round"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/data-classification.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["classes"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"classes": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"minItems": 1,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["id", "name", "sensitivity", "handling"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": { "$ref": "#/$defs/id" },
|
|
17
|
+
"name": { "type": "string", "minLength": 1 },
|
|
18
|
+
"sensitivity": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
19
|
+
"handling": { "type": "string", "minLength": 1 }
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"$defs": {
|
|
25
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/decisions.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["decisions"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"decisions": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"items": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["id", "status", "title", "context", "decision", "consequences", "relatedNodes", "relatedFlows"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": { "$ref": "#/$defs/id" },
|
|
16
|
+
"status": { "type": "string", "enum": ["planned", "accepted", "deprecated", "superseded"] },
|
|
17
|
+
"title": { "type": "string", "minLength": 1 },
|
|
18
|
+
"context": { "type": "string", "minLength": 1 },
|
|
19
|
+
"decision": { "type": "string", "minLength": 1 },
|
|
20
|
+
"consequences": { "$ref": "#/$defs/stringList" },
|
|
21
|
+
"relatedNodes": { "$ref": "#/$defs/idList" },
|
|
22
|
+
"relatedFlows": { "$ref": "#/$defs/idList" }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"$defs": {
|
|
28
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
|
29
|
+
"idList": { "type": "array", "items": { "$ref": "#/$defs/id" } },
|
|
30
|
+
"stringList": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/flows.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["flows"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"flows": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"minItems": 1,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": [
|
|
15
|
+
"id",
|
|
16
|
+
"name",
|
|
17
|
+
"status",
|
|
18
|
+
"summary",
|
|
19
|
+
"trigger",
|
|
20
|
+
"actors",
|
|
21
|
+
"steps",
|
|
22
|
+
"guarantees",
|
|
23
|
+
"failureBehavior",
|
|
24
|
+
"observability",
|
|
25
|
+
"verification",
|
|
26
|
+
"knownGaps"
|
|
27
|
+
],
|
|
28
|
+
"properties": {
|
|
29
|
+
"id": { "$ref": "#/$defs/id" },
|
|
30
|
+
"name": { "type": "string", "minLength": 1 },
|
|
31
|
+
"status": { "type": "string", "enum": ["planned", "partial", "implemented"] },
|
|
32
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
33
|
+
"trigger": { "type": "string", "minLength": 1 },
|
|
34
|
+
"actors": { "$ref": "#/$defs/idList" },
|
|
35
|
+
"steps": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"minItems": 1,
|
|
38
|
+
"items": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": false,
|
|
41
|
+
"required": ["id", "from", "to", "action", "summary", "data"],
|
|
42
|
+
"properties": {
|
|
43
|
+
"id": { "$ref": "#/$defs/id" },
|
|
44
|
+
"from": { "$ref": "#/$defs/id" },
|
|
45
|
+
"to": { "$ref": "#/$defs/id" },
|
|
46
|
+
"action": { "type": "string", "minLength": 1 },
|
|
47
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
48
|
+
"data": { "$ref": "#/$defs/idList" }
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"guarantees": { "$ref": "#/$defs/stringList" },
|
|
53
|
+
"failureBehavior": { "$ref": "#/$defs/stringList" },
|
|
54
|
+
"observability": { "$ref": "#/$defs/stringList" },
|
|
55
|
+
"verification": { "$ref": "#/$defs/stringList" },
|
|
56
|
+
"knownGaps": { "$ref": "#/$defs/stringList" }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"$defs": {
|
|
62
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
|
63
|
+
"idList": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": { "$ref": "#/$defs/id" }
|
|
66
|
+
},
|
|
67
|
+
"stringList": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": { "type": "string", "minLength": 1 }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/glossary.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["terms"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"terms": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"items": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["term", "definition"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"term": { "type": "string", "minLength": 1 },
|
|
16
|
+
"definition": { "type": "string", "minLength": 1 }
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/manifest.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["schemaVersion", "project", "generatedAt", "defaultViewId", "files", "notes"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": { "type": "string", "minLength": 1 },
|
|
9
|
+
"project": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"required": ["id", "name", "summary"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"id": { "$ref": "#/$defs/id" },
|
|
15
|
+
"name": { "type": "string", "minLength": 1 },
|
|
16
|
+
"summary": { "type": "string", "minLength": 1 }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"generatedAt": { "type": "string", "format": "date-time" },
|
|
20
|
+
"defaultViewId": { "$ref": "#/$defs/id" },
|
|
21
|
+
"files": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"required": ["nodes", "flows", "views", "dataClassification", "decisions", "risks", "glossary"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"nodes": { "type": "string", "minLength": 1 },
|
|
27
|
+
"flows": { "type": "string", "minLength": 1 },
|
|
28
|
+
"views": { "type": "string", "minLength": 1 },
|
|
29
|
+
"dataClassification": { "type": "string", "minLength": 1 },
|
|
30
|
+
"decisions": { "type": "string", "minLength": 1 },
|
|
31
|
+
"risks": { "type": "string", "minLength": 1 },
|
|
32
|
+
"glossary": { "type": "string", "minLength": 1 }
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"notes": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"items": { "type": "string", "minLength": 1 }
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"$defs": {
|
|
41
|
+
"id": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/nodes.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["nodes"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"nodes": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"minItems": 1,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": [
|
|
15
|
+
"id",
|
|
16
|
+
"type",
|
|
17
|
+
"name",
|
|
18
|
+
"summary",
|
|
19
|
+
"responsibilities",
|
|
20
|
+
"owner",
|
|
21
|
+
"sourcePaths",
|
|
22
|
+
"runtime",
|
|
23
|
+
"interfaces",
|
|
24
|
+
"dependencies",
|
|
25
|
+
"dataHandled",
|
|
26
|
+
"security",
|
|
27
|
+
"observability",
|
|
28
|
+
"relatedFlows",
|
|
29
|
+
"relatedDecisions",
|
|
30
|
+
"knownRisks",
|
|
31
|
+
"verification"
|
|
32
|
+
],
|
|
33
|
+
"properties": {
|
|
34
|
+
"id": { "$ref": "#/$defs/id" },
|
|
35
|
+
"type": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"enum": ["actor", "software-system", "client", "service", "module", "worker", "queue", "data-store", "external-service", "deployment-unit", "trust-boundary"]
|
|
38
|
+
},
|
|
39
|
+
"name": { "type": "string", "minLength": 1 },
|
|
40
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
41
|
+
"responsibilities": { "$ref": "#/$defs/stringList" },
|
|
42
|
+
"owner": { "type": "string", "minLength": 1 },
|
|
43
|
+
"sourcePaths": { "$ref": "#/$defs/stringList" },
|
|
44
|
+
"runtime": { "type": "string", "minLength": 1 },
|
|
45
|
+
"interfaces": { "$ref": "#/$defs/stringList" },
|
|
46
|
+
"dependencies": { "$ref": "#/$defs/idList" },
|
|
47
|
+
"dataHandled": { "$ref": "#/$defs/idList" },
|
|
48
|
+
"security": { "$ref": "#/$defs/stringList" },
|
|
49
|
+
"observability": { "$ref": "#/$defs/stringList" },
|
|
50
|
+
"relatedFlows": { "$ref": "#/$defs/idList" },
|
|
51
|
+
"relatedDecisions": { "$ref": "#/$defs/idList" },
|
|
52
|
+
"knownRisks": { "$ref": "#/$defs/idList" },
|
|
53
|
+
"verification": { "$ref": "#/$defs/stringList" }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"$defs": {
|
|
59
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
|
60
|
+
"idList": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": { "$ref": "#/$defs/id" }
|
|
63
|
+
},
|
|
64
|
+
"stringList": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": { "type": "string", "minLength": 1 }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/risks.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["risks"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"risks": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"items": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["id", "title", "category", "severity", "status", "summary", "mitigations", "relatedNodes", "relatedFlows"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": { "$ref": "#/$defs/id" },
|
|
16
|
+
"title": { "type": "string", "minLength": 1 },
|
|
17
|
+
"category": { "type": "string", "enum": ["technical", "operational", "security", "data"] },
|
|
18
|
+
"severity": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
19
|
+
"status": { "type": "string", "enum": ["open", "planned", "mitigating", "accepted", "closed"] },
|
|
20
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
21
|
+
"mitigations": { "$ref": "#/$defs/stringList" },
|
|
22
|
+
"relatedNodes": { "$ref": "#/$defs/idList" },
|
|
23
|
+
"relatedFlows": { "$ref": "#/$defs/idList" }
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"$defs": {
|
|
29
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
|
30
|
+
"idList": { "type": "array", "items": { "$ref": "#/$defs/id" } },
|
|
31
|
+
"stringList": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://architext.local/schema/views.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["views"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"views": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"minItems": 1,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["id", "name", "type", "summary", "lanes"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": { "$ref": "#/$defs/id" },
|
|
17
|
+
"name": { "type": "string", "minLength": 1 },
|
|
18
|
+
"type": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["system-map", "flow-explorer", "c4-context", "c4-container", "c4-component", "dataflow", "deployment", "risk-overlay", "sequence"]
|
|
21
|
+
},
|
|
22
|
+
"summary": { "type": "string", "minLength": 1 },
|
|
23
|
+
"lanes": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"minItems": 1,
|
|
26
|
+
"items": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": ["id", "name", "nodeIds"],
|
|
30
|
+
"properties": {
|
|
31
|
+
"id": { "$ref": "#/$defs/id" },
|
|
32
|
+
"name": { "type": "string", "minLength": 1 },
|
|
33
|
+
"nodeIds": { "$ref": "#/$defs/idList" }
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"$defs": {
|
|
42
|
+
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
|
|
43
|
+
"idList": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": { "$ref": "#/$defs/id" }
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|