nextjs-hackathon-stack 0.1.36 → 0.1.38

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/index.js CHANGED
@@ -91,6 +91,30 @@ function createClaudeDir(targetDir) {
91
91
  }
92
92
  }
93
93
  }
94
+ function createOpencodeDir(targetDir) {
95
+ const cursorDir = join(targetDir, ".cursor");
96
+ const opencodeDir = join(targetDir, ".opencode");
97
+ if (!existsSync(cursorDir)) return;
98
+ const mirrorDirs = ["agents", "rules", "skills"];
99
+ for (const dir of mirrorDirs) {
100
+ const srcDir = join(cursorDir, dir);
101
+ if (!existsSync(srcDir)) continue;
102
+ const destDir = join(opencodeDir, dir);
103
+ mkdirSync(destDir, { recursive: true });
104
+ for (const entry of readdirSync(srcDir)) {
105
+ const relTarget = `../../.cursor/${dir}/${entry}`;
106
+ const destPath = join(destDir, entry);
107
+ if (!existsSync(destPath)) {
108
+ symlinkSync(relTarget, destPath);
109
+ }
110
+ }
111
+ }
112
+ const mcpSrc = join(cursorDir, "mcp.json");
113
+ const mcpDest = join(opencodeDir, "mcp.json");
114
+ if (existsSync(mcpSrc) && !existsSync(mcpDest)) {
115
+ symlinkSync("../../.cursor/mcp.json", mcpDest);
116
+ }
117
+ }
94
118
  function copyDir(src, dest, vars, skip = /* @__PURE__ */ new Set(), templateRoot = src) {
95
119
  mkdirSync(dest, { recursive: true });
96
120
  for (const entry of readdirSync(src)) {
@@ -229,6 +253,7 @@ async function scaffold(projectName, skipInstall, skipMcp = false, template = "e
229
253
  spinner2.start("Copying template files");
230
254
  copyDir(templateDir, targetDir, vars, skip, templateDir);
231
255
  createClaudeDir(targetDir);
256
+ createOpencodeDir(targetDir);
232
257
  if (template === "empty") {
233
258
  const pageDir = join(targetDir, "src/app/(protected)");
234
259
  mkdirSync(pageDir, { recursive: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextjs-hackathon-stack",
3
- "version": "0.1.36",
3
+ "version": "0.1.38",
4
4
  "description": "Scaffold a full-stack Next.js hackathon starter",
5
5
  "type": "module",
6
6
  "bin": {
@@ -51,11 +51,21 @@ The `/build-feature` skill reads the requirements file directly and runs the ful
51
51
  This project uses [mcp-memory-service](https://github.com/doobidoo/mcp-memory-service) for persistent semantic memory across sessions.
52
52
  Config is shared via `.cursor/mcp.json` (symlinked to `.mcp.json`).
53
53
 
54
- If not installed automatically during scaffolding:
54
+ If not installed automatically during scaffolding, install via `pipx` (works on macOS, Linux, Windows):
55
+
55
56
  ```bash
56
- pip install mcp-memory-service
57
+ # macOS
58
+ brew install pipx && pipx ensurepath
59
+ pipx install mcp-memory-service
60
+
61
+ # Linux / Windows
62
+ pip install pipx
63
+ pipx install mcp-memory-service
57
64
  ```
58
65
 
66
+ > **macOS note:** If you see `SQLite extension loading not supported`, pipx picked Apple's Python.
67
+ > Fix: `pipx install mcp-memory-service --python $(brew --prefix python@3.12)/bin/python3.12`
68
+
59
69
  ## Memory Skill
60
70
 
61
71
  Use `/memory` to sync and query project knowledge:
@@ -103,7 +103,22 @@ Cursor rules, agents, and skills are preconfigured in `.cursor/`:
103
103
 
104
104
  ### Initial Setup (once per project)
105
105
 
106
- After scaffolding, populate MCP memory so agents load context efficiently:
106
+ **1. Install mcp-memory-service** (if not already installed):
107
+
108
+ ```bash
109
+ # macOS
110
+ brew install pipx && pipx ensurepath
111
+ pipx install mcp-memory-service
112
+
113
+ # Linux / Windows
114
+ pip install pipx
115
+ pipx install mcp-memory-service
116
+ ```
117
+
118
+ > **macOS note:** If you see `SQLite extension loading not supported`, run:
119
+ > `pipx install mcp-memory-service --python $(brew --prefix python@3.12)/bin/python3.12`
120
+
121
+ **2. Populate MCP memory** so agents load context efficiently:
107
122
 
108
123
  ```
109
124
  /memory sync