claude-launchpad 0.12.2 → 0.13.1
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/README.md +5 -10
- package/dist/cli.js +38 -11
- package/dist/cli.js.map +1 -1
- package/dist/commands/memory/server.js +12 -9
- package/dist/commands/memory/server.js.map +1 -1
- package/dist/{install-C5XDWATE.js → install-H6GW4P6K.js} +22 -22
- package/dist/install-H6GW4P6K.js.map +1 -0
- package/package.json +16 -3
- package/dist/install-C5XDWATE.js.map +0 -1
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ Init generates all three. Doctor checks for them. `--fix` creates any that are m
|
|
|
72
72
|
| `claude-launchpad init` | Detect stack, generate config + hooks + permissions | Locally, free |
|
|
73
73
|
| `claude-launchpad doctor --fix` | Auto-fix issues found by doctor | Locally, free |
|
|
74
74
|
| `claude-launchpad eval` | Run Claude against test scenarios, score results | Via Claude CLI |
|
|
75
|
-
| `claude-launchpad memory` | Optional
|
|
75
|
+
| `claude-launchpad memory` | Optional knowledge base that persists across sessions | Locally |
|
|
76
76
|
| `/lp-enhance` (skill) | Claude reads your code and completes CLAUDE.md | Inside Claude Code |
|
|
77
77
|
|
|
78
78
|
## Doctor
|
|
@@ -193,7 +193,7 @@ Results save to `.claude/eval/` as structured markdown. Feed them back to Claude
|
|
|
193
193
|
|
|
194
194
|
## Memory
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
Claude maintains a personal knowledge base about your project. It learns what matters, forgets what doesn't, and gets smarter every session.
|
|
197
197
|
|
|
198
198
|
```bash
|
|
199
199
|
claude-launchpad memory
|
|
@@ -201,14 +201,9 @@ claude-launchpad memory
|
|
|
201
201
|
|
|
202
202
|
If memory is not installed, it runs interactive setup. If installed, it shows stats. Requires native deps first: `npm install better-sqlite3 sqlite-vec`.
|
|
203
203
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
- **Decay model** fades memories naturally (episodic: 30 days, semantic: 18 months, procedural: 2 years)
|
|
208
|
-
- **Self-tuning retrieval** promotes memories Claude searches for, demotes ones injected but never used
|
|
209
|
-
- **Project-scoped** with no cross-contamination between projects
|
|
210
|
-
- **TUI dashboard** (`--dashboard`) with vim navigation, filtering, and search
|
|
211
|
-
- **Cross-device sync** pushes and pulls memories between machines via private GitHub Gist
|
|
204
|
+
Every session, Claude loads what it needs to know and extracts new knowledge when you finish. Stale facts fade on their own. Knowledge Claude actually uses gets reinforced. Each project has its own isolated memory, and you can sync it across machines via private GitHub Gist.
|
|
205
|
+
|
|
206
|
+
Browse everything with `--dashboard` -- a terminal UI with vim navigation, filtering, and search.
|
|
212
207
|
|
|
213
208
|
Data stays in `~/.agentic-memory/memory.db`. Sync requires the [GitHub CLI](https://cli.github.com/) (`gh`).
|
|
214
209
|
|
package/dist/cli.js
CHANGED
|
@@ -572,6 +572,8 @@ function generateEnhanceSkill() {
|
|
|
572
572
|
"5. **## Memory** - ONLY if agentic-memory is configured in settings.json. Max 6 bullets.",
|
|
573
573
|
"6. **## Key Decisions** - only decisions that affect how Claude works in this codebase",
|
|
574
574
|
"",
|
|
575
|
+
"7. **Skill Authoring** - if .claude/rules/conventions.md lacks a Skill Authoring section, plan to add one",
|
|
576
|
+
"",
|
|
575
577
|
"If any section would exceed 8 bullets, plan a .claude/rules/ file for the overflow.",
|
|
576
578
|
"",
|
|
577
579
|
"**Done when:** you know exactly what to add/change and the line count stays under 200.",
|
|
@@ -633,6 +635,20 @@ function generateEnhanceSkill() {
|
|
|
633
635
|
"- Each package gets its own rules file: .claude/rules/packages-<name>.md",
|
|
634
636
|
"- Suggest claudeMdExcludes in settings.json to skip irrelevant package CLAUDE.md files",
|
|
635
637
|
"",
|
|
638
|
+
"## Skill authoring conventions",
|
|
639
|
+
"",
|
|
640
|
+
"If .claude/rules/conventions.md exists but has no Skill Authoring section, add this:",
|
|
641
|
+
"",
|
|
642
|
+
"## Skill Authoring",
|
|
643
|
+
"",
|
|
644
|
+
"When creating Claude Code skills (.claude/skills/*/SKILL.md):",
|
|
645
|
+
"",
|
|
646
|
+
"- Add TRIGGER when / DO NOT TRIGGER when clauses in the description for auto-invocation",
|
|
647
|
+
"- Add allowed-tools in frontmatter to restrict tool access (e.g. Read, Glob, Grep for read-only skills)",
|
|
648
|
+
"- Add argument-hint in frontmatter showing the expected input format",
|
|
649
|
+
'- Structure as phases: Research, Plan, Execute, Verify with "Done when:" success criteria per phase',
|
|
650
|
+
"- Handle edge cases and preconditions before execution",
|
|
651
|
+
"",
|
|
636
652
|
"## Hook review",
|
|
637
653
|
"",
|
|
638
654
|
"Review .claude/settings.json hooks:",
|
|
@@ -786,6 +802,18 @@ function generateStarterRules(detected) {
|
|
|
786
802
|
lines.push("- Prefer Result over unwrap/expect in library code");
|
|
787
803
|
lines.push("- No unsafe blocks without a safety comment");
|
|
788
804
|
}
|
|
805
|
+
lines.push(
|
|
806
|
+
"",
|
|
807
|
+
"## Skill Authoring",
|
|
808
|
+
"",
|
|
809
|
+
"When creating Claude Code skills (.claude/skills/*/SKILL.md):",
|
|
810
|
+
"",
|
|
811
|
+
"- Add TRIGGER when / DO NOT TRIGGER when clauses in the description for auto-invocation",
|
|
812
|
+
"- Add allowed-tools in frontmatter to restrict tool access (e.g. Read, Glob, Grep for read-only skills)",
|
|
813
|
+
"- Add argument-hint in frontmatter showing the expected input format",
|
|
814
|
+
'- Structure as phases: Research, Plan, Execute, Verify with "Done when:" success criteria per phase',
|
|
815
|
+
"- Handle edge cases and preconditions before execution"
|
|
816
|
+
);
|
|
789
817
|
lines.push("");
|
|
790
818
|
return lines.join("\n");
|
|
791
819
|
}
|
|
@@ -2638,10 +2666,10 @@ function isMemoryInstalled() {
|
|
|
2638
2666
|
}
|
|
2639
2667
|
}
|
|
2640
2668
|
function createMemoryCommand() {
|
|
2641
|
-
const memory = new Command4("memory").description("
|
|
2669
|
+
const memory = new Command4("memory").description("Knowledge base that Claude maintains across sessions").option("--dashboard", "Open the memory dashboard").action(async (opts) => {
|
|
2642
2670
|
if (opts.dashboard) {
|
|
2643
2671
|
if (!isMemoryInstalled()) {
|
|
2644
|
-
log.error("
|
|
2672
|
+
log.error("Knowledge base not set up yet. Run `claude-launchpad memory` first.");
|
|
2645
2673
|
return;
|
|
2646
2674
|
}
|
|
2647
2675
|
const { requireMemoryDeps } = await import("./require-deps-NKRCPVAO.js");
|
|
@@ -2652,23 +2680,22 @@ function createMemoryCommand() {
|
|
|
2652
2680
|
}
|
|
2653
2681
|
if (!isMemoryInstalled()) {
|
|
2654
2682
|
log.blank();
|
|
2655
|
-
log.step("
|
|
2683
|
+
log.step("Claude doesn't have a knowledge base for this project yet.");
|
|
2656
2684
|
log.blank();
|
|
2657
|
-
log.info("
|
|
2658
|
-
log.info(" -
|
|
2659
|
-
log.info(" -
|
|
2660
|
-
log.info(" -
|
|
2661
|
-
log.info(" - Add memory guidance to CLAUDE.md");
|
|
2685
|
+
log.info("After setup, Claude will:");
|
|
2686
|
+
log.info(" - Remember decisions, gotchas, and learnings across sessions");
|
|
2687
|
+
log.info(" - Automatically recall relevant context when you start a session");
|
|
2688
|
+
log.info(" - Save important facts as you work, so nothing gets lost");
|
|
2662
2689
|
log.blank();
|
|
2663
2690
|
const proceed = await confirm2({
|
|
2664
|
-
message: "
|
|
2691
|
+
message: "Set up knowledge base?",
|
|
2665
2692
|
default: true
|
|
2666
2693
|
});
|
|
2667
2694
|
if (!proceed) {
|
|
2668
2695
|
log.info("Skipped.");
|
|
2669
2696
|
return;
|
|
2670
2697
|
}
|
|
2671
|
-
const { runInstall } = await import("./install-
|
|
2698
|
+
const { runInstall } = await import("./install-H6GW4P6K.js");
|
|
2672
2699
|
await runInstall({});
|
|
2673
2700
|
} else {
|
|
2674
2701
|
const { requireMemoryDeps } = await import("./require-deps-NKRCPVAO.js");
|
|
@@ -2714,7 +2741,7 @@ function createMemoryCommand() {
|
|
|
2714
2741
|
}
|
|
2715
2742
|
|
|
2716
2743
|
// src/cli.ts
|
|
2717
|
-
var program = new Command5().name("claude-launchpad").description("CLI toolkit that makes Claude Code setups measurably good").version("0.
|
|
2744
|
+
var program = new Command5().name("claude-launchpad").description("CLI toolkit that makes Claude Code setups measurably good").version("0.13.1", "-v, --version").action(async () => {
|
|
2718
2745
|
const hasConfig = await fileExists(join11(process.cwd(), "CLAUDE.md")) || await fileExists(join11(process.cwd(), ".claude", "settings.json"));
|
|
2719
2746
|
if (hasConfig) {
|
|
2720
2747
|
await program.commands.find((c) => c.name() === "doctor")?.parseAsync([], { from: "user" });
|