Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .claude/skills/commit/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: commit
description: Create git commits with user approval and no Claude attribution
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/continuity_ledger/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: continuity-ledger
description: Create or update continuity ledger for state preservation across clears
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/create_handoff/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: create-handoff
description: Create handoff document for transferring work to another session
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/debug/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: debug
description: Debug issues by investigating logs, database state, and git history
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/describe_pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: describe-pr
description: Generate comprehensive PR descriptions following repository templates
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/discovery-interview/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: discovery-interview
description: Deep interview process to transform vague ideas into detailed specs. Works for technical and non-technical users.
user-invocable: true
model: claude-opus-4-5-20251101
Expand Down
4 changes: 4 additions & 0 deletions .claude/skills/loogle-search/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
name: loogle-search
description: Search Mathlib for lemmas by type signature pattern
---
# Loogle Search - Mathlib Type Signature Search

Search Mathlib for lemmas by type signature pattern.
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/plan-agent/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: planning-agent
description: Planning agent that creates implementation plans and handoffs from conversation context
---

Expand Down
6 changes: 6 additions & 0 deletions .claude/skills/recall/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
---
name: recall
description: Query the memory system for relevant learnings from past sessions
user-invocable: false
---

# Recall - Semantic Memory Retrieval

Query the memory system for relevant learnings from past sessions.
Expand Down
6 changes: 6 additions & 0 deletions .claude/skills/remember/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
---
name: remember
description: Store a learning, pattern, or decision in the memory system for future recall
user-invocable: false
---

# Remember - Store Learning in Memory

Store a learning, pattern, or decision in the memory system for future recall.
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/repo-research-analyst/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: repo-research-analyst
description: Analyze repository structure, patterns, conventions, and documentation for understanding a new codebase
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/resume_handoff/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: resume-handoff
description: Resume work from handoff document with context analysis and validation
---

Expand Down
5 changes: 5 additions & 0 deletions .claude/skills/system_overview/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: system-overview
description: Show users how Continuous Claude works - the opinionated setup with hooks, memory, and coordination
---

# System Overview

Show users how Continuous Claude works - the opinionated setup with hooks, memory, and coordination.
Expand Down
5 changes: 5 additions & 0 deletions .claude/skills/tldr-deep/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: tldr-deep
description: Full 5-layer analysis of a specific function. Use when debugging or deeply understanding code.
---

# TLDR Deep Analysis

Full 5-layer analysis of a specific function. Use when debugging or deeply understanding code.
Expand Down
5 changes: 5 additions & 0 deletions .claude/skills/tldr-overview/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: tldr-overview
description: Get a token-efficient overview of any project using the TLDR stack
---

# TLDR Project Overview

Get a token-efficient overview of any project using the TLDR stack.
Expand Down
5 changes: 5 additions & 0 deletions .claude/skills/tldr-router/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: tldr-router
description: Maps questions to the optimal tldr command. Use this to pick the right layer
---

# TLDR Smart Router

Maps questions to the optimal tldr command. Use this to pick the right layer.
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/tldr-stats/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: tldr-stats
description: Show full session token usage, costs, TLDR savings, and hook activity
---

Expand Down
5 changes: 5 additions & 0 deletions .claude/skills/tour/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: tour
description: Friendly onboarding when users ask about capabilities
---

# Tour: What Can I Do?

Friendly onboarding when users ask about capabilities.
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/validate-agent/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
name: validate-agent
description: Validation agent that validates plan tech choices against current best practices
---

Expand Down
5 changes: 3 additions & 2 deletions opc/scripts/setup/math_features.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,9 @@ def show_lean_setup():
# Custom LMStudio endpoint (if not using default port)
export LMSTUDIO_BASE_URL=http://127.0.0.1:5000

# Add to your shell profile for persistence:
echo 'export LMSTUDIO_BASE_URL=http://127.0.0.1:1234' >> ~/.zshrc
# Add to your shell profile for persistence (.zshrc, .bashrc, or config.fish):
# For zsh/bash: echo 'export LMSTUDIO_BASE_URL=http://127.0.0.1:1234' >> ~/.zshrc
# For fish: set -gx LMSTUDIO_BASE_URL http://127.0.0.1:1234 (add to config.fish)


HOW IT WORKS
Expand Down
62 changes: 46 additions & 16 deletions opc/scripts/setup/wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,25 @@ def generate_env_file(config: dict[str, Any], env_path: Path) -> None:
env_path.write_text("\n".join(lines))


def get_shell_config() -> tuple[Path | None, str]:
"""Get the shell config path and type based on current SHELL.

Returns:
tuple: (config_path, shell_type)
"""
shell = os.environ.get("SHELL", "").lower()

if "zsh" in shell:
return Path.home() / ".zshrc", "zsh"
if "fish" in shell:
# Standard location for fish config
return Path.home() / ".config" / "fish" / "config.fish", "fish"
Comment on lines +519 to +521
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fish config directory ~/.config/fish/ may not exist. Should create it before attempting to write to config.fish, otherwise the write operation will fail.

Add before line 863 and 1222:

if shell_type == "fish" and shell_config:
    shell_config.parent.mkdir(parents=True, exist_ok=True)
Prompt To Fix With AI
This is a comment left during a code review.
Path: opc/scripts/setup/wizard.py
Line: 519:521

Comment:
Fish config directory `~/.config/fish/` may not exist. Should create it before attempting to write to `config.fish`, otherwise the write operation will fail.

Add before line 863 and 1222:
```python
if shell_type == "fish" and shell_config:
    shell_config.parent.mkdir(parents=True, exist_ok=True)
```

How can I resolve this? If you propose a fix, please make it concise.

if "bash" in shell:
return Path.home() / ".bashrc", "bash"

return None, "unknown"


async def run_setup_wizard() -> None:
"""Run the interactive setup wizard.

Expand Down Expand Up @@ -838,17 +857,16 @@ async def run_setup_wizard() -> None:

# Set CLAUDE_OPC_DIR environment variable for skills to find scripts
console.print(" Setting CLAUDE_OPC_DIR environment variable...")
shell_config = None
shell = os.environ.get("SHELL", "")
if "zsh" in shell:
shell_config = Path.home() / ".zshrc"
elif "bash" in shell:
shell_config = Path.home() / ".bashrc"
shell_config, shell_type = get_shell_config()

opc_dir = _project_root # Use script location, not cwd (robust if invoked from elsewhere)
if shell_config and shell_config.exists():
content = shell_config.read_text()
export_line = f'export CLAUDE_OPC_DIR="{opc_dir}"'
if shell_type == "fish":
export_line = f'set -gx CLAUDE_OPC_DIR "{opc_dir}"'
else:
export_line = f'export CLAUDE_OPC_DIR="{opc_dir}"'

if "CLAUDE_OPC_DIR" not in content:
with open(shell_config, "a") as f:
f.write(f"\n# Continuous-Claude OPC directory (for skills to find scripts)\n{export_line}\n")
Expand Down Expand Up @@ -1199,18 +1217,15 @@ async def run_setup_wizard() -> None:

# Set LOOGLE_HOME environment variable
console.print(" Setting LOOGLE_HOME environment variable...")
shell_config = None
shell = os.environ.get("SHELL", "")
if "zsh" in shell:
shell_config = Path.home() / ".zshrc"
elif "bash" in shell:
shell_config = Path.home() / ".bashrc"
elif sys.platform == "win32":
shell_config = None # Windows uses different mechanism
shell_config, shell_type = get_shell_config()

if shell_config and shell_config.exists():
content = shell_config.read_text()
export_line = f'export LOOGLE_HOME="{loogle_home}"'
if shell_type == "fish":
export_line = f'set -gx LOOGLE_HOME "{loogle_home}"'
else:
export_line = f'export LOOGLE_HOME="{loogle_home}"'

if "LOOGLE_HOME" not in content:
with open(shell_config, "a") as f:
f.write(f"\n# Loogle (Lean 4 type search)\n{export_line}\n")
Expand Down Expand Up @@ -1252,6 +1267,21 @@ async def run_setup_wizard() -> None:
console.print(" Skipped Loogle installation")
console.print(" [dim]Install later by re-running the wizard[/dim]")

# Verification step
opc_dir_env = os.environ.get("CLAUDE_OPC_DIR")
if not opc_dir_env:
console.print("\n[yellow]WARNING: CLAUDE_OPC_DIR is not set in your current shell session.[/yellow]")
console.print("Core features like memory and learnings may not function correctly until set.")
console.print("\nTo fix this:")

shell_config, _ = get_shell_config()
if shell_config:
console.print(f" 1. Run: [bold]source {shell_config}[/bold]")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

source doesn't work with fish shell. For fish, the instruction should be different (fish uses just the path without source, or can use . for POSIX scripts).

Suggested change
console.print(f" 1. Run: [bold]source {shell_config}[/bold]")
console.print(f" 1. Restart your terminal or reload config")
Prompt To Fix With AI
This is a comment left during a code review.
Path: opc/scripts/setup/wizard.py
Line: 1279:1279

Comment:
`source` doesn't work with fish shell. For fish, the instruction should be different (fish uses just the path without `source`, or can use `.` for POSIX scripts).

```suggestion
            console.print(f"  1. Restart your terminal or reload config")
```

How can I resolve this? If you propose a fix, please make it concise.

else:
console.print(" 1. Restart your terminal session")

console.print(" 2. Then start Claude Code")

# Done!
console.print("\n" + "=" * 60)
console.print("[bold green]Setup complete![/bold green]")
Expand Down