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-amisImpact
- 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 structureInvestigation 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-listfences - 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}thenoculus 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.