Commit graph

55 commits

Author SHA1 Message Date
Eric Garcia
d7db9c667d feat: RFC 0048 expert pool implementation and documentation batch
## RFC 0048 Expert Pool Implementation
- Added tiered expert pools (Core/Adjacent/Wildcard) to dialogue handlers
- Implemented weighted random sampling for panel selection
- Added blue_dialogue_sample_panel MCP tool for manual round control
- Updated alignment-play skill with pool design instructions

## New RFCs
- 0044: RFC matching and auto-status (draft)
- 0045: MCP tool enforcement (draft)
- 0046: Judge-defined expert panels (superseded)
- 0047: Expert pool sampling architecture (superseded)
- 0048: Alignment expert pools (implemented)
- 0050: Graduated panel rotation (draft)

## Dialogues Recorded
- 2026-02-01T2026Z: Test expert pool feature
- 2026-02-01T2105Z: SQLite vs flat files
- 2026-02-01T2214Z: Guard command architecture

## Other Changes
- Added TODO.md for tracking work
- Updated expert-pools.md knowledge doc
- Removed deprecated alignment-expert agent
- Added spikes for SQLite assets and SDLC workflow gaps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 19:26:41 -05:00
Eric Garcia
ddce9e8b03 fix: derive worktree name from path, not branch name
Git worktree names are stored in .git/worktrees/<name> and cannot
contain slashes. The code was using branch names like "feature/slug"
or "rfc/name" as worktree names, which git2 rejects silently.

Now the worktree name is derived from the path's directory name (the
slug), which is always a simple identifier without slashes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:09:13 -05:00
Eric Garcia
71c3d3caa9 chore: dialogue handler improvements and config updates
- blue-mcp: dialogue handler enhancements (280+ lines)
- blue-mcp: server updates
- config.yaml updates
- alignment-play skill tweak
- spike: expert context and archival simplification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:05:53 -05:00
Eric Garcia
02901dfec7 chore: batch commit - ADRs, RFCs, dialogues, spikes, and code updates
ADRs:
- Update 0008-honor, 0009-courage, 0013-overflow, 0015-plausibility
- Add 0017-hosted-coding-assistant-architecture

RFCs:
- 0032: per-repo AWS profile configuration (draft)
- 0033: round-scoped dialogue files (impl + plan)
- 0034: comprehensive config architecture (accepted)
- 0036: expert output discipline (impl)
- 0037: single source protocol authority (draft)
- 0038: SDLC workflow discipline (draft)
- 0039: ADR architecture greenfield clarifications (impl)
- 0040: divorce financial analysis (draft)
- 0042: alignment dialogue defensive publication (draft)

Spikes:
- Read tool token limit on assembled dialogues
- RFC ID collision root cause
- Expert agent output too long
- Judge writes expert outputs
- Blue MCP server on superviber infrastructure
- Playwright MCP multiple window isolation

Dialogues: 16 alignment dialogue records

Code:
- blue-core: forge module enhancements
- blue-mcp: env handlers and server updates
- alignment-expert agent improvements
- alignment-play skill refinements
- install.sh script

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 16:28:31 -05:00
Eric Garcia
e288678572 feat: implement RFC 0043 Mermaid diagram linting
Extends lint.rs with Mermaid block validation:
- Neutral theme declaration check (Error, auto-fixable)
- Custom fill color detection (Error, requires manual fix)
- LR flow >3 leaf nodes warning (Advisory)
- Leaf node counting algorithm (excludes subgraphs/style/comments)

Adds 15 test cases covering all lint scenarios.

Also fixes dialogue.rs test assertions to match template text.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 12:03:21 -05:00
Eric Garcia
6ff8ba706c feat: RFC 0038 SDLC workflow discipline implementation
- Add `blue guard` CLI command for PreToolUse hook integration
  - Allowlist patterns for .blue/docs/, .claude/, /tmp/, root *.md
  - Worktree detection and RFC branch validation
  - Audit logging for bypass tracking
- Add PreToolUse hook in .claude/settings.json
- Add produces_rfcs field to Spike struct for multi-RFC tracking
- Implement spike auto-close when RFC transitions to implemented
- Add ADR suggestions when RFC transitions to in-progress
- Add LocalRealmDependencies for .blue/realm.toml parsing
- Add blue_rfc_validate_realm tool for cross-repo RFC validation
- Add toml dependency for realm.toml parsing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 08:59:20 -05:00
Eric Garcia
0246ef6a22 fix: add plan_cache to base schema + feature/{slug} branch naming
- Add plan_cache table to base SCHEMA so fresh databases have it
  (was only created via migration, causing "no such table" errors)
- Change worktree branch naming from `{title}` to `feature/{slug}`
- Add slugify() to handle titles with spaces like "Minimal Job Submission"
- Update cleanup handler to use same naming convention

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 17:21:25 -05:00
Eric Garcia
8eefd33085 feat: RFC 0035 spike resolved lifecycle suffix
Add 'resolved' outcome for spikes where a fix is applied during investigation.
Requires fix_summary parameter describing what was fixed. File renames to .resolved.md.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 21:56:55 -05:00
Eric Garcia
e03499effc fix: remove run_in_background from Judge Protocol to prevent dialogue halts
The Judge spawned expert agents with run_in_background: true, which caused
the Judge's turn to end immediately after spawning. Users had to manually
type "proceed" to resume scoring and convergence. Removing the flag keeps
parallel execution (multiple Task calls in one message) while blocking
until all agents return summaries, so the Judge auto-proceeds through
rounds without intervention.

Also includes RFC 0033 round-scoped file architecture updates: coerce_bool
for MCP string booleans, mandatory agent return summaries, token budget
documentation, and write-artifacts workflow step.

Spike: alignment-dialogue-halts-after-expert-completion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 16:30:59 -05:00
Eric Garcia
37de7759b5 feat: RFC 0029 file-based subagent output for alignment dialogues
Replace JSONL extraction pipeline with direct file writes: alignment-expert
agents write perspectives to /tmp/blue-dialogue/{slug}/round-{n}/{name}.md,
and the Judge reads those files directly after Task completion.

Changes:
- alignment-expert.md: add Write tool
- dialogue.rs: create output_dir, pass to build_judge_protocol
- Add name_lowercase field to agent JSON for filename generation
- Add WRITE YOUR OUTPUT section to agent prompt template
- Update Judge instructions with mkdir + Read tool workflow
- Add output_dir to returned protocol JSON
- New test: test_build_judge_protocol_output_paths

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:37:39 -05:00
Eric Garcia
0fea499957 feat: lifecycle suffixes for all document states + resolve all clippy warnings
Every document filename now mirrors its lifecycle state with a status
suffix (e.g., .draft.md, .wip.md, .accepted.md). No more bare .md for
tracked document types. Also renamed all from_str methods to parse to
avoid FromStr trait confusion, introduced StagingDeploymentParams struct,
and fixed all 19 clippy warnings across the codebase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:19:46 -05:00
Eric Garcia
015c21d381 fix: correct dialogue round numbering and kebab-case spike filenames
- Fix "Round 0" → "Round 1" for opening arguments in alignment dialogues
- Convert spike titles to kebab-case for consistent filenames

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 07:40:24 -05:00
Eric Garcia
16d45d9a11 feat: alignment dialogue subagents, MCP instructions, and document batch
Alignment dialogues now use custom `alignment-expert` subagents with
max_turns: 10, tool restrictions (Read/Grep/Glob), and hard 400-word
output limits. Judge protocol injects as prose via RFC 0023. Moved
Blue voice patterns from CLAUDE.md to MCP server instructions field
for cross-repo portability.

Includes RFCs 0017-0026, spikes, and alignment dialogues from
2026-01-25/26 sessions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 07:09:39 -05:00
Eric Garcia
c9acd1a4ad feat: implement RFC 0020 MCP project detection (all phases)
Separate mcp_root from cwd so tool-arg overrides don't clobber the
session-level root from initialize. Fallback chain matches RFC spec:
cwd → mcp_root → walk tree → fail with guidance. Error messages now
include attempted paths and actionable fix suggestions. Added --debug
flag to MCP server for file-based DEBUG logging.

Phase 2 finding: Claude Code v2.1.19 declares roots capability but
sends no roots array. Walk-up is the primary detection path.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:47:24 -05:00
Eric Garcia
ff83a2e26b feat: implement filesystem authority - slug matching, FS-aware numbering (RFC 0022)
Add slug-based document lookup so kebab-case queries ("filesystem-authority")
match titles ("Filesystem Authority") via deslugification. Implement
next_number_with_fs() that scans both DB and filesystem directory, taking
max(db, fs) + 1 to prevent numbering collisions when files exist outside
the index. Update all 7 callers across MCP handlers. Add blue.db to
.gitignore since it is a derived index. Includes 9 new tests covering
slug matching, filesystem-aware numbering, and collision regression.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:46:08 -05:00
Eric Garcia
1ed6f15fa9 feat: implement document sync and Claude Code task integration (RFC 0018, 0019)
RFC 0018 - Document Import/Sync:
- Add content_hash and indexed_at fields to Document
- Implement find_document_with_fallback for filesystem recovery
- Add reconcile() for database/filesystem sync
- Create blue_sync MCP tool
- Update blue_status to show index drift

RFC 0019 - Claude Code Task Integration:
- Expose .plan.md as MCP resource (blue://docs/rfcs/{n}/plan)
- Enhance blue_rfc_get with claude_code_tasks array
- Add 💙 prefix for Blue-synced tasks
- Add knowledge/task-sync.md for session injection
- Automatic sync via injected instructions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:58:46 -05:00
Eric Garcia
9759f0e3db feat: implement plan file authority (RFC 0017)
Plan files (.plan.md) are now the authoritative source for RFC task
tracking, with SQLite as a derived cache rebuilt on read.

Changes:
- Add plan.rs with PlanFile parsing/generation
- Add schema v7 migration for plan_cache table
- Modify handle_rfc_plan to write .plan.md files
- Modify handle_rfc_task_complete to update .plan.md
- Implement rebuild-on-read for stale cache detection
- Add RFC header validation (table vs inline format)
- Extend blue_lint with headers check and --fix support

Also includes spike investigating Claude Code task integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:10:05 -05:00
Eric Garcia
87e0066c36 chore: apply clippy fixes and fix invalid YAML test
- Replace redundant closures with function references
- Use next_back() instead of last() for DoubleEndedIterator
- Fix test_parse_index_response_invalid to use actually invalid YAML
  (previous test string was valid YAML - a plain string with braces)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:35:54 -05:00
Eric Garcia
29f139e1cd fix: remove wrong alignment orchestration architecture (RFC 0015)
RFC 0012 was implemented with Option B (MCP orchestrates via Ollama)
instead of Option A (Claude orchestrates via Task tool). This caused:
- No parallel agents spawned
- Fake Ollama responses instead of real deliberation
- Inline JSON instead of .dialogue.md files

Fix by removing blue_alignment_play tool entirely. Claude now
orchestrates alignment dialogues directly using Task tool per ADR 0014.

Also:
- Add pub mod resources for RFC 0016/0017 (was missing)
- Update lib.rs threading for spawn_blocking
- Add .blue/worktrees/ to gitignore
- Update database schema

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:36:16 -05:00
Eric Garcia
83fb0202a6 feat: implement dynamic context activation (RFC 0016 + 0017)
RFC 0016: Context Injection Architecture
- Add blue:// URI scheme for document addressing
- Add manifest.rs for three-tier context configuration
- Implement MCP resources/list and resources/read handlers
- Add `blue context` CLI command for visibility
- Add context_injections audit table (schema v5)

RFC 0017: Dynamic Context Activation (Phase 1)
- Add relevance_edges table for explicit links (schema v6)
- Implement composite session ID: {repo}-{realm}-{random12}
- Add content-hash based staleness detection
- Add tiered refresh policies (SessionStart/OnChange/OnRequest/Never)
- Add rate limiting with 30s cooldown
- Add blue_context_status MCP tool

Drafted from 12-expert alignment dialogue achieving 95% convergence.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:21:05 -05:00
Eric Garcia
a07737f3dc RFC 0014: Workflow Enforcement Parity (#1)
Co-authored-by: Eric Garcia <eric.garcia@gmail.com>
Co-committed-by: Eric Garcia <eric.garcia@gmail.com>
2026-01-25 19:21:42 +00:00
Eric Garcia
1afdd05ea6 feat: add install command detection to worktree creation
After creating a worktree, detect the project type and suggest
the appropriate install command:
- Node.js: bun/pnpm/yarn/npm based on lock file
- Python: uv/poetry/pip based on lock file
- Rust: cargo build
- Go: go mod download
- Generic: Makefile

Custom scripts/setup-worktree.sh takes precedence over auto-detection.

Ported from coherence-mcp.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:58:06 -05:00
Eric Garcia
19602c632b chore: sync state.rs and add RFC/spike documents
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:32:32 -05:00
Eric Garcia
d3b0ee59c2 Merge branch 'mcp-workflow-guidance' into develop
Combines RFC 0011 (MCP Workflow Guidance) with RFC 0013 (Git Forge Integration).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:32:06 -05:00
Eric Garcia
04f34cc27c Merge branch 'git-forge-integration' into develop 2026-01-24 20:31:25 -05:00
Eric Garcia
fae8e96108 feat: implement RFC 0012 alignment dialogue orchestration
Add blue_alignment_play MCP tool for multi-expert deliberation:
- Core alignment module with Expert, Round, ExpertResponse types
- Panel templates: Infrastructure, Product, ML, Governance, General
- Ollama integration for running expert rounds until convergence
- Dialogue markdown generation with SQLite tracking
- RFC linking support

Also removes dead code (ADR 0010: No Dead Code).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:14:13 -05:00
Eric Garcia
d91589346b feat: add forge config caching and handle_pr_merge forge support
Completes RFC 0013 git forge integration:
- Add BlueConfig struct for .blue/config.yaml persistence
- Add detect_forge_type_cached() and create_forge_cached() functions
  that cache detected forge type to avoid repeated API probing
- Update handle_pr_merge to use native forge API instead of gh CLI
- Add force parameter for skipping precondition checks when gh unavailable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:12:37 -05:00
Eric Garcia
ae98b6f230 feat: add git forge integration for GitHub and Forgejo (RFC 0013)
- Add forge module with Forge trait for unified PR operations
- Implement GitHubForge with REST API client
- Implement ForgejoForge with REST API client (works with Gitea too)
- Add git URL parsing to extract host, owner, repo from remotes
- Add auto-detection of forge type from remote URLs
- Update blue_pr_create to use native forge API instead of gh CLI
- Support GITHUB_TOKEN and FORGEJO_TOKEN environment variables

The forge abstraction allows Blue to create PRs on both GitHub and
Forgejo/Gitea instances without requiring external CLI tools.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:07:44 -05:00
Eric Garcia
ea1d57e62f feat: add MCP workflow guidance for worktree creation (RFC 0011)
- Update blue_worktree_create description with workflow context
- Fix blue_next to use MCP tool syntax instead of CLI syntax
- Update generate_hint() to name tools explicitly
- Add next_action field when RFC status becomes accepted
- Add warning when RFC goes in-progress without worktree
- Update pr_create and rfc_complete descriptions with workflow context

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 19:37:33 -05:00
Eric Garcia
bfd2a01ede fix: remove stop sequence that truncated indexer LLM output
The stop_sequences contained "```" which caused the model to stop
immediately after outputting "```yaml", truncating the entire response.
Also wrap blocking indexer operations in spawn_blocking to avoid
runtime conflicts with reqwest::blocking::Client.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 19:25:51 -05:00
Eric Garcia
d77ea4ba3f feat: add Ollama integration for semantic file indexing
Implements the AI-powered indexing component of RFC 0010:
- Add indexer module with LlmProvider abstraction
- Integrate qwen2.5:3b via Ollama for local file analysis
- Extract summaries, relationships, and symbols from source files
- Support partial indexing for files >1000 lines
- Wire indexer to all CLI index commands (--all, --diff, --file, --refresh)

The indexer generates structured YAML output with:
- One-sentence file summaries
- Relationship descriptions for semantic search
- Symbol-level indexing with line numbers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:51:48 -05:00
Eric Garcia
cf0baa0ea0 feat: implement RFC 0010 semantic index core infrastructure
Adds the foundation for AI-maintained semantic file indexing:

Schema (v4 migration):
- file_index table with summary, relationships, prompt_version
- symbol_index table with name, kind, line numbers, description
- FTS5 virtual tables for full-text search

CLI commands (blue index):
- --all: Bootstrap full index
- --diff: Index staged files (for pre-commit hook)
- --file: Single file indexing
- --refresh: Re-index stale entries
- --install-hook: Install git pre-commit hook
- status: Show index freshness

MCP tools:
- blue_index_status: Get index stats
- blue_index_search: FTS5 search across files/symbols
- blue_index_impact: Analyze change blast radius
- blue_index_file: Store AI-generated index data
- blue_index_realm: List all indexed files

Remaining work: Ollama integration for actual AI indexing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:44:44 -05:00
Eric Garcia
1be95dd4a1 feat: implement RFC 0008 (status file sync) and RFC 0009 (audit documents)
RFC 0008: Status updates now sync to markdown files, not just DB
RFC 0009: Add Audit as first-class document type, rename blue_audit to
blue_health_check to avoid naming collision

Also includes:
- Update RFC 0005 with Ollama auto-detection and bundled Goose support
- Mark RFCs 0001-0006 as Implemented
- Add spikes documenting investigations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 17:56:20 -05:00
Eric Garcia
489942cd35 feat: implement RFC 0006 (soft-delete) and RFC 0007 (branch naming)
RFC 0006 - Document Deletion Tools:
- Add soft-delete with 7-day retention before permanent deletion
- Add blue_delete, blue_restore, blue_deleted_list, blue_purge_deleted tools
- Add deleted_at column to documents table (schema v3)
- Block deletion of documents with ADR dependents
- Support dry_run, force, and permanent options

RFC 0007 - Consistent Branch Naming:
- Strip RFC number prefix from branch/worktree names
- Branch format: feature-description (not rfc/NNNN-feature-description)
- PR title format: RFC NNNN: Feature Description
- Add strip_rfc_number_prefix helper with tests

Also:
- Remove orphan .blue/repos/ and .blue/data/ directories
- Fix docs path resolution bug (spike documented)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:42:31 -05:00
Eric Garcia
5d3a7c0d1b feat(ollama): Add binary bundling and SHA256 verification
- Add build.rs to download Ollama at build time for target platform
- Add SHA256 verification infrastructure (currently skipped for external installs)
- Improve bundled_binary_path() to check additional standard locations
- Support BLUE_OLLAMA_PATH and BLUE_SKIP_OLLAMA_DOWNLOAD env vars

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:39:41 -05:00
Eric Garcia
f1612b9b0c feat(llm): Add graceful degradation fallback chain
Implements fallback: Ollama → API → Keywords

- Add KeywordLlm provider (always available, keyword-based matching)
- Add LlmManager for managing provider fallback chain
- Add blue_llm_providers tool to show chain status
- Keywords provider uses Jaccard similarity for text matching

The system now gracefully degrades when LLM providers are unavailable:
1. Try local Ollama first (best quality)
2. Fall back to API if configured (ANTHROPIC_API_KEY/OPENAI_API_KEY)
3. Fall back to keyword matching (always works, basic functionality)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:29:05 -05:00
Eric Garcia
59476fc72b test(ollama): Add integration tests for running Ollama
Tests require running Ollama server (run with --ignored):
- integration_health_check: Verify server is healthy
- integration_list_models: List installed models
- integration_generate: Test text generation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:22:43 -05:00
Eric Garcia
7dd263f1f9 feat: Implement RFCs 0002, 0004, and 0005
RFC 0002 (runbook-action-lookup):
- Add action metadata storage to runbooks
- Implement blue_runbook_lookup with word-based matching
- Add blue_runbook_actions to list all actions

RFC 0004 (adr-adherence):
- Add blue_adr_list, blue_adr_get, blue_adr_relevant, blue_adr_audit
- Implement keyword-based relevance matching with stem-like prefixes
- Add adr:N query support in blue_search

RFC 0005 (local-llm-integration):
- Create blue-ollama crate for embedded Ollama server management
- Add LlmProvider trait and MockLlm in blue-core
- Implement OllamaLlm with HTTP client for model operations
- Add MCP tools: blue_llm_start/stop/status, blue_model_pull/list/remove/warmup
- Support BLUE_OLLAMA_PATH env var for air-gapped builds

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:15:33 -05:00
Eric Garcia
2fdf29d56e feat(core): Implement RFC 0003 per-repo .blue/ folders
Simplify Blue's directory structure to use per-repo .blue/ folders
instead of centralized ~/.blue/repos/<project>/ structure.

Changes:
- Refactor BlueHome struct with simplified per-repo paths
- Update detect_blue() to find git root and create .blue/ there
- Add migration logic from old .blue/repos/<project>/docs/ structure
- Auto-create .blue/ on first command (no 'blue init' required)
- Update all handlers to use new flat path structure
- Handle edge case: no git repo uses current directory

Structure: repo/.blue/{docs/, worktrees/, blue.db, config.yaml}

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:41:17 -05:00
Eric Garcia
41a78b4f2a feat(rfc): Write RFC files to disk on creation
- RFC handler now writes markdown to .blue/repos/<project>/docs/rfcs/
- Sets file_path in document store for tracking
- Returns file path in response
- Remove unused get_current_session function
- Rename realm tools to use blue_ prefix for consistency

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 10:51:08 -05:00
Eric Garcia
74e3a03ba8 feat(realm): Implement RFC 0002 Phase 4 notifications
Complete RFC 0002: Realm MCP Integration with notifications support.

New MCP tool:
- notifications_list: List notifications with state filters
  (pending, seen, expired, all)

DaemonDb extensions:
- cleanup_expired_notifications: Auto-delete 7+ day old notifications
- list_notifications_with_state: Returns notifications with computed state

Schema integrity checking:
- Canonical JSON hashing (SHA-256) for schema fingerprinting
- check_schema_integrity returns hashes for all accessible contracts
- Integrated into realm_check response

Notification piggybacking:
- fetch_pending_notifications for realm_status and realm_check
- Filtered to domains the current repo participates in

RFC 0002 is now complete with all 8 tools:
- Phase 1: realm_status, realm_check, contract_get
- Phase 2: session_start, session_stop
- Phase 3: realm_worktree_create, realm_pr_status
- Phase 4: notifications_list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:42:26 -05:00
Eric Garcia
ad1adcb874 feat(realm): Implement RFC 0002 Phase 3 workflow tools
Add MCP tools for coordinated multi-repo development:
- realm_worktree_create: Create worktrees for domain peers
- realm_pr_status: Show PR readiness across realm repos

realm_worktree_create features:
- Auto-selects domain peers (repos sharing domains with current repo)
- Creates worktrees under ~/.blue/worktrees/<realm>/<rfc>/<repo>/
- Supports explicit repo list override
- Creates rfc/<name> branches in each repo

realm_pr_status features:
- Shows uncommitted changes and commits ahead for each repo
- Fetches PR info via gh CLI when available
- Summarizes overall readiness for coordinated release

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:35:43 -05:00
Eric Garcia
aba92d6f06 feat(realm): Implement RFC 0002 Phase 2 session tools
Add MCP tools for session lifecycle management:
- session_start: Begin work session with realm context detection
- session_stop: End session with duration and activity summary

Session state stored in .blue/session file tracks:
- Session ID, realm, repo
- Active RFC being worked on
- Active domains (auto-detected from bindings)
- Contracts being modified (exports) and watched (imports)

Implementation details:
- SessionState struct with save/load/delete methods
- Automatic domain and contract detection from realm bindings
- Duration calculation on session stop
- 6 new tests for session functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:27:15 -05:00
Eric Garcia
daaaea5c82 feat(realm): Implement RFC 0001 cross-repo coordination and RFC 0002 Phase 1 MCP tools
RFC 0001 - Cross-Repo Coordination with Realms:
- Daemon architecture with HTTP server on localhost:7865
- SQLite persistence for sessions, realms, notifications
- Realm service with git-based storage and caching
- CLI commands: realm status/sync/check/worktree/pr/admin
- Session coordination for multi-repo work

RFC 0002 Phase 1 - Realm MCP Integration:
- realm_status: Get realm overview (repos, domains, contracts)
- realm_check: Validate contracts/bindings with errors/warnings
- contract_get: Get contract details with bindings
- Context detection from .blue/config.yaml
- 98% expert panel alignment via 12-expert dialogue

Also includes:
- CLI documentation in docs/cli/
- Spike for Forgejo tunnelless access
- 86 tests passing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:14:35 -05:00
Eric Garcia
4ecaeea6ad feat: Phase 10 - staging deployments tool (55 tools total)
Add blue_staging_deployments tool to list and track staging environment
deployments with TTL-based expiration.

blue-core:
- Add staging_deployments table schema
- Add StagingDeployment, StagingCleanupResult, ExpiredDeploymentInfo structs
- Add record/list/mark_expired staging deployment store methods

blue-mcp:
- Add handle_deployments to staging handler
- Add tool definition and dispatch for blue_staging_deployments

Remaining to port: code_index and code_search (require tree-sitter infra)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 04:37:04 -05:00
Eric Garcia
6969a9caff feat: Phase 9 - post-mortem and runbook tools
Add 4 tools:
- blue_postmortem_create: Create post-mortem documents for incident tracking
- blue_postmortem_action_to_rfc: Convert post-mortem action items to RFCs
- blue_runbook_create: Create runbook documents for operations
- blue_runbook_update: Update runbooks with new operations/troubleshooting

Also adds DocType::Postmortem and DocType::Runbook to blue-core.

Total: 54 tools ported from coherence-mcp

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 04:31:16 -05:00
Eric Garcia
f186a470c8 feat: Phase 8 - dialogue and Playwright tools
Add 3 tools:
- blue_dialogue_lint: Validate dialogue markdown against pattern
- blue_extract_dialogue: Extract dialogue from agent JSONL outputs
- blue_playwright_verify: Generate Playwright verification plans

Features:
- Weighted scoring for dialogue linting (Critical/Major/Minor)
- jq fallback to pure Rust for JSONL extraction
- URL safety classification (localhost/dev/staging/production)

Total: 50 tools ported from coherence-mcp

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 04:19:18 -05:00
Eric Garcia
db6b7ed5c7 feat: Phase 7 - PRD, lint, env, guide, and staging IaC tools
Add 12 new MCP tools bringing total to 47:

PRD lifecycle (5):
- blue_prd_create, blue_prd_get, blue_prd_approve
- blue_prd_complete, blue_prd_list

Code quality (1):
- blue_lint - auto-detects Rust/JS/Python/CDK

Environment isolation (2):
- blue_env_detect - finds external dependencies
- blue_env_mock - generates .env.isolated for agents

Onboarding (1):
- blue_guide - interactive multi-section tutorial

Staging IaC (3):
- blue_staging_create, blue_staging_destroy, blue_staging_cost
- Auto-detects CDK/Terraform/Pulumi

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 04:12:41 -05:00
Eric Garcia
ddaa1cfca8 feat: Phase 6 - audit and completion tools
Add three high-priority tools from coherence-mcp:

- blue_audit: Project health check with issues and recommendations
  - Checks for stalled RFCs (in-progress without worktrees)
  - Finds implemented RFCs without ADRs
  - Detects overdue reminders and expired staging locks

- blue_rfc_complete: Mark RFC as implemented
  - Requires 70% task completion minimum
  - Auto-advances from accepted to in-progress if needed
  - Identifies ADR graduation candidates
  - Returns remaining tasks for follow-up

- blue_worktree_cleanup: Post-merge cleanup
  - Verifies PR is merged
  - Removes git worktree
  - Deletes local branch
  - Returns commands for syncing with develop

Total: 35 MCP tools, 28 tests passing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 03:48:07 -05:00
Eric Garcia
8977b30e63 feat: Phase 5 - staging lock tools for multi-agent coordination
Add staging resource locking for coordinating parallel agent work:

- store.rs: Added staging_locks and staging_lock_queue tables
- handlers/staging.rs: Lock acquire/release with queuing, status, cleanup
- Automatic lock expiration and queue cleanup

New MCP tools (4):
- blue_staging_lock - Acquire exclusive access to staging resources
- blue_staging_unlock - Release a staging lock
- blue_staging_status - Check lock status for specific resource or all
- blue_staging_cleanup - Clean up expired locks and orphaned queue entries

Total: 32 MCP tools, 24 tests passing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 03:37:40 -05:00