[object Object]

← back to Cncp Mcp

feat(reconciler): skip stale-flagging for entries marked registryOnly:true

9cc6d6b8228ffb2ea80b9f35f3e6ca1c9af1e9bb · 2026-05-11 12:06:51 -0700 · Steve Abrams

Some registry entries intentionally don't have a ~/Projects/<name>/ dir:
- pm2 services on Kamatera (plumbing-agent, yolo-agent-yuri, update-sku-agent)
- skills under ~/.claude/skills/ (morning-review, session-debrief)
- tools at ~/DW-Agents/ or ~/dw-*/
- the cncp dashboard at ~/cncp-starter/
- pure idea entries with no scaffold yet (airbnb-listing-service)
- legal case trackers (abrams-v-pabo)

Marking them registryOnly:true (18 entries today) means the reconciler
no longer re-flags them as stale every run. Also clears any existing
__stale field on transition.

Files touched

Diff

commit 9cc6d6b8228ffb2ea80b9f35f3e6ca1c9af1e9bb
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon May 11 12:06:51 2026 -0700

    feat(reconciler): skip stale-flagging for entries marked registryOnly:true
    
    Some registry entries intentionally don't have a ~/Projects/<name>/ dir:
    - pm2 services on Kamatera (plumbing-agent, yolo-agent-yuri, update-sku-agent)
    - skills under ~/.claude/skills/ (morning-review, session-debrief)
    - tools at ~/DW-Agents/ or ~/dw-*/
    - the cncp dashboard at ~/cncp-starter/
    - pure idea entries with no scaffold yet (airbnb-listing-service)
    - legal case trackers (abrams-v-pabo)
    
    Marking them registryOnly:true (18 entries today) means the reconciler
    no longer re-flags them as stale every run. Also clears any existing
    __stale field on transition.
---
 scripts/cncp-reconcile-projects.mjs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/scripts/cncp-reconcile-projects.mjs b/scripts/cncp-reconcile-projects.mjs
index cd4ef53..b6a1a8f 100755
--- a/scripts/cncp-reconcile-projects.mjs
+++ b/scripts/cncp-reconcile-projects.mjs
@@ -169,8 +169,13 @@ async function reconcile({ apply }) {
     }
   }
 
-  // Pass 3: flag stale.
+  // Pass 3: flag stale. Skip entries marked registryOnly (intentional — they
+  // live outside ~/Projects/, e.g. ~/.claude/skills/, ~/DW-Agents/, Kamatera).
   for (const canon of Object.keys(collapsed)) {
+    if (collapsed[canon].registryOnly) {
+      if (collapsed[canon].__stale) delete collapsed[canon].__stale;
+      continue;
+    }
     if (!diskByCanon.has(canon) && !collapsed[canon].__stale) {
       collapsed[canon].__stale = todayIso();
       ops.stales.push(canon);

← 45874a8 feat: cncp-reconcile-projects.mjs — keep cncp-projects.json  ·  back to Cncp Mcp  ·  migrate GoDaddy auth → Bearer PAT (TK-10 key rotation); sso- b6135d4 →