replen 1.0.18 → 1.0.20

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.
package/dist/commands.js CHANGED
@@ -577,6 +577,6 @@ export async function runAtlas(argv) {
577
577
  console.log(JSON.stringify({ dir, count: data.files.length }));
578
578
  return;
579
579
  }
580
- console.log(`Atlas written: ${data.files.length} notes → ${dir}`);
581
- console.log(`Open ${dir} in Obsidian (or any markdown editor) to explore the graph view of your projects, capabilities, and decisions.`);
580
+ console.log(`Atlas: ${data.files.length} tiles written → ${dir}`);
581
+ console.log(`Open ${dir} in Obsidian (or any markdown editor) the tiles stitch into the graph view of your projects, capabilities, and decisions.`);
582
582
  }
@@ -5,11 +5,12 @@ description: Review Replen's suggestions for the current repo against your code.
5
5
 
6
6
  # Replen Match — in-session candidate triage
7
7
 
8
- You are running the matching loop locally. Replen has fetched a list of
9
- plausible OSS candidates from the wider ecosystem; you've got the user's
10
- codebase open. Your job is to decide which (if any) are worth their
11
- attention, write up the strong ones, and capture what they want to do
12
- about them.
8
+ You are running the matching loop locally. Replen's **Watchtower** its
9
+ maintained network of ~1,250 sources (vendor changelogs, advisories, pricing
10
+ pages, release feeds, standards trackers, EOL calendars) has fetched a list
11
+ of plausible OSS candidates and events; you've got the user's codebase open.
12
+ Your job is to decide which (if any) are worth their attention, write up the
13
+ strong ones, and capture what they want to do about them.
13
14
 
14
15
  **This runs entirely on the user's subscription tokens.** No API keys
15
16
  get used. Replen's hosted side did the cheap structural filtering; you
@@ -343,7 +344,7 @@ The user hasn't set up filter-mode B's tag list. Mention it once: "Heads
343
344
  up — you'd get sharper matches if you set project tags at /settings.
344
345
  Continuing with unfiltered for now."
345
346
 
346
- ## The Atlas vault — local memory for any agent
347
+ ## Atlas tiles — local memory for any agent
347
348
 
348
349
  Replen keeps an agent-readable markdown vault at `~/.replen/atlas/` — the
349
350
  user's whole portfolio as linked notes: every project and what it does,
@@ -355,8 +356,8 @@ The MCP server refreshes it in the background (at most twice a day);
355
356
  Use it whenever you need CROSS-PROJECT context: "what else does this user
356
357
  build?", "have we solved X in another repo?", "what did we decide about
357
358
  Y last quarter?". Start at `MAP.md`, or call `replen_recall` for a direct
358
- query. Reading the vault beats re-deriving the portfolio from scratch —
359
- it's the memory layer, and it's already on disk.
359
+ query. Reading the tiles beats re-deriving the portfolio from scratch —
360
+ they're the memory layer, and they're already on disk.
360
361
 
361
362
  ## When NOT to run this skill
362
363
 
@@ -71,13 +71,37 @@ Replen — a re-run backfills versions across every repo in minutes.
71
71
 
72
72
  For each in-scope repo, do this contract:
73
73
 
74
+ ### 2a-pre. Check for an existing knowledge graph FIRST (the adapter step)
75
+
76
+ Replen doesn't map code internals — it ingests whatever already does. Before
77
+ reading raw source, look for pre-digested knowledge and use it as your primary
78
+ grounding source (faster AND richer than a cold code-read):
79
+
80
+ - **Graphify vault** — an Obsidian-compatible markdown vault with frontmatter
81
+ + `[[wikilinks]]` + EXTRACTED/INFERRED/AMBIGUOUS-style provenance tags
82
+ (commonly in-repo as `graph/`, `vault/`, `.graphify/`, or alongside the
83
+ repo). Its entity/concept notes ARE the capability map: distill capabilities
84
+ from them, take descriptors from the note bodies, and use the files each
85
+ note links as the capability's `paths` evidence anchors.
86
+ - **Plain Obsidian vault / docs vault** — same treatment, lower confidence.
87
+ - **ADRs** (`docs/adr/*.md`, `doc/decisions/`) — architecture decisions are
88
+ high-grade descriptor material and often name the load-bearing files.
89
+
90
+ If you ground from one of these, START the report (2c) with one line:
91
+ `Grounding source: Graphify vault at <path>` (or `Obsidian vault…` / `ADRs…`)
92
+ — it renders into the user's Atlas tiles, linking the two tools. Then skim the
93
+ code only to VERIFY (the vault may be stale); don't re-derive what it already
94
+ holds. Privacy is unchanged: only capabilities/descriptors/paths/tags leave
95
+ the machine, exactly as with a code-read — never vault content or code.
96
+
74
97
  ### 2a. Read the code (not just the README)
75
98
 
76
99
  Read enough source to actually understand the project: entry points, the core
77
100
  modules, manifests (`package.json`/`pyproject.toml`/`Cargo.toml`/`go.mod`),
78
101
  configs, schemas, and the files that implement its real work (the model/algo/
79
102
  pipeline files, not the glue). This is what makes the grounding accurate — a
80
- doc paraphrase is not enough.
103
+ doc paraphrase is not enough. (Skip the deep read when 2a-pre found a fresh
104
+ knowledge graph — verify instead.)
81
105
 
82
106
  ### 2b. Assess doc quality → `good` | `thin` | `none`
83
107
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replen",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
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": {