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.
Files changed (43) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/CONTRIBUTING.md +57 -0
  3. package/LICENSE +21 -0
  4. package/README.md +305 -0
  5. package/SECURITY.md +28 -0
  6. package/adapters/claude-code/README.md +27 -0
  7. package/adapters/continue/README.md +16 -0
  8. package/adapters/cursor/README.md +29 -0
  9. package/adapters/opencode/README.md +37 -0
  10. package/adapters/opencode/commands/kb-context.md +5 -0
  11. package/adapters/opencode/commands/kb-refresh.md +11 -0
  12. package/adapters/opencode/skills/project-atlas/SKILL.md +15 -0
  13. package/adapters/opencode/tools/project_atlas_context.js +37 -0
  14. package/adapters/opencode/tools/project_atlas_propose.js +53 -0
  15. package/adapters/opencode/tools/project_atlas_scan.js +34 -0
  16. package/dist/core.js +1395 -0
  17. package/dist/frontmatter.js +103 -0
  18. package/dist/index.js +7 -0
  19. package/dist/mcp.js +172 -0
  20. package/dist/scanner.js +128 -0
  21. package/dist/types.js +1 -0
  22. package/dist/utils.js +174 -0
  23. package/docs/site/README.md +47 -0
  24. package/docs/site/agent-quickstart.md +243 -0
  25. package/docs/site/best-practices.md +87 -0
  26. package/docs/site/en/README.md +49 -0
  27. package/docs/site/en/agent-quickstart.md +191 -0
  28. package/docs/site/en/quick-start.md +79 -0
  29. package/docs/site/publish-now.md +166 -0
  30. package/docs/site/quick-start.md +128 -0
  31. package/docs/site/release-process.md +94 -0
  32. package/docs/site/security-faq.md +55 -0
  33. package/docs/site/team-rollout.md +59 -0
  34. package/package.json +55 -0
  35. package/schema/context-pack.schema.json +80 -0
  36. package/schema/external-evidence.schema.json +84 -0
  37. package/schema/manifest.schema.json +28 -0
  38. package/schema/memory-candidate.schema.json +76 -0
  39. package/schema/proposal.schema.json +122 -0
  40. package/schema/trigger-result.schema.json +47 -0
  41. package/templates/frontend-app/README.md +5 -0
  42. package/templates/generic-service/README.md +5 -0
  43. 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
+ }
@@ -0,0 +1,5 @@
1
+ # Frontend App Template
2
+
3
+ Use this template for frontend applications.
4
+
5
+ It keeps the default `knowledge/` structure and seeds prompts for routing, page state, API contracts, visual checks, and browser coverage.
@@ -0,0 +1,5 @@
1
+ # Generic Service Template
2
+
3
+ Use this template for a service or tool that does not yet need stack-specific knowledge prompts.
4
+
5
+ It keeps the default `knowledge/` structure and changes only the initial section wording.
@@ -0,0 +1,5 @@
1
+ # Java Backend Template
2
+
3
+ Use this template for Java backend services.
4
+
5
+ It keeps the default `knowledge/` structure and seeds prompts for controller, service, Feign, MQ, transaction, and release knowledge.