@undeemed/get-shit-done-codex 1.6.9 → 1.6.11
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/bin/install.js +34 -34
- package/package.json +1 -4
package/bin/install.js
CHANGED
|
@@ -7,7 +7,7 @@ const readline = require('readline');
|
|
|
7
7
|
|
|
8
8
|
// Colors
|
|
9
9
|
const cyan = '\x1b[36m';
|
|
10
|
-
const
|
|
10
|
+
const green = '\x1b[32m';
|
|
11
11
|
const yellow = '\x1b[33m';
|
|
12
12
|
const dim = '\x1b[2m';
|
|
13
13
|
const reset = '\x1b[0m';
|
|
@@ -16,14 +16,14 @@ const reset = '\x1b[0m';
|
|
|
16
16
|
const pkg = require('../package.json');
|
|
17
17
|
|
|
18
18
|
const banner = `
|
|
19
|
-
${
|
|
19
|
+
${green} ██████╗ ███████╗██████╗
|
|
20
20
|
██╔════╝ ██╔════╝██╔══██╗
|
|
21
21
|
██║ ███╗███████╗██║ ██║
|
|
22
22
|
██║ ██║╚════██║██║ ██║
|
|
23
23
|
╚██████╔╝███████║██████╔╝
|
|
24
|
-
╚═════╝ ╚══════╝╚═════╝${
|
|
24
|
+
╚═════╝ ╚══════╝╚═════╝${reset}
|
|
25
25
|
|
|
26
|
-
Get Shit Done ${
|
|
26
|
+
Get Shit Done ${dim}v${pkg.version}${reset}
|
|
27
27
|
A meta - prompting, context engineering and spec - driven
|
|
28
28
|
development system for OpenAI Codex CLI originally by TÂCHES.
|
|
29
29
|
`;
|
|
@@ -38,21 +38,21 @@ console.log(banner);
|
|
|
38
38
|
|
|
39
39
|
// Show help if requested
|
|
40
40
|
if (hasHelp) {
|
|
41
|
-
console.log(` ${
|
|
41
|
+
console.log(` ${yellow} Usage:${reset} npx get - shit - done - codex[options]
|
|
42
42
|
|
|
43
|
-
${
|
|
44
|
-
${
|
|
45
|
-
${
|
|
46
|
-
${
|
|
43
|
+
${yellow} Options:${reset}
|
|
44
|
+
${cyan} -g, --global${reset} Install globally(to ~/.codex/)
|
|
45
|
+
${cyan} -l, --local${reset} Install locally(to current directory)
|
|
46
|
+
${cyan} -h, --help${reset} Show this help message
|
|
47
47
|
|
|
48
|
-
${
|
|
49
|
-
${
|
|
48
|
+
${yellow} Examples:${reset}
|
|
49
|
+
${dim}# Install globally to ~/.codex directory${reset}
|
|
50
50
|
npx get - shit - done - codex--global
|
|
51
51
|
|
|
52
|
-
${
|
|
52
|
+
${dim}# Install to current project only${reset}
|
|
53
53
|
npx get - shit - done - codex--local
|
|
54
54
|
|
|
55
|
-
${
|
|
55
|
+
${yellow} Notes:${reset}
|
|
56
56
|
For codex - cli, this installer:
|
|
57
57
|
- Creates / updates AGENTS.md in the target directory
|
|
58
58
|
- Copies the get - shit - done skill and commands
|
|
@@ -69,14 +69,14 @@ function applyReplacements(content, pathPrefix) {
|
|
|
69
69
|
// Path replacements
|
|
70
70
|
content = content.replace(/~\/\.claude\//g, pathPrefix);
|
|
71
71
|
content = content.replace(/\.claude\//g, pathPrefix.replace('~/', ''));
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
// Claude → Codex naming
|
|
74
74
|
content = content.replace(/Claude Code/g, 'Codex CLI');
|
|
75
75
|
content = content.replace(/Claude/g, 'Codex');
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
// Command format: /gsd:name → /prompts:gsd-name (Codex CLI custom prompts format)
|
|
78
78
|
content = content.replace(/\/gsd:/g, '/prompts:gsd-');
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
return content;
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -122,7 +122,7 @@ function install(isGlobal) {
|
|
|
122
122
|
? '~/.codex/'
|
|
123
123
|
: './';
|
|
124
124
|
|
|
125
|
-
console.log(` Installing to ${
|
|
125
|
+
console.log(` Installing to ${cyan}${locationLabel}${reset} \n`);
|
|
126
126
|
|
|
127
127
|
// Create target directory if needed
|
|
128
128
|
fs.mkdirSync(codexDir, { recursive: true });
|
|
@@ -133,7 +133,7 @@ function install(isGlobal) {
|
|
|
133
133
|
let agentsContent = fs.readFileSync(agentsSrc, 'utf8');
|
|
134
134
|
agentsContent = applyReplacements(agentsContent, pathPrefix);
|
|
135
135
|
fs.writeFileSync(agentsDest, agentsContent);
|
|
136
|
-
console.log(` ${
|
|
136
|
+
console.log(` ${green}✓${reset} Installed AGENTS.md`);
|
|
137
137
|
|
|
138
138
|
// Create prompts directory (Codex CLI uses prompts/ for custom slash commands)
|
|
139
139
|
const promptsDir = path.join(codexDir, 'prompts');
|
|
@@ -154,27 +154,27 @@ function install(isGlobal) {
|
|
|
154
154
|
fs.writeFileSync(destPath, content);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
console.log(` ${
|
|
157
|
+
console.log(` ${green}✓${reset} Installed prompts / gsd -*.md(${entries.filter(e => e.endsWith('.md')).length} commands)`);
|
|
158
158
|
|
|
159
159
|
// Copy get-shit-done skill with path replacement
|
|
160
160
|
const skillSrc = path.join(src, 'get-shit-done');
|
|
161
161
|
const skillDest = path.join(codexDir, 'get-shit-done');
|
|
162
162
|
copyWithPathReplacement(skillSrc, skillDest, pathPrefix);
|
|
163
|
-
console.log(` ${
|
|
163
|
+
console.log(` ${green}✓${reset} Installed get - shit - done`);
|
|
164
164
|
|
|
165
165
|
console.log(`
|
|
166
|
-
${
|
|
166
|
+
${green} Done!${reset}
|
|
167
167
|
|
|
168
|
-
${
|
|
169
|
-
- AGENTS.md is at ${
|
|
170
|
-
- Slash commands are in ${
|
|
168
|
+
${yellow}For Codex CLI:${reset}
|
|
169
|
+
- AGENTS.md is at ${cyan}${codexDir}/AGENTS.md${reset}
|
|
170
|
+
- Slash commands are in ${cyan}${codexDir} /prompts/${reset}
|
|
171
171
|
|
|
172
|
-
${
|
|
173
|
-
1. Run ${
|
|
174
|
-
2. Type ${
|
|
175
|
-
3. Start with ${
|
|
172
|
+
${yellow}Getting Started:${reset}
|
|
173
|
+
1. Run ${cyan}codex${reset} to start the Codex CLI
|
|
174
|
+
2. Type ${cyan}/${reset} to see available commands
|
|
175
|
+
3. Start with ${cyan}/prompts:gsd-new-project${reset} to initialize a project
|
|
176
176
|
|
|
177
|
-
${
|
|
177
|
+
${dim}Commands use / prompts: gsd - name format(e.g., /prompts:gsd-help)${reset}
|
|
178
178
|
`);
|
|
179
179
|
}
|
|
180
180
|
|
|
@@ -187,13 +187,13 @@ function promptLocation() {
|
|
|
187
187
|
output: process.stdout
|
|
188
188
|
});
|
|
189
189
|
|
|
190
|
-
console.log(` ${
|
|
190
|
+
console.log(` ${yellow}Where would you like to install ? ${reset}
|
|
191
191
|
|
|
192
|
-
${
|
|
193
|
-
${
|
|
192
|
+
${cyan} 1${reset}) Global ${dim} (~/.codex)${reset} - available in all projects
|
|
193
|
+
${cyan} 2${reset}) Local ${dim} (.)${reset} - this project only
|
|
194
194
|
`);
|
|
195
195
|
|
|
196
|
-
rl.question(` Choice ${
|
|
196
|
+
rl.question(` Choice ${dim} [1]${reset}: `, (answer) => {
|
|
197
197
|
rl.close();
|
|
198
198
|
const choice = answer.trim() || '1';
|
|
199
199
|
const isGlobal = choice !== '2';
|
|
@@ -203,7 +203,7 @@ function promptLocation() {
|
|
|
203
203
|
|
|
204
204
|
// Main
|
|
205
205
|
if (hasGlobal && hasLocal) {
|
|
206
|
-
console.error(` ${
|
|
206
|
+
console.error(` ${yellow}Cannot specify both--global and--local${reset} `);
|
|
207
207
|
process.exit(1);
|
|
208
208
|
} else if (hasGlobal) {
|
|
209
209
|
install(true);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undeemed/get-shit-done-codex",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.11",
|
|
4
4
|
"description": "A meta-prompting, context engineering and spec-driven development system for OpenAI Codex CLI. Fork of get-shit-done by TÂCHES, adapted for Codex CLI by undeemed.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"get-shit-done-codex": "bin/install.js"
|
|
@@ -35,8 +35,5 @@
|
|
|
35
35
|
},
|
|
36
36
|
"engines": {
|
|
37
37
|
"node": ">=16.7.0"
|
|
38
|
-
},
|
|
39
|
-
"dependencies": {
|
|
40
|
-
"@undeemed/get-shit-done-codex": "^1.6.5"
|
|
41
38
|
}
|
|
42
39
|
}
|