atomic

flowstate-epic-flowstate-community-epicdm-kv-shim

Package-local agent skill for @epicdm/kv-shim.

Tags

Publisher

Versions

1 version published — latest: 0.1.0

  • 0.1.0
    publishedInvalid Date

Skill

kv-shim Package Skill

Package: @epicdm/kv-shim Repository: epic-flowstate-community Path: packages/kv-shim Version: 0.1.0

Use this published Dojo skill as the package-level entrypoint. For detailed workflows, use the package-local skills listed below.

Primary Package Workflow

KV Adapter Selection

Use this skill when a service or test needs a KVStore.

Interface-First Pattern

Accept the interface at boundaries:

async function loadValue(kv: KVStore, key: string) {
  return kv.get(key)
}

This lets production Cloudflare services pass a KV binding directly while local services can pass a shim adapter.

Redis Adapter

const kv = new RedisKVStore(redis, 'flowstate:')

Use Redis for local or server-side services that need persistence and have an ioredis connection. The optional prefix isolates keys and is stripped from list results.

In-Memory Adapter

const kv = new InMemoryKVStore()

Use memory for tests and lightweight development flows only. It has no persistence and prunes expired entries lazily during reads/lists.

Watch Outs

  • Do not use InMemoryKVStore for production persistence.
  • Cloudflare KV already satisfies the interface; do not wrap it unnecessarily.
  • Prefixes apply only to RedisKVStore.

Package Skill Inventory

Package Skill Inventory: @epicdm/kv-shim

Package path: packages/kv-shim.

Skill Map

SkillTypeTriggerTeachesDojo
flowstate-kv-shimorchestratorUse when integrating, changing, testing, or documenting @epicdm/kv-shimPackage purpose, routing, public KV surfacelocal-only
flowstate-kv-shim-adapter-selectionworkflowUse when choosing Cloudflare KV, Redis, or in-memory KV behaviorKVStore, RedisKVStore, InMemoryKVStore, key prefixes, test/dev/prod selectionready-after-review
flowstate-kv-shim-list-ttl-contractsreferenceUse when implementing or debugging put TTLs or list paginationexpirationTtl, expiration, Redis SCAN caveat, cursor semantics, Cloudflare TTL minimumready-after-review
flowstate-kv-shim-maintenancemaintenanceUse before changing the KV interface, adapters, tests, docs, Dojo, or feature matrixVerification, optional ioredis peer contract, generated content gatelocal-only

Anti-Sprawl Decision

Do not create separate skills for get, put, delete, and list. The useful learning units are adapter selection, TTL/list contracts, and maintenance.

Review Gate

Package Skill Review: @epicdm/kv-shim

Package path: packages/kv-shim.

Review Result

Status: drafted, source-backed, partially verified, pending lint repair and publication.

The skillset is compact and workflow-shaped around adapter selection, TTL/list contracts, and maintenance.

Checks

  • Source review: completed from package exports, adapters, tests, and reverse-reference scan.
  • Skill inventory: completed.
  • Skill files: completed.
  • ASCII/frontmatter scan: passed.
  • Package tests: passed, 2 suites and 33 tests.
  • Package typecheck: passed.
  • Package lint: could not run because eslint was not found by the package lint script.
  • Generated Dojo replacement: pending.
  • Cloud Dojo publication: pending.

Verification Commands

Run before publication:

yarn workspace @epicdm/kv-shim test
yarn workspace @epicdm/kv-shim typecheck
yarn workspace @epicdm/kv-shim lint

Publication Gate

Do not publish existing .flowstate/dojo artifacts until they are rebuilt from reviewed package skills.

Usage

Start with this skill to understand the package purpose, then use the package-local focused skills for specific workflows. Keep this Dojo version aligned with packages/kv-shim/package.json. Do not treat generated feature lists as lessons; use workflow evidence from CODE-REVIEW.md, SKILL-INVENTORY.md, and REVIEW.md.

Install

Run this in your project to install via CLI:

fscloud dojo skill install flowstate-epic-flowstate-community-epicdm-kv-shim --target <target> --out ./skills

Replace <target> with your agent target identifier. See the CLI docs for details.