openplanr 1.0.0
Added
openplanr backlog— capture, prioritize, and promote work items from a lightweight backlogopenplanr backlog add— capture ideas with priority and tags without breaking your flowopenplanr backlog list— filter by tag, priority, or status; sorted by priorityopenplanr backlog prioritize— AI scores items by impact/effort and reorders themopenplanr 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 trackingopenplanr sprint create— create a sprint with name and duration (1–4 weeks); enforces one-active-at-a-timeopenplanr sprint add— assign tasks manually or with--autoAI selection based on priority and velocityopenplanr sprint status— progress dashboard with per-task completion, progress bars, and days remainingopenplanr sprint close— archive sprint, list incomplete tasks, optional retrospectiveopenplanr sprint list— all sprints with status badges and task countsopenplanr sprint history— velocity chart with bar visualization across closed sprints
openplanr template— reusable task templates for common development workflowsopenplanr template list— list built-in and custom templates with task countsopenplanr template show— preview template contents and variablesopenplanr template use— generate task list from a template with variable substitutionopenplanr template save— save an existing task list as a reusable custom templateopenplanr template delete— remove a custom template
5 built-in task templates —
rest-endpoint,react-component,database-migration,api-integration,auth-flowUser-defined AI rules —
.planr/rules.mdinjected into AI prompts as mandatory project rulesAuto-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
displayutility — 13 methods for formatted user-facing output (tables, progress bars, key-value pairs, status badges)ArtifactFrontmattertype — shared typed interface for artifact frontmatter across all parsersShared task-creation helpers — extracted
buildTaskItems,displayTaskPreview,displayValidationWarnings, and related helpers into reusable moduleESM
exportsfield —package.jsonnow declares explicit ESM entry pointDynamic CLI version —
planr --versionreads version frompackage.jsonat 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 remainingopenplanr search— now searches backlog and sprint artifactsCodebase context builder — dynamic
src/subdirectory discovery instead of hardcoded directory list; pattern rules and dependency hints injected into AI promptsRules 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 tocatch (err) { logger.debug(..., err) }for--verbosedebuggabilityStrict Biome rules — enabled
noExplicitAny,noNonNullAssertion,noConsoleas errors@anthropic-ai/sdk— bumped from 0.80.0 to 0.81.0
Removed
openplanr task implementandopenplanr quick implement— coding agents (Claude Code, Cursor, Codex) handle implementation directly via generated rulesopenplanr task fixandopenplanr quick fix— replaced by iterative agent workflows8 agent adapter files (~1,150 lines) —
agent-factory,claude-agent,codex-agent,cursor-agent,implementation-bridge,progress,prompt-composer,typesOrphaned retry utilities — dead
MAX_RETRIES,isRetryableError,sleepremoved after agent deletionDuplicate
CodingAgentNametype — consolidated to single definition inmodels/types.ts
Fixed
Hardcoded source inventory directories — replaced 7-directory list with dynamic
readdirdiscovery that expands into leaf directoriesSource inventory listing directories as files — uses
readdirwithwithFileTypesand.isFile()filtercountInventoryMatchescounting lines — now parses comma-separated file names per inventory lineDependency chain warning wording — "modified but" changed to "referenced but" for accuracy
displayValidationWarningsloose typing —action?: stringreplaced withaction: 'modify' | 'create'--fileflag error handling — stack trace on bad file path replaced with user-friendly error message in quick.ts and epic.tsRules reader empty vs missing —
!contentreplaced with explicitcontent === nullcheckSlugify
ENAMETOOLONGcrash — filenames truncated at 80 chars with word-boundary trimmingBacklog 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
truncateTitleempty input — guards against empty description producing empty artifact titlesprogressBarpercent clamping — clamps to [0,100] to preventString.repeat()with negative countlogger.debugError 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