# v0.23.0 Community Posts

*Directory Expansion for Verification*

---

## Twitter/X Thread

**Tweet 1 (Main)**:
> LLM Council v0.23.0: Directory Expansion for Verification
>
> Previously: verify("docs/") saw tree listings
> Now: Automatically expands to constituent files
>
> 80+ text extensions | 100 file cap | Symlink-safe
>
> pip install --upgrade llm-council-core
>
> Thread 🧵

**Tweet 2**:
> The problem: When you asked the council to verify a directory, it saw git tree metadata instead of actual content.
>
> Models correctly identified: "This review can only assess the directory structure, not the actual documentation content."
>
> Not useful for CI/CD.

**Tweet 3**:
> The solution: Smart directory expansion
>
> 1. Detect directories via `git cat-file -t`
> 2. List files recursively via `git ls-tree -rz`
> 3. Filter to text files (80+ extensions)
> 4. Skip garbage (package-lock.json, etc.)
> 5. Cap at 100 files

**Tweet 4**:
> Security considerations:
>
> - Symlinks (mode 120000) skipped to prevent path escape
> - Submodules (mode 160000) skipped (different repos)
> - NUL-delimited parsing for safe filenames
> - Deterministic alphabetical sorting for CI/CD

**Tweet 5**:
> New response fields:
>
> ```json
> {
>   "expanded_paths": ["docs/api.md", ...],
>   "paths_truncated": false,
>   "expansion_warnings": []
> }
> ```
>
> Full transparency in what was verified.

**Tweet 6**:
> Try it:
> ```bash
> llm-council verify $(git rev-parse HEAD) --paths docs/
> ```
>
> Blog: [link to blog post]
> GitHub: https://github.com/amiable-dev/llm-council

---

## Reddit r/LocalLLaMA

**Title**: LLM Council v0.23.0: Verify entire directories, not just files

**Body**:

> Pushed a feature I've been wanting for a while - directory expansion in the verification API.
>
> **The Problem**
>
> When you asked the council to verify `docs/`, it saw this:
> ```
> 040000 tree abc123   adr
> 100644 blob def456   api.md
> ```
>
> A git tree listing. The models correctly said "can't review what we can't see."
>
> **The Solution**
>
> Now directories automatically expand to their constituent text files:
>
> ```python
> result = await verify(
>     snapshot_id="abc1234",
>     target_paths=["docs/"],
> )
> # Council sees actual markdown content
> ```
>
> **Technical Details**
>
> - Uses `git cat-file -t` to detect directories
> - Uses `git ls-tree -rz` for safe filename parsing (handles spaces, newlines)
> - Filters to 80+ text extensions (.py, .md, .js, etc.)
> - Excludes garbage (package-lock.json, yarn.lock)
> - Caps at 100 files with deterministic alphabetical sorting
> - Skips symlinks and submodules for security
>
> **New Response Fields**
>
> ```json
> {
>   "expanded_paths": ["docs/api.md", "docs/intro.md"],
>   "paths_truncated": false,
>   "expansion_warnings": []
> }
> ```
>
> 34 tests covering all edge cases.
>
> `pip install --upgrade llm-council-core`
>
> GitHub: https://github.com/amiable-dev/llm-council

---

## Reddit r/programming

**Title**: Smart directory expansion for multi-model code verification

**Body**:

> Built a feature for LLM Council that solves an annoying problem: verifying entire directories instead of listing individual files.
>
> **Before v0.23.0:**
> ```
> verify --paths docs/
> # Council sees: "040000 tree abc123  adr\n100644 blob def456  api.md"
> # Verdict: UNCLEAR - "can't review tree listings"
> ```
>
> **After v0.23.0:**
> ```
> verify --paths docs/
> # Council sees: actual markdown content
> # Verdict: APPROVED/REJECTED with confidence score
> ```
>
> **How it works:**
>
> 1. Detect if path is file or directory (`git cat-file -t`)
> 2. List files recursively (`git ls-tree -rz` for safe parsing)
> 3. Filter to text files (80+ extensions)
> 4. Exclude garbage files (lock files, etc.)
> 5. Cap at 100 files (deterministic sorting)
>
> **Security:**
> - Symlinks skipped (prevent path escape)
> - Submodules skipped (separate repos)
> - NUL-delimited parsing (handles weird filenames)
>
> **Response includes expansion metadata:**
> ```json
> {
>   "expanded_paths": ["docs/api.md", "docs/intro.md"],
>   "paths_truncated": false,
>   "expansion_warnings": []
> }
> ```
>
> Open source: https://github.com/amiable-dev/llm-council
>
> The underlying idea is having multiple LLMs review code, anonymously rank each other's reviews, then synthesize a verdict. Directory expansion just makes that practical for real projects.

---

## Hacker News

**Title**: Show HN: Directory expansion for multi-model code verification

**Text**:

> When I built LLM Council's verification feature, I hit an annoying limitation: `--paths docs/` would return a git tree listing instead of actual file contents.
>
> v0.23.0 adds automatic directory expansion:
>
> 1. Detects directories via `git cat-file -t`
> 2. Lists files recursively via `git ls-tree -rz`
> 3. Filters to text extensions (80+)
> 4. Excludes lock files and generated garbage
> 5. Caps at 100 files with deterministic sorting
>
> Security considerations:
> - Symlinks skipped (mode 120000) to prevent path traversal
> - Submodules skipped (mode 160000) - different repos
> - NUL-delimited parsing for filenames with spaces/newlines
>
> The response now includes:
> ```
> {
>   "expanded_paths": ["docs/api.md", ...],
>   "paths_truncated": false,
>   "expansion_warnings": []
> }
> ```
>
> 34 tests including integration tests against the actual repo.
>
> GitHub: https://github.com/amiable-dev/llm-council
> `pip install --upgrade llm-council-core`
>
> Would appreciate feedback from anyone doing automated code review in CI/CD.

---

## Cross-posting Notes

1. **Wait 24-48 hours between posts** to different platforms
2. **Engage with comments** - answer questions, take feedback
3. **HN timing**: Post between 6-9am PT for best visibility
4. **Reddit timing**: Post during US business hours

## Platform-specific Notes

| Platform | Tone | Focus |
|----------|------|-------|
| Twitter/X | Concise, technical | Quick wins, upgrade command |
| r/LocalLLaMA | Practical, friendly | How it helps their workflow |
| r/programming | Technical, skeptical-friendly | Implementation details |
| HN | Technical, concise | Interesting problem + solution |
