@ahmed118glitch/get-shit-done-codex 1.18.3 → 1.18.4

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/README.md CHANGED
@@ -1,86 +1,102 @@
1
- # Get Shit Done (GSD)
2
-
3
- Get Shit Done is a planning-first workflow system for AI coding agents. This repository packages the core GSD engine, workflow templates, runtime command surfaces, and a Codex prompt layer.
4
-
5
- ## What Is In This Repository
6
-
7
- - `commands/gsd/`: command source files used by runtime installers
8
- - `get-shit-done/bin/gsd-tools.js`: core CLI utilities and state/workflow helpers
9
- - `get-shit-done/workflows/`: end-to-end command workflows
10
- - `get-shit-done/templates/`: planning and state templates
11
- - `get-shit-done/references/`: supporting reference docs
12
- - `agents/`: role-specific agent instruction files
13
- - `hooks/` and `scripts/build-hooks.js`: hook sources and build pipeline
14
- - `.codex/prompts/` and `.codex/skills/`: Codex-native prompt and skill layer
15
-
16
- ## Install
17
-
18
- Prerequisite: Node.js `>=16.7.0`.
19
-
20
- ```bash
21
- npx @ahmed118glitch/get-shit-done-codex@latest --path .
22
- ```
23
-
24
- Common examples:
25
-
26
- ```bash
27
- # Install Codex files into the current project directory
28
- npx @ahmed118glitch/get-shit-done-codex@latest --path .
29
-
30
- # Install into an explicit target folder:
31
- npx @ahmed118glitch/get-shit-done-codex@latest --path /path/to/project
32
-
33
- # Install shared copy under your home directory as well:
34
- npx @ahmed118glitch/get-shit-done-codex@latest --global
35
-
36
- # Run the runtime installer (Claude/OpenCode/Gemini) from this scoped package:
37
- npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --help
38
- ```
39
-
40
- ## Runtime Command Surface
41
-
42
- - Claude Code and Gemini CLI use `/gsd:<command>` (example: `/gsd:help`)
43
- - OpenCode uses `/gsd-<command>` (example: `/gsd-help`)
44
- - Codex prompt files are in `.codex/prompts/gsd-*.md`
45
-
46
- ## Quick Workflow
47
-
48
- 1. Start a project with `new-project`
49
- 2. Plan a phase with `plan-phase`
50
- 3. Execute the phase with `execute-phase`
51
- 4. Verify with `verify-work`
52
- 5. Repeat per phase or milestone
53
-
54
- Installed commands create and update planning artifacts under `.planning/` (for example: `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`).
55
-
56
- ## Source Paths vs Installed Paths
57
-
58
- Repository source paths:
59
-
60
- - `commands/gsd/*`
61
- - `get-shit-done/workflows/*`
62
- - `get-shit-done/templates/*`
63
-
64
- Installed runtime targets:
65
-
66
- - Claude global: `~/.claude`
67
- - OpenCode global: `~/.config/opencode` (or platform XDG equivalent)
68
- - Gemini global: `~/.gemini`
69
- - Local mode: runtime folders in the current project
70
-
71
- ## Development
72
-
73
- ```bash
74
- npm test
75
- npm run build:hooks
76
- ```
77
-
78
- Keep command and workflow behavior aligned across `commands/gsd/` and `get-shit-done/workflows/` when making changes.
79
-
80
- ## Security
81
-
82
- Report vulnerabilities privately via `SECURITY.md`.
83
-
84
- ## License
85
-
1
+ # Get Shit Done (GSD)
2
+
3
+ Get Shit Done is a planning-first workflow system for AI coding agents. This repository packages the core GSD engine, workflow templates, runtime command surfaces, and a Codex prompt layer.
4
+
5
+ ## What Is In This Repository
6
+
7
+ - `commands/gsd/`: command source files used by runtime installers
8
+ - `get-shit-done/bin/gsd-tools.js`: core CLI utilities and state/workflow helpers
9
+ - `get-shit-done/workflows/`: end-to-end command workflows
10
+ - `get-shit-done/templates/`: planning and state templates
11
+ - `get-shit-done/references/`: supporting reference docs
12
+ - `agents/`: role-specific agent instruction files
13
+ - `hooks/` and `scripts/build-hooks.js`: hook sources and build pipeline
14
+ - `.codex/prompts/` and `.codex/skills/`: Codex-native prompt and skill layer
15
+
16
+ ## Install
17
+
18
+ Prerequisite: Node.js `>=16.7.0`.
19
+
20
+ ```bash
21
+ npx @ahmed118glitch/get-shit-done-codex@latest --path .
22
+ ```
23
+
24
+ Common examples:
25
+
26
+ ```bash
27
+ # Install Codex files into the current project directory
28
+ npx @ahmed118glitch/get-shit-done-codex@latest --path .
29
+
30
+ # Install into an explicit target folder:
31
+ npx @ahmed118glitch/get-shit-done-codex@latest --path /path/to/project
32
+
33
+ # Install shared copy under your home directory as well:
34
+ npx @ahmed118glitch/get-shit-done-codex@latest --global
35
+
36
+ # Run the runtime installer from this scoped package (examples):
37
+ npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --all --global
38
+ npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --claude --local
39
+ ```
40
+
41
+ Global install writes prompts to `~/.codex/prompts` (not nested).
42
+
43
+ ## Verify Install
44
+
45
+ ```bash
46
+ # Project prompts
47
+ ls ./.codex/prompts/gsd-*.md
48
+
49
+ # Global prompts (if you used --global)
50
+ ls ~/.codex/prompts/gsd-*.md
51
+ ```
52
+
53
+ ## Runtime Command Surface
54
+
55
+ - Claude Code and Gemini CLI use `/gsd:<command>` (example: `/gsd:help`)
56
+ - OpenCode uses `/gsd-<command>` (example: `/gsd-help`)
57
+ - Codex prompt files are in `.codex/prompts/gsd-*.md`
58
+
59
+ ## Quick Workflow
60
+
61
+ Use the command surface above (`/gsd:<command>`, `/gsd-<command>`, or Codex `gsd-*` prompts).
62
+
63
+ 1. Start a project with `new-project`
64
+ 2. Plan a phase with `plan-phase`
65
+ 3. Execute the phase with `execute-phase`
66
+ 4. Verify with `verify-work`
67
+ 5. Repeat per phase or milestone
68
+
69
+ Installed commands create and update planning artifacts under `.planning/` (for example: `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`).
70
+
71
+ ## Source Paths vs Installed Paths
72
+
73
+ Repository source paths:
74
+
75
+ - `commands/gsd/*`
76
+ - `get-shit-done/workflows/*`
77
+ - `get-shit-done/templates/*`
78
+
79
+ Installed runtime targets:
80
+
81
+ - Claude global: `~/.claude`
82
+ - OpenCode global: `~/.config/opencode` (or platform XDG equivalent)
83
+ - Gemini global: `~/.gemini`
84
+ - Codex global prompts/skills: `~/.codex/prompts`, `~/.codex/skills`
85
+ - Local mode: runtime folders in the current project
86
+
87
+ ## Development
88
+
89
+ ```bash
90
+ npm test
91
+ npm run build:hooks
92
+ ```
93
+
94
+ Keep command and workflow behavior aligned across `commands/gsd/` and `get-shit-done/workflows/` when making changes.
95
+
96
+ ## Security
97
+
98
+ Report vulnerabilities privately via `SECURITY.md`.
99
+
100
+ ## License
101
+
86
102
  MIT (`LICENSE`).
@@ -1,100 +1,100 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const path = require('path');
5
- const os = require('os');
6
-
7
- const args = process.argv.slice(2);
8
- const pkg = require('../package.json');
9
- const repoRoot = path.resolve(__dirname, '..');
10
-
11
- const helpText = `
12
- ${pkg.name} v${pkg.version}
13
-
14
- Usage:
15
- get-shit-done-codex [--path <target-dir>] [--help]
16
-
17
- Options:
18
- --path <target-dir> Install into this directory (defaults to current directory)
19
- --global Also install .claude to your home directory (for manual sharing)
20
- --help, -h Show this help message
21
-
22
- Examples:
23
- npx @ahmed118glitch/get-shit-done-codex@latest --path .
24
- npx @ahmed118glitch/get-shit-done-codex@latest --path ./my-project
25
- `;
26
-
27
- if (args.includes('--help') || args.includes('-h')) {
28
- console.log(helpText);
29
- process.exit(0);
30
- }
31
-
32
- const pathArgIndex = args.findIndex((arg, index) => {
33
- if (arg === '--path') return true;
34
- return false;
35
- });
36
- let targetDir = process.cwd();
37
- if (pathArgIndex !== -1) {
38
- const userPath = args[pathArgIndex + 1];
39
- if (!userPath || userPath.startsWith('-')) {
40
- console.error('Error: --path requires a directory argument.');
41
- process.exit(1);
42
- }
43
- targetDir = path.resolve(process.cwd(), userPath);
44
- }
45
-
46
- const installGlobal = args.includes('--global');
47
-
48
- function copyRecursive(source, destination) {
49
- if (!fs.existsSync(source)) return;
50
- fs.cpSync(source, destination, { recursive: true, force: true });
51
- }
52
-
53
- function ensureDir(dirPath) {
54
- fs.mkdirSync(dirPath, { recursive: true });
55
- }
56
-
57
- function resolveSourceDir(repoRelative, fallbackRelative) {
58
- const primary = path.join(repoRoot, repoRelative);
59
- const fallback = fallbackRelative ? path.join(repoRoot, fallbackRelative) : null;
60
-
61
- if (fs.existsSync(primary)) return primary;
62
- if (fallback && fs.existsSync(fallback)) return fallback;
63
-
64
- const fallbackMessage = fallbackRelative ? ` or ${fallbackRelative}` : '';
65
- throw new Error(`Missing source directory "${repoRelative}"${fallbackMessage} in repository root ${repoRoot}`);
66
- }
67
-
68
- function copyCodexToDirectory(baseDir) {
69
- const targetCodex = path.join(baseDir, '.codex');
70
- const targetClaude = path.join(baseDir, '.claude');
71
- const sourceCodex = path.join(repoRoot, '.codex');
72
- const sourceGetShitDone = resolveSourceDir('get-shit-done', '.claude/get-shit-done');
73
- const sourceAgents = resolveSourceDir('agents', '.claude/agents');
74
-
75
- ensureDir(baseDir);
76
- ensureDir(targetCodex);
77
- ensureDir(targetClaude);
78
-
79
- copyRecursive(sourceCodex, targetCodex);
80
- copyRecursive(sourceGetShitDone, path.join(targetClaude, 'get-shit-done'));
81
- copyRecursive(sourceAgents, path.join(targetClaude, 'agents'));
82
- }
83
-
84
- copyCodexToDirectory(targetDir);
85
-
86
- if (installGlobal) {
87
- // Global installs should place prompts at ~/.codex/prompts (not ~/.codex/.codex/prompts).
88
- const globalBase = os.homedir();
89
- copyCodexToDirectory(globalBase);
90
- }
91
-
92
- console.log(`\n${pkg.name} installed to:`);
93
- console.log(` local: ${targetDir}`);
94
- if (installGlobal) {
95
- console.log(' global: ~/.codex');
96
- }
97
- console.log('\nNext steps:');
98
- console.log(' 1) Open your project in Codex');
99
- console.log(' 2) Run prompt gsd-new-project, then gsd-plan-phase, gsd-execute-phase');
100
- console.log(' 3) Use .codex/prompts/* for all GSD commands in this fork');
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const os = require('os');
6
+
7
+ const args = process.argv.slice(2);
8
+ const pkg = require('../package.json');
9
+ const repoRoot = path.resolve(__dirname, '..');
10
+
11
+ const helpText = `
12
+ ${pkg.name} v${pkg.version}
13
+
14
+ Usage:
15
+ get-shit-done-codex [--path <target-dir>] [--help]
16
+
17
+ Options:
18
+ --path <target-dir> Install into this directory (defaults to current directory)
19
+ --global Also install .claude to your home directory (for manual sharing)
20
+ --help, -h Show this help message
21
+
22
+ Examples:
23
+ npx @ahmed118glitch/get-shit-done-codex@latest --path .
24
+ npx @ahmed118glitch/get-shit-done-codex@latest --path ./my-project
25
+ `;
26
+
27
+ if (args.includes('--help') || args.includes('-h')) {
28
+ console.log(helpText);
29
+ process.exit(0);
30
+ }
31
+
32
+ const pathArgIndex = args.findIndex((arg, index) => {
33
+ if (arg === '--path') return true;
34
+ return false;
35
+ });
36
+ let targetDir = process.cwd();
37
+ if (pathArgIndex !== -1) {
38
+ const userPath = args[pathArgIndex + 1];
39
+ if (!userPath || userPath.startsWith('-')) {
40
+ console.error('Error: --path requires a directory argument.');
41
+ process.exit(1);
42
+ }
43
+ targetDir = path.resolve(process.cwd(), userPath);
44
+ }
45
+
46
+ const installGlobal = args.includes('--global');
47
+
48
+ function copyRecursive(source, destination) {
49
+ if (!fs.existsSync(source)) return;
50
+ fs.cpSync(source, destination, { recursive: true, force: true });
51
+ }
52
+
53
+ function ensureDir(dirPath) {
54
+ fs.mkdirSync(dirPath, { recursive: true });
55
+ }
56
+
57
+ function resolveSourceDir(repoRelative, fallbackRelative) {
58
+ const primary = path.join(repoRoot, repoRelative);
59
+ const fallback = fallbackRelative ? path.join(repoRoot, fallbackRelative) : null;
60
+
61
+ if (fs.existsSync(primary)) return primary;
62
+ if (fallback && fs.existsSync(fallback)) return fallback;
63
+
64
+ const fallbackMessage = fallbackRelative ? ` or ${fallbackRelative}` : '';
65
+ throw new Error(`Missing source directory "${repoRelative}"${fallbackMessage} in repository root ${repoRoot}`);
66
+ }
67
+
68
+ function copyCodexToDirectory(baseDir) {
69
+ const targetCodex = path.join(baseDir, '.codex');
70
+ const targetClaude = path.join(baseDir, '.claude');
71
+ const sourceCodex = path.join(repoRoot, '.codex');
72
+ const sourceGetShitDone = resolveSourceDir('get-shit-done', '.claude/get-shit-done');
73
+ const sourceAgents = resolveSourceDir('agents', '.claude/agents');
74
+
75
+ ensureDir(baseDir);
76
+ ensureDir(targetCodex);
77
+ ensureDir(targetClaude);
78
+
79
+ copyRecursive(sourceCodex, targetCodex);
80
+ copyRecursive(sourceGetShitDone, path.join(targetClaude, 'get-shit-done'));
81
+ copyRecursive(sourceAgents, path.join(targetClaude, 'agents'));
82
+ }
83
+
84
+ copyCodexToDirectory(targetDir);
85
+
86
+ if (installGlobal) {
87
+ // Global installs should place prompts at ~/.codex/prompts (not ~/.codex/.codex/prompts).
88
+ const globalBase = os.homedir();
89
+ copyCodexToDirectory(globalBase);
90
+ }
91
+
92
+ console.log(`\n${pkg.name} installed to:`);
93
+ console.log(` local: ${targetDir}`);
94
+ if (installGlobal) {
95
+ console.log(' global: ~/.codex');
96
+ }
97
+ console.log('\nNext steps:');
98
+ console.log(' 1) Open your project in Codex');
99
+ console.log(' 2) Run prompt gsd-new-project, then gsd-plan-phase, gsd-execute-phase');
100
+ console.log(' 3) Use .codex/prompts/* for all GSD commands in this fork');
@@ -17,9 +17,9 @@ Display the complete GSD command reference. Output ONLY the reference content. D
17
17
 
18
18
  GSD evolves fast. Update periodically:
19
19
 
20
- ```bash
21
- npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc
22
- ```
20
+ ```bash
21
+ npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc
22
+ ```
23
23
 
24
24
  ## Core Workflow
25
25
 
@@ -322,7 +322,7 @@ Update GSD to latest version with changelog preview.
322
322
  - Displays changelog entries for versions you've missed
323
323
  - Highlights breaking changes
324
324
  - Confirms before running install
325
- - Better than raw `npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc`
325
+ - Better than raw `npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc`
326
326
 
327
327
  Usage: `/gsd:update`
328
328
 
@@ -46,15 +46,15 @@ Proceed to install step (treat as version 0.0.0 for comparison).
46
46
  <step name="check_latest_version">
47
47
  Check npm for latest version:
48
48
 
49
- ```bash
50
- npm view @ahmed118glitch/get-shit-done-codex version 2>/dev/null
51
- ```
49
+ ```bash
50
+ npm view @ahmed118glitch/get-shit-done-codex version 2>/dev/null
51
+ ```
52
52
 
53
53
  **If npm check fails:**
54
54
  ```
55
55
  Couldn't check for updates (offline or npm unavailable).
56
56
 
57
- To update manually: `npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --global`
57
+ To update manually: `npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --global`
58
58
  ```
59
59
 
60
60
  Exit.
@@ -145,14 +145,14 @@ Use AskUserQuestion:
145
145
  Run the update using the install type detected in step 1:
146
146
 
147
147
  **If LOCAL install:**
148
- ```bash
149
- npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --local
150
- ```
148
+ ```bash
149
+ npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --local
150
+ ```
151
151
 
152
152
  **If GLOBAL install (or unknown):**
153
- ```bash
154
- npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --global
155
- ```
153
+ ```bash
154
+ npx --yes --package=@ahmed118glitch/get-shit-done-codex@latest get-shit-done-cc --global
155
+ ```
156
156
 
157
157
  Capture output. If install fails, show error and exit.
158
158
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahmed118glitch/get-shit-done-codex",
3
- "version": "1.18.3",
3
+ "version": "1.18.4",
4
4
  "description": "Codex-native package for the get-shit-done workflow with native subagent orchestration.",
5
5
  "bin": {
6
6
  "get-shit-done-codex": "bin/install-codex.js",