shift-ax 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +145 -0
  3. package/README.md +143 -0
  4. package/dist/adapters/claude-code/adapter.js +90 -0
  5. package/dist/adapters/codex/adapter.js +94 -0
  6. package/dist/adapters/contracts.js +7 -0
  7. package/dist/adapters/index.js +12 -0
  8. package/dist/core/context/context-bundle.js +300 -0
  9. package/dist/core/context/discovery.js +82 -0
  10. package/dist/core/context/global-index-authoring.js +199 -0
  11. package/dist/core/context/global-knowledge-updates.js +116 -0
  12. package/dist/core/context/glossary.js +73 -0
  13. package/dist/core/context/guided-onboarding.js +233 -0
  14. package/dist/core/context/index-authoring.js +47 -0
  15. package/dist/core/context/index-resolver.js +78 -0
  16. package/dist/core/context/onboarding.js +186 -0
  17. package/dist/core/diagnostics/doctor.js +154 -0
  18. package/dist/core/finalization/commit-message.js +76 -0
  19. package/dist/core/finalization/commit-workflow.js +131 -0
  20. package/dist/core/memory/consolidation.js +99 -0
  21. package/dist/core/memory/decision-register.js +141 -0
  22. package/dist/core/memory/entity-memory.js +25 -0
  23. package/dist/core/memory/learned-debug.js +52 -0
  24. package/dist/core/memory/summary-checkpoints.js +9 -0
  25. package/dist/core/memory/thread-promotion.js +22 -0
  26. package/dist/core/memory/threads.js +66 -0
  27. package/dist/core/memory/topic-recall.js +52 -0
  28. package/dist/core/observability/context-health.js +15 -0
  29. package/dist/core/observability/context-monitor.js +29 -0
  30. package/dist/core/observability/state-handoff.js +78 -0
  31. package/dist/core/observability/topic-status.js +40 -0
  32. package/dist/core/observability/topics-status.js +26 -0
  33. package/dist/core/observability/verification-debt.js +82 -0
  34. package/dist/core/planning/brainstorm.js +120 -0
  35. package/dist/core/planning/escalation.js +69 -0
  36. package/dist/core/planning/execution-handoff.js +61 -0
  37. package/dist/core/planning/execution-launch.js +156 -0
  38. package/dist/core/planning/execution-orchestrator.js +87 -0
  39. package/dist/core/planning/feedback-reactions.js +75 -0
  40. package/dist/core/planning/lifecycle-events.js +45 -0
  41. package/dist/core/planning/plan-review.js +76 -0
  42. package/dist/core/planning/policy-context-sync.js +154 -0
  43. package/dist/core/planning/request-pipeline.js +386 -0
  44. package/dist/core/planning/workflow-state.js +18 -0
  45. package/dist/core/policies/project-profile.js +28 -0
  46. package/dist/core/policies/team-preferences.js +17 -0
  47. package/dist/core/review/aggregate-reviews.js +129 -0
  48. package/dist/core/review/run-lanes.js +376 -0
  49. package/dist/core/settings/global-context-home.js +28 -0
  50. package/dist/core/settings/project-settings.js +37 -0
  51. package/dist/core/shell/platform-shell.js +144 -0
  52. package/dist/core/topics/bootstrap.js +119 -0
  53. package/dist/core/topics/topic-artifacts.js +36 -0
  54. package/dist/core/topics/worktree-runtime.js +141 -0
  55. package/dist/core/topics/worktree.js +8 -0
  56. package/dist/platform/claude-code/bootstrap.js +66 -0
  57. package/dist/platform/claude-code/execution.js +157 -0
  58. package/dist/platform/claude-code/scaffold/CLAUDE.template.md +40 -0
  59. package/dist/platform/claude-code/scaffold/commands/doctor.template.md +11 -0
  60. package/dist/platform/claude-code/scaffold/commands/export-context.template.md +20 -0
  61. package/dist/platform/claude-code/scaffold/commands/onboard.template.md +43 -0
  62. package/dist/platform/claude-code/scaffold/commands/onboarding.template.md +43 -0
  63. package/dist/platform/claude-code/scaffold/commands/request.template.md +19 -0
  64. package/dist/platform/claude-code/scaffold/commands/resume.template.md +12 -0
  65. package/dist/platform/claude-code/scaffold/commands/review.template.md +10 -0
  66. package/dist/platform/claude-code/scaffold/commands/status.template.md +14 -0
  67. package/dist/platform/claude-code/scaffold/commands/topics.template.md +10 -0
  68. package/dist/platform/claude-code/scaffold/hooks/shift-ax-session-start.template.md +29 -0
  69. package/dist/platform/claude-code/tmux.js +35 -0
  70. package/dist/platform/claude-code/upstream/tmux/imported/detached-session.js +40 -0
  71. package/dist/platform/claude-code/upstream/tmux/imported/session-name.js +19 -0
  72. package/dist/platform/claude-code/upstream/worktree/imported/get-worktree-root.js +39 -0
  73. package/dist/platform/claude-code/upstream/worktree/imported/managed-worktree.js +77 -0
  74. package/dist/platform/claude-code/worktree.js +79 -0
  75. package/dist/platform/codex/bootstrap.js +69 -0
  76. package/dist/platform/codex/execution.js +163 -0
  77. package/dist/platform/codex/scaffold/AGENTS.template.md +40 -0
  78. package/dist/platform/codex/scaffold/prompts/doctor.template.md +11 -0
  79. package/dist/platform/codex/scaffold/prompts/export-context.template.md +20 -0
  80. package/dist/platform/codex/scaffold/prompts/onboard.template.md +43 -0
  81. package/dist/platform/codex/scaffold/prompts/onboarding.template.md +43 -0
  82. package/dist/platform/codex/scaffold/prompts/request.template.md +19 -0
  83. package/dist/platform/codex/scaffold/prompts/resume.template.md +14 -0
  84. package/dist/platform/codex/scaffold/prompts/review.template.md +10 -0
  85. package/dist/platform/codex/scaffold/prompts/shift-ax-bootstrap.template.md +23 -0
  86. package/dist/platform/codex/scaffold/prompts/status.template.md +14 -0
  87. package/dist/platform/codex/scaffold/prompts/topics.template.md +10 -0
  88. package/dist/platform/codex/scaffold/skills/doctor/SKILL.template.md +11 -0
  89. package/dist/platform/codex/scaffold/skills/export-context/SKILL.template.md +20 -0
  90. package/dist/platform/codex/scaffold/skills/onboard/SKILL.template.md +43 -0
  91. package/dist/platform/codex/scaffold/skills/request/SKILL.template.md +19 -0
  92. package/dist/platform/codex/scaffold/skills/resume/SKILL.template.md +14 -0
  93. package/dist/platform/codex/scaffold/skills/review/SKILL.template.md +10 -0
  94. package/dist/platform/codex/scaffold/skills/status/SKILL.template.md +14 -0
  95. package/dist/platform/codex/scaffold/skills/topics/SKILL.template.md +10 -0
  96. package/dist/platform/codex/tmux.js +45 -0
  97. package/dist/platform/codex/upstream/tmux/imported/resize-hook-registration.js +37 -0
  98. package/dist/platform/codex/upstream/tmux/imported/resize-hooks.js +29 -0
  99. package/dist/platform/codex/upstream/tmux/imported/sanitize-team-name.js +18 -0
  100. package/dist/platform/codex/upstream/worktree/imported/managed-worktree.js +208 -0
  101. package/dist/platform/codex/upstream/worktree/imported/resolve-repo-root.js +14 -0
  102. package/dist/platform/codex/worktree.js +99 -0
  103. package/dist/platform/index.js +10 -0
  104. package/dist/platform/product-shell-commands.js +17 -0
  105. package/dist/platform/scaffold.js +16 -0
  106. package/dist/platform/upstream-imports.js +5 -0
  107. package/dist/scripts/ax-approve-plan.js +30 -0
  108. package/dist/scripts/ax-bootstrap-assets.js +19 -0
  109. package/dist/scripts/ax-bootstrap-topic.js +24 -0
  110. package/dist/scripts/ax-build-context-bundle.js +35 -0
  111. package/dist/scripts/ax-checkpoint-context.js +22 -0
  112. package/dist/scripts/ax-consolidate-memory.js +7 -0
  113. package/dist/scripts/ax-context-health.js +26 -0
  114. package/dist/scripts/ax-decisions.js +32 -0
  115. package/dist/scripts/ax-doctor.js +25 -0
  116. package/dist/scripts/ax-entity-memory.js +19 -0
  117. package/dist/scripts/ax-export-context.js +8 -0
  118. package/dist/scripts/ax-finalize-commit.js +23 -0
  119. package/dist/scripts/ax-init-context.js +41 -0
  120. package/dist/scripts/ax-launch-execution.js +24 -0
  121. package/dist/scripts/ax-learned-debug-save.js +30 -0
  122. package/dist/scripts/ax-learned-debug.js +12 -0
  123. package/dist/scripts/ax-monitor-context.js +28 -0
  124. package/dist/scripts/ax-onboard-context.js +112 -0
  125. package/dist/scripts/ax-pause-work.js +33 -0
  126. package/dist/scripts/ax-platform-manifest.js +19 -0
  127. package/dist/scripts/ax-promote-thread.js +20 -0
  128. package/dist/scripts/ax-react-feedback.js +28 -0
  129. package/dist/scripts/ax-recall-topics.js +20 -0
  130. package/dist/scripts/ax-recall.js +58 -0
  131. package/dist/scripts/ax-refresh-state.js +15 -0
  132. package/dist/scripts/ax-resolve-context.js +34 -0
  133. package/dist/scripts/ax-review.js +24 -0
  134. package/dist/scripts/ax-run-request.js +198 -0
  135. package/dist/scripts/ax-scaffold-build.js +19 -0
  136. package/dist/scripts/ax-shell.js +123 -0
  137. package/dist/scripts/ax-sync-policy-context.js +40 -0
  138. package/dist/scripts/ax-team-preferences.js +20 -0
  139. package/dist/scripts/ax-thread-save.js +26 -0
  140. package/dist/scripts/ax-threads.js +11 -0
  141. package/dist/scripts/ax-topic-status.js +18 -0
  142. package/dist/scripts/ax-topics-status.js +22 -0
  143. package/dist/scripts/ax-verification-debt.js +22 -0
  144. package/dist/scripts/ax-worktree-create.js +22 -0
  145. package/dist/scripts/ax-worktree-plan.js +18 -0
  146. package/dist/scripts/ax-worktree-remove.js +18 -0
  147. package/dist/scripts/ax.js +132 -0
  148. package/package.json +71 -0
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'node:child_process';
3
+ import { existsSync } from 'node:fs';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { dirname, join } from 'node:path';
6
+ const here = dirname(fileURLToPath(import.meta.url));
7
+ const command = process.argv[2];
8
+ const args = process.argv.slice(3);
9
+ const compiledMode = existsSync(join(here, 'ax-shell.js'));
10
+ const shellMode = !command ||
11
+ command === '--codex' ||
12
+ command === '--claude-code' ||
13
+ command === '--lang' ||
14
+ command === '--root' ||
15
+ command === '--discover' ||
16
+ command === '--onboarding-input';
17
+ const commands = new Map([
18
+ ['bootstrap-topic', 'ax-bootstrap-topic.ts'],
19
+ ['resolve-context', 'ax-resolve-context.ts'],
20
+ ['build-context-bundle', 'ax-build-context-bundle.ts'],
21
+ ['init-context', 'ax-init-context.ts'],
22
+ ['context-health', 'ax-context-health.ts'],
23
+ ['monitor-context', 'ax-monitor-context.ts'],
24
+ ['refresh-state', 'ax-refresh-state.ts'],
25
+ ['pause-work', 'ax-pause-work.ts'],
26
+ ['checkpoint-context', 'ax-checkpoint-context.ts'],
27
+ ['thread-save', 'ax-thread-save.ts'],
28
+ ['threads', 'ax-threads.ts'],
29
+ ['promote-thread', 'ax-promote-thread.ts'],
30
+ ['verification-debt', 'ax-verification-debt.ts'],
31
+ ['learned-debug-save', 'ax-learned-debug-save.ts'],
32
+ ['learned-debug', 'ax-learned-debug.ts'],
33
+ ['consolidate-memory', 'ax-consolidate-memory.ts'],
34
+ ['team-preferences', 'ax-team-preferences.ts'],
35
+ ['entity-memory', 'ax-entity-memory.ts'],
36
+ ['review', 'ax-review.ts'],
37
+ ['worktree-plan', 'ax-worktree-plan.ts'],
38
+ ['worktree-create', 'ax-worktree-create.ts'],
39
+ ['worktree-remove', 'ax-worktree-remove.ts'],
40
+ ['onboard-context', 'ax-onboard-context.ts'],
41
+ ['export-context', 'ax-export-context.ts'],
42
+ ['doctor', 'ax-doctor.ts'],
43
+ ['run-request', 'ax-run-request.ts'],
44
+ ['approve-plan', 'ax-approve-plan.ts'],
45
+ ['sync-policy-context', 'ax-sync-policy-context.ts'],
46
+ ['react-feedback', 'ax-react-feedback.ts'],
47
+ ['finalize-commit', 'ax-finalize-commit.ts'],
48
+ ['launch-execution', 'ax-launch-execution.ts'],
49
+ ['topic-status', 'ax-topic-status.ts'],
50
+ ['topics-status', 'ax-topics-status.ts'],
51
+ ['recall-topics', 'ax-recall-topics.ts'],
52
+ ['recall', 'ax-recall.ts'],
53
+ ['decisions', 'ax-decisions.ts'],
54
+ ['platform-manifest', 'ax-platform-manifest.ts'],
55
+ ['bootstrap-assets', 'ax-bootstrap-assets.ts'],
56
+ ['scaffold-build', 'ax-scaffold-build.ts'],
57
+ ]);
58
+ if (shellMode) {
59
+ const child = compiledMode
60
+ ? spawn(process.execPath, [join(here, 'ax-shell.js'), ...process.argv.slice(2)], {
61
+ stdio: 'inherit',
62
+ })
63
+ : spawn(process.execPath, ['--import', 'tsx', join(here, 'ax-shell.ts'), ...process.argv.slice(2)], {
64
+ stdio: 'inherit',
65
+ });
66
+ child.on('exit', (code) => {
67
+ process.exit(code ?? 1);
68
+ });
69
+ }
70
+ else if (!commands.has(command)) {
71
+ process.stderr.write([
72
+ 'Shift AX CLI',
73
+ '',
74
+ 'Shell launcher:',
75
+ ' shift-ax --codex [--root DIR] [--lang en|ko] [--discover] [--overwrite] [--onboarding-input FILE] [initial prompt]',
76
+ ' shift-ax --claude-code [--root DIR] [--lang en|ko] [--discover] [--overwrite] [--onboarding-input FILE] [initial prompt]',
77
+ ' shift-ax # default launcher (Codex unless global settings choose another platform)',
78
+ '',
79
+ 'Commands:',
80
+ ' shift-ax bootstrap-topic --request "<text>" [--summary "<text>"] [--root DIR]',
81
+ ' shift-ax resolve-context [--index PATH] --query "<text>" [--root DIR] [--max N]',
82
+ ' shift-ax build-context-bundle [--root DIR] [--topic DIR] --query "<text>" [--max-chars N] [--output PATH]',
83
+ ' shift-ax init-context [--root DIR] [--topic DIR] --query "<text>" [--max-chars N] [--workflow-step NAME] [--output PATH]',
84
+ ' shift-ax context-health [--root DIR] [--topic DIR] --query "<text>" [--max-chars N]',
85
+ ' shift-ax refresh-state [--root DIR] [--limit N]',
86
+ ' shift-ax pause-work --topic DIR --summary "<text>" [--next-step "<text>"] [--command "<text>"]...',
87
+ ' shift-ax checkpoint-context --topic DIR --summary "<text>"',
88
+ ' shift-ax thread-save --root DIR --name NAME [--summary "<text>"] --note "<text>"',
89
+ ' shift-ax threads [--root DIR]',
90
+ ' shift-ax verification-debt [--root DIR] [--topic DIR]',
91
+ ' shift-ax learned-debug-save --root DIR --summary "<text>" --resolution "<text>" [--occurrences N] [--approved] [--fix-commit SHA]',
92
+ ' shift-ax learned-debug [--root DIR] [--query "<text>"]',
93
+ ' shift-ax review --topic DIR [--run]',
94
+ ' shift-ax worktree-plan --topic DIR',
95
+ ' shift-ax worktree-create --topic DIR [--base BRANCH]',
96
+ ' shift-ax worktree-remove --topic DIR',
97
+ ' shift-ax onboard-context [--input FILE] [--discover] [--overwrite] [--lang en|ko] [--platform <codex|claude-code>] [--root DIR]',
98
+ ' shift-ax export-context',
99
+ ' shift-ax doctor [--root DIR] [--topic DIR] [--platform <codex|claude-code>]',
100
+ ' shift-ax run-request --request "<text>" [--summary "<text>"] [--brainstorm-file PATH] [--spec-file PATH] [--plan-file PATH] [--index PATH] [--allow-missing-global-context] [--root DIR] [--base BRANCH] # interactive planning by default',
101
+ ' shift-ax run-request --topic DIR --resume [--verify-command CMD]... [--escalation KIND[:summary]]... [--clear-escalations] [--escalation-resolution "<text>"] [--no-auto-commit]',
102
+ ' shift-ax approve-plan --topic DIR --reviewer NAME --decision <approve|reject> [--notes "<text>"]',
103
+ ' shift-ax sync-policy-context --topic DIR --summary "<text>" [--path REL_PATH]... [--entry "Label -> path"]...',
104
+ ' shift-ax react-feedback --topic DIR --kind <review-changes-requested|ci-failed> --summary "<text>"',
105
+ ' shift-ax finalize-commit --topic DIR [--message-file PATH]',
106
+ ' shift-ax launch-execution --platform <codex|claude-code> --topic DIR [--task-id ID] [--dry-run]',
107
+ ' shift-ax topic-status --topic DIR',
108
+ ' shift-ax topics-status [--root DIR] [--limit N]',
109
+ ' shift-ax recall-topics --query "<text>" [--root DIR] [--limit N]',
110
+ ' shift-ax decisions [--root DIR] [--query "<text>"] [--active-at YYYY-MM-DD] [--limit N]',
111
+ '',
112
+ 'Advanced support-layer commands exist but are intentionally omitted from default help to keep the operator surface compact.',
113
+ ' shift-ax platform-manifest --platform <codex|claude-code> [--root DIR]',
114
+ ' shift-ax bootstrap-assets --platform <codex|claude-code> [--root DIR]',
115
+ ' shift-ax scaffold-build --platform <codex|claude-code> [--root DIR]',
116
+ '',
117
+ ].join('\n'));
118
+ process.exit(command === '--help' ? 0 : command ? 1 : 0);
119
+ }
120
+ else {
121
+ const target = commands.get(command);
122
+ const child = compiledMode
123
+ ? spawn(process.execPath, [join(here, target.replace(/\.ts$/, '.js')), ...args], {
124
+ stdio: 'inherit',
125
+ })
126
+ : spawn(process.execPath, ['--import', 'tsx', join(here, target), ...args], {
127
+ stdio: 'inherit',
128
+ });
129
+ child.on('exit', (code) => {
130
+ process.exit(code ?? 1);
131
+ });
132
+ }
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "shift-ax",
3
+ "version": "0.3.0",
4
+ "description": "Agentic software delivery platform for teams that are not AX experts yet",
5
+ "type": "module",
6
+ "private": false,
7
+ "homepage": "https://github.com/handsupmin/shift-ax",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/handsupmin/shift-ax.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/handsupmin/shift-ax/issues"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "!dist/tests",
18
+ "README.md",
19
+ "README.ko.md",
20
+ "LICENSE"
21
+ ],
22
+ "bin": {
23
+ "ax": "dist/scripts/ax.js",
24
+ "shift-ax": "dist/scripts/ax.js",
25
+ "ax-bootstrap-topic": "dist/scripts/ax-bootstrap-topic.js",
26
+ "ax-resolve-context": "dist/scripts/ax-resolve-context.js",
27
+ "ax-build-context-bundle": "dist/scripts/ax-build-context-bundle.js",
28
+ "ax-init-context": "dist/scripts/ax-init-context.js",
29
+ "ax-context-health": "dist/scripts/ax-context-health.js",
30
+ "ax-refresh-state": "dist/scripts/ax-refresh-state.js",
31
+ "ax-pause-work": "dist/scripts/ax-pause-work.js",
32
+ "ax-checkpoint-context": "dist/scripts/ax-checkpoint-context.js",
33
+ "ax-thread-save": "dist/scripts/ax-thread-save.js",
34
+ "ax-threads": "dist/scripts/ax-threads.js",
35
+ "ax-verification-debt": "dist/scripts/ax-verification-debt.js",
36
+ "ax-learned-debug-save": "dist/scripts/ax-learned-debug-save.js",
37
+ "ax-learned-debug": "dist/scripts/ax-learned-debug.js",
38
+ "ax-review": "dist/scripts/ax-review.js",
39
+ "ax-worktree-plan": "dist/scripts/ax-worktree-plan.js",
40
+ "ax-platform-manifest": "dist/scripts/ax-platform-manifest.js",
41
+ "ax-bootstrap-assets": "dist/scripts/ax-bootstrap-assets.js",
42
+ "ax-scaffold-build": "dist/scripts/ax-scaffold-build.js",
43
+ "ax-onboard-context": "dist/scripts/ax-onboard-context.js",
44
+ "ax-doctor": "dist/scripts/ax-doctor.js",
45
+ "ax-run-request": "dist/scripts/ax-run-request.js",
46
+ "ax-approve-plan": "dist/scripts/ax-approve-plan.js",
47
+ "ax-sync-policy-context": "dist/scripts/ax-sync-policy-context.js",
48
+ "ax-react-feedback": "dist/scripts/ax-react-feedback.js",
49
+ "ax-finalize-commit": "dist/scripts/ax-finalize-commit.js",
50
+ "ax-launch-execution": "dist/scripts/ax-launch-execution.js",
51
+ "ax-topic-status": "dist/scripts/ax-topic-status.js",
52
+ "ax-topics-status": "dist/scripts/ax-topics-status.js",
53
+ "ax-recall-topics": "dist/scripts/ax-recall-topics.js",
54
+ "ax-decisions": "dist/scripts/ax-decisions.js"
55
+ },
56
+ "scripts": {
57
+ "build": "tsc -p tsconfig.json && node scripts/copy-package-assets.mjs",
58
+ "test": "node --import tsx --test tests/*.test.ts",
59
+ "ax": "node --import tsx scripts/ax.ts",
60
+ "prepack": "npm run build"
61
+ },
62
+ "engines": {
63
+ "node": ">=20"
64
+ },
65
+ "devDependencies": {
66
+ "@types/node": "^22.10.2",
67
+ "tsx": "^4.19.2",
68
+ "typescript": "^5.7.2"
69
+ },
70
+ "license": "MIT"
71
+ }