replen 1.0.30 → 1.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,6 +51,14 @@ Parse the JSON response. Note:
51
51
  `goal` is worth surfacing even if it doesn't map to an existing capability.
52
52
  Lead your writeups with mission-fit, not just tech-fit. (Null until the project
53
53
  is onboarded with a thesis — then fall back to capability-fit alone.)
54
+ - `keystoneUpgrades` — task-scoped `better_than` upgrades for solutions this
55
+ project already uses (from Keystone, the comparative-knowledge ontology): each
56
+ is `{current, better, betterKind, task, margin, source}`. A deprecated/inferior
57
+ dependency has a maintained/stronger replacement. The footnote may surface one;
58
+ if the user wants it, DO the swap (update the dep, adjust call sites). Always
59
+ cite the `task` — "better" is task-relative (e.g. text-embedding-3-large beats
60
+ 3-small for general retrieval but NOT for short-label matching). Don't push an
61
+ upgrade the user didn't ask about beyond the one calm line.
54
62
  - `candidates[]` — the actual list to triage
55
63
  - `candidates[].priorContext` — server-attached MEMORY: the user's earlier
56
64
  verdicts on this repo, and whether the matched capability is already
@@ -255,6 +255,19 @@ strings. Each is `{tag, descriptor, modality}`:
255
255
  Break broad capabilities into the concrete techniques the code uses. Be
256
256
  specific — `cloudflare bypass`/`proxy rotation`, not just `web scraping`.
257
257
 
258
+ **Also capture architectural PRACTICES as capabilities.** Beyond what the code
259
+ *does*, note the distinctive structural *moves* it makes — these are what let
260
+ Replen suggest a pattern to your OTHER projects ("Aegis made its domain model
261
+ data-driven; this data-heavy project should consider it"). Include a capability
262
+ for any deliberate practice you find: a **data-driven domain ontology** (entity
263
+ types/relationships stored as DATA/rows, not hardcoded — configurable without a
264
+ redeploy), **event sourcing**, **outbox pattern**, **CQRS**, **pgvector
265
+ semantic search**, **feature store**, etc. Use the standard practice name as the
266
+ `tag` (so it matches Keystone's practice registry). Respect the cover — describe
267
+ the practice's STRUCTURE, never the sensitive entity names it models (for a
268
+ covered repo, "a configurable Postgres-backed domain ontology — entity types,
269
+ typed properties, computed properties as rows", never the entity names).
270
+
258
271
  ### 2e. Push to Replen
259
272
 
260
273
  1. **Register** the repo if it isn't already. The per-repo `replen_set_tags` /
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replen",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "description": "Make your AI coding tools smarter. One command, no API keys, free. Replen watches what your projects actually do and surfaces a few things worth bringing in each month. Use one as is, port a piece of another, cherry pick an idea, or build it clean room. The match happens inside your AI tool's session. A few actionable matches a month, by design.",
5
5
  "type": "module",
6
6
  "bin": {