feat: Complete Planner Monorepo - Core, Ideation, Forge, Tuner & Testbench#4
Open
feat: Complete Planner Monorepo - Core, Ideation, Forge, Tuner & Testbench#4
Conversation
Complete architecture and design documentation for the Planner layer: Research & Analysis: - Orchestration framework deep-dives (LangGraph, CrewAI, Temporal, AutoGen, OpenAI Agents) - HTN/PDDL planning patterns and integration approaches - A2A and MCP interop protocols - Relay ecosystem analysis - Intake/triage/portfolio patterns Core Design: - Three-state workflow: draft → approved → published - Compound steps for hierarchical plans (multi-scope by default) - AI-managed dependencies (not user-specified) - Scopes for cross-repo/team work UX Vision: - Inbox-driven interface (what needs attention) - Two screens: Inbox + Plan (everything else is a panel) - AI behavior spectrum: silent → subtle → explicit - 30+ user scenarios covering creation, editing, review, scale Key decisions: - Planner accepts any input (vague to detailed), AI helps refine - Dependencies are AI-inferred, not manually wired - Multi-scope plans are the norm, not the exception - Immutability after approval (changes create new versions) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Complete architecture and design documentation for the Planner layer: Research & Analysis: - Orchestration framework deep-dives (LangGraph, CrewAI, Temporal, AutoGen, OpenAI Agents) - HTN/PDDL planning patterns and integration approaches - A2A and MCP interop protocols - Relay ecosystem analysis - Intake/triage/portfolio patterns Core Design: - Three-state workflow: draft → approved → published - Compound steps for hierarchical plans (multi-scope by default) - AI-managed dependencies (not user-specified) - Scopes for cross-repo/team work UX Vision: - Inbox-driven interface (what needs attention) - Two screens: Inbox + Plan (everything else is a panel) - AI behavior spectrum: silent → subtle → explicit - 30+ user scenarios covering creation, editing, review, scale Key decisions: - Planner accepts any input (vague to detailed), AI helps refine - Dependencies are AI-inferred, not manually wired - Multi-scope plans are the norm, not the exception - Immutability after approval (changes create new versions) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Key clarifications:
1. Intake vs Planner boundary:
- Intake: monitors channels (Slack, email, GitHub), detects requests, routes
- Planner: accepts any input (vague to detailed), AI helps refine
2. Multi-scope plans are the default:
- Real work crosses repos/teams/domains
- Scopes group steps by context
- "Flat single-context plan" is the exception
3. Dependencies are AI-managed:
- Humans express intent ("X before Y")
- AI builds the DAG from context
- Override available but rarely needed
4. Brainstorming happens in Planner:
- Vague input triggers AI-assisted scoping
- Specific input triggers multi-scope plan generation
Updated: CLAUDE.md, architecture-synthesis.md, github-issue-planner-vision.md,
planner-scale.md, planner-ui-vision.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Key clarifications:
1. Intake vs Planner boundary:
- Intake: monitors channels (Slack, email, GitHub), detects requests, routes
- Planner: accepts any input (vague to detailed), AI helps refine
2. Multi-scope plans are the default:
- Real work crosses repos/teams/domains
- Scopes group steps by context
- "Flat single-context plan" is the exception
3. Dependencies are AI-managed:
- Humans express intent ("X before Y")
- AI builds the DAG from context
- Override available but rarely needed
4. Brainstorming happens in Planner:
- Vague input triggers AI-assisted scoping
- Specific input triggers multi-scope plan generation
Updated: CLAUDE.md, architecture-synthesis.md, github-issue-planner-vision.md,
planner-scale.md, planner-ui-vision.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- New: Architecture Overview issue covering full agentic stack (Intake → Portfolio → Planner → Orchestrator → Relay) - Clarified: How Planner spawns planning agents via Agent Relay using MCP tools - Updated: Core Vision to reflect Relay-based agent spawning - Refined: Portfolio's role in value assessment and prioritization - Adjusted: UI Vision terminology for consistency across documents Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add architecture overview and refine vision documents
Add architecture overview and refine vision documents
Simplified stack diagram to reference Architecture Overview, avoiding duplication. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add flow skills system to .claude/ for Claude Code Web - Add flow-skills docs for reference - Create complete feature catalog with 31 features: - planner-core: 12 features (domain, storage, API, MCP) - planner-ui: 19 features (creation, editor, workflow, execution, AI) - All features have implementation plans (159 total steps) - Status: approved, ready for /flow todos Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add flow skills system to .claude/ for Claude Code Web - Add flow-skills docs for reference - Create complete feature catalog with 31 features: - planner-core: 12 features (domain, storage, API, MCP) - planner-ui: 19 features (creation, editor, workflow, execution, AI) - All features have implementation plans (159 total steps) - Status: approved, ready for /flow todos Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Flow-todos skill needs these to create executable todos using Claude Code's task system instead of file-based tracking. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Flow-todos skill needs these to create executable todos using Claude Code's task system instead of file-based tracking. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add explicit CRITICAL section stating this skill: - Only creates TaskCreate calls - Does NOT run npm/yarn commands - Does NOT create files or write code - Stops after showing todos, lets user start implementation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add explicit CRITICAL section stating this skill: - Only creates TaskCreate calls - Does NOT run npm/yarn commands - Does NOT create files or write code - Stops after showing todos, lets user start implementation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When asked to handle multiple features: 1. Create feature-level todos first (one per feature) 2. Work one feature at a time (expand to PRE/IMPL/POST/VERIFY/DOC) 3. Complete all checkpoints before moving to next feature This prevents context overload and ensures proper sequencing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When asked to handle multiple features: 1. Create feature-level todos first (one per feature) 2. Work one feature at a time (expand to PRE/IMPL/POST/VERIFY/DOC) 3. Complete all checkpoints before moving to next feature This prevents context overload and ensures proper sequencing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The agent was running `claude task create` bash commands. Added explicit example showing TaskCreate is a tool invocation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The agent was running `claude task create` bash commands. Added explicit example showing TaskCreate is a tool invocation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- "use the todo tool" instead of "TaskCreate tool" - Remove overly specific tool invocation examples - Focus on what to include in todos, not how to call tools Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- "use the todo tool" instead of "TaskCreate tool" - Remove overly specific tool invocation examples - Focus on what to include in todos, not how to call tools Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update all flow skill descriptions to be trigger-based - Rewrite flow-todos with systematic loop-based mental model - Agent processes features one by one in dependency order - Handles cross-feature dependencies via DOC todo blocking - Works for 5 todos or 500 todos with same approach Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update all flow skill descriptions to be trigger-based - Rewrite flow-todos with systematic loop-based mental model - Agent processes features one by one in dependency order - Handles cross-feature dependencies via DOC todo blocking - Works for 5 todos or 500 todos with same approach Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Agent was searching for CLI commands instead of using TaskCreate. Added explicit mention of built-in todo tools. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Agent was searching for CLI commands instead of using TaskCreate. Added explicit mention of built-in todo tools. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Agent was running bash looking for 'claude task' CLI. Made explicit that these are tools invoked directly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Agent was running bash looking for 'claude task' CLI. Made explicit that these are tools invoked directly. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Claude Code uses TaskCreate/TaskUpdate/TaskList tools, not "todo". Renamed skill and updated all references to use "task/tasks" terminology to match the actual tool names and avoid confusion. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Claude Code uses TaskCreate/TaskUpdate/TaskList tools, not "todo". Renamed skill and updated all references to use "task/tasks" terminology to match the actual tool names and avoid confusion. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replaced all references to flow-todos with flow-tasks across: - flow-brainstorm - flow-change-request - flow-discover - flow-feature - flow-planner - flow-tasks - flow-test-designer - flow-ui-ux-validation - flow-visualize Ensures consistent terminology matching Claude Code's TaskCreate/TaskUpdate tools. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update tests to match actual component implementations: - AIConnectionBadge.test.tsx: Component uses SVG icons and Tailwind classes, not text characters (✓, ○) or BEM classes. Update assertions to check for SVG elements and Tailwind utility classes. - useAgentOrchestration.test.ts: Mock used 'channel' property but the hook expects 'channelId' in message callbacks. Fix mock to use correct property name. - RoleContextCard.test.tsx: In non-editable mode, component renders spans not inputs. Use getByText instead of getByDisplayValue. Field hints are title attributes, not visible text. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Interviewer class requires ANTHROPIC_API_KEY environment variable. Add beforeAll/afterAll hooks to mock this env var in test files: - interviewer.test.ts - relay-integration.test.ts This prevents "ANTHROPIC_API_KEY is required" errors during testing. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update dev.sh script to use clearer naming: - Rename start_frontend to start_planner - Rename FRONTEND_PID_FILE to PLANNER_PID_FILE - Update log file from .dev-frontend.log to .dev-planner.log - Update comments and status messages Also fix backend start to use workspace command format: npm run start -w server Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add local vitest.config.ts to planner package. This ensures tests run correctly when executed from the workspace directory, as the root vitest config paths don't resolve properly in all contexts. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Extract shared error handling into a dedicated package: - ErrorHandler class for Express middleware - Custom error types (ApiError, NotFoundError, BadRequestError) - Consistent error response format across all services Used by: server, planner, ideation, forge-core Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Extract shared SQLite storage utilities into a dedicated package: - ConnectionManager for SQLite connection handling - BaseStorage class with common CRUD patterns - Migration utilities - Type definitions for storage interfaces Provides foundation for storage modules across planner, forge-core, ideation, and tuner packages. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Break up monolithic sqlite.ts (~2000 lines) into domain-focused modules: packages/planner/src/storage/sqlite/ ├── index.ts # SqliteStorage class, schema, migrations ├── plans.ts # Plan CRUD operations ├── versions.ts # PlanVersion operations ├── sessions.ts # Session management ├── questions.ts # Question/answer storage ├── improvements.ts # Improvement suggestions ├── comments.ts # Comment threads ├── change-requests.ts # Change request handling ├── organizations.ts # Organization/initiative storage ├── workflow.ts # Workflow state operations ├── trajectory.ts # Trajectory tracking └── converters.ts # Row-to-domain converters Each module handles a single domain concern, improving: - Code navigation and discoverability - Test isolation - Maintenance and refactoring Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Break up forge-core storage into domain-focused modules: packages/forge-core/src/storage/sqlite/ ├── index.ts # ForgeStorage class, schema, migrations ├── runs.ts # Run CRUD operations ├── tasks.ts # Task management ├── gates.ts # Gate approval handling ├── guardians.ts # Guardian agent storage ├── questions.ts # Question queue ├── trajectory.ts # Trajectory/event storage └── converters.ts # Row-to-domain converters Mirrors the planner storage split pattern for consistency. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Break up monolithic tools/index.ts into domain-focused modules: packages/planner/src/mcp/tools/ ├── index.ts # Tool registration and execution ├── shared.ts # Common utilities and types ├── plan-tools.ts # Plan creation/reading ├── version-tools.ts # Version management ├── step-tools.ts # Step CRUD operations ├── criteria-tools.ts # Acceptance criteria tools ├── gate-tools.ts # Gate approval tools └── improvement-tools.ts # AI improvement suggestions Each module is responsible for a single domain, improving maintainability and allowing parallel development. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Break up monolithic planner-lead-tools.ts into domain-focused modules: packages/server/src/relay/planner-lead-tools/ ├── index.ts # Tool registration, execution, exports ├── types.ts # Shared type definitions ├── schemas.ts # Zod schemas for tool inputs ├── plan-tools.ts # Plan reading/analysis tools ├── step-tools.ts # Step CRUD operations ├── question-tools.ts # Question handling tools ├── channel-tools.ts # Channel management tools ├── agent-relay-tools.ts # Agent communication tools ├── agent-status-tools.ts # Agent status monitoring └── mock-tools.ts # Mock responses for testing Update planner-lead.ts and tests to import from new location. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Break up large components into focused sub-components: ChatBubble → chat-bubble/ ├── ChatBubble.tsx # Main component (now thin) ├── MessageContent.tsx # Message rendering ├── SuggestionCard.tsx # AI suggestion display └── index.ts StepEditor → step-editor/ ├── StepEditor.tsx # Main component ├── CriteriaList.tsx # Acceptance criteria ├── GateConfig.tsx # Gate configuration └── index.ts SwimlaneView → swimlane/ ├── SwimlaneView.tsx # Main component ├── ScopeLane.tsx # Individual scope lane ├── StepCard.tsx # Step cards in lanes ├── DependencyLines.tsx # Dependency visualization └── index.ts PlanEditorPage: ├── Extract PlanEditorContext for state management ├── Reduce from ~800 lines to ~200 lines └── Components self-contain their logic Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add runtime capability detection for UI feature flags:
GET /api/capabilities returns:
- relay: { connected, mode }
- plannerLead: { active }
- features: { aiChat, agentSpawn, realTimeSync }
Add request timeout middleware (30s default) to prevent
hanging requests from accumulating.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move shared Tailwind config to shared-ui preset:
- packages/shared-ui/src/theme/tailwind-preset.cjs
Update UI packages to extend the preset:
- planner-ui/tailwind.config.cjs
- ideation-ui/tailwind.config.cjs
- forge-ui/tailwind.config.cjs
Each package now uses:
presets: [require('@plannr/shared-ui/theme/tailwind-preset')]
Reduces duplication and ensures consistent theming across UIs.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create hierarchical tsconfig structure: Root configs: - tsconfig.base.json: Shared compiler options for all packages - tsconfig.node.json: Node.js specific settings (extends base) - tsconfig.vite.json: Vite/React specific settings (extends base) - tsconfig.json: Project references for build orchestration Package configs now extend appropriate base: - Backend packages: extend tsconfig.node.json - Frontend packages: extend tsconfig.vite.json Benefits: - Consistent compiler settings across monorepo - Single source of truth for common options - Package-specific overrides where needed Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Root package.json: - Add npm workspaces configuration - Add shared dev dependencies (vitest, typescript) - Update scripts for monorepo operation Package updates: - Add @plannr/errors dependency where needed - Add @plannr/storage-base dependency where needed - Normalize version ranges across packages Vite configs: - Normalize proxy configurations - Add SSE buffering fixes for event streams - Consistent alias setup (@/ for src) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Scenario runner improvements: - Add AI-planned scenario mode - Add ideation client for E2E testing - Add retry logic to HTTP clients (forge, planner, tuner) - Rename synthetic/AI modes for clarity Metrics accuracy improvements: - Fix accuracy calculation edge cases - Improve learning rate stability - Add validation for metric boundaries Config updates: - Add ideation service configuration - Update schema for new scenario types Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ideation: - Update storage imports for @plannr/errors - Fix API routes error handling - Update server exports forge-core: - Update app.ts error handler import - Fix orchestrator error handling - Update storage index exports Both packages now use shared @plannr/errors package for consistent error handling. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
planner-ui: - Remove dead code: ChatBubble.usage.md, toggle-group.example.tsx - Add ToastContainer and ToastContext for notifications - Add useToast hook - Add storage-keys.ts for localStorage key management - Add identity.ts for user ID generation - Update context exports - Fix relay context and hooks planner: - Update api middleware imports - Update index.ts exports Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update import paths for error handling consistency. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add project-wide code formatting and linting: - .prettierrc: Code style rules (2-space indent, single quotes, etc.) - .prettierignore: Exclude dist, node_modules, etc. - eslint.config.js: ESLint flat config for TypeScript Ensures consistent code style across all packages. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add documentation for the monorepo refactoring work: - monorepo-refactor.md: Implementation plan overview - shared-ui-usage.md: Shared UI package usage guide - tailwind-deduplication-summary.md: Tailwind consolidation details - component-refactor-summary.md: Component split documentation - phase-4-analysis.md, phase6-testbench-analysis.md: Phase analysis - future-spawned-agent-architecture.md: Architecture planning - TESTBENCH-GUIDE.md: Testbench usage guide Add flow feature specs for trajectory integration: - trajectory-service.json - trajectory-planner-read-write.json - trajectory-forge-read.json - trajectory-interviewer-write.json - trajectory-spawned-agents.json - trajectory-testbench-verification.json - trajectory-integration.json Update flow/catalog.json with feature status. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add optional chaining and null checks to fix build errors: - Dropdown.tsx: Check item exists before accessing disabled - MessageList.tsx: Add safety check for current/previous messages - Modal.tsx: Use optional chaining for focus element access - Tabs.tsx: Use optional chaining for tab disabled check - TypingIndicator.tsx: Use optional chaining for user name access - ThemeProvider.tsx: Return undefined in else branch of useEffect These fixes enable strict TypeScript compilation and ensure the StatusBar and other new components are built to dist. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert require() to dynamic import() in interviewer/config.ts - Add await for async getLLMConfig() in service.ts and handlers.ts - Add ESM __dirname shim to all Vite configs (planner-ui, forge-ui, ideation-ui) - Update ideation/tsconfig.json to use project references for tuner - Clean up tuner imports to use package name instead of relative paths The root cause was require() being used in ESM modules, causing "ReferenceError: require is not defined" at runtime. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add optional chaining for array access in history.ts - Add non-null assertions in service.ts for relay state callbacks - Fix blockCount property access in navigator/service.ts (use blocks not understanding.blocks) - Add type assertions for tool result data in service.ts - Fix EventEmitter emit/on calls with any cast to bypass typed emitter conflicts - Correct session event type from 'session:block' to 'session:block_created' - Add outDir to tuner tsconfig for proper build output Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create shared PhysicsBlockBase component for dashboard/canvas consistency - Add MouseConstraint for drag interaction in physics engine - Add jiggle effect when blocks are dropped - Add CSS animations: pop-in, pop-out, synonym-swap, slide-out - Update theme to cool grey sand (#f2f1ed) matching mockup - Fix back button to always navigate to /ideation dashboard - Remove aggressive hover:scale-150 effect on blocks - Widen In-Progress column (1.5fr) taking from center - Add ThemeToggle component with dark/light mode support - Fix TypeScript strict null check errors across components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…s, untrack local docs - Add tuner and testbench initiatives to migration with prefix-based routing - Generate individual feature files from inline epic sub_features (57 files, 75 steps) - Fix trailing commas in dot-planner-enhancements.json and forge-dot-enhancements.json - Untrack 33 local docs files (architecture, design, research) — files remain on disk - Update .gitignore to use docs/* with !docs/flow/ negation pattern Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rules were outdated - still referenced single-app structure when the codebase has grown to 13 packages. Consolidated duplicate files, fixed stale paths, and documented new patterns. Changes: - Merge frontend.md + tailwind-design.md (eliminated 70% duplication) - Add monorepo.md for package structure and workspace commands - Update architecture.md with plugin architecture, multi-DB, error pkg - Update development.md for multi-service dev and Express 5 - Update agent-relay.md paths and add bridge/spawner patterns - Update react-patterns.md with physics engine and SSE patterns - Sync flow skills from global config (flow-planner, flow-tasks) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The project has evolved from a single "planner-core" planning service into "plannr" - a full agentic platform with ideation, planning, execution (forge), and adaptive learning (tuner) across 12 packages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generated per-package documentation covering domain model, API routes, key exports, architecture, and development commands. Testbench already had a README and was verified as accurate. Packages documented: server, planner, ideation, forge-core, tuner, planner-ui, ideation-ui, forge-ui, shared-ui, storage-base, errors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR establishes the complete Planner monorepo - a comprehensive agentic architecture for structured intent authoring, execution orchestration, and adaptive learning.
217 commits | 1,317 files | 285,727 lines added
Architecture
1. Planner Core (
packages/planner)The structured intent authoring layer:
Key Features
2. Planner UI (
packages/planner-ui)React frontend for plan authoring:
Component Architecture
chat-bubble/- AI chat with suggestionsstep-editor/- Step editing with criteria and gatesswimlane/- Scope lanes with dependency visualizationplan-editor/- Header, tabs, decisions viewPlanEditorContext- Centralized state management3. Ideation Package (
packages/ideation)Freeform exploration before structured planning:
Key Features
4. Ideation UI (
packages/ideation-ui)Canvas-based ideation interface:
5. Forge Core (
packages/forge-core)Plan execution orchestrator:
Storage Modules (15 focused files)
6. Forge UI (
packages/forge-ui)Execution monitoring interface:
7. Tuner Package (
packages/tuner)Adaptive learning for agent optimization:
Ideation Integration
8. Testbench (
packages/testbench)E2E scenario testing framework:
Key Features
9. Shared Packages
@plannr/errorsUnified error handling across all services:
@plannr/storage-baseShared SQLite utilities:
@plannr/shared-uiShared frontend infrastructure:
10. Server (
packages/server)Meta-server composing all services:
PlannerLead Service
11. Monorepo Infrastructure
Build System
Tailwind Deduplication
@plannr/shared-uiStorage Module Splits
Test Coverage
Documentation
CLAUDE.md- Architecture overview and coding guidelines.claude/rules/- Patterns for relay, architecture, frontend, React, Tailwinddocs/flow/- Feature tracking and specificationsdocs/- Implementation plans and analysisRelated Projects
🤖 Generated with Claude Code