Skip to content
Merged
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
14 changes: 5 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ For brainstorming, planning, TDD, verification, and skill authoring — install

## Hooks

Devkit ships 9 hooks across 4 lifecycle events. All are installed automatically with the plugin — no setup required.
Devkit ships 10 hooks across 4 lifecycle events. All are installed automatically with the plugin — no setup required.

### PreToolUse

Expand Down Expand Up @@ -344,7 +344,7 @@ devkit/
│ ├── test-writer.md # Sonnet, worktree isolation
│ ├── documenter.md # Haiku, worktree isolation
│ └── security-auditor.md # Opus, worktree isolation
├── hooks/ # 9 hooks across 4 lifecycle events
├── hooks/ # 10 hooks across 4 lifecycle events
│ ├── hooks.json # Hook config (auto-loaded)
│ ├── safety-check.sh # Dangerous operation blocker
│ ├── security-patterns.sh # Edit-time vulnerability detection
Expand Down Expand Up @@ -530,10 +530,6 @@ See [ROADMAP.md](ROADMAP.md) for full details.
- [x] Cross-domain dirty-bit enforcement — blocks completion without test evidence per domain
- [x] Go code quality hooks — error-path access, nil-return, race detection, portability
- [x] **Language-universal hooks** — consolidated Go-specific hooks into `lang-review.sh` with Go, TypeScript, Rust, Python, and Shell support
- [x] **Hook consolidation** — merged 14 hooks into 9, reduced per-edit shell processes from 7 to 4. Consolidated stop hooks (dirty-bit + go-vet-stop + old stop-gate) into single `stop-gate.sh`
- [ ] Stop hook redesign — opt-in or session-end only, not every turn
- [ ] Cost event hooks — budget threshold events with auto-downgrade actions
- [ ] Execution registry — centralized step tracking with timing and token usage
- [ ] Preset library — curated prompt templates for common review/improvement scenarios
- [ ] Framework-specific review checklists — React, Django, Go, Rust patterns
- [ ] Conditional hook firing — gitBranch, fileExists, envSet conditions
- [x] **Hook consolidation** — merged 14 hooks into 10, reduced per-edit shell processes from 7 to 4. Consolidated stop hooks (dirty-bit + go-vet-stop + old stop-gate) into single `stop-gate.sh`

All planned items complete. See [ROADMAP.md](ROADMAP.md) for retired items and rationale.
65 changes: 21 additions & 44 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
## Implemented

- **20 slash commands** — Lifecycle workflows, self-improvement loops, multi-agent dispatch, project health audit, post-PR monitoring, AST repo mapping
- **14 context-activated skills** — 6 auto-trigger workflows (test-gen, doc-gen, changelog, onboard, research, scrape) + 6 coding principles (executing, clean-code, DRY, YAGNI, dont-reinvent, stuck) + 2 tools (gcli, creating-workflows)
- **15 context-activated skills** — 6 auto-trigger workflows (test-gen, doc-gen, changelog, onboard, research, scrape) + 6 coding principles (executing, clean-code, DRY, YAGNI, dont-reinvent, stuck) + 2 tools (gcli, creating-workflows) + 1 iteration memory (scratchpad)
- **6 agents** — Scoped tool access, worktree isolation, model assignment
- **8 hooks** — Safety (destructive command blocking, edit-time security patterns, PR gate), observability (audit trail, slop detection, post-validation, subagent verification), optimization (RTK token compression)
- **10 hooks** — Safety (destructive command blocking, edit-time security patterns, PR gate), observability (audit trail, slop detection, post-validation, subagent verification, language-aware code review), optimization (RTK token compression)
- **Graceful degradation** — tri:* commands work with 1-3 agents depending on installed CLIs
- **Goal decomposition** — Task DAG with dependency ordering and parallel execution
- **Concurrency limits** — Max 3 parallel agents in multi-agent commands
Expand All @@ -18,45 +18,22 @@
- **Hypothesis-driven perf** — Evidence gathering, ranked hypotheses, one-at-a-time testing replaces blind benchmark loops
- **Post-PR monitoring** — CI watching + iterative reviewer comment resolution
- **AST repo mapping** — Symbol index with dependency graph, cached for agent navigation

## Future

### Stop Hook Redesign
The Stop hook fires on every turn, not just session end. Redesign to fire only on explicit session end or make it opt-in via a command flag.

**When:** Next release. This is a usability blocker.

### Framework-Specific Review Checklists
React hooks rules, Django ORM patterns, Go concurrency, Rust safety — 20-50 patterns per framework loaded dynamically based on detected tech stack.

**When:** When tri-review needs to produce more actionable, framework-aware findings.

### Conditional Hook Firing
Hooks that only fire on certain git branches, when files exist, or env vars are set. Similar to skill-bus's condition system but built into devkit's hook stack.

**When:** When users need project-specific hook behavior without modifying global hooks.

### Task DAG Scheduler (Runtime)
Replace markdown-described DAGs with a runtime scheduler that topologically sorts and auto-parallelizes. Currently decompose describes the pattern; a Go/TS harness would execute it deterministically.

**When:** When workflows regularly exceed 10+ steps with complex interdependencies.

### Shared Context Injection
Automatically inject upstream agent outputs into downstream agent prompts. Currently done manually in command descriptions; could be automated.

**When:** When tri:* and decompose commands need richer inter-agent communication.

### Cost Event Hooks
Budget threshold events (warning at 80%, critical at 90%, exceeded at 100%) with auto-downgrade actions. Currently budget is guidance only.

**When:** When users need hard budget enforcement, not just guidance.

### Execution Registry
Centralized tracking of step state (pending/running/done/failed/skipped) with timing and token usage per step. Currently tracked in temp files during execution.

**When:** When workflow observability needs to improve beyond log files.

### Preset Library
Curated prompt templates for common review/improvement scenarios (Python security, Go performance, React optimization, etc.).

**When:** When the community identifies common patterns worth standardizing.
- **Generic YAML workflow engine** — Deterministic step execution, branching, loops, parallel dispatch, budget enforcement in compiled Go
- **Triage-based phase skipping** — TINY/SMALL/MEDIUM/LARGE classification with fast paths
- **Iteration scratchpads** — Persistent memory across loop iterations to prevent repeated failures
- **Cross-domain dirty-bit enforcement** — Blocks completion without test evidence per domain
- **Language-universal hooks** — Consolidated language-specific hooks into `lang-review.sh` with Go, TypeScript, Rust, Python, and Shell support
- **Hook consolidation** — Merged 14 hooks into 9, reduced per-edit shell processes from 7 to 4

## Retired

Items below were on the roadmap but determined to be unnecessary — either already solved by existing infrastructure or too speculative to justify the complexity.

| Item | Why removed |
|------|-------------|
| Stop hook redesign | Still fires every turn, but exits early with `approve` when no files are changed — near-instant on clean trees, so the performance concern is moot. Revisit only if it causes measurable latency. |
| Cost event hooks | Budget enforcement already exists in the Go engine via `overBudget()` + `addCost()` callbacks with hard limits |
| Execution registry | Step tracking already handled by SQLite via `lib.DB` with status, cost, and timing per step |
| Preset library | The 12 YAML workflows and 15 skills already serve this purpose |
| Framework-specific review checklists | `lang-review.sh` covers language-level patterns; framework-specific rules are better added per-project via hookify |
| Conditional hook firing | Hooks already self-filter internally (extension checks, changed-file checks); a generic condition system adds complexity for no current need |
Loading