refactor: reorganize lens directory structure
Symmetric layout for review lenses: - ~/.config/lenses/code/ <- code-review lenses - ~/.config/lenses/ops/ <- ops-review lenses Updated: - modules/ai-skills.nix deployment paths - skills/code-review/SKILL.md lens references - skills/code-review/lenses/README.md examples 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
1e9d6cb93d
commit
f33f7ae690
|
|
@ -122,5 +122,5 @@
|
|||
{"id":"skills-wm9","title":"Research Steve Yegge's orchestration work","description":"Steve Yegge is working on something new related to AI orchestration. Research what it is and how it might inform our skills+molecules integration design.\n\nBlocks: skills-hin (ADR finalization)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T02:41:47.848905848-05:00","updated_at":"2025-12-24T02:42:24.40239935-05:00","closed_at":"2025-12-24T02:42:24.40239935-05:00","close_reason":"Not needed - just parking the ADR work"}
|
||||
{"id":"skills-x2l","title":"Investigate hooks for parallel orch queries","description":"When using orch skill, it would be useful to spin off multiple model queries in parallel automatically (e.g., gemini + gpt simultaneously). Explore if Claude Code hooks can trigger parallel background processes when the orch skill is invoked.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-06T19:29:00.165752425-08:00","updated_at":"2025-12-29T15:49:43.831970326-05:00","closed_at":"2025-12-29T15:49:43.831970326-05:00","close_reason":"Investigated. Hooks are synchronous with 60s timeout - unsuitable for background orch queries. Alternatives: (1) SessionStart hook for initial consensus, (2) Explicit skill invocation, (3) PostToolUse for validation. orch consensus already runs models in parallel internally."}
|
||||
{"id":"skills-x33","title":"Add tests for branch name generation","description":"File: .specify/scripts/bash/create-new-feature.sh (lines 137-181)\n\nCritical logic with NO test coverage:\n- Word filtering with stop-words\n- Acronym detection\n- Unicode/special character handling\n- Max length boundary (244 bytes)\n- Empty/single-word descriptions\n\nRisk: HIGH - affects all branch creation\n\nFix:\n- Create test suite with edge cases\n- Test stop-word filtering accuracy\n- Test boundary conditions\n\nSeverity: HIGH","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-24T02:51:00.311664646-05:00","updated_at":"2025-12-24T02:51:00.311664646-05:00"}
|
||||
{"id":"skills-ybq","title":"Reorganize lens directory structure","description":"Current structure puts ops lenses as subdirectory of code-review lenses:\n\n```\n~/.config/lenses/ \u003c- code-review lenses\n~/.config/lenses/ops/ \u003c- ops-review lenses\n```\n\nThis is asymmetric. Consider:\n\nOption A: Separate top-level directories\n```\n~/.config/lenses/code-review/\n~/.config/lenses/ops-review/\n```\n\nOption B: Keep flat but with prefixes\n```\n~/.config/lenses/code-*.md\n~/.config/lenses/ops-*.md\n```\n\nOption C: Per-skill lens directories\n```\n~/.claude/skills/code-review/lenses/\n~/.claude/skills/ops-review/lenses/\n```\n\nRequires updating:\n- modules/ai-skills.nix (deployment paths)\n- skills/code-review/SKILL.md (expected paths)\n- skills/ops-review/SKILL.md (expected paths)","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-01T21:57:06.726997606-05:00","created_by":"dan","updated_at":"2026-01-01T21:57:06.726997606-05:00"}
|
||||
{"id":"skills-ybq","title":"Reorganize lens directory structure","description":"Current structure puts ops lenses as subdirectory of code-review lenses:\n\n```\n~/.config/lenses/ \u003c- code-review lenses\n~/.config/lenses/ops/ \u003c- ops-review lenses\n```\n\nThis is asymmetric. Consider:\n\nOption A: Separate top-level directories\n```\n~/.config/lenses/code-review/\n~/.config/lenses/ops-review/\n```\n\nOption B: Keep flat but with prefixes\n```\n~/.config/lenses/code-*.md\n~/.config/lenses/ops-*.md\n```\n\nOption C: Per-skill lens directories\n```\n~/.claude/skills/code-review/lenses/\n~/.claude/skills/ops-review/lenses/\n```\n\nRequires updating:\n- modules/ai-skills.nix (deployment paths)\n- skills/code-review/SKILL.md (expected paths)\n- skills/ops-review/SKILL.md (expected paths)","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-01T21:57:06.726997606-05:00","created_by":"dan","updated_at":"2026-01-02T00:24:53.647409845-05:00","closed_at":"2026-01-02T00:24:53.647409845-05:00","close_reason":"Reorganized lens directories: code-review → ~/.config/lenses/code/, ops-review → ~/.config/lenses/ops/. Updated ai-skills.nix, SKILL.md, and README references."}
|
||||
{"id":"skills-yxv","title":"worklog: extract hardcoded path to variable","description":"SKILL.md repeats ~/.claude/skills/worklog/ path 4-5 times. Define SKILL_ROOT once, reference throughout. Found by bloat+smells lens review.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-25T02:03:15.831699081-05:00","updated_at":"2025-12-27T10:05:51.532722628-05:00","closed_at":"2025-12-27T10:05:51.532722628-05:00","close_reason":"Closed"}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
skills-8ma
|
||||
skills-ybq
|
||||
|
|
|
|||
|
|
@ -89,13 +89,12 @@ in {
|
|||
)
|
||||
))
|
||||
|
||||
# Lenses for orch (sourced from code-review skill)
|
||||
# Lenses for orch (separate subdirectories per skill)
|
||||
(mkIf cfg.enableLenses {
|
||||
".config/lenses" = {
|
||||
".config/lenses/code" = {
|
||||
source = "${cfg.skillsPath}/code-review/lenses";
|
||||
recursive = true;
|
||||
};
|
||||
# Ops lenses in separate subdirectory
|
||||
".config/lenses/ops" = {
|
||||
source = "${cfg.skillsPath}/ops-review/lenses";
|
||||
recursive = true;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ The skill accepts an optional target:
|
|||
|
||||
## Available Lenses
|
||||
|
||||
Lenses are focused review prompts located in `~/.config/lenses/`:
|
||||
Lenses are focused review prompts located in `~/.config/lenses/code/`:
|
||||
|
||||
| Lens | Focus |
|
||||
|------|-------|
|
||||
|
|
@ -50,7 +50,7 @@ Lenses are focused review prompts located in `~/.config/lenses/`:
|
|||
### Phase 2: Lens Execution
|
||||
For each lens, analyze the target files:
|
||||
|
||||
1. Read the lens prompt from `~/.config/lenses/{lens}.md`
|
||||
1. Read the lens prompt from `~/.config/lenses/code/{lens}.md`
|
||||
2. Apply the lens to the target code
|
||||
3. Collect findings in structured format
|
||||
|
||||
|
|
@ -182,6 +182,6 @@ max_file_size_kb: 500 # Skip files larger than this
|
|||
|
||||
## Integration
|
||||
|
||||
- **Lenses**: Read from `~/.config/lenses/*.md`
|
||||
- **Lenses**: Read from `~/.config/lenses/code/*.md`
|
||||
- **Issue Tracking**: Uses `bd create` for beads issues
|
||||
- **Orch**: Optional consensus filtering via `orch consensus`
|
||||
|
|
|
|||
|
|
@ -10,19 +10,19 @@ Each lens examines code through one specific concern. Multiply lenses × models
|
|||
|
||||
**Single lens, multiple models:**
|
||||
```bash
|
||||
orch consensus "$(cat ~/.config/lenses/bloat.md)" flash gemini gpt --file src/target.py
|
||||
orch consensus "$(cat ~/.config/lenses/code/bloat.md)" flash gemini gpt --file src/target.py
|
||||
```
|
||||
|
||||
**Pipe file content:**
|
||||
```bash
|
||||
cat src/target.py | orch consensus "$(cat ~/.config/lenses/smells.md)" flash gemini
|
||||
cat src/target.py | orch consensus "$(cat ~/.config/lenses/code/smells.md)" flash gemini
|
||||
```
|
||||
|
||||
**Convergent review (multiple passes):**
|
||||
```bash
|
||||
for lens in bloat smells dead-code; do
|
||||
echo "=== $lens ==="
|
||||
orch chat "$(cat ~/.config/lenses/$lens.md)" --model gemini --file src/target.py
|
||||
orch chat "$(cat ~/.config/lenses/code/$lens.md)" --model gemini --file src/target.py
|
||||
done
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue