This is the Project Status Tracker - a comprehensive system for tracking project stages, progress, and metadata using loglog format. The system provides templates, automation scripts, bash aliases, and git hooks for seamless project status management.
- Repository created, basic structure in place
- Template files copied and configured
- Ready to start development
- Validating core concept/technology
- Experimenting with approaches
- Not production-ready
- Goal: Answer "Can this work?"
- First usable version with core features
- May have bugs blocking demo/production
- Focus on core functionality only
- Goal: Get something working end-to-end
- Feature-complete for v1.0 scope
- Functional but missing polish features
- Known list of features X, Y, Z to add
- May have active testers/users
- Goal: Refinement and feature completion
- Stable, tested, documented
- All planned features implemented
- Ready for real-world use
- Active maintenance
- Core features complete and stable
- Nice-to-have features queued (A, B, C)
- Only accepting specific contributions
- Minimal active development
This project is primarily documentation and shell scripts. No build process required.
# Test the aggregation script
./update_project_status.sh
# Source aliases and test functions
source ./project_aliases.sh
list-projects
ps-help- Update scripts: Direct editing
- Test locally before committing
- Update STATUS.log when making changes
- Keep README.md in sync with features
- Update STATUS.log "Last Updated" field when making changes
- Run
./update_project_status.shafter STATUS.log updates - Use descriptive commit messages
- Follow semantic versioning for releases
No creative liberties - Only implement what is explicitly discussed and decided
- Never invent features without user approval
- Always ask before adding new scripts or commands
- Keep it simple - prefer plain bash over complex solutions
Documentation-first approach
- Update README.md when adding features
- Document new aliases in project_aliases.sh
- Add examples for new functionality
- Keep STATUS.log current
Decision-first workflow
- Discuss what to add/change
- Update documentation
- Implement the change
- Test thoroughly
- Update STATUS.log
Use loglog format for all status tracking
- STATUS.log files use loglog syntax
- Convert to markdown when needed:
loglog file.log > file.md - Follow loglog syntax from https://github.com/k1monfared/loglog
- Installation:
pip install loglogorcargo install loglog
- Use bash shebang:
#!/bin/bash - Include descriptive comments
- Quote variables properly
- Use
set -efor critical scripts - Provide usage examples in comments
- Scripts: lowercase with underscores (update_project_status.sh)
- Config: lowercase (hooks.json, settings.json)
- Documentation: uppercase or mixed case (README.md, CLAUDE.md, STATUS.log)
- Keep templates generic and well-commented
- Use placeholder text like YYYY-MM-DD
- Provide examples in comments
- Make it obvious what needs to be replaced
- Create a test project folder
- Copy template files
- Fill in STATUS.log
- Run update_project_status.sh
- Verify master file is correctly generated
- Test all bash aliases
- Test with multiple projects
- Test with missing STATUS.log files
- Test with various stage types
- Verify emoji indicators work correctly
Core Scripts:
update_project_status.sh- Aggregates STATUS.log files into masterproject_aliases.sh- Provides bash command shortcuts
Templates:
templates/claude_code_project_template/- Full project template- STATUS.log - Status tracking template
- CLAUDE.md - Claude instructions template
- README.md - README template with status badge
- .claude/hooks.json - Git hooks for auto-update
Documentation:
README.md- User-facing documentationSTATUS.log- This project's statusCLAUDE.md- This file (development guidelines)
Template-based: All projects use same STATUS.log structure Aggregation: Master file generated from individual statuses Automation: Git hooks and scripts handle updates Visual: Emoji indicators for quick scanning Portable: Plain text, works everywhere
- Bash shell (most Linux/macOS systems)
- loglog (optional, for markdown conversion)
- Git (optional, for version control)
# 1. Copy scripts to desired location
# 2. Make scripts executable
chmod +x update_project_status.sh project_aliases.sh
# 3. Add aliases to .bashrc
echo 'source /path/to/project_aliases.sh' >> ~/.bashrc
source ~/.bashrcEdit paths in scripts if not using default locations:
update_project_status.sh: MASTER_FILE, PUBLIC_DIRproject_aliases.sh: All alias paths
- Maintain STATUS.log in this project
- Update "Last Updated" date when making changes
- Track new features in appropriate stage section
- Document blockers and active tasks
README.md includes status badge: Status: 🟢 Production Ready | Mode: 🤖 Claude Code | Updated: 2026-01-13
loglog STATUS.log > STATUS.md
loglog README.md > README_from_log.mdWhen contributing to this project:
- Test thoroughly: Verify scripts work in various scenarios
- Update docs: Keep README.md current with changes
- Follow format: Use existing patterns for consistency
- Keep simple: Prefer simple solutions over clever ones
- Plain text: No external dependencies if possible
- Cross-platform: Bash scripts should work on Linux/macOS/WSL
- Edit
project_aliases.sh - Add function or alias
- Document in
ps-helpfunction - Update README.md with new command
- Test by sourcing the file
- Edit
update_project_status.sh - Test with multiple projects
- Verify emoji indicators still work
- Check output format
- Update documentation if behavior changes
- Add file to
templates/claude_code_project_template/ - Document in README.md
- Ensure it has placeholder values
- Test by copying to a new project
- Create example project folder
- Fill in realistic data
- Include comments explaining choices
- Add to documentation
- This project is production-ready as of 2026-01-13
- Future enhancements tracked in STATUS.log
- Keep dependencies minimal
- Preserve backward compatibility
- Version major releases
- Gather community feedback
For issues or questions:
- Check README.md first
- Review STATUS.log for known issues
- Open GitHub issue with details
- Include bash version and OS info