codebyplan 1.5.0 → 1.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 (206) hide show
  1. package/README.md +48 -5
  2. package/dist/cli.js +4578 -2709
  3. package/package.json +5 -1
  4. package/templates/.gitkeep +0 -0
  5. package/templates/README.md +20 -0
  6. package/templates/agents/cbp-cc-executor.md +213 -0
  7. package/templates/agents/cbp-database-agent.md +229 -0
  8. package/templates/agents/cbp-improve-claude.md +245 -0
  9. package/templates/agents/cbp-improve-round.md +284 -0
  10. package/templates/agents/cbp-mechanical-edits.md +111 -0
  11. package/templates/agents/cbp-research.md +282 -0
  12. package/templates/agents/cbp-round-executor.md +604 -0
  13. package/templates/agents/cbp-security-agent.md +134 -0
  14. package/templates/agents/cbp-task-check.md +213 -0
  15. package/templates/agents/cbp-task-planner.md +582 -0
  16. package/templates/agents/cbp-test-e2e-agent.md +363 -0
  17. package/templates/agents/cbp-testing-qa-agent.md +400 -0
  18. package/templates/context/mcp-docs.md +139 -0
  19. package/templates/hooks/README.md +236 -0
  20. package/templates/hooks/cbp-auto-test-hooks.sh +44 -0
  21. package/templates/hooks/cbp-lint-format-on-edit.sh +159 -0
  22. package/templates/hooks/cbp-maestro-yaml-validate.sh +100 -0
  23. package/templates/hooks/cbp-mcp-migration-guard.sh +32 -0
  24. package/templates/hooks/cbp-mcp-round-sync.sh +79 -0
  25. package/templates/hooks/cbp-mcp-worktree-inject.sh +76 -0
  26. package/templates/hooks/cbp-notify.sh +68 -0
  27. package/templates/hooks/cbp-plugin-dispatch.sh +29 -0
  28. package/templates/hooks/cbp-pre-commit-quality-gate.sh +204 -0
  29. package/templates/hooks/cbp-statusline.sh +347 -0
  30. package/templates/hooks/cbp-subagent-statusline.sh +182 -0
  31. package/templates/hooks/cbp-test-coverage-gate.sh +144 -0
  32. package/templates/hooks/cbp-test-hooks.sh +320 -0
  33. package/templates/hooks/hooks.json +85 -0
  34. package/templates/hooks/validate-context-usage.sh +59 -0
  35. package/templates/hooks/validate-git-commit.sh +78 -0
  36. package/templates/hooks/validate-git-stash-deny.sh +32 -0
  37. package/templates/hooks/validate-structure-lengths.sh +57 -0
  38. package/templates/hooks/validate-structure-lib.sh +104 -0
  39. package/templates/hooks/validate-structure-patterns.sh +54 -0
  40. package/templates/hooks/validate-structure-scope.sh +33 -0
  41. package/templates/hooks/validate-structure-smoke.sh +95 -0
  42. package/templates/hooks/validate-structure-templates.sh +34 -0
  43. package/templates/hooks/validate-structure.sh +69 -0
  44. package/templates/rules/.gitkeep +0 -0
  45. package/templates/rules/README.md +47 -0
  46. package/templates/rules/context-file-loading.md +52 -0
  47. package/templates/rules/scope-vocabulary.md +64 -0
  48. package/templates/rules/todo-backend.md +109 -0
  49. package/templates/settings.project.base.json +55 -0
  50. package/templates/settings.user.base.json +25 -0
  51. package/templates/skills/cbp-build-cc-agent/SKILL.md +139 -0
  52. package/templates/skills/cbp-build-cc-agent/examples/read-only-reviewer.md +32 -0
  53. package/templates/skills/cbp-build-cc-agent/examples/with-hooks.md +41 -0
  54. package/templates/skills/cbp-build-cc-agent/examples/with-skills-preload.md +25 -0
  55. package/templates/skills/cbp-build-cc-agent/reference/cbp-quality.md +153 -0
  56. package/templates/skills/cbp-build-cc-agent/reference/frontmatter-fields.md +37 -0
  57. package/templates/skills/cbp-build-cc-agent/reference/permission-modes.md +18 -0
  58. package/templates/skills/cbp-build-cc-agent/scripts/validate-agent.sh +67 -0
  59. package/templates/skills/cbp-build-cc-agent/templates/agent.md +66 -0
  60. package/templates/skills/cbp-build-cc-claude-file/SKILL.md +178 -0
  61. package/templates/skills/cbp-build-cc-claude-file/examples/minimal-project.md +33 -0
  62. package/templates/skills/cbp-build-cc-claude-file/examples/monorepo-with-imports.md +39 -0
  63. package/templates/skills/cbp-build-cc-claude-file/reference/imports.md +72 -0
  64. package/templates/skills/cbp-build-cc-claude-file/reference/what-belongs.md +39 -0
  65. package/templates/skills/cbp-build-cc-claude-file/templates/project-claude-md.md +48 -0
  66. package/templates/skills/cbp-build-cc-claude-file/templates/user-claude-md.md +22 -0
  67. package/templates/skills/cbp-build-cc-memory/SKILL.md +201 -0
  68. package/templates/skills/cbp-build-cc-memory/examples/feedback-memory.md +11 -0
  69. package/templates/skills/cbp-build-cc-memory/examples/project-memory.md +11 -0
  70. package/templates/skills/cbp-build-cc-memory/examples/reference-memory.md +13 -0
  71. package/templates/skills/cbp-build-cc-memory/examples/user-memory.md +14 -0
  72. package/templates/skills/cbp-build-cc-memory/reference/memory-types.md +59 -0
  73. package/templates/skills/cbp-build-cc-memory/reference/when-to-save.md +62 -0
  74. package/templates/skills/cbp-build-cc-memory/templates/MEMORY-index.md +4 -0
  75. package/templates/skills/cbp-build-cc-memory/templates/memory-entry.md +15 -0
  76. package/templates/skills/cbp-build-cc-mode/SKILL.md +99 -0
  77. package/templates/skills/cbp-build-cc-rule/SKILL.md +176 -0
  78. package/templates/skills/cbp-build-cc-rule/examples/global-rule.md +19 -0
  79. package/templates/skills/cbp-build-cc-rule/examples/scoped-rule.md +41 -0
  80. package/templates/skills/cbp-build-cc-rule/reference/paths-patterns.md +48 -0
  81. package/templates/skills/cbp-build-cc-rule/templates/rule.md +32 -0
  82. package/templates/skills/cbp-build-cc-settings/SKILL.md +220 -0
  83. package/templates/skills/cbp-build-cc-settings/examples/hooks-config.json +64 -0
  84. package/templates/skills/cbp-build-cc-settings/examples/permissions-config.json +34 -0
  85. package/templates/skills/cbp-build-cc-settings/examples/sandbox-config.json +42 -0
  86. package/templates/skills/cbp-build-cc-settings/reference/cbp-conventions.md +104 -0
  87. package/templates/skills/cbp-build-cc-settings/reference/permission-rules.md +61 -0
  88. package/templates/skills/cbp-build-cc-settings/reference/scope-precedence.md +73 -0
  89. package/templates/skills/cbp-build-cc-settings/reference/settings-fields.md +166 -0
  90. package/templates/skills/cbp-build-cc-settings/templates/settings.json +23 -0
  91. package/templates/skills/cbp-build-cc-settings/templates/settings.local.json +10 -0
  92. package/templates/skills/cbp-build-cc-skill/SKILL.md +154 -0
  93. package/templates/skills/cbp-build-cc-skill/examples/dynamic-context.md +31 -0
  94. package/templates/skills/cbp-build-cc-skill/examples/fork-skill.md +22 -0
  95. package/templates/skills/cbp-build-cc-skill/examples/knowledge-skill.md +25 -0
  96. package/templates/skills/cbp-build-cc-skill/examples/task-skill.md +29 -0
  97. package/templates/skills/cbp-build-cc-skill/reference/cbp-quality.md +157 -0
  98. package/templates/skills/cbp-build-cc-skill/reference/frontmatter-fields.md +35 -0
  99. package/templates/skills/cbp-build-cc-skill/reference/string-substitutions.md +60 -0
  100. package/templates/skills/cbp-build-cc-skill/scripts/validate-skill.sh +90 -0
  101. package/templates/skills/cbp-build-cc-skill/templates/skill.md +51 -0
  102. package/templates/skills/cbp-checkpoint-check/SKILL.md +156 -0
  103. package/templates/skills/cbp-checkpoint-complete/SKILL.md +109 -0
  104. package/templates/skills/cbp-checkpoint-create/SKILL.md +287 -0
  105. package/templates/skills/cbp-checkpoint-end/SKILL.md +241 -0
  106. package/templates/skills/cbp-checkpoint-update/SKILL.md +115 -0
  107. package/templates/skills/cbp-frontend-a11y/SKILL.md +109 -0
  108. package/templates/skills/cbp-frontend-a11y/reference/aria-roles-states.md +130 -0
  109. package/templates/skills/cbp-frontend-a11y/reference/contrast-visual.md +122 -0
  110. package/templates/skills/cbp-frontend-a11y/reference/keyboard-patterns.md +154 -0
  111. package/templates/skills/cbp-frontend-a11y/reference/semantic-html.md +111 -0
  112. package/templates/skills/cbp-frontend-design/SKILL.md +145 -0
  113. package/templates/skills/cbp-frontend-design/reference/nextjs-scss.md +118 -0
  114. package/templates/skills/cbp-frontend-design/reference/rn-expo.md +101 -0
  115. package/templates/skills/cbp-frontend-design/reference/tauri-react.md +82 -0
  116. package/templates/skills/cbp-frontend-ui/SKILL.md +262 -0
  117. package/templates/skills/cbp-frontend-ui/reference/ui-label-maps.md +42 -0
  118. package/templates/skills/cbp-frontend-ui/reference/ui-layout-patterns.md +105 -0
  119. package/templates/skills/cbp-frontend-ui/reference/variant-defaults.md +149 -0
  120. package/templates/skills/cbp-frontend-ux/SKILL.md +181 -0
  121. package/templates/skills/cbp-git-branch-feat-create/SKILL.md +115 -0
  122. package/templates/skills/cbp-git-commit/SKILL.md +278 -0
  123. package/templates/skills/cbp-git-worktree-create/SKILL.md +226 -0
  124. package/templates/skills/cbp-git-worktree-remove/SKILL.md +145 -0
  125. package/templates/skills/cbp-merge-main/SKILL.md +228 -0
  126. package/templates/skills/cbp-round-check/SKILL.md +104 -0
  127. package/templates/skills/cbp-round-end/SKILL.md +183 -0
  128. package/templates/skills/cbp-round-end/reference/findings-presentation.md +44 -0
  129. package/templates/skills/cbp-round-end/reference/inline-fallback.md +35 -0
  130. package/templates/skills/cbp-round-execute/SKILL.md +211 -0
  131. package/templates/skills/cbp-round-execute/reference/inline-fallback.md +59 -0
  132. package/templates/skills/cbp-round-input/SKILL.md +165 -0
  133. package/templates/skills/cbp-round-start/SKILL.md +222 -0
  134. package/templates/skills/cbp-round-update/SKILL.md +163 -0
  135. package/templates/skills/cbp-session-end/SKILL.md +187 -0
  136. package/templates/skills/cbp-session-start/SKILL.md +155 -0
  137. package/templates/skills/cbp-ship/SKILL.md +332 -0
  138. package/templates/skills/cbp-ship/reference/changesets-overview.md +120 -0
  139. package/templates/skills/cbp-ship/reference/eas-cli-overview.md +60 -0
  140. package/templates/skills/cbp-ship/reference/gh-cli-overview.md +135 -0
  141. package/templates/skills/cbp-ship/reference/gh-cli-shipment-commands.md +283 -0
  142. package/templates/skills/cbp-ship/reference/npm-publish-monorepo.md +252 -0
  143. package/templates/skills/cbp-ship/reference/npm-publish-oidc-trusted.md +157 -0
  144. package/templates/skills/cbp-ship/reference/npm-publish-overview.md +171 -0
  145. package/templates/skills/cbp-ship/reference/preflight-checklist.md +88 -0
  146. package/templates/skills/cbp-ship/reference/railway-nestjs-deployment.md +169 -0
  147. package/templates/skills/cbp-ship/reference/railway-overview.md +120 -0
  148. package/templates/skills/cbp-ship/reference/railway-troubleshooting.md +168 -0
  149. package/templates/skills/cbp-ship/reference/release-please-overview.md +99 -0
  150. package/templates/skills/cbp-ship/reference/surface-expo-eas.md +155 -0
  151. package/templates/skills/cbp-ship/reference/surface-npm.md +180 -0
  152. package/templates/skills/cbp-ship/reference/surface-railway.md +152 -0
  153. package/templates/skills/cbp-ship/reference/surface-supabase.md +178 -0
  154. package/templates/skills/cbp-ship/reference/surface-tauri.md +138 -0
  155. package/templates/skills/cbp-ship/reference/surface-vercel.md +124 -0
  156. package/templates/skills/cbp-ship/reference/surface-vscode-ext.md +144 -0
  157. package/templates/skills/cbp-ship/reference/surfaces.md +60 -0
  158. package/templates/skills/cbp-ship/reference/testflight-automation.md +215 -0
  159. package/templates/skills/cbp-ship/reference/testflight-internal-vs-external.md +69 -0
  160. package/templates/skills/cbp-ship/reference/testflight-overview.md +98 -0
  161. package/templates/skills/cbp-ship/reference/versioning.md +116 -0
  162. package/templates/skills/cbp-ship/scripts/detect-surfaces.sh +217 -0
  163. package/templates/skills/cbp-ship/scripts/verify-expo-eas.sh +35 -0
  164. package/templates/skills/cbp-ship/scripts/verify-npm.sh +21 -0
  165. package/templates/skills/cbp-ship/scripts/verify-railway.sh +41 -0
  166. package/templates/skills/cbp-ship/scripts/verify-supabase.sh +19 -0
  167. package/templates/skills/cbp-ship/scripts/verify-tauri.sh +24 -0
  168. package/templates/skills/cbp-ship/scripts/verify-vercel.sh +32 -0
  169. package/templates/skills/cbp-ship/scripts/verify-vscode-ext.sh +25 -0
  170. package/templates/skills/cbp-ship/templates/eas.json +66 -0
  171. package/templates/skills/cbp-ship/templates/railway.toml +15 -0
  172. package/templates/skills/cbp-ship/templates/release-please-config.json +17 -0
  173. package/templates/skills/cbp-ship/templates/vercel.json +19 -0
  174. package/templates/skills/cbp-ship/templates/vscodeignore +21 -0
  175. package/templates/skills/cbp-ship/templates/workflow-changesets.yml +41 -0
  176. package/templates/skills/cbp-ship/templates/workflow-eas-submit.yml +53 -0
  177. package/templates/skills/cbp-ship/templates/workflow-npm-publish.yml +36 -0
  178. package/templates/skills/cbp-ship/templates/workflow-release-please.yml +21 -0
  179. package/templates/skills/cbp-ship/templates/workflow-tauri-release.yml +69 -0
  180. package/templates/skills/cbp-ship/templates/workflow-vsce-publish.yml +31 -0
  181. package/templates/skills/cbp-ship-configure/SKILL.md +296 -0
  182. package/templates/skills/cbp-ship-configure/reference/expo-mobile.md +204 -0
  183. package/templates/skills/cbp-ship-configure/reference/npm-package.md +165 -0
  184. package/templates/skills/cbp-ship-configure/reference/railway-backend.md +199 -0
  185. package/templates/skills/cbp-ship-configure/reference/supabase.md +200 -0
  186. package/templates/skills/cbp-ship-configure/reference/tauri-desktop.md +181 -0
  187. package/templates/skills/cbp-ship-configure/reference/vercel.md +117 -0
  188. package/templates/skills/cbp-ship-configure/reference/vscode-ext.md +155 -0
  189. package/templates/skills/cbp-ship-main/SKILL.md +65 -0
  190. package/templates/skills/cbp-supabase-branch-check/SKILL.md +337 -0
  191. package/templates/skills/cbp-supabase-branch-check/reference/dag-steps.md +29 -0
  192. package/templates/skills/cbp-supabase-migrate/SKILL.md +314 -0
  193. package/templates/skills/cbp-supabase-migrate/reference/advisor-triage.md +70 -0
  194. package/templates/skills/cbp-supabase-migrate/reference/cli-fallback.md +87 -0
  195. package/templates/skills/cbp-supabase-migrate/reference/preflight-dry-run.md +58 -0
  196. package/templates/skills/cbp-supabase-setup/SKILL.md +239 -0
  197. package/templates/skills/cbp-supabase-setup/reference/branching-setup.md +121 -0
  198. package/templates/skills/cbp-supabase-setup/reference/cli-fallback.md +109 -0
  199. package/templates/skills/cbp-task-check/SKILL.md +166 -0
  200. package/templates/skills/cbp-task-complete/SKILL.md +206 -0
  201. package/templates/skills/cbp-task-complete/reference/checkpoint-done-branching.md +48 -0
  202. package/templates/skills/cbp-task-complete/reference/next-step-heuristic.md +56 -0
  203. package/templates/skills/cbp-task-create/SKILL.md +167 -0
  204. package/templates/skills/cbp-task-start/SKILL.md +239 -0
  205. package/templates/skills/cbp-task-testing/SKILL.md +277 -0
  206. package/templates/skills/cbp-todo/SKILL.md +97 -0
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env bash
2
+ # Verify a Vercel deployment is READY and reachable.
3
+ # Usage: verify-vercel.sh <deployment-id-or-url>
4
+ # Exit: 0 ok, 1 fail, 2 verification_pending
5
+
6
+ set -euo pipefail
7
+ DEPLOY="$1"
8
+
9
+ STATUS=$(vercel inspect "$DEPLOY" --json 2>/dev/null | jq -r '.readyState // "UNKNOWN"')
10
+
11
+ case "$STATUS" in
12
+ READY)
13
+ URL=$(vercel inspect "$DEPLOY" --json | jq -r '.alias[0] // .url')
14
+ HTTP=$(curl -sIm 30 "https://$URL" 2>/dev/null | head -1 | awk '{print $2}')
15
+ case "$HTTP" in
16
+ 200|301|302|401) echo "OK $URL ($HTTP)"; exit 0 ;;
17
+ *) echo "FAIL: HTTP $HTTP for $URL"; exit 1 ;;
18
+ esac
19
+ ;;
20
+ BUILDING|QUEUED|INITIALIZING)
21
+ echo "PENDING: build still in progress ($STATUS)"
22
+ exit 2
23
+ ;;
24
+ ERROR|CANCELED)
25
+ echo "FAIL: deployment $STATUS"
26
+ exit 1
27
+ ;;
28
+ *)
29
+ echo "PENDING: unknown state $STATUS"
30
+ exit 2
31
+ ;;
32
+ esac
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ # Verify a VS Code extension version is on the Marketplace.
3
+ # Usage: verify-vscode-ext.sh <publisher.name> <version>
4
+ # Exit: 0 ok, 1 fail, 2 pending (marketplace lag)
5
+
6
+ set -euo pipefail
7
+ EXT_ID="$1"
8
+ VERSION="$2"
9
+
10
+ RESOLVED=$(npx --yes @vscode/vsce show "$EXT_ID" --json 2>/dev/null | jq -r '.versions[0].version // ""')
11
+
12
+ if [ "$RESOLVED" = "$VERSION" ]; then
13
+ EVENTS=$(npx --yes @vscode/vsce show "$EXT_ID" --json | jq -r '.activationEvents | length // 0')
14
+ [ "$EVENTS" -gt 0 ] || echo "WARN: no activation events declared"
15
+ echo "OK $EXT_ID@$VERSION"
16
+ exit 0
17
+ fi
18
+
19
+ if [ -z "$RESOLVED" ]; then
20
+ echo "FAIL: extension $EXT_ID not found on marketplace"
21
+ exit 1
22
+ fi
23
+
24
+ echo "PENDING: marketplace shows $RESOLVED, expected $VERSION (1-5min propagation lag possible)"
25
+ exit 2
@@ -0,0 +1,66 @@
1
+ {
2
+ "cli": {
3
+ "version": ">= 5.0.0"
4
+ },
5
+ "build": {
6
+ "development": {
7
+ "developmentClient": true,
8
+ "distribution": "internal",
9
+ "ios": {
10
+ "simulator": false,
11
+ "resourceClass": "m-medium"
12
+ },
13
+ "android": {
14
+ "buildType": "apk"
15
+ },
16
+ "channel": "development"
17
+ },
18
+ "preview": {
19
+ "distribution": "internal",
20
+ "ios": {
21
+ "simulator": false,
22
+ "resourceClass": "m-medium"
23
+ },
24
+ "android": {
25
+ "buildType": "apk"
26
+ },
27
+ "channel": "preview",
28
+ "autoIncrement": "buildNumber"
29
+ },
30
+ "production": {
31
+ "ios": {
32
+ "resourceClass": "m-medium"
33
+ },
34
+ "android": {
35
+ "buildType": "app-bundle"
36
+ },
37
+ "channel": "production",
38
+ "autoIncrement": "buildNumber"
39
+ }
40
+ },
41
+ "submit": {
42
+ "production": {
43
+ "ios": {
44
+ "appleId": "REPLACE_WITH_APPLE_ID_EMAIL",
45
+ "ascAppId": "REPLACE_WITH_APP_STORE_CONNECT_APP_ID",
46
+ "appleTeamId": "REPLACE_WITH_APPLE_TEAM_ID"
47
+ },
48
+ "android": {
49
+ "serviceAccountKeyPath": "./google-play-service-account.json",
50
+ "track": "internal",
51
+ "releaseStatus": "draft"
52
+ }
53
+ },
54
+ "preview": {
55
+ "ios": {
56
+ "appleId": "REPLACE_WITH_APPLE_ID_EMAIL",
57
+ "ascAppId": "REPLACE_WITH_APP_STORE_CONNECT_APP_ID",
58
+ "appleTeamId": "REPLACE_WITH_APPLE_TEAM_ID"
59
+ },
60
+ "android": {
61
+ "serviceAccountKeyPath": "./google-play-service-account.json",
62
+ "track": "internal"
63
+ }
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,15 @@
1
+ # Railway service configuration
2
+ # Reference: https://docs.railway.app/reference/config-as-code
3
+
4
+ [build]
5
+ builder = "DOCKERFILE"
6
+ dockerfilePath = "Dockerfile"
7
+
8
+ [deploy]
9
+ startCommand = "pnpm start"
10
+ healthcheckPath = "/health"
11
+ healthcheckTimeout = 30
12
+ restartPolicyType = "ON_FAILURE"
13
+ restartPolicyMaxRetries = 3
14
+ numReplicas = 1
15
+ sleepApplication = false
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3
+ "release-type": "node",
4
+ "include-component-in-tag": false,
5
+ "bump-minor-pre-major": true,
6
+ "bump-patch-for-minor-pre-major": false,
7
+ "draft": false,
8
+ "prerelease": false,
9
+ "packages": {
10
+ ".": {
11
+ "package-name": "REPLACE_WITH_PACKAGE_NAME",
12
+ "changelog-path": "CHANGELOG.md",
13
+ "release-type": "node",
14
+ "extra-files": []
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://openapi.vercel.sh/vercel.json",
3
+ "framework": "nextjs",
4
+ "buildCommand": "cd ../.. && pnpm turbo build --filter=REPLACE_WITH_APP_NAME",
5
+ "installCommand": "cd ../.. && pnpm install --frozen-lockfile",
6
+ "outputDirectory": ".next",
7
+ "regions": ["iad1"],
8
+ "headers": [
9
+ {
10
+ "source": "/(.*)",
11
+ "headers": [
12
+ { "key": "X-Frame-Options", "value": "SAMEORIGIN" },
13
+ { "key": "X-Content-Type-Options", "value": "nosniff" },
14
+ { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" },
15
+ { "key": "Permissions-Policy", "value": "camera=(), microphone=(), geolocation=()" }
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,21 @@
1
+ .vscode/**
2
+ .vscode-test/**
3
+ src/**
4
+ .gitignore
5
+ .yarnrc
6
+ vsc-extension-quickstart.md
7
+ **/tsconfig.json
8
+ **/.eslintrc.*
9
+ **/eslint.config.*
10
+ **/*.map
11
+ **/*.ts
12
+ node_modules
13
+ .git/**
14
+ *.test.*
15
+ *.spec.*
16
+ **/__tests__/**
17
+ **/__mocks__/**
18
+ .github/**
19
+ .claude/**
20
+ docs/**
21
+ CHANGELOG.md
@@ -0,0 +1,41 @@
1
+ name: changesets
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - REPLACE_WITH_INTEGRATION_BRANCH
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+ id-token: write
12
+
13
+ jobs:
14
+ release:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - uses: pnpm/action-setup@v3
22
+ with:
23
+ version: 10
24
+
25
+ - uses: actions/setup-node@v4
26
+ with:
27
+ node-version: 22
28
+ cache: pnpm
29
+ registry-url: https://registry.npmjs.org
30
+
31
+ - run: pnpm install --frozen-lockfile
32
+
33
+ - uses: changesets/action@v1
34
+ with:
35
+ version: pnpm changeset version
36
+ publish: pnpm changeset publish
37
+ commit: 'chore(release): version packages'
38
+ title: 'chore(release): version packages'
39
+ env:
40
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41
+ NPM_CONFIG_PROVENANCE: 'true'
@@ -0,0 +1,53 @@
1
+ name: EAS Build + Submit
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'mobile-v*.*.*'
7
+ workflow_dispatch:
8
+ inputs:
9
+ profile:
10
+ type: choice
11
+ description: Build profile
12
+ options: [preview, production]
13
+ default: preview
14
+ platform:
15
+ type: choice
16
+ description: Platform
17
+ options: [all, ios, android]
18
+ default: all
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - uses: pnpm/action-setup@v3
27
+ with:
28
+ version: 10
29
+
30
+ - uses: actions/setup-node@v4
31
+ with:
32
+ node-version: 22
33
+ cache: pnpm
34
+
35
+ - uses: expo/expo-github-action@v8
36
+ with:
37
+ eas-version: latest
38
+ token: ${{ secrets.EXPO_TOKEN }}
39
+
40
+ - run: pnpm install --frozen-lockfile
41
+
42
+ - name: EAS Build
43
+ run: |
44
+ cd apps/mobile
45
+ eas build --profile ${{ inputs.profile || 'preview' }} \
46
+ --platform ${{ inputs.platform || 'all' }} \
47
+ --non-interactive --no-wait
48
+
49
+ - name: EAS Submit (production only)
50
+ if: inputs.profile == 'production'
51
+ run: |
52
+ cd apps/mobile
53
+ eas submit --platform ${{ inputs.platform || 'all' }} --latest --non-interactive
@@ -0,0 +1,36 @@
1
+ name: npm publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write # required for OIDC trusted publishing
12
+
13
+ jobs:
14
+ publish:
15
+ runs-on: ubuntu-latest
16
+ environment: release
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ fetch-depth: 0
21
+
22
+ - uses: pnpm/action-setup@v3
23
+ with:
24
+ version: 10
25
+
26
+ - uses: actions/setup-node@v4
27
+ with:
28
+ node-version: 22
29
+ cache: pnpm
30
+ registry-url: https://registry.npmjs.org
31
+
32
+ - run: pnpm install --frozen-lockfile
33
+ - run: pnpm build
34
+ - run: pnpm publint
35
+ - run: pnpm attw --pack
36
+ - run: npm publish --provenance --access public
@@ -0,0 +1,21 @@
1
+ name: release-please
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - REPLACE_WITH_INTEGRATION_BRANCH
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+
12
+ jobs:
13
+ release-please:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: googleapis/release-please-action@v4
17
+ with:
18
+ token: ${{ secrets.GITHUB_TOKEN }}
19
+ release-type: node
20
+ config-file: release-please-config.json
21
+ manifest-file: .release-please-manifest.json
@@ -0,0 +1,69 @@
1
+ name: Release Desktop App
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+
8
+ jobs:
9
+ release:
10
+ permissions:
11
+ contents: write
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ include:
16
+ - platform: macos-14 # Apple Silicon
17
+ target: aarch64-apple-darwin
18
+ - platform: macos-13 # Intel
19
+ target: x86_64-apple-darwin
20
+
21
+ runs-on: ${{ matrix.platform }}
22
+
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - uses: pnpm/action-setup@v3
27
+ with:
28
+ version: 10
29
+
30
+ - uses: actions/setup-node@v4
31
+ with:
32
+ node-version: 22
33
+ cache: pnpm
34
+
35
+ - uses: dtolnay/rust-toolchain@stable
36
+ with:
37
+ targets: ${{ matrix.target }}
38
+
39
+ - uses: swatinem/rust-cache@v2
40
+ with:
41
+ workspaces: apps/desktop/src-tauri
42
+
43
+ - run: pnpm install --frozen-lockfile
44
+
45
+ - name: Write Apple API key to file
46
+ run: |
47
+ mkdir -p ~/private_keys
48
+ echo "$APPLE_API_KEY_CONTENT" > ~/private_keys/AuthKey.p8
49
+ env:
50
+ APPLE_API_KEY_CONTENT: ${{ secrets.APPLE_API_KEY_CONTENT }}
51
+
52
+ - uses: tauri-apps/tauri-action@v0
53
+ env:
54
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55
+ TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
56
+ TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
57
+ APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
58
+ APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
59
+ APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
60
+ APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
61
+ APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
62
+ APPLE_API_KEY_PATH: ~/private_keys/AuthKey.p8
63
+ with:
64
+ projectPath: apps/desktop
65
+ tagName: ${{ github.ref_name }}
66
+ releaseName: 'REPLACE_WITH_APP_NAME ${{ github.ref_name }}'
67
+ releaseDraft: false
68
+ prerelease: false
69
+ args: --target ${{ matrix.target }}
@@ -0,0 +1,31 @@
1
+ name: VS Code Marketplace publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'vscode-v*.*.*'
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ publish:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - uses: pnpm/action-setup@v3
16
+ with:
17
+ version: 10
18
+
19
+ - uses: actions/setup-node@v4
20
+ with:
21
+ node-version: 22
22
+ cache: pnpm
23
+
24
+ - run: pnpm install --frozen-lockfile
25
+ - run: pnpm --filter REPLACE_WITH_EXT_NAME build
26
+ - name: Publish to Marketplace
27
+ env:
28
+ VSCE_PAT: ${{ secrets.VSCE_PAT }}
29
+ run: |
30
+ cd apps/vscode
31
+ npx @vscode/vsce publish --no-yarn