351 lines
9.1 KiB
Markdown
351 lines
9.1 KiB
Markdown
---
|
|
name: update-content
|
|
description: Update existing files in knowledge base with directory governance. Use when user wants to modify, edit, or update existing content. Reads RULE.md to maintain format consistency and follows update rules.
|
|
---
|
|
|
|
# Update Content Skill
|
|
|
|
Generic file update Skill that respects RULE.md constraints and maintains format consistency.
|
|
|
|
## When to use this Skill
|
|
|
|
- User says "update", "edit", "modify", "change"
|
|
- User references existing file or content
|
|
- User requests content revision
|
|
- User mentions specific file to update
|
|
|
|
## Workflow
|
|
|
|
### 1. Identify Target File
|
|
|
|
**If user provides file path**:
|
|
- Verify file exists
|
|
- Confirm with user if ambiguous
|
|
|
|
**If user provides topic/title only**:
|
|
- Search for file using Grep or Glob
|
|
- Pattern: `**/*keyword*.md`
|
|
- If multiple matches: present list, ask user to choose
|
|
- If no matches: report not found, offer to create instead
|
|
|
|
**Search strategies**:
|
|
1. Filename match: `find . -name "*keyword*"`
|
|
2. Content match: `grep -r "keyword" .`
|
|
3. README.md index: Search README.md files for references
|
|
|
|
### 2. Read Current Content
|
|
|
|
**Load existing file**:
|
|
- Use Read tool to load full content
|
|
- Understand current structure:
|
|
- Frontmatter (if present)
|
|
- Section headings
|
|
- Content organization
|
|
- Formatting style
|
|
|
|
**Analyze format**:
|
|
- Identify markdown structure
|
|
- Note any special formatting
|
|
- Detect metadata or frontmatter
|
|
- Understand content layout
|
|
|
|
### 3. Read Directory RULE.md
|
|
|
|
**Locate and read RULE.md**:
|
|
1. Check file's directory for RULE.md
|
|
2. If not found, check parent directories (inheritance)
|
|
3. Parse RULE.md for update rules
|
|
|
|
**Check for**:
|
|
- Are updates allowed? (some directories may be append-only or immutable)
|
|
- Format requirements to maintain
|
|
- Required fields that must be preserved
|
|
- Update workflow (e.g., "always add changelog entry")
|
|
- Versioning requirements
|
|
|
|
**Example RULE.md update rules**:
|
|
```markdown
|
|
## Update Rules
|
|
- Preserve frontmatter fields: title, date, tags
|
|
- Add "Last updated" timestamp to frontmatter
|
|
- Append changes to "Changelog" section
|
|
- Maintain markdown heading structure
|
|
```
|
|
|
|
### 4. Execute Update
|
|
|
|
**Apply requested changes**:
|
|
- Use Edit tool for targeted changes
|
|
- Or Write tool for complete rewrites (if needed)
|
|
- Maintain existing format per RULE.md
|
|
- Preserve required fields/structure
|
|
|
|
**Update modification metadata**:
|
|
- Update "Last updated" field (if present)
|
|
- Update modification timestamp in frontmatter
|
|
- Add changelog entry (if RULE.md requires)
|
|
- Preserve original creation date
|
|
|
|
**Maintain consistency**:
|
|
- Keep same formatting style (indentation, line breaks, etc.)
|
|
- Preserve markdown structure (headings hierarchy)
|
|
- Maintain frontmatter format (if present)
|
|
- Keep cross-references valid
|
|
|
|
### 5. Governance Update
|
|
|
|
**Update README.md**:
|
|
1. Read current README.md
|
|
2. Find entry for this file
|
|
3. Update description if content changed significantly
|
|
4. Update "Last modified" timestamp
|
|
5. Add to "Recent Changes" section
|
|
6. Save README.md
|
|
|
|
**Update parent README.md if needed**:
|
|
- If file significance changed
|
|
- If file moved to different category
|
|
|
|
**Verify updates**:
|
|
- Check README.md is valid markdown
|
|
- Ensure timestamps are current
|
|
- Verify file is still listed correctly
|
|
|
|
### 6. Report to User
|
|
|
|
**Confirm update complete**:
|
|
```
|
|
✅ File updated successfully
|
|
|
|
File: [path to file]
|
|
Changes: [summary of changes made]
|
|
Format: [maintained per RULE.md]
|
|
|
|
README.md updated:
|
|
- [directory]/README.md
|
|
|
|
What changed:
|
|
[Brief description of modifications]
|
|
```
|
|
|
|
## Special Cases
|
|
|
|
### Frontmatter Updates
|
|
|
|
If file has YAML frontmatter:
|
|
|
|
```yaml
|
|
---
|
|
title: Original Title
|
|
date: 2025-10-20
|
|
updated: 2025-10-28 # ← Update this
|
|
tags: [ai, ml]
|
|
---
|
|
|
|
[Content]
|
|
```
|
|
|
|
**Update process**:
|
|
1. Parse frontmatter
|
|
2. Preserve required fields (per RULE.md)
|
|
3. Update modification fields
|
|
4. Update content
|
|
5. Regenerate frontmatter with updates
|
|
|
|
### Versioned Content
|
|
|
|
If RULE.md requires versioning:
|
|
|
|
```markdown
|
|
## Changelog
|
|
|
|
### v1.2.0 (2025-10-28)
|
|
- [Changes made]
|
|
|
|
### v1.1.0 (2025-10-25)
|
|
- [Previous changes]
|
|
```
|
|
|
|
**Update process**:
|
|
1. Read current version
|
|
2. Increment version number (per RULE.md versioning scheme)
|
|
3. Add changelog entry
|
|
4. Update content
|
|
5. Update version in frontmatter
|
|
|
|
### Structured Content
|
|
|
|
If content has specific structure (sections, tables, etc.):
|
|
|
|
**Preserve structure**:
|
|
1. Identify section to modify
|
|
2. Update only targeted section
|
|
3. Maintain heading hierarchy
|
|
4. Keep other sections unchanged
|
|
5. Ensure valid markdown
|
|
|
|
### Append-Only Updates
|
|
|
|
If RULE.md specifies append-only (like logs):
|
|
|
|
```markdown
|
|
## RULE.md says: "This directory is append-only"
|
|
```
|
|
|
|
**Update process**:
|
|
1. Read current content
|
|
2. Append new content at end
|
|
3. Don't modify existing content
|
|
4. Add timestamp for new entry
|
|
5. Update README.md
|
|
|
|
### Cross-Reference Updates
|
|
|
|
If file contains links to other files:
|
|
|
|
**After update**:
|
|
1. Verify cross-references still valid
|
|
2. If file renamed/moved: update references
|
|
3. Check both directions (incoming and outgoing links)
|
|
4. Report any broken links
|
|
|
|
## Error Handling
|
|
|
|
### File Not Found
|
|
```
|
|
User: "Update the transformer note"
|
|
→ Search for file with "transformer" keyword
|
|
→ No matches found
|
|
→ Ask: "I couldn't find a file about transformers. Would you like to create one instead?"
|
|
```
|
|
|
|
### Multiple Matches
|
|
```
|
|
User: "Update the transformer note"
|
|
→ Find 3 files with "transformer":
|
|
1. Research/AI/2025-10-28-transformer-architecture.md
|
|
2. Research/AI/2025-10-20-transformer-applications.md
|
|
3. Work/Projects/transformer-project.md
|
|
→ Present list: "I found 3 files. Which one?"
|
|
→ User selects → Proceed
|
|
```
|
|
|
|
### RULE.md Forbids Updates
|
|
```
|
|
RULE.md says: "This directory is immutable"
|
|
→ Warn user: "RULE.md indicates this directory should not be modified"
|
|
→ Ask: "Do you want to proceed anyway (override rule)?"
|
|
→ If yes: update and note rule override in README.md
|
|
→ If no: cancel operation
|
|
```
|
|
|
|
### Format Unclear
|
|
```
|
|
Current file has unusual format
|
|
→ Ask user: "This file has custom formatting. Should I:
|
|
1. Maintain exact current format
|
|
2. Apply standard format per RULE.md
|
|
3. Let you specify format"
|
|
```
|
|
|
|
### Conflicting Changes
|
|
```
|
|
File was modified since user last viewed
|
|
→ Warn: "This file was modified recently (timestamp)"
|
|
→ Show recent changes
|
|
→ Ask: "Proceed with update or review changes first?"
|
|
```
|
|
|
|
### Update Breaks Structure
|
|
```
|
|
Proposed update would break markdown structure or frontmatter
|
|
→ Warn: "This update would create invalid structure"
|
|
→ Suggest: "I can apply a modified version that maintains structure"
|
|
→ Ask for confirmation
|
|
```
|
|
|
|
## Integration with Governance
|
|
|
|
This Skill automatically invokes the governance protocol:
|
|
|
|
**Before update**:
|
|
- Locate and read RULE.md
|
|
- Validate update is allowed
|
|
- Check format requirements
|
|
|
|
**During update**:
|
|
- Maintain format per RULE.md
|
|
- Preserve required fields
|
|
- Follow update workflows
|
|
|
|
**After update**:
|
|
- Update README.md
|
|
- Update modification timestamps
|
|
- Verify structure maintained
|
|
|
|
## Examples
|
|
|
|
### Example 1: Simple Update
|
|
|
|
**User**: "Update the transformer architecture note with new information about attention mechanisms"
|
|
|
|
**Skill workflow**:
|
|
1. Searches for file → Finds `Research/AI/2025-10-28-transformer-architecture.md`
|
|
2. Reads current content
|
|
3. Reads Research/AI/RULE.md → Updates allowed, maintain frontmatter
|
|
4. Applies changes using Edit tool
|
|
5. Updates "updated" field in frontmatter to 2025-10-28
|
|
6. Updates Research/AI/README.md timestamp
|
|
7. Reports: "✅ Updated transformer-architecture.md with attention mechanisms section"
|
|
|
|
### Example 2: Append-Only Log
|
|
|
|
**User**: "Add today's entry to my worklog"
|
|
|
|
**Skill workflow**:
|
|
1. Finds Work/WorkLog/2025/Q4/10-October/2025-10-28.md
|
|
2. Reads current content
|
|
3. Reads Work/WorkLog/RULE.md → Append-only, add timestamp
|
|
4. Appends new entry at end with timestamp
|
|
5. Updates hierarchical README.md files
|
|
6. Reports: "✅ Added entry to today's worklog"
|
|
|
|
### Example 3: Versioned Document
|
|
|
|
**User**: "Update the project spec with new requirements"
|
|
|
|
**Skill workflow**:
|
|
1. Finds Work/Projects/project-spec.md
|
|
2. Reads current version → v1.1.0
|
|
3. Reads Work/Projects/RULE.md → Requires versioning and changelog
|
|
4. Increments version → v1.2.0
|
|
5. Adds changelog entry:
|
|
```markdown
|
|
### v1.2.0 (2025-10-28)
|
|
- Added new requirements section
|
|
```
|
|
6. Updates content
|
|
7. Updates frontmatter version field
|
|
8. Updates README.md
|
|
9. Reports: "✅ Updated project-spec.md to v1.2.0"
|
|
|
|
## Best Practices
|
|
|
|
1. **Always preserve existing structure** - Don't reformat unless requested
|
|
2. **Read RULE.md first** - Understand update constraints
|
|
3. **Use Edit for precision** - Target specific changes, don't rewrite entire file
|
|
4. **Maintain metadata** - Update timestamps, versions, changelog
|
|
5. **Update README.md immediately** - Keep index current
|
|
6. **Verify cross-references** - Ensure links still work
|
|
7. **Report clearly** - User should know what changed
|
|
8. **Handle conflicts gracefully** - Warn about concurrent modifications
|
|
|
|
## Notes
|
|
|
|
- This Skill works with any file structure by reading RULE.md
|
|
- Preserves format by default, changes only what's requested
|
|
- Respects update rules defined in RULE.md
|
|
- Automatically maintains README.md index
|
|
- Works in parallel with CLAUDE.md subagents
|
|
- Never updates RULE.md itself (that requires explicit permission via governance agent)
|