ಗ್ಲೋಬಲ್ ಕಾನ್ಟೆಕ್ಸ್ (Global Context) APC ಗಿಂತ ಹೊರಗಿರಬೇಕು
APC ಎಂಬುದು ಪೋರ್ಟಬಲ್ ಕಾನ್ಟೆಕ್ಸ್ ಲೇಯರ್ (portable context layer). APX ಎಂಬುದು ಲೋಕಲ್ ರನ್ಟೈಮ್ ಲೇಯರ್ (local runtime layer).
ಇವುಗಳನ್ನು ಸುಸ್ಥಿತಿಯಲ್ಲಿಡಲು, ಒಂದು ನಿಯಮವನ್ನು ಅನುಸರಿಸಿ. ಯಾವುದಾದರೂ ವಿಷಯವು ಹೊಸ ಕ್ಲೋನ್ (fresh clone) ನಂತರವೂ ಉಳಿಯಬೇಕಿದ್ದರೆ, ಅದನ್ನು APC ಯಲ್ಲಿ ಇರಿಸಿ. ಅದು ನಿರ್ದಿಷ್ಟ ಬಳಕೆದಾರ, ಯಂತ್ರ ಅಥವಾ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದರೆ, ಅದನ್ನು APC ಗಿಂತ ಹೊರಗೆ ಇರಿಸಿ.
ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಬೆಳೆದಂತೆ ಆಸೆಗಳು ಹೆಚ್ಚಾಗುತ್ತವೆ. ನೀವು ಇನ್ನೊಂದು ಸೆಟ್ಟಿಂಗ್ ಅಥವಾ ಒಂದು ಲೋಕಲ್ ಪಾತ್ ಅನ್ನು ಸೇರಿಸಲು ಬಯಸಬಹುದು. ನೀವು ಕಟ್ಟುನಿಟ್ಟಾಗಿಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ ರೆಪೊ (repo) ಯಂತ್ರದ ಡೇಟಾದ ಕಸದ ಗುಂಪಾಗುತ್ತದೆ. ಇದು ರೆಪೊವನ್ನು ಅಸ್ಥಿರವಾಗಿಸುತ್ತದೆ (fragile).
APC ಪ್ರಾಜೆಕ್ಟ್ಗೆ ಸೇರಿದ ಅರ್ಥವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಇದು ರೆಪೊಸಿಟರಿ ಹೊಂದಿರುವ ಹಂಚಿಕೆಯ ಒಪ್ಪಂದವಾಗಿದೆ (shared contract).
ಉತ್ತಮ APC ವಿಷಯಗಳು ಇವುಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ:
- ಪ್ರಾಜೆಕ್ಟ್ ಗುರುತು (Project identity)
- ಏಜೆಂಟ್ ಪಾತ್ರಗಳು (Agent roles)
- ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕೌಶಲಗಳು (Reusable skills)
- ಕ್ಯುರೇಟೆಡ್ ಪ್ರಾಜೆಕ್ಟ್ ಮೆಮೊರಿ (Curated project memory)
- ಪ್ರಾಜೆಕ್ಟ್-ಮಟ್ಟದ MCP ಹಿಂಟ್ಸ್ (Project-level MCP hints)
- AGENTS.md ನಲ್ಲಿರುವ ರೆಪೊ-ವೈಡ್ ಸೂಚನೆಗಳು (Repo-wide instructions in AGENTS.md)
ಒಬ್ಬ ಸಹೋದ್ಯೋಗಿ ಅಥವಾ ಹೊಸ ಯಂತ್ರವು ಚೆಕ್ಔಟ್ (checkout) ಮಾಡಿದ ತಕ್ಷಣವೇ ಈ ಸತ್ಯಗಳನ್ನು ಓದಬೇಕು.
ಗ್ಲೋಬಲ್ ಕಾನ್ಟೆಕ್ಸ್ ವಿಭಿನ್ನವಾಗಿದೆ. ಇದು ಬಳಕೆದಾರ ಅಥವಾ ವರ್ಕ್ಸ್ಟೇಷನ್ಗೆ ಸೇರಿದ್ದಾಗಿದೆ.
ಗ್ಲೋಬಲ್ ಕಾನ್ಟೆಕ್ಸ್ನ ಉದಾಹರಣೆಗಳು:
- API ಕೀಗಳು (API keys)
- ಎಡಿಟರ್ ಆದ್ಯತೆಗಳು (Editor preferences)
- ಲೋಕಲ್ ಏಲಿಯಾಸ್ (Local aliases)
- ಯಂತ್ರ-ನಿರ್ದಿಷ್ಟ ಟೂಲ್ ಪಾತ್ಗಳು (Machine-specific tool paths)
- ಖಾಸಗಿ ರನ್ಟೈಮ್ ಮೆಮೊರಿ (Private runtime memory)
- ಕ್ಯಾಶೆಗಳು (Caches)
- ಸೆಷನ್ ಟ್ರಾನ್ಸ್ಕ್ರಿಪ್ಟ್ಗಳು (Session transcripts)
- ಮೆಸೇಜ್ ಲಾಗ್ಗಳು (Message logs)
APX ಈ ಸ್ಥಿತಿಯನ್ನು (state) ಲೋಕಲ್ ಆಗಿರಿಸುತ್ತದೆ. ಇದು ರನ್ಟೈಮ್ ಸ್ಥಿತಿಯನ್ನು ~/.apx/ ಅಡಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಇದು ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲು (shareable) ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಈ ಲೇಯರ್ಗಳನ್ನು ಬೆರೆಸುವುದರಿಂದ ಮೂರು ಸಮಸ್ಯೆಗಳು ಉಂಟಾಗುತ್ತವೆ:
- ಪೋರ್ಟಬಿಲಿಟಿ (Portability) ಮುರಿದುಬೀಳುತ್ತದೆ. ಲೋಕಲ್ ಕಾನ್ಫಿಗರೇಶನ್ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ರೆಪೊವನ್ನು ನಂಬುವುದು ಕಷ್ಟ.
- ರಿವ್ಯೂಗಳು ಗೊಂದಲಮಯವಾಗುತ್ತವೆ (noisy). ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ಗಳು (Pull requests) ಪ್ರಾಜೆಕ್ಟ್ ನಿರ್ಧಾರಗಳನ್ನು ತೋರಿಸಬೇಕೇ ಹೊರತು ವರ್ಕ್ಸ್ಟೇಷನ್ನ ಅನಗತ್ಯ ವಿಷಯಗಳನ್ನಲ್ಲ.
- ಸೀಕ್ರೆಟ್ಗಳು ಸೋರಿಕೆಯಾಗುತ್ತವೆ (Secrets leak). ಲೋಕಲ್ ವಿವರಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದು ತಪ್ಪು ಫೈಲ್ಗಳನ್ನು ಕಮಿಟ್ ಮಾಡಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ.
ನೀವು ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸೇರಿಸುವ ಮೊದಲು, ಇದನ್ನು ಕೇಳಿ: ಕ್ಲೋನ್ ಮಾಡಿದ ತಕ್ಷಣವೇ ಇನ್ನೊಬ್ಬ ಕೊಡುಗೆದಾರರಿಗೆ (contributor) ಇದು ಅಗತ್ಯವಿರುತ್ತದೆಯೇ?
ಹೌದಾದರೆ, APC ಬಳಸಿ.
- ಪ್ರತಿ ಕ್ಲೋನ್ಗೆ ರಿವ್ಯೂವರ್ ಏಜೆಂಟ್ ಬೇಕೆ? APC.
- ವೈಯಕ್ತಿಕ API ಕೀ? APC ಅಲ್ಲ.
- ಅನುಮತಿಗಳ ಬಗ್ಗೆ ಪ್ರಾಜೆಕ್ಟ್ ನಿರ್ಧಾರ? APC.
- ಲೋಕಲ್ ಬ್ರೌಸರ್ ಪಾತ್? APC ಅಲ್ಲ.
- ಹಂಚಿಕೆಯ MCP ಹಿಂಟ್? APC.
- ರನ್ ಕ್ಯಾಶ್? APC ಅಲ್ಲ.
ಈ ನಿಯಮವು ಆಟೊಮೇಷನ್ ಅನ್ನು ದೀರ್ಘಕಾಲ ಬಾಳಿಕೆ ಬರುವಂತೆ ಮಾಡುತ್ತದೆ. APC ನಿಮಗೆ ಪೋರ್ಟಬಲ್ ಅರ್ಥವನ್ನು ನೀಡುತ್ತದೆ. APX ನಿಮಗೆ ಲೋಕಲ್ ಸ್ಥಿತಿಯನ್ನು ನೀಡುತ್ತದೆ.
ಈ ವ್ಯತ್ಯಾಸವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಇರಿಸಿ. ಇದು ನಿಮ್ಮ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಡಿಬಗ್ ಮಾಡಲು (debug), ಹಂಚಿಕೊಳ್ಳಲು ಮತ್ತು ವಿವಿಧ ಪರಿಕರಗಳ ನಡುವೆ ವರ್ಗಾಯಿಸಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ.
ರೆಪೊ ಜೊತೆಗೆ ಚಲಿಸುವ ಕಾನ್ಟೆಕ್ಸ್ ಗಾಗಿ APC ಬಳಸಿ. ಅದು ವೈಯಕ್ತಿಕ ಅಥವಾ ತಾತ್ಕಾಲಿಕವಾಗಿದ್ದರೆ, ಅದನ್ನು ಲೋಕಲ್ ಆಗಿ ಇರಿಸಿ.
Source: https://dev.to/agentprojectcontext/global-context-belongs-outside-apc-4fg8
Optional learning community: https://t.me/GyaanSetuAi
