This guide explains the dual-directory workflow for ProjectGraphAgent development and publication.
/home/igor/Документы/Проекты/
├── tsx_viewer/ProjectGraphAgent/ # Parent project mode
│ ├── project_graph.jsonnet # Contains TSX-viewer data
│ ├── graph_parts/entities.jsonnet # TSX-viewer specific entities
│ ├── settings.json # TSX-viewer settings
│ └── ... (all other files)
└── ProjectGraphAgent/ # Standalone mode
├── project_graph.jsonnet # Clean template
├── graph_parts/entities.jsonnet # Universal examples
└── ... (clean, ready for publication)
Work in /home/igor/Документы/Проекты/tsx_viewer/ProjectGraphAgent/:
cd /home/igor/Документы/Проекты/tsx_viewer/ProjectGraphAgent/
# Make changes to:
# - scripts/ (new automation features)
# - graph_parts/ (templates, policies, schemas)
# - adapters/ (language support)
# - README.md, documentation
# Test your changes
npm run graph:audit
npm run graph:validateSync changes to the standalone directory:
# From tsx_viewer/ProjectGraphAgent/
npm run syncThis copies:
- ✅
scripts/- All automation scripts - ✅
graph_parts/- Templates, policies, schemas (excluding entities) - ✅
adapters/- Language adapters - ✅
README.md,README_PUBLISH.md,CHANGELOG.md,LLM_GUIDELINES.md - ✅
LICENSE,package.json,.gitignore
Excludes:
- ❌
project_graph.jsonnet- Contains parent project data - ❌
graph_parts/entities.jsonnet- Contains parent project entities - ❌
settings.json- Parent project settings - ❌
.cache/,memory-bank/- Generated artifacts
Clean the standalone directory for publication:
cd /home/igor/Документы/Проекты/ProjectGraphAgent
npm run cleanThis:
- Resets
project_graph.jsonnetto template values - Cleans
graph_parts/entities.jsonnetto universal examples - Removes
.cache/,memory-bank/,settings.json - Updates
package.jsonwith ProjectGraphAgent metadata - Creates appropriate
.gitignore
cd /home/igor/Документы/Проекты/ProjectGraphAgent
git add -A
git commit -m "feat: new feature description"
git push origin mainFor convenience, use the automated publish workflow:
# From tsx_viewer/ProjectGraphAgent/
npm run publishThis automates steps 2-4:
- Syncs changes to standalone
- Cleans standalone from parent data
- Prepares Git commit
- Shows push instructions
To auto-push to GitHub:
npm run publish -- --pushnpm run synccd /home/igor/Документы/Проекты/ProjectGraphAgent
npm run cleannpm run graph:audit # Generate graph and check drift
npm run graph:validate # Validate graph against schema
npm run graph:commit # Grouped commits (planned)Contains project-specific data:
project_graph.jsonnet- TSX-viewer configurationgraph_parts/entities.jsonnet- TSX-viewer entitiessettings.json- TSX-viewer settings.cache/- Generated artifacts for TSX-viewermemory-bank/- TSX-viewer memory bank
Used for:
- Active development
- Testing new features
- Managing TSX-viewer project
- Debugging and experimentation
Contains universal template:
project_graph.jsonnet- Template with placeholdersgraph_parts/entities.jsonnet- Universal examples- Clean, ready for any project
Used for:
- GitHub publication
- Distribution to other projects
- Universal template creation
- Documentation and examples
- Always develop in parent project - Keep TSX-viewer data for testing
- Test thoroughly - Use
npm run graph:auditandnpm run graph:validate - Document changes - Update README.md and CHANGELOG.md
- Sync regularly - Use
npm run syncafter significant changes
- Review before publishing - Check standalone directory after sync
- Clean before commit - Always run
npm run cleanin standalone - Use meaningful commits - Follow conventional commits
- Test after publication - Verify GitHub repository is correct
- Keep both directories in sync - Regular sync prevents drift
- Backup important data - Parent project contains valuable test data
- Monitor Git status - Check for unexpected changes
- Update documentation - Keep README.md current
# Check if source exists
ls -la /home/igor/Документы/Проекты/tsx_viewer/ProjectGraphAgent/
# Check if destination exists
ls -la /home/igor/Документы/Проекты/ProjectGraphAgent/
# Manual sync
node scripts/sync_to_standalone.mjs# Check standalone directory
cd /home/igor/Документы/Проекты/ProjectGraphAgent
ls -la
# Manual clean
node scripts/clean_project.mjs# Check Git status
cd /home/igor/Документы/Проекты/ProjectGraphAgent
git status
# Reset if needed
git reset --hard HEAD
git clean -fd| Command | Location | Purpose |
|---|---|---|
npm run sync |
tsx_viewer/ProjectGraphAgent/ | Sync to standalone |
npm run clean |
ProjectGraphAgent/ | Clean for publication |
npm run publish |
tsx_viewer/ProjectGraphAgent/ | Full workflow |
npm run graph:audit |
Any | Generate graph |
npm run graph:validate |
Any | Validate graph |
- URL: https://github.com/LebedevIV/ProjectGraphAgent
- Branch: main
- License: MIT
- Status: Early Alpha
- Continue development in parent project
- Regular syncs to keep standalone current
- Publish updates using automated workflow
- Gather feedback from GitHub community
- Iterate and improve based on usage