Skip to content

Commit ee534ad

Browse files
KD-K2N2claude
andcommitted
Growth infrastructure: README rewrite, YAML issue forms, SEO, launch content
Task 1: Complete README rewrite — SEO-optimized for "Claude Code memory", "MCP server memory", "persistent context". Architecture diagram, real MCP tool call example, features table, 6-item FAQ, CLI reference. Task 2: GitHub metadata doc — repo description, 20 topics, social preview. Task 3: YAML issue forms (bug_report.yml, feature_request.yml) replacing markdown templates. Upgraded PR template, CONTRIBUTING.md with full monorepo guide, SECURITY.md with SLA and scope. Task 4: llms.txt for AI search engines, JSON-LD structured data, meta tags. Task 5: Launch content — HN Show post + first comment, Reddit r/ClaudeAI and r/LocalLLaMA posts, Product Hunt copy, X thread, LinkedIn post. Task 6: CHANGELOG.md following Keep a Changelog format. Task 7: Star farming — cortex doctor prompt, README banner, post-install message, newsletter CTA. CI upgraded with ubuntu + macos matrix, npm audit on PRs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 4d4ce8c commit ee534ad

15 files changed

Lines changed: 861 additions & 625 deletions

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior in Cortex
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report this. Please fill out the fields below so we can reproduce and fix the issue.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Description
15+
description: A clear description of what the bug is.
16+
placeholder: What happened?
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: reproduction
22+
attributes:
23+
label: Steps to Reproduce
24+
description: The exact steps to trigger the bug.
25+
placeholder: |
26+
1. Run `cortex init` in a project
27+
2. Start a Claude Code session
28+
3. ...
29+
value: |
30+
1.
31+
2.
32+
3.
33+
validations:
34+
required: true
35+
36+
- type: textarea
37+
id: expected
38+
attributes:
39+
label: Expected Behavior
40+
description: What did you expect to happen?
41+
validations:
42+
required: true
43+
44+
- type: textarea
45+
id: actual
46+
attributes:
47+
label: Actual Behavior
48+
description: What actually happened instead?
49+
validations:
50+
required: true
51+
52+
- type: input
53+
id: cortex-version
54+
attributes:
55+
label: Cortex Version
56+
description: Run `cortex --version` and paste the output.
57+
placeholder: "1.0.0"
58+
validations:
59+
required: true
60+
61+
- type: input
62+
id: os
63+
attributes:
64+
label: Operating System
65+
description: e.g. macOS 15.3, Ubuntu 24.04, Windows 11
66+
placeholder: "macOS 15.3"
67+
validations:
68+
required: true
69+
70+
- type: input
71+
id: claude-code-version
72+
attributes:
73+
label: Claude Code Version
74+
description: Run `claude --version` and paste the output.
75+
placeholder: "1.0.0"
76+
validations:
77+
required: false
78+
79+
- type: dropdown
80+
id: install-method
81+
attributes:
82+
label: Installation Method
83+
options:
84+
- Homebrew (brew install cortex-memory)
85+
- npx (@cortex.memory/cli init)
86+
- curl (install script)
87+
- Built from source
88+
validations:
89+
required: true
90+
91+
- type: textarea
92+
id: logs
93+
attributes:
94+
label: Relevant Logs
95+
description: Paste output from `cortex logs` or `cortex doctor`. This will be rendered as code.
96+
render: shell
97+
validations:
98+
required: false

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 0 additions & 33 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement for Cortex
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Feature requests help us prioritize. Please describe what you need and why.
10+
11+
- type: textarea
12+
id: use-case
13+
attributes:
14+
label: Use Case
15+
description: What are you trying to do? Describe the problem, not the solution.
16+
placeholder: "When I'm working on multiple projects, I need to..."
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: proposed-solution
22+
attributes:
23+
label: Proposed Solution
24+
description: How do you think this should work? Be specific.
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: alternatives
30+
attributes:
31+
label: Alternatives Considered
32+
description: What else have you tried or thought about?
33+
validations:
34+
required: false
35+
36+
- type: textarea
37+
id: context
38+
attributes:
39+
label: Additional Context
40+
description: Screenshots, links, related issues, or anything else that helps.
41+
validations:
42+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,28 @@
1-
## Summary
1+
## What does this PR do?
22

3-
Brief description of the changes and the motivation behind them.
3+
<!-- One or two sentences. Link to the issue if there is one. -->
44

5-
Fixes # (issue number)
5+
## Why?
66

7-
## Type of Change
7+
<!-- What problem does this solve? Why is this approach the right one? -->
88

9-
- [ ] Bug fix (non-breaking change that fixes an issue)
10-
- [ ] New feature (non-breaking change that adds functionality)
11-
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
12-
- [ ] Documentation update
13-
- [ ] Performance improvement
14-
- [ ] Refactoring (no functional changes)
9+
## How to test it
1510

16-
## How Has This Been Tested?
11+
<!-- Steps a reviewer can follow to verify this works. -->
1712

18-
Describe the tests you ran to verify your changes.
13+
1.
14+
2.
15+
3.
1916

20-
- [ ] Unit tests pass (`pnpm test`)
21-
- [ ] Lint passes (`pnpm lint`)
22-
- [ ] Type check passes (`pnpm typecheck`)
23-
- [ ] Manual testing with Claude Code
24-
25-
## Checklist
17+
## Screenshots / recordings
2618

27-
- [ ] My code follows the project's style guidelines
28-
- [ ] I have performed a self-review of my code
29-
- [ ] I have added tests that prove my fix is effective or my feature works
30-
- [ ] New and existing unit tests pass locally with my changes
31-
- [ ] I have updated documentation where needed
32-
- [ ] My changes generate no new warnings
33-
- [ ] Any dependent changes have been merged and published
19+
<!-- If this changes UI (dashboard, CLI output, VS Code extension), include a screenshot or recording. Delete this section if not applicable. -->
3420

35-
## Screenshots (if applicable)
21+
## Checklist
3622

37-
Add screenshots for UI changes in the dashboard or VS Code extension.
23+
- [ ] Tests pass (`pnpm test`)
24+
- [ ] Types pass (`pnpm typecheck`)
25+
- [ ] Lint passes (`pnpm lint`)
26+
- [ ] CHANGELOG.md updated (if user-facing change)
27+
- [ ] Docs updated (if behavior changed)
28+
- [ ] Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/)

.github/workflows/ci.yml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ jobs:
2323
- run: pnpm turbo typecheck
2424

2525
test:
26-
runs-on: ubuntu-latest
2726
needs: lint-and-typecheck
27+
strategy:
28+
matrix:
29+
os: [ubuntu-latest, macos-latest]
30+
runs-on: ${{ matrix.os }}
2831
steps:
2932
- uses: actions/checkout@v4
3033
- uses: pnpm/action-setup@v3
@@ -37,14 +40,15 @@ jobs:
3740
- run: pnpm install --frozen-lockfile
3841
- run: pnpm turbo test
3942
- name: Upload coverage
43+
if: matrix.os == 'ubuntu-latest'
4044
uses: actions/upload-artifact@v4
4145
with:
4246
name: coverage
4347
path: packages/*/coverage/
4448

4549
build:
46-
runs-on: ubuntu-latest
4750
needs: test
51+
runs-on: ubuntu-latest
4852
steps:
4953
- uses: actions/checkout@v4
5054
- uses: pnpm/action-setup@v3
@@ -56,3 +60,19 @@ jobs:
5660
cache: pnpm
5761
- run: pnpm install --frozen-lockfile
5862
- run: pnpm turbo build
63+
64+
audit:
65+
if: github.event_name == 'pull_request'
66+
runs-on: ubuntu-latest
67+
steps:
68+
- uses: actions/checkout@v4
69+
- uses: pnpm/action-setup@v3
70+
with:
71+
version: 10
72+
- uses: actions/setup-node@v4
73+
with:
74+
node-version: 22
75+
cache: pnpm
76+
- run: pnpm install --frozen-lockfile
77+
- name: Security audit
78+
run: pnpm audit --audit-level=high

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Planned
11+
- Multi-machine sync via Turso (libsql) with conflict resolution
12+
- VS Code extension with memory sidebar and inline context
13+
- Team sharing — shared memory spaces for engineering teams
14+
- Memory analytics — usage patterns, most-referenced memories, decay tracking
15+
- Webhooks — trigger actions when memories are created or updated
16+
17+
## [1.0.0] - 2025-03-22
18+
19+
### Added
20+
- MCP server with 5 tools: `cortex_get_context`, `cortex_save_memory`, `cortex_search`, `cortex_list_projects`, `cortex_get_status`
21+
- Session summarizer — AI reviews completed sessions and captures missed context automatically
22+
- Quality gate with 7 validation rules: content length (50-2000 chars), reason field required (min 10 chars), duplicate detection (TF-IDF similarity < 85%), banned phrase filter, sensitive data blocker (API keys, passwords, tokens, private keys), quality score threshold (3+), rate limiting (50 saves per session, 200 per day)
23+
- 6 memory types with distinct lifecycles: Decision (permanent), Context (may expire), Preference (permanent), Thread (expires when resolved), Error (persists until fixed), Learning (permanent)
24+
- Project detection using 4-layer strategy: git remote URL, package.json name, directory name, manual assignment
25+
- Local SQLite database at `~/.cortex/cortex.db` with full-text search via FTS5
26+
- 33 CLI commands: init, status, doctor, show, search, add, edit, delete, clear, export, import, backup, start, stop, restart, logs, sync status, sync push, sync pull, config show, config set, config reset, uninstall, version, help, count, history, stats, tag, untag, pin, unpin, archive
27+
- Web dashboard (Next.js 14) on localhost:7433 with memory browsing, search, bulk operations, project switching, and sync status
28+
- `cortex doctor` diagnostic command — checks daemon health, database integrity, MCP registration, and configuration
29+
- Clean uninstall via `cortex uninstall` — removes database, daemon, config, and MCP registration with optional memory export
30+
- AES-256-GCM encryption for stored credentials (Turso tokens, sync keys)
31+
- Homebrew tap for macOS installation (`brew install cortex-memory`)
32+
- npx one-command setup (`npx @cortex.memory/cli init`)
33+
- curl install script for automated environments
34+
- Electron desktop app with system tray integration
35+
- SwiftUI native macOS app (macOS 13+)
36+
- Zero telemetry by default — no analytics, no crash reporting, no phone-home
37+
38+
This project adheres to [Semantic Versioning](https://semver.org/) and [Keep a Changelog](https://keepachangelog.com/).

0 commit comments

Comments
 (0)