sublation-os 1.0.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.
- package/.claude/agents/sublation-os/implementation-verifier.md +141 -0
- package/.claude/agents/sublation-os/implementer-v2.md +542 -0
- package/.claude/agents/sublation-os/implementer.md +53 -0
- package/.claude/agents/sublation-os/product-planner.md +210 -0
- package/.claude/agents/sublation-os/spec-initializer.md +92 -0
- package/.claude/agents/sublation-os/spec-shaper.md +300 -0
- package/.claude/agents/sublation-os/spec-writer.md +139 -0
- package/.claude/agents/sublation-os/tasks-list-creator.md +236 -0
- package/.claude/commands/sublation-os/address-comments.md +74 -0
- package/.claude/commands/sublation-os/commit-message.md +84 -0
- package/.claude/commands/sublation-os/create-tasks.md +40 -0
- package/.claude/commands/sublation-os/implement-tasks.md +55 -0
- package/.claude/commands/sublation-os/investigate.md +164 -0
- package/.claude/commands/sublation-os/learn.md +131 -0
- package/.claude/commands/sublation-os/optimise.md +108 -0
- package/.claude/commands/sublation-os/plan-product.md +36 -0
- package/.claude/commands/sublation-os/pr-description.md +15 -0
- package/.claude/commands/sublation-os/recall.md +114 -0
- package/.claude/commands/sublation-os/review-v2.md +701 -0
- package/.claude/commands/sublation-os/review.md +12 -0
- package/.claude/commands/sublation-os/shape-spec.md +52 -0
- package/.claude/commands/sublation-os/test-plan.md +12 -0
- package/.claude/commands/sublation-os/write-spec.md +22 -0
- package/.sublation-os/config.yml +13 -0
- package/.sublation-os/memory/MEMORY_GUIDE.md +344 -0
- package/.sublation-os/memory/architecture-lessons.md +41 -0
- package/.sublation-os/memory/backend-lessons.md +41 -0
- package/.sublation-os/memory/frontend-lessons.md +41 -0
- package/.sublation-os/memory/general-lessons.md +41 -0
- package/.sublation-os/memory/index.md +94 -0
- package/.sublation-os/memory/learned-lessons.md +75 -0
- package/.sublation-os/memory/testing-lessons.md +41 -0
- package/.sublation-os/specs/.gitkeep +0 -0
- package/.sublation-os/standards/backend/api.md +10 -0
- package/.sublation-os/standards/backend/migrations.md +9 -0
- package/.sublation-os/standards/backend/models.md +10 -0
- package/.sublation-os/standards/backend/queries.md +9 -0
- package/.sublation-os/standards/frontend/accessibility.md +10 -0
- package/.sublation-os/standards/frontend/components.md +11 -0
- package/.sublation-os/standards/frontend/css.md +7 -0
- package/.sublation-os/standards/frontend/responsive.md +11 -0
- package/.sublation-os/standards/global/coding-style.md +10 -0
- package/.sublation-os/standards/global/commenting.md +5 -0
- package/.sublation-os/standards/global/conventions.md +11 -0
- package/.sublation-os/standards/global/error-handling.md +9 -0
- package/.sublation-os/standards/global/tech-stack.md +31 -0
- package/.sublation-os/standards/global/validation.md +11 -0
- package/.sublation-os/standards/testing/test-writing.md +9 -0
- package/LICENSE +21 -0
- package/README.md +155 -0
- package/bin/install.js +137 -0
- package/package.json +43 -0
package/bin/install.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const readline = require('readline');
|
|
6
|
+
|
|
7
|
+
// Colors for output
|
|
8
|
+
const colors = {
|
|
9
|
+
reset: '\x1b[0m',
|
|
10
|
+
green: '\x1b[32m',
|
|
11
|
+
blue: '\x1b[34m',
|
|
12
|
+
yellow: '\x1b[33m',
|
|
13
|
+
red: '\x1b[31m',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// Helper to print colored messages
|
|
17
|
+
function log(message, color = 'reset') {
|
|
18
|
+
console.log(`${colors[color]}${message}${colors.reset}`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Helper to copy directory recursively
|
|
22
|
+
function copyDirectorySync(src, dest) {
|
|
23
|
+
// Create destination directory
|
|
24
|
+
if (!fs.existsSync(dest)) {
|
|
25
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Read source directory
|
|
29
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
30
|
+
|
|
31
|
+
for (const entry of entries) {
|
|
32
|
+
const srcPath = path.join(src, entry.name);
|
|
33
|
+
const destPath = path.join(dest, entry.name);
|
|
34
|
+
|
|
35
|
+
if (entry.isDirectory()) {
|
|
36
|
+
copyDirectorySync(srcPath, destPath);
|
|
37
|
+
} else {
|
|
38
|
+
fs.copyFileSync(srcPath, destPath);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Helper to ask yes/no question
|
|
44
|
+
function askQuestion(query) {
|
|
45
|
+
const rl = readline.createInterface({
|
|
46
|
+
input: process.stdin,
|
|
47
|
+
output: process.stdout,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
return new Promise((resolve) =>
|
|
51
|
+
rl.question(query, (answer) => {
|
|
52
|
+
rl.close();
|
|
53
|
+
resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
|
|
54
|
+
})
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async function install() {
|
|
59
|
+
// Determine source directory (where the npm package is installed)
|
|
60
|
+
const packageDir = path.resolve(__dirname, '..');
|
|
61
|
+
|
|
62
|
+
// Determine target directory (current working directory)
|
|
63
|
+
const targetDir = process.cwd();
|
|
64
|
+
|
|
65
|
+
log('Sublation-OS Framework Installer', 'green');
|
|
66
|
+
log(`Installing to: ${targetDir}`, 'blue');
|
|
67
|
+
console.log('');
|
|
68
|
+
|
|
69
|
+
// Check if already installed
|
|
70
|
+
const sublationOsPath = path.join(targetDir, '.sublation-os');
|
|
71
|
+
if (fs.existsSync(sublationOsPath)) {
|
|
72
|
+
log('⚠️ Sublation-OS is already installed in this directory.', 'yellow');
|
|
73
|
+
const shouldUpdate = await askQuestion('Do you want to update/overwrite? (y/N): ');
|
|
74
|
+
|
|
75
|
+
if (!shouldUpdate) {
|
|
76
|
+
log('Installation cancelled.', 'yellow');
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Backup existing installation
|
|
81
|
+
const backupPath = path.join(targetDir, '.sublation-os.backup');
|
|
82
|
+
log(' Backing up existing .sublation-os to .sublation-os.backup', 'yellow');
|
|
83
|
+
if (fs.existsSync(backupPath)) {
|
|
84
|
+
fs.rmSync(backupPath, { recursive: true, force: true });
|
|
85
|
+
}
|
|
86
|
+
fs.renameSync(sublationOsPath, backupPath);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Create .claude directory if it doesn't exist
|
|
90
|
+
const claudeAgentsDir = path.join(targetDir, '.claude', 'agents');
|
|
91
|
+
const claudeCommandsDir = path.join(targetDir, '.claude', 'commands');
|
|
92
|
+
fs.mkdirSync(claudeAgentsDir, { recursive: true });
|
|
93
|
+
fs.mkdirSync(claudeCommandsDir, { recursive: true });
|
|
94
|
+
|
|
95
|
+
// Copy framework files
|
|
96
|
+
log('📦 Copying framework files...', 'blue');
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
// Copy .sublation-os directory
|
|
100
|
+
const srcSublationOs = path.join(packageDir, '.sublation-os');
|
|
101
|
+
copyDirectorySync(srcSublationOs, sublationOsPath);
|
|
102
|
+
log(' ✓ Copied .sublation-os/', 'green');
|
|
103
|
+
|
|
104
|
+
// Copy Claude agents
|
|
105
|
+
const srcAgents = path.join(packageDir, '.claude', 'agents', 'sublation-os');
|
|
106
|
+
const destAgents = path.join(claudeAgentsDir, 'sublation-os');
|
|
107
|
+
copyDirectorySync(srcAgents, destAgents);
|
|
108
|
+
log(' ✓ Copied .claude/agents/sublation-os/', 'green');
|
|
109
|
+
|
|
110
|
+
// Copy Claude commands
|
|
111
|
+
const srcCommands = path.join(packageDir, '.claude', 'commands', 'sublation-os');
|
|
112
|
+
const destCommands = path.join(claudeCommandsDir, 'sublation-os');
|
|
113
|
+
copyDirectorySync(srcCommands, destCommands);
|
|
114
|
+
log(' ✓ Copied .claude/commands/sublation-os/', 'green');
|
|
115
|
+
|
|
116
|
+
console.log('');
|
|
117
|
+
log('✅ Sublation-OS Framework installed successfully!', 'green');
|
|
118
|
+
console.log('');
|
|
119
|
+
log('Next steps:', 'blue');
|
|
120
|
+
console.log('1. Review and customize .sublation-os/config.yml for your project');
|
|
121
|
+
console.log('2. Customize .sublation-os/standards/ files for your tech stack');
|
|
122
|
+
console.log('3. Start using the framework with Claude Code');
|
|
123
|
+
console.log('');
|
|
124
|
+
log('Available slash commands:', 'blue');
|
|
125
|
+
console.log(' /sublation-os:learn - Capture learnings');
|
|
126
|
+
console.log(' /sublation-os:plan-product - Create product documentation');
|
|
127
|
+
console.log(' /sublation-os:create-tasks - Generate task list from spec');
|
|
128
|
+
console.log(' /sublation-os:implement-tasks - Implement tasks from spec');
|
|
129
|
+
console.log('');
|
|
130
|
+
log('📚 For more information, see: https://github.com/nicolosaullo/sublation-os', 'blue');
|
|
131
|
+
} catch (error) {
|
|
132
|
+
log(`❌ Installation failed: ${error.message}`, 'red');
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
install();
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sublation-os",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A comprehensive development framework for Claude Code that enhances your AI-assisted development workflow with standards, specifications, memory, and powerful agents",
|
|
5
|
+
"main": "bin/install.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"sublation-os": "./bin/install.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"claude",
|
|
14
|
+
"claude-code",
|
|
15
|
+
"ai",
|
|
16
|
+
"development",
|
|
17
|
+
"framework",
|
|
18
|
+
"standards",
|
|
19
|
+
"specifications",
|
|
20
|
+
"agents",
|
|
21
|
+
"cli"
|
|
22
|
+
],
|
|
23
|
+
"author": "Nicolò Saullo",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/nicolosaullo/sublation-os.git"
|
|
28
|
+
},
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/nicolosaullo/sublation-os/issues"
|
|
31
|
+
},
|
|
32
|
+
"homepage": "https://github.com/nicolosaullo/sublation-os#readme",
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=14.0.0"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"bin/",
|
|
38
|
+
".sublation-os/",
|
|
39
|
+
".claude/",
|
|
40
|
+
"README.md",
|
|
41
|
+
"LICENSE"
|
|
42
|
+
]
|
|
43
|
+
}
|