Skip to content

Commit 41f3ac0

Browse files
committed
📝 Add CHANGELOG.md and CODE_OF_CONDUCT.md, update README.md
Initial changelog documents project releases, roadmap, and migration notes for version tracking and user guidance. Code of conduct establishes community standards to foster inclusive contributions. README updates refine descriptions, section titles, and workflow examples to better highlight CedarMapper's value for code analysis and LLM integration. 🔧 Update pyproject.toml with enhanced metadata and classifiers Enhance project description to highlight advanced CLI features for LLM-optimized repo analysis, including word counting and YAML output. Expand keywords and add classifiers for better PyPI discoverability, targeting developers, education, and various OS/platforms while emphasizing typed Python code and utility topics.
1 parent 1f3c902 commit 41f3ac0

File tree

4 files changed

+248
-11
lines changed

4 files changed

+248
-11
lines changed

CHANGELOG.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Planned
11+
- Additional output formats (JSON, CSV)
12+
- Plugin system for custom analyzers
13+
- Integration with popular IDEs
14+
- Web-based repository visualization
15+
16+
## [0.1.0] - 2025-11-28
17+
18+
### Added
19+
- **Initial release** of CedarMapper CLI tool
20+
- **Directory traversal** with configurable depth limits
21+
- **Word counting** for text files using system `wc` tool
22+
- **Binary file detection** using `file` command with Python fallback
23+
- **Multiple output formats**:
24+
- Flat list view with sortable columns
25+
- Tree view with indentation and prefixes
26+
- Tree-only mode for path listing
27+
- Structured YAML output for LLM consumption
28+
29+
- **Advanced sorting system** with 13 sort keys:
30+
- Word count (`w`), Size (`s`), Date (`d`), Depth (`i`)
31+
- Name (`n`), Path (`p`), File count (`f`), Directory count (`r`)
32+
- Average words (`a`), Average size (`z`), Binary flag (`b`)
33+
- Multi-key sorting with reverse flags (e.g., `"i-sd"`)
34+
35+
- **Analytics columns** for comprehensive repository analysis:
36+
- Node depth tracking
37+
- File and directory counts per directory
38+
- Average words per file (directories)
39+
- Average size per file (directories)
40+
- Conditional computation for performance optimization
41+
42+
- **Performance optimizations**:
43+
- Linux tool integration (`file`, `wc`, `stat`)
44+
- Conditional feature computation based on displayed columns
45+
- Efficient aggregation during directory traversal
46+
- Safe fallbacks for non-Linux environments
47+
48+
- **User experience features**:
49+
- Git-style line limiting (`-N` syntax)
50+
- Multiple date formats (ISO seconds, day-only)
51+
- Numbered indentation for tree views
52+
- Comprehensive CLI help and examples
53+
- 55 comprehensive tests with coverage reporting
54+
55+
- **Developer-focused features**:
56+
- LLM-optimized YAML output with front matter
57+
- Structured data for programmatic consumption
58+
- Extensible architecture for future enhancements
59+
- Type hints throughout the codebase
60+
- Comprehensive documentation
61+
62+
### Configuration
63+
- **PyPI package**: `cedarmapper` with entry point `cedarmapper ls`
64+
- **Python support**: 3.12+ with modern type annotations
65+
- **Dependencies**: Click (CLI framework), PyYAML (output format)
66+
- **Development tools**: Black, Ruff, MyPy, pytest
67+
- **License**: Apache 2.0
68+
69+
### Documentation
70+
- Comprehensive README with 50+ usage examples
71+
- API documentation for all modules
72+
- Development setup instructions
73+
- Contributing guidelines
74+
- Security policy and code of conduct
75+
76+
## [Future Roadmap]
77+
78+
### Version 0.2.0 (Planned)
79+
- **Output formats**: JSON, CSV, Markdown table
80+
- **Filtering system**: File type filters, size filters, date ranges
81+
- **Integration**: GitHub Actions, CI/CD pipeline tools
82+
- **Performance**: Parallel processing for large repositories
83+
84+
### Version 0.3.0 (Planned)
85+
- **Web interface**: Interactive repository visualization
86+
- **Comparison mode**: Before/after repository analysis
87+
- **Plugin system**: Custom analyzers and formatters
88+
- **Database export**: SQLite integration for historical data
89+
90+
### Version 1.0.0 (Target)
91+
- **Stable API**: Public API for third-party integration
92+
- **Advanced features**: Machine learning integration for code analysis
93+
- **Enterprise features**: Team collaboration, reporting dashboards
94+
- **Ecosystem**: Integration with popular development tools
95+
96+
---
97+
98+
## Version Summary
99+
100+
- **0.1.0**: Foundation release with core repository analysis capabilities
101+
- **0.2.0**: Enhanced output and filtering capabilities
102+
- **0.3.0**: Interactive features and extensibility
103+
- **1.0.0**: Production-ready with enterprise features
104+
105+
## Migration Notes
106+
107+
### From 0.1.x to 0.2.x (Future)
108+
- No breaking changes expected
109+
- New output formats will be additive
110+
- Existing CLI options remain stable
111+
- Performance improvements will be transparent
112+
113+
### Compatibility Guarantees
114+
115+
- **CLI interface**: Stable until 1.0.0
116+
- **YAML output format**: Semantic versioning for schema changes
117+
- **Python API**: Internal APIs may change until 1.0.0
118+
- **Configuration files**: Backward compatible where possible
119+
120+
---
121+
122+
*For detailed release notes and upgrade instructions, see the [GitHub Releases](https://github.com/yourusername/cedarmapper/releases) page.*

CODE_OF_CONDUCT.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Contributor Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
## Our Standards
8+
9+
### Positive Behavior
10+
11+
Examples of behavior that contributes to creating a positive environment include:
12+
13+
* Using welcoming and inclusive language
14+
* Being respectful of differing viewpoints and experiences
15+
* Gracefully accepting constructive criticism
16+
* Focusing on what is best for the community
17+
* Showing empathy towards other community members
18+
* Providing help and guidance to newcomers
19+
* Contributing to the project in good faith
20+
21+
### Unacceptable Behavior
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
26+
* Trolling, insulting/derogatory comments, and personal or political attacks
27+
* Public or private harassment
28+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
29+
* Any conduct which could reasonably be considered inappropriate in a professional setting
30+
* Deliberate intimidation, stalking, or following
31+
* Sustained disruption of discussions, talks, or other events
32+
* Spamming or repeatedly posting off-topic content
33+
34+
## Project-Specific Guidelines
35+
36+
### Code Contributions
37+
38+
* **Quality over quantity**: Focus on meaningful contributions that improve the tool
39+
* **Testing**: Ensure all contributions include appropriate tests
40+
* **Documentation**: Update documentation for new features and changes
41+
* **Performance**: Consider performance implications, especially for large repositories
42+
* **Compatibility**: Maintain backward compatibility when possible
43+
44+
### Issue Reporting and Discussions
45+
46+
* **Search first**: Check existing issues before creating new ones
47+
* **Be specific**: Provide clear, detailed descriptions of problems or suggestions
48+
* **Code examples**: Include minimal reproducible examples when reporting bugs
49+
* **Patience**: Maintainers are volunteers and will respond as time permits
50+
51+
## Responsibilities
52+
53+
### Project Maintainers
54+
55+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
56+
57+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
58+
59+
### Contributors
60+
61+
Contributors are expected to:
62+
63+
* Read and follow this Code of Conduct
64+
* Help create a positive and inclusive environment
65+
* Report inappropriate behavior to maintainers
66+
* Focus on what is best for the community
67+
68+
## Scope
69+
70+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
71+
72+
## Enforcement
73+
74+
### Reporting Incidents
75+
76+
If you experience or witness unacceptable behavior, please contact the project team:
77+
78+
**Email**: conduct@example.com
79+
80+
All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
81+
82+
### Enforcement Process
83+
84+
1. **Report**: Any community member can report violations to the project team
85+
2. **Review**: Maintainers will review the report privately and objectively
86+
3. **Action**: If the Code of Conduct was violated, appropriate action will be taken
87+
4. **Follow-up**: Maintainers may follow up with involved parties as needed
88+
89+
### Possible Consequences
90+
91+
Consequences for violating the Code of Conduct may include:
92+
93+
* Private warning from the project team
94+
* Temporary or permanent ban from public project spaces
95+
* Removal of access to project resources
96+
* Public statement about the violation (with consent of the reporter)
97+
98+
## Attribution
99+
100+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
101+
102+
For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
[![Python](https://img.shields.io/badge/python-%E2%89%A53.12-blue.svg)](https://python.org)
55
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
66

7-
Ultra-fast directory traversal with word counting, statistical analysis, and structured output designed specifically for LLM workflows and code repository understanding.
7+
CedarMapper is a powerful CLI tool for **code analysis** and **repository visualization** that generates comprehensive **project analytics** for **LLM** consumption. Perfect for **developer tools** workflows, this **directory analysis** solution provides **code statistics** and **code overview** capabilities with multi-key sorting and structured YAML output.
88

9-
## ✨ Key Features
9+
## ✨ Key Features: Repository Analysis & Code Statistics
1010

1111
- **🎯 Structured YAML Output** with front matter for programmatic consumption
1212
- **📊 Advanced Analytics Columns**: node depth, file/directory counts, average statistics
@@ -16,7 +16,7 @@ Ultra-fast directory traversal with word counting, statistical analysis, and str
1616
- **🌳 Rich Tree Views**: numbered indentation and prefix separation
1717
- **🔍 Binary File Detection**: intelligent content analysis and caching
1818

19-
## 🚀 Quick Start
19+
## 🚀 Quick Start: CLI Tool Installation & Usage
2020

2121
### Installation
2222

@@ -43,7 +43,7 @@ cedarmapper ls . --sort "-sf" --max-depth 3
4343
cedarmapper ls . -10 --sort "-s"
4444
```
4545

46-
## 🎯 Structured YAML Output
46+
## 🎯 Structured YAML Output: LLM-Optimized Data Format
4747

4848
Generate machine-readable repository analysis with comprehensive metadata:
4949

@@ -103,7 +103,7 @@ entries:
103103
- CI/CD pipeline integration
104104
- Code review automation
105105

106-
## 📊 Advanced Analytics Columns
106+
## 📊 Advanced Analytics: Project Statistics & Directory Analysis
107107

108108
Display comprehensive statistics about your repository structure:
109109

@@ -195,7 +195,7 @@ Words Size Modified Path
195195
94294 14947634 2025-11-28T15:25:22 TOTAL
196196
```
197197

198-
## ⚡ Performance Features
198+
## ⚡ Performance Features: High-Speed Directory Analysis
199199

200200
### Linux Tool Integration
201201
CedarMapper automatically leverages Linux tools for maximum performance:
@@ -222,7 +222,7 @@ cedarmapper ls . --show-word-count
222222
cedarmapper ls src/ --max-depth 2 --file-count --dir-count
223223
```
224224

225-
## 🔧 Practical Workflows
225+
## 🔧 Practical Workflows: Real-World Developer Tools Usage
226226

227227
### Repository Overview for LLMs
228228
```bash
@@ -266,7 +266,7 @@ cedarmapper ls . --sort "-f" --max-depth 3
266266
cedarmapper ls . --sort "z" --avg-size --max-depth 2
267267
```
268268

269-
## 📊 Feature Comparison
269+
## 📊 Feature Comparison: CedarMapper vs Other Code Analysis Tools
270270

271271
| Feature | CedarMapper | `tree` | `fd/find` | `llm-repo-tools` |
272272
|---------|-------------|--------|-----------|------------------|

pyproject.toml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,37 @@ build-backend = "hatchling.build"
55
[project]
66
name = "cedarmapper"
77
version = "0.1.0"
8-
description = "Tool to help LLMs get overviews of large repos at desired granularity levels"
8+
description = "Advanced CLI tool for LLM-optimized repository analysis with word counting, multi-key sorting, and structured YAML output. Perfect for AI-powered code analysis and project overview generation."
99
readme = "README.md"
1010
requires-python = ">=3.12"
1111
license = {text = "Apache-2.0"}
1212
authors = [
1313
{name = "Your Name", email = "your.email@example.com"}
1414
]
15-
keywords = ["llm", "repository", "analysis", "code-overview"]
15+
keywords = ["cli-tool", "code-analysis", "project-analytics", "developer-tools", "code-overview", "directory-analysis", "llm-tool", "code-statistics", "repository-visualization"]
1616
classifiers = [
1717
"Development Status :: 3 - Alpha",
1818
"Environment :: Console",
1919
"Intended Audience :: Developers",
20+
"Intended Audience :: Education",
2021
"License :: OSI Approved :: Apache Software License",
2122
"Operating System :: OS Independent",
23+
"Operating System :: POSIX :: Linux",
24+
"Operating System :: Unix",
25+
"Operating System :: MacOS",
2226
"Programming Language :: Python :: 3",
2327
"Programming Language :: Python :: 3.12",
2428
"Programming Language :: Python :: 3.13",
25-
"Topic :: Software Development :: Libraries :: Python Modules",
29+
"Programming Language :: Python :: 3 :: Only",
30+
"Topic :: Software Development :: Documentation",
31+
"Topic :: Software Development :: Tools",
32+
"Topic :: System :: Archiving",
33+
"Topic :: System :: Filesystems",
34+
"Topic :: System :: Monitoring",
35+
"Topic :: System :: Systems Administration",
36+
"Topic :: Text Processing",
37+
"Topic :: Utilities",
38+
"Typing :: Typed",
2639
]
2740
dependencies = [
2841
"click>=8.0.0",

0 commit comments

Comments
 (0)