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
4 changes: 2 additions & 2 deletions PLUGIN_SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ ix-opencode-plugin/
| `ix-map` | Architectural map + subsystem overview | `ix map <scope>` CLI |
| `ix-ingest` | Graph status + refresh trigger | `ix status` / `ix map` CLI |
| `ix-history` | Revision/decisions/bugs | `ix history` CLI (Pro only) |
| `ix-docs-tool` | Context summaries | `ix docs <target>` CLI |
| `ix-docs-tool` | Context summaries | `POST /v2/ix_query` mode `"docs"` (no CLI equivalent) |

### Hooks (5 current via `ix-plugin.ts`)

Expand Down Expand Up @@ -191,7 +191,7 @@ OpenCode's plugin system provides:
| Architectural map | `ix-map` tool → `ix map` CLI | `POST /v2/ix_query` mode `"understand"` |
| Ingest/refresh | `ix-ingest` tool → `ix map` CLI | `POST /v2/ingest/map` |
| Pre-edit gate | `ix-pre-edit` hook → `ix-impact` tool | `POST /v2/ix_decide` |
| Context summaries | `ix-docs-tool` → `ix docs` CLI | `POST /v2/ix_query` mode `"docs"` |
| Context summaries | `ix-docs-tool` (runtime only) | `POST /v2/ix_query` mode `"docs"` |
| All seven skills | `ix` CLI via commands | `POST /v2/ix_query` appropriate mode |
| Text/semantic search | **Not available** (missing tool) | `POST /v2/ix_query` mode `"locate"` text search |
| Architecture smells | **Not available** (missing tool) | `POST /v2/insights/derive` type `"smells"` |
Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ When a platform mechanism is unavailable, mark it explicitly as **Unsupported**
Read all seven tool files in `tools/` and document the exact `ix` CLI commands each calls, along with the output parsing logic.

**Current State Context:**
Seven tools: `ix-query.ts` (`ix locate`), `ix-neighbors.ts` (`ix callers/callees/depends/imports`), `ix-impact.ts` (`ix impact`), `ix-map.ts` (`ix map`), `ix-ingest.ts` (`ix status` + `ix map`), `ix-history.ts` (`ix history`, Pro only), `ix-docs-tool.ts` (`ix docs`). All call through `base.ts`. Tools return strings (not JSON objects — confirmed OpenCode constraint).
Seven tools: `ix-query.ts` (`ix locate`), `ix-neighbors.ts` (`ix callers/callees/depends/imports`), `ix-impact.ts` (`ix impact`), `ix-map.ts` (`ix map`), `ix-ingest.ts` (`ix status` + `ix map`), `ix-history.ts` (`ix history`, Pro only), `ix-docs-tool.ts` (runtime `/v2/ix_query` mode `"docs"` — no CLI equivalent). All call through `base.ts`. Tools return strings (not JSON objects — confirmed OpenCode constraint).

**Implementation Notes:**
Read each tool file. Document CLI args, output parsing, error handling, and string return format. Note which tools use `--json` flag vs raw text parsing.
Expand Down
2 changes: 1 addition & 1 deletion TOOL_CONTRACT.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ The Ix graph has been rebuilt. Graph data is now current.
**ix CLI not found.** Install Ix to enable graph-aware features.

command -v ix # check if installed
ix connect # connect to workspace
ix docker start # start the local backend
ix map # build initial graph
```

Expand Down
2 changes: 1 addition & 1 deletion commands/ix-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Before anything else, run:
command -v ix
ix status
```
If either fails, stop: *"ix graph unavailable — run `ix connect` or check your connection."*
If either fails, stop: *"ix graph unavailable — run `ix docker start` to start the backend, then `ix status` to confirm."*

Then verify the graph has data:
```bash
Expand Down
4 changes: 2 additions & 2 deletions commands/ix-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Identify if any third symbol depends on multiple targets (shared blast radius
If Pro is available, check for existing plans and goals that overlap with this change:
```bash
ix plans --format llm
ix goals --format llm
ix goal list --format llm
```

Cross-reference `activePlans` from the briefing to avoid duplicate work. If an existing plan covers these targets, reference it.
Expand Down Expand Up @@ -106,7 +106,7 @@ After [target B]: verify [specific callers]
- [any cross-subsystem boundary being crossed]

## Project context **[Pro]**
- Goal this serves: [from ix goals — omit if Pro unavailable]
- Goal this serves: [from `ix goal list` — omit if Pro unavailable]
- Existing plan to track against: [plan ID + title, or "none — suggest creating one"]
```

Expand Down
6 changes: 3 additions & 3 deletions tools/ix-health.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ export async function execute(_params: Params, context: Context): Promise<string
"",
"ix CLI not found. Install Ix to enable graph-aware features:",
"```",
"command -v ix # check if installed",
"ix connect # connect to workspace",
"ix map # build initial graph",
"command -v ix # check if installed",
"ix docker start # start the local backend",
"ix map # build the initial graph",
"```",
].join("\n");
}
Expand Down
8 changes: 4 additions & 4 deletions tools/ix-ingest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ async function probeStatus(dir: string): Promise<string> {
"",
`**Status:** Could not determine graph state — ${msg}`,
"",
"Ensure ix is connected: `ix connect`",
"Ensure the backend is running: `ix docker start`, then check `ix status`.",
].join("\n");
}
}
Expand Down Expand Up @@ -208,9 +208,9 @@ function unavailable(): string {
"**ix CLI not found.** Install Ix to enable graph-aware features.",
"",
"```",
"command -v ix # check if installed",
"ix connect # connect to workspace",
"ix map # build initial graph",
"command -v ix # check if installed",
"ix docker start # start the local backend",
"ix map # build the initial graph",
"```",
].join("\n");
}