Skip to content

Comments

Remove all Cipher MCP integration#75

Merged
azalio merged 1 commit intomainfrom
remove-cipher-usage
Feb 8, 2026
Merged

Remove all Cipher MCP integration#75
azalio merged 1 commit intomainfrom
remove-cipher-usage

Conversation

@azalio
Copy link
Owner

@azalio azalio commented Feb 8, 2026

Summary

  • Complete removal of Cipher MCP server from the entire codebase (deprecated since v4.0 in favor of mem0)
  • Removed 2161 lines across 67 files, replaced cipher references with mem0 where appropriate
  • Deleted docs/cipher-setup-guide/ (7 files), docs/QUICKSTART-CIPHER.md, and cipher-integration.md from skills

Changes by category

Config: .claude/mcp_config.json, .mcp.json.example, settings.local.json — removed cipher server, mappings, auto-approval rules

Agent templates (7 files): Replaced cipher references with mem0 in reflector, curator, monitor, predictor, task-decomposer, actor, documentation-reviewer

Command templates (3 files): Cleaned map-debug, map-fast, map-release

Source code: src/mapify_cli/__init__.py — removed cipher from MCP_SERVER_CHOICES, server configs, agent content generators, CLI examples

Docs: Cleaned INSTALL.md, USAGE.md, ARCHITECTURE.md, CLI_REFERENCE.json, CLI_COMMAND_REFERENCE.md

Presentations: Cleaned all 8 files (EN + RU)

Plugin configs: Cleaned plugin.json, marketplace.json, PLUGIN.md

Tests: Updated assertions, all 697 tests pass

Test plan

  • pytest tests/ -v — 697 passed, 0 failed
  • grep -ri cipher across repo — 0 matches
  • Template sync verified via make sync-templates
  • Python syntax check passed
  • JSON validation passed for all edited JSON files

Summary by CodeRabbit

Release Notes

  • Breaking Changes

    • Cipher MCP knowledge system removed; patterns now stored in mem0 MCP
    • MCP server configuration updated—cipher removed from essential servers
  • Improvements

    • Simplified memory system consolidating playbook storage
    • Streamlined MCP server requirements
  • Documentation

    • Cipher setup guides and integration documentation removed
    • All references updated from cipher to mem0 throughout documentation

Cipher was deprecated in v4.0 in favor of mem0 MCP. This commit
completes the removal by eliminating all remaining references.

Changes:
- Remove cipher from MCP server configs, mappings, and selections
- Remove cipher from all 7 agent templates (replaced with mem0 where needed)
- Remove cipher from command templates (map-debug, map-fast, map-release)
- Remove cipher from source code (__init__.py MCP server logic)
- Delete docs/cipher-setup-guide/ directory and QUICKSTART-CIPHER.md
- Delete cipher-integration.md from skills resources
- Remove cipher from presentations (EN + RU)
- Remove cipher from plugin configs and marketplace
- Clean cipher from CHANGELOG, tests, lint scripts, .gitignore
- Sync all templates to src/mapify_cli/templates/
- Update test assertions for cipher-free fallback generators

All 697 tests pass.
Copilot AI review requested due to automatic review settings February 8, 2026 19:35
@coderabbitai
Copy link

coderabbitai bot commented Feb 8, 2026

📝 Walkthrough

Walkthrough

This PR performs a comprehensive migration from Cipher MCP to mem0 MCP across the MAP framework. It removes all Cipher server configurations and references, deletes Cipher-specific documentation, updates agent and command templates to reference mem0, removes Cipher from CLI initialization options, and adjusts all supporting documentation to reflect the new memory system.

Changes

Cohort / File(s) Summary
MCP Server Configuration
.claude-plugin/PLUGIN.md, .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .mcp.json.example, .gitignore
Removed cipher from MCP server requirements and configurations across plugin definitions and example configs.
Cipher Documentation Deletion
docs/cipher-setup-guide/*, docs/QUICKSTART-CIPHER.md
Completely removed all Cipher setup documentation (infrastructure, installation, configuration, Claude Code setup, verification, troubleshooting guides) totaling ~800 lines.
Agent Templates
.claude/agents/*, src/mapify_cli/templates/agents/*
Updated references from cipher to mem0 in actor, curator, documentation-reviewer, monitor, predictor, reflector, and task-decomposer templates; removed cipher_search_reasoning_patterns branch from task-decomposer.
Command Templates
.claude/commands/*, src/mapify_cli/templates/commands/*
Removed cipher-based search steps from map-debug; removed cross-project cipher search from map-release; updated map-fast notes to remove cipher pattern storage references.
Documentation Updates
docs/ARCHITECTURE.md, docs/CLI_COMMAND_REFERENCE.md, docs/CLI_REFERENCE.json, docs/INSTALL.md, docs/USAGE.md, CHANGELOG.md
Removed Cipher from essential server lists, updated mode constraints from ["local", "cipher", "hybrid"] to ["local"], removed Cipher integration documentation references, and updated migration notes.
Presentation Slides
presentation/en/*, presentation/ru/*
Reduced MCP server count from 6 to 5 across intro, architecture, workflow, and getting-started slides in both English and Russian versions; removed cipher-related synchronization requirements.
Skills & Resource Guides
src/mapify_cli/templates/skills/*, .claude/skills/*
Removed mem0 Integration references and cipher-integration.md links from skill READMEs and resource guides; deleted entire cipher-integration.md documentation file (291 lines).
Core Implementation
src/mapify_cli/__init__.py, scripts/lint-agent-templates.py
Removed cipher from INDIVIDUAL_MCP_SERVERS and MCP_SERVER_CHOICES; removed cipher from essential server defaults (now only claude-reviewer, sequential-thinking); removed cipher_memory_search from lint tool descriptions; updated content generation for agent creation.
Playbook & Knowledge Base
.claude/playbook_delta_operations.json
Removed tool-0008 (Cipher Search Before Design) pattern; updated deduplication checks to reference knowledge/base instead of cipher; removed sync_to_cipher section; added 7 new architecture and testing patterns.
Tests
tests/test_mapify_cli.py
Updated test expectations to reflect 4 default MCP servers instead of 5; removed cipher from essential server assertions; adjusted MCP content checks for agents using MCP tools.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 The cipher gates now close with care,
mem0's tiered wisdom fills the air,
Eight cipher rules fade into night,
While seven fresh patterns shine so bright! ✨
No more hybrid searches we pursue,
Just mem0's clear, semantic view! 🎯

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Remove all Cipher MCP integration' directly and clearly summarizes the main objective of the pull request—removing Cipher MCP server integration from the codebase.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch remove-cipher-usage

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the deprecated Cipher MCP integration across the MAP Framework, updating templates, docs, CLI init behavior, and tests to eliminate cipher references and align around mem0-centric knowledge workflows.

Changes:

  • Removed Cipher from MCP server configs, templates, and documentation (including legacy setup guides).
  • Updated agent/command templates and presentations to remove cipher references and adjust wording around knowledge sync.
  • Updated CLI init/test expectations for the reduced MCP server set.

Reviewed changes

Copilot reviewed 66 out of 67 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/test_mapify_cli.py Updates init + agent creation tests to remove cipher expectations
src/mapify_cli/templates/skills/map-workflows-guide/resources/playbook-system.md Removes cipher references from playbook system skill doc
src/mapify_cli/templates/skills/map-workflows-guide/resources/map-feature-deep-dive.md Removes cipher sync mention + rewords duplicate checking
src/mapify_cli/templates/skills/map-workflows-guide/resources/map-fast-deep-dive.md Rewords “cipher sync” to generic pattern sync
src/mapify_cli/templates/skills/map-workflows-guide/resources/map-efficient-deep-dive.md Replaces “searched cipher” with “searched mem0”
src/mapify_cli/templates/skills/map-workflows-guide/resources/cipher-integration.md Deletes legacy/renamed integration doc (cipher-integration)
src/mapify_cli/templates/skills/map-workflows-guide/resources/agent-architecture.md Removes link to removed cipher integration doc
src/mapify_cli/templates/skills/map-workflows-guide/SKILL.md Removes references/links to cipher-integration resource
src/mapify_cli/templates/skills/README.md Removes cipher-integration from skill resource listings
src/mapify_cli/templates/commands/map-release.md Removes “Also search Cipher” section
src/mapify_cli/templates/commands/map-fast.md Removes cipher mention from “learning disabled” note
src/mapify_cli/templates/commands/map-debug.md Removes cipher-search steps and rewords “past issues” source
src/mapify_cli/templates/agents/task-decomposer.md Removes cipher reasoning-pattern tool references
src/mapify_cli/templates/agents/reflector.md Updates wording from cipher → mem0 for novelty checks
src/mapify_cli/templates/agents/predictor.md Updates scoring language and examples from cipher → mem0
src/mapify_cli/templates/agents/monitor.md Updates security/checklist prompts from cipher → mem0
src/mapify_cli/templates/agents/documentation-reviewer.md Updates fallback/log wording from cipher → mem0
src/mapify_cli/templates/agents/curator.md Updates guidance to check mem0 instead of cipher
src/mapify_cli/templates/agents/actor.md Updates example wording from cipher → mem0
src/mapify_cli/init.py Removes cipher from init options/config generation and template fallbacks
scripts/lint-agent-templates.py Removes cipher tool keyword linting entry
presentation/ru/03-workflow.md Removes cipher workflow steps; updates MCP tool counts and memory model
presentation/en/04-getting-started.md Removes cipher from MCP server overview and setup steps
presentation/en/03-workflow.md Removes cipher workflow steps; updates MCP tool counts and memory model
presentation/en/02-architecture.md Removes cipher tool references and updates “critical protocol” wording
presentation/en/01-introduction.md Removes cipher from MCP integration list/count
docs/cipher-setup-guide/README.md Removes legacy cipher setup documentation
docs/cipher-setup-guide/06-troubleshooting.md Removes legacy cipher troubleshooting documentation
docs/cipher-setup-guide/05-verification.md Removes legacy cipher verification documentation
docs/cipher-setup-guide/04-claude-code-setup.md Removes legacy cipher Claude Code setup documentation
docs/cipher-setup-guide/03-cipher-configuration.md Removes legacy cipher configuration documentation
docs/cipher-setup-guide/02-cipher-installation.md Removes legacy cipher installation documentation
docs/cipher-setup-guide/01-infrastructure-setup.md Removes legacy cipher infrastructure setup documentation
docs/USAGE.md Removes cipher integration references; rewords knowledge integration statements
docs/QUICKSTART-CIPHER.md Removes legacy cipher quickstart documentation
docs/INSTALL.md Removes cipher from init examples and removes legacy cipher install section
docs/CLI_REFERENCE.json Removes cipher/hybrid playbook query modes and cipher integration docs
docs/CLI_COMMAND_REFERENCE.md Updates init example to remove cipher server
docs/ARCHITECTURE.md Removes cipher mentions and updates migration wording
CHANGELOG.md Removes cipher references from historical changelog entries
.mcp.json.example Removes cipher MCP server example block
.gitignore Removes cipher-rules ignore entries
.claude/skills/map-workflows-guide/resources/playbook-system.md Mirrors template skill doc cipher removals in shipped .claude copy
.claude/skills/map-workflows-guide/resources/map-feature-deep-dive.md Mirrors template doc updates
.claude/skills/map-workflows-guide/resources/map-fast-deep-dive.md Mirrors template doc updates
.claude/skills/map-workflows-guide/resources/map-efficient-deep-dive.md Mirrors template doc updates
.claude/skills/map-workflows-guide/resources/cipher-integration.md Deletes shipped cipher-integration resource
.claude/skills/map-workflows-guide/resources/agent-architecture.md Mirrors template link removal
.claude/skills/map-workflows-guide/SKILL.md Mirrors template skill index updates
.claude/skills/README.md Mirrors template skills README updates
.claude/playbook_delta_operations.json Removes cipher-specific reasoning/fields from example delta ops
.claude/commands/map-release.md Mirrors template command update
.claude/commands/map-fast.md Mirrors template command update
.claude/commands/map-debug.md Mirrors template command update
.claude/agents/task-decomposer.md Mirrors template agent update
.claude/agents/reflector.md Mirrors template agent update
.claude/agents/predictor.md Mirrors template agent update
.claude/agents/monitor.md Mirrors template agent update
.claude/agents/documentation-reviewer.md Mirrors template agent update
.claude/agents/curator.md Mirrors template agent update
.claude/agents/actor.md Mirrors template agent update
.claude-plugin/plugin.json Removes cipher from plugin required MCP servers list
.claude-plugin/marketplace.json Removes cipher from marketplace required MCP servers list
.claude-plugin/PLUGIN.md Removes cipher references from plugin documentation
Comments suppressed due to low confidence (7)

presentation/en/01-introduction.md:40

  • The MCP server count is inconsistent with the list below: this section says MAP uses/needs 5 MCP servers but only enumerates 4 (claude-reviewer, sequential-thinking, context7, deepwiki). Either add mem0 to the list (if it’s considered an MCP server) or update the count to match what’s actually required.
    presentation/en/04-getting-started.md:199
  • This section states MAP requires 5 MCP servers, but only 4 servers are listed. Please reconcile the count vs the actual required servers (e.g., include mem0 explicitly if it’s required, or change the headline number).
    .mcp.json.example:54
  • This example MCP configuration doesn’t mention mem0 at all, but the framework’s workflows/templates rely on mcp__mem0__* tools. Consider adding a mem0 server entry (or at least a prominent note/placeholder) so users copying this example don’t end up without the required knowledge MCP integration.
  "mcpServers": {
    "claude-reviewer": {
      "_comment": "Code review MCP server - provides professional code review with security analysis",
      "_note": "This example uses a community server. You may need to adjust the command for your setup.",
      "_alternatives": [
        "Custom fork: /path/to/your/mcp-claude-reviewer/mcp-wrapper.sh",
        "Community server: npx -y @vibesnipe/code-review-mcp"
      ],
      "_required_for": "Professional code review integration, MAP /map-review command",
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@vibesnipe/code-review-mcp"],
      "env": {
        "OPENAI_API_KEY": "${OPENAI_API_KEY}"
      }
    },

    "sequential-thinking": {
      "_comment": "Anthropic's Sequential Thinking - Provides structured chain-of-thought reasoning",
      "_install": "Automatically installed via npx",
      "_required_for": "Complex problem solving, multi-step reasoning in MAP agents",
      "_docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking",
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
    },

    "context7": {
      "_comment": "Context7 by Upstash - Up-to-date, version-specific library documentation",
      "_install": "Automatically installed via npx",
      "_required_for": "Library documentation lookup (optional but recommended)",
      "_docs": "https://github.com/upstash/context7",
      "_usage": "Add 'use context7' to your prompts",
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    },

    "deepwiki": {
      "_comment": "DeepWiki - Official remote MCP server for GitHub repository analysis",
      "_install": "No installation needed - remote SSE server",
      "_required_for": "GitHub repository documentation and analysis (optional)",
      "_docs": "https://docs.devin.ai/work-with-devin/deepwiki-mcp",
      "_note": "Free, no authentication required",
      "type": "sse",
      "url": "https://mcp.deepwiki.com/sse"
    }
  },

src/mapify_cli/init.py:1419

  • The init-time MCP configuration generated here no longer includes any knowledge server entry, but the framework templates/docs rely on mem0 tools (mcp__mem0__*). Consider adding a "mem0" server to INDIVIDUAL_MCP_SERVERS / server_configs and mapping it to the appropriate agents (or documenting that mem0 is always required and configured elsewhere). As-is, a freshly initialized project’s .claude/mcp_config.json won’t reflect the mem0 dependency documented in docs/ARCHITECTURE.md.
    .claude-plugin/plugin.json:34
  • The declared required MCP servers omit mem0, but the plugin features include an ACE learning system backed by mem0 MCP. Either add mem0 to the required list, or adjust the feature/requirements text to avoid implying the plugin works without the knowledge server.
  "requirements": {
    "claude_code_version": ">=1.0.0",
    "mcp_servers": [
      "claude-reviewer",
      "sequential-thinking"
    ],
    "recommended_mcp_servers": [
      "context7",
      "deepwiki"
    ]

.claude-plugin/marketplace.json:48

  • This marketplace metadata lists only claude-reviewer and sequential-thinking as required MCP servers, but the framework relies on mem0 MCP for pattern storage/search. Please include mem0 in requirements (or clarify that it’s not required) to keep the metadata accurate for installers.
      "requirements": {
        "claude_code": ">=1.0.0",
        "mcp_servers": [
          "claude-reviewer",
          "sequential-thinking"
        ]
      },

.claude-plugin/PLUGIN.md:96

  • The Requirements section lists “essential” MCP servers but omits mem0, even though earlier in this document the ACE learning system is described as using mem0 MCP. Please add mem0 here (or clarify why it’s not required) so setup guidance matches the described architecture.
## Requirements

- **Claude Code CLI** — installed and configured
- **MCP Servers** (essential):
  - `claude-reviewer` — professional code review
  - `sequential-thinking` — chain-of-thought reasoning

**Recommended MCP Servers:**
- `context7` — library documentation
- `deepwiki` — GitHub repository analysis


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 236 to 242
def lint_mcp_tool_descriptions(self, file_path: Path, content: str):
"""Check MCP tool descriptions for consistency"""
# Common MCP tools that should be consistently described
mcp_tools = {
"cipher_memory_search": ["search", "pattern", "knowledge"],
"context7": ["library", "documentation", "resolve-library-id"],
"deepwiki": ["wiki", "repository", "production"],
}
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The template linter no longer checks the primary knowledge MCP tool family used throughout the templates (mem0). After removing cipher_memory_search, consider adding mem0-related keys/keywords (e.g., map_tiered_search/map_add_pattern) so the consistency check still covers the core MCP integration.

Copilot uses AI. Check for mistakes.
Comment on lines +630 to 637
# Verify MCP integration for agents that use MCP tools
if any(
name in agent_file
for name in ["task-decomposer", "actor", "monitor", "predictor"]
):
assert "mcp" in content.lower() or "tool" in content.lower(), (
f"Agent {agent_file} missing MCP integration section"
)
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fallback-agent test assertion is too weak and can pass even when no MCP integration section exists (e.g., matching the generic word “tools”). Consider asserting for a specific MCP marker like an "MCP Integration" header or an actual tool prefix ("mcp__"), and only for agents that should include MCP guidance given the selected servers.

Copilot uses AI. Check for mistakes.
Comment on lines 84 to 87
MCP_SERVER_CHOICES = {
"all": "All available MCP servers",
"essential": "Essential (cipher, claude-reviewer, sequential-thinking)",
"essential": "Essential (claude-reviewer, sequential-thinking)",
"docs": "Documentation (context7, deepwiki)",
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “essential” MCP server description omits mem0, but the rest of the project treats mem0 as the primary knowledge store (mcp__mem0__* calls in templates/docs). Please clarify whether mem0 is implicitly required/always-on; if not, include it in the essential set to avoid users ending up with a configuration that can’t run the workflows as documented.

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (6)
.claude/playbook_delta_operations.json (1)

1-147: ⚠️ Potential issue | 🔴 Critical

Sync .claude/playbook_delta_operations.json to src/mapify_cli/templates/

The modified file has not been mirrored to the templates directory. While other configuration files (settings.json, settings.hooks.json, workflow-rules.json, skill-rules.json, ralph-loop-config.json) are synced, playbook_delta_operations.json is missing from src/mapify_cli/templates/.

Run make sync-templates or manually copy the file to src/mapify_cli/templates/playbook_delta_operations.json before finishing.

.claude/skills/map-workflows-guide/resources/map-fast-deep-dive.md (1)

21-46: ⚠️ Potential issue | 🟠 Major

Sync the updated .claude/skills resource into src/mapify_cli/templates/skills.

This change is under .claude/, so the matching file in src/mapify_cli/templates/skills/map-workflows-guide/resources/map-fast-deep-dive.md must be updated to stay in sync. Please confirm the sync (e.g., make sync-templates) and that the template copy is committed.
As per coding guidelines: Keep .claude/ configuration in sync with src/mapify_cli/templates/ by syncing common paths.

presentation/en/04-getting-started.md (1)

189-200: ⚠️ Potential issue | 🟡 Minor

Fix MCP server count (statement vs list mismatch).

Line 189 says “5 MCP servers,” but only 4 are listed (1 required + 3 optional). Update the count or the list so they match.

✅ Suggested fix
-MAP requires **5 MCP servers** for full functionality:
+MAP requires **4 MCP servers** for full functionality:
presentation/en/01-introduction.md (1)

34-40: ⚠️ Potential issue | 🟡 Minor

Fix MCP server count vs list mismatch.

Line 34 claims 5 servers, but only 4 are listed below. Either add the missing server or change the count to 4 to keep the slide accurate.

presentation/ru/01-введение.md (1)

34-40: ⚠️ Potential issue | 🟡 Minor

Исправьте несоответствие количества MCP серверов.

В строке 34 указано 5 серверов, но в списке ниже — 4. Добавьте недостающий сервер или исправьте число.

presentation/ru/04-начало-работы.md (1)

189-199: ⚠️ Potential issue | 🟡 Minor

Исправьте количество MCP серверов в разделе.

Указано 5 серверов, но перечислено 4. Нужна синхронизация числа и списка.

🤖 Fix all issues with AI agents
In @.claude/agents/predictor.md:
- Around line 1812-1825: Add explicit language identifiers to the fenced code
blocks in the predictor document to satisfy markdownlint MD040: replace the
three backtick fences that currently lack a language with fenced blocks labeled
e.g. ```text for the two score lists shown under "Category A: Historical Data"
and "Category B: Tool Agreement". Edit the block delimiters surrounding the
lines beginning "+0.20: mem0 returned..." and "+0.15: mem0 + grep results
match..." so each opening fence includes a language token (e.g., text) and close
with the matching triple backticks; this will resolve the missing fence language
warnings.
- Around line 1924-1935: The unlabeled code fence under the "If mem0 and grep
results conflict:" section should include a language tag to satisfy markdownlint
MD040; update the fenced block (the triple-backtick block immediately after that
heading) to use a language token such as text (e.g., replace ``` with ```text)
so the block becomes a labeled code fence and re-run linting to confirm the
MD040 warning is resolved.
- Around line 1710-1715: In .claude/agents/predictor.md update the two fenced
code blocks that currently use bare backticks so they include appropriate
language identifiers: change the example JSON/output block (containing keys like
"score", "tier_base", "adjustments") to use ```json and change the example
markdown/configuration block (the second fenced block shown in the file) to a
suitable identifier such as ```markdown or ```bash as appropriate; then save and
run pytest tests/test_template_sync.py -v to verify the template sync check
passes.

In @.claude/playbook_delta_operations.json:
- Around line 125-126: The JSON's operations_proposed and operations_approved
values (both 10) don't match the actual number of entries in the operations
array (9); update the counts to reflect the real length or restore the missing
operation. Either decrement both operations_proposed and operations_approved
from 10 to 9, or re-add the omitted operation (likely one related to tool-0008
or the removed sync_to_cipher entry) so the operations array contains 10
entries; locate the keys operations_proposed, operations_approved, and the
"operations" array in the file to make the change.

In `@presentation/ru/03-workflow.md`:
- Line 57: The sentence describing the Reflector template should use a
conjunction for verb-parallelism: update the fragment “не вызывается →
дублируется” to either “не вызывается → и дублируется” or “не вызывается, из-за
чего дублируется” so the verbs are consistent; locate the occurrence near the
mention of mcp__mem0__map_tiered_search and replace the text accordingly to
preserve meaning and punctuation.

In `@tests/test_mapify_cli.py`:
- Around line 630-637: The current assertion in tests/test_mapify_cli.py that
checks "mcp" or "tool" in content is too weak because YAML frontmatter always
contains "tools" and makes the test pass; update the assertion in the block that
inspects agent files (the code that checks agent_file names like
"task-decomposer", "actor", "monitor", "predictor") to look for the specific MCP
section header used by generators (e.g., assert "mcp integration" in
content.lower() or assert "mcp integration" in content or both "MCP Integration"
and "MCP INTEGRATION" variants), or alternatively modify the test setup to
include servers that actually cause MCP sections to be generated (e.g., include
"context7") so that create_monitor_content / the task-decomposer/actor/predictor
generators produce MCP content.

Comment on lines 1710 to 1715
"score": 0.85,
"tier_base": 0.50,
"adjustments": [
{"category": "A", "factor": "Cipher comprehensive data", "adjustment": 0.20},
{"category": "B", "factor": "Codex+grep match", "adjustment": 0.15}
{"category": "A", "factor": "mem0 comprehensive data", "adjustment": 0.20},
{"category": "B", "factor": "mem0+grep match", "adjustment": 0.15}
],
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if the predictor.md files exist and their line counts
echo "=== Checking predictor.md files ==="
if [ -f .claude/agents/predictor.md ]; then
  echo ".claude/agents/predictor.md exists"
  wc -l .claude/agents/predictor.md
else
  echo ".claude/agents/predictor.md NOT FOUND"
fi

if [ -f src/mapify_cli/templates/agents/predictor.md ]; then
  echo "src/mapify_cli/templates/agents/predictor.md exists"
  wc -l src/mapify_cli/templates/agents/predictor.md
else
  echo "src/mapify_cli/templates/agents/predictor.md NOT FOUND"
fi

echo ""
echo "=== Checking test_template_sync.py ==="
if [ -f tests/test_template_sync.py ]; then
  echo "tests/test_template_sync.py exists"
else
  echo "tests/test_template_sync.py NOT FOUND"
fi

Repository: azalio/map-framework

Length of output: 344


🏁 Script executed:

#!/bin/bash
# Check lines 1710-1715 in .claude/agents/predictor.md
echo "=== Lines 1710-1715 in .claude/agents/predictor.md ==="
sed -n '1710,1715p' .claude/agents/predictor.md || echo "File or lines not found"

echo ""
# Check lines around 1821 for MD040 issues
echo "=== Lines 1812-1830 in .claude/agents/predictor.md ==="
sed -n '1812,1830p' .claude/agents/predictor.md || echo "File or lines not found"

echo ""
# Check lines around 1925 for MD040 issues
echo "=== Lines 1916-1935 in .claude/agents/predictor.md ==="
sed -n '1916,1935p' .claude/agents/predictor.md || echo "File or lines not found"

Repository: azalio/map-framework

Length of output: 1819


🏁 Script executed:

#!/bin/bash
# Check sync status between .claude/agents/predictor.md and templates
echo "=== Checking sync status ==="
if [ -f .claude/agents/predictor.md ] && [ -f src/mapify_cli/templates/agents/predictor.md ]; then
  if diff -q .claude/agents/predictor.md src/mapify_cli/templates/agents/predictor.md > /dev/null 2>&1; then
    echo "Files are IN SYNC"
  else
    echo "Files are OUT OF SYNC"
    echo "First difference:"
    diff .claude/agents/predictor.md src/mapify_cli/templates/agents/predictor.md | head -20
  fi
else
  echo "Cannot compare - one or both files not found"
fi

Repository: azalio/map-framework

Length of output: 110


Add language identifiers to fenced code blocks to fix MD040 violations.

The .claude ↔ templates sync is verified and in good state. However, fenced code blocks at lines ~1821 and ~1925 are missing language identifiers (e.g., should bebash, ```json, etc.). Update these to comply with markdown linting standards:

  • Lines 1812-1830: Add appropriate language identifier to the code fence (appears to be example JSON/output format)
  • Lines 1916-1935: Add appropriate language identifier to the code fence (appears to be example markdown/configuration)

Run pytest tests/test_template_sync.py -v to confirm template sync verification passes, as required by project guidelines.

🤖 Prompt for AI Agents
In @.claude/agents/predictor.md around lines 1710 - 1715, In
.claude/agents/predictor.md update the two fenced code blocks that currently use
bare backticks so they include appropriate language identifiers: change the
example JSON/output block (containing keys like "score", "tier_base",
"adjustments") to use ```json and change the example markdown/configuration
block (the second fenced block shown in the file) to a suitable identifier such
as ```markdown or ```bash as appropriate; then save and run pytest
tests/test_template_sync.py -v to verify the template sync check passes.

Comment on lines 1812 to 1825
**Category A: Historical Data** (pick highest applicable)
```
+0.20: Cipher returned comprehensive patterns for this change type
+0.10: Cipher returned partial/similar patterns
+0.20: mem0 returned comprehensive patterns for this change type
+0.10: mem0 returned partial/similar patterns
+0.00: No query made (default for Tier 1)
-0.15: Cipher queried but no relevant data found
-0.15: mem0 queried but no relevant data found
```

**Category B: Tool Agreement** (pick one)
```
+0.15: Codex + grep results match (same usages found)
+0.15: mem0 + grep results match (same usages found)
+0.05: Only one tool used, results clear
-0.10: Codex and grep conflict (investigate before proceeding)
-0.10: mem0 and grep conflict (investigate before proceeding)
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifiers to fenced blocks (MD040).

markdownlint reports missing fence languages here.

🛠️ Suggested fix
-```
+```text
 +0.20: mem0 returned comprehensive patterns for this change type
 +0.10: mem0 returned partial/similar patterns
 +0.00: No query made (default for Tier 1)
 -0.15: mem0 queried but no relevant data found

Category B: Tool Agreement (pick one)
- +text
+0.15: mem0 + grep results match (same usages found)
+0.05: Only one tool used, results clear
-0.10: mem0 and grep conflict (investigate before proceeding)

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**Category A: Historical Data** (pick highest applicable)
```
+0.20: Cipher returned comprehensive patterns for this change type
+0.10: Cipher returned partial/similar patterns
+0.20: mem0 returned comprehensive patterns for this change type
+0.10: mem0 returned partial/similar patterns
+0.00: No query made (default for Tier 1)
-0.15: Cipher queried but no relevant data found
-0.15: mem0 queried but no relevant data found
```
**Category B: Tool Agreement** (pick one)
```
+0.15: Codex + grep results match (same usages found)
+0.15: mem0 + grep results match (same usages found)
+0.05: Only one tool used, results clear
-0.10: Codex and grep conflict (investigate before proceeding)
-0.10: mem0 and grep conflict (investigate before proceeding)
```
**Category A: Historical Data** (pick highest applicable)
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 1813-1813: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 1821-1821: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In @.claude/agents/predictor.md around lines 1812 - 1825, Add explicit language
identifiers to the fenced code blocks in the predictor document to satisfy
markdownlint MD040: replace the three backtick fences that currently lack a
language with fenced blocks labeled e.g. ```text for the two score lists shown
under "Category A: Historical Data" and "Category B: Tool Agreement". Edit the
block delimiters surrounding the lines beginning "+0.20: mem0 returned..." and
"+0.15: mem0 + grep results match..." so each opening fence includes a language
token (e.g., text) and close with the matching triple backticks; this will
resolve the missing fence language warnings.

Comment on lines +1924 to 1935
### If mem0 and grep results conflict:
```
Example: cipher graph finds 10 usages, grep finds 15
Example: mem0 finds 10 usages, grep finds 15

1. Trust manual verification (grep) over semantic tools
2. Investigate discrepancy:
- Check for dynamic imports
- Check for generated code
- Check for string-based references
3. Report BOTH numbers in output:
"affected_components": ["15 files (cipher: 10, grep: 15 - discrepancy noted)"]
"affected_components": ["15 files (mem0: 10, grep: 15 - discrepancy noted)"]
4. Set confidence to max 0.60 (moderate uncertainty)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add fence language to satisfy MD040.

markdownlint flags the unlabeled code fence in this block.

🛠️ Suggested fix
-```
+```text
 Example: mem0 finds 10 usages, grep finds 15
 
 1. Trust manual verification (grep) over semantic tools
 2. Investigate discrepancy:
    - Check for dynamic imports
    - Check for generated code
    - Check for string-based references
 3. Report BOTH numbers in output:
    "affected_components": ["15 files (mem0: 10, grep: 15 - discrepancy noted)"]
 4. Set confidence to max 0.60 (moderate uncertainty)
</details>

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.20.0)</summary>

[warning] 1925-1925: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

In @.claude/agents/predictor.md around lines 1924 - 1935, The unlabeled code
fence under the "If mem0 and grep results conflict:" section should include a
language tag to satisfy markdownlint MD040; update the fenced block (the
triple-backtick block immediately after that heading) to use a language token
such as text (e.g., replace withtext) so the block becomes a labeled
code fence and re-run linting to confirm the MD040 warning is resolved.


</details>

<!-- fingerprinting:phantom:poseidon:eagle -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment on lines +125 to +126
"operations_proposed": 10,
"operations_approved": 10,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

operations_proposed / operations_approved count is 10, but the operations array contains only 9 entries.

There are 7 ADDs (impl-0050, cli-0010, test-0017, arch-0021, test-0018, err-0002, arch-0022) and 2 UPDATEs (test-0016, arch-0001), totaling 9. It appears the count was decremented from 11 to 10 when the tool-0008 DELETE was removed, but another operation (likely the removed sync_to_cipher-related entry or a second delete) was also dropped without adjusting the count.

Proposed fix
-    "operations_proposed": 10,
-    "operations_approved": 10,
+    "operations_proposed": 9,
+    "operations_approved": 9,
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"operations_proposed": 10,
"operations_approved": 10,
"operations_proposed": 9,
"operations_approved": 9,
🤖 Prompt for AI Agents
In @.claude/playbook_delta_operations.json around lines 125 - 126, The JSON's
operations_proposed and operations_approved values (both 10) don't match the
actual number of entries in the operations array (9); update the counts to
reflect the real length or restore the missing operation. Either decrement both
operations_proposed and operations_approved from 10 to 9, or re-add the omitted
operation (likely one related to tool-0008 or the removed sync_to_cipher entry)
so the operations array contains 10 entries; locate the keys
operations_proposed, operations_approved, and the "operations" array in the file
to make the change.

- ✅ Позволить Reflector извлечь паттерны из agent outputs

**Почему:** Шаблон Reflector содержит инструкции по поиску в cipher. При ручной работе `mcp__mem0__map_tiered_search` не вызывается → дублируется knowledge.
**Почему:** Шаблон Reflector содержит инструкции по поиску существующих паттернов. При ручной работе `mcp__mem0__map_tiered_search` не вызывается → дублируется knowledge.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Исправьте грамматику для однородности глаголов.

Сейчас: “не вызывается → дублируется”. Предпочтительнее: “не вызывается → и дублируется” или “не вызывается, из-за чего дублируется”.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~57-~57: Глаголы – однородные члены предложения: «вызывается →, дублируется» или «вызывается → и дублируется».
Context: ...аботе mcp__mem0__map_tiered_search не вызывается → дублируется knowledge. ### Правило 2: Обязательный...

(Verb_comma_Verb)

🤖 Prompt for AI Agents
In `@presentation/ru/03-workflow.md` at line 57, The sentence describing the
Reflector template should use a conjunction for verb-parallelism: update the
fragment “не вызывается → дублируется” to either “не вызывается → и дублируется”
or “не вызывается, из-за чего дублируется” so the verbs are consistent; locate
the occurrence near the mention of mcp__mem0__map_tiered_search and replace the
text accordingly to preserve meaning and punctuation.

Comment on lines +630 to 637
# Verify MCP integration for agents that use MCP tools
if any(
name in agent_file
for name in ["task-decomposer", "actor", "monitor", "predictor"]
):
assert "mcp" in content.lower() or "tool" in content.lower(), (
f"Agent {agent_file} missing MCP integration section"
)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Weakened assertion — always passes regardless of MCP server selection.

The check "mcp" in content.lower() or "tool" in content.lower() will always be true because every fallback agent template includes tools: Read, ... in its YAML frontmatter. This means the assertion no longer validates that MCP integration sections are actually generated.

With ["claude-reviewer"] as the only server, only monitor gets an MCP section (via create_monitor_content). The other three agents listed here (task-decomposer, actor, predictor) won't have any MCP integration content — yet the test still passes due to the frontmatter match.

Consider asserting on a more specific marker like "MCP Integration" or "MCP INTEGRATION" (the section headers used in fallback generators), or pass servers that actually trigger MCP sections in those agents (e.g., ["context7"]).

🤖 Prompt for AI Agents
In `@tests/test_mapify_cli.py` around lines 630 - 637, The current assertion in
tests/test_mapify_cli.py that checks "mcp" or "tool" in content is too weak
because YAML frontmatter always contains "tools" and makes the test pass; update
the assertion in the block that inspects agent files (the code that checks
agent_file names like "task-decomposer", "actor", "monitor", "predictor") to
look for the specific MCP section header used by generators (e.g., assert "mcp
integration" in content.lower() or assert "mcp integration" in content or both
"MCP Integration" and "MCP INTEGRATION" variants), or alternatively modify the
test setup to include servers that actually cause MCP sections to be generated
(e.g., include "context7") so that create_monitor_content / the
task-decomposer/actor/predictor generators produce MCP content.

@azalio azalio merged commit acd3e29 into main Feb 8, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant