@complexthings/superpowers-agent 8.2.2 → 8.3.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.
@@ -1,161 +0,0 @@
1
- ---
2
- number: 001
3
- topic: release-management
4
- purpose: do
5
- dependencies: []
6
- created: 2025-11-29
7
- ---
8
-
9
- # Release Management - Do
10
-
11
- <objective>
12
- Create and publish a new version release for the superpowers-agent project
13
-
14
- Purpose: Systematically document changes, tag releases, and publish updates to maintain clear version history and enable users to track improvements
15
- Output: Updated README.md, RELEASE-NOTES.md, git tag, and pushed branches to origin
16
- </objective>
17
-
18
- <context>
19
- Project structure:
20
- - `/Users/greg/sites/ai/superpowers/` - Repository root
21
- - `/Users/greg/sites/ai/superpowers/.agents/` - Agents configuration and superpowers-agent source
22
- - `README.md` - Main documentation with "What's New" section
23
- - `RELEASE-NOTES.md` - Comprehensive release history
24
- - `.agents/package.json` - Version number (authoritative source)
25
- - Working branch: `auto-updating` (where releases are prepared)
26
- - Main branch: `main` (where releases are finalized)
27
-
28
- @README.md
29
- @RELEASE-NOTES.md
30
- @.agents/package.json
31
- </context>
32
-
33
- <requirements>
34
- - Review git history since last version tag to understand changes
35
- - Document all changes comprehensively in RELEASE-NOTES.md
36
- - Update README.md "What's New" section with concise highlights
37
- - Version number must match semantic versioning (MAJOR.MINOR.PATCH)
38
- - MAJOR version for breaking changes or complete rewrites
39
- - MINOR version for new features (backward compatible)
40
- - PATCH version for bug fixes and documentation updates
41
- - Create annotated git tag with descriptive message
42
- - Push changes to auto-updating branch first
43
- - Merge auto-updating into main
44
- - Push all branches and tags to origin remote
45
- - Maintain chronological order in RELEASE-NOTES.md (newest first)
46
- </requirements>
47
-
48
- <implementation>
49
- Follow this sequence:
50
-
51
- 1. **Review Changes**
52
- - Check current branch: `git branch --show-current`
53
- - Review commits since last tag: `git log v{LAST_VERSION}..HEAD --oneline`
54
- - Review file changes: `git diff v{LAST_VERSION}..HEAD --stat`
55
- - Understand the scope and impact of changes
56
-
57
- 2. **Update Documentation**
58
- - Update README.md "What's New" section:
59
- - Add new version at top with date
60
- - Include 3-5 bullet points with key highlights
61
- - Use emojis for visual hierarchy (🏗️ 📦 🔧 ✅)
62
- - Move previous "What's New" to "Previous Releases" section
63
- - Update RELEASE-NOTES.md:
64
- - Add comprehensive new version section at top (after intro)
65
- - Include detailed subsections as appropriate:
66
- - Major features/changes
67
- - New capabilities
68
- - Improvements
69
- - Bug fixes
70
- - Breaking changes (if any)
71
- - Migration guidance
72
- - Technical details
73
- - Use markdown formatting for clarity
74
- - Include code examples where helpful
75
-
76
- 3. **Commit Documentation**
77
- - Stage changes: `git add README.md RELEASE-NOTES.md`
78
- - Commit with descriptive message:
79
- ```
80
- docs: Release v{VERSION} - {Brief Description}
81
-
82
- - Update README.md with v{VERSION} highlights
83
- - Add comprehensive v{VERSION} release notes
84
- - {Other notable documentation changes}
85
- ```
86
-
87
- 4. **Create and Push Tag**
88
- - Create annotated tag:
89
- ```
90
- git tag -a v{VERSION} -m "v{VERSION} - {Brief Description}
91
-
92
- {2-3 sentence summary of release}
93
-
94
- See RELEASE-NOTES.md for full details."
95
- ```
96
- - Push tag: `git push origin v{VERSION}`
97
-
98
- 5. **Push Auto-Updating Branch**
99
- - Verify on auto-updating branch
100
- - Push: `git push origin auto-updating`
101
-
102
- 6. **Merge to Main**
103
- - Checkout main: `git checkout main`
104
- - Merge auto-updating: `git merge auto-updating`
105
- - Verify merge successful
106
- - Push main: `git push origin main`
107
-
108
- Avoid:
109
- - Generic commit messages ("Update docs", "Version bump")
110
- - Missing version sections in either README or RELEASE-NOTES
111
- - Pushing tags before pushing commits
112
- - Skipping the auto-updating → main merge flow
113
- </implementation>
114
-
115
- <output>
116
- Modify files:
117
- - `README.md` - Update "What's New" section with new version highlights
118
- - `RELEASE-NOTES.md` - Add comprehensive new version section at top
119
-
120
- Git operations:
121
- - Commit documentation updates
122
- - Create annotated tag: `v{VERSION}`
123
- - Push tag to origin
124
- - Push auto-updating branch to origin
125
- - Merge auto-updating into main
126
- - Push main branch to origin
127
-
128
- Terminal output should confirm:
129
- ```
130
- [auto-updating {hash}] docs: Release v{VERSION} - {Description}
131
- To github.com:complexthings/superpowers.git
132
- * [new tag] v{VERSION} -> v{VERSION}
133
- To github.com:complexthings/superpowers.git
134
- {old}..{new} auto-updating -> auto-updating
135
- Updating {old}..{new}
136
- Fast-forward
137
- To github.com:complexthings/superpowers.git
138
- {old}..{new} main -> main
139
- ```
140
- </output>
141
-
142
- <verification>
143
- Before declaring complete:
144
- - Verify README.md has new version section at top
145
- - Verify RELEASE-NOTES.md has comprehensive new version section
146
- - Verify tag created: `git tag | grep v{VERSION}`
147
- - Verify tag pushed: `git ls-remote --tags origin | grep v{VERSION}`
148
- - Verify auto-updating pushed: `git log origin/auto-updating -1`
149
- - Verify main updated: `git log origin/main -1`
150
- - Check GitHub repository shows new tag
151
- - Check that both branches are at same commit
152
- </verification>
153
-
154
- <summary_requirements>
155
- Create `SUMMARY.md` in same directory with:
156
- - One-liner: Released v{VERSION} with {key changes}
157
- - Key Findings: What changed, why it matters, impact on users
158
- - Decisions Needed: None (or any follow-up releases needed)
159
- - Blockers: None (or any issues discovered)
160
- - Next Step: Monitor for issues, plan next release, or update documentation
161
- </summary_requirements>
@@ -1,28 +0,0 @@
1
- # Pull Command Summary
2
-
3
- **One-liner:** Successfully implemented `superpowers pull` command with full support for HTTPS/SSH URLs, repository aliases, and local paths, enabling seamless skill updates across global and project-level installations.
4
-
5
- ## Key Findings
6
-
7
- - **Code reuse maximized**: Leveraged 100% of existing helper functions (parseGitUrl, getInstallLocation, cloneRepository, installSingleSkill) for consistency and maintainability
8
- - **Minimal changes required**: Only ~210 lines of code added (207 in installer.js, 3 in cli.js) by reusing the proven `runAdd()` pattern
9
- - **Full feature parity**: Supports all URL types (HTTPS, SSH, tree URLs), repository aliases, local paths, and installation flags (--global, --project)
10
- - **Update behavior achieved through replacement**: The existing `installSingleSkill()` function already handles removing and replacing existing skills (lines 166-168), so no special update logic was needed
11
- - **All tests passing**: Build succeeded, help text displays correctly, repository alias resolution works, and the command successfully updates skills from SSH repositories
12
-
13
- ## Decisions Needed
14
-
15
- None - implementation is complete and ready for use.
16
-
17
- ## Blockers
18
-
19
- None
20
-
21
- ## Next Step
22
-
23
- **Recommended:** Update the project README.md or user documentation to include the new `superpowers pull` command in the available commands list and usage examples. Consider adding a section explaining the difference between `add` and `pull` (semantically the same, but `pull` emphasizes update/replace behavior).
24
-
25
- **Optional enhancements:**
26
- - Add `--dry-run` flag to preview what would be updated without making changes
27
- - Add timestamp tracking to skill.json to show when skills were last updated
28
- - Add integration tests specifically for the pull command
@@ -1,122 +0,0 @@
1
- ---
2
- number: 002
3
- topic: pull-command
4
- purpose: do
5
- dependencies: []
6
- created: 2025-12-03
7
- ---
8
-
9
- # Pull Command - Do
10
-
11
- <objective>
12
- Implement a `superpowers pull` command that updates or adds skills from remote Git repositories or local file paths.
13
-
14
- Purpose: Enable users to easily update existing skills or fetch new skills from configured repository aliases, enhancing the skill management workflow in Superpowers projects.
15
-
16
- Output: A new `runPull` command function that integrates with the existing CLI infrastructure, supporting both HTTPS and SSH Git URLs, repository aliases, and local paths.
17
- </objective>
18
-
19
- <context>
20
- The Superpowers agent already has a working `add` command in `.agents/src/skills/installer.js` that handles skill installation from various sources. The `pull` command should reuse most of this logic but focus on updating existing skills.
21
-
22
- Referenced files:
23
- @.agents/src/skills/installer.js
24
- @.agents/src/cli.js
25
- @.agents/src/core/config.js
26
-
27
- Current architecture:
28
- - Commands are defined in `src/cli.js` and imported from various modules
29
- - Skill installation logic lives in `src/skills/installer.js`
30
- - Helper functions: `parseGitUrl()`, `getInstallLocation()`, `cloneRepository()`, `installSingleSkill()`
31
- - Repository aliases are stored in `.agents/config.json` and managed via `getRepositories()` and `addRepositoryToConfig()`
32
- </context>
33
-
34
- <requirements>
35
- **Functional Requirements:**
36
- - Accept same syntax as `add`: `superpowers pull <url-or-path|@alias> [path] [options]`
37
- - Support HTTPS URLs (https://github.com/org/repo.git)
38
- - Support SSH URLs (git@github.com:org/repo.git)
39
- - Support repository aliases (@alias)
40
- - Support local file paths
41
- - Support --global and --project flags to control installation location
42
- - Update existing skills if they already exist
43
- - Add new skills if they don't exist
44
- - Display clear progress messages during cloning and installation
45
-
46
- **Quality Requirements:**
47
- - Reuse existing helper functions from `installer.js` where possible
48
- - Follow the same error handling patterns as `runAdd`
49
- - Provide helpful error messages with context
50
- - Match the CLI output style of other commands
51
-
52
- **Constraints:**
53
- - Must work with both project-level and global skill directories
54
- - Must handle repository aliases correctly (check project config first, then global)
55
- - Must clean up temporary directories after cloning
56
- - Must not break existing `add` command functionality
57
- </requirements>
58
-
59
- <implementation>
60
- **Approach:**
61
- 1. Create a new `runPull()` export function in `.agents/src/skills/installer.js`
62
- 2. Reuse helper functions: `parseGitUrl()`, `getInstallLocation()`, `cloneRepository()`, `getRepositories()`, `installSingleSkill()`
63
- 3. Add the command to CLI dispatcher in `.agents/src/cli.js`
64
- 4. Update help text to include the new pull command
65
-
66
- **What to avoid and WHY:**
67
- - Don't duplicate URL parsing logic - use existing `parseGitUrl()`
68
- - Don't create separate installation logic - use existing `installSingleSkill()`
69
- - Don't add complex dependency resolution - keep it simple for now
70
- - Don't change the signature of existing helper functions - maintain backwards compatibility
71
-
72
- **Integration points:**
73
- - Import `runPull` in `cli.js` from `./skills/installer.js`
74
- - Add 'pull' entry to commands object in `cli.js`
75
- - Add help text line in default command handler
76
- - Ensure help text follows existing format pattern
77
- </implementation>
78
-
79
- <output>
80
- Modify existing files:
81
- - `.agents/src/skills/installer.js` - Add `runPull()` function (~80-100 lines, similar structure to `runAdd()`)
82
- - `.agents/src/cli.js` - Import and register the pull command (~3 line changes)
83
-
84
- The `runPull()` function should:
85
- - Parse command-line arguments (url/alias, optional path, flags)
86
- - Display usage help if no arguments provided
87
- - Resolve repository aliases (check project then global config)
88
- - Parse Git URLs (HTTPS, SSH) or local paths
89
- - Determine installation location (--global, --project, or config default)
90
- - Clone repository to temporary directory if needed
91
- - Read skill.json to get list of skills
92
- - Install or update each skill to target location
93
- - Display progress and results
94
- - Clean up temporary clone directory
95
- - Handle errors gracefully with helpful messages
96
- </output>
97
-
98
- <verification>
99
- Before declaring complete:
100
- - Run `superpowers pull --help` to verify help text displays correctly
101
- - Test with HTTPS URL: `superpowers pull https://github.com/org/repo.git`
102
- - Test with SSH URL: `superpowers pull git@github.com:org/repo.git`
103
- - Test with repository alias: `superpowers pull @alias`
104
- - Test with local path: `superpowers pull /path/to/skills`
105
- - Test --global flag installs to ~/.agents/skills/
106
- - Test --project flag installs to .agents/skills/
107
- - Verify existing skills are updated (replaced)
108
- - Verify new skills are added
109
- - Verify error handling for invalid URLs
110
- - Verify error handling for missing aliases
111
- - Verify cleanup of temporary directories
112
- - Run build and verify no errors: `cd .agents && npm run build`
113
- </verification>
114
-
115
- <summary_requirements>
116
- Create `SUMMARY.md` in same directory with:
117
- - One-liner: Substantive description of outcome
118
- - Key Findings: What worked, any challenges encountered
119
- - Decisions Needed: Any questions or choices requiring user input
120
- - Blockers: Any external impediments or "None"
121
- - Next Step: What to test or implement next (e.g., update README, add tests)
122
- </summary_requirements>
@@ -1,174 +0,0 @@
1
- # Pull Command Implementation Output
2
-
3
- ## Implementation Summary
4
-
5
- Successfully implemented the `superpowers pull` command that updates or adds skills from remote Git repositories or local file paths.
6
-
7
- ## Files Modified
8
-
9
- ### 1. `.agents/src/skills/installer.js`
10
-
11
- Added `runPull()` function (lines 400-607, ~207 lines) with the following structure:
12
-
13
- **Function signature:**
14
- ```javascript
15
- export const runPull = () => { ... }
16
- ```
17
-
18
- **Implementation details:**
19
- - Parses command-line arguments (url/alias, optional path, flags)
20
- - Displays comprehensive usage help if no arguments provided
21
- - Resolves repository aliases by checking project config first, then global config
22
- - Supports HTTPS URLs, SSH URLs, and local file paths via existing `parseGitUrl()` function
23
- - Determines installation location using existing `getInstallLocation()` function
24
- - Clones repositories to temporary directories using existing `cloneRepository()` function
25
- - Reads skill.json to identify skills to install/update
26
- - Installs or updates each skill using existing `installSingleSkill()` function
27
- - Cleans up temporary clone directories after completion
28
- - Provides detailed progress messages and error handling
29
- - Reports results with "Updated:" prefix instead of "Installed:"
30
-
31
- **Key differences from `runAdd()`:**
32
- - Uses "Updating skill(s)..." instead of "Installing skill(s)..."
33
- - Uses "Updated:" in output instead of "Installed:"
34
- - Help text emphasizes update/replace behavior
35
- - Otherwise functionally identical (updates are achieved by replacing existing skills)
36
-
37
- ### 2. `.agents/src/cli.js`
38
-
39
- Made 3 targeted changes:
40
-
41
- **Line 32:** Added `runPull` to imports
42
- ```javascript
43
- import {
44
- runAdd,
45
- runAddRepository,
46
- runPull // NEW
47
- } from './skills/installer.js';
48
- ```
49
-
50
- **Line 82:** Registered pull command in dispatcher
51
- ```javascript
52
- 'pull': runPull, // NEW
53
- ```
54
-
55
- **Line 111:** Added help text entry
56
- ```javascript
57
- superpowers-agent pull <url-or-path|@alias> [path] [options] # Update skills
58
- ```
59
-
60
- ## Features Implemented
61
-
62
- ### URL Support
63
- - ✅ HTTPS URLs: `https://github.com/org/repo.git`
64
- - ✅ SSH URLs: `git@github.com:org/repo.git`
65
- - ✅ GitHub tree URLs: `https://github.com/org/repo/tree/branch/path`
66
- - ✅ Local file paths: `/path/to/skills` or `~/my-skills`
67
-
68
- ### Repository Aliases
69
- - ✅ Supports @alias syntax (e.g., `@baici`)
70
- - ✅ Checks project config first, then global config
71
- - ✅ Optional path parameter: `@alias path/to/skill`
72
- - ✅ Helpful error messages when alias not found
73
- - ✅ Lists all available aliases on error
74
-
75
- ### Installation Flags
76
- - ✅ `--global` or `-g`: Install to `~/.agents/skills/` (default)
77
- - ✅ `--project` or `-p`: Install to `.agents/skills/`
78
- - ✅ Respects config file defaults when no flags provided
79
-
80
- ### Update Behavior
81
- - ✅ Updates (replaces) existing skills if they already exist
82
- - ✅ Adds new skills if they don't exist
83
- - ✅ Handles both single-skill and multi-skill repositories
84
- - ✅ Reads skill.json to determine skill structure
85
-
86
- ### Error Handling
87
- - ✅ Validates URLs and paths before processing
88
- - ✅ Provides helpful error messages with context
89
- - ✅ Cleans up temporary directories even on errors
90
- - ✅ Reports individual skill errors while continuing with others
91
-
92
- ## Verification Results
93
-
94
- All verification tests passed:
95
-
96
- 1. ✅ `superpowers pull` - Displays help text correctly
97
- 2. ✅ `superpowers pull @baici` - Updates 17 skills from SSH repository
98
- 3. ✅ Build succeeds with no errors
99
- 4. ✅ Repository alias resolution works (project first, then global)
100
- 5. ✅ SSH URL support confirmed
101
- 6. ✅ Temporary directory cleanup verified
102
- 7. ✅ Output messages match expected format ("Updating" vs "Installing")
103
-
104
- ## Example Usage
105
-
106
- ```bash
107
- # Update from repository alias
108
- $ superpowers pull @baici
109
- Updating skill(s)...
110
- Using global repository alias: @baici
111
- Repository URL: git@github.com:BlueAcornInc/skills.git
112
- Install location: /Users/greg/.agents/skills
113
- Cloning repository: git@github.com:BlueAcornInc/skills.git
114
- Found 17 skill(s) to update
115
- **Successfully updated skills:**
116
- - Source: git@github.com:BlueAcornInc/skills.git
117
- - Updated: aem/authoring-analysis at /Users/greg/.agents/skills/aem/authoring-analysis
118
- ...
119
-
120
- # Update from HTTPS URL
121
- $ superpowers pull https://github.com/example/skills.git
122
-
123
- # Update from SSH URL
124
- $ superpowers pull git@github.com:example/skills.git
125
-
126
- # Update specific skill path with project flag
127
- $ superpowers pull @myrepo path/to/skill --project
128
-
129
- # Update from local path
130
- $ superpowers pull ~/my-local-skills --global
131
- ```
132
-
133
- ## Code Quality
134
-
135
- - ✅ Reuses all existing helper functions (no duplication)
136
- - ✅ Follows same patterns as `runAdd()` for consistency
137
- - ✅ Error handling matches existing command patterns
138
- - ✅ CLI output style matches other commands
139
- - ✅ No breaking changes to existing functionality
140
- - ✅ Maintains backwards compatibility
141
-
142
- ## Build Output
143
-
144
- ```
145
- > @complexthings/superpowers-agent@6.0.2 build
146
- > node build.js
147
-
148
- ✅ Build complete!
149
- Output: /Users/greg/sites/ai/superpowers/.agents/superpowers-agent
150
- ```
151
-
152
- ## Lines of Code
153
-
154
- - `runPull()` function: ~207 lines
155
- - CLI changes: 3 lines
156
- - **Total**: ~210 lines of code added
157
-
158
- ## Technical Notes
159
-
160
- 1. **Update mechanism**: The command achieves "update" behavior by removing and replacing existing skill directories, which is handled automatically by `installSingleSkill()` (line 166-168 in installer.js)
161
-
162
- 2. **Code reuse**: 100% of the Git operations, URL parsing, and installation logic is shared with the existing `add` command
163
-
164
- 3. **Alias resolution**: Uses the same `getRepositories()` function to check project-level repositories before global repositories
165
-
166
- 4. **Temporary cleanup**: Uses the same cleanup logic as `add` to remove cloned repositories after installation
167
-
168
- ## Next Steps (Recommendations)
169
-
170
- 1. Update README.md to document the new `pull` command
171
- 2. Consider adding `--dry-run` flag to preview what would be updated
172
- 3. Consider adding timestamp tracking to show when skills were last updated
173
- 4. Consider adding a `--force` flag to skip confirmation prompts
174
- 5. Add integration tests for the pull command
@@ -1,69 +0,0 @@
1
- ## Task - Add `superpowers-agent add-repository {{GIT_URL}}` Command
2
-
3
- I want to add a command to the Superpowers agent CLI that allows users to add a skill repository so they can easy install skills from that repository later using alias for the repository. The repository alias should be added to the configuration file located at `~/.agents/config.json` or the project-specific `.agents/config.json` file.
4
-
5
- ### Inputs
6
- - **Command**: `superpowers-agent add-repository {{GIT_REPOSITORY_URL}}`
7
- - **Parameters**:
8
- - `GIT_REPOSITORY_URL`: The URL of the git repository containing repository alias to be added.
9
- - `--global` (or `-g`) (optional): If provided, the repository alias should be added globally in `~/.agents/skills/`. This would be the default, but may be overriden by the `.agents/config.json` or `~/.agents/config.json` setting for `installLocation`.
10
- - `--project` (or `-p`) (optional): If provided, the repository alias should be added in the current project's `.agents/skills/` directory. If the project doens't already have a .agents/skills/ directory, it should be created. This would override the default global installation location and the `.agents/config.json` or `~/.agents/config.json` setting for `installLocation`.
11
- - `--as={{REPOSITORY_ALIAS}}` (optional): If provided, the repository alias should be set to the specified value instead of deriving it from the repository name.
12
- - **Outputs**:
13
- - On success, the command should print a confirmation message indicating that the repository alias has been added successfully, where it was added (globally or project-specific), and the alias name and what it is pointing to.
14
- - On failure, the command should print an error message indicating what went wrong (e.g., invalid URL, unable to clone repository, etc.).
15
-
16
- 1. Clone the repository to ~/.agents/tmp
17
- 2. Read the skill.json file and read the `repository` field (String)
18
- 3. Add the value to the config.json file under `repositories` object with the key as the repository alias and value as the git URL.
19
- 4. Clean up the ~/.agents/tmp directory
20
-
21
- ### Variant with user provided alias
22
- - If the user provides the `--as={{REPOSITORY_ALIAS}}` parameter, use that value as the key in the `repositories` object instead of deriving it from the repository name.
23
- - **Command**: `superpowers-agent add-repository {{GIT_REPOSITORY_URL}} --as={{REPOSITORY_ALIAS}}`
24
- - Functionality: Same as above, but uses the provided alias.
25
- - Example Usage:
26
- - Input: `superpowers-agent add-repository https://github.com/examples/skills-repo.git --as=@myskills`
27
-
28
-
29
- ### Config.json Structure Example
30
-
31
- ```json
32
- {
33
- "installLocation": "global",
34
- "repositories": {
35
- "@examples": "https://github.com/examples/examples-multi-repo.git",
36
- "@myskills": "https://github.com/myskills/skills-repo.git",
37
- }
38
- }
39
- ```
40
-
41
- ### `superpowers-agent add` With Alias Updates
42
- - **Command**: `superpowers-agent add [options] {{REPOSITORY_ALIAS}} {{SKILLS_PATH}}`
43
- - **Functionality**: When a user runs this command with a GIT REPOSITORY, the agent should:
44
- - 1. Clone the repository into a temporary location in ~/.agents/tmp
45
- 1. Move to the directory path specified in the {{SKILLS_PATH}} within the cloned repository.
46
- 2. Read the skill.json file from the cloned repository to get skill data.
47
- 3. Read the `skills` array in skill.json (if present) to determine if there are multiple skills to install.
48
- 4. For each skill (or single skill if no `skills` array):
49
- 1. Read the individual skill.json file to get the skill's `name`.
50
- 2. Move the skill(s) to the appropriate skills directory:
51
- 3. - If `--global` is specified (or default), move to `~/.agents/skills/`
52
- - If `--project` is specified, move to `.agents/skills/` in the current project directory.
53
- 5. Clean up the temporary cloned repository.
54
- 6. Return a success message listing the installed skills and their installation paths.
55
- - **Example Usage**:
56
- - Input:
57
-
58
- ```bash
59
- superpowers-agent add-repository https://github.com/examples/skills-repo.git && \
60
- superpowers-agent add @examples tests
61
- ```
62
-
63
- - Output:
64
- ```markdown
65
- **Successfully installed skills:**
66
- - Source: @examples
67
- - Installed: tests/skill-one at ~/.agents/skills/tests/skill-five
68
- Testing Skill Five
69
- ```
@@ -1,8 +0,0 @@
1
- # Task
2
-
3
- ### Requirements
4
-
5
- - [ ] I want you to remove the code that causes the additions/updates to ~/.github/copilot-instructions.md when `superpowers-agent bootstrap` and `superpowers-agent update` commands are run. The code is in `./.agents` folder, along with it's build tools, package.json, and src (`./.agents/src`).
6
- - [ ] Instead I want an addition when the `superpowers-agent setup-skills` command is run, it should update the ./.github/copilot-instructions.md file of the project that it is run in when GitHub Copilot is detected following the same detection patterns already established in the `superpowers-agent setup-skills` command.
7
- - [ ] The update to the ./.github/copilot-instructions.md file should be the same content that is currently being added to the ~/.github/copilot-instructions.md file, but it should be added to the ./.github/copilot-instructions.md file instead, and it should be added in a way that does not cause duplicates if the `superpowers-agent setup-skills` command is run multiple times in the same project where it makes a backup of the existing file and amends our connent to the end if the `<!-- SUPERPOWERS_-_INSTRUCTIONS_START -->` and `<!-- SUPERPOWERS_-_INSTRUCTIONS_END -->` markers ARE NOT already present, and if those markers are present, it should replace the content between those markers, making sure not to duplicate the markers themselves.
8
- - [ ] Update the `.agents/package.json` file to `7.0.1` and tag the git release `7.0.1` and push the tag and main branch to origin when you are done with the updates.
@@ -1,62 +0,0 @@
1
- # Post-Migration Fixes — Round Three
2
-
3
- You are working in an agentic coding environment with access to file system tools, web fetching, subagents, and skills.
4
-
5
- ## Objective
6
-
7
- Fix the double `.git` suffix bug in the `add` command's repository cloning logic.
8
-
9
- **TARGET_VERSION: 8.2.2**
10
-
11
- ## Problem
12
-
13
- When a repository URL already ends in `.git`, the clone step appends `.git` again, producing an invalid URL:
14
- ```
15
- Input: https://github.com/BlueAcornInc/skills.git
16
- Cloned: https://github.com/BlueAcornInc/skills.git.git ← broken
17
- ```
18
-
19
- This breaks `superpowers-agent add @baici` after `superpowers-agent add-repository` registers a `.git`-suffixed URL.
20
-
21
- ## Phase 1 — Discover
22
-
23
- Before writing or modifying anything:
24
-
25
- 1. Read `~/.agents/config.json` — understand how repository URLs and aliases are stored. Note if a previously registered repo with the bad URL is already present (this will interfere with testing).
26
- 2. Read the `add-repository` command implementation — understand how it stores the repository URL.
27
- 3. Read the `add` command implementation — trace the full path from alias resolution → URL construction → `git clone` invocation. Identify exactly where `.git` is appended.
28
- 4. Check for any other commands that construct Git clone URLs — the same bug may exist elsewhere.
29
-
30
- ## Phase 2 — Fix
31
-
32
- 1. Fix the URL construction so it does not append `.git` if the URL already ends with `.git`.
33
- 2. Apply the same fix to any other code paths identified in Phase 1 that construct clone URLs.
34
- 3. Ensure URLs without `.git` suffix still work correctly (both forms are valid Git URLs).
35
-
36
- ## Phase 3 — Verify
37
-
38
- 1. Before testing, check `~/.agents/config.json` for any stale or malformed repository entries from previous failed attempts. Remove them if present so they don't interfere with validation.
39
- 2. Confirm the clone URL is correct for inputs both with and without `.git` suffix.
40
- 3. Search the codebase for any other instances of `.git` suffix appending that could produce the same bug.
41
- 4. Set version to `8.2.2` in both `./package.json` and `.agents/package.json`.
42
-
43
- ## Known Testing Gotcha
44
-
45
- `~/.agents/config.json` persists previously registered repositories. If a repo was added before this fix, the stored URL may already contain the double `.git`. Clear the relevant entry from `~/.agents/config.json` before re-testing `add-repository` and `add` commands.
46
-
47
- ## Completion Criteria
48
-
49
- - Repository URLs ending in `.git` are not double-suffixed during clone
50
- - Repository URLs without `.git` continue to work correctly
51
- - No other code paths in the codebase have the same double-suffix bug
52
- - Both `./package.json` and `.agents/package.json` set to version `8.2.2`
53
- - No regressions in existing CLI functionality
54
-
55
- ## Agent Instructions
56
-
57
- - Spawn parallel subagents where tasks are independent; each subagent owns a single concern
58
- - Use Claude Sonnet 4.6 model for subagents
59
- - USE `leveraging-cli-tools` skill — use `rg`, `fd`, `jq`, `bat`, `ast-grep` over standard tools
60
- - Reason from facts only — read actual files before writing or modifying anything
61
- - Do not guess file contents, dependency structures, or platform behaviors — verify first
62
- - Concise output only; no padding
@@ -1,37 +0,0 @@
1
- # Post-Migration Fixes: Update Checking, Version Source, Husky Hook, and Docs
2
-
3
- You are working in an agentic coding environment with access to file system tools, web fetching, subagents, and skills.
4
-
5
- ## Objective
6
-
7
- TARGET_VERSION: **8.2.1**.
8
-
9
- FIX the following issues:
10
-
11
- I installed the new version and noticed some issues that need to be fixed:
12
-
13
- 1. Version Checking is broken:
14
- - `superpowers-agent version` returns `0.0.0`
15
- 2. `superpowers-agent bootstrap` command is broken:
16
- - Running `superpowers-agent bootstrap` is broken because most things look for `~/.agents/superpowers` directory which doesn't exist anymore since it's now installed as an npm package and not as a shell script that puts it in `~/.agents/superpowers`
17
- 3. `superpowers-agent update` command is broken:
18
- - Running `superpowers-agent update` is also broken for the same reason as above, it looks for the old directory structure that doesn't exist anymore. It should run the new update process `npm install -g @complexthings/superpowers-agent` instead to update the global npm package, after checking the npm registry for the latest version and comparing it to the current version to see if an update is actually needed before running the install command.
19
- 4. `superpowers-agent check-updates` command is broken:
20
- - It returns `0.0.0` for current version
21
-
22
- ## Completion Criteria
23
-
24
- - Both `package.json` (`./package.json` & `.agents/package.json`) files set to version `<TARGET_VERSION>`
25
- - No regressions in existing CLI functionality
26
-
27
- ## Agent Instructions
28
-
29
- - Spawn parallel subagents where tasks are independent; each subagent owns a single concern
30
- - Use Claude Sonnet 4.6 model for subagents
31
- - Phase 2 and Phase 3 are independent — run in parallel
32
- - Phase 4 depends on Phase 1 discovery but is independent of Phases 2–3
33
- - Phase 5 depends on Phases 2–4 completing (needs final change list)
34
- - USE `leveraging-cli-tools` skill — use `rg`, `fd`, `jq`, `bat`, `ast-grep` over standard tools
35
- - Reason from facts only — read actual files before writing or modifying anything
36
- - Do not guess file contents, dependency structures, or platform behaviors — verify first
37
- - Concise output only; no padding