project-atlas 0.1.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 +30 -0
- package/CONTRIBUTING.md +57 -0
- package/LICENSE +21 -0
- package/README.md +305 -0
- package/SECURITY.md +28 -0
- package/adapters/claude-code/README.md +27 -0
- package/adapters/continue/README.md +16 -0
- package/adapters/cursor/README.md +29 -0
- package/adapters/opencode/README.md +37 -0
- package/adapters/opencode/commands/kb-context.md +5 -0
- package/adapters/opencode/commands/kb-refresh.md +11 -0
- package/adapters/opencode/skills/project-atlas/SKILL.md +15 -0
- package/adapters/opencode/tools/project_atlas_context.js +37 -0
- package/adapters/opencode/tools/project_atlas_propose.js +53 -0
- package/adapters/opencode/tools/project_atlas_scan.js +34 -0
- package/dist/core.js +1395 -0
- package/dist/frontmatter.js +103 -0
- package/dist/index.js +7 -0
- package/dist/mcp.js +172 -0
- package/dist/scanner.js +128 -0
- package/dist/types.js +1 -0
- package/dist/utils.js +174 -0
- package/docs/site/README.md +47 -0
- package/docs/site/agent-quickstart.md +243 -0
- package/docs/site/best-practices.md +87 -0
- package/docs/site/en/README.md +49 -0
- package/docs/site/en/agent-quickstart.md +191 -0
- package/docs/site/en/quick-start.md +79 -0
- package/docs/site/publish-now.md +166 -0
- package/docs/site/quick-start.md +128 -0
- package/docs/site/release-process.md +94 -0
- package/docs/site/security-faq.md +55 -0
- package/docs/site/team-rollout.md +59 -0
- package/package.json +55 -0
- package/schema/context-pack.schema.json +80 -0
- package/schema/external-evidence.schema.json +84 -0
- package/schema/manifest.schema.json +28 -0
- package/schema/memory-candidate.schema.json +76 -0
- package/schema/proposal.schema.json +122 -0
- package/schema/trigger-result.schema.json +47 -0
- package/templates/frontend-app/README.md +5 -0
- package/templates/generic-service/README.md +5 -0
- package/templates/java-backend/README.md +5 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/liuliuyun/project-atlas/schema/external-evidence.schema.json",
|
|
4
|
+
"title": "project-atlas external evidence",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "external_evidence"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {
|
|
10
|
+
"const": "1.0"
|
|
11
|
+
},
|
|
12
|
+
"external_evidence": {
|
|
13
|
+
"type": "array",
|
|
14
|
+
"items": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"additionalProperties": false,
|
|
17
|
+
"required": ["source", "source_type", "path"],
|
|
18
|
+
"properties": {
|
|
19
|
+
"source": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"minLength": 1
|
|
22
|
+
},
|
|
23
|
+
"source_type": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1
|
|
26
|
+
},
|
|
27
|
+
"path": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1
|
|
30
|
+
},
|
|
31
|
+
"symbol": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"summary": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
},
|
|
37
|
+
"locator": {
|
|
38
|
+
"type": "string"
|
|
39
|
+
},
|
|
40
|
+
"confidence": {
|
|
41
|
+
"type": "number",
|
|
42
|
+
"minimum": 0,
|
|
43
|
+
"maximum": 1
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"$defs": {
|
|
50
|
+
"external_evidence_item": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": false,
|
|
53
|
+
"required": ["source", "source_type", "path"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"source": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"minLength": 1
|
|
58
|
+
},
|
|
59
|
+
"source_type": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"minLength": 1
|
|
62
|
+
},
|
|
63
|
+
"path": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"minLength": 1
|
|
66
|
+
},
|
|
67
|
+
"symbol": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"summary": {
|
|
71
|
+
"type": "string"
|
|
72
|
+
},
|
|
73
|
+
"locator": {
|
|
74
|
+
"type": "string"
|
|
75
|
+
},
|
|
76
|
+
"confidence": {
|
|
77
|
+
"type": "number",
|
|
78
|
+
"minimum": 0,
|
|
79
|
+
"maximum": 1
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/liuliuyun/project-atlas/schema/manifest.schema.json",
|
|
4
|
+
"title": "project-atlas manifest",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "max_context_chars", "required_files", "evidence_dir"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {
|
|
10
|
+
"const": "1.0"
|
|
11
|
+
},
|
|
12
|
+
"max_context_chars": {
|
|
13
|
+
"type": "integer",
|
|
14
|
+
"minimum": 1
|
|
15
|
+
},
|
|
16
|
+
"required_files": {
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"evidence_dir": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/liuliuyun/project-atlas/schema/memory-candidate.schema.json",
|
|
4
|
+
"title": "project-atlas memory candidate",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "source_files", "memories"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {
|
|
10
|
+
"const": "1.0"
|
|
11
|
+
},
|
|
12
|
+
"source_files": {
|
|
13
|
+
"type": "array",
|
|
14
|
+
"minItems": 1,
|
|
15
|
+
"items": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"minLength": 1,
|
|
18
|
+
"pattern": "^(?![A-Za-z]:)(?![\\\\/])(?!(?:\\.git|\\.project-atlas|\\.code-review-graph)(?:[\\\\/]|$))(?!\\.\\.(?:[\\\\/]|$))(?!.*[\\\\/]\\.\\.(?:[\\\\/]|$))(?!.*[\\r\\n]).+"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"memories": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"minItems": 1,
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"additionalProperties": false,
|
|
27
|
+
"required": ["target", "memory_type", "topic", "scope", "confidence", "summary", "body"],
|
|
28
|
+
"properties": {
|
|
29
|
+
"target": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^knowledge/(?!\\.\\.(?:/|$))(?!.*(?:/)\\.\\.(?:/|$))(?!.*[\\r\\n]).+"
|
|
32
|
+
},
|
|
33
|
+
"memory_type": {
|
|
34
|
+
"enum": ["decision", "experience", "project_fact"]
|
|
35
|
+
},
|
|
36
|
+
"topic": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"minLength": 1,
|
|
39
|
+
"pattern": "^(?!.*[\\r\\n]).+$"
|
|
40
|
+
},
|
|
41
|
+
"scope": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"minLength": 1,
|
|
44
|
+
"pattern": "^(?!.*[\\r\\n]).+$"
|
|
45
|
+
},
|
|
46
|
+
"confidence": {
|
|
47
|
+
"type": "number",
|
|
48
|
+
"minimum": 0,
|
|
49
|
+
"maximum": 1
|
|
50
|
+
},
|
|
51
|
+
"summary": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1,
|
|
54
|
+
"pattern": "^(?!.*[\\r\\n]).+$"
|
|
55
|
+
},
|
|
56
|
+
"body": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1
|
|
59
|
+
},
|
|
60
|
+
"owner": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"pattern": "^(?!.*[\\r\\n]).*$"
|
|
63
|
+
},
|
|
64
|
+
"related_docs": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"minLength": 1,
|
|
69
|
+
"pattern": "^(?![A-Za-z]:)(?![\\\\/])(?!(?:\\.git|\\.project-atlas|\\.code-review-graph)(?:[\\\\/]|$))(?!\\.\\.(?:[\\\\/]|$))(?!.*[\\\\/]\\.\\.(?:[\\\\/]|$))(?!.*[\\r\\n]).+"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/liuliuyun/project-atlas/schema/proposal.schema.json",
|
|
4
|
+
"title": "project-atlas proposal",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"proposal_id",
|
|
9
|
+
"schema_version",
|
|
10
|
+
"base_commit",
|
|
11
|
+
"worktree_diff_hash",
|
|
12
|
+
"source_files",
|
|
13
|
+
"source_hashes",
|
|
14
|
+
"target_files",
|
|
15
|
+
"operations",
|
|
16
|
+
"created_at",
|
|
17
|
+
"expires_at",
|
|
18
|
+
"reason",
|
|
19
|
+
"external_evidence",
|
|
20
|
+
"sensitive_scan_result",
|
|
21
|
+
"proposal_status",
|
|
22
|
+
"proposal_hash"
|
|
23
|
+
],
|
|
24
|
+
"properties": {
|
|
25
|
+
"proposal_id": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1
|
|
28
|
+
},
|
|
29
|
+
"schema_version": {
|
|
30
|
+
"const": "1.0"
|
|
31
|
+
},
|
|
32
|
+
"base_commit": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"minLength": 1
|
|
35
|
+
},
|
|
36
|
+
"worktree_diff_hash": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
39
|
+
},
|
|
40
|
+
"source_files": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"items": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 1
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"source_hashes": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"pattern": "^sha256:([a-f0-9]{64}|missing)$"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"target_files": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"pattern": "^knowledge/"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"operations": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"additionalProperties": false,
|
|
66
|
+
"required": ["type", "path", "content", "target_current_hash"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"type": {
|
|
69
|
+
"const": "replace_file"
|
|
70
|
+
},
|
|
71
|
+
"path": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"pattern": "^knowledge/"
|
|
74
|
+
},
|
|
75
|
+
"content": {
|
|
76
|
+
"type": "string"
|
|
77
|
+
},
|
|
78
|
+
"target_current_hash": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"pattern": "^sha256:([a-f0-9]{64}|missing)$"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"created_at": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"format": "date-time"
|
|
88
|
+
},
|
|
89
|
+
"expires_at": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"format": "date-time"
|
|
92
|
+
},
|
|
93
|
+
"reason": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"minLength": 1
|
|
96
|
+
},
|
|
97
|
+
"external_evidence": {
|
|
98
|
+
"type": "array",
|
|
99
|
+
"items": {
|
|
100
|
+
"$ref": "external-evidence.schema.json#/$defs/external_evidence_item"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"sensitive_scan_result": {
|
|
104
|
+
"enum": ["passed", "blocked"]
|
|
105
|
+
},
|
|
106
|
+
"proposal_status": {
|
|
107
|
+
"enum": ["proposed", "blocked_sensitive", "applied"]
|
|
108
|
+
},
|
|
109
|
+
"proposal_hash": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
112
|
+
},
|
|
113
|
+
"applied_hash": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
116
|
+
},
|
|
117
|
+
"applied_at": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"format": "date-time"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/liuliuyun/project-atlas/schema/trigger-result.schema.json",
|
|
4
|
+
"title": "project-atlas trigger result",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version",
|
|
9
|
+
"proposal_id",
|
|
10
|
+
"proposal_hash",
|
|
11
|
+
"worktree_diff_hash",
|
|
12
|
+
"applied_hash",
|
|
13
|
+
"needs_knowledge_update",
|
|
14
|
+
"proposal_status",
|
|
15
|
+
"updated_at"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"schema_version": {
|
|
19
|
+
"const": "1.0"
|
|
20
|
+
},
|
|
21
|
+
"proposal_id": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1
|
|
24
|
+
},
|
|
25
|
+
"proposal_hash": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
28
|
+
},
|
|
29
|
+
"worktree_diff_hash": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
32
|
+
},
|
|
33
|
+
"applied_hash": {
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
"needs_knowledge_update": {
|
|
37
|
+
"type": "boolean"
|
|
38
|
+
},
|
|
39
|
+
"proposal_status": {
|
|
40
|
+
"enum": ["proposed", "blocked_sensitive", "applied"]
|
|
41
|
+
},
|
|
42
|
+
"updated_at": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"format": "date-time"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|