7 Commits

  • fix(skills): move top-level origin frontmatter key under metadata
    The official Agent Skills spec (agentskills.io/specification) whitelists exactly
    6 top-level frontmatter keys (name/description/license/compatibility/metadata/
    allowed-tools). A top-level `origin` key fails the official validator
    (anthropics/skills quick_validate.py ALLOWED_PROPERTIES; skills-ref validate).
    
    This moves `origin: X` -> `metadata.origin: X` across the canonical skills/
    tree, preserving each value verbatim. Frontmatter-only, minimal diff.
    
    - 251 SKILL.md updated (242 new metadata block, 9 appended to existing metadata)
    - origin values preserved verbatim (verified 251/251)
    - YAML validated on all changed files
    - scoped to canonical skills/ only (docs/<lang> translations + tool mirrors
      .cursor/.kiro/.agents left untouched; presumably regenerated from canonical)
    
    Addresses #2233
  • fix(ck): address Greptile + CodeRabbit review bugs
    - Fix read-after-write in session-start.mjs: read prevSession BEFORE
      overwriting current-session.json so unsaved-session detection fires
    - Fix shell injection in resume.mjs: replace execSync shell string with
      fs.existsSync for directory existence check
    - Fix shell injection in shared.mjs gitSummary: replace nested \$(git ...)
      subshell with a separate runGit() call to get rev count
    - Fix displayName never shown: render functions now use ctx.displayName
      ?? ctx.name so user-supplied names show instead of the slug
    - Fix renderListTable: uses context.displayName ?? entry.name
    - Fix init.mjs: use path.basename() instead of cwd.split('/').pop()
    - Fix save.mjs confirmation: show original name, not contextDir slug
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
  • feat(skill): ck — context-keeper v2, persistent per-project memory
    Adds the ck (Context Keeper) skill — deterministic Node.js scripts
    that give Claude Code persistent, per-project memory across sessions.
    
    Architecture:
    - commands/ — 8 Node.js scripts handle all command logic (init, save,
      resume, info, list, forget, migrate, shared). Claude calls scripts
      and displays output — no LLM interpretation of command logic.
    - hooks/session-start.mjs — injects ~100 token compact summary on
      session start (not kilobytes). Detects unsaved sessions, git
      activity since last save, goal mismatch vs CLAUDE.md.
    - context.json as source of truth — CONTEXT.md is generated from it.
      Full session history, session IDs, git activity per save.
    
    Commands: /ck:init /ck:save /ck:resume /ck:info /ck:list /ck:forget /ck:migrate
    Source: https://github.com/sreedhargs89/context-keeper
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>