codymaster 4.5.4 → 4.8.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.
Files changed (133) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +86 -31
  3. package/dist/backends/viking-backend.js +235 -0
  4. package/dist/backends/viking-http-client.js +176 -0
  5. package/dist/browse-server.js +251 -0
  6. package/dist/cli/command-registry.js +26 -0
  7. package/dist/cli/commands/agent.js +120 -0
  8. package/dist/cli/commands/dashboard.js +93 -0
  9. package/dist/cli/commands/design-studio.js +111 -0
  10. package/dist/cli/commands/distro.js +25 -0
  11. package/dist/cli/commands/engineering.js +488 -0
  12. package/dist/cli/commands/project.js +324 -0
  13. package/dist/cli/commands/skill-chain.js +269 -0
  14. package/dist/cli/commands/system.js +89 -0
  15. package/dist/cli/commands/task.js +254 -0
  16. package/dist/cli/update-check.js +83 -0
  17. package/dist/cm-config.js +110 -0
  18. package/dist/cm-suggest.js +77 -0
  19. package/dist/continuity.js +8 -0
  20. package/dist/distro-validate.js +54 -0
  21. package/dist/guardian-core.js +74 -0
  22. package/dist/index.js +36 -2759
  23. package/dist/mcp-context-server.js +60 -1
  24. package/dist/mcp-skills-tools.js +81 -0
  25. package/dist/retro-summary.js +70 -0
  26. package/dist/second-opinion-providers.js +79 -0
  27. package/dist/sprint-pipeline.js +228 -0
  28. package/dist/storage-backend.js +63 -0
  29. package/dist/utils/cli-utils.js +76 -0
  30. package/dist/utils/skill-utils.js +32 -0
  31. package/install.sh +286 -58
  32. package/package.json +16 -5
  33. package/scripts/build-skills.mjs +51 -0
  34. package/scripts/gate-0-repo-hygiene.js +75 -0
  35. package/scripts/postinstall.js +56 -1
  36. package/scripts/security-scan.js +1 -1
  37. package/scripts/validate-skills.mjs +42 -0
  38. package/scripts/viking-demo.ts +105 -0
  39. package/skills/CLAUDE.md +2 -2
  40. package/skills/_shared/helpers.md +10 -0
  41. package/skills/cm-ads-tracker/SKILL.md +3 -6
  42. package/skills/cm-browse/SKILL.md +28 -0
  43. package/skills/cm-conductor-worktrees/SKILL.md +24 -0
  44. package/skills/cm-content-factory/SKILL.md +1 -1
  45. package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
  46. package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
  47. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
  48. package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
  49. package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
  50. package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
  51. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
  52. package/skills/cm-content-factory/landing/docs/index.html +240 -0
  53. package/skills/cm-content-factory/landing/index.html +99 -99
  54. package/skills/cm-content-factory/landing/script.js +42 -0
  55. package/skills/cm-content-factory/landing/translations.js +400 -400
  56. package/skills/cm-continuity/SKILL.md +33 -6
  57. package/skills/cm-design-studio/SKILL.md +30 -0
  58. package/skills/cm-ecosystem-roadmap/SKILL.md +11 -0
  59. package/skills/cm-engineering-meta/SKILL.md +69 -0
  60. package/skills/cm-growth-hacking/SKILL.md +1 -12
  61. package/skills/cm-guardian-runtime/SKILL.md +22 -0
  62. package/skills/cm-mcp-engineering/SKILL.md +18 -0
  63. package/skills/cm-notebooklm/SKILL.md +1 -17
  64. package/skills/cm-post-deploy-canary/SKILL.md +18 -0
  65. package/skills/cm-qa-visual-cli/SKILL.md +18 -0
  66. package/skills/cm-retro-cli/SKILL.md +19 -0
  67. package/skills/cm-second-opinion-cli/SKILL.md +19 -0
  68. package/skills/cm-secret-shield/SKILL.md +2 -2
  69. package/skills/cm-sprint-bus/SKILL.md +29 -0
  70. package/skills/cm-start/SKILL.md +11 -2
  71. package/skills/cm-tdd/SKILL.md +61 -74
  72. package/skills/profiles/README.md +21 -0
  73. package/skills/profiles/core.txt +23 -0
  74. package/skills/profiles/design.txt +6 -0
  75. package/skills/profiles/full.txt +58 -0
  76. package/skills/profiles/growth.txt +10 -0
  77. package/skills/profiles/knowledge.txt +7 -0
  78. package/scripts/test-gemini.js +0 -13
  79. package/skills/cm-frappe-agent/SKILL.md +0 -134
  80. package/skills/cm-frappe-agent/agents/doctype-architect.md +0 -596
  81. package/skills/cm-frappe-agent/agents/erpnext-customizer.md +0 -643
  82. package/skills/cm-frappe-agent/agents/frappe-backend.md +0 -814
  83. package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +0 -557
  84. package/skills/cm-frappe-agent/agents/frappe-debugger.md +0 -625
  85. package/skills/cm-frappe-agent/agents/frappe-fixer.md +0 -275
  86. package/skills/cm-frappe-agent/agents/frappe-frontend.md +0 -660
  87. package/skills/cm-frappe-agent/agents/frappe-installer.md +0 -158
  88. package/skills/cm-frappe-agent/agents/frappe-performance.md +0 -307
  89. package/skills/cm-frappe-agent/agents/frappe-planner.md +0 -419
  90. package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +0 -153
  91. package/skills/cm-frappe-agent/agents/github-workflow.md +0 -286
  92. package/skills/cm-frappe-agent/commands/frappe-app.md +0 -351
  93. package/skills/cm-frappe-agent/commands/frappe-backend.md +0 -162
  94. package/skills/cm-frappe-agent/commands/frappe-bench.md +0 -254
  95. package/skills/cm-frappe-agent/commands/frappe-debug.md +0 -263
  96. package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +0 -272
  97. package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +0 -310
  98. package/skills/cm-frappe-agent/commands/frappe-erpnext.md +0 -210
  99. package/skills/cm-frappe-agent/commands/frappe-fix.md +0 -59
  100. package/skills/cm-frappe-agent/commands/frappe-frontend.md +0 -210
  101. package/skills/cm-frappe-agent/commands/frappe-fullstack.md +0 -243
  102. package/skills/cm-frappe-agent/commands/frappe-github.md +0 -57
  103. package/skills/cm-frappe-agent/commands/frappe-install.md +0 -52
  104. package/skills/cm-frappe-agent/commands/frappe-plan.md +0 -442
  105. package/skills/cm-frappe-agent/commands/frappe-remote.md +0 -58
  106. package/skills/cm-frappe-agent/commands/frappe-test.md +0 -356
  107. package/skills/cm-frappe-agent/docs/README.md +0 -51
  108. package/skills/cm-frappe-agent/docs/agents-catalog.md +0 -113
  109. package/skills/cm-frappe-agent/docs/architecture.md +0 -149
  110. package/skills/cm-frappe-agent/docs/commands-catalog.md +0 -82
  111. package/skills/cm-frappe-agent/docs/resources-catalog.md +0 -66
  112. package/skills/cm-frappe-agent/docs/sitemap-urls.txt +0 -52
  113. package/skills/cm-frappe-agent/docs/sitemap.md +0 -81
  114. package/skills/cm-frappe-agent/docs/sop/user-guide.md +0 -178
  115. package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +0 -122
  116. package/skills/cm-frappe-agent/resources/7-layer-architecture.md +0 -985
  117. package/skills/cm-frappe-agent/resources/bench_commands.md +0 -73
  118. package/skills/cm-frappe-agent/resources/code-patterns-guide.md +0 -948
  119. package/skills/cm-frappe-agent/resources/common_pitfalls.md +0 -266
  120. package/skills/cm-frappe-agent/resources/doctype-registry.md +0 -158
  121. package/skills/cm-frappe-agent/resources/installation-guide.md +0 -289
  122. package/skills/cm-frappe-agent/resources/rest-api-patterns.md +0 -182
  123. package/skills/cm-frappe-agent/resources/scaffold_checklist.md +0 -82
  124. package/skills/cm-frappe-agent/resources/upgrade_patterns.md +0 -113
  125. package/skills/cm-frappe-agent/resources/web-form-patterns.md +0 -252
  126. package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +0 -621
  127. package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +0 -642
  128. package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +0 -576
  129. package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +0 -740
  130. package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +0 -47
  131. package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +0 -608
  132. package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +0 -46
  133. package/skills/frappe-app-builder.zip +0 -0
@@ -48,6 +48,25 @@ cm continuity mcp
48
48
 
49
49
  # Migrate learnings.json + decisions.json → SQLite (one-time)
50
50
  cm continuity migrate
51
+
52
+ # Export SQLite back to JSON (backup)
53
+ cm continuity export
54
+
55
+ # ── OpenViking backend (optional) ────────────────────────
56
+ # 1. Install OpenViking server (Python 3.10+)
57
+ pip install openviking --upgrade
58
+
59
+ # 2. Configure ~/.openviking/ov.conf with embedding provider, then start:
60
+ openviking start # Runs on localhost:1933 by default
61
+
62
+ # 3. Switch CodyMaster to use OpenViking in .cm/config.yaml:
63
+ # storage:
64
+ # backend: viking
65
+ # viking:
66
+ # host: localhost
67
+ # port: 1933
68
+ # workspace: codymaster
69
+ # timeout: 60000
51
70
  ```
52
71
 
53
72
  ## The Protocol
@@ -163,15 +182,22 @@ Tier 2: WORKING MEMORY (current session → 7 days)
163
182
  · Read via: cm continuity bus | cm_bus_read MCP tool
164
183
 
165
184
  Tier 3: LONG-TERM MEMORY (30+ days, only if reinforced)
166
- Primary: .cm/context.db (SQLite + FTS5) ← v5 default
185
+ Default: .cm/context.db (SQLite + FTS5)
167
186
  · learnings table + learnings_fts (BM25 keyword search)
168
187
  · decisions table + decisions_fts
169
188
  · skill_outputs per session/chain
170
189
  · indexes table (cached L0/L1 content + staleness hash)
190
+ → Optional: OpenViking backend (storage.backend: viking in .cm/config.yaml)
191
+ · True vector semantic search — finds "async timeout" even when you query "network delay"
192
+ · L0/L1/L2 auto-generated by engine — no manual cm continuity index needed
193
+ · Session compression + long-term memory extraction built-in
194
+ · Graph relations between memories (link/unlink)
195
+ · Setup: pip install openviking && openviking start
171
196
  → Fallback: .cm/memory/learnings.json + decisions.json (kept for compat)
172
197
  → L0 indexes: .cm/learnings-index.md (~100 tok), .cm/skeleton-index.md (~500 tok)
173
198
  · Auto-regenerated on addLearning() + on demand via cm continuity index
174
199
  · File watcher auto-refreshes learnings L0 on JSON change (300ms debounce)
200
+ · With Viking: engine generates L0/L1 automatically — no file watcher needed
175
201
  → Token budget: .cm/token-budget.json — 200k window, per-category soft limits
176
202
  · Enforced at load time: checkBudget() → allowed/remaining/suggestion
177
203
  · View: cm continuity budget
@@ -185,11 +211,12 @@ Tier 5: STRUCTURAL CODE MEMORY (optional — code-heavy projects)
185
211
  → See cm-codeintell skill — ONLY when >50 source files
186
212
  ```
187
213
 
188
- **CONTINUITY.md = "what am I doing NOW?"**
189
- **context bus = "what did upstream skills produce in this chain?"**
190
- **L0 indexes = "cheapest possible memory load (~600 tokens)"**
191
- **context.db = "keyword search across all learnings + decisions"**
192
- **qmd (optional) = "find what was written across hundreds of docs"**
214
+ **CONTINUITY.md = "what am I doing NOW?"**
215
+ **context bus = "what did upstream skills produce in this chain?"**
216
+ **L0 indexes = "cheapest possible memory load (~600 tokens)"**
217
+ **context.db = "keyword search across all learnings + decisions"**
218
+ **OpenViking (opt.) = "semantic vector search + auto L0/L1 + session compression"**
219
+ **qmd (optional) = "find what was written across hundreds of docs"**
193
220
 
194
221
  ### MCP Context Server (Claude Desktop integration)
195
222
 
@@ -0,0 +1,30 @@
1
+ # cm-design-studio
2
+
3
+ > Local design-variant workspace: checklist, named variants, and a handoff stub—no external MCP required.
4
+
5
+ ## When to use
6
+
7
+ - You want **2–3 UI/UX variants** documented before coding.
8
+ - You need a **repeatable handoff** from design choice to implementation agents.
9
+ - You prefer **files under `.cm/`** over ad-hoc chat-only decisions.
10
+
11
+ ## Steps
12
+
13
+ 1. From the repo root: `cm design-studio init`
14
+ 2. Edit `.cm/design-studio/CHECKLIST.md` and `VARIANTS.md` (name options A/B/C).
15
+ 3. Pick a variant; complete `.cm/design-studio/HANDOFF.md` (screens, tokens, prompt stub).
16
+ 4. Run implementation skills (e.g. `cm-execution`, `cm-tdd`) **using the HANDOFF prompt stub** as the single source of truth.
17
+
18
+ Optional: `cm design-studio status` — list artifact files.
19
+
20
+ ## Output
21
+
22
+ - `.cm/design-studio/README.md` — happy path
23
+ - `.cm/design-studio/CHECKLIST.md`
24
+ - `.cm/design-studio/VARIANTS.md`
25
+ - `.cm/design-studio/HANDOFF.md`
26
+
27
+ ## Related
28
+
29
+ - ADR 003 (`docs/adr/003-skill-distro-and-meta.md`) for pack layout when publishing skills.
30
+ - `cm suggest` may recommend other skills based on git + sprint state.
@@ -0,0 +1,11 @@
1
+ # cm-ecosystem-roadmap — marketplace & distros
2
+
3
+ **In CLI today:** `cm distro validate <dir>` checks skill folder layout; see **ADR 003** (`docs/adr/003-skill-distro-and-meta.md`) for `meta.json` + tmpl rules.
4
+
5
+ **Backlog** (community scale-out):
6
+
7
+ - **`cm marketplace`** — starred skills, semver, dependency graph.
8
+ - **`cm install`** / **`cm distro create`** — preset skill packs + branding (SaaS, e-commerce, mobile, agency).
9
+ - **Publish** — npm and/or git tags as distribution channels.
10
+
11
+ Reuse **meta.json** + `SKILL.md.tmpl` from `scripts/build-skills.mjs` for reproducible skill packages.
@@ -0,0 +1,69 @@
1
+ # cm-engineering-meta — quick wins + access + voice map
2
+
3
+ ## Search before building
4
+
5
+ Before adding infrastructure, search in three layers:
6
+
7
+ 1. **Tried-and-true** — patterns already in this repo / sibling services.
8
+ 2. **New-and-popular** — current docs for your stack version.
9
+ 3. **First-principles** — only when 1–2 don’t apply.
10
+
11
+ ## AskUserQuestion format
12
+
13
+ When asking the human to choose:
14
+
15
+ - Short **context** (what you already know).
16
+ - Clear **question**.
17
+ - **RECOMMENDATION** (one option you’d pick and why).
18
+ - Lettered options **A / B / C** (not vague yes/no).
19
+
20
+ ## Review readiness dashboard (ASCII)
21
+
22
+ Before ship, print a table:
23
+
24
+ ```
25
+ | Gate | Status | Notes |
26
+ |-------------|--------|-------|
27
+ | Tests | ? | |
28
+ | Lint/Type | ? | |
29
+ | Secrets | ? | |
30
+ | Manual QA | ? | |
31
+ ```
32
+
33
+ ## Completeness gap (code review)
34
+
35
+ Flag when an **80% solution** is chosen but the **100%** path costs **< 30 minutes** (tests, edge case, docs).
36
+
37
+ ## Investigate Iron Law
38
+
39
+ - Do **not** patch without a **root cause** hypothesis.
40
+ - After **three** failed fix attempts, stop and question architecture or gather more data.
41
+
42
+ ## Access controls (Goose-style)
43
+
44
+ - Maintain lists: **autonomous_ok** vs **confirm_required** skill groups (see `.cm/config.example.yaml`).
45
+ - Respect “stop suggesting skill X” in session notes.
46
+
47
+ ## Provider abstraction
48
+
49
+ Prefer interfaces for LLM calls so **cm-second-opinion** can swap `OPENAI_API_KEY` / future providers without rewriting skills.
50
+
51
+ ## Proactive skill suggestion
52
+
53
+ Infer stage from files touched and git state:
54
+
55
+ - Many `test/` edits → suggest **cm-test-gate**.
56
+ - `Dockerfile` / deploy scripts → **cm-safe-deploy** + **cm canary**.
57
+ - `rm` / migration scripts → **cm-guardian** + **cm-secret-shield**.
58
+
59
+ ## Voice-friendly triggers (examples)
60
+
61
+ | Phrase (approx.) | Skill / command |
62
+ |------------------|-----------------|
63
+ | “Run a security check” | cm-secret-shield / cm-security-gate |
64
+ | “Test the website” | cm browse + cm qa-visual |
65
+ | “Code review this” | cm-code-review |
66
+ | “Deploy safely” | cm-safe-deploy |
67
+ | “Log what went wrong” | `cm retro --note "…"` |
68
+
69
+ Use Whisper / AquaVoice → paste transcript; map keywords to the table above.
@@ -1,17 +1,6 @@
1
1
  ---
2
2
  name: cm-growth-hacking
3
- description: |
4
- Growth Hacking Engine — Bottom Sheet + Calendar + Trigger + CRO Tracking.
5
- Modular system for booking popups, lead capture, flash sales, surveys, re-engagement.
6
- Auto-detect industry → select pattern → generate bottom sheet + calendar CTA + tracking.
7
- Zero dependencies, works on any static or dynamic site.
8
-
9
- Kế thừa và liên kết với: cm-booking-calendar, cm-ads-tracker, cm-google-form, cm-readit, cm-ux-master.
10
-
11
- ALWAYS trigger for: bottom sheet, popup, đặt lịch, booking popup, lead capture, exit intent,
12
- engagement, "tạo popup", "thêm bottom sheet", "popup đặt lịch", "nhắc lịch hẹn",
13
- "add to calendar", "google calendar", "apple calendar", flash sale popup, survey popup,
14
- "tăng conversion", "giảm bounce", re-engagement, "popup CTA"
3
+ description: "Bottom-sheet and popup growth system: booking CTAs, calendars, lead capture, surveys, re-engagement, with CRO tracking hooks. Zero-deps; works static or dynamic sites. Works with cm-booking-calendar, cm-ads-tracker, cm-google-form, cm-readit, cm-ux-master."
15
4
  allowed-tools: Read, Write, Edit, Glob, Grep, Browser
16
5
  version: 1.0
17
6
  priority: HIGH
@@ -0,0 +1,22 @@
1
+ # cm-guardian-runtime — destructive command & freeze checks
2
+
3
+ ## Commands
4
+
5
+ ```bash
6
+ cm guardian check -- git push --force origin main # exits 1 if blocked
7
+ cm guardian path-check --file ./src/app.ts --roots src,lib
8
+ ```
9
+
10
+ ## Behaviour
11
+
12
+ - Regex set for `rm -rf`, `DROP TABLE`, `git push --force`, `git reset --hard`, pipes to shell, etc.
13
+ - Prefix whitelist includes `npm run build`, `npm test`, `npx vitest`.
14
+ - Violations append to `.cm/guardian.log`.
15
+
16
+ ## Investigate / debug mode
17
+
18
+ When using **cm-debugging** or root-cause work, treat **freeze roots** as mandatory: only edit inside allowed directories until the hypothesis is proven.
19
+
20
+ ## Config
21
+
22
+ See `.cm/config.example.yaml` → `guardian:`.
@@ -0,0 +1,18 @@
1
+ # cm-mcp-engineering — MCP tools on context server
2
+
3
+ The same binary as memory MCP (`dist/mcp-context-server.js`) now exposes **engineering bridge** tools:
4
+
5
+ | Tool | Purpose |
6
+ |------|---------|
7
+ | `cm_plan` | Sprint state + artifact paths + next skill hint |
8
+ | `cm_review` | Preview `.cm/sprint/artifacts/review.md` |
9
+ | `cm_qa` | Pointers to browse daemon + `cm qa-visual` |
10
+ | `cm_deploy` | Hints for safe deploy + canary |
11
+ | `cm_search` | Learnings + decisions search |
12
+ | `cm_memory_query` | Same backing store, alias-style |
13
+
14
+ Existing tools unchanged: `cm_query`, `cm_resolve`, `cm_bus_read`, `cm_bus_write`, `cm_budget_check`, `cm_memory_decay`, `cm_index_refresh`.
15
+
16
+ ## Config
17
+
18
+ Point `--project` at the repo root (or `CM_PROJECT_PATH`).
@@ -1,22 +1,6 @@
1
1
  ---
2
2
  name: cm-notebooklm
3
- description: |
4
- CodyMaster NotebookLM — Cloud-based AI brain/soul engine. Stores the most
5
- valuable knowledge (skills, lessons learned, coding experiences, key decisions)
6
- into Google NotebookLM for cross-machine sync and AI-powered recall.
7
- Combines cm-dockit (codebase → docs) + cm-deep-search (local BM25) +
8
- NotebookLM (cloud AI memory + podcast + flashcards).
9
-
10
- Offers LOCAL vs CLOUD choice for large codebases. Auto-sync mechanism.
11
- Selective indexing — only high-value content, not everything.
12
-
13
- Use when user says: "notebooklm", "notebook lm", "nlm", "nạp kiến thức",
14
- "knowledge base", "create notebook", "sync skills to notebook", "tạo notebook",
15
- "knowledge memory", "podcast từ skills", "flashcards từ docs",
16
- "add to notebooklm", "query notebooklm", "hỏi notebooklm",
17
- "lưu kinh nghiệm", "bộ nhớ AI", "AI memory", "tạo podcast",
18
- "codymaster notebook", "skill notebook", "sync knowledge",
19
- "cloud brain", "soul sync", "cross-machine sync".
3
+ description: "Sync high-value dev knowledge (skills, decisions, lessons) into Google NotebookLM for cloud recall, podcasts, and flashcards. Pairs with Dockit/deep-search. Use for NotebookLM, nlm, knowledge base, skill sync, or cross-machine AI memory."
20
4
  ---
21
5
 
22
6
  # Goal
@@ -0,0 +1,18 @@
1
+ # cm-post-deploy-canary — smoke + browse tail
2
+
3
+ ## CLI
4
+
5
+ ```bash
6
+ cm canary --url https://app.example.com
7
+ cm canary --url https://app.example.com --browse-port 17395 --token "$CM_BROWSE_TOKEN"
8
+ ```
9
+
10
+ ## Flow
11
+
12
+ 1. **HTTP GET** the URL (status < 400).
13
+ 2. Optionally pull **browse daemon** `/console` for recent browser errors after deploy.
14
+
15
+ ## Next
16
+
17
+ - Wire into **cm-safe-deploy** as a final step.
18
+ - Add programmatic CWV (Lighthouse) when you need baselines per PR.
@@ -0,0 +1,18 @@
1
+ # cm-qa-visual-cli — screenshot via browse daemon
2
+
3
+ ## Prerequisites
4
+
5
+ `cm browse start` running with the same `CM_BROWSE_TOKEN`.
6
+
7
+ ## CLI
8
+
9
+ ```bash
10
+ cm qa-visual --url http://localhost:5173 --port 17395
11
+ ```
12
+
13
+ Writes `cm-qa-visual.png` in the current working directory.
14
+
15
+ ## Next
16
+
17
+ - Diff against golden images for visual regression.
18
+ - Map `git diff` → affected routes (project-specific heuristics).
@@ -0,0 +1,19 @@
1
+ # cm-retro-cli — operational learnings JSONL
2
+
3
+ ## Append
4
+
5
+ ```bash
6
+ cm retro --project . --tool claude --note "Forgot to run gate before push; CI failed on lint."
7
+ ```
8
+
9
+ Stored in `.cm/operational-learnings.jsonl`.
10
+
11
+ ## Summary
12
+
13
+ ```bash
14
+ cm retro --project . --summary
15
+ ```
16
+
17
+ ## Use with skill evolution
18
+
19
+ Feed highlights into **cm-skill-evolution** / project learnings DB so future sessions avoid repeating mistakes.
@@ -0,0 +1,19 @@
1
+ # cm-second-opinion-cli — cross-model review stub
2
+
3
+ ## CLI
4
+
5
+ ```bash
6
+ cm second-opinion --file /tmp/my.diff
7
+ ```
8
+
9
+ - With `OPENAI_API_KEY`, calls **OpenAI chat completions** (`CM_SECOND_OPINION_MODEL` optional, default `gpt-4o-mini`).
10
+ - Without key, prints a **stub** reminder (no network).
11
+
12
+ ## Safety
13
+
14
+ - **Never** paste secrets or production credentials into the diff file.
15
+ - Prefer unified diffs of **application code** only.
16
+
17
+ ## Roadmap
18
+
19
+ Add Anthropic / Google / Ollama providers via shared provider interface (see **cm-engineering-meta**).
@@ -79,8 +79,8 @@ ROTATION is not optional after a leak.
79
79
  // ❌ NEVER write code like this:
80
80
  const API_KEY = "sk-proj-abc123def456ghi789";
81
81
  const SUPABASE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
82
- const DB_PASSWORD = "MyP@ssw0rd123!";
83
- fetch('https://api.example.com', { headers: { Authorization: 'Bearer sk-...' } });
82
+ const DB_PASSWORD = "<YOUR_SECURE_PASSWORD>";
83
+ fetch('https://api.example.com', { headers: { Authorization: 'Bearer <YOUR_TOKEN>' } });
84
84
 
85
85
  // ✅ ALWAYS write code like this:
86
86
  const API_KEY = process.env.API_KEY;
@@ -0,0 +1,29 @@
1
+ # cm-sprint-bus — opinionated pipeline + artifacts
2
+
3
+ ## Pipeline
4
+
5
+ `brainstorm → plan → design → tdd → build → review → qa → security → ship → monitor → retro`
6
+
7
+ ## CLI
8
+
9
+ ```bash
10
+ cm sprint init --project .
11
+ cm sprint init --from plan --project . # jump in mid-pipeline
12
+ cm sprint status --project .
13
+ cm sprint complete plan -m "$(cat plan-notes.md)" --project .
14
+ cm sprint dry-run --project .
15
+ ```
16
+
17
+ ## Artifacts
18
+
19
+ - `.cm/sprint/state.json`
20
+ - `.cm/sprint/artifacts/<step>.md`
21
+ - `.cm/sprint/events.jsonl`
22
+
23
+ ## Skill mapping (hints)
24
+
25
+ Each step maps to existing CodyMaster skills (see `skillMappingForStep` in `src/sprint-pipeline.ts`). Use `cm sprint status` for the **next** recommended skill.
26
+
27
+ ## Context bus
28
+
29
+ This complements `.cm/context-bus.json` (skill-chain). Prefer **sprint files** for linear release trains; use **context bus** for ad-hoc chains.
@@ -13,12 +13,15 @@ When this workflow is called, the AI Assistant should execute the following acti
13
13
  Per `_shared/helpers.md#Load-Working-Memory` — **use Smart Spine order:**
14
14
  1. Check `.cm/context-bus.json` → any active pipeline? any prior skill output to reuse?
15
15
  2. Load L0 indexes: `learnings-index.md` (~100 tok) + `skeleton-index.md` (~500 tok)
16
+ > **If OpenViking backend active:** Skip step 2 — engine auto-serves L0/L1 via `cm_resolve`.
16
17
  3. Scope-filter learnings via `cm_query` — only load what matches current objective
18
+ > **If OpenViking:** `cm_query` uses vector semantic search — broader recall, fewer missed learnings.
17
19
  4. Read `CONTINUITY.md` → set Active Goal to the new objective
18
20
  5. Run token budget check: `cm continuity budget` → confirm no category is over soft limit
19
21
 
20
22
  > ⚡ Total context load: ~700 tokens. Full load used to be ~3,200.
21
23
  > Only escalate to L2 (full files) if L0 index explicitly flags a match.
24
+ > With OpenViking: L0 is auto-maintained — no stale index risk.
22
25
 
23
26
  0.5. **Skill Coverage Check (Adaptive Discovery):**
24
27
  - Scan the objective for technologies, frameworks, or patterns mentioned
@@ -82,5 +85,11 @@ When this workflow is called, the AI Assistant should execute the following acti
82
85
  - Record any new learnings or decisions made during this workflow
83
86
  - If inside a skill chain: `cm continuity bus` → verify context bus reflects completed step
84
87
  - Refresh L0 indexes: `cm continuity index` (auto-runs on `addLearning`, manual refresh here)
85
-
86
- > **Note for AI:** If this is a brand new project, suggest running `cm-project-bootstrap` first. If the working environment has a risk of accidentally switching accounts/projects, remind about `cm-identity-guard` (Per `_shared/helpers.md#Identity-Check`).
88
+ > **If OpenViking:** Skip manual index refresh — engine maintains L0/L1 automatically.
89
+
90
+ > **Note for AI:** If this is a brand new project, suggest running `cm-project-bootstrap` first.
91
+ > If the working environment has a risk of accidentally switching accounts/projects, remind about `cm-identity-guard` (Per `_shared/helpers.md#Identity-Check`).
92
+ >
93
+ > **OpenViking tip:** If the project uses many learnings/decisions (>100 entries) or needs semantic
94
+ > search beyond keyword matching, suggest switching to the Viking backend:
95
+ > `storage.backend: viking` in `.cm/config.yaml` + `pip install openviking && openviking start`