ఫోల్డర్ పేరు అనేది ప్రాజెక్ట్ ఐడెంటిటీ కాదు
ఫోల్డర్ పాత్ అనేది ఒక మార్గం. ఒక ప్రాజెక్ట్ ప్రస్తుతం ఎక్కడ ఉందో అది ఒక టూల్కు తెలియజేస్తుంది. కానీ ప్రాజెక్ట్ ఐడెంటిటీ అనేది వేరు.
ఐడెంటిటీ ఈ క్రింది సాధారణ మార్పులను తట్టుకోగలగాలి:
- డైరెక్టరీ పేరు మార్చడం
- ప్రాజెక్ట్ను ఒక మెషీన్ నుండి మరొక మెషీన్కు తరలించడం
- కొత్త పాత్లోకి రిపోను క్లోన్ చేయడం
- ఒకే ప్రాజెక్ట్ యొక్క బహుళ చెక్అవుట్లను ఉపయోగించడం
ఐడెంటిటీ పాత్పై ఆధారపడితే, ఈ చర్యలు ప్రమాదకరంగా మారుతాయి. పాత్ పనిచేయవచ్చు, కానీ అది ప్రాజెక్ట్ అదే అని నిరూషించడంలో విఫలమవుతుంది. దీనివల్ల స్టేట్ను నిల్వ చేయడానికి ఇది సరైన కీ కాదు.
దీనిని పరిష్కరించడానికి నేను APC మరియు APX లతో కూడిన స్ప్లిట్ డిజైన్ను ఉపయోగిస్తాను.
APC ప్రాజెక్ట్ కాంట్రాక్ట్ను నిర్వహిస్తుంది. ఇది రిపోజిటరీలో ఉంటుంది. APX రన్టైమ్ స్టేట్ను నిర్వహిస్తుంది. ఇది రిపోజిటరీ వెలుపల ఉంటుంది.
APC ఒక స్థిరమైన యాంకర్ (anchor)ను సృష్టించడానికి నిర్దిష్ట ఫైళ్లను ఉపయోగిస్తుంది:
- రూట్ కాంట్రాక్ట్ కోసం AGENTS.md
- ప్రాజెక్ట్ మెటాడేటా కోసం .apc/project.json
- ఏజెంట్ నిర్వచనాల కోసం .apc/agents/*.md
- MCP హింట్స్ కోసం .apc/mcps.json
.apc/project.json ఫైల్ చాలా చిన్నది. ఇందులో ఒక పేరు మరియు స్థిరమైన ID ఉంటాయి. ఇది ఒక మార్కర్ మాత్రమే, పెద్ద కాన్ఫిగరేషన్ ఫైల్ కాదు.
లైవ్ చెక్అవుట్ను ఒక శాశ్వత రికార్డ్తో అనుసంధానించడానికి APX ఈ ఫైల్ను ఉపయోగిస్తుంది. ప్రాజెక్ట్ను కనుగొనడంలో పాత్లు APXకు సహాయపడతాయి. ప్రాజెక్ట్ను కనుగొన్న తర్వాత దానిని స్థిరంగా ఉంచడంలో మెటాడేటా APXకు సహాయపడుతుంది.
ఈ డిజైన్ రిపోను క్లీన్గా ఉంచుతుంది. సెషన్ లాగ్లు మరియు మెసేజ్ హిస్టరీ వంటి రన్టైమ్ డేటా APX స్టోరేజ్లో ఉంటాయి. ఇవి మీ గిట్ హిస్టరీని గందరగోళపరచవు.
మీరు పాత్లపై ఆధారపడినప్పుడు, ఈ క్రింది వైఫల్యాలను ఎదుర్కొంటారు:
- పాత్లు మారుతాయి
- స్టేట్ విచ్ఛిన్నమవుతుంది
- టూల్ తప్పుడు అంచనాలు వేస్తుంది
- మీరు బిల్డ్ చేయడం కంటే పేర్లను డీబగ్ చేయడానికే సమయం వృథా చేస్తారు
ఒక స్థిరమైన ఐడెంటిటీ ఈ గందరగోళాన్ని తొలగిస్తుంది. ఇది కోడ్ రివ్యూలను సులభతరం చేస్తుంది. మీ డిఫ్స్లో అనుకోకుండా వచ్చే రన్టైమ్ అవుట్పుట్కు బదులుగా ప్రాజెక్ట్ వాస్తవాలను మీరు చూడగలరు.
దీని సరిహద్దు సరళమైనది:
- AGENTS.md: ప్రాజెక్ట్ ఏమి ఆశిస్తుంది
- .apc/project.json: ప్రాజెక్ట్ అంటే ఏమిటి
- ~/.apx/: దానిపై పని చేస్తున్నప్పుడు ఏమి జరిగింది
ఒక ప్రాజెక్ట్కు ఒక స్థిరమైన యాంకర్ అవసరం. ఫోల్డర్ పాత్ చాలా అస్థిరంగా ఉంటుంది. రన్టైమ్ చాలా గందరగోళంగా ఉంటుంది. రిపో కాంట్రాక్ట్ మరియు మెటాడేటా ఫైల్ కలయిక సరైన పరిమాణం.
Source: https://dev.to/tecnomanu/a-folder-name-is-not-a-project-identity-4eca
Optional learning community: https://t.me/GyaanSetuAi
