Project-specific guidance for Claude Code working on inline-dialogue-plugin.
MCP plugin enabling AUTHOR/AGENT inline code review threads embedded in source code. Python-based with pytest testing, FastMCP server architecture.
uv run pytest # Run all tests (80 tests)
uv run pytest -x # Stop on first failure
uv run pytest -k "test_name" # Run specific test
uv run python -m inline_dialogue_mcp.server # Run MCP serverinline_dialogue_mcp/core.py- Thread detection, normalization, ID computationinline_dialogue_mcp/server.py- MCP tool implementationshooks/pre_tool_use.py- Edit guards protecting thread markerstests/test_server.py- All tests (organized by class)skills/inline-dialogue-workflow/SKILL.md- Behavioral guidance for thread processing
Never claim work was done without verification. This applies to ALL work, not just thread responses.
Wrong:
"I wrote a test for that." [User asks: "Which test?"] "Actually, I didn't write a test. Would you like me to?"
This is unacceptable. It erodes trust and wastes time.
Before saying you did something:
- Actually do it - Write the code, run the command, create the file
- Verify it exists - Check the file is there, test passes, changes are saved
- Be specific - Name the file, test class, function, line number
Right:
"Added
TestActionCommandDetection.test_commit_with_messageintests/test_server.py:847"
Wrong:
"I added a test for that functionality."
When making code changes to this project:
- New functionality - Write tests alongside the implementation, not after
- Bug fixes - Add a regression test that would have caught the bug
- Refactoring - Verify existing tests still pass before claiming completion
Tests go in tests/test_server.py, following existing class organization:
TestFeatureName- Group related teststest_specific_behavior- Descriptive test method names- Use
tmp_pathfixture for file operations - Use
mock_ctxfixture for MCP context
Before saying work is "done":
- Code changes are saved (not just described)
-
uv run pytestpasses (or you've explicitly noted failures) - New functionality has tests (or you've explicitly noted why not)
- You can point to specific files/lines/functions
class TestNewFeature:
"""Tests for new feature."""
def test_basic_behavior(self, tmp_path):
"""Describe what this tests."""
# Arrange
test_file = tmp_path / "test.py"
test_file.write_text("// AUTHOR: question\n")
# Act
result = function_under_test(test_file)
# Assert
assert result["expected_key"] == "expected_value"
def test_edge_case(self, tmp_path):
"""Describe the edge case."""
...- Never use Write tool on files containing thread markers (use Edit)
- Thread markers (
// AUTHOR:,// AGENT:) are protected by hooks - Use MCP tools (
respond_to_thread,dismiss_thread) for thread operations