agentsclimarketplace

Pwrl learnings save

Skill wicttor/pwrl/pwrl-learnings-save

Persist deduplicated learnings to permanent storage with backups and version control.From its SKILL.md

Install
npx -y skills add wicttor/pwrl --skill pwrl-learnings-save

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.1 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

pwrl-learnings-save — Learning Persistence

Purpose: Final phase of learnings workflow. Persists deduplicated learnings to permanent storage with recovery backups, version control integration, and validation. Makes learnings discoverable and queryable.

Interaction Method

  • Primarily automated file write and git operations.
  • Show progress: "Saving X learnings... Creating backup... Updating indexes..."
  • Ask only if git integration desired: "Commit changes to git? Yes/No"
  • Confirm completion with summary statistics.

Input: Dedup Artifact

Expects artifact from pwrl-learnings-dedup with:

dedup_id: YYYY-MM-DD-NNN-dedup
learnings: [array of deduplicated learnings]
archived_mapping: { old_id → new_id }

Output: Save Artifact

Emit save artifact (YAML + markdown):

---
format: pwrl-learnings-save-artifact
version: "1.0"
save_id: YYYY-MM-DD-NNN-save
created: ISO-8601-timestamp
---

# Learning Persistence Results

## Summary
- **Learnings Saved:** [count]
- **Files Written:** [count]
- **Indexes Updated:** [count]
- **Backup Created:** [path]
- **Storage Location:** docs/learnings/
- **Status:** success

## Files Written
- Learnings: [count] individual learning files
- Indexes: 7 index files (INDEX.md, BY_TYPE.md, etc.)
- Metadata: .index.json, .updated-at.txt

## Backup Information
- **Backup Path:** docs/learnings/.backups/2026-06-12-HHMMSS.tar.gz
- **Backup Size:** [X MB]
- **Timestamp:** [ISO-8601]

## Git Integration
- **Committed:** [yes/no]
- **Commit Hash:** [hash or N/A]
- **Commit Message:** "Add [N] learnings: [categories]"

## Validation Results
- **Files Verified:** [count] ✓
- **Index Links Valid:** ✓
- **Metadata Complete:** ✓
- **Duplicate Archive:** [count] archived learnings

## Recovery Information
- **Latest Backup:** [path]
- **Previous Backups:** [count]
- **Recovery Command:** `tar -xzf [backup-path] -C docs/`

## Ready for Access
- **Status:** ready
- **Access:** Open `docs/learnings/INDEX.md` to browse
- **Search:** Available via .index.json

Detailed Workflow

For complete step-by-step instructions, see save-learnings-detailed-workflow.md.

This SKILL.md provides an overview. The detailed workflow document contains:

  • Storage environment validation
  • Backup creation and verification
  • File writing process with error handling
  • Index file generation (INDEX.md, BY_TYPE.md, etc.)
  • Data validation checklist
  • Git integration process
  • Artifact generation

Quality Gate Validation

After completing this phase, run quality gate validation:

/pwrl-phase-checkpoint learnings 5 [artifact-path]

See pwrl-phase-checkpoint for validation rules.


Check input has valid dedup_id and learnings array with complete data.

Step 2: Validate Storage

Check storage environment:

  1. Directory exists:

    • docs/learnings/ directory present
    • If not: create it
  2. Write permissions:

    • Can write to docs/learnings/
    • Can create subdirectories
    • If denied: return error with recovery suggestion
  3. Disk space:

    • Available space > 2× estimated requirement
    • If low: warn user, ask to continue anyway
  4. Backup directory:

    • Create .backups/ subdirectory if needed
    • For recovery rollback capability

Step 3: Create Backup

Preserve current state before writing:

  1. Create tar.gz:

    • tar -czf docs/learnings/.backups/YYYY-MM-DD-HHMMSS.tar.gz docs/learnings/ --exclude='.backups'
    • Records: timestamp, size, file count
  2. Verify backup:

    • Can read backup file
    • Contains expected files
    • If failed: warn but continue
  3. Cleanup old backups:

    • Keep last 5 backups
    • Remove older than 30 days
    • List: ls -lh .backups/

Step 4: Write Learning Files

For each learning in dedup artifact:

  1. Determine file path:

    • Use storage strategy (by_type, by_domain, etc.)
    • Example: docs/learnings/gotcha/2026-06-12-race-condition-cache.md
  2. Format content:

    • YAML frontmatter with metadata
    • Markdown body
    • Relationships section
  3. Write file:

    • Ensure directory exists (create if needed)
    • Write with UTF-8 encoding
    • Set permissions (644)
  4. Handle errors:

    • If write fails: log error, attempt recovery (restore from backup)
    • Continue with remaining learnings

Step 5: Update Index Files

Regenerate all navigation indexes:

  1. INDEX.md (Master index)

    • Link to all other indexes
    • Count by type, domain, priority
    • Recently updated section
  2. BY_TYPE.md (Organized by type)

    • Lists all learnings grouped by type
    • Links to individual learning files
    • Item count per type
  3. BY_DOMAIN.md (Organized by domain)

    • Lists all learnings grouped by domain
    • Links to individual files
    • Item count per domain
  4. BY_PRIORITY.md (Organized by priority)

    • Lists grouped by critical/important/nice-to-know
    • Quick way to find high-impact learnings
  5. BY_APPLICABILITY.md (Organized by relevance)

    • Lists grouped by applicability score
    • Shows current-project vs. general relevance
  6. RECENT.md (Recently added)

    • Last 20 learnings by creation date
    • Quick way to catch up on new knowledge
  7. .index.json (Machine-readable)

    • JSON format for programmatic access
    • Full-text index for search
    • Metadata for all learnings

Step 6: Validate Data

Verify all written data:

  1. File validation:

    • Count written files (should match learning count)
    • Verify each file is readable
    • Check for corruption or truncation
  2. Index validation:

    • Read each index file
    • Verify all links exist
    • Check markdown syntax
  3. Metadata validation:

    • .index.json valid JSON
    • All learnings in index
    • Metadata complete
  4. Error handling:

    • If validation fails: log errors, optionally restore backup
    • If partial failure: report affected learnings

Step 7: Commit to Git

Optional: add learnings to version control:

  1. Ask user:

    • "Should I commit changes to git?"
    • Show what would be committed
  2. If yes:

    • git add docs/learnings/
    • git commit -m "Add/update learnings: [N] learnings, [types], [domains]"
    • Capture commit hash
  3. If no:

    • Skip git integration
    • Note in artifact: git_commit: none
  4. Error handling:

    • If git fails: warn but continue
    • Learnings saved even if git commit fails

Step 8: Generate Save Artifact

Emit final artifact with:

  • Count of learnings saved and files written
  • Backup location for recovery
  • Git commit info if applicable
  • Validation results
  • Recovery commands for rollback
  • Ready flag for access

Error Recovery

ScenarioRecovery
Write failsRestore backup: tar -xzf [backup-path] -C docs/
Index failsRegenerate indexes manually or run skill again
Disk fullFree space; restore backup if needed
Git integration failsLearnings still saved; git can be added manually later

Testing Coverage

Test file: tests/pwrl-learnings/save-learnings.test.ts

Happy Path Tests:

  • ✅ Save N learnings (all written correctly)
  • ✅ Create backup (recoverable)
  • ✅ Update all indexes (complete)
  • ✅ Commit to git (successful)
  • ✅ Validation passes (all data intact)

Edge Cases:

  • ✅ No learnings to save (handles empty)
  • ✅ Backup already exists (versioned)
  • ✅ Git not available (continues anyway)
  • ✅ Partial write failure (rolls back)
  • ✅ Special characters in filenames (escaped)

Output Validation Tests:

  • ✅ Save artifact structure complete
  • ✅ Recovery info accurate
  • ✅ Backup path valid
  • ✅ Git commit hash present (if applicable)
  • ✅ All files accessible for next workflow

What ships with it: 3 files

28.9 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.