馃惐 Medium-horizon agent planning MCP server
9plan docs future-work.md
10 kB
Markdown
at main

9plan Future Work and Non-Goals #

This document captures ideas that were explicitly considered and deferred, features that don't fit the current design, and potential enhancements for later versions.


Explicit Non-Goals #

These are things 9plan intentionally does NOT do. They were considered and rejected, not overlooked.

Multi-Agent Concurrency #

What it would be: Multiple agents working on the same session simultaneously.

Why not:

  • The "one active plan" model assumes single execution
  • Queue ordering becomes complex with concurrent pulls
  • Locking and conflict resolution add significant complexity
  • Target use case is single-agent, long-horizon tasks

Workaround: Create separate sessions for parallel workstreams; coordinate manually.


Priority-Based Ordering #

What it would be: Numeric priorities (1-10) or priority tiers (high/medium/low).

Why not:

  • Creates failure mode where low-priority work is abandoned
  • Requires agents to calibrate priorities against existing items
  • Front/back positioning is simpler and matches how work is discovered

Workaround: Use front position for urgent work; reorder via defer if needed.


Cross-Session Dependencies #

What it would be: Plans in one session depending on outputs from another session.

Why not:

  • Breaks session isolation and "must empty" semantics
  • Session scoping keeps search results predictable
  • Different sessions may use same terms for different things

Workaround: Complete dependent session first; manually reference its outputs.


Plan Versioning / Rollback #

What it would be: Full history of plan changes with ability to revert.

Why not:

  • Notes section provides partial history (deferral reasons, checkpoints)
  • Full versioning adds significant storage and complexity
  • Plans are disposable鈥攔e-plan rather than rollback

Workaround: Copy important plan state to Notes before major changes.


Automatic Dependency Enforcement #

What it would be: System blocks plan execution until declared dependencies complete.

Why not:

  • Dependencies are semantic, not ID-based; hard to verify automatically
  • Decomposition means children produce outputs, not parents
  • Would require dependency graph management

Workaround: Defer plans that can't proceed; semantic search finds outputs.


Project-Level Organization #

What it would be: Sessions grouped into projects with shared history.

Why not:

  • Adds organizational layer that complicates core model
  • Session isolation is valuable for predictability
  • "Project" boundaries are often unclear

Workaround: Use naming conventions (e.g., myapp-auth, myapp-frontend).


Real-Time Collaboration #

What it would be: Multiple users viewing/editing session state simultaneously.

Why not:

  • Single-agent execution model
  • Would require sync protocol, conflict resolution
  • Not the target use case

Workaround: One user at a time; use session resume to hand off.


Plan Templates #

What it would be: Pre-defined plan structures for common patterns (research, implementation, testing).

Why not (for now):

  • Current plan format is simple enough to create ad-hoc
  • Templates might constrain creative decomposition
  • Can be added later without breaking changes

Workaround: Copy-paste from previous plans; agents can develop their own patterns.


Potential Future Enhancements #

These are features that COULD be valuable but aren't prioritized for v1.

Batch Add Operation #

Problem: Front-insertion reversal requires adding plans in reverse order.

Enhancement: 9plan_queue_add_batch accepting ordered list of plans, inserting in specified order.

Example:

{
  "tool": "9plan_queue_add_batch",
  "arguments": {
    "plans": [
      { "goal": "Plan A", ... },
      { "goal": "Plan B", ... },
      { "goal": "Plan C", ... }
    ],
    "position": "front"
  }
}

Result: [A, B, C, ...rest] (correct order)

Complexity: Low鈥攓ueue manipulation is straightforward.

Priority: Medium鈥攕olves real usability issue.


HTTP Transport #

Problem: stdio transport requires server to be spawned by client.

Enhancement: HTTP/SSE transport for remote access, web clients.

Benefits:

  • Web-based interfaces could connect
  • Multiple clients could connect (though still single-agent)
  • Easier debugging/inspection

Complexity: Medium鈥攖ransport layer exists, need HTTP endpoints.

Priority: Low鈥攕tdio works for current use cases.


Session Export/Import #

Problem: Sessions are tied to local filesystem; can't share or move.

Enhancement: Export session to portable format; import elsewhere.

Example:

9plan export amber-quiet-river > session.json
9plan import session.json  # creates new session

Benefits:

  • Share sessions between machines
  • Backup/restore beyond filesystem copy
  • Hand off sessions to other users

Complexity: Medium鈥攏eed serialization format, ID remapping.

Priority: Low鈥攆ilesystem copy works for most cases.


Enhanced Search Operators #

Problem: FTS5 search is keyword-based; can't express complex queries.

Enhancement: Support field-specific search, date ranges, status filters.

Example:

{
  "tool": "9plan_history_search",
  "arguments": {
    "query": "goal:authentication outputs:client",
    "completed_after": "2024-01-01"
  }
}

Complexity: Medium鈥攏eed query parser, extended FTS5 usage.

Priority: Low鈥攃urrent search works for dependency resolution.


Progress Indicators #

Problem: No visibility into session progress without resuming.

Enhancement: 9plan_session_status providing quick overview without full resume.

Example response:

Session: amber-quiet-river
Status: In progress
Progress: 4/7 plans complete (57%)
Active: k7f3m (since 2 hours ago)

Complexity: Low鈥攄ata already available.

Priority: Low鈥攔esume provides this information.


Plan Estimation #

Problem: No way to estimate remaining work or session duration.

Enhancement: Optional time/effort estimates on plans; rollup to session level.

Example:

{
  "tool": "9plan_queue_add",
  "arguments": {
    "goal": "Implement caching",
    "estimate": "2 hours",
    ...
  }
}

Complexity: Medium鈥攏eed estimation tracking, rollup logic.

Priority: Low鈥攅stimation is notoriously unreliable for development tasks.


Webhook Notifications #

Problem: No way to notify external systems of plan completions.

Enhancement: Configure webhooks for session events.

Use cases:

  • Slack notification when session completes
  • Trigger CI/CD on certain plan completions
  • Audit logging to external system

Complexity: High鈥攏eed configuration, retry logic, security.

Priority: Low鈥攎anual notification works for current use cases.


Problem: Semantic search depends on exact keyword matches.

Enhancement: Use embeddings or LLM reranking for better search relevance.

Benefits:

  • Find outputs even with terminology mismatch
  • "Smart" understanding of what agent is looking for

Complexity: High鈥攏eed embedding infrastructure or LLM integration.

Priority: Low鈥攅xplicit output descriptions work well enough.


Ideas Explicitly Rejected #

These were considered more deeply and rejected for specific reasons.

Hierarchical Queue (Parent-Child Tracking) #

Idea: Maintain explicit parent-child relationships in queue structure.

Rejected because:

  • Adds complexity to queue management
  • Semantic dependency resolution handles relationships
  • Notes capture decomposition for aggregation
  • Would complicate front/back positioning semantics

Automatic Plan Splitting #

Idea: System detects large plans and suggests/performs decomposition.

Rejected because:

  • "Large" is subjective and context-dependent
  • Agent is better positioned to know when decomposition helps
  • Would require understanding plan content semantically

Undo/Redo Operations #

Idea: Undo last operation (plan add, complete, defer, discard).

Rejected because:

  • Many operations have side effects (file deletion, DB changes)
  • Would require transaction log, complex state management
  • Defer provides "soft undo" for plan lifecycle
  • Re-planning is idiomatic for mistakes

Session Archiving #

Idea: Completed sessions move to archive, freeing active space.

Rejected because:

  • Filesystem storage is cheap
  • Archiving adds state (is it archived or deleted?)
  • Manual cleanup is simple and controllable

Plan Dependencies via DAG #

Idea: Express dependencies as directed acyclic graph, with topological ordering.

Rejected because:

  • Requires knowing all dependencies upfront
  • Doesn't handle dynamically discovered work
  • Cross-branch dependencies only visible at decomposition time
  • Semantic resolution is more flexible

When to Reconsider #

These non-goals or deferrals should be reconsidered if:

Feature Reconsider If...
Multi-agent concurrency Use cases emerge requiring parallel execution
Priority ordering Users consistently struggle with front/back
Cross-session deps Common pattern of related sessions emerges
HTTP transport Web-based interfaces become priority
Batch add Decomposition usability complaints increase
Plan templates Common patterns stabilize across users

Contributing Ideas #

If you have ideas for 9plan:

  1. Check this document first鈥攊t may already be addressed
  2. Consider the design principles鈥攄oes it fit?
    • Self-contained plans
    • Semantic dependencies
    • Single queue discipline
    • Session isolation
  3. Describe the use case鈥攚hat problem does it solve?
  4. Suggest an approach鈥攈ow would it work?

Ideas that conflict with core principles need strong justification. Ideas that extend capabilities without breaking principles are more likely to be adopted.