Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
6b86de2
feat(conductor): add checkQueuedMessage and waitForResumeInput callba…
Mar 24, 2026
5d1e19d
feat(events): add 'interrupted' status to workflow.step.complete schema
Mar 24, 2026
0e47fd3
test(events): add interrupted status passthrough test for workflow.st…
Mar 24, 2026
d4f6553
feat(devcontainer): add devcontainer
Mar 24, 2026
8117dc4
feat(specs): add research, specs for workflow interrupt handling
Mar 24, 2026
320500b
test(conductor): add integration tests for executor interrupt/queue/r…
Mar 24, 2026
bb2f85f
chore(devcontainer): simplify Dockerfile and streamline dev setup
lavaman131 Mar 24, 2026
c628dc7
chore(build): use bunx for typecheck, add smol heap mode and opt-in c…
lavaman131 Mar 24, 2026
96764e4
refactor(scripts): extract shared spawn utilities and parallelize pos…
lavaman131 Mar 24, 2026
f939b02
perf(startup): lazy-load SDK clients and workflows, parallelize CLI c…
lavaman131 Mar 24, 2026
7af2ef1
fix(tests): resolve macOS symlink path mismatch in discovery tests
lavaman131 Mar 24, 2026
aa2edd5
fix(test): remove shell glob filters from test scripts
lavaman131 Mar 24, 2026
4b7bd35
chore(config): mirror Claude agent and skill prompts to OpenCode conf…
Mar 24, 2026
0f4fe11
chore(config): mirror Claude agent and skill prompts to GitHub Copilo…
Mar 24, 2026
aedcb03
test(fixtures): add reusable test data builders for parts, events, se…
Mar 24, 2026
e0be363
test(infra): add global state registry for module-level mutable state…
Mar 24, 2026
6baf6b6
test(helpers): add EventBus and Part assertion helpers for test infra…
Mar 24, 2026
24dcd0d
test(verification): rewrite workflow verification test suite from scr…
Mar 24, 2026
4394cf8
fix(test-infra): stop resetting EventHandlerRegistry in global state …
Mar 24, 2026
6978eda
fix(test-infra): stop resetting EventHandlerRegistry in global state …
Mar 24, 2026
213cf05
test(theme): add pure function tests for helpers, palettes, and themes
Mar 24, 2026
2f349da
test(theme): add comprehensive tests for all theme module exports
Mar 24, 2026
3b0549f
test(graph): add comprehensive tests for graph module subsystems
Mar 24, 2026
203d15f
test(graph): add remaining graph module test files
Mar 24, 2026
c21f57c
test(models+workflows): expand model operations and workflow utility …
Mar 24, 2026
f5fbb0d
test(workflows): add surrogate pair truncation and input resolver edg…
Mar 24, 2026
a5ddf05
test(tools+lib): add tests for path-root-guard, truncate, plugin, and…
Mar 24, 2026
83b3e2b
fix: commit untracked mock sources, test suites, and enforce 85% cove…
Mar 24, 2026
a16bf8d
test(streaming): add pipeline-agents tests for normalization, buffer,…
Mar 24, 2026
eb2f3e8
test: add unit tests for opencode utility functions and compaction st…
Mar 24, 2026
5b97d01
test(lib/ui): add tests for agent-list-output and navigation utilities
Mar 24, 2026
0c73ad3
test: add comprehensive tests for applyStreamPartEvent unified reducer
Mar 24, 2026
710aea8
test(streaming): add pipeline-tools tests for shared, hitl, and tool-…
Mar 24, 2026
56e2049
fix(workflows): skip stage banner on resume in onStageTransition call…
Mar 25, 2026
fafb96e
fix(tests): resolve typecheck errors in new test files
Mar 25, 2026
369a406
fix(workflows): preserve session across interrupt/resume cycles
Mar 25, 2026
dd9bb47
test(conductor): align interrupt/resume tests with session preservation
Mar 25, 2026
a0ec69a
docs(research): add test suite design and interrupt/resume bug research
Mar 25, 2026
ddb2f30
docs(specs): add test suite design and session preservation specs
Mar 25, 2026
5ea4025
test(streaming): add pipeline and pipeline-workflow tests
Mar 25, 2026
072be80
test(cli): add comprehensive tests for slash-commands utilities
Mar 25, 2026
e1cf4f2
test(chat): add comprehensive tests for agent-ordering-contract helpers
Mar 25, 2026
48c4d25
test(chat): add comprehensive tests for stream helper pure functions
Mar 25, 2026
70e2f08
test(graph): add comprehensive tests for iteration-dsl authoring helpers
Mar 25, 2026
9a44f4a
test(workflows): add comprehensive tests for graph-helpers executor u…
Mar 25, 2026
62594cb
test(workflows): add comprehensive tests for ResearchDirSaver checkpo…
Mar 25, 2026
fe66703
test(graph): expand iteration-dsl tests to 47 cases with 114 assertions
Mar 25, 2026
24b0aa2
test(commands): add tests for parseWorkflowArgs in workflow-commands/…
Mar 25, 2026
903f985
test(conductor): add session preservation, reuse, and cleanup path tests
Mar 25, 2026
7048fad
test(conductor): add banner suppression and resume-aware transition t…
Mar 25, 2026
b36946c
test(conductor): add full interrupt/resume cycle integration and regr…
Mar 25, 2026
a5f5055
test(conductor): update repro test to reflect preserve-and-resume beh…
Mar 25, 2026
f20ae87
fix(workflows): stabilize interrupt resume flow
Mar 25, 2026
6ae46aa
chore(react-dev-tools): remove dep
Mar 25, 2026
e85792a
fix: resolve pre-existing type errors, lint warnings, and unify cover…
Mar 25, 2026
f714b50
fix(coverage): restructure ignore patterns and remove redundant CLI flag
Mar 25, 2026
5504e4d
fix(workflows): fix stale state and missing stream setup in interrupt…
Mar 25, 2026
231dcb3
fix(workflows): write conductor debug logs to configured log dir
Mar 25, 2026
d11a168
docs(research): add OpenTUI React anti-pattern audit
Mar 25, 2026
13e7eda
feat(hooks): add useStableCallback and useStableValue utility hooks
lavaman131 Mar 25, 2026
b4371ad
refactor(stream): decompose use-session-subscriptions into focused ev…
lavaman131 Mar 25, 2026
04f343f
feat(hooks): extract useModelSelection sub-hook from dispatch controller
lavaman131 Mar 25, 2026
3030d62
refactor(chat): extract useMessageDispatch hook from dispatch controller
lavaman131 Mar 25, 2026
f54c340
feat(chat): extract useCommandDispatch hook from dispatch controller
lavaman131 Mar 25, 2026
edae522
feat(chat): extract useCommandDispatch hook from dispatch controller
lavaman131 Mar 25, 2026
58b74c7
fix(stream): remove unused hasInProgressTask destructuring from façade
lavaman131 Mar 25, 2026
f7decd2
test(chat): add decomposition tests for useChatDispatchController sub…
lavaman131 Mar 25, 2026
4a5770f
refactor(controller): decompose use-ui-controller-stack/controller in…
lavaman131 Mar 25, 2026
c5d1023
refactor(chat): rewrite use-dispatch-controller as thin façade with u…
lavaman131 Mar 25, 2026
c54e67b
fix(keys): add inline comments for index-based list keys and verify s…
lavaman131 Mar 25, 2026
11a893d
perf(render): stabilize inline objects with module-level constants an…
lavaman131 Mar 25, 2026
0662c88
fix(tests): remove unnecessary `as any` casts in store.test.ts
lavaman131 Mar 25, 2026
44bc04c
refactor(types): eliminate unsafe `as` type casts in production code
lavaman131 Mar 25, 2026
8eff886
refactor(stream): replace toolCompletionVersion counter with hasRunni…
lavaman131 Mar 25, 2026
d5bfcc9
refactor(stream): eliminate toolCompletionVersion and agentAnchorSync…
lavaman131 Mar 25, 2026
ed6e95a
refactor(keyboard): consolidate into useKeyboardOwnership with strate…
lavaman131 Mar 25, 2026
531e793
perf(render): convert effect-sync to render-time derivation at 3 sites
lavaman131 Mar 25, 2026
4dcd9f9
refactor(types): decompose ChatShellProps into focused sub-interfaces
lavaman131 Mar 25, 2026
21fbfd8
perf(render): wrap 6 list-item components in React.memo
lavaman131 Mar 25, 2026
a0fd96e
test(memo): add structural tests for React.memo wrapping in tool-resu…
lavaman131 Mar 25, 2026
cb9cfbe
test(hooks): add 102 unit tests for extracted sub-hooks and pure func…
lavaman131 Mar 25, 2026
e353244
test(handlers): add 16 re-export verification tests for handler modules
lavaman131 Mar 25, 2026
63a651e
test(stream): add 108 structural tests for stream sub-hooks
lavaman131 Mar 25, 2026
ee7cb80
test(controller): add 39 structural tests for dispatch sub-hook signa…
lavaman131 Mar 25, 2026
cad3751
test(hooks): add unit tests for extracted sub-hooks
lavaman131 Mar 25, 2026
591baaf
fix(claude): remove invalid session_state_changed system subtype case
lavaman131 Mar 25, 2026
4b8040d
fix(model-selector): move scroll correction into useEffect
lavaman131 Mar 25, 2026
42aa3b6
fix(components): correct agent-tree ref update and dialog visibility
lavaman131 Mar 25, 2026
85e4653
fix(stream): propagate hasRunningTool via React state for interrupts
lavaman131 Mar 25, 2026
01dffb7
fix(claude): handle session_state_changed subtype from SDK 0.2.83
lavaman131 Mar 25, 2026
69fd365
build(deps): bump @opentelemetry/api from ^1.9.0 to ^1.9.1
lavaman131 Mar 25, 2026
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
2 changes: 1 addition & 1 deletion .atomic/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"scm": "github",
"version": 1,
"lastUpdated": "2026-03-23T18:36:09.681Z",
"lastUpdated": "2026-03-24T09:26:46.121Z",
"$schema": "https://raw.githubusercontent.com/flora131/atomic/main/assets/settings.schema.json"
}
1 change: 1 addition & 0 deletions .atomic/workflows/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
17 changes: 17 additions & 0 deletions .atomic/workflows/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .atomic/workflows/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "atomic-workflows",
"private": true,
"type": "module",
"dependencies": {
"@bastani/atomic-workflows": "0.4.29"
}
}
27 changes: 27 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04

# Install Bun and OpenCode as the vscode user (both install to $HOME)
USER vscode

RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL="/home/vscode/.bun"
ENV PATH="${BUN_INSTALL}/bin:${PATH}"

RUN curl -fsSL https://opencode.ai/install | bash
ENV PATH="/home/vscode/.opencode/bin:${PATH}"

RUN curl -fsSL https://claude.ai/install.sh | bash

RUN curl -fsSL https://gh.io/copilot-install | bash

# Install uv, cocoindex-code, and Playwright CLI
ENV PATH="/home/vscode/.local/bin:${PATH}"
RUN curl -LsSf https://astral.sh/uv/install.sh | sh \
&& uv tool install --upgrade cocoindex-code --prerelease explicit --with "cocoindex>=1.0.0a24"

RUN bun install -g @playwright/cli@latest

# Write cocoindex global settings
RUN mkdir -p /home/vscode/.cocoindex_code \
&& printf 'embedding:\n model: lightonai/LateOn-Code-edge\n provider: sentence-transformers\n' \
> /home/vscode/.cocoindex_code/global_settings.yml
20 changes: 20 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "Atomic CLI",
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"remoteEnv": {
"GH_TOKEN": "${localEnv:GH_TOKEN}",
"ANTHROPIC_API_KEY": "${localEnv:ANTHROPIC_API_KEY}"
},
"postCreateCommand": "bun install",
"customizations": {
"vscode": {
"extensions": ["oven.bun-vscode", "oxc.oxc-vscode"]
}
},
"remoteUser": "vscode"
}
29 changes: 20 additions & 9 deletions .github/agents/codebase-analyzer.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,35 @@ You are a specialist at understanding HOW code works. Your job is to analyze imp

## Analysis Strategy

### Code Intelligence
### Semantic Code Search (Primary Discovery)

Prefer LSP over Grep/Glob/Read for code navigation:
ALWAYS try `ccc search` first to discover relevant files before deep reading:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe concepts and behavior in natural language (e.g., `ccc search webhook validation pipeline` not `ccc search validateWebhook`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry

### Code Intelligence (Precise Navigation)

After `ccc search` identifies candidate files, use LSP for tracing:
- `goToDefinition` / `goToImplementation` to jump to source
- `findReferences` to see all usages across the codebase
- `workspaceSymbol` to find where something is defined
- `documentSymbol` to list all symbols in a file
- `hover` for type info without reading the file
- `incomingCalls` / `outgoingCalls` for call hierarchy

Before renaming or changing a function signature, use
`findReferences` to find all call sites first.

Use Grep/Glob only for text/pattern searches (comments,
strings, config values) where LSP doesn't help.
### Grep/Glob (Fallback)

After writing or editing code, check LSP diagnostics before
moving on. Fix any type errors or missing imports immediately.
Use Grep/Glob only when `ccc search` and LSP are insufficient:
- Exact string matching (error messages, config values, import paths)
- Regex pattern searches
- File extension/name pattern matching

### Step 0: Sort Candidate Files by Recency

Expand Down
41 changes: 20 additions & 21 deletions .github/agents/codebase-locator.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,36 +28,35 @@ You are a specialist at finding WHERE code lives in a codebase. Your job is to l

## Search Strategy

### Code Intelligence
### Semantic Code Search (Primary)

Prefer LSP over Grep/Glob/Read for code navigation:
ALWAYS try `ccc search` first for code discovery before falling back to other tools:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe concepts and behavior in natural language (e.g., `ccc search event bus dispatching` not `ccc search EventBus`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry

### Code Intelligence (Refinement)

After `ccc search` identifies candidate files, use LSP for precise navigation:
- `goToDefinition` / `goToImplementation` to jump to source
- `findReferences` to see all usages across the codebase
- `workspaceSymbol` to find where something is defined
- `documentSymbol` to list all symbols in a file
- `hover` for type info without reading the file
- `incomingCalls` / `outgoingCalls` for call hierarchy

Before renaming or changing a function signature, use
`findReferences` to find all call sites first.

Use Grep/Glob only for text/pattern searches (comments,
strings, config values) where LSP doesn't help.

After writing or editing code, check LSP diagnostics before
moving on. Fix any type errors or missing imports immediately.

### Initial Broad Search

First, think deeply about the most effective search patterns for the requested feature or topic, considering:

- Common naming conventions in this codebase
- Language-specific directory structures
- Related terms and synonyms that might be used
### Grep/Glob (Fallback)

1. Start with using your grep tool for finding keywords.
2. Optionally, use glob for file patterns
3. LS and Glob your way to victory as well!
Use Grep/Glob only when `ccc search` and LSP are insufficient:
- Exact string matching (error messages, config values, import paths)
- Regex pattern searches
- File extension/name pattern matching

### Refine by Language/Framework

Expand Down
20 changes: 17 additions & 3 deletions .github/agents/codebase-online-researcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,20 @@ You are an expert research specialist focused on finding accurate, relevant info

Use DeepWiki as your first-choice research tool. When DeepWiki results are insufficient, out-of-date, or unavailable, escalate to the **playwright-cli** skill for live web research.

## Semantic Code Search (For Codebase Queries)

When your research involves understanding the local codebase, ALWAYS try `ccc search` first before Grep/Glob:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe concepts and behavior in natural language (e.g., `ccc search event adapter stream processing`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry
- Fall back to Grep/Glob for exact string matching or regex patterns

## Core Responsibilities

When you receive a research query, you should:
Expand Down Expand Up @@ -129,8 +143,8 @@ Structure your findings as:
- Start with 2-3 well-crafted DeepWiki queries before broadening scope
- When DeepWiki falls short, use the **playwright-cli** skill to fetch full content from the most promising 3-5 web pages
- If initial results are insufficient, refine search terms and try again
- Use search operators effectively: quotes for exact phrases, minus for exclusions, site: for specific domains
- Consider searching in different forms: tutorials, documentation, Q&A sites, and discussion forums
- Use exact error messages and function names when available for higher precision
- Compare guidance across at least two sources when possible
- Prefer DeepWiki for repository-specific knowledge; use playwright-cli for live web content, search engine results, and recently published information

Remember: You are the user's expert guide to external technical information. Combine DeepWiki for repository knowledge with the **playwright-cli** skill for live web research to provide comprehensive, up-to-date answers. Be thorough but efficient, always cite your sources, and provide actionable information that directly addresses their needs. Think deeply as you work.
Remember: You are the user's expert guide to technical research. Combine DeepWiki for repository knowledge with the **playwright-cli** skill for live web research to provide comprehensive, up-to-date answers. Be thorough but efficient, always cite your sources, and provide actionable information that directly addresses their needs. Think deeply as you work.
31 changes: 20 additions & 11 deletions .github/agents/codebase-pattern-finder.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,33 @@ You are a specialist at finding code patterns and examples in the codebase. Your

## Search Strategy

### Code Intelligence
### Semantic Code Search (Primary Discovery)

Prefer LSP over Grep/Glob/Read for code navigation:
ALWAYS try `ccc search` first to find patterns and examples before falling back to other tools:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe the pattern or behavior you're looking for in natural language (e.g., `ccc search pagination with cursor` or `ccc search factory pattern for creating agents`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry

### Code Intelligence (Refinement)

After `ccc search` identifies candidate files, use LSP for precise navigation:
- `goToDefinition` / `goToImplementation` to jump to source
- `findReferences` to see all usages across the codebase
- `workspaceSymbol` to find where something is defined
- `documentSymbol` to list all symbols in a file
- `hover` for type info without reading the file
- `incomingCalls` / `outgoingCalls` for call hierarchy

Before renaming or changing a function signature, use
`findReferences` to find all call sites first.

Use Grep/Glob only for text/pattern searches (comments,
strings, config values) where LSP doesn't help.
### Grep/Glob (Fallback)

After writing or editing code, check LSP diagnostics before
moving on. Fix any type errors or missing imports immediately.
Use Grep/Glob only when `ccc search` and LSP are insufficient:
- Exact string matching (error messages, config values, import paths)
- Regex pattern searches
- File extension/name pattern matching

### Step 1: Identify Pattern Types

Expand Down
16 changes: 15 additions & 1 deletion .github/agents/codebase-research-locator.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,21 @@ You are a specialist at finding documents in the research/ directory. Your job i

## Search Strategy

First, think deeply about the search approach - consider which directories to prioritize based on the query, what search patterns and synonyms to use, and how to best categorize the findings for the user.
### Semantic Code Search (Primary Discovery)

ALWAYS try `ccc search` first to discover relevant research documents before falling back to Grep/Glob:

```bash
ccc search --path 'research/*' <natural language query> # search within research/
ccc search --path 'specs/*' <natural language query> # search within specs/
ccc search --path 'research/*' --path 'specs/*' <query> # search both
```

- Describe the topic in natural language (e.g., `ccc search --path 'research/*' rate limiting design decisions`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry
- Fall back to Grep/Glob for exact string matching or filename pattern searches

Then think deeply about the search approach - consider which directories to prioritize based on the query, what search patterns and synonyms to use, and how to best categorize the findings for the user.

### Directory Structure

Expand Down
21 changes: 15 additions & 6 deletions .github/agents/debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,30 @@ Available tools:
- ALWAYS ASSUME you have the playwright-cli tool installed (if the `playwright-cli` command fails, fallback to `bunx playwright-cli`).
- ALWAYS invoke your testing-anti-patterns skill BEFORE creating or modifying any tests.

### Semantic Code Search (Primary Discovery)

ALWAYS try `ccc search` first to find relevant code before falling back to other tools:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe the bug or behavior in natural language (e.g., `ccc search stream timeout error handling`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry

### Code Intelligence

Prefer LSP over Grep/Glob/Read for code navigation:
After `ccc search` identifies candidate files, use LSP for precise navigation:
- `goToDefinition` / `goToImplementation` to jump to source
- `findReferences` to see all usages across the codebase
- `workspaceSymbol` to find where something is defined
- `documentSymbol` to list all symbols in a file
- `hover` for type info without reading the file
- `incomingCalls` / `outgoingCalls` for call hierarchy

Before renaming or changing a function signature, use
`findReferences` to find all call sites first.

Use Grep/Glob only for text/pattern searches (comments,
strings, config values) where LSP doesn't help.
Use Grep/Glob only for exact string matching (error messages, config values) where `ccc search` and LSP don't help.

After writing or editing code, check LSP diagnostics before
moving on. Fix any type errors or missing imports immediately.
Expand Down
14 changes: 14 additions & 0 deletions .github/agents/planner.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@ You are the planner agent for the Ralph autonomous implementation workflow.

Your job is to decompose the user's feature request into a structured, ordered list of implementation tasks optimized for **parallel execution** by multiple concurrent sub-agents.

## Semantic Code Search (Primary Discovery)

ALWAYS try `ccc search` first to understand the codebase before decomposing tasks:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe concepts and behavior in natural language (e.g., `ccc search authentication middleware flow`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry
- Fall back to Grep/Glob for exact string matching or regex patterns

## Critical: Parallel Execution Model

**Multiple worker sub-agents execute tasks concurrently.** Your task decomposition directly impacts orchestration efficiency:
Expand Down
22 changes: 17 additions & 5 deletions .github/agents/worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,22 @@ Use the "Gang of Four" patterns as a shared vocabulary to solve recurring proble
- If a completion promise is set, you may ONLY output it when the statement is completely and unequivocally TRUE. Do not output false promises to escape the loop, even if you think you're stuck or should exit for other reasons. The loop is designed to continue until genuine completion.
- Tip: For refactors or code cleanup tasks prioritize using sub-agents to help you with the work and prevent overloading your context window, especially for a large number of file edits

### Semantic Code Search (Primary Discovery)

ALWAYS try `ccc search` first to find relevant code before falling back to other tools:

```bash
ccc search <natural language query> # semantic search
ccc search --lang typescript <query> # filter by language
ccc search --path 'src/services/*' <query> # filter by path
```

- Describe concepts and behavior in natural language (e.g., `ccc search workflow conductor interrupt handling`)
- If `ccc search` fails with an init error, run `ccc init && ccc index` first, then retry

### Code Intelligence

Prefer LSP over Grep/Glob/Read for code navigation:
After `ccc search` identifies candidate files, use LSP for precise navigation:
- `goToDefinition` / `goToImplementation` to jump to source
- `findReferences` to see all usages across the codebase
- `workspaceSymbol` to find where something is defined
Expand All @@ -95,8 +108,7 @@ Prefer LSP over Grep/Glob/Read for code navigation:
Before renaming or changing a function signature, use
`findReferences` to find all call sites first.

Use Grep/Glob only for text/pattern searches (comments,
strings, config values) where LSP doesn't help.
Use Grep/Glob only for exact string matching (error messages, config values, import paths) where `ccc search` and LSP don't help.

After writing or editing code, check LSP diagnostics before
moving on. Fix any type errors or missing imports immediately.
Expand All @@ -105,7 +117,7 @@ moving on. Fix any type errors or missing imports immediately.

When you encounter ANY bug — whether introduced by your changes, discovered during testing, or pre-existing — you MUST follow this protocol:

1. **Delegate debugging**: Use the Task tool to spawn a debugger agent. It can use DeepWiki for framework and library best practices.
1. **Delegate debugging**: Use the Task tool to spawn a debugger agent. It can navigate the web for best practices.
2. **Add the bug fix to the TOP of the task list AND update `blockedBy` on affected tasks**: Update `~/.atomic/sessions/workflows/{workflow_name}/{session_id}/tasks.json` with the bug fix as the FIRST item in the array (highest priority). Then, for every task whose work depends on the bug being fixed first, add the bug fix task's ID to that task's `blockedBy` array. This ensures those tasks cannot be started until the fix lands. Example:
```json
[
Expand All @@ -123,7 +135,7 @@ Do NOT ignore bugs. Do NOT deprioritize them. Bugs always go to the TOP of the t

- AFTER implementing the feature AND verifying its functionality by creating tests, mark the feature as complete in the task list
- It is unacceptable to remove or edit tests because this could lead to missing or buggy functionality
- Commit progress to git with descriptive commit messages by invoking the `gh-commit` skill (e.g. `/commit`)
- Commit progress to git with descriptive commit messages by running the `/commit` command using the `Skill` tool (e.g. invoke skill `gh-commit`)
- Write summaries of your progress in `~/.atomic/sessions/workflows/{workflow_name}/{session_id}/progress.txt`
- Tip: this can be useful to revert bad code changes and recover working states of the codebase
- Note: you are competing with another coding agent that also implements features. The one who does a better job implementing features will be promoted. Focus on quality, correctness, and thorough testing. The agent who breaks the rules for implementation will be fired.
Loading
Loading