Skip to content

Commit e105280

Browse files
committed
feat: single-source sister registry + fix 4 stale files
Create docs/sisters-registry.json as the single source of truth for all 5 sisters. All bash scripts and CI workflows now read from this registry instead of maintaining hardcoded sister lists. - Create docs/sisters-registry.json (5 sisters, 16 fields each) - Create scripts/lib/load-sisters.sh (jq-based bash loader) - Migrate check-canonical-consistency.sh to source from registry - Migrate check-command-surface.sh to source from registry - Migrate canonical-consistency.yml to dynamic clone from registry - Add registry integrity guardrail (section 41) - Fix install-mcp-servers.sh: add agentic-time - Fix Cargo.toml: add agentic-time to exclude - Fix sync_artifacts.sh: add .aid and .atime to find predicate Adding a new sister now requires editing ONE file instead of 21.
1 parent b54975d commit e105280

8 files changed

Lines changed: 303 additions & 87 deletions

File tree

.github/workflows/canonical-consistency.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
paths:
77
- "scripts/check-canonical-consistency.sh"
88
- "scripts/check-command-surface.sh"
9+
- "scripts/lib/**"
910
- "README.md"
1011
- "docs/**"
1112
- "agentic-memory/**"
@@ -20,6 +21,7 @@ on:
2021
paths:
2122
- "scripts/check-canonical-consistency.sh"
2223
- "scripts/check-command-surface.sh"
24+
- "scripts/lib/**"
2325
- "README.md"
2426
- "docs/**"
2527
- "agentic-memory/**"
@@ -36,10 +38,10 @@ jobs:
3638
steps:
3739
- uses: actions/checkout@v4
3840

39-
- name: Checkout sister repos
41+
- name: Checkout sister repos (from registry)
4042
run: |
41-
for repo in agentic-memory agentic-vision agentic-codebase agentic-identity agentic-time; do
42-
git clone --depth 1 https://github.com/agentralabs/${repo}.git ${repo}
43+
for repo in $(jq -r '.sisters[].repo' docs/sisters-registry.json); do
44+
git clone --depth 1 "https://github.com/agentralabs/${repo}.git" "${repo}"
4345
done
4446
4547
- name: Checkout web repo

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace]
22
resolver = "2"
33
members = ["agentra-cli"]
4-
exclude = ["agentic-codebase", "agentic-memory", "agentic-vision", "agentic-identity", "agentic-contracts"]
4+
exclude = ["agentic-codebase", "agentic-memory", "agentic-vision", "agentic-identity", "agentic-time", "agentic-contracts"]
55
default-members = ["agentra-cli"]

docs/sisters-registry.json

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
{
2+
"sisters": [
3+
{
4+
"key": "memory",
5+
"name": "AgenticMemory",
6+
"repo": "agentic-memory",
7+
"shortName": "MEMORY",
8+
"enabled": true,
9+
"order": 10,
10+
"fileExtension": ".amem",
11+
"cliBinary": "amem",
12+
"packages": {
13+
"npm": "@agenticamem/memory",
14+
"pypi": "agentic-brain",
15+
"coreCrate": "agentic-memory",
16+
"ffiCrate": "agentic-memory-ffi",
17+
"mcpCrate": "agentic-memory-mcp",
18+
"cliCrate": "agentic-memory-cli"
19+
},
20+
"paths": {
21+
"mcpToolSource": "crates/agentic-memory-mcp/src/tools/registry.rs"
22+
},
23+
"mcp": {
24+
"binary": "agentic-memory-mcp",
25+
"args": ["serve"],
26+
"cratePath": "crates/agentic-memory-mcp"
27+
},
28+
"docs": {
29+
"landingSlug": "memory-docs",
30+
"includeLanding": true
31+
}
32+
},
33+
{
34+
"key": "vision",
35+
"name": "AgenticVision",
36+
"repo": "agentic-vision",
37+
"shortName": "VISION",
38+
"enabled": true,
39+
"order": 20,
40+
"fileExtension": ".avis",
41+
"cliBinary": "avis",
42+
"packages": {
43+
"npm": "@agenticamem/vision",
44+
"pypi": "agentic-vision",
45+
"coreCrate": "agentic-vision",
46+
"ffiCrate": "agentic-vision-ffi",
47+
"mcpCrate": "agentic-vision-mcp",
48+
"cliCrate": "agentic-vision-cli"
49+
},
50+
"paths": {
51+
"mcpToolSource": "crates/agentic-vision-mcp/src/tools/registry.rs"
52+
},
53+
"mcp": {
54+
"binary": "agentic-vision-mcp",
55+
"args": ["--log-level", "error", "serve"],
56+
"cratePath": "crates/agentic-vision-mcp"
57+
},
58+
"docs": {
59+
"landingSlug": "vision-docs",
60+
"includeLanding": true
61+
}
62+
},
63+
{
64+
"key": "codebase",
65+
"name": "AgenticCodebase",
66+
"repo": "agentic-codebase",
67+
"shortName": "CODEBASE",
68+
"enabled": true,
69+
"order": 30,
70+
"fileExtension": ".acb",
71+
"cliBinary": "acb",
72+
"packages": {
73+
"npm": "@agenticamem/codebase",
74+
"pypi": "agentic-codebase",
75+
"coreCrate": "agentic-codebase",
76+
"ffiCrate": "agentic-codebase-ffi",
77+
"mcpCrate": "agentic-codebase-mcp",
78+
"cliCrate": "agentic-codebase-cli"
79+
},
80+
"paths": {
81+
"mcpToolSource": "src/mcp/server.rs"
82+
},
83+
"mcp": {
84+
"binary": "agentic-codebase-mcp",
85+
"args": [],
86+
"cratePath": "crates/agentic-codebase-mcp"
87+
},
88+
"docs": {
89+
"landingSlug": "codebase-docs",
90+
"includeLanding": true
91+
}
92+
},
93+
{
94+
"key": "identity",
95+
"name": "AgenticIdentity",
96+
"repo": "agentic-identity",
97+
"shortName": "IDENTITY",
98+
"enabled": true,
99+
"order": 40,
100+
"fileExtension": ".aid",
101+
"cliBinary": "aid",
102+
"packages": {
103+
"npm": "@agenticamem/identity",
104+
"pypi": "agentic-identity",
105+
"coreCrate": "agentic-identity",
106+
"ffiCrate": "agentic-identity-ffi",
107+
"mcpCrate": "agentic-identity-mcp",
108+
"cliCrate": "agentic-identity-cli"
109+
},
110+
"paths": {
111+
"mcpToolSource": "crates/agentic-identity-mcp/src/main.rs"
112+
},
113+
"mcp": {
114+
"binary": "agentic-identity-mcp",
115+
"args": [],
116+
"cratePath": "crates/agentic-identity-mcp"
117+
},
118+
"docs": {
119+
"landingSlug": "identity-docs",
120+
"includeLanding": true
121+
}
122+
},
123+
{
124+
"key": "time",
125+
"name": "AgenticTime",
126+
"repo": "agentic-time",
127+
"shortName": "TIME",
128+
"enabled": true,
129+
"order": 50,
130+
"fileExtension": ".atime",
131+
"cliBinary": "atime",
132+
"packages": {
133+
"npm": "@agenticamem/time",
134+
"pypi": "agentic-time",
135+
"coreCrate": "agentic-time",
136+
"ffiCrate": "agentic-time-ffi",
137+
"mcpCrate": "agentic-time-mcp",
138+
"cliCrate": "agentic-time-cli"
139+
},
140+
"paths": {
141+
"mcpToolSource": "crates/agentic-time-mcp/src/tools.rs"
142+
},
143+
"mcp": {
144+
"binary": "agentic-time-mcp",
145+
"args": [],
146+
"cratePath": "crates/agentic-time-mcp"
147+
},
148+
"docs": {
149+
"landingSlug": "time-docs",
150+
"includeLanding": true
151+
}
152+
}
153+
]
154+
}

0 commit comments

Comments
 (0)