Roadmap

Seven phases from declaration shell to full multi-provider integration. Pivoted to context gathering sub-agent for launch.

Linear Project · Implementation Plan (Gist)

Phase Timeline

Seven phases from scaffold to full multi-provider support.

Phase Details

What each phase delivers.

P-1
Scaffold & CLI-Routed Hooks (1 / 1.5 / 1.75)

Plugin manifest, hooks.json with 4 events, bash wrapper for SubQ detection, explicit --event flags, multi-provider repo structure. Replaced bun-invoked TypeScript with CLI-routed shell commands.

Shipped Foundation
P-2
Hook Ingestion

Monorepo packages: packages/hooks for normalization and handler logic, packages/contracts for envelope and decision types. Server RPC surface for receiving forwarded events.

Building Core
P-3
PreCompact & Handoff

Noise filtering for PreCompact (preserve critical context, discard tool-call noise). Structured handoff extraction for Stop. Session-end observation recording. Deferred post-launch—context-pack optimization is the launch priority.

Deferred Intelligence
P-4
Skill Generator

Canonical SkillDefinition TypeScript objects in apps/cli/src/skills/definitions/. Generator emits provider-specific SKILL.md files: subq skills generate --provider claude|codex|gemini|all.

Building Skills
P-5
Integration Tests

End-to-end hook firing, skill invocation, degradation behavior, cross-provider parity. README finalization.

Planned Quality
P-6
Setup & Doctor

subq setup --claude|--codex|--gemini wires hooks, generates skills, bootstraps guidance files. subq doctor verifies installation health across all providers.

Planned DX
P-7
Daemon & Desktop

macOS app for running the conversation daemon, collecting agent traces, displaying analytics (tokens saved, skills created, sessions analyzed), and handling skill approval notifications.

Planned Desktop

Architecture Evolution

Three architectural pivots. Each one stripped a layer of complexity.

v1: 9 Python PreToolUse hooks intercepting Read/Grep/Glob v2: 4 TypeScript hooks invoked via bun
v2: 4 TypeScript hooks with bun runtime dependency v3: CLI-routed hooks, zero dependencies, declaration shell
Each pivot removed a dependency. v1 required Python. v2 required bun. v3 requires nothing—the plugin is pure JSON declaring shell commands.

The v3 architecture inverts the plugin's role. Instead of containing hook logic, it declares which lifecycle events trigger which subq hooks commands. All executable code lives in the SubQ CLI monorepo, shared across providers. The plugin is a wiring diagram, not a runtime.