repo-nexus 0.4.0 → 0.4.2
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/README.md +2 -2
- package/docs/AGENTS.sample.md +9 -8
- package/package.json +1 -1
- package/rnex +125 -69
- package/toolkit/plugins/karpathy-llm/README.md +13 -11
- package/toolkit/plugins/karpathy-llm/instructions/karpathy-llm.md +6 -7
- package/toolkit/plugins/karpathy-llm/rules/KARPATHY_RULES.md +6 -7
- package/toolkit/plugins/karpathy-llm/templates/LLM_WIKI.sample.md +2 -2
package/README.md
CHANGED
|
@@ -277,7 +277,7 @@ repos:
|
|
|
277
277
|
|:---|:---|
|
|
278
278
|
| `-c, --config <file>` | Explicit path to `rnex.yaml` (executes in that workspace directory) |
|
|
279
279
|
| `-h, --help` | Display command help and usage instructions |
|
|
280
|
-
| `-v, --version` | Display version
|
|
280
|
+
| `-v, --version` | Display version |
|
|
281
281
|
|
|
282
282
|
### Commands
|
|
283
283
|
| Command | Description |
|
|
@@ -327,7 +327,7 @@ rnex completion fish | source
|
|
|
327
327
|
|
|
328
328
|
```
|
|
329
329
|
repo-nexus/
|
|
330
|
-
├── package.json # npm package manifest (single source of truth
|
|
330
|
+
├── package.json # npm package manifest (single version source of truth)
|
|
331
331
|
├── rnex # CLI executable (POSIX shell)
|
|
332
332
|
├── AGENTS.md # Routing-only universal AI instructions
|
|
333
333
|
├── docs/
|
package/docs/AGENTS.sample.md
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
This workspace operates as a **Repo Nexus Virtual Meta-Repo** uniting independent repositories.
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## Routing Protocol for AI Assistants
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
AI assistants working in this workspace must route context through the following configuration and instructions files:
|
|
9
|
+
|
|
10
|
+
1. **Read Configuration First (Highest Priority)**: Inspect and read `.local.rnex.yaml` (if present) and `rnex.yaml` before executing tasks to identify workspace structure (`repos_dir`), active member repositories (`repos/`), and enabled plugins.
|
|
11
|
+
- `.local.rnex.yaml` takes highest priority over `rnex.yaml`.
|
|
12
|
+
- Repositories are enabled by default unless explicitly marked `enabled: false`. Disabled repositories are excluded from active tasks.
|
|
13
|
+
2. **Member Repositories (`repos/<name>/`)**: Each member repository is an autonomous Git repository. For repository-specific instructions, inspect `repos/<name>/.rnex/`.
|
|
14
|
+
3. **Plugin Instructions & Rules Routing**: Detailed guidelines and workflows for enabled plugins are located under:
|
|
13
15
|
`.rnex/plugins/<plugin-name>/`
|
|
14
|
-
4. **
|
|
15
|
-
5. **Git Operations**: Commit and push changes directly within the respective member repository root (`repos/<name>/`).
|
|
16
|
+
4. **Git Operations**: Commit and push changes directly within the respective member repository root (`repos/<name>/`).
|
|
16
17
|
<!-- REPO-NEXUS:END -->
|
package/package.json
CHANGED
package/rnex
CHANGED
|
@@ -85,7 +85,7 @@ resolve_version() {
|
|
|
85
85
|
fi
|
|
86
86
|
fi
|
|
87
87
|
done
|
|
88
|
-
printf '0.4.
|
|
88
|
+
printf '0.4.1'
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
RNEX_VERSION="$(resolve_version)"
|
|
@@ -728,6 +728,58 @@ sync_plugins() {
|
|
|
728
728
|
|
|
729
729
|
# ---- AI Instructions Management (Routing-Only) ----------------------------
|
|
730
730
|
|
|
731
|
+
reconcile_gitignore() {
|
|
732
|
+
_dir="${1:-$NEXUS_DIR}"
|
|
733
|
+
_gi="$_dir/.gitignore"
|
|
734
|
+
|
|
735
|
+
if [ ! -f "$_gi" ]; then
|
|
736
|
+
cat > "$_gi" <<GI_EOF
|
|
737
|
+
# Member repos (managed by rnex, ignored at workspace level)
|
|
738
|
+
repos/*
|
|
739
|
+
!repos/.gitkeep
|
|
740
|
+
|
|
741
|
+
# Repo Nexus internal state & cache
|
|
742
|
+
.rnex/
|
|
743
|
+
|
|
744
|
+
# Local machine-specific configuration
|
|
745
|
+
$RNEX_LOCAL_CONFIG_FILE
|
|
746
|
+
.rnex.local.yaml
|
|
747
|
+
GI_EOF
|
|
748
|
+
log_ok "Created .gitignore (ignoring repos/, .rnex/, and $RNEX_LOCAL_CONFIG_FILE)"
|
|
749
|
+
return 0
|
|
750
|
+
fi
|
|
751
|
+
|
|
752
|
+
# 1. Strip any legacy lint_trigger_counter entries if present
|
|
753
|
+
if grep -q "lint_trigger_counter" "$_gi" 2>/dev/null; then
|
|
754
|
+
_tmp="$(mktemp)"
|
|
755
|
+
grep -v "lint_trigger_counter" "$_gi" > "$_tmp" && mv "$_tmp" "$_gi"
|
|
756
|
+
log_ok "Removed legacy lint trigger counter entries from .gitignore"
|
|
757
|
+
fi
|
|
758
|
+
|
|
759
|
+
# 2. Ensure repos/* is ignored
|
|
760
|
+
if ! grep -q "^repos" "$_gi" 2>/dev/null; then
|
|
761
|
+
printf '\n# Member repos (managed by rnex)\nrepos/*\n!repos/.gitkeep\n' >> "$_gi"
|
|
762
|
+
log_dim "Added repos/* to .gitignore"
|
|
763
|
+
fi
|
|
764
|
+
|
|
765
|
+
# 3. Ensure .rnex/ is ignored
|
|
766
|
+
if ! grep -q '^\.rnex/' "$_gi" 2>/dev/null && ! grep -q '^\.rnex$' "$_gi" 2>/dev/null; then
|
|
767
|
+
printf '\n# Repo Nexus internal state & cache\n.rnex/\n' >> "$_gi"
|
|
768
|
+
log_dim "Added .rnex/ to .gitignore"
|
|
769
|
+
fi
|
|
770
|
+
|
|
771
|
+
# 4. Ensure local config files are ignored
|
|
772
|
+
if ! grep -qF "$RNEX_LOCAL_CONFIG_FILE" "$_gi" 2>/dev/null; then
|
|
773
|
+
printf '\n# Local machine-specific configuration\n%s\n' "$RNEX_LOCAL_CONFIG_FILE" >> "$_gi"
|
|
774
|
+
log_dim "Added $RNEX_LOCAL_CONFIG_FILE to .gitignore"
|
|
775
|
+
fi
|
|
776
|
+
if ! grep -qF ".rnex.local.yaml" "$_gi" 2>/dev/null; then
|
|
777
|
+
printf '.rnex.local.yaml\n' >> "$_gi"
|
|
778
|
+
fi
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
# ---- AI Instructions Management (Routing-Only) ----------------------------
|
|
782
|
+
|
|
731
783
|
AI_MARKER_START="<!-- REPO-NEXUS:START -->"
|
|
732
784
|
AI_MARKER_END="<!-- REPO-NEXUS:END -->"
|
|
733
785
|
|
|
@@ -737,16 +789,17 @@ get_rnex_instructions() {
|
|
|
737
789
|
|
|
738
790
|
This workspace operates as a **Repo Nexus Virtual Meta-Repo** uniting independent repositories.
|
|
739
791
|
|
|
740
|
-
##
|
|
792
|
+
## Routing Protocol for AI Assistants
|
|
793
|
+
|
|
794
|
+
AI assistants working in this workspace must route context through the following configuration and instructions files:
|
|
741
795
|
|
|
742
|
-
1. **Read Configuration First (
|
|
743
|
-
-
|
|
744
|
-
-
|
|
745
|
-
2. **
|
|
746
|
-
3. **Plugin Instructions & Rules Routing**: Detailed guidelines and workflows for enabled plugins are
|
|
796
|
+
1. **Read Configuration First (Highest Priority)**: Inspect and read `.local.rnex.yaml` (if present) and `rnex.yaml` before executing tasks to identify workspace structure (`repos_dir`), active member repositories (`repos/`), and enabled plugins.
|
|
797
|
+
- `.local.rnex.yaml` takes highest priority over `rnex.yaml`.
|
|
798
|
+
- Repositories are enabled by default unless explicitly marked `enabled: false`. Disabled repositories are excluded from active tasks.
|
|
799
|
+
2. **Member Repositories (`repos/<name>/`)**: Each member repository is an autonomous Git repository. For repository-specific instructions, inspect `repos/<name>/.rnex/`.
|
|
800
|
+
3. **Plugin Instructions & Rules Routing**: Detailed guidelines and workflows for enabled plugins are located under:
|
|
747
801
|
`.rnex/plugins/<plugin-name>/`
|
|
748
|
-
4. **
|
|
749
|
-
5. **Git Operations**: Commit and push changes directly within the respective member repository root (`repos/<name>/`).
|
|
802
|
+
4. **Git Operations**: Commit and push changes directly within the respective member repository root (`repos/<name>/`).
|
|
750
803
|
AGENTS_EOF
|
|
751
804
|
}
|
|
752
805
|
|
|
@@ -757,15 +810,17 @@ merge_rnex_instructions() {
|
|
|
757
810
|
|
|
758
811
|
if [ ! -f "$_dst" ]; then
|
|
759
812
|
mkdir -p "$(dirname "$_dst")"
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
813
|
+
{
|
|
814
|
+
printf '%s\n' "$AI_MARKER_START"
|
|
815
|
+
cat "$_body_tmp"
|
|
816
|
+
printf '\n%s\n' "$AI_MARKER_END"
|
|
817
|
+
} > "$_dst"
|
|
763
818
|
rm -f "$_body_tmp"
|
|
764
819
|
log_ok "Created $(basename "$_dst") with Repo Nexus routing instructions"
|
|
765
820
|
return 0
|
|
766
821
|
fi
|
|
767
822
|
|
|
768
|
-
# If delimiters already exist, update the block in-place
|
|
823
|
+
# Case 1: If delimiters already exist, update the block in-place
|
|
769
824
|
if grep -qF "$AI_MARKER_START" "$_dst" 2>/dev/null; then
|
|
770
825
|
_tmp="$(mktemp)"
|
|
771
826
|
awk -v s="$AI_MARKER_START" -v e="$AI_MARKER_END" -v src="$_body_tmp" '
|
|
@@ -784,18 +839,51 @@ merge_rnex_instructions() {
|
|
|
784
839
|
!in_b { print }
|
|
785
840
|
' "$_dst" > "$_tmp" && mv "$_tmp" "$_dst"
|
|
786
841
|
rm -f "$_body_tmp"
|
|
787
|
-
log_ok "Updated Repo Nexus instructions in $(basename "$_dst")"
|
|
842
|
+
log_ok "Updated Repo Nexus routing instructions in $(basename "$_dst")"
|
|
788
843
|
return 0
|
|
789
844
|
fi
|
|
790
845
|
|
|
791
|
-
# If no delimiters, check
|
|
792
|
-
|
|
846
|
+
# Case 2: If no delimiters, check for legacy un-delimited Repo Nexus block
|
|
847
|
+
# (e.g. starting with "# Multi-Repo AI Workspace Context" or containing "Symlink Write-Through")
|
|
848
|
+
if grep -q "Multi-Repo AI Workspace Context" "$_dst" 2>/dev/null || grep -q "Symlink Write-Through" "$_dst" 2>/dev/null; then
|
|
849
|
+
_tmp="$(mktemp)"
|
|
850
|
+
awk -v s="$AI_MARKER_START" -v e="$AI_MARKER_END" -v src="$_body_tmp" '
|
|
851
|
+
BEGIN { in_legacy = 0; replaced = 0 }
|
|
852
|
+
/^# Multi-Repo AI Workspace Context/ {
|
|
853
|
+
in_legacy = 1
|
|
854
|
+
if (!replaced) {
|
|
855
|
+
print s
|
|
856
|
+
while ((getline line < src) > 0) print line
|
|
857
|
+
close(src)
|
|
858
|
+
print e
|
|
859
|
+
replaced = 1
|
|
860
|
+
}
|
|
861
|
+
next
|
|
862
|
+
}
|
|
863
|
+
in_legacy {
|
|
864
|
+
if (/^# [^#]/ && !/^# Multi-Repo/) {
|
|
865
|
+
in_legacy = 0
|
|
866
|
+
print
|
|
867
|
+
next
|
|
868
|
+
}
|
|
869
|
+
next
|
|
870
|
+
}
|
|
871
|
+
!in_legacy { print }
|
|
872
|
+
END {
|
|
873
|
+
if (!replaced) {
|
|
874
|
+
print s
|
|
875
|
+
while ((getline line < src) > 0) print line
|
|
876
|
+
close(src)
|
|
877
|
+
print e
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
' "$_dst" > "$_tmp" && mv "$_tmp" "$_dst"
|
|
793
881
|
rm -f "$_body_tmp"
|
|
794
|
-
|
|
882
|
+
log_ok "Upgraded legacy instructions to Repo Nexus routing block in $(basename "$_dst")"
|
|
795
883
|
return 0
|
|
796
884
|
fi
|
|
797
885
|
|
|
798
|
-
#
|
|
886
|
+
# Case 3: Completely custom instructions file without rnex context — append delimited block
|
|
799
887
|
_tmp="$(mktemp)"
|
|
800
888
|
cp "$_dst" "$_tmp"
|
|
801
889
|
if [ -s "$_tmp" ] && [ -n "$(tail -c 1 "$_tmp" 2>/dev/null)" ]; then
|
|
@@ -808,7 +896,7 @@ merge_rnex_instructions() {
|
|
|
808
896
|
} >> "$_tmp"
|
|
809
897
|
mv "$_tmp" "$_dst"
|
|
810
898
|
rm -f "$_body_tmp"
|
|
811
|
-
log_ok "Merged Repo Nexus instructions with existing $(basename "$_dst")"
|
|
899
|
+
log_ok "Merged Repo Nexus routing instructions with existing $(basename "$_dst")"
|
|
812
900
|
}
|
|
813
901
|
|
|
814
902
|
# ============================================================================
|
|
@@ -903,29 +991,8 @@ YAML_EOF
|
|
|
903
991
|
mkdir -p "$_target_dir/.rnex"
|
|
904
992
|
mkdir -p "$_target_dir/.rnex/plugins"
|
|
905
993
|
|
|
906
|
-
# ---- 6. Ensure repos
|
|
907
|
-
|
|
908
|
-
if [ ! -f "$_target_gi" ]; then
|
|
909
|
-
cat > "$_target_gi" <<GI_EOF
|
|
910
|
-
# Member repos (managed by rnex, ignored at workspace level)
|
|
911
|
-
repos/*
|
|
912
|
-
!repos/.gitkeep
|
|
913
|
-
|
|
914
|
-
# Local machine-specific configuration
|
|
915
|
-
$RNEX_LOCAL_CONFIG_FILE
|
|
916
|
-
.rnex.local.yaml
|
|
917
|
-
GI_EOF
|
|
918
|
-
log_ok "Created .gitignore (ignoring repos/ and $RNEX_LOCAL_CONFIG_FILE)"
|
|
919
|
-
else
|
|
920
|
-
if ! grep -q "^repos" "$_target_gi" 2>/dev/null; then
|
|
921
|
-
printf '\n# Member repos (managed by rnex)\nrepos/*\n!repos/.gitkeep\n' >> "$_target_gi"
|
|
922
|
-
log_dim "Added repos/* to .gitignore"
|
|
923
|
-
fi
|
|
924
|
-
if ! grep -qF "$RNEX_LOCAL_CONFIG_FILE" "$_target_gi" 2>/dev/null; then
|
|
925
|
-
printf '\n# Local machine-specific configuration\n%s\n.rnex.local.yaml\n' "$RNEX_LOCAL_CONFIG_FILE" >> "$_target_gi"
|
|
926
|
-
log_dim "Added $RNEX_LOCAL_CONFIG_FILE to .gitignore"
|
|
927
|
-
fi
|
|
928
|
-
fi
|
|
994
|
+
# ---- 6. Ensure repos/, .rnex/, and local configs are gitignored ---------
|
|
995
|
+
reconcile_gitignore "$_target_dir"
|
|
929
996
|
|
|
930
997
|
if [ "$_config_created" -eq 1 ]; then
|
|
931
998
|
printf '\n'
|
|
@@ -1217,10 +1284,18 @@ cmd_status() {
|
|
|
1217
1284
|
printf ' %b●%b Repos Dir: %s\n' "$_DIM" "$_NC" "$REPOS_DIR"
|
|
1218
1285
|
|
|
1219
1286
|
_gi="$NEXUS_DIR/.gitignore"
|
|
1220
|
-
|
|
1221
|
-
|
|
1287
|
+
_gi_repos=0; _gi_rnex=0; _gi_local=0; _gi_has_counter=0
|
|
1288
|
+
if [ -f "$_gi" ]; then
|
|
1289
|
+
grep -q '^repos' "$_gi" 2>/dev/null && _gi_repos=1
|
|
1290
|
+
(grep -q '^\.rnex/' "$_gi" 2>/dev/null || grep -q '^\.rnex$' "$_gi" 2>/dev/null) && _gi_rnex=1
|
|
1291
|
+
grep -qF "$RNEX_LOCAL_CONFIG_FILE" "$_gi" 2>/dev/null && _gi_local=1
|
|
1292
|
+
grep -q "lint_trigger_counter" "$_gi" 2>/dev/null && _gi_has_counter=1
|
|
1293
|
+
fi
|
|
1294
|
+
|
|
1295
|
+
if [ "$_gi_repos" -eq 1 ] && [ "$_gi_rnex" -eq 1 ] && [ "$_gi_local" -eq 1 ] && [ "$_gi_has_counter" -eq 0 ]; then
|
|
1296
|
+
printf ' %b✓%b Git Ignore: repos/, .rnex/, and %s ignored in .gitignore\n' "$_G" "$_NC" "$RNEX_LOCAL_CONFIG_FILE"
|
|
1222
1297
|
else
|
|
1223
|
-
printf ' %b!%b Git Ignore: recommend running "rnex fix" to
|
|
1298
|
+
printf ' %b!%b Git Ignore: recommend running "rnex fix" to update .gitignore (repos/, .rnex/, local configs)\n' "$_Y" "$_NC"
|
|
1224
1299
|
fi
|
|
1225
1300
|
printf '\n'
|
|
1226
1301
|
|
|
@@ -1302,32 +1377,13 @@ cmd_fix() {
|
|
|
1302
1377
|
|
|
1303
1378
|
log_info "Reconciling Repo Nexus workspace at $NEXUS_DIR..."
|
|
1304
1379
|
|
|
1305
|
-
# 1. Ensure .gitignore ignores repos
|
|
1306
|
-
|
|
1307
|
-
if [ ! -f "$_gi" ]; then
|
|
1308
|
-
cat > "$_gi" <<GI_EOF
|
|
1309
|
-
# Member repos (managed by rnex)
|
|
1310
|
-
repos/*
|
|
1311
|
-
!repos/.gitkeep
|
|
1312
|
-
|
|
1313
|
-
# Local machine-specific configuration
|
|
1314
|
-
$RNEX_LOCAL_CONFIG_FILE
|
|
1315
|
-
.rnex.local.yaml
|
|
1316
|
-
GI_EOF
|
|
1317
|
-
log_ok "Created .gitignore"
|
|
1318
|
-
else
|
|
1319
|
-
if ! grep -q "^repos" "$_gi" 2>/dev/null; then
|
|
1320
|
-
printf '\n# Member repos (managed by rnex)\nrepos/*\n!repos/.gitkeep\n' >> "$_gi"
|
|
1321
|
-
log_ok "Added repos/* to .gitignore"
|
|
1322
|
-
fi
|
|
1323
|
-
if ! grep -qF "$RNEX_LOCAL_CONFIG_FILE" "$_gi" 2>/dev/null; then
|
|
1324
|
-
printf '\n# Local machine-specific configuration\n%s\n.rnex.local.yaml\n' "$RNEX_LOCAL_CONFIG_FILE" >> "$_gi"
|
|
1325
|
-
log_ok "Added $RNEX_LOCAL_CONFIG_FILE to .gitignore"
|
|
1326
|
-
fi
|
|
1327
|
-
fi
|
|
1380
|
+
# 1. Ensure .gitignore ignores repos/, .rnex/, and local configs, and strips legacy counters
|
|
1381
|
+
reconcile_gitignore "$NEXUS_DIR"
|
|
1328
1382
|
|
|
1329
|
-
# 2. Reconcile instructions in AGENTS.md
|
|
1383
|
+
# 2. Reconcile instructions in AGENTS.md (and optional AI assistant files if present)
|
|
1330
1384
|
merge_rnex_instructions "$NEXUS_DIR/AGENTS.md"
|
|
1385
|
+
[ -f "$NEXUS_DIR/CLAUDE.md" ] && merge_rnex_instructions "$NEXUS_DIR/CLAUDE.md"
|
|
1386
|
+
[ -f "$NEXUS_DIR/.cursorrules" ] && merge_rnex_instructions "$NEXUS_DIR/.cursorrules"
|
|
1331
1387
|
|
|
1332
1388
|
# 3. Reconcile plugins
|
|
1333
1389
|
sync_plugins
|
|
@@ -17,7 +17,7 @@ Reference specification: [setup-karpathy-wiki.md](https://github.com/nu-nenoi/ai
|
|
|
17
17
|
* **Goal-Driven Execution:** Upfront verification criteria, automated tests, and rigorous diff review.
|
|
18
18
|
|
|
19
19
|
### 2. Multi-Repo Context Engineering & Autonomy
|
|
20
|
-
* Guidelines tailored for Repo Nexus workspaces respecting member repository autonomy and
|
|
20
|
+
* Guidelines tailored for Repo Nexus workspaces respecting member repository autonomy and physical repository boundaries.
|
|
21
21
|
|
|
22
22
|
### 3. Complete Karpathy LLM Wiki Architecture
|
|
23
23
|
* **`/raw/` Intake Directory:** Append-only directory where unmodified source material (articles, transcripts, docs, meeting notes) is deposited. Includes `.gitkeep`.
|
|
@@ -79,16 +79,18 @@ my-workspace/
|
|
|
79
79
|
│ ├── hot.md # Rolling ~500-word quick-orient context
|
|
80
80
|
│ └── _log.md # Ingestion & lint audit history
|
|
81
81
|
├── .rnex/
|
|
82
|
-
│
|
|
83
|
-
│
|
|
84
|
-
│
|
|
85
|
-
│
|
|
86
|
-
│
|
|
87
|
-
│
|
|
88
|
-
│
|
|
89
|
-
│
|
|
90
|
-
│
|
|
91
|
-
│
|
|
82
|
+
│ └── plugins/
|
|
83
|
+
│ └── karpathy-llm/
|
|
84
|
+
│ ├── instructions/
|
|
85
|
+
│ │ └── karpathy-llm.md # Dedicated plugin instructions
|
|
86
|
+
│ ├── rules/
|
|
87
|
+
│ │ └── KARPATHY_RULES.md# Cardinal principles & wiki rules
|
|
88
|
+
│ ├── workflows/
|
|
89
|
+
│ │ ├── wiki-ingest.md # 8-step decomposition & ingestion workflow
|
|
90
|
+
│ │ └── wiki-lint.md # 10-step graph validation & maintenance workflow
|
|
91
|
+
│ └── templates/
|
|
92
|
+
│ ├── wiki-page.template.md# Atomic page template with typed relations
|
|
93
|
+
│ └── LLM_WIKI.sample.md# Sample wiki walkthrough
|
|
92
94
|
└── rnex.yaml # Plugin configuration
|
|
93
95
|
```
|
|
94
96
|
|
|
@@ -32,16 +32,15 @@ These guidelines provide standing operational instructions for AI coding assista
|
|
|
32
32
|
|
|
33
33
|
## 2. Multi-Repo Context Engineering
|
|
34
34
|
|
|
35
|
-
In a Repo Nexus workspace, independent repositories are
|
|
35
|
+
In a Repo Nexus workspace, independent repositories are organized into `./repos/<name>/` as autonomous Git repositories. Coding agents must follow these rules:
|
|
36
36
|
|
|
37
|
-
1. **
|
|
38
|
-
- Edits made to `repos/<name>/`
|
|
39
|
-
- Do not attempt to move or replace symlinks with regular directories.
|
|
40
|
-
|
|
41
|
-
2. **Repository Autonomy & Member .rnex Directory:**
|
|
37
|
+
1. **Repository Boundaries:**
|
|
38
|
+
- Edits made to `repos/<name>/` modify the underlying member repository directly.
|
|
42
39
|
- Member repositories are independent projects. Do not introduce cross-repository source imports or shared runtime dependencies unless an explicit monorepo architecture is configured.
|
|
40
|
+
|
|
41
|
+
2. **Member .rnex Directory Routing:**
|
|
43
42
|
- Member repositories may contain an `.rnex/` directory (e.g. `repos/<name>/.rnex/`) containing repository-specific documents, instructions, rules, workflows, and scripts. Coding assistants must inspect this directory for member-specific instructions.
|
|
44
|
-
- Run git operations (commits, branches, pushes) within the respective member repository root.
|
|
43
|
+
- Run git operations (commits, branches, pushes) directly within the respective member repository root (`repos/<name>/`).
|
|
45
44
|
|
|
46
45
|
3. **Context Economy:**
|
|
47
46
|
- Do not redundantly read entire files or directory trees when targeted symbol lookups or line ranges suffice.
|
|
@@ -32,16 +32,15 @@ These guidelines provide standing operational instructions for AI coding assista
|
|
|
32
32
|
|
|
33
33
|
## 2. Multi-Repo Context Engineering
|
|
34
34
|
|
|
35
|
-
In a Repo Nexus workspace, independent repositories are
|
|
35
|
+
In a Repo Nexus workspace, independent repositories are organized into `./repos/<name>/` as autonomous Git repositories. Coding agents must follow these rules:
|
|
36
36
|
|
|
37
|
-
1. **
|
|
38
|
-
- Edits made to `repos/<name>/`
|
|
39
|
-
- Do not
|
|
37
|
+
1. **Repository Boundaries:**
|
|
38
|
+
- Edits made to `repos/<name>/` modify the underlying member repository directly.
|
|
39
|
+
- Member repositories are autonomous projects. Do not introduce cross-repository source imports or shared runtime dependencies unless an explicit monorepo architecture is configured.
|
|
40
40
|
|
|
41
|
-
2. **
|
|
42
|
-
- Member repositories are independent projects. Do not introduce cross-repository source imports or shared runtime dependencies unless an explicit monorepo architecture is configured.
|
|
41
|
+
2. **Member .rnex Directory Routing:**
|
|
43
42
|
- Member repositories may contain an `.rnex/` directory (e.g. `repos/<name>/.rnex/`) containing repository-specific documents, instructions, rules, workflows, and scripts. Coding assistants must inspect this directory for member-specific instructions.
|
|
44
|
-
- Run git operations (commits, branches, pushes) within the respective member repository root.
|
|
43
|
+
- Run git operations (commits, branches, pushes) directly within the respective member repository root (`repos/<name>/`).
|
|
45
44
|
|
|
46
45
|
3. **Context Economy:**
|
|
47
46
|
- Do not redundantly read entire files or directory trees when targeted symbol lookups or line ranges suffice.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
* **Workspace Name:** `my-multi-repo-workspace`
|
|
10
10
|
* **Orchestrator:** Repo Nexus (`rnex`)
|
|
11
|
-
* **Primary Scope:**
|
|
11
|
+
* **Primary Scope:** Member repositories under `./repos/`
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
### ADR-001: Independent Git Repositories over Monorepo
|
|
38
38
|
* **Date:** YYYY-MM-DD
|
|
39
|
-
* **Decision:** Keep repositories completely independent without Git submodules. Orchestrate via Repo Nexus
|
|
39
|
+
* **Decision:** Keep repositories completely independent without Git submodules. Orchestrate via Repo Nexus Virtual Meta-Repo.
|
|
40
40
|
* **Consequences:** Autonomous CI/CD per repo; AI assistants maintain shared context via `AGENTS.md` and `KARPATHY_RULES.md`.
|
|
41
41
|
|
|
42
42
|
---
|