lunar-skills 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/.gemini/skills/anti-ai-ui-developer/SKILL.md +18 -0
- package/.gemini/skills/auto-idea-to-product/SKILL.md +29 -0
- package/.gemini/skills/master-app-builder/SKILL.md +26 -0
- package/.gemini/skills/master-orchestrator/SKILL.md +14 -0
- package/.gemini/skills/qa-circuit-breaker/SKILL.md +25 -0
- package/.gemini/skills/security-architect/SKILL.md +21 -0
- package/.gemini/skills/skills-manager/SKILL.md +8 -0
- package/.gemini/skills/system-architecture-diagrammer/SKILL.md +14 -0
- package/README.md +45 -0
- package/bin/cli.js +16 -0
- package/data/cards.json +91 -0
- package/data/milestones/MILESTONE-001.json +102 -0
- package/data/milestones/MILESTONE-002.json +91 -0
- package/data/milestones/MILESTONE-003.json +105 -0
- package/data/milestones/MILESTONE-004.json +112 -0
- package/data/milestones/MILESTONE-005.json +112 -0
- package/data/milestones/MILESTONE-006.json +112 -0
- package/data/milestones/MILESTONE-007.json +112 -0
- package/docs/adr/ADR-001.md +31 -0
- package/docs/adr/ADR-002.md +28 -0
- package/docs/api/api-architecture.md +70 -0
- package/docs/api/authentication-flow.md +31 -0
- package/docs/api/data-flow.md +21 -0
- package/docs/architecture/dependency-diagram.md +37 -0
- package/docs/architecture/feature-tree.md +35 -0
- package/docs/architecture/folder-structure.md +81 -0
- package/docs/architecture/module-diagram.md +43 -0
- package/docs/architecture/package-diagram.md +26 -0
- package/docs/architecture/system-architecture.md +42 -0
- package/docs/architecture.html +193 -0
- package/docs/database/database.md +67 -0
- package/docs/deployment/deployment.md +26 -0
- package/docs/infrastructure/cicd.md +26 -0
- package/docs/infrastructure/infrastructure.md +21 -0
- package/docs/infrastructure/logging.md +24 -0
- package/docs/infrastructure/monitoring.md +18 -0
- package/docs/security/security.md +35 -0
- package/docs/workflow/sequence-card-creation.md +26 -0
- package/docs/workflow/sequence-compaction.md +25 -0
- package/docs/workflow/sequence-scope-validation.md +20 -0
- package/index.html +540 -0
- package/package.json +38 -0
- package/scripts/card-manager.js +162 -0
- package/scripts/circuit-breaker.js +32 -0
- package/scripts/install-skills.js +60 -0
- package/scripts/mock-server.js +29 -0
- package/scripts/scope-enforcer.js +80 -0
- package/scripts/verify-system.js +88 -0
- package/src/index.js +102 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"milestoneId": "MILESTONE-004",
|
|
3
|
+
"compactedAt": "2026-07-28T09:37:27.230Z",
|
|
4
|
+
"totalCardsCompacted": 10,
|
|
5
|
+
"scopesIncluded": [
|
|
6
|
+
"SCOPE_CORE_ENGINE",
|
|
7
|
+
"SCOPE_DIAGRAM"
|
|
8
|
+
],
|
|
9
|
+
"summary": "Hồ sơ nén 10 thẻ công việc từ CARD-011 đến CARD-010",
|
|
10
|
+
"cards": [
|
|
11
|
+
{
|
|
12
|
+
"id": "CARD-011",
|
|
13
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 6",
|
|
14
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 6...",
|
|
15
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
16
|
+
"category": "Nghiệp vụ mới",
|
|
17
|
+
"status": "DONE",
|
|
18
|
+
"createdAt": "2026-07-28T09:26:40.333Z",
|
|
19
|
+
"completedAt": "2026-07-28T09:26:40.334Z"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "CARD-002",
|
|
23
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 7",
|
|
24
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 7...",
|
|
25
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
26
|
+
"category": "Nghiệp vụ mới",
|
|
27
|
+
"status": "DONE",
|
|
28
|
+
"createdAt": "2026-07-28T09:26:40.334Z",
|
|
29
|
+
"completedAt": "2026-07-28T09:26:40.334Z"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "CARD-003",
|
|
33
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 8",
|
|
34
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 8...",
|
|
35
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
36
|
+
"category": "Nghiệp vụ mới",
|
|
37
|
+
"status": "DONE",
|
|
38
|
+
"createdAt": "2026-07-28T09:26:40.334Z",
|
|
39
|
+
"completedAt": "2026-07-28T09:26:40.334Z"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "CARD-004",
|
|
43
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 9",
|
|
44
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 9...",
|
|
45
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
46
|
+
"category": "Nghiệp vụ mới",
|
|
47
|
+
"status": "DONE",
|
|
48
|
+
"createdAt": "2026-07-28T09:26:40.334Z",
|
|
49
|
+
"completedAt": "2026-07-28T09:26:40.335Z"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "CARD-005",
|
|
53
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 10",
|
|
54
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 10...",
|
|
55
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
56
|
+
"category": "Nghiệp vụ mới",
|
|
57
|
+
"status": "DONE",
|
|
58
|
+
"createdAt": "2026-07-28T09:26:40.335Z",
|
|
59
|
+
"completedAt": "2026-07-28T09:37:27.224Z"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "CARD-006",
|
|
63
|
+
"prompt": "Vẽ lại sơ đồ kiến trúc hệ thống",
|
|
64
|
+
"title": "Task: Vẽ lại sơ đồ kiến trúc hệ thống...",
|
|
65
|
+
"scope": "SCOPE_DIAGRAM",
|
|
66
|
+
"category": "Nghiệp vụ mới",
|
|
67
|
+
"status": "DONE",
|
|
68
|
+
"createdAt": "2026-07-28T09:37:27.226Z",
|
|
69
|
+
"completedAt": "2026-07-28T09:37:27.227Z"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "CARD-007",
|
|
73
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 1",
|
|
74
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 1...",
|
|
75
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
76
|
+
"category": "Nghiệp vụ mới",
|
|
77
|
+
"status": "DONE",
|
|
78
|
+
"createdAt": "2026-07-28T09:37:27.227Z",
|
|
79
|
+
"completedAt": "2026-07-28T09:37:27.228Z"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "CARD-008",
|
|
83
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 2",
|
|
84
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 2...",
|
|
85
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
86
|
+
"category": "Nghiệp vụ mới",
|
|
87
|
+
"status": "DONE",
|
|
88
|
+
"createdAt": "2026-07-28T09:37:27.228Z",
|
|
89
|
+
"completedAt": "2026-07-28T09:37:27.228Z"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "CARD-009",
|
|
93
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 3",
|
|
94
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 3...",
|
|
95
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
96
|
+
"category": "Nghiệp vụ mới",
|
|
97
|
+
"status": "DONE",
|
|
98
|
+
"createdAt": "2026-07-28T09:37:27.228Z",
|
|
99
|
+
"completedAt": "2026-07-28T09:37:27.229Z"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "CARD-010",
|
|
103
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 4",
|
|
104
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 4...",
|
|
105
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
106
|
+
"category": "Nghiệp vụ mới",
|
|
107
|
+
"status": "DONE",
|
|
108
|
+
"createdAt": "2026-07-28T09:37:27.229Z",
|
|
109
|
+
"completedAt": "2026-07-28T09:37:27.229Z"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"milestoneId": "MILESTONE-005",
|
|
3
|
+
"compactedAt": "2026-07-28T11:19:51.187Z",
|
|
4
|
+
"totalCardsCompacted": 10,
|
|
5
|
+
"scopesIncluded": [
|
|
6
|
+
"SCOPE_CORE_ENGINE",
|
|
7
|
+
"SCOPE_DIAGRAM"
|
|
8
|
+
],
|
|
9
|
+
"summary": "Hồ sơ nén 10 thẻ công việc từ CARD-011 đến CARD-010",
|
|
10
|
+
"cards": [
|
|
11
|
+
{
|
|
12
|
+
"id": "CARD-011",
|
|
13
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 5",
|
|
14
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 5...",
|
|
15
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
16
|
+
"category": "Nghiệp vụ mới",
|
|
17
|
+
"status": "DONE",
|
|
18
|
+
"createdAt": "2026-07-28T09:37:27.229Z",
|
|
19
|
+
"completedAt": "2026-07-28T09:37:27.232Z"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "CARD-002",
|
|
23
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 6",
|
|
24
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 6...",
|
|
25
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
26
|
+
"category": "Nghiệp vụ mới",
|
|
27
|
+
"status": "DONE",
|
|
28
|
+
"createdAt": "2026-07-28T09:37:27.232Z",
|
|
29
|
+
"completedAt": "2026-07-28T09:37:27.232Z"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "CARD-003",
|
|
33
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 7",
|
|
34
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 7...",
|
|
35
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
36
|
+
"category": "Nghiệp vụ mới",
|
|
37
|
+
"status": "DONE",
|
|
38
|
+
"createdAt": "2026-07-28T09:37:27.232Z",
|
|
39
|
+
"completedAt": "2026-07-28T09:37:27.232Z"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "CARD-004",
|
|
43
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 8",
|
|
44
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 8...",
|
|
45
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
46
|
+
"category": "Nghiệp vụ mới",
|
|
47
|
+
"status": "DONE",
|
|
48
|
+
"createdAt": "2026-07-28T09:37:27.232Z",
|
|
49
|
+
"completedAt": "2026-07-28T09:37:27.233Z"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "CARD-005",
|
|
53
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 9",
|
|
54
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 9...",
|
|
55
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
56
|
+
"category": "Nghiệp vụ mới",
|
|
57
|
+
"status": "DONE",
|
|
58
|
+
"createdAt": "2026-07-28T09:37:27.233Z",
|
|
59
|
+
"completedAt": "2026-07-28T09:37:27.233Z"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "CARD-006",
|
|
63
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 10",
|
|
64
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 10...",
|
|
65
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
66
|
+
"category": "Nghiệp vụ mới",
|
|
67
|
+
"status": "DONE",
|
|
68
|
+
"createdAt": "2026-07-28T09:37:27.233Z",
|
|
69
|
+
"completedAt": "2026-07-28T11:19:51.182Z"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "CARD-007",
|
|
73
|
+
"prompt": "Vẽ lại sơ đồ kiến trúc hệ thống",
|
|
74
|
+
"title": "Task: Vẽ lại sơ đồ kiến trúc hệ thống...",
|
|
75
|
+
"scope": "SCOPE_DIAGRAM",
|
|
76
|
+
"category": "Nghiệp vụ mới",
|
|
77
|
+
"status": "DONE",
|
|
78
|
+
"createdAt": "2026-07-28T11:19:51.184Z",
|
|
79
|
+
"completedAt": "2026-07-28T11:19:51.185Z"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "CARD-008",
|
|
83
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 1",
|
|
84
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 1...",
|
|
85
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
86
|
+
"category": "Nghiệp vụ mới",
|
|
87
|
+
"status": "DONE",
|
|
88
|
+
"createdAt": "2026-07-28T11:19:51.185Z",
|
|
89
|
+
"completedAt": "2026-07-28T11:19:51.186Z"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "CARD-009",
|
|
93
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 2",
|
|
94
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 2...",
|
|
95
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
96
|
+
"category": "Nghiệp vụ mới",
|
|
97
|
+
"status": "DONE",
|
|
98
|
+
"createdAt": "2026-07-28T11:19:51.186Z",
|
|
99
|
+
"completedAt": "2026-07-28T11:19:51.186Z"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "CARD-010",
|
|
103
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 3",
|
|
104
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 3...",
|
|
105
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
106
|
+
"category": "Nghiệp vụ mới",
|
|
107
|
+
"status": "DONE",
|
|
108
|
+
"createdAt": "2026-07-28T11:19:51.186Z",
|
|
109
|
+
"completedAt": "2026-07-28T11:19:51.186Z"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"milestoneId": "MILESTONE-006",
|
|
3
|
+
"compactedAt": "2026-07-28T11:56:33.213Z",
|
|
4
|
+
"totalCardsCompacted": 10,
|
|
5
|
+
"scopesIncluded": [
|
|
6
|
+
"SCOPE_CORE_ENGINE",
|
|
7
|
+
"SCOPE_DIAGRAM"
|
|
8
|
+
],
|
|
9
|
+
"summary": "Hồ sơ nén 10 thẻ công việc từ CARD-011 đến CARD-010",
|
|
10
|
+
"cards": [
|
|
11
|
+
{
|
|
12
|
+
"id": "CARD-011",
|
|
13
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 4",
|
|
14
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 4...",
|
|
15
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
16
|
+
"category": "Nghiệp vụ mới",
|
|
17
|
+
"status": "DONE",
|
|
18
|
+
"createdAt": "2026-07-28T11:19:51.186Z",
|
|
19
|
+
"completedAt": "2026-07-28T11:19:51.188Z"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "CARD-002",
|
|
23
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 5",
|
|
24
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 5...",
|
|
25
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
26
|
+
"category": "Nghiệp vụ mới",
|
|
27
|
+
"status": "DONE",
|
|
28
|
+
"createdAt": "2026-07-28T11:19:51.188Z",
|
|
29
|
+
"completedAt": "2026-07-28T11:19:51.188Z"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "CARD-003",
|
|
33
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 6",
|
|
34
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 6...",
|
|
35
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
36
|
+
"category": "Nghiệp vụ mới",
|
|
37
|
+
"status": "DONE",
|
|
38
|
+
"createdAt": "2026-07-28T11:19:51.188Z",
|
|
39
|
+
"completedAt": "2026-07-28T11:19:51.188Z"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "CARD-004",
|
|
43
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 7",
|
|
44
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 7...",
|
|
45
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
46
|
+
"category": "Nghiệp vụ mới",
|
|
47
|
+
"status": "DONE",
|
|
48
|
+
"createdAt": "2026-07-28T11:19:51.188Z",
|
|
49
|
+
"completedAt": "2026-07-28T11:19:51.189Z"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "CARD-005",
|
|
53
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 8",
|
|
54
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 8...",
|
|
55
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
56
|
+
"category": "Nghiệp vụ mới",
|
|
57
|
+
"status": "DONE",
|
|
58
|
+
"createdAt": "2026-07-28T11:19:51.189Z",
|
|
59
|
+
"completedAt": "2026-07-28T11:19:51.189Z"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "CARD-006",
|
|
63
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 9",
|
|
64
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 9...",
|
|
65
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
66
|
+
"category": "Nghiệp vụ mới",
|
|
67
|
+
"status": "DONE",
|
|
68
|
+
"createdAt": "2026-07-28T11:19:51.189Z",
|
|
69
|
+
"completedAt": "2026-07-28T11:19:51.189Z"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "CARD-007",
|
|
73
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 10",
|
|
74
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 10...",
|
|
75
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
76
|
+
"category": "Nghiệp vụ mới",
|
|
77
|
+
"status": "DONE",
|
|
78
|
+
"createdAt": "2026-07-28T11:19:51.189Z",
|
|
79
|
+
"completedAt": "2026-07-28T11:56:33.209Z"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "CARD-008",
|
|
83
|
+
"prompt": "Vẽ lại sơ đồ kiến trúc hệ thống",
|
|
84
|
+
"title": "Task: Vẽ lại sơ đồ kiến trúc hệ thống...",
|
|
85
|
+
"scope": "SCOPE_DIAGRAM",
|
|
86
|
+
"category": "Nghiệp vụ mới",
|
|
87
|
+
"status": "DONE",
|
|
88
|
+
"createdAt": "2026-07-28T11:56:33.210Z",
|
|
89
|
+
"completedAt": "2026-07-28T11:56:33.211Z"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "CARD-009",
|
|
93
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 1",
|
|
94
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 1...",
|
|
95
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
96
|
+
"category": "Nghiệp vụ mới",
|
|
97
|
+
"status": "DONE",
|
|
98
|
+
"createdAt": "2026-07-28T11:56:33.211Z",
|
|
99
|
+
"completedAt": "2026-07-28T11:56:33.212Z"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "CARD-010",
|
|
103
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 2",
|
|
104
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 2...",
|
|
105
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
106
|
+
"category": "Nghiệp vụ mới",
|
|
107
|
+
"status": "DONE",
|
|
108
|
+
"createdAt": "2026-07-28T11:56:33.212Z",
|
|
109
|
+
"completedAt": "2026-07-28T11:56:33.212Z"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"milestoneId": "MILESTONE-007",
|
|
3
|
+
"compactedAt": "2026-07-28T12:43:56.225Z",
|
|
4
|
+
"totalCardsCompacted": 10,
|
|
5
|
+
"scopesIncluded": [
|
|
6
|
+
"SCOPE_CORE_ENGINE",
|
|
7
|
+
"SCOPE_DIAGRAM"
|
|
8
|
+
],
|
|
9
|
+
"summary": "Hồ sơ nén 10 thẻ công việc từ CARD-011 đến CARD-010",
|
|
10
|
+
"cards": [
|
|
11
|
+
{
|
|
12
|
+
"id": "CARD-011",
|
|
13
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 3",
|
|
14
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 3...",
|
|
15
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
16
|
+
"category": "Nghiệp vụ mới",
|
|
17
|
+
"status": "DONE",
|
|
18
|
+
"createdAt": "2026-07-28T11:56:33.212Z",
|
|
19
|
+
"completedAt": "2026-07-28T11:56:33.213Z"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "CARD-002",
|
|
23
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 4",
|
|
24
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 4...",
|
|
25
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
26
|
+
"category": "Nghiệp vụ mới",
|
|
27
|
+
"status": "DONE",
|
|
28
|
+
"createdAt": "2026-07-28T11:56:33.214Z",
|
|
29
|
+
"completedAt": "2026-07-28T11:56:33.214Z"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "CARD-003",
|
|
33
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 5",
|
|
34
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 5...",
|
|
35
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
36
|
+
"category": "Nghiệp vụ mới",
|
|
37
|
+
"status": "DONE",
|
|
38
|
+
"createdAt": "2026-07-28T11:56:33.214Z",
|
|
39
|
+
"completedAt": "2026-07-28T11:56:33.214Z"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "CARD-004",
|
|
43
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 6",
|
|
44
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 6...",
|
|
45
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
46
|
+
"category": "Nghiệp vụ mới",
|
|
47
|
+
"status": "DONE",
|
|
48
|
+
"createdAt": "2026-07-28T11:56:33.214Z",
|
|
49
|
+
"completedAt": "2026-07-28T11:56:33.215Z"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "CARD-005",
|
|
53
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 7",
|
|
54
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 7...",
|
|
55
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
56
|
+
"category": "Nghiệp vụ mới",
|
|
57
|
+
"status": "DONE",
|
|
58
|
+
"createdAt": "2026-07-28T11:56:33.215Z",
|
|
59
|
+
"completedAt": "2026-07-28T11:56:33.215Z"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "CARD-006",
|
|
63
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 8",
|
|
64
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 8...",
|
|
65
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
66
|
+
"category": "Nghiệp vụ mới",
|
|
67
|
+
"status": "DONE",
|
|
68
|
+
"createdAt": "2026-07-28T11:56:33.215Z",
|
|
69
|
+
"completedAt": "2026-07-28T11:56:33.216Z"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "CARD-007",
|
|
73
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 9",
|
|
74
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 9...",
|
|
75
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
76
|
+
"category": "Nghiệp vụ mới",
|
|
77
|
+
"status": "DONE",
|
|
78
|
+
"createdAt": "2026-07-28T11:56:33.216Z",
|
|
79
|
+
"completedAt": "2026-07-28T11:56:33.216Z"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "CARD-008",
|
|
83
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 10",
|
|
84
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 10...",
|
|
85
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
86
|
+
"category": "Nghiệp vụ mới",
|
|
87
|
+
"status": "DONE",
|
|
88
|
+
"createdAt": "2026-07-28T11:56:33.216Z",
|
|
89
|
+
"completedAt": "2026-07-28T12:43:56.221Z"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "CARD-009",
|
|
93
|
+
"prompt": "Vẽ lại sơ đồ kiến trúc hệ thống",
|
|
94
|
+
"title": "Task: Vẽ lại sơ đồ kiến trúc hệ thống...",
|
|
95
|
+
"scope": "SCOPE_DIAGRAM",
|
|
96
|
+
"category": "Nghiệp vụ mới",
|
|
97
|
+
"status": "DONE",
|
|
98
|
+
"createdAt": "2026-07-28T12:43:56.222Z",
|
|
99
|
+
"completedAt": "2026-07-28T12:43:56.223Z"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "CARD-010",
|
|
103
|
+
"prompt": "Nghiệp vụ kiểm thử nén số 1",
|
|
104
|
+
"title": "Task: Nghiệp vụ kiểm thử nén số 1...",
|
|
105
|
+
"scope": "SCOPE_CORE_ENGINE",
|
|
106
|
+
"category": "Nghiệp vụ mới",
|
|
107
|
+
"status": "DONE",
|
|
108
|
+
"createdAt": "2026-07-28T12:43:56.223Z",
|
|
109
|
+
"completedAt": "2026-07-28T12:43:56.224Z"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# ADR-001: Selection of File-Based Hierarchical Compaction over SQL/Docker
|
|
2
|
+
|
|
3
|
+
- **Status:** APPROVED
|
|
4
|
+
- **Date:** 2026-07-27
|
|
5
|
+
- **Deciders:** Principal Solution Architect & User
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## CONTEXT
|
|
10
|
+
During early development, Docker containers and PostgreSQL/Prisma database schemas were created for fullstack deployment. However, for a lightweight, zero-friction AI Skill Framework, running Docker and SQL services locally created unnecessary infrastructure overhead and environment dependencies.
|
|
11
|
+
|
|
12
|
+
## DECISION
|
|
13
|
+
We decided to **eliminate Docker and SQL database dependencies completely** from the core skill framework repository. Instead, we implemented a 3-Tier File-Based Hierarchical Compaction Engine (`data/cards.json` -> `data/milestones/` -> `data/reports/`).
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
graph LR
|
|
17
|
+
RawCards["10 Cards (cards.json)"] -->|Compaction Engine| Milestone["1 Milestone (data/milestones/)"]
|
|
18
|
+
Milestone -->|Executive Summarizer| MasterReport["1 Macro Report (data/reports/)"]
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## PROS
|
|
22
|
+
1. **Zero Infrastructure Overhead**: Runs 100% natively on Node.js with zero external dependencies.
|
|
23
|
+
2. **Context Window Optimization**: Keeps active card files lightweight (<10 cards) to avoid prompt token bloating.
|
|
24
|
+
3. **High Portability**: The skill repository can be cloned or copied as a single lightweight folder.
|
|
25
|
+
|
|
26
|
+
## CONS
|
|
27
|
+
1. High-concurrency ACID transactions require locking mechanisms on JSON files.
|
|
28
|
+
|
|
29
|
+
## ALTERNATIVES CONSIDERED
|
|
30
|
+
- PostgreSQL + Prisma ORM (Rejected due to setup complexity for local CLI skill users).
|
|
31
|
+
- SQLite (Considered, but JSON/Markdown provides direct human readability).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# ADR-002: Implementation of Scope Enforcer Boundary Guard
|
|
2
|
+
|
|
3
|
+
- **Status:** APPROVED
|
|
4
|
+
- **Date:** 2026-07-27
|
|
5
|
+
- **Deciders:** Principal Solution Architect & User
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## CONTEXT
|
|
10
|
+
Unrestricted AI Subagent execution often leads to context drift, unwanted modifications across unrelated source files, and excessive prompt token consumption.
|
|
11
|
+
|
|
12
|
+
## DECISION
|
|
13
|
+
We implemented a strict Scope Boundary Guard (`scripts/scope-enforcer.js`). Every card created is assigned an explicit scope (e.g. `SCOPE_DIAGRAM`, `SCOPE_CORE_ENGINE`, `SCOPE_SECURITY`, `SCOPE_PAYMENT`). File modifications outside the allowed scope paths are blocked automatically.
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
graph TD
|
|
17
|
+
Action["AI Action Request"] --> CheckScope{"File in Card Scope Allowed Paths?"}
|
|
18
|
+
CheckScope -->|Yes| Pass["SCOPE_PASSED ✅"]
|
|
19
|
+
CheckScope -->|No| Block["SCOPE_VIOLATION_BLOCKED ⛔"]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## PROS
|
|
23
|
+
1. **Token Cost Control**: Prevents subagents from inspecting or modifying unrelated files.
|
|
24
|
+
2. **Codebase Protection**: Eliminates side-effects and accidental regressions.
|
|
25
|
+
3. **Structured Milestones**: Groups cards cleanly by scope when compacting into milestone files.
|
|
26
|
+
|
|
27
|
+
## CONS
|
|
28
|
+
1. Multi-scope cross-cutting refactoring tasks require explicit `GLOBAL_SCOPE` assignment.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# 8. API Architecture Documentation
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## 🌐 8.1 API Overview & Server Implementation
|
|
6
|
+
|
|
7
|
+
The API Server is implemented in `src/index.js` using Node.js native `http` module listening on port `3000` (configurable via `process.env.PORT`).
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
graph TD
|
|
11
|
+
Client["Client / Browser / CLI"] -->|HTTP Request| Server["src/index.js (HTTP Server Port 3000)"]
|
|
12
|
+
|
|
13
|
+
Server --> Router{"URL Path Matcher"}
|
|
14
|
+
Router -->|GET /health<br>GET /api/health| HealthEP["Health Endpoint"]
|
|
15
|
+
Router -->|GET /api/skills| SkillsEP["Skills Manager Endpoint"]
|
|
16
|
+
Router -->|GET /api/cards| GetCardsEP["Get All Cards Endpoint"]
|
|
17
|
+
Router -->|POST /api/cards| PostCardEP["Create Card Endpoint"]
|
|
18
|
+
Router -->|GET /<br>GET /index.html| StaticEP["Static File Server (index.html)"]
|
|
19
|
+
|
|
20
|
+
PostCardEP --> Engine["CardManager (scripts/card-manager.js)"]
|
|
21
|
+
GetCardsEP --> Storage["data/cards.json"]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 📝 8.2 Endpoint Specifications
|
|
27
|
+
|
|
28
|
+
### 1. `GET /api/health`
|
|
29
|
+
- **Description**: Verifies API Server uptime and operational health.
|
|
30
|
+
- **Response**: `200 OK`
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"status": "UP",
|
|
34
|
+
"app": "Universal Community Auto-Idea Skill Engine",
|
|
35
|
+
"timestamp": "2026-07-27T19:50:00.000Z"
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. `GET /api/cards`
|
|
40
|
+
- **Description**: Returns all active task cards from `data/cards.json`.
|
|
41
|
+
- **Response**: `200 OK`
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"status": "SUCCESS",
|
|
45
|
+
"totalCards": 2,
|
|
46
|
+
"cards": [ /* Card Objects Array */ ]
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 3. `POST /api/cards`
|
|
51
|
+
- **Description**: Creates a new task card from a user prompt, detects its Scope, and triggers auto-compaction if needed.
|
|
52
|
+
- **Request Payload**:
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"prompt": "Tích hợp mã ngân hàng ting-ting",
|
|
56
|
+
"category": "Payment"
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
- **Response**: `201 Created`
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"status": "SUCCESS",
|
|
63
|
+
"card": {
|
|
64
|
+
"id": "CARD-002",
|
|
65
|
+
"prompt": "Tích hợp mã ngân hàng ting-ting",
|
|
66
|
+
"scope": "SCOPE_PAYMENT",
|
|
67
|
+
"status": "IN_PROGRESS"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 11. Authentication & Security Flow Documentation
|
|
2
|
+
|
|
3
|
+
**Status in Current Source Code:** Local & CLI Direct Execution Mode (Authentication Middleware is *Not Implemented* for local CLI mode, but proposed below for Production Deployment).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🔒 11.1 Proposed Enterprise Security & Auth Architecture
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
graph TD
|
|
11
|
+
Client["Client App / Browser"] -->|1. POST /api/auth/login| AuthEP["Auth Controller"]
|
|
12
|
+
AuthEP -->|2. Verify Credentials| UserDB["User Account Store (Bcrypt Hash)"]
|
|
13
|
+
AuthEP -->|3. Issue JWT Token| TokenSigner["JWT Signer"]
|
|
14
|
+
|
|
15
|
+
TokenSigner -->|4. Return Short-Lived Access Token| Client
|
|
16
|
+
TokenSigner -->|5. Set HTTP-Only Cookie| RefreshCookie["Refresh Token Cookie (HttpOnly, Secure)"]
|
|
17
|
+
|
|
18
|
+
Client -->|6. API Request + Bearer Token| APIGateway["API Gateway / Scope Middleware"]
|
|
19
|
+
APIGateway -->|7. Verify Token & RBAC Permissions| ScopeGuard["Scope Enforcer"]
|
|
20
|
+
ScopeGuard -->|8. Scope Passed| InternalEngine["Card Manager Engine"]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 🛡 11.2 Scope & Permission RBAC Table (Proposed Blueprint)
|
|
26
|
+
|
|
27
|
+
| Role | Permitted Scopes | Allowed Operations |
|
|
28
|
+
| :--- | :--- | :--- |
|
|
29
|
+
| **USER / DEVELOPER** | `SCOPE_DIAGRAM`, `SCOPE_PAYMENT`, `SCOPE_CORE_ENGINE` | Tạo thẻ mới, đọc thẻ active, xem sơ đồ `index.html`. |
|
|
30
|
+
| **ADMIN / ARCHITECT** | `GLOBAL_SCOPE` | Nén thẻ thủ công, dọn dẹp Milestones, sửa file hệ thống core. |
|
|
31
|
+
| **GUEST** | `SCOPE_READONLY` | Chỉ được phép xem `index.html` và `GET /api/cards`. |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 10. Data Flow Diagram Documentation
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## 🌊 10.1 End-to-End Data Flow Pipeline
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
graph TD
|
|
9
|
+
UserPrompt["1. User Prompt (Terminal/Gemini)"] -->|Input Text| API["2. API / CLI Interface (src/index.js)"]
|
|
10
|
+
API -->|Passes Prompt| Manager["3. Card Manager (scripts/card-manager.js)"]
|
|
11
|
+
|
|
12
|
+
Manager -->|Validate Scope| ScopeGuard["4. Scope Enforcer (scripts/scope-enforcer.js)"]
|
|
13
|
+
ScopeGuard -->|Passed| SaveLevel0["5. Save Level 0: data/cards.json"]
|
|
14
|
+
|
|
15
|
+
SaveLevel0 -->|10 Cards Milestone| Compactor["6. Compaction Engine"]
|
|
16
|
+
Compactor -->|Save Level 1| Milestones["7. Save Level 1: data/milestones/MILESTONE-xxx.json"]
|
|
17
|
+
Milestones -->|10 Milestones Macro| Reports["8. Save Level 2: data/reports/MASTER_REPORT_xxx.md"]
|
|
18
|
+
|
|
19
|
+
Manager -->|Reads Cards| Visualizer["9. Dashboard Visualizer (index.html)"]
|
|
20
|
+
Visualizer -->|Renders SVG/Mermaid| UserView["10. Live User Dashboard Display"]
|
|
21
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 6. Dependency Diagram Documentation
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## 🔗 6.1 Complete Call Chain & Dependency Flow
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
graph TD
|
|
9
|
+
UserClient["HTTP Client / Terminal"] -->|HTTP GET / POST| IndexJS["src/index.js (Server Controller)"]
|
|
10
|
+
|
|
11
|
+
subgraph Internal_Engine ["Internal Engine Scope"]
|
|
12
|
+
IndexJS -->|Imports & Calls| CardManager["scripts/card-manager.js (Business Engine)"]
|
|
13
|
+
CardManager -->|Validates Action| ScopeEnforcer["scripts/scope-enforcer.js (Security Guard)"]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
subgraph Data_Persistence ["Data Persistence Layer"]
|
|
17
|
+
CardManager -->|Reads/Writes Active Cards| CardsJSON["data/cards.json"]
|
|
18
|
+
CardManager -->|Writes Compacted Milestones| MilestonesDir["data/milestones/MILESTONE-xxx.json"]
|
|
19
|
+
CardManager -->|Writes Macro Reports| ReportsDir["data/reports/MASTER_REPORT_xxx.md"]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
subgraph Visual_Output ["Visual Output Layer"]
|
|
23
|
+
IndexJS -->|Serves Static File| IndexHTML["index.html"]
|
|
24
|
+
IndexHTML -->|CDN Fetch| MermaidCDN["Mermaid.js CDN (mermaid.min.js)"]
|
|
25
|
+
end
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🔍 6.2 Full Dependency Matrix
|
|
31
|
+
|
|
32
|
+
1. `src/index.js` ➔ `scripts/card-manager.js` (Required)
|
|
33
|
+
2. `scripts/card-manager.js` ➔ `scripts/scope-enforcer.js` (Required)
|
|
34
|
+
3. `scripts/card-manager.js` ➔ `data/cards.json` (Required, Auto-creates if missing)
|
|
35
|
+
4. `scripts/card-manager.js` ➔ `data/milestones/` (Required, Auto-creates if missing)
|
|
36
|
+
5. `scripts/card-manager.js` ➔ `data/reports/` (Required, Auto-creates if missing)
|
|
37
|
+
6. `index.html` ➔ `https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js` (External CDN for rendering graphs)
|