my-patina 0.6.0 → 0.7.0

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/cli.js CHANGED
@@ -427,7 +427,11 @@ function profileToVars(profile, liProfileUrl) {
427
427
  CONTENT_DIR: profile.content_dir,
428
428
  EDITOR: profile.editor,
429
429
  LI_PROFILE_URL: liProfileUrl ?? profile.linkedin?.profile_url ?? "",
430
- TODAY: today
430
+ TODAY: today,
431
+ STALENESS_THRESHOLD: (() => {
432
+ const d = Number(profile.staleness_threshold_days ?? 30);
433
+ return String(Number.isFinite(d) && d > 0 ? d : 30);
434
+ })()
431
435
  };
432
436
  }
433
437
  function baseManagedFiles(vars, editor, targetDir) {
@@ -484,18 +488,7 @@ async function scaffold(opts) {
484
488
  created: today,
485
489
  ...modules.includes("linkedin") && liProfileUrl ? { linkedin: { profile_url: liProfileUrl } } : {}
486
490
  };
487
- const vars = {
488
- PATINA_NAME: patinaName,
489
- USER_NAME: userName,
490
- USER_TITLE: title ?? "",
491
- ROLE_DESCRIPTION: roleDescription,
492
- COMPANY_NAME: work.company_name,
493
- COMPANY_DESCRIPTION: work.company_description ?? "",
494
- CONTENT_DIR: contentDir,
495
- EDITOR: editor,
496
- LI_PROFILE_URL: liProfileUrl,
497
- TODAY: today
498
- };
491
+ const vars = profileToVars(tempProfile, liProfileUrl);
499
492
  mkdirSync2(targetDir, { recursive: true });
500
493
  const checksums = {};
501
494
  const managedFiles = [
@@ -44,6 +44,25 @@ The graph is the source of truth. Nothing gets added to generated content unless
44
44
  - Never delete skill files automatically. Surface them to the user and wait for confirmation.
45
45
  - `{{CONTENT_DIR}}/notes/exclusions.md` overrides everything. If something is listed there, it must not appear in any generated output.
46
46
 
47
+ ## On session start
48
+
49
+ Before anything else, scan the graph for stale content and surface a brief report.
50
+
51
+ Read the file modification times for all three areas — skip `.gitkeep`, `README.md`, and `exclusions.md` in every directory:
52
+ - `{{CONTENT_DIR}}/notes/`
53
+ - `{{CONTENT_DIR}}/skills/`
54
+ - `{{CONTENT_DIR}}/posts/`
55
+
56
+ List items not modified in the last **{{STALENESS_THRESHOLD}} days**, grouped by area:
57
+
58
+ - **Notes** — stale note slugs
59
+ - **Skills** — stale skill slugs
60
+ - **Posts** — stale draft slugs
61
+
62
+ Skip any area with nothing stale. If everything is fresh, say so in one line. Keep the report brief — one line per area. Then ask:
63
+
64
+ > What are we working on today?
65
+
47
66
  ## Slash commands
48
67
 
49
68
  | Command | What it does |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "my-patina",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Personal professional knowledge graph — setup and management",
5
5
  "type": "module",
6
6
  "bin": {