lantern

oculus_poke-pathcontent

🎯 oculus_poke with path=content creates malformed node structure

Case Details

Case ID: task-b3ad2d27-c201-4eed-b739-1fecfaa297bd Status: parked Created: 2025-11-12T03:18:29.519Z Updated: 2025-11-12T03:18:29.519Z Priority: 3

Investigation Details

Case Type: investigation Urgency Level: routine

Notes

Issue

When using mcp__wanderland__oculus_poke with path="content", the new content is incorrectly embedded inside the North slot's YAML block as a content: field, rather than replacing the main document content.

Root Cause Analysis

After reading the poke command documentation, the issue is user error combined with unexpected behavior:

  • User Error: path="content" is not a valid section name for prose poke operations. Should have used actual section names like "Tier Information", "System Identification", etc.
  • Unexpected Behavior: When given an invalid/non-existent section name like "content", poke appears to create a content: field in the Slots YAML rather than erroring or creating a new section in the prose.

Expected Behavior

When path="content" is used (invalid section name):

  • Option A: Return error: "Section 'content' not found in node"
  • Option B: Create new section "## content" in the prose area
  • Option C: Return error: "Invalid path for prose operation"

Actual Behavior

Content is embedded into North slot YAML as:

## North
```yaml
content: 'entire new content as string...'
slots:
- jenkins-amis

Impact

  • Corrupts node structure
  • Old content persists while new content is in wrong location
  • Requires manual file editing to fix

Affected Nodes (Fixed Manually)

  • jenkins-base-ami-al2023-x86
  • jenkins-base-ami-al2023-arm64
  • jenkins-base-ami-al2-x86
  • jenkins-base-ami-al2-arm64

Recommendations

  • Add validation: Reject path="content" with helpful error message
  • Improve error handling for non-existent section names in prose operations
  • Prevent poke from modifying Slots YAML structure accidentally
  • Consider adding path="root" as special case for replacing entire node content

Test Case

# Try to poke with invalid section name
oculus_poke(
  slug="test-node",
  path="content",  # Invalid - not a real section
  value="New content",
  context="test"
)

# Should return clear error, not corrupt node structure

Investigation Timeline

2025-11-12T03:18:29.521Z - System - case_created

Case opened from CLI

Consciousness Links

Case Files: 1

Context: User Graeme identified this issue during Jenkins AMI documentation update session

Auto-Detected Keywords

investigation


This case file is automatically updated. For investigation logs, see the corresponding log channel.

πŸ“‹ Case To-Do List

This case has an integrated to-do list system that syncs with the Oculus knowledge graph. The to-do list uses the virtual:todo-list fence which auto-detects GitHub-style checkbox markdown.

How the To-Do System Works

  • Auto-Detection: Checkbox lists are automatically detected as virtual:todo-list fences
  • Alice Integration: Display in Alice dashboard using :::wonderland-todo-list slug="${current_case}"
  • ISA Operations: Use fence exec for add/check/update operations
  • Metadata Support: Add [assignee:name] [priority:level] tags to tasks

Case To-Do Operations

  • View state: oculus fence list ${slug} then oculus fence view ${slug} <fence-index>
  • Add task: oculus fence exec ${slug} <fence-index> add "New task"
  • Check task: oculus fence exec ${slug} <fence-index> check 0
  • Update task: oculus fence exec ${slug} <fence-index> update 0 "Updated content"
  • Reference: See virtual-fence-todo for full documentation

Current Case Tasks

  • 🎯 Solve the case
  • πŸ“ Document findings in investigation notes
  • πŸ”— Link relevant evidence and consciousness resources
  • βœ… Update case status when complete

Next Steps

Add investigation notes and evidence tags as you progress. The to-do list will evolve with your investigation. Tasks can be managed via Oculus fence operations or edited directly in the node.

↑ northjenkins-amis