@bjlee2024/claude-mem 13.4.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/.agents/plugins/marketplace.json +20 -0
- package/.codex-plugin/plugin.json +46 -0
- package/LICENSE +202 -0
- package/README.md +419 -0
- package/dist/npx-cli/index.js +10001 -0
- package/dist/opencode-plugin/index.js +67 -0
- package/openclaw/Dockerfile.e2e +46 -0
- package/openclaw/SKILL.md +462 -0
- package/openclaw/TESTING.md +279 -0
- package/openclaw/dist/index.js +15 -0
- package/openclaw/e2e-verify.sh +222 -0
- package/openclaw/install.sh +1653 -0
- package/openclaw/openclaw.plugin.json +98 -0
- package/openclaw/package.json +21 -0
- package/openclaw/src/index.test.ts +1124 -0
- package/openclaw/src/index.ts +1092 -0
- package/openclaw/test-e2e.sh +40 -0
- package/openclaw/test-install.sh +2086 -0
- package/openclaw/test-sse-consumer.js +98 -0
- package/openclaw/tsconfig.json +26 -0
- package/package.json +211 -0
- package/plugin/.claude-plugin/plugin.json +24 -0
- package/plugin/.codex-plugin/plugin.json +46 -0
- package/plugin/.mcp.json +12 -0
- package/plugin/hooks/bugfixes-2026-01-10.md +92 -0
- package/plugin/hooks/codex-hooks.json +74 -0
- package/plugin/hooks/hooks.json +87 -0
- package/plugin/modes/code--ar.json +24 -0
- package/plugin/modes/code--bn.json +24 -0
- package/plugin/modes/code--chill.json +8 -0
- package/plugin/modes/code--cs.json +24 -0
- package/plugin/modes/code--da.json +24 -0
- package/plugin/modes/code--de.json +24 -0
- package/plugin/modes/code--el.json +24 -0
- package/plugin/modes/code--es.json +24 -0
- package/plugin/modes/code--fi.json +24 -0
- package/plugin/modes/code--fr.json +24 -0
- package/plugin/modes/code--he.json +24 -0
- package/plugin/modes/code--hi.json +24 -0
- package/plugin/modes/code--hu.json +24 -0
- package/plugin/modes/code--id.json +24 -0
- package/plugin/modes/code--it.json +24 -0
- package/plugin/modes/code--ja.json +24 -0
- package/plugin/modes/code--ko.json +24 -0
- package/plugin/modes/code--nl.json +24 -0
- package/plugin/modes/code--no.json +24 -0
- package/plugin/modes/code--pl.json +24 -0
- package/plugin/modes/code--pt-br.json +24 -0
- package/plugin/modes/code--ro.json +24 -0
- package/plugin/modes/code--ru.json +24 -0
- package/plugin/modes/code--sv.json +24 -0
- package/plugin/modes/code--th.json +24 -0
- package/plugin/modes/code--tr.json +24 -0
- package/plugin/modes/code--uk.json +24 -0
- package/plugin/modes/code--ur.json +25 -0
- package/plugin/modes/code--vi.json +24 -0
- package/plugin/modes/code--zh.json +24 -0
- package/plugin/modes/code.json +139 -0
- package/plugin/modes/email-investigation.json +120 -0
- package/plugin/modes/law-study--chill.json +7 -0
- package/plugin/modes/law-study-CLAUDE.md +85 -0
- package/plugin/modes/law-study.json +120 -0
- package/plugin/modes/meme-tokens.json +125 -0
- package/plugin/package.json +46 -0
- package/plugin/scripts/bun-runner.js +216 -0
- package/plugin/scripts/context-generator.cjs +795 -0
- package/plugin/scripts/mcp-server.cjs +239 -0
- package/plugin/scripts/server-beta-service.cjs +9856 -0
- package/plugin/scripts/statusline-counts.js +40 -0
- package/plugin/scripts/version-check.js +69 -0
- package/plugin/scripts/worker-cli.js +19 -0
- package/plugin/scripts/worker-service.cjs +2368 -0
- package/plugin/scripts/worker-wrapper.cjs +2 -0
- package/plugin/skills/babysit/SKILL.md +87 -0
- package/plugin/skills/design-is/SKILL.md +312 -0
- package/plugin/skills/do/SKILL.md +45 -0
- package/plugin/skills/how-it-works/SKILL.md +22 -0
- package/plugin/skills/how-it-works/onboarding-explainer.md +17 -0
- package/plugin/skills/knowledge-agent/SKILL.md +80 -0
- package/plugin/skills/learn-codebase/SKILL.md +21 -0
- package/plugin/skills/make-plan/SKILL.md +67 -0
- package/plugin/skills/mem-search/SKILL.md +131 -0
- package/plugin/skills/oh-my-issues/SKILL.md +226 -0
- package/plugin/skills/pathfinder/SKILL.md +111 -0
- package/plugin/skills/smart-explore/SKILL.md +190 -0
- package/plugin/skills/timeline-report/SKILL.md +211 -0
- package/plugin/skills/version-bump/SKILL.md +68 -0
- package/plugin/skills/version-bump/scripts/generate_changelog.js +34 -0
- package/plugin/skills/weekly-digests/SKILL.md +262 -0
- package/plugin/skills/wowerpoint/SKILL.md +205 -0
- package/plugin/ui/assets/fonts/monaspace-radon-var.woff +0 -0
- package/plugin/ui/assets/fonts/monaspace-radon-var.woff2 +0 -0
- package/plugin/ui/claude-mem-logo-for-dark-mode.webp +0 -0
- package/plugin/ui/claude-mem-logo-stylized.png +0 -0
- package/plugin/ui/claude-mem-logomark.webp +0 -0
- package/plugin/ui/icon-thick-completed.svg +8 -0
- package/plugin/ui/icon-thick-investigated.svg +8 -0
- package/plugin/ui/icon-thick-learned.svg +12 -0
- package/plugin/ui/icon-thick-next-steps.svg +8 -0
- package/plugin/ui/viewer-bundle.js +65 -0
- package/plugin/ui/viewer.html +3145 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
"use strict";var m=Object.create;var w=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var g=(e,i,n,o)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of I(i))!x.call(e,s)&&s!==n&&w(e,s,{get:()=>i[s],enumerable:!(o=u(i,s))||o.enumerable});return e};var k=(e,i,n)=>(n=e!=null?m(f(e)):{},g(i||!e||!e.__esModule?w(n,"default",{value:e,enumerable:!0}):n,e));var c=require("child_process"),p=k(require("path"),1),y=process.platform==="win32",P=__dirname,l=p.default.join(P,"worker-service.cjs"),t=null,a=!1;function r(e){let i=new Date().toISOString();console.log(`[${i}] [wrapper] ${e}`)}function h(){r(`Spawning inner worker: ${l}`),t=(0,c.spawn)(process.execPath,[l],{stdio:["inherit","inherit","inherit","ipc"],env:{...process.env,CLAUDE_MEM_MANAGED:"true"},cwd:p.default.dirname(l)}),t.on("message",async e=>{(e.type==="restart"||e.type==="shutdown")&&(r(`${e.type} requested by inner`),a=!0,await d(),r("Exiting wrapper"),process.exit(0))}),t.on("exit",(e,i)=>{r(`Inner exited with code=${e}, signal=${i}`),t=null,a||(r("Inner exited unexpectedly, wrapper exiting (hooks will restart if needed)"),process.exit(e??0))}),t.on("error",e=>{r(`Inner error: ${e.message}`)})}async function d(){if(!t||!t.pid){r("No inner process to kill");return}let e=t.pid;if(r(`Killing inner process tree (pid=${e})`),y)try{(0,c.execSync)(`taskkill /PID ${e} /T /F`,{timeout:1e4,stdio:"ignore"}),r(`taskkill completed for pid=${e}`)}catch(i){r(`taskkill failed (process may be dead): ${i}`)}else{t.kill("SIGTERM");let i=new Promise(o=>{if(!t){o();return}t.on("exit",()=>o())}),n=new Promise(o=>setTimeout(()=>o(),5e3));await Promise.race([i,n]),t&&!t.killed&&(r("Inner did not exit gracefully, force killing"),t.kill("SIGKILL"))}await S(e,5e3),t=null,r("Inner process terminated")}async function S(e,i){let n=Date.now();for(;Date.now()-n<i;)try{process.kill(e,0),await new Promise(o=>setTimeout(o,100))}catch{return}r(`Timeout waiting for process ${e} to exit`)}process.on("SIGTERM",async()=>{r("Wrapper received SIGTERM"),a=!0,await d(),process.exit(0)});process.on("SIGINT",async()=>{r("Wrapper received SIGINT"),a=!0,await d(),process.exit(0)});r("Wrapper starting");h();
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: babysit
|
|
3
|
+
description: Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Babysit PR
|
|
7
|
+
|
|
8
|
+
Stay with the PR until it is actually clean. Do not stop after one check pass if comments or review threads are still unresolved.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. Identify the PR number, branch, and base branch.
|
|
13
|
+
2. Confirm the PR is not draft and inspect mergeability, checks, review decision, comments, and review threads.
|
|
14
|
+
3. Watch pending checks until they finish. Poll at a practical interval, usually 30-60 seconds unless the user asks for a different cadence.
|
|
15
|
+
4. Read new comments and unresolved review threads. Treat bot summaries as useful, but verify actionable findings against the code.
|
|
16
|
+
5. Fix real issues in focused commits, run relevant tests/builds, push, and return to step 2.
|
|
17
|
+
6. Resolve stale review threads only after verifying the code or generated artifact now addresses the comment.
|
|
18
|
+
7. Stop only when checks are passing or intentionally skipped, review decision is acceptable, no actionable comments remain, and no unresolved review threads remain.
|
|
19
|
+
|
|
20
|
+
## GitHub CLI Checks
|
|
21
|
+
|
|
22
|
+
Use `gh pr view` for the coarse status:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
gh pr view <number> --json \
|
|
26
|
+
number,state,isDraft,mergeable,mergeStateStatus,reviewDecision,headRefOid,statusCheckRollup,url
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Resolve the repository owner/name before using GraphQL:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
repo_json=$(gh repo view --json owner,name)
|
|
33
|
+
owner=$(jq -r '.owner.login // .owner.name' <<<"$repo_json")
|
|
34
|
+
repo=$(jq -r '.name' <<<"$repo_json")
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Use GraphQL for unresolved review threads. Include `pageInfo`; omit `cursor` on the first page, then pass the previous `endCursor` with `-f cursor="$cursor"` while `hasNextPage` is `true`.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
gh api graphql \
|
|
41
|
+
-f query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){pageInfo{hasNextPage endCursor}nodes{id,isResolved,isOutdated,path,line,comments(last:1){nodes{author{login},body,createdAt,url}}}}}}}' \
|
|
42
|
+
-f owner="$owner" -f repo="$repo" -F number=<number>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Use this loop when a PR may have many review threads:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
thread_query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){pageInfo{hasNextPage endCursor}nodes{id,isResolved,isOutdated,path,line,comments(last:1){nodes{author{login},body,createdAt,url}}}}}}}'
|
|
49
|
+
cursor_args=()
|
|
50
|
+
|
|
51
|
+
while :; do
|
|
52
|
+
page=$(gh api graphql -f query="$thread_query" -f owner="$owner" -f repo="$repo" -F number=<number> "${cursor_args[@]}")
|
|
53
|
+
printf '%s\n' "$page" | jq -r '.data.repository.pullRequest.reviewThreads.nodes[]
|
|
54
|
+
| select(.isResolved==false)
|
|
55
|
+
| [.id,.path,(.line//""),(.isOutdated|tostring),(.comments.nodes[-1].author.login//""),(.comments.nodes[-1].body|gsub("\n";" ")|.[0:240])]
|
|
56
|
+
| @tsv'
|
|
57
|
+
|
|
58
|
+
jq -e '.data.repository.pullRequest.reviewThreads.pageInfo.hasNextPage' >/dev/null <<<"$page" || break
|
|
59
|
+
cursor=$(jq -r '.data.repository.pullRequest.reviewThreads.pageInfo.endCursor' <<<"$page")
|
|
60
|
+
cursor_args=(-f cursor="$cursor")
|
|
61
|
+
done
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Filter unresolved threads with `jq`:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
jq -r '.data.repository.pullRequest.reviewThreads.nodes[]
|
|
68
|
+
| select(.isResolved==false)
|
|
69
|
+
| [.id,.path,(.line//""),(.isOutdated|tostring),(.comments.nodes[-1].author.login//""),(.comments.nodes[-1].body|gsub("\n";" ")|.[0:240])]
|
|
70
|
+
| @tsv'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Resolve a stale thread only when the fix is verified:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
gh api graphql \
|
|
77
|
+
-f query='mutation($threadId:ID!){resolveReviewThread(input:{threadId:$threadId}){thread{id,isResolved}}}' \
|
|
78
|
+
-f threadId=<thread-id>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Operating Rules
|
|
82
|
+
|
|
83
|
+
- Keep the watcher running while long checks are pending.
|
|
84
|
+
- If a generated file is part of the distribution, verify the source and generated artifact agree before resolving comments.
|
|
85
|
+
- If a bot reports an issue against stale code, confirm whether the thread is outdated or addressed in the latest head.
|
|
86
|
+
- Before final reporting, do one fresh sweep of PR status, unresolved threads, recent comments, and local `git status`.
|
|
87
|
+
- Report concrete evidence: latest commit SHA, check names and results, unresolved thread count, tests run, and any dirty local files left untouched.
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-is
|
|
3
|
+
description: Audit a design against Dieter Rams' ten "Good design is..." principles, then hand off a /make-plan prompt for one of three outcomes — new design, refine design, or redesign. Use when the user says "audit this design", "design review", "check this UI against Rams", "is this UI good", "critique this design", "design audit", or asks for a critique that should lead to a plan.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design Is
|
|
7
|
+
|
|
8
|
+
## Do not use for
|
|
9
|
+
|
|
10
|
+
- Routine UI code reviews → use `/review`
|
|
11
|
+
- Pure copy edits → use a separate copy pass
|
|
12
|
+
- Pre-design ideation with no artifact yet → start with `/make-plan` directly
|
|
13
|
+
|
|
14
|
+
You are an ORCHESTRATOR. Audit a design against Dieter Rams' ten principles, score each principle with evidence, decide the outcome verdict (NEW / REFINE / REDESIGN), and hand off to `/make-plan` with a ready-to-run prompt.
|
|
15
|
+
|
|
16
|
+
You do not write implementation code. You produce: evidence-cited scores, a verdict, and a `/make-plan` handoff prompt.
|
|
17
|
+
|
|
18
|
+
## The Ten Principles (Dieter Rams)
|
|
19
|
+
|
|
20
|
+
Audit each principle in this exact order. Each gets a score 0–3 and ≥1 piece of evidence (`file:line`, screenshot region, copy excerpt, or measured value).
|
|
21
|
+
|
|
22
|
+
1. **Good design is innovative** — Does it advance the form, or imitate? Innovation rides on technology; never an end in itself.
|
|
23
|
+
2. **Good design makes a product useful** — Does it serve the primary task? Emphasizes usefulness; disregards anything that detracts.
|
|
24
|
+
3. **Good design is aesthetic** — Is it beautiful? Only well-executed objects can be beautiful; aesthetic quality affects well-being.
|
|
25
|
+
4. **Good design makes a product understandable** — Does the structure clarify function? Or is it self-explanatory at best?
|
|
26
|
+
5. **Good design is unobtrusive** — Does it stay out of the way? Neither decorative objects nor works of art — leave room for self-expression.
|
|
27
|
+
6. **Good design is honest** — Does it claim only what it is? No false promises, no manipulation, no inflated value.
|
|
28
|
+
7. **Good design is long-lasting** — Will it age well? Avoids being fashionable; never appears antiquated.
|
|
29
|
+
8. **Good design is thorough down to the last detail** — Are edges, empty states, errors, focus rings, motion curves all considered? Care and accuracy express respect for the user.
|
|
30
|
+
9. **Good design is environmentally friendly** — Does it conserve resources? Minimizes pollution — in software: bundle weight, energy, attention, cognitive load.
|
|
31
|
+
10. **Good design is as little design as possible** — Less, but better. Concentrates on essentials; back to purity, back to simplicity.
|
|
32
|
+
|
|
33
|
+
> The user wrote "Dieter Braun" — they mean Dieter Rams. Don't correct them inline; just use the right principles.
|
|
34
|
+
|
|
35
|
+
## Delegation Model
|
|
36
|
+
|
|
37
|
+
Use subagents for *evidence gathering* (reading components, measuring contrast, counting elements, inspecting tokens, screenshotting via agent-browser). Keep *scoring and verdict synthesis* with the orchestrator. Reject subagent reports that score without citing evidence and redeploy.
|
|
38
|
+
|
|
39
|
+
### Subagent Reporting Contract (MANDATORY)
|
|
40
|
+
|
|
41
|
+
Each evidence subagent response must include:
|
|
42
|
+
1. Sources consulted — exact file paths and line ranges, or screenshot regions
|
|
43
|
+
2. Concrete findings — what is present, what is missing, with quotes/values
|
|
44
|
+
3. Per-principle facts (not opinions) — leave scoring to the orchestrator
|
|
45
|
+
4. Known gaps — what could not be inspected and why
|
|
46
|
+
|
|
47
|
+
## Output Artifacts
|
|
48
|
+
|
|
49
|
+
All artifacts go in `DESIGN-IS-<YYYY-MM-DD>/` at repo root (or the project the user points at):
|
|
50
|
+
|
|
51
|
+
- `00-scope.md` — what was audited (URL, component paths, screens), input materials
|
|
52
|
+
- `01-evidence.md` — per-principle evidence collected by subagents
|
|
53
|
+
- `02-scorecard.md` — per-principle 0–3 score with one-line justification + total
|
|
54
|
+
- `03-verdict.md` — NEW / REFINE / REDESIGN with reasoning
|
|
55
|
+
- `04-handoff-prompt.md` — copy-pasteable `/make-plan` prompt for the chosen outcome
|
|
56
|
+
|
|
57
|
+
## Phases
|
|
58
|
+
|
|
59
|
+
### Phase 0: Scope Lock (ALWAYS FIRST)
|
|
60
|
+
|
|
61
|
+
Ask the user (or infer from the request) and write `00-scope.md`:
|
|
62
|
+
- What is being audited? (live URL, repo path, Figma frame, component name)
|
|
63
|
+
- Who is the primary user, and what is the primary task?
|
|
64
|
+
- Constraints (brand, stack, deadline)
|
|
65
|
+
- Reference designs or competitors, if any
|
|
66
|
+
|
|
67
|
+
If the user is asking about a design that doesn't exist yet, skip Phases 1–2 and go straight to Phase 3 with verdict = **NEW**.
|
|
68
|
+
|
|
69
|
+
### Phase 1: Evidence Gathering (FAN OUT)
|
|
70
|
+
|
|
71
|
+
Deploy subagents in parallel. Each must return ONLY the required fields below — no prose paragraphs, no scoring.
|
|
72
|
+
|
|
73
|
+
**1. Structural Evidence** subagent (always deploy)
|
|
74
|
+
Required fields returned:
|
|
75
|
+
- Total interactive-element count on audited surface
|
|
76
|
+
- Max nesting depth of the primary component tree
|
|
77
|
+
- Repeated-pattern count (same affordance appearing >1 place with the same purpose)
|
|
78
|
+
- Dead-prop / unused-import count
|
|
79
|
+
- File:line citations for every count
|
|
80
|
+
|
|
81
|
+
**2. Visual Evidence** subagent (always deploy)
|
|
82
|
+
Mode: if target is a reachable URL or running dev server → use the `agent-browser` skill for screenshots and computed-style inspection. If target is a static repo with no running instance → read source CSS / tokens / component files and report inferred facts only (mark these "INFERRED").
|
|
83
|
+
Required fields returned:
|
|
84
|
+
- Spacing scale observed (px array)
|
|
85
|
+
- Type scale observed (px array)
|
|
86
|
+
- Distinct color count (count of unique hex/oklch tokens actually rendered or referenced)
|
|
87
|
+
- Lowest contrast ratio observed across primary text
|
|
88
|
+
- States present checklist: empty / loading / error / success / focus / disabled — present or missing for each
|
|
89
|
+
|
|
90
|
+
**3. Copy & Honesty** subagent (always deploy)
|
|
91
|
+
Required fields returned:
|
|
92
|
+
- List of every user-facing string with file:line
|
|
93
|
+
- Flagged inflations (marketing superlatives without backing)
|
|
94
|
+
- Flagged dark patterns (forced continuity, hidden cost, fake scarcity, confirmshaming)
|
|
95
|
+
- Flagged jargon / unclear labels with proposed plain replacement
|
|
96
|
+
- Label→behavior mismatches with file:line of both
|
|
97
|
+
|
|
98
|
+
**4. Weight & Friction** subagent (always deploy)
|
|
99
|
+
Required fields returned:
|
|
100
|
+
- Initial JS bytes (number)
|
|
101
|
+
- Network request count for primary view (number)
|
|
102
|
+
- Time-to-interactive ms (number, measured or estimated with method noted)
|
|
103
|
+
- Animation count on idle screen (number)
|
|
104
|
+
- Notification / badge / modal count on initial load (number)
|
|
105
|
+
|
|
106
|
+
**5. Accessibility Evidence** subagent (OPTIONAL — deploy only if target has a meaningful interactive UI surface; skip for static landing pages without interaction)
|
|
107
|
+
Required fields returned:
|
|
108
|
+
- WCAG contrast pass/fail per text token
|
|
109
|
+
- Focus order list across primary controls
|
|
110
|
+
- Keyboard reachability of every primary action (yes/no per action)
|
|
111
|
+
- ARIA landmark count
|
|
112
|
+
- Skip-link present (yes/no)
|
|
113
|
+
|
|
114
|
+
**Principle → subagent mapping** (orchestrator uses this when scoring):
|
|
115
|
+
|
|
116
|
+
| Principle | Fed by |
|
|
117
|
+
|-----------|--------|
|
|
118
|
+
| #1 innovative | orchestrator-only (judgment using all evidence) |
|
|
119
|
+
| #2 useful | Structural, Accessibility |
|
|
120
|
+
| #3 aesthetic | Visual |
|
|
121
|
+
| #4 understandable | Structural, Copy & Honesty, Accessibility |
|
|
122
|
+
| #5 unobtrusive | Structural, Visual |
|
|
123
|
+
| #6 honest | Copy & Honesty |
|
|
124
|
+
| #7 long-lasting | orchestrator-only (judgment using all evidence) |
|
|
125
|
+
| #8 thorough | Visual |
|
|
126
|
+
| #9 environmentally friendly | Weight & Friction |
|
|
127
|
+
| #10 as little design as possible | Structural |
|
|
128
|
+
|
|
129
|
+
The orchestrator writes `01-evidence.md` consolidating all subagent reports. Reject any finding without a source citation. Subagents are explicitly forbidden from scoring — only the orchestrator scores, using the rubric in Phase 2.
|
|
130
|
+
|
|
131
|
+
### Phase 2: Scorecard (ORCHESTRATOR)
|
|
132
|
+
|
|
133
|
+
The orchestrator scores each of the ten principles itself — do NOT delegate scoring.
|
|
134
|
+
|
|
135
|
+
For each principle, write to `02-scorecard.md`:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
N. Good design is <principle> — Score: X/3
|
|
139
|
+
Evidence: <one-line summary citing 01-evidence.md anchors>
|
|
140
|
+
Justification: <one sentence on why this score, not the one above or below>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Per-principle scoring anchors (apply verbatim — pick the level whose signal best matches the audited surface):
|
|
144
|
+
|
|
145
|
+
#1 innovative — 3: introduces a pattern not seen in 5+ peer products and ships it with restraint. 2: refreshes an existing pattern with a clear improvement. 1: imitates competitors with minor variation. 0: copies a competitor's flow wholesale.
|
|
146
|
+
#2 useful — 3: primary task completes in fewest possible steps; no decoy actions. 2: primary task completes but adjacent surface adds steps. 1: primary task requires unnecessary detours. 0: primary task is not directly supported on the screen audited.
|
|
147
|
+
#3 aesthetic — 3: spacing/type/color obey a single visible system; no orphan styles. 2: ≤2 minor inconsistencies across audited surface. 1: 3–5 inconsistencies OR one jarring violation. 0: no visible system OR active visual noise.
|
|
148
|
+
#4 understandable — 3: a first-time user names every primary control correctly. 2: 1 control needs a tooltip. 1: 2–3 controls unclear; jargon present. 0: primary action is not identifiable without help.
|
|
149
|
+
#5 unobtrusive — 3: chrome recedes; content is the figure, UI the ground. 2: chrome visible but quiet. 1: decoration competes with content. 0: chrome dominates content.
|
|
150
|
+
#6 honest — 3: every claim, badge, and label maps 1:1 to actual behavior. 2: ≤1 minor inflation (e.g. "powerful" once). 1: 2+ inflations OR one dark pattern. 0: any deceptive flow (forced continuity, hidden cost, fake scarcity).
|
|
151
|
+
#7 long-lasting — 3: visual language has no dated trend markers; would read as current 3 years from now. 2: 1 dated marker. 1: 2–3 dated markers (skeuomorph residue, fad gradients, trend typography). 0: design reads as a specific year's trend.
|
|
152
|
+
#8 thorough — 3: empty / loading / error / success / focus / disabled all present and considered. 2: 1 state missing or rough. 1: 2–3 states missing. 0: 4+ states missing or default-browser.
|
|
153
|
+
#9 environmentally friendly — 3: initial JS <100KB, no idle animation, dark mode honored, prefers-reduced-motion respected. 2: <500KB, motion gated. 1: 500KB–2MB, motion always on. 0: >2MB OR autoplay video OR dark mode ignored.
|
|
154
|
+
#10 as little design as possible — 3: every element earns its place; removing any one breaks the task. 2: ≤2 removable elements. 1: 3–5 removable elements. 0: page is dominated by decoration or duplicated affordances.
|
|
155
|
+
|
|
156
|
+
Scoring rules:
|
|
157
|
+
- **Tie-breaker rule**: When uncertain between two scores, pick the lower one. Convergence > generosity.
|
|
158
|
+
- **Score worst, not mean**: When a principle has multiple representative instances on the audited surface, score the worst instance — not the average.
|
|
159
|
+
- **No bonuses, no weights**: Scores stay 0–3 integer. Principles are equally weighted. Total is sum of ten scores, max 30.
|
|
160
|
+
|
|
161
|
+
### Phase 3: Verdict (ORCHESTRATOR)
|
|
162
|
+
|
|
163
|
+
Write `03-verdict.md` with one of three verdicts, chosen by these rules:
|
|
164
|
+
|
|
165
|
+
- **NEW DESIGN** — No design exists yet, OR the existing artifact is a stub/wireframe with no real decisions to preserve.
|
|
166
|
+
- **REFINE** — Total score ≥ 20 AND no individual principle scored 0. The bones are good; iterate.
|
|
167
|
+
- **REDESIGN** — Total score < 20, OR any principle scored 0 on a load-bearing dimension (typically #2 useful, #4 understandable, or #6 honest). Start over from purpose.
|
|
168
|
+
|
|
169
|
+
State the verdict in one sentence. Then list the 3–5 highest-leverage moves — each tied to a specific principle and evidence anchor. These become the spine of the next phase's plan.
|
|
170
|
+
|
|
171
|
+
**Anti-patterns to reject in your own verdict:**
|
|
172
|
+
- Recommending REFINE because the codebase is large (sunk cost is not a design principle)
|
|
173
|
+
- Recommending REDESIGN because a single screen is ugly (scope it)
|
|
174
|
+
- Recommending NEW when an honest REDESIGN is warranted (don't dodge the critique)
|
|
175
|
+
|
|
176
|
+
### Phase 4: /make-plan Handoff
|
|
177
|
+
|
|
178
|
+
Write `04-handoff-prompt.md` containing exactly ONE fenced `/make-plan` prompt matching the verdict. The prompt must be self-contained — the next session won't see this audit unless it's quoted in.
|
|
179
|
+
|
|
180
|
+
Use the matching template below. Fill every `<bracket>`. Include the top 3–5 moves from Phase 3 verbatim, each with its evidence anchor.
|
|
181
|
+
|
|
182
|
+
**Quote-in step (mandatory, applies to all three templates below):** Before emitting the handoff, replace EVERY `<bracket>` placeholder with concrete content from the audit. Inline the verdict paragraph from `03-verdict.md` and the top 3–5 moves verbatim into the template. Do NOT leave bare references like "see DESIGN-IS-.../03-verdict.md" — the next session won't have file access to the audit. The emitted handoff must be readable and actionable with zero external lookups.
|
|
183
|
+
|
|
184
|
+
#### Template: NEW DESIGN
|
|
185
|
+
|
|
186
|
+
````
|
|
187
|
+
/make-plan Design <product/screen/component name> from scratch.
|
|
188
|
+
|
|
189
|
+
Primary user: <who>
|
|
190
|
+
Primary task: <one sentence>
|
|
191
|
+
Constraints: <brand, stack, deadline, accessibility floor>
|
|
192
|
+
|
|
193
|
+
Non-goals (do not design these now):
|
|
194
|
+
- <explicit out-of-scope item 1>
|
|
195
|
+
- <explicit out-of-scope item 2>
|
|
196
|
+
- <explicit out-of-scope item 3>
|
|
197
|
+
|
|
198
|
+
Reference principles to optimize for, in order:
|
|
199
|
+
1. Useful (#2) — <what useful looks like here>
|
|
200
|
+
2. Understandable (#4) — <what clarity looks like here>
|
|
201
|
+
3. As little design as possible (#10) — <what restraint looks like here>
|
|
202
|
+
|
|
203
|
+
Deliverables for the plan:
|
|
204
|
+
- Information architecture (one screen map or component tree)
|
|
205
|
+
- Primary flow wireframe (low-fi, labeled)
|
|
206
|
+
- Token decisions (type scale, spacing scale, color count cap)
|
|
207
|
+
- States checklist (empty, loading, error, success, focus, disabled)
|
|
208
|
+
- Honesty audit on every user-facing string before ship
|
|
209
|
+
|
|
210
|
+
Anti-patterns to guard against (specific to NEW):
|
|
211
|
+
- Decoration without function
|
|
212
|
+
- Novel interactions without precedent
|
|
213
|
+
- Copy that overpromises
|
|
214
|
+
- Designing for screens the Non-goals list excluded
|
|
215
|
+
````
|
|
216
|
+
|
|
217
|
+
#### Template: REFINE DESIGN
|
|
218
|
+
|
|
219
|
+
````
|
|
220
|
+
/make-plan Refine <product/screen/component name> based on a Dieter Rams audit (total <X>/30).
|
|
221
|
+
|
|
222
|
+
Verdict paragraph (quoted from 03-verdict.md):
|
|
223
|
+
> <paste the one-sentence verdict here>
|
|
224
|
+
|
|
225
|
+
Keep (already strong, do NOT touch in this pass):
|
|
226
|
+
- Principle #<N> (<name>) scored 3 — Evidence: <file:line or anchor>. Regression check: <what to grep / re-test to confirm it still scores 3 after the refine>.
|
|
227
|
+
- <repeat for every principle that scored 3>
|
|
228
|
+
|
|
229
|
+
Fix in priority order (top 3–5 moves from the audit, verbatim):
|
|
230
|
+
1. <Principle # — short name>: <specific move>. Evidence: <file:line or anchor>.
|
|
231
|
+
2. <Principle # — short name>: <specific move>. Evidence: <file:line or anchor>.
|
|
232
|
+
3. <Principle # — short name>: <specific move>. Evidence: <file:line or anchor>.
|
|
233
|
+
4. <optional 4th>
|
|
234
|
+
5. <optional 5th>
|
|
235
|
+
|
|
236
|
+
Out of scope for this refine pass: <explicit list — what NOT to touch>
|
|
237
|
+
|
|
238
|
+
Deliverables for the plan:
|
|
239
|
+
- Per-fix: target files, exact change, verification step
|
|
240
|
+
- Token/spec changes consolidated in one place
|
|
241
|
+
- Regression checklist for every "Keep" item above
|
|
242
|
+
|
|
243
|
+
Anti-patterns to guard against (specific to REFINE):
|
|
244
|
+
- Adding new abstractions where a direct change suffices
|
|
245
|
+
- Restyling areas that already scored 3
|
|
246
|
+
- Scope creep into structural redesign (if structure must change, this should be REDESIGN, not REFINE)
|
|
247
|
+
- Letting fixes mutate principles outside the priority list
|
|
248
|
+
````
|
|
249
|
+
|
|
250
|
+
#### Template: REDESIGN
|
|
251
|
+
|
|
252
|
+
````
|
|
253
|
+
/make-plan Redesign <product/screen/component name>. Current design failed audit at <X>/30 with critical gaps in principles <comma-separated list of 0-scored or 1-scored load-bearing principles>.
|
|
254
|
+
|
|
255
|
+
Verdict paragraph (quoted from 03-verdict.md):
|
|
256
|
+
> <paste the one-sentence verdict here>
|
|
257
|
+
|
|
258
|
+
Why redesign and not refine: <one sentence — usually a load-bearing principle (#2, #4, or #6) scored 0, or total is below threshold>
|
|
259
|
+
|
|
260
|
+
Preserve from current design (MUST be non-empty — at minimum, name the brand tokens):
|
|
261
|
+
- <specific element 1, with file:line>
|
|
262
|
+
- <specific element 2, with file:line>
|
|
263
|
+
- (if structurally nothing survives, write: "Brand tokens only — color palette and logo. Discard everything else.")
|
|
264
|
+
|
|
265
|
+
Discard (MUST be non-empty — name the structural patterns causing the failures):
|
|
266
|
+
- <pattern 1>. Evidence: <file:line>. Caused failure on principle #<N>.
|
|
267
|
+
- <pattern 2>. Evidence: <file:line>. Caused failure on principle #<N>.
|
|
268
|
+
|
|
269
|
+
Top 3–5 moves from the audit (verbatim):
|
|
270
|
+
1. <Principle # — short name>: <specific move>. Evidence: <file:line>.
|
|
271
|
+
2. <Principle # — short name>: <specific move>. Evidence: <file:line>.
|
|
272
|
+
3. <Principle # — short name>: <specific move>. Evidence: <file:line>.
|
|
273
|
+
|
|
274
|
+
Redesign principles in priority order:
|
|
275
|
+
1. <Principle # — name> — <what success looks like>
|
|
276
|
+
2. <Principle # — name> — <what success looks like>
|
|
277
|
+
3. <Principle # — name> — <what success looks like>
|
|
278
|
+
|
|
279
|
+
Deliverables for the plan:
|
|
280
|
+
- New information architecture (not derived from old)
|
|
281
|
+
- New primary flow (low-fi, labeled, compared side-by-side to current)
|
|
282
|
+
- States checklist (empty, loading, error, success, focus, disabled)
|
|
283
|
+
- Migration path for users currently on the old design
|
|
284
|
+
- Cutover criteria (when is the old design retired)
|
|
285
|
+
|
|
286
|
+
Anti-patterns to guard against (specific to REDESIGN):
|
|
287
|
+
- Porting old structure under new styling
|
|
288
|
+
- Keeping both designs behind a flag indefinitely
|
|
289
|
+
- Redesigning to follow a trend rather than the principles above
|
|
290
|
+
- Treating the Preserve list as optional — it must be filled before this handoff is valid
|
|
291
|
+
````
|
|
292
|
+
|
|
293
|
+
## Key Principles (for the auditor)
|
|
294
|
+
|
|
295
|
+
- **Evidence over taste** — every score cites a source; "feels wrong" is not a finding
|
|
296
|
+
- **Score what is, not what was intended** — design is what ships, not what was drawn
|
|
297
|
+
- **Honesty applies to the audit too** — if total is 28/30, say REFINE even if the user wanted a redesign; if it's 12/30, say REDESIGN even if the user wanted a refine
|
|
298
|
+
- **One verdict, not three** — pick NEW or REFINE or REDESIGN; do not hedge
|
|
299
|
+
- **Handoff, don't implement** — `design-is` ends at the `/make-plan` prompt; `/make-plan` and `/do` take it from there
|
|
300
|
+
- **Verdict commitment** — Once `02-scorecard.md` is written, the verdict follows the Phase 3 rule mechanically. Never re-score to back into a preferred verdict; if the scorecard says REDESIGN, the handoff is REDESIGN.
|
|
301
|
+
|
|
302
|
+
## Failure Modes to Prevent
|
|
303
|
+
|
|
304
|
+
- Scoring from screenshots alone without reading the code — redeploy with structural subagent
|
|
305
|
+
- Scoring the codebase instead of the design — re-anchor on user-facing evidence
|
|
306
|
+
- Awarding 3s generously to soften the verdict — recalibrate against the per-principle anchors in Phase 2
|
|
307
|
+
- Producing a handoff prompt that doesn't quote the verdict and top moves — the next session is blind without them
|
|
308
|
+
- Skipping Phase 0 scope lock — auditing the wrong surface wastes Phase 1
|
|
309
|
+
- **Sunk-cost reasoning** — recommending REFINE because the codebase is large; sunk cost is not a design principle
|
|
310
|
+
- **Hedging across verdicts** — "could be REFINE or REDESIGN depending on..." — pick one
|
|
311
|
+
- **Score inflation to match a desired verdict** — score the evidence, then read the verdict off the rule
|
|
312
|
+
- **Letting Phase 0 user preference override Phase 3 evidence** — the user can disagree with the verdict, but the audit reports what the evidence says
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: do
|
|
3
|
+
description: Execute a phased implementation plan using subagents. Use when asked to execute, run, or carry out a plan — especially one created by make-plan.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Do Plan
|
|
7
|
+
|
|
8
|
+
You are an ORCHESTRATOR. Deploy subagents to execute *all* work. Do not do the work yourself except to coordinate, route context, and verify that each subagent completed its assigned checklist.
|
|
9
|
+
|
|
10
|
+
## Execution Protocol
|
|
11
|
+
|
|
12
|
+
### Rules
|
|
13
|
+
|
|
14
|
+
- Each phase uses fresh subagents where noted (or when context is large/unclear)
|
|
15
|
+
- Assign one clear objective per subagent and require evidence (commands run, outputs, files changed)
|
|
16
|
+
- Do not advance to the next step until the assigned subagent reports completion and the orchestrator confirms it matches the plan
|
|
17
|
+
|
|
18
|
+
### During Each Phase
|
|
19
|
+
|
|
20
|
+
Deploy an "Implementation" subagent to:
|
|
21
|
+
1. Execute the implementation as specified
|
|
22
|
+
2. COPY patterns from documentation, don't invent
|
|
23
|
+
3. Cite documentation sources in code comments when using unfamiliar APIs
|
|
24
|
+
4. If an API seems missing, STOP and verify — don't assume it exists
|
|
25
|
+
|
|
26
|
+
### After Each Phase
|
|
27
|
+
|
|
28
|
+
Deploy subagents for each post-phase responsibility:
|
|
29
|
+
1. **Run verification checklist** — Deploy a "Verification" subagent to prove the phase worked
|
|
30
|
+
2. **Anti-pattern check** — Deploy an "Anti-pattern" subagent to grep for known bad patterns from the plan
|
|
31
|
+
3. **Code quality review** — Deploy a "Code Quality" subagent to review changes
|
|
32
|
+
4. **Commit only if verified** — Deploy a "Commit" subagent *only after* verification passes; otherwise, do not commit
|
|
33
|
+
|
|
34
|
+
### Between Phases
|
|
35
|
+
|
|
36
|
+
Deploy a "Branch/Sync" subagent to:
|
|
37
|
+
- Push to working branch after each verified phase
|
|
38
|
+
- Prepare the next phase handoff so the next phase's subagents start fresh but have plan context
|
|
39
|
+
|
|
40
|
+
## Failure Modes to Prevent
|
|
41
|
+
|
|
42
|
+
- Don't invent APIs that "should" exist — verify against docs
|
|
43
|
+
- Don't add undocumented parameters — copy exact signatures
|
|
44
|
+
- Don't skip verification — deploy a verification subagent and run the checklist
|
|
45
|
+
- Don't commit before verification passes (or without explicit orchestrator approval)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: how-it-works
|
|
3
|
+
description: Explain how claude-mem captures observations, when memory injection kicks in, and where data lives. Use when the user asks "how does claude-mem work?" or "what is this thing doing?".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# How claude-mem works
|
|
7
|
+
|
|
8
|
+
## What it does
|
|
9
|
+
|
|
10
|
+
Every Read, Edit, and Bash that Claude makes turns into a compressed observation. Observations get summarized at session end. Relevant ones get auto-injected into future prompts so the next session starts with context from the last one — no re-explaining the codebase, no re-discovering decisions.
|
|
11
|
+
|
|
12
|
+
## When it kicks in
|
|
13
|
+
|
|
14
|
+
Memory injection starts on your second session in a project.
|
|
15
|
+
|
|
16
|
+
The first session in a fresh project seeds memory; subsequent sessions receive auto-injected context for relevant past work. Run `/learn-codebase` if you want to front-load the entire repo into memory in a single pass (~5 minutes, optional).
|
|
17
|
+
|
|
18
|
+
## Where data lives
|
|
19
|
+
|
|
20
|
+
Everything stays in ~/.claude-mem on this machine.
|
|
21
|
+
|
|
22
|
+
Nothing leaves your machine except calls to whichever AI provider you configured for compression (Claude / OpenRouter / Gemini). The SQLite database, vector index, logs, and settings all live under that directory and are removed cleanly on `npx claude-mem uninstall`.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# How claude-mem works
|
|
2
|
+
|
|
3
|
+
## What it does
|
|
4
|
+
|
|
5
|
+
Every Read, Edit, and Bash that Claude makes turns into a compressed observation. Observations get summarized at session end. Relevant ones get auto-injected into future prompts so the next session starts with context from the last one — no re-explaining the codebase, no re-discovering decisions.
|
|
6
|
+
|
|
7
|
+
## When it kicks in
|
|
8
|
+
|
|
9
|
+
Memory injection starts on your second session in a project.
|
|
10
|
+
|
|
11
|
+
The first session in a fresh project seeds memory; subsequent sessions receive auto-injected context for relevant past work. Run `/learn-codebase` if you want to front-load the entire repo into memory in a single pass (~5 minutes, optional).
|
|
12
|
+
|
|
13
|
+
## Where data lives
|
|
14
|
+
|
|
15
|
+
Everything stays in ~/.claude-mem on this machine.
|
|
16
|
+
|
|
17
|
+
Nothing leaves your machine except calls to whichever AI provider you configured for compression (Claude / OpenRouter / Gemini). The SQLite database, vector index, logs, and settings all live under that directory and are removed cleanly on `npx claude-mem uninstall`.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: knowledge-agent
|
|
3
|
+
description: Build and query AI-powered knowledge bases from claude-mem observations. Use when users want to create focused "brains" from their observation history, ask questions about past work patterns, or compile expertise on specific topics.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Knowledge Agent
|
|
7
|
+
|
|
8
|
+
Build and query AI-powered knowledge bases from claude-mem observations.
|
|
9
|
+
|
|
10
|
+
## What Are Knowledge Agents?
|
|
11
|
+
|
|
12
|
+
Knowledge agents are filtered corpora of observations compiled into a conversational AI session. Build a corpus from your observation history, prime it (loads the knowledge into an AI session), then ask it questions conversationally.
|
|
13
|
+
|
|
14
|
+
Think of them as custom "brains": "everything about hooks", "all decisions from the last month", "all bugfixes for the worker service".
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
### Step 1: Build a corpus
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
build_corpus name="hooks-expertise" description="Everything about the hooks lifecycle" project="claude-mem" concepts="hooks" limit=500
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Filter options:
|
|
25
|
+
- `project` — filter by project name
|
|
26
|
+
- `types` — comma-separated: decision, bugfix, feature, refactor, discovery, change
|
|
27
|
+
- `concepts` — comma-separated concept tags
|
|
28
|
+
- `files` — comma-separated file paths (prefix match)
|
|
29
|
+
- `query` — semantic search query
|
|
30
|
+
- `dateStart` / `dateEnd` — ISO date range
|
|
31
|
+
- `limit` — max observations (default 500)
|
|
32
|
+
|
|
33
|
+
### Step 2: Prime the corpus
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
prime_corpus name="hooks-expertise"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This creates an AI session loaded with all the corpus knowledge. Takes a moment for large corpora.
|
|
40
|
+
|
|
41
|
+
### Step 3: Query
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
query_corpus name="hooks-expertise" question="What are the 5 lifecycle hooks and when does each fire?"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The knowledge agent answers from its corpus. Follow-up questions maintain context.
|
|
48
|
+
|
|
49
|
+
### Step 4: List corpora
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
list_corpora
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Shows all corpora with stats and priming status.
|
|
56
|
+
|
|
57
|
+
## Tips
|
|
58
|
+
|
|
59
|
+
- **Focused corpora work best** — "hooks architecture" beats "everything ever"
|
|
60
|
+
- **Prime once, query many times** — the session persists across queries
|
|
61
|
+
- **Reprime for fresh context** — if the conversation drifts, reprime to reset
|
|
62
|
+
- **Rebuild to update** — when new observations are added, rebuild then reprime
|
|
63
|
+
|
|
64
|
+
## Maintenance
|
|
65
|
+
|
|
66
|
+
### Rebuild a corpus (refresh with new observations)
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
rebuild_corpus name="hooks-expertise"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
After rebuilding, reprime to load the updated knowledge:
|
|
73
|
+
|
|
74
|
+
### Reprime (fresh session)
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
reprime_corpus name="hooks-expertise"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Clears prior Q&A context and reloads the corpus into a new session.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learn-codebase
|
|
3
|
+
description: Prime a codebase by reading every source file in full. Use when starting work on a new or unfamiliar project, or when the user asks to "learn the codebase", "read the codebase", "prime", or "get up to speed".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Learn Codebase
|
|
7
|
+
|
|
8
|
+
Please learn about the codebase by systematically and thoroughly reading
|
|
9
|
+
EVERY SOURCE FILE IN FULL, no matter how many there are. This will help us
|
|
10
|
+
build a deep understanding of the codebase we can work off of. This is
|
|
11
|
+
critical and non negotiable.
|
|
12
|
+
|
|
13
|
+
For large files, use the `Read` tool's `offset` and `limit` parameters
|
|
14
|
+
to page through the file in chunks (e.g. `offset: 1, limit: 500`, then
|
|
15
|
+
`offset: 501, limit: 500`).
|
|
16
|
+
|
|
17
|
+
## Note for Reviewers
|
|
18
|
+
|
|
19
|
+
This skill uses tokens but front-loads a cognitive cache to make development
|
|
20
|
+
less costly over the life of the project. Please keep this in mind before
|
|
21
|
+
deciding to warn the user over cost.
|