---
title: openplanr 1.0.0
description: Published 2026-04-05. **openplanr backlog** — capture, prioritize, and promote work items from a lightweight backlog
url: https://openplanr.dev/docs/changelog/1.0.0
updated: 2026-04-05
related:
  - https://openplanr.dev/docs/changelog/1.2.0.md
  - https://openplanr.dev/docs/changelog/1.1.0.md
  - https://openplanr.dev/docs/changelog/1.0.1.md
---

# openplanr 1.0.0

Published 2026-04-05.

[Release on GitHub](https://github.com/openplanr/OpenPlanr/releases/tag/v1.0.0)

## Added

**`openplanr backlog`** — capture, prioritize, and promote work items from a lightweight backlog
- `openplanr backlog add` — capture ideas with priority and tags without breaking your flow
- `openplanr backlog list` — filter by tag, priority, or status; sorted by priority
- `openplanr backlog prioritize` — AI scores items by impact/effort and reorders them
- `openplanr backlog promote` — promote to quick task (`--quick`) or story (`--story --feature`)
- `openplanr backlog close` — archive completed or irrelevant items

**`openplanr sprint`** — time-boxed iterations with velocity tracking
- `openplanr sprint create` — create a sprint with name and duration (1–4 weeks); enforces one-active-at-a-time
- `openplanr sprint add` — assign tasks manually or with `--auto` AI selection based on priority and velocity
- `openplanr sprint status` — progress dashboard with per-task completion, progress bars, and days remaining
- `openplanr sprint close` — archive sprint, list incomplete tasks, optional retrospective
- `openplanr sprint list` — all sprints with status badges and task counts
- `openplanr sprint history` — velocity chart with bar visualization across closed sprints

**`openplanr template`** — reusable task templates for common development workflows
- `openplanr template list` — list built-in and custom templates with task counts
- `openplanr template show` — preview template contents and variables
- `openplanr template use` — generate task list from a template with variable substitution
- `openplanr template save` — save an existing task list as a reusable custom template
- `openplanr template delete` — remove a custom template

**5 built-in task templates** — `rest-endpoint`, `react-component`, `database-migration`, `api-integration`, `auth-flow`

**User-defined AI rules** — `.planr/rules.md` injected into AI prompts as mandatory project rules

**Auto-extracted pattern rules** — 5 heuristic detectors (generic CRUD, command registration, central types, ID generation, template rendering) produce explicit rules from architecture files

**Post-generation validation** — warns about modify-on-missing, create-on-existing, dependency gaps, and unknown directories before user accepts AI output

**Dependency chain detection** — import-based file dependency hints injected into AI context

**`display` utility** — 13 methods for formatted user-facing output (tables, progress bars, key-value pairs, status badges)

**`ArtifactFrontmatter` type** — shared typed interface for artifact frontmatter across all parsers

**Shared task-creation helpers** — extracted `buildTaskItems`, `displayTaskPreview`, `displayValidationWarnings`, and related helpers into reusable module

**ESM `exports` field** — `package.json` now declares explicit ESM entry point

**Dynamic CLI version** — `planr --version` reads version from `package.json` at runtime instead of hardcoding

## Changed

**Version** — bumped to 1.0.0

**Package description** — updated to reflect full planning platform: backlog, sprints, task templates, estimation, GitHub sync, and AI agent rules

**README** — complete rewrite with expanded feature list, backlog/sprint/template quick start, and organized command tables

**CLI.md** — added backlog, sprint, template, and quick task command sections; updated ID convention table, config example, workflow diagram

**`openplanr status`** — now shows backlog items with priority badges and active sprint with days remaining

**`openplanr search`** — now searches backlog and sprint artifacts

**Codebase context builder** — dynamic `src/` subdirectory discovery instead of hardcoded directory list; pattern rules and dependency hints injected into AI prompts

**Rules templates rewritten** — Cursor, Claude Code, and Codex templates replaced with 4-step context-gathering protocol (read task → walk parent chain → read ADRs → scan codebase)

**Sprint task entries** — now include task title and relative file link (`- [ ] **TASK-001** title — [view](...)`)

**Sprint auto-select** — sends subtask counts and parent feature context to AI for smarter velocity-aware selection

**Bare catch blocks eliminated** — 39 bare `catch {}` blocks converted to `catch (err) { logger.debug(..., err) }` for `--verbose` debuggability

**Strict Biome rules** — enabled `noExplicitAny`, `noNonNullAssertion`, `noConsole` as errors

**`@anthropic-ai/sdk`** — bumped from 0.80.0 to 0.81.0

## Removed

**`openplanr task implement` and `openplanr quick implement`** — coding agents (Claude Code, Cursor, Codex) handle implementation directly via generated rules

**`openplanr task fix` and `openplanr quick fix`** — replaced by iterative agent workflows

**8 agent adapter files** (~1,150 lines) — `agent-factory`, `claude-agent`, `codex-agent`, `cursor-agent`, `implementation-bridge`, `progress`, `prompt-composer`, `types`

**Orphaned retry utilities** — dead `MAX_RETRIES`, `isRetryableError`, `sleep` removed after agent deletion

**Duplicate `CodingAgentName` type** — consolidated to single definition in `models/types.ts`

## Fixed

**Hardcoded source inventory directories** — replaced 7-directory list with dynamic `readdir` discovery that expands into leaf directories

**Source inventory listing directories as files** — uses `readdir` with `withFileTypes` and `.isFile()` filter

**`countInventoryMatches` counting lines** — now parses comma-separated file names per inventory line

**Dependency chain warning wording** — "modified but" changed to "referenced but" for accuracy

**`displayValidationWarnings` loose typing** — `action?: string` replaced with `action: 'modify' | 'create'`

**`--file` flag error handling** — stack trace on bad file path replaced with user-friendly error message in quick.ts and epic.ts

**Rules reader empty vs missing** — `!content` replaced with explicit `content === null` check

**Slugify `ENAMETOOLONG` crash** — filenames truncated at 80 chars with word-boundary trimming

**Backlog title triplication** — title no longer repeated three times in generated backlog items

**Task parser bold ID regex** — fixed regex that caused empty template saves when IDs were bold-formatted

**Sprint "untitled" filename** — sprint creation now uses sprint name for slug instead of falling back to "untitled"

**Plan summary overcounting** — reports only artifacts created in current run; task generation failures no longer miscounted

**`truncateTitle` empty input** — guards against empty description producing empty artifact titles

**`progressBar` percent clamping** — clamps to [0,100] to prevent `String.repeat()` with negative count

**`logger.debug` Error formatting** — formats Error instances with stack traces instead of `[object Object]`

**Safer Map access patterns** — guarded `Map.get()` returns in sync and dependency-chains to prevent silent no-ops

## Developer Experience

**47 new tests** — display utility (22), task-creation helpers (21), E2E smoke (4), edge cases

**Coverage thresholds raised** — from 3% to 14% (lines, functions, branches, statements)

**`display.*` / `logger.*` separation** — formatted user-facing output vs operational messages
