@nemus-cli/nemus 0.2.1
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/CHANGELOG.md +86 -0
- package/LICENSE +21 -0
- package/README.md +275 -0
- package/assets/README.md +53 -0
- package/assets/banner.png +0 -0
- package/assets/banner.svg +66 -0
- package/assets/favicon-32.png +0 -0
- package/assets/favicon-64.png +0 -0
- package/assets/icon-256.png +0 -0
- package/assets/icon.svg +23 -0
- package/assets/logo-256.png +0 -0
- package/assets/logo-512.png +0 -0
- package/assets/logo-wordmark.svg +35 -0
- package/assets/logo.svg +32 -0
- package/bin/workspace.js +130 -0
- package/dist/cli/ai-prompt.js +421 -0
- package/dist/cli/dashboard/AgentList.js +61 -0
- package/dist/cli/dashboard/DashboardSidebar.js +280 -0
- package/dist/cli/dashboard/HelpFooter.js +73 -0
- package/dist/cli/dashboard/StatusBadge.js +50 -0
- package/dist/cli/dashboard/index.js +11 -0
- package/dist/cli/dashboard/types.js +2 -0
- package/dist/cli/tui.js +48 -0
- package/dist/commands/ai-prompt.js +22 -0
- package/dist/commands/analyze-deps.js +138 -0
- package/dist/commands/archive.js +113 -0
- package/dist/commands/branch/create.js +119 -0
- package/dist/commands/branch/index.js +104 -0
- package/dist/commands/branch/merge.js +90 -0
- package/dist/commands/branch/rebase.js +84 -0
- package/dist/commands/branch/switch.js +165 -0
- package/dist/commands/cache/index.js +80 -0
- package/dist/commands/cache/manager.js +198 -0
- package/dist/commands/cleanup.js +153 -0
- package/dist/commands/configure-claude.js +55 -0
- package/dist/commands/configure.js +231 -0
- package/dist/commands/create.js +204 -0
- package/dist/commands/dashboard/hook-handler.js +162 -0
- package/dist/commands/dashboard/index.js +258 -0
- package/dist/commands/dashboard/launcher.js +40 -0
- package/dist/commands/dashboard/session-picker.js +106 -0
- package/dist/commands/dashboard/sidebar.js +39 -0
- package/dist/commands/dashboard/workspace-picker.js +95 -0
- package/dist/commands/delete.js +194 -0
- package/dist/commands/deprecated-aliases.js +44 -0
- package/dist/commands/diff.js +129 -0
- package/dist/commands/doctor.js +141 -0
- package/dist/commands/generate-docs.js +77 -0
- package/dist/commands/ghq-status.js +72 -0
- package/dist/commands/go.js +154 -0
- package/dist/commands/history.js +124 -0
- package/dist/commands/list.js +191 -0
- package/dist/commands/mcp/index.js +69 -0
- package/dist/commands/migrate.js +296 -0
- package/dist/commands/remove-repo.js +217 -0
- package/dist/commands/report-bug.js +112 -0
- package/dist/commands/run.js +147 -0
- package/dist/commands/save-context.js +171 -0
- package/dist/commands/sessions.js +129 -0
- package/dist/commands/status.js +138 -0
- package/dist/commands/suite/create.js +212 -0
- package/dist/commands/suite/delete.js +64 -0
- package/dist/commands/suite/export.js +126 -0
- package/dist/commands/suite/import.js +128 -0
- package/dist/commands/suite/index.js +94 -0
- package/dist/commands/suite/list.js +49 -0
- package/dist/commands/suite/use.js +227 -0
- package/dist/commands/sync.js +117 -0
- package/dist/commands/update.js +203 -0
- package/dist/mcp/install.js +550 -0
- package/dist/mcp/server.js +398 -0
- package/dist/mcp/tools.js +922 -0
- package/dist/pi-extensions/permission-sync.ts.template +41 -0
- package/dist/pi-extensions/permissions-gate.ts.template +69 -0
- package/dist/pi-extensions/pr-fix-trigger.ts.template +124 -0
- package/dist/pi-extensions/review-reminder.ts.template +58 -0
- package/dist/pi-extensions/workspace-input-status.ts.template +919 -0
- package/dist/program.js +136 -0
- package/dist/scripts/workspace-table.py +394 -0
- package/dist/types/dashboard.js +11 -0
- package/dist/types/index.js +2 -0
- package/dist/utils/agent-config.js +263 -0
- package/dist/utils/agent-state.js +178 -0
- package/dist/utils/banner.js +24 -0
- package/dist/utils/branch-operations.js +232 -0
- package/dist/utils/bug-report.js +355 -0
- package/dist/utils/cache.js +168 -0
- package/dist/utils/claude-integration.js +617 -0
- package/dist/utils/claude-sessions.js +260 -0
- package/dist/utils/cleanup-operations.js +120 -0
- package/dist/utils/colors.js +26 -0
- package/dist/utils/command-helpers.js +44 -0
- package/dist/utils/config.js +150 -0
- package/dist/utils/context-file.js +33 -0
- package/dist/utils/dashboard-hooks.js +172 -0
- package/dist/utils/dependency-analyzer.js +234 -0
- package/dist/utils/diff-operations.js +80 -0
- package/dist/utils/doc-generator.js +184 -0
- package/dist/utils/ghq-integration.js +332 -0
- package/dist/utils/git-operations.js +237 -0
- package/dist/utils/git-status.js +187 -0
- package/dist/utils/github.js +68 -0
- package/dist/utils/health-checks.js +345 -0
- package/dist/utils/history.js +150 -0
- package/dist/utils/hooks.js +100 -0
- package/dist/utils/logger.js +40 -0
- package/dist/utils/permission-sync.js +681 -0
- package/dist/utils/pi-extensions.js +224 -0
- package/dist/utils/progress.js +92 -0
- package/dist/utils/prompts.js +279 -0
- package/dist/utils/repo-resolver.js +260 -0
- package/dist/utils/retry.js +65 -0
- package/dist/utils/run-operations.js +30 -0
- package/dist/utils/suite.js +159 -0
- package/dist/utils/sync-operations.js +107 -0
- package/dist/utils/tmux-dashboard.js +184 -0
- package/dist/utils/validation.js +153 -0
- package/dist/utils/version-check.js +121 -0
- package/dist/utils/workspace-meta.js +185 -0
- package/install-shell-integration.sh +532 -0
- package/install.sh +401 -0
- package/package.json +90 -0
- package/remove-shell-block.awk +44 -0
- package/scripts/postinstall.js +85 -0
- package/skills/analyze-deps.md +23 -0
- package/skills/archive-workspace.md +26 -0
- package/skills/branch-create.md +18 -0
- package/skills/create-workspace.md +39 -0
- package/skills/delete-workspace.md +37 -0
- package/skills/list-org-repos.md +26 -0
- package/skills/list-suites.md +24 -0
- package/skills/list-workspaces.md +27 -0
- package/skills/refresh-workspace-docs.md +89 -0
- package/skills/remove-repo.md +25 -0
- package/skills/run-command.md +23 -0
- package/skills/save-context.md +68 -0
- package/skills/search-repos.md +31 -0
- package/skills/snapshot-list.md +18 -0
- package/skills/snapshot-save.md +12 -0
- package/skills/switch-branch.md +18 -0
- package/skills/update-cache.md +21 -0
- package/skills/update-workspace.md +66 -0
- package/skills/workspace-cleanup.md +18 -0
- package/skills/workspace-diff.md +23 -0
- package/skills/workspace-doctor.md +23 -0
- package/skills/workspace-info.md +45 -0
- package/skills/workspace-manager/SKILL.md +201 -0
- package/skills/workspace-manager/references/ai-prompt.md +44 -0
- package/skills/workspace-manager/references/analyze-deps.md +45 -0
- package/skills/workspace-manager/references/archive-workspace.md +38 -0
- package/skills/workspace-manager/references/branch-create.md +31 -0
- package/skills/workspace-manager/references/branch-merge.md +22 -0
- package/skills/workspace-manager/references/branch-rebase.md +22 -0
- package/skills/workspace-manager/references/cache-clear.md +18 -0
- package/skills/workspace-manager/references/cache-info.md +22 -0
- package/skills/workspace-manager/references/configure-claude.md +31 -0
- package/skills/workspace-manager/references/configure.md +35 -0
- package/skills/workspace-manager/references/create-workspace.md +45 -0
- package/skills/workspace-manager/references/dashboard.md +61 -0
- package/skills/workspace-manager/references/delete-workspace.md +33 -0
- package/skills/workspace-manager/references/generate-docs.md +36 -0
- package/skills/workspace-manager/references/ghq-status.md +28 -0
- package/skills/workspace-manager/references/go.md +33 -0
- package/skills/workspace-manager/references/history.md +41 -0
- package/skills/workspace-manager/references/list-org-repos.md +26 -0
- package/skills/workspace-manager/references/list-suites.md +21 -0
- package/skills/workspace-manager/references/list-workspaces.md +27 -0
- package/skills/workspace-manager/references/mcp.md +49 -0
- package/skills/workspace-manager/references/remove-repo.md +26 -0
- package/skills/workspace-manager/references/run-command.md +44 -0
- package/skills/workspace-manager/references/search-repos.md +24 -0
- package/skills/workspace-manager/references/sessions.md +27 -0
- package/skills/workspace-manager/references/suite-create.md +22 -0
- package/skills/workspace-manager/references/suite-delete.md +21 -0
- package/skills/workspace-manager/references/suite-export.md +19 -0
- package/skills/workspace-manager/references/suite-import.md +19 -0
- package/skills/workspace-manager/references/suite-use.md +27 -0
- package/skills/workspace-manager/references/switch-branch.md +25 -0
- package/skills/workspace-manager/references/update-cache.md +22 -0
- package/skills/workspace-manager/references/update-workspace.md +50 -0
- package/skills/workspace-manager/references/workspace-cleanup.md +33 -0
- package/skills/workspace-manager/references/workspace-diff.md +27 -0
- package/skills/workspace-manager/references/workspace-doctor.md +27 -0
- package/skills/workspace-manager/references/workspace-info.md +33 -0
- package/skills/workspace-manager/references/workspace-status.md +43 -0
- package/skills/workspace-manager/references/workspace-sync.md +26 -0
- package/skills/workspace-status.md +26 -0
- package/skills/workspace-sync.md +23 -0
- package/src/cli/ai-prompt.test.ts +667 -0
- package/src/cli/ai-prompt.ts +421 -0
- package/src/cli/dashboard/AgentList.tsx +44 -0
- package/src/cli/dashboard/DashboardSidebar.tsx +291 -0
- package/src/cli/dashboard/HelpFooter.tsx +22 -0
- package/src/cli/dashboard/StatusBadge.tsx +23 -0
- package/src/cli/dashboard/index.ts +5 -0
- package/src/cli/dashboard/types.ts +16 -0
- package/src/cli/tui.tsx +51 -0
- package/src/cli/workspace-cli.test.ts +30 -0
- package/src/commands/ai-prompt.ts +21 -0
- package/src/commands/analyze-deps.ts +119 -0
- package/src/commands/archive.ts +114 -0
- package/src/commands/branch/create.ts +94 -0
- package/src/commands/branch/index.ts +74 -0
- package/src/commands/branch/merge.ts +61 -0
- package/src/commands/branch/rebase.ts +54 -0
- package/src/commands/branch/switch.ts +150 -0
- package/src/commands/cache/index.ts +51 -0
- package/src/commands/cache/manager.ts +168 -0
- package/src/commands/cleanup.ts +132 -0
- package/src/commands/configure-claude.ts +55 -0
- package/src/commands/configure.ts +204 -0
- package/src/commands/create.ts +196 -0
- package/src/commands/dashboard/hook-handler.ts +138 -0
- package/src/commands/dashboard/index.ts +248 -0
- package/src/commands/dashboard/launcher.ts +42 -0
- package/src/commands/dashboard/session-picker.ts +73 -0
- package/src/commands/dashboard/sidebar.js +39 -0
- package/src/commands/dashboard/workspace-picker.ts +62 -0
- package/src/commands/delete.test.ts +250 -0
- package/src/commands/delete.ts +171 -0
- package/src/commands/deprecated-aliases.ts +55 -0
- package/src/commands/diff.ts +106 -0
- package/src/commands/doctor.ts +110 -0
- package/src/commands/generate-docs.ts +45 -0
- package/src/commands/ghq-status.ts +70 -0
- package/src/commands/go.ts +125 -0
- package/src/commands/history.ts +136 -0
- package/src/commands/list.test.ts +219 -0
- package/src/commands/list.ts +176 -0
- package/src/commands/mcp/index.ts +39 -0
- package/src/commands/migrate.ts +277 -0
- package/src/commands/remove-repo.ts +194 -0
- package/src/commands/report-bug.ts +88 -0
- package/src/commands/run.ts +125 -0
- package/src/commands/save-context.test.ts +113 -0
- package/src/commands/save-context.ts +141 -0
- package/src/commands/sessions.ts +99 -0
- package/src/commands/status.ts +111 -0
- package/src/commands/suite/create.ts +240 -0
- package/src/commands/suite/delete.ts +65 -0
- package/src/commands/suite/export.ts +97 -0
- package/src/commands/suite/import.ts +100 -0
- package/src/commands/suite/index.ts +66 -0
- package/src/commands/suite/list.ts +54 -0
- package/src/commands/suite/use.ts +232 -0
- package/src/commands/sync.ts +97 -0
- package/src/commands/update.ts +197 -0
- package/src/mcp/install.ts +529 -0
- package/src/mcp/server.ts +579 -0
- package/src/mcp/tools.test.ts +545 -0
- package/src/mcp/tools.ts +1019 -0
- package/src/mcp/update-workspace.test.ts +220 -0
- package/src/pi-extensions/permission-sync.ts.template +41 -0
- package/src/pi-extensions/permissions-gate.ts.template +69 -0
- package/src/pi-extensions/pr-fix-trigger.ts.template +124 -0
- package/src/pi-extensions/review-reminder.ts.template +58 -0
- package/src/pi-extensions/workspace-input-status.ts.template +919 -0
- package/src/program.ts +112 -0
- package/src/scripts/workspace-table.py +394 -0
- package/src/types/dashboard.ts +29 -0
- package/src/types/index.ts +109 -0
- package/src/types/ink.d.ts +171 -0
- package/src/utils/agent-config.test.ts +303 -0
- package/src/utils/agent-config.ts +264 -0
- package/src/utils/agent-state.test.ts +166 -0
- package/src/utils/agent-state.ts +135 -0
- package/src/utils/banner.ts +24 -0
- package/src/utils/branch-operations.ts +237 -0
- package/src/utils/bug-report.test.ts +174 -0
- package/src/utils/bug-report.ts +355 -0
- package/src/utils/cache.ts +150 -0
- package/src/utils/claude-integration.test.ts +381 -0
- package/src/utils/claude-integration.ts +649 -0
- package/src/utils/claude-sessions.test.ts +262 -0
- package/src/utils/claude-sessions.ts +251 -0
- package/src/utils/cleanup-operations.ts +94 -0
- package/src/utils/colors.ts +25 -0
- package/src/utils/command-helpers.ts +46 -0
- package/src/utils/config.test.ts +203 -0
- package/src/utils/config.ts +133 -0
- package/src/utils/context-file.ts +36 -0
- package/src/utils/dashboard-hooks.test.ts +168 -0
- package/src/utils/dashboard-hooks.ts +163 -0
- package/src/utils/dependency-analyzer.ts +243 -0
- package/src/utils/diff-operations.ts +59 -0
- package/src/utils/doc-generator.ts +187 -0
- package/src/utils/ghq-integration.test.ts +195 -0
- package/src/utils/ghq-integration.ts +317 -0
- package/src/utils/git-operations.test.ts +265 -0
- package/src/utils/git-operations.ts +233 -0
- package/src/utils/git-status.ts +171 -0
- package/src/utils/github.ts +74 -0
- package/src/utils/health-checks.ts +359 -0
- package/src/utils/history.ts +140 -0
- package/src/utils/hooks.ts +92 -0
- package/src/utils/logger.ts +37 -0
- package/src/utils/permission-sync.test.ts +593 -0
- package/src/utils/permission-sync.ts +720 -0
- package/src/utils/pi-extensions.test.ts +182 -0
- package/src/utils/pi-extensions.ts +226 -0
- package/src/utils/progress.ts +73 -0
- package/src/utils/prompts.test.ts +169 -0
- package/src/utils/prompts.ts +296 -0
- package/src/utils/repo-resolver.test.ts +313 -0
- package/src/utils/repo-resolver.ts +294 -0
- package/src/utils/retry.test.ts +124 -0
- package/src/utils/retry.ts +85 -0
- package/src/utils/run-operations.ts +38 -0
- package/src/utils/suite.test.ts +256 -0
- package/src/utils/suite.ts +144 -0
- package/src/utils/sync-operations.ts +87 -0
- package/src/utils/tmux-dashboard.ts +193 -0
- package/src/utils/validation.test.ts +139 -0
- package/src/utils/validation.ts +128 -0
- package/src/utils/version-check.test.ts +108 -0
- package/src/utils/version-check.ts +96 -0
- package/src/utils/workspace-meta.ts +173 -0
- package/sync-permissions.sh +137 -0
- package/tsconfig.json +20 -0
- package/uninstall.sh +162 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-workspace
|
|
3
|
+
description: Create a new multi-repo workspace by cloning repositories from the org using `nemus create`. ALWAYS use this skill — never run `git clone` directly — when the user asks to create a workspace, set up a new workspace, or start fresh with a set of repos.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create Workspace
|
|
7
|
+
|
|
8
|
+
Create a new workspace by cloning repositories.
|
|
9
|
+
|
|
10
|
+
## Resolving Repositories
|
|
11
|
+
|
|
12
|
+
If the user hasn't specified which repos to clone, help them discover:
|
|
13
|
+
```bash
|
|
14
|
+
nemus cache search <keyword>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Creating the Workspace
|
|
18
|
+
|
|
19
|
+
Run non-interactively:
|
|
20
|
+
```bash
|
|
21
|
+
nemus create --workspace <name> --repos <repo1,repo2,...> --yes
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or interactively (prompts for workspace name and repos):
|
|
25
|
+
```bash
|
|
26
|
+
nemus create
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Presenting Results
|
|
30
|
+
|
|
31
|
+
Report:
|
|
32
|
+
- Workspace created at path
|
|
33
|
+
- Successfully cloned repos
|
|
34
|
+
- Any failures with their error reason
|
|
35
|
+
|
|
36
|
+
## Suggested Follow-ups
|
|
37
|
+
|
|
38
|
+
- `nemus status <name>` to verify
|
|
39
|
+
- `nemus update --workspace <name> --repos <more-repos>` to add more repos later
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: delete-workspace
|
|
3
|
+
description: Delete one or more workspaces and all their contents permanently
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Delete Workspace
|
|
7
|
+
|
|
8
|
+
Delete one or more workspaces permanently.
|
|
9
|
+
|
|
10
|
+
## Resolving the Workspace
|
|
11
|
+
|
|
12
|
+
If the user hasn't specified which workspace to delete:
|
|
13
|
+
```bash
|
|
14
|
+
nemus list 2>&1 | cat
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Deleting
|
|
18
|
+
|
|
19
|
+
Run non-interactively:
|
|
20
|
+
```bash
|
|
21
|
+
nemus delete --workspace <name> --yes
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or interactively (prompts for confirmation):
|
|
25
|
+
```bash
|
|
26
|
+
nemus delete
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Important Notes
|
|
30
|
+
|
|
31
|
+
- This permanently removes the workspace directory and all its contents
|
|
32
|
+
- There is no undo — repos will need to be re-cloned
|
|
33
|
+
- Always confirm with the user before deleting
|
|
34
|
+
|
|
35
|
+
## Suggested Follow-ups
|
|
36
|
+
|
|
37
|
+
- `nemus list` to verify the workspace is gone
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: list-org-repos
|
|
3
|
+
description: List all organization repositories from GitHub
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# List Org Repos
|
|
7
|
+
|
|
8
|
+
List all repositories in the GitHub organization.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus cache list
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If the cache is empty or stale:
|
|
17
|
+
```bash
|
|
18
|
+
nemus cache refresh
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Presenting Results
|
|
22
|
+
|
|
23
|
+
Show repo names. Can be filtered by searching:
|
|
24
|
+
```bash
|
|
25
|
+
nemus cache search <keyword>
|
|
26
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: list-suites
|
|
3
|
+
description: List all saved suites (reusable repo collections)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# List Suites
|
|
7
|
+
|
|
8
|
+
List all saved suites (reusable collections of repos).
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus suite list
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Presenting Results
|
|
17
|
+
|
|
18
|
+
Show each suite's name and the repos it contains.
|
|
19
|
+
|
|
20
|
+
## Related
|
|
21
|
+
|
|
22
|
+
- `nemus suite create` to create a new suite
|
|
23
|
+
- `nemus suite use` to create a workspace from a suite
|
|
24
|
+
- `nemus suite delete` to remove a suite
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: list-workspaces
|
|
3
|
+
description: List all workspaces with their repo counts and creation dates
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# List Workspaces
|
|
7
|
+
|
|
8
|
+
List all workspaces with their status.
|
|
9
|
+
|
|
10
|
+
## Listing
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus list
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Note: This command opens an interactive picker. To just see the output without selecting, pipe it:
|
|
17
|
+
```bash
|
|
18
|
+
nemus list 2>&1 | cat
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Presenting Results
|
|
22
|
+
|
|
23
|
+
Show each workspace with:
|
|
24
|
+
- Name
|
|
25
|
+
- Number of repositories
|
|
26
|
+
- Creation date
|
|
27
|
+
- Last active session (if any)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: refresh-workspace-docs
|
|
3
|
+
description: Refresh the per-repo documentation embedded in a workspace's context file (AGENTS.md / .claude.md). Use when a workspace was created a while ago and its repos have since received updates to their README, AGENTS.md, or CLAUDE.md files, so the embedded copies in the workspace context are stale.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Refresh Workspace Docs
|
|
7
|
+
|
|
8
|
+
When a workspace is created, each repo's own `AGENTS.md` / `CLAUDE.md` is
|
|
9
|
+
embedded into the workspace-level context file (`AGENTS.md` / `.claude.md`)
|
|
10
|
+
under the **Per-Repository Context** section. Those embedded copies are a
|
|
11
|
+
snapshot taken at creation time — they do **not** auto-update when the repo
|
|
12
|
+
later receives new commits that change its README or agent docs.
|
|
13
|
+
|
|
14
|
+
This skill refreshes that embedded content so the agent works from the
|
|
15
|
+
latest per-repo guidance.
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
- A workspace was created days/weeks ago and the repos have since changed.
|
|
20
|
+
- A repo's `AGENTS.md` / `CLAUDE.md` / `README.md` was updated upstream and
|
|
21
|
+
you want the workspace context to reflect it.
|
|
22
|
+
- The agent seems to be following outdated repo-specific instructions.
|
|
23
|
+
- After a teammate merges changes to a repo's documentation.
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
Two steps: **sync the repos to latest**, then **regenerate the context**.
|
|
28
|
+
|
|
29
|
+
### 1. Pull the latest for every repo in the workspace
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
nemus sync <workspace-name>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This `git pull`s every repo so their on-disk `README.md`, `AGENTS.md`, and
|
|
36
|
+
`CLAUDE.md` reflect the latest upstream content. (Omit the name to sync the
|
|
37
|
+
current workspace.)
|
|
38
|
+
|
|
39
|
+
### 2. Regenerate the workspace context
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
w migrate
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`nemus migrate` re-reads each repo's context files from disk and **surgically
|
|
46
|
+
updates only the `## Per-Repository Context` section** of the workspace
|
|
47
|
+
`AGENTS.md` / `.claude.md`. Your own notes (the `## Notes` section, saved
|
|
48
|
+
`CONTEXT.md`, etc.) are preserved untouched.
|
|
49
|
+
|
|
50
|
+
Preview what would change first with:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
w migrate --dry-run
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## What Gets Refreshed
|
|
57
|
+
|
|
58
|
+
The `## Per-Repository Context` section is rebuilt from each repo's context
|
|
59
|
+
file, discovered in this priority order (per repo, up to 2 directory levels
|
|
60
|
+
deep for monorepo packages):
|
|
61
|
+
|
|
62
|
+
1. `AGENTS.md`
|
|
63
|
+
2. `.claude.md`
|
|
64
|
+
3. `CLAUDE.md`
|
|
65
|
+
|
|
66
|
+
Each repo's content is embedded with imperative scoping ("You MUST follow
|
|
67
|
+
these rules whenever you work with files inside `<repo>/`") and placed near
|
|
68
|
+
the top of the workspace context file so the agent weights it heavily.
|
|
69
|
+
|
|
70
|
+
## Notes
|
|
71
|
+
|
|
72
|
+
- This only refreshes **embedded** per-repo docs in the workspace context
|
|
73
|
+
file. The repos themselves are updated by `nemus sync` in step 1.
|
|
74
|
+
- `nemus migrate` runs across **all** workspaces. That's safe and idempotent —
|
|
75
|
+
every workspace gets its per-repo section refreshed from current on-disk
|
|
76
|
+
content. Use `--dry-run` first if you want to see scope.
|
|
77
|
+
- If a workspace has no repo-level context files, the section is omitted
|
|
78
|
+
(or removed if it previously existed).
|
|
79
|
+
|
|
80
|
+
## Example
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Workspace 'payments' was created 3 weeks ago; partnerships-api has since
|
|
84
|
+
# rewritten its AGENTS.md with new Jira board instructions.
|
|
85
|
+
|
|
86
|
+
nemus sync payments # pull latest — partnerships-api/AGENTS.md now current
|
|
87
|
+
w migrate --dry-run # preview: "payments: would embed per-repo context from 4 location(s)"
|
|
88
|
+
w migrate # apply — workspace AGENTS.md now has the new instructions
|
|
89
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: remove-repo
|
|
3
|
+
description: Remove a repository from a workspace
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Remove Repo
|
|
7
|
+
|
|
8
|
+
Remove a repository from a workspace.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus remove-repo --workspace <name> --repo <repo-name> --yes
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or interactively:
|
|
17
|
+
```bash
|
|
18
|
+
nemus remove-repo
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Important Notes
|
|
22
|
+
|
|
23
|
+
- This removes the repo directory from the workspace
|
|
24
|
+
- The repo is not deleted from GitHub, only removed locally
|
|
25
|
+
- The workspace metadata is updated to reflect the removal
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: run-command
|
|
3
|
+
description: Run a shell command across all repos in a workspace
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Run Command
|
|
7
|
+
|
|
8
|
+
Run a shell command across all repos in a workspace.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus run <workspace-name> "<command>"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Example:
|
|
17
|
+
```bash
|
|
18
|
+
nemus run my-workspace "git log --oneline -5"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Presenting Results
|
|
22
|
+
|
|
23
|
+
Report the output from each repo, clearly labeling which output comes from which repo.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: save-context
|
|
3
|
+
description: Save progress summary to workspace (persists across /clear and session restarts). Use when you want to preserve important context, findings, or progress before clearing conversation history.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Save Context
|
|
7
|
+
|
|
8
|
+
Save a progress summary or important context to the workspace. This persists in `CONTEXT.md` and survives `/clear`, session restarts, and agent switches.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- Before `/clear` to preserve progress
|
|
13
|
+
- After completing a significant milestone
|
|
14
|
+
- To leave notes for the next session
|
|
15
|
+
- When switching between tasks in the same workspace
|
|
16
|
+
|
|
17
|
+
## Using the MCP Tool (Claude Code)
|
|
18
|
+
|
|
19
|
+
Call `mcp__workspace-manager__save-context` with:
|
|
20
|
+
- `workspace` (string): the workspace name
|
|
21
|
+
- `content` (string): markdown content to save
|
|
22
|
+
- `append` (boolean, optional): true to append, false to replace (default: false)
|
|
23
|
+
|
|
24
|
+
## Using the CLI (any agent)
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Replace existing context
|
|
28
|
+
nemus save-context -m "Completed auth refactor. Next: update payment service endpoints."
|
|
29
|
+
|
|
30
|
+
# Append to existing context
|
|
31
|
+
nemus save-context --append -m "Fixed CI failures. All tests passing."
|
|
32
|
+
|
|
33
|
+
# From a file
|
|
34
|
+
nemus save-context -f progress-notes.md
|
|
35
|
+
|
|
36
|
+
# Pipe content
|
|
37
|
+
echo "summary here" | nemus save-context
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## What to Save
|
|
41
|
+
|
|
42
|
+
Good context summaries include:
|
|
43
|
+
- **What was done** — completed tasks, merged PRs
|
|
44
|
+
- **Current state** — what's working, what's broken
|
|
45
|
+
- **Next steps** — what to do next
|
|
46
|
+
- **Key decisions** — architectural choices made and why
|
|
47
|
+
- **Blockers** — what's blocking progress
|
|
48
|
+
|
|
49
|
+
## Example
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
## Progress
|
|
53
|
+
|
|
54
|
+
- Refactored auth service to use JWT tokens (PR #42 merged)
|
|
55
|
+
- Updated partnerships-api to call new auth endpoints
|
|
56
|
+
- Fixed rate limiting bug in payment-gateway
|
|
57
|
+
|
|
58
|
+
## Current State
|
|
59
|
+
|
|
60
|
+
All services passing CI. Auth migration is complete for internal services.
|
|
61
|
+
External API consumers still use legacy tokens (tracked in JIRA PAY-123).
|
|
62
|
+
|
|
63
|
+
## Next Steps
|
|
64
|
+
|
|
65
|
+
1. Migrate external consumers to JWT (need coordination with partners team)
|
|
66
|
+
2. Add monitoring dashboard for token refresh failures
|
|
67
|
+
3. Remove legacy token support after 30-day deprecation window
|
|
68
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: search-repos
|
|
3
|
+
description: Search org repositories by name or description
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Search Repos
|
|
7
|
+
|
|
8
|
+
Search for repositories in the GitHub organization.
|
|
9
|
+
|
|
10
|
+
## Searching
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus cache search <keyword>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This searches the cached list of org repos by name. Results show repo name and description.
|
|
17
|
+
|
|
18
|
+
## If Cache is Empty
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
nemus cache refresh
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Then search again.
|
|
25
|
+
|
|
26
|
+
## Presenting Results
|
|
27
|
+
|
|
28
|
+
Show matching repos with their names and descriptions. If the user wants to add repos to a workspace, suggest:
|
|
29
|
+
```bash
|
|
30
|
+
nemus update --workspace <name> --repos <repo1,repo2> --yes
|
|
31
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: snapshot-list
|
|
3
|
+
description: List all saved workspace snapshots
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Snapshot List
|
|
7
|
+
|
|
8
|
+
List all saved workspace snapshots.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus history
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Presenting Results
|
|
17
|
+
|
|
18
|
+
Show snapshot entries with timestamps and operation types.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: snapshot-save
|
|
3
|
+
description: Save a snapshot of the current workspace state
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Snapshot Save
|
|
7
|
+
|
|
8
|
+
Snapshots are automatically saved by workspace-manager operations (create, update, delete, etc.). There is no separate snapshot command — the history command shows past operations:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
nemus history
|
|
12
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: switch-branch
|
|
3
|
+
description: Switch all repos in a workspace to a specified branch
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Switch Branch
|
|
7
|
+
|
|
8
|
+
Switch all repos in a workspace to a specified branch.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus branch switch <workspace-name> <branch-name>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Presenting Results
|
|
17
|
+
|
|
18
|
+
Report which repos were switched and any that couldn't switch (e.g., uncommitted changes).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: update-cache
|
|
3
|
+
description: Force refresh the GitHub repository cache
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Update Cache
|
|
7
|
+
|
|
8
|
+
Force refresh the GitHub repository cache.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus cache refresh
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This fetches the latest list of repositories from the GitHub org and updates the local cache.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- When `nemus cache search` doesn't find a recently created repo
|
|
21
|
+
- Periodically to keep the cache fresh (auto-refreshes daily)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: update-workspace
|
|
3
|
+
description: Add one or more repositories to an existing workspace. ALWAYS use this skill — never run `git clone` directly — when the user asks to add, clone, include, or pull a new repo into the current workspace. Triggers on phrases like "add repo X", "include X in this workspace", "I need X here", "clone X into workspace", "add a service".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Update Workspace
|
|
7
|
+
|
|
8
|
+
> **CRITICAL**: NEVER use `git clone` directly to add repositories to a workspace.
|
|
9
|
+
> Always use `nemus update` — it registers the repo in workspace metadata, updates
|
|
10
|
+
> the context file, and keeps `nemus status`/`nemus sync` working correctly.
|
|
11
|
+
|
|
12
|
+
Add more repositories to an existing workspace.
|
|
13
|
+
|
|
14
|
+
## Resolving the Workspace
|
|
15
|
+
|
|
16
|
+
If the user hasn't specified a workspace, run:
|
|
17
|
+
```bash
|
|
18
|
+
nemus list 2>&1 | cat
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or to see what's in a specific workspace (from inside the workspace directory):
|
|
22
|
+
```bash
|
|
23
|
+
cat .workspace-meta.json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Resolving Repositories
|
|
27
|
+
|
|
28
|
+
If the user hasn't specified which repos to add, help them discover:
|
|
29
|
+
```bash
|
|
30
|
+
nemus cache search <keyword>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
To see what's already in the workspace (avoid adding duplicates):
|
|
34
|
+
```bash
|
|
35
|
+
cat .workspace-meta.json | jq '.repositories[].name'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Adding Repos
|
|
39
|
+
|
|
40
|
+
Run the update command non-interactively:
|
|
41
|
+
```bash
|
|
42
|
+
nemus update --workspace <name> --repos <repo1,repo2,...> --yes
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Adding the same repo more than once (instances)
|
|
46
|
+
|
|
47
|
+
Append `:suffix` to a repo name to add it again under a separate folder
|
|
48
|
+
(`<repo>-<suffix>`) — e.g. a second checkout for another branch instead of a
|
|
49
|
+
`git worktree` (worktrees are invisible to `nemus status`/`nemus sync`):
|
|
50
|
+
```bash
|
|
51
|
+
nemus update --workspace <name> --repos casper:cas-101 --yes # -> casper-cas-101
|
|
52
|
+
```
|
|
53
|
+
Suffix = letters, numbers, hyphens, underscores. Each instance is tracked
|
|
54
|
+
independently by `nemus status`/`nemus sync`.
|
|
55
|
+
|
|
56
|
+
## Presenting Results
|
|
57
|
+
|
|
58
|
+
The command output shows which repos were added and which were skipped. Report:
|
|
59
|
+
- Successfully added repos
|
|
60
|
+
- Skipped repos (already exist in workspace) - this is not an error
|
|
61
|
+
- Any failures with their error reason
|
|
62
|
+
|
|
63
|
+
## Suggested Follow-ups
|
|
64
|
+
|
|
65
|
+
- `nemus status <workspace>` to verify the new repos
|
|
66
|
+
- `nemus sync <workspace>` to pull latest on all repos
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workspace-cleanup
|
|
3
|
+
description: Remove node_modules and build artifacts to free disk space
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workspace Cleanup
|
|
7
|
+
|
|
8
|
+
Remove node_modules and build artifacts to free disk space.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus cleanup <workspace-name>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Presenting Results
|
|
17
|
+
|
|
18
|
+
Report how much disk space was freed and which directories were removed.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workspace-diff
|
|
3
|
+
description: Show diff summary for all repos in a workspace
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workspace Diff
|
|
7
|
+
|
|
8
|
+
Show diff summary across all repos in a workspace.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus diff <workspace-name>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or for the current workspace:
|
|
17
|
+
```bash
|
|
18
|
+
nemus diff
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Presenting Results
|
|
22
|
+
|
|
23
|
+
Report per-repo diff stats (files changed, insertions, deletions).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workspace-doctor
|
|
3
|
+
description: Run health checks on a workspace
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workspace Doctor
|
|
7
|
+
|
|
8
|
+
Run health checks on a workspace.
|
|
9
|
+
|
|
10
|
+
## Running
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
nemus doctor <workspace-name>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or for the current workspace:
|
|
17
|
+
```bash
|
|
18
|
+
nemus doctor
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Presenting Results
|
|
22
|
+
|
|
23
|
+
Report any issues found (missing repos, broken git state, etc.) and suggestions for fixes.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workspace-info
|
|
3
|
+
description: Get detailed metadata for a workspace
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workspace Info
|
|
7
|
+
|
|
8
|
+
Get detailed metadata for a workspace including all repository info, tags, and disk path.
|
|
9
|
+
|
|
10
|
+
## Resolving the Workspace
|
|
11
|
+
|
|
12
|
+
If the user hasn't specified a workspace name, list them:
|
|
13
|
+
```bash
|
|
14
|
+
nemus list 2>&1 | cat
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Getting Info
|
|
18
|
+
|
|
19
|
+
Read the workspace metadata file (path is relative to the workspace directory):
|
|
20
|
+
```bash
|
|
21
|
+
cat <workspace-path>/.workspace-meta.json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The workspace path can be found by checking the current directory or using:
|
|
25
|
+
```bash
|
|
26
|
+
nemus status <workspace-name>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Presenting Results
|
|
30
|
+
|
|
31
|
+
The JSON contains workspace metadata. Present clearly:
|
|
32
|
+
|
|
33
|
+
- **Name** and **creation date**
|
|
34
|
+
- **Disk path** where the workspace lives
|
|
35
|
+
- **Repositories** - list each with:
|
|
36
|
+
- Directory name (may differ from repo name if a suffix was used)
|
|
37
|
+
- Clone URL
|
|
38
|
+
- Status (success/failed from creation)
|
|
39
|
+
- **Tags** and any custom metadata if present
|
|
40
|
+
|
|
41
|
+
## Suggested Follow-ups
|
|
42
|
+
|
|
43
|
+
- `nemus status <workspace>` to see current git status of each repo
|
|
44
|
+
- `nemus update --workspace <name> --repos <repos>` to add more repos
|
|
45
|
+
- `nemus doctor <workspace>` to check workspace health
|